curl -X POST 'https://verification.didit.me/v3/users/delete/' \
-H 'x-api-key: YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{"vendor_data_list": ["user-123", "user-456"]}'from didit import Didit
# Reads DIDIT_API_KEY.
client = Didit()
result = client.users.batch_delete(
vendor_data_list=["user-123", "user-456"],
)
print(result)import Didit from "@didit-protocol/sdk-node";
// Reads DIDIT_API_KEY.
const didit = new Didit();
const result = await didit.users.batchDelete({
vendor_data_list: ["user-123", "user-456"],
});
console.log(result);ctx := context.Background()
// Reads DIDIT_API_KEY.
client := didit.NewClient()
result, err := client.Users.BatchDelete(ctx, didit.UsersBatchDeleteParams{
VendorDataList: didit.Some([]string{"user-123", "user-456"}),
})
if err != nil {
log.Fatal(err)
}
fmt.Printf("%+v\n", result)import java.util.List;
import me.didit.Didit;
import me.didit.types.UsersBatchDeleteParams;
// Reads DIDIT_API_KEY.
Didit client = new Didit();
var result = client.users().batchDelete(UsersBatchDeleteParams.builder()
.vendorDataList(List.of("user-123", "user-456"))
.build());
System.out.println(result);<?php
require 'vendor/autoload.php';
use Didit\DiditClient;
// Reads DIDIT_API_KEY.
$didit = new DiditClient();
$result = $didit->users->batchDelete([
'vendor_data_list' => ['user-123', 'user-456'],
]);
print_r($result->toArray());require "didit"
# Reads DIDIT_API_KEY.
didit = Didit::Client.new
result = didit.users.batch_delete(vendor_data_list: ["user-123", "user-456"])
puts result.to_husing System;
using System.Text.Json;
using Didit;
// Reads DIDIT_API_KEY.
using var client = new DiditClient();
var result = await client.Users.BatchDeleteAsync(new UsersBatchDeleteParams
{
VendorDataList = new string[] { "user-123", "user-456" },
});
Console.WriteLine(JsonSerializer.Serialize(result));{
"deleted": 2
}Hapus Pengguna Massal API: Penghapusan GDPR
Hapus pengguna vendor Didit secara massal berdasarkan vendor_data, atau hapus semua pengguna dalam sebuah aplikasi. Sesuai GDPR dan hak CCPA untuk dilupakan.
curl -X POST 'https://verification.didit.me/v3/users/delete/' \
-H 'x-api-key: YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{"vendor_data_list": ["user-123", "user-456"]}'from didit import Didit
# Reads DIDIT_API_KEY.
client = Didit()
result = client.users.batch_delete(
vendor_data_list=["user-123", "user-456"],
)
print(result)import Didit from "@didit-protocol/sdk-node";
// Reads DIDIT_API_KEY.
const didit = new Didit();
const result = await didit.users.batchDelete({
vendor_data_list: ["user-123", "user-456"],
});
console.log(result);ctx := context.Background()
// Reads DIDIT_API_KEY.
client := didit.NewClient()
result, err := client.Users.BatchDelete(ctx, didit.UsersBatchDeleteParams{
VendorDataList: didit.Some([]string{"user-123", "user-456"}),
})
if err != nil {
log.Fatal(err)
}
fmt.Printf("%+v\n", result)import java.util.List;
import me.didit.Didit;
import me.didit.types.UsersBatchDeleteParams;
// Reads DIDIT_API_KEY.
Didit client = new Didit();
var result = client.users().batchDelete(UsersBatchDeleteParams.builder()
.vendorDataList(List.of("user-123", "user-456"))
.build());
System.out.println(result);<?php
require 'vendor/autoload.php';
use Didit\DiditClient;
// Reads DIDIT_API_KEY.
$didit = new DiditClient();
$result = $didit->users->batchDelete([
'vendor_data_list' => ['user-123', 'user-456'],
]);
print_r($result->toArray());require "didit"
# Reads DIDIT_API_KEY.
didit = Didit::Client.new
result = didit.users.batch_delete(vendor_data_list: ["user-123", "user-456"])
puts result.to_husing System;
using System.Text.Json;
using Didit;
// Reads DIDIT_API_KEY.
using var client = new DiditClient();
var result = await client.Users.BatchDeleteAsync(new UsersBatchDeleteParams
{
VendorDataList = new string[] { "user-123", "user-456" },
});
Console.WriteLine(JsonSerializer.Serialize(result));{
"deleted": 2
}Ringkasan
Menghapus satu atau beberapa entitas pengguna. Catatan pengguna dihapus secara permanen. Sesi verifikasi mereka tidak tercakup oleh endpoint ini, dan tetap ada, tetapi tautannya ke pengguna dikosongkan. Hapus sesi tersebut dengan Hapus Sesi atau Hapus Sesi Massal. Transaksi juga tidak tercakup. Hapus transaksi dengan Hapus Transaksi Massal.Kapan digunakan
- Permintaan hak untuk dilupakan (GDPR / CCPA).
- Pembersihan pengguna uji selama QA.
- Penonaktifan pengguna yang dihapus dari platform Anda sendiri.
Catatan
- Menerima daftar nilai
vendor_data, daftar nilaididit_internal_id, ataudelete_all: true. Kedua daftar dapat digabungkan dan dievaluasi dengan OR. - Endpoint ini tidak pernah mempersempit
delete_alldengan filter. Parameter batchfilter_*dari Console ditolak dengan400, sehingga permintaan dengan kriteria yang dipersempit tidak menghapus semua pengguna di aplikasi. Pengecualiannya adalahfilter_has_approved_sessionsdanfilter_has_declined_sessions. Keduanya tidak ditolak maupun diterapkan, jadi jangan kirimkan bersamadelete_all. - Semua-atau-tidak-sama-sekali: jika penghapusan tidak dapat diselesaikan untuk pengguna yang Anda pilih, tidak ada satu pun yang dihapus, dan Anda dapat mengulang permintaan yang sama dengan aman.
- Idempoten: mengirim ulang daftar yang sama mengembalikan
deleted: 0setelah eksekusi pertama. - Hanya mengembalikan jumlah yang dihapus, bukan laporan per item. Pengidentifikasi yang tidak cocok dengan apa pun dilewati secara diam-diam. Kirim daftar tanpa duplikat jika Anda ingin membandingkan
deleteddengan jumlah pengidentifikasi yang Anda kirim, karena pengidentifikasi yang berulang hanya dihitung sekali. - Tidak ada webhook yang dikirim untuk penghapusan. Webhook dikirim saat status dan data pengguna berubah, bukan saat penghapusan. Integrasi yang memerlukan sinyal penghapusan harus mencatatnya di sisi Anda sendiri.
- Sesi verifikasi yang terhubung dengan pengguna TIDAK dihapus oleh endpoint ini. Sesi tersebut tetap ada, dengan tautan ke pengguna dikosongkan, sehingga dokumen, wajah, dan medianya hanya dihapus setelah Anda menghapus sesi itu sendiri.
retain_face_embeddings(boolean, defaultfalse) danface_retention_days(1 sampai 3650) adalah pilihan eksplisit Anda untuk menyimpan satu templat biometrik tanpa gambar per orang yang dihapus, untuk deteksi duplikat, selama jumlah hari tersebut. Tidak ada informasi lain tentang orang tersebut yang disimpan. Hilangkan keduanya agar templat dihapus bersama pengguna.face_retention_daystanparetain_face_embeddings: true, atauretain_face_embeddings: truetanpaface_retention_days, mengembalikan400padaface_retention_days.- Kecuali Anda menetapkan
retain_face_embeddingsketrue, templat biometrik yang tersimpan dan terkait dengan pengguna DIHAPUS, sebelum pengguna dihapus. Jika templat tidak dapat dihapus karena penyimpanan biometrik tidak tersedia, panggilan mengembalikan503, tidak ada pengguna dalam permintaan yang dihapus, dan mengulang permintaan akan menyelesaikan prosesnya.
Data dalam laporan regulasi yang difinalisasi
Jika ada orang yang dipilih yang merupakan bagian dari kasus dengan laporan regulasi yang telah difinalisasi, seluruh permintaan mengembalikan409 dan tidak ada yang dihapus. Respons menggunakan code: in_filed_report dan menyebutkan setiap laporan, sehingga Anda dapat membukanya di Console:
{
"detail": "A case about this person or company has a filed regulatory report, so it cannot be deleted.",
"code": "in_filed_report",
"reports": [
{
"uuid": "5ec00000-0000-4000-8000-000000000007",
"report_number": "SAR-0001",
"report_type": "SAR",
"case_uuid": "c1a5e000-0000-4000-8000-000000000001"
}
]
}
Penghapusan yang sedang berjalan
Setiap orang dihapus oleh satu permintaan dalam satu waktu. Jika permintaan lain masih menghapus salah satu orang yang dipilih, permintaan ini menunggu paling lama beberapa detik, lalu mengembalikan409 dengan code: subject_deletion_in_progress dan tidak menghapus apa pun:
{
"detail": "This person or company is being deleted. Retry after deletion completes.",
"code": "subject_deletion_in_progress"
}
Izin
Setiap kunci API aktif dari aplikasi dapat memanggil endpoint ini. Kunci API Didit bersifat terikat pada aplikasi, bukan pada peran: peran dan izin di Console (delete:users dan lainnya) menentukan apa yang dapat dilakukan seseorang di Console, dan tidak dievaluasi untuk lalu lintas Management API. Untuk mengontrol siapa yang dapat memanggil endpoint ini, atur siapa yang dapat membaca kunci API aplikasi.
Terkait
Otorisasi
Kunci API aplikasi Anda, dari Developers -> API keys di Business Console. Kunci utama memiliki akses penuh. Kunci bernama dapat diberi cakupan: none, read, atau write per sumber daya, dibatasi pada beberapa alur kerja atau pada sesi yang disetujui, pada daftar alamat IP, dan pada tanggal kedaluwarsa. 401 berarti kuncinya salah, dicabut, atau kedaluwarsa; 403 berarti tidak ada kunci yang dikirimkan, kunci tidak memiliki akses ke sumber daya atau tindakan ini, atau permintaan datang dari alamat di luar daftar IP-nya; 404 pada rute sesi berarti sesi berada di luar alur kerja atau status kunci tersebut. Kunci tanpa akses media menerima URL gambar, video, dan PDF sebagai null, dan kunci tanpa izin tulis sesi menerima tautan sesi dan token sebagai null. Lihat https://docs.didit.me/console/api-keys.
Body
Sediakan vendor_data_list, didit_internal_id_list, atau delete_all: true. Kedua daftar dapat dikombinasikan dan digabungkan dengan operator OR. Jika delete_all bernilai true, ini diprioritaskan dan kedua daftar diabaikan.
Pengenal Anda sendiri yang akan dihapus, dicocokkan persis seperti yang dikirimkan.
ID pengguna internal Didit yang akan dihapus - didit_internal_id yang dikembalikan oleh endpoint pembuatan dan pengambilan.
Jika true, menghapus setiap pengguna di aplikasi.
Pilihan eksplisit Anda untuk menyimpan satu templat biometrik bebas gambar dari setiap individu yang dihapus untuk deteksi duplikat, selama face_retention_days. Segala hal lain tentang individu tersebut akan dihapus. Tiadakan, atau kirim false, untuk menghapus templat bersama dengan pengguna. Jika true, face_retention_days wajib diisi.
Jumlah hari templat biometrik bebas gambar disimpan saat retain_face_embeddings bernilai true. Wajib diisi bersamanya, dan ditolak tanpanya dengan kode 400 pada face_retention_days.
1 <= x <= 3650365
Respons
Pengguna dihapus. Mengembalikan jumlah pengguna yang benar-benar dihapus.
Jumlah pengguna yang dihapus (tidak termasuk nilai vendor_data yang tidak cocok dengan apa pun).