KVKK Talepleri
Müşterinin veri kaldırma taleplerini okuyan, karara bağlayan ve özelliğin ayarlarını yöneten on uç.
Genel Bakış
Müşteri kendi verisinin kaldırılmasını isteyebilir. Bu uçlar o talepleri okur, karara bağlar ve özelliğin kendi ayarlarını yönetir.
Kaldırmanın üç kapsamı vardır ve geri dönüşü yoktur: erişimi kesmek, kimlik verisini anonimleştirmek, kullanıcıyı tamamen silmek. Hangisinin uygulandığını yanıttaki remove_action söyler.
Referans
Talepleri Listeleme
Müşterilerden gelen veri talepleri listesini döndürür.
remove.pending.0.curl -G 'https://panel.ornek.com/api/v1/admin/clients/gdpr-requests' \
-H "Authorization: Bearer $API_KEY" \
-d limit=50const url = new URL('https://panel.ornek.com/api/v1/admin/clients/gdpr-requests');
url.searchParams.set('limit', '50');
const res = await fetch(url, { headers: { Authorization: `Bearer ${apiKey}` } });
const body = await res.json();$url = 'https://panel.ornek.com/api/v1/admin/clients/gdpr-requests?' . http_build_query(['limit' => 50]);
$ch = curl_init($url);
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . $apiKey],
]);
$body = json_decode(curl_exec($ch), true);
curl_close($ch);$response = Api::Clients()->GetGdprRequests([], ['limit' => 50]);Talep Detayı
Tek bir talebi döndürür. Karar vermeden önce bakılacak yer burasıdır.
block_access, identifying_data ya da all.curl 'https://panel.ornek.com/api/v1/admin/clients/gdpr-requests/9' \
-H "Authorization: Bearer $API_KEY"const res = await fetch('https://panel.ornek.com/api/v1/admin/clients/gdpr-requests/9', {
headers: { Authorization: `Bearer ${apiKey}` },
});
const body = await res.json();$ch = curl_init('https://panel.ornek.com/api/v1/admin/clients/gdpr-requests/9');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . $apiKey],
]);
$body = json_decode(curl_exec($ch), true);
curl_close($ch);$response = Api::Clients()->GetGdprRequest(['rid' => 9]);
$request = $response['data']['request'];
// Faturasi olan bir musteride 'all' istemek yasal saklama ile carpisabilir.
$hasInvoices = $request['invoice_count'] > 0;Talebi İşleme
Talebi onaylar ya da reddeder. Onaylarsanız istenen kapsamda veri kaldırma çalışır.
remove, anonymize, destroy ya da reddetmek için cancelled.block_access erişimi keser, identifying_data kimlik verisini anonimleştirir, all kullanıcıyı siler.none, block_access, identifying_data ya da all.0 ya da 1.status izinli değerlerden değil.curl -X POST 'https://panel.ornek.com/api/v1/admin/clients/gdpr-requests/9/process' \
-H "Authorization: Bearer $API_KEY" \
-H 'Content-Type: application/json' \
-d '{"status":"anonymize","remove_type":"identifying_data","status_note":"Talep dogrulandi","notification":true}'const res = await fetch('https://panel.ornek.com/api/v1/admin/clients/gdpr-requests/9/process', {
method: 'POST',
headers: {
Authorization: `Bearer ${apiKey}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
status: 'anonymize',
remove_type: 'identifying_data',
status_note: 'Talep dogrulandi',
notification: true,
}),
});
const body = await res.json();$ch = curl_init('https://panel.ornek.com/api/v1/admin/clients/gdpr-requests/9/process');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . $apiKey,
'Content-Type: application/json',
],
CURLOPT_POSTFIELDS => json_encode([
'status' => 'anonymize',
'remove_type' => 'identifying_data',
'status_note' => 'Talep dogrulandi',
]),
]);
$body = json_decode(curl_exec($ch), true);
curl_close($ch);$response = Api::Clients()->ProcessGdprRequest([
'rid' => 9,
'status' => 'anonymize',
'remove_type' => 'identifying_data',
'status_note' => 'Talep dogrulandi',
]);
$applied = $response['data']['remove_action'] ?? 'none';{
"data": {
"processed": true,
"status": "anonymize",
"remove_action": "identifying_data",
"blacklist": 0
}
}{
"error": {
"code": "blocked_by_gate",
"message": "The removal was blocked by a hook."
}
}Talebi Silme
Talep kaydını siler. Müşterinin verisine dokunmaz; yalnız kayıt gider.
curl -X DELETE 'https://panel.ornek.com/api/v1/admin/clients/gdpr-requests/9' \
-H "Authorization: Bearer $API_KEY"const res = await fetch('https://panel.ornek.com/api/v1/admin/clients/gdpr-requests/9', {
method: 'DELETE',
headers: { Authorization: `Bearer ${apiKey}` },
});
const body = await res.json();$ch = curl_init('https://panel.ornek.com/api/v1/admin/clients/gdpr-requests/9');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'DELETE',
CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . $apiKey],
]);
$body = json_decode(curl_exec($ch), true);
curl_close($ch);$response = Api::Clients()->DeleteGdprRequest(['rid' => 9]);Ayarları Getirme
Özelliğin açık olup olmadığını, bağlı sözleşme sayfasını ve hazır red nedenlerini döndürür.
curl 'https://panel.ornek.com/api/v1/admin/clients/gdpr-settings' \
-H "Authorization: Bearer $API_KEY"const res = await fetch('https://panel.ornek.com/api/v1/admin/clients/gdpr-settings', {
headers: { Authorization: `Bearer ${apiKey}` },
});
const body = await res.json();$ch = curl_init('https://panel.ornek.com/api/v1/admin/clients/gdpr-settings');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . $apiKey],
]);
$body = json_decode(curl_exec($ch), true);
curl_close($ch);$response = Api::Clients()->GetGdprSettings();Ayarları Kaydetme
Özelliği açar ya da kapatır ve sözleşme sayfasını bağlar.
gdpr-contracts.curl -X PUT 'https://panel.ornek.com/api/v1/admin/clients/gdpr-settings' \
-H "Authorization: Bearer $API_KEY" \
-H 'Content-Type: application/json' \
-d '{"enabled":true,"required":true,"contract_page_id":12}'const res = await fetch('https://panel.ornek.com/api/v1/admin/clients/gdpr-settings', {
method: 'PUT',
headers: {
Authorization: `Bearer ${apiKey}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({ enabled: true, required: true, contract_page_id: 12 }),
});
const body = await res.json();$ch = curl_init('https://panel.ornek.com/api/v1/admin/clients/gdpr-settings');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'PUT',
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . $apiKey,
'Content-Type: application/json',
],
CURLOPT_POSTFIELDS => json_encode([
'enabled' => true,
'required' => true,
'contract_page_id' => 12,
]),
]);
$body = json_decode(curl_exec($ch), true);
curl_close($ch);$response = Api::Clients()->SaveGdprSettings([
'enabled' => true,
'required' => true,
'contract_page_id' => 12,
]);Sözleşme Sayfalarını Arama
Sözleşme olarak bağlanabilecek sayfaları döndürür. contract_page_id için kaynak budur.
contract_page_id olarak bunu gönderirsiniz.curl 'https://panel.ornek.com/api/v1/admin/clients/gdpr-contracts' \
-H "Authorization: Bearer $API_KEY"const res = await fetch('https://panel.ornek.com/api/v1/admin/clients/gdpr-contracts', {
headers: { Authorization: `Bearer ${apiKey}` },
});
const body = await res.json();$ch = curl_init('https://panel.ornek.com/api/v1/admin/clients/gdpr-contracts');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . $apiKey],
]);
$body = json_decode(curl_exec($ch), true);
curl_close($ch);$response = Api::Clients()->GetGdprContracts();Red Nedenlerini Listeleme
Talep reddederken kullanılan hazır metinleri döndürür.
curl 'https://panel.ornek.com/api/v1/admin/clients/gdpr-denial-reasons' \
-H "Authorization: Bearer $API_KEY"const res = await fetch('https://panel.ornek.com/api/v1/admin/clients/gdpr-denial-reasons', {
headers: { Authorization: `Bearer ${apiKey}` },
});
const body = await res.json();$ch = curl_init('https://panel.ornek.com/api/v1/admin/clients/gdpr-denial-reasons');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . $apiKey],
]);
$body = json_decode(curl_exec($ch), true);
curl_close($ch);$response = Api::Clients()->GetGdprDenialReasons();Red Nedeni Ekleme
Listeye yeni bir hazır neden ekler.
value boş gönderildi.curl -X POST 'https://panel.ornek.com/api/v1/admin/clients/gdpr-denial-reasons' \
-H "Authorization: Bearer $API_KEY" \
-H 'Content-Type: application/json' \
-d '{"value":"Yasal saklama suresi dolmadi"}'const res = await fetch('https://panel.ornek.com/api/v1/admin/clients/gdpr-denial-reasons', {
method: 'POST',
headers: {
Authorization: `Bearer ${apiKey}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({ value: 'Yasal saklama suresi dolmadi' }),
});
const body = await res.json();$ch = curl_init('https://panel.ornek.com/api/v1/admin/clients/gdpr-denial-reasons');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . $apiKey,
'Content-Type: application/json',
],
CURLOPT_POSTFIELDS => json_encode(['value' => 'Yasal saklama suresi dolmadi']),
]);
$body = json_decode(curl_exec($ch), true);
curl_close($ch);$response = Api::Clients()->AddGdprDenialReason(['value' => 'Yasal saklama suresi dolmadi']);Red Nedeni Silme
Bir nedeni listeden çıkarır. Kimlik değil, metnin kendisi gönderilir.
value boş gönderildi.curl -X DELETE 'https://panel.ornek.com/api/v1/admin/clients/gdpr-denial-reasons' \
-H "Authorization: Bearer $API_KEY" \
-H 'Content-Type: application/json' \
-d '{"value":"Yasal saklama suresi dolmadi"}'const res = await fetch('https://panel.ornek.com/api/v1/admin/clients/gdpr-denial-reasons', {
method: 'DELETE',
headers: {
Authorization: `Bearer ${apiKey}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({ value: 'Yasal saklama suresi dolmadi' }),
});
const body = await res.json();$ch = curl_init('https://panel.ornek.com/api/v1/admin/clients/gdpr-denial-reasons');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'DELETE',
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . $apiKey,
'Content-Type: application/json',
],
CURLOPT_POSTFIELDS => json_encode(['value' => 'Yasal saklama suresi dolmadi']),
]);
$body = json_decode(curl_exec($ch), true);
curl_close($ch);$response = Api::Clients()->DeleteGdprDenialReason(['value' => 'Yasal saklama suresi dolmadi']);Tuzaklar
Talep detayı invoice_count taşır. Fatura çoğu ülkede yasal saklama süresine tabidir; faturası olan bir müşteride all istemek o yükümlülükle çarpışabilir. Alan bu yüzden yanıttadır.
blocked_by_gate hatası isteğinizin yanlış olduğunu değil, kurulumdaki bir eklentinin silmeyi engellediğini söyler. Kendi kancanızı yazdıysanız önce oraya bakın.
Silme ucu yalnız talep kaydını kaldırır. Müşterinin verisi olduğu gibi kalır; kaldırma yalnız işleme ucundan çalışır.
İlgili Makaleler
Geri bildiriminiz için teşekkürler!
Yukarıda bulamadığınız her şey için destek ekibimiz her zaman yanınızda.