Langsung ke konten utama
POST
curl

Perilaku

Setiap sesi yang cocok dihapus dengan cara yang sama persis seperti Hapus Sesi: sesi itu sendiri, setiap percobaan verifikasi yang dimilikinya, keputusan dan data yang diekstrak, catatan fitur, dan semua file tersimpannya dihapus. Sesi tersebut juga hilang dari setiap endpoint baca, dan URL media yang sudah diterbitkan sebelumnya berhenti dapat diakses. Pengiriman webhook yang masih antre untuk sesi yang dihapus, beserta percobaan ulangnya, dibatalkan. Webhook yang sudah terkirim tidak terpengaruh. Penghapusan bersifat permanen dan tidak dapat dibatalkan. Jika salah satu sesi yang dipilih menjadi bagian dari laporan regulasi yang sudah final, seluruh permintaan mengembalikan 409 dan tidak ada yang dihapus. Respons menggunakan code: in_filed_report dan menyebutkan setiap laporan. Hapus setiap laporan dengan Hapus Laporan, lalu ulangi permintaan. Menghapus laporan tidak menghapus sesi. Sesi tetap ada sampai Anda mengulangi permintaan ini. Jumlah sesi yang cocok menentukan cara permintaan dijawab, baik Anda memilih sesi dengan session_numbers maupun dengan delete_all: Hasil hanya mengonfirmasi bahwa sesi telah dihapus, kecuali jika face_retention_outcome-nya adalah failed_retryable. Sesi tersebut tidak dihapus dan masih ada. Perlakukan hasil itu sebagai kegagalan yang perlu dicoba ulang, bukan sebagai konfirmasi penghapusan. Nomor yang tidak cocok dengan sesi KYC aktif di aplikasi Anda dilewati dan tidak muncul di results.

Mempersempit delete_all dengan filter

Dengan delete_all: true, Anda dapat mempersempit pilihan menggunakan filter dari Daftar Sesi, masing-masing diawali dengan filter_. Filter tersebut menerima nilai yang sama seperti parameter query. Filter yang menerima beberapa nilai (status, workflow_id, country, region, document_type, document_name, session_type, warning, organization_name) menerima string yang dipisahkan koma atau array:
  • Filter hanya berlaku bersama delete_all. Dengan session_numbers, filter hanya diperiksa dan tidak mengubah pilihan.
  • Setiap filter lain hanya menerima satu nilai. Array digabungkan menjadi satu nilai yang dipisahkan koma. Akibatnya, beberapa tanggal, UUID, atau nilai api_service menghasilkan 400. Beberapa teks vendor_data, search, atau screened_full_name juga tidak dicocokkan sebagai alternatif.
  • Filter dengan nilai kosong diabaikan, sehingga tidak mempersempit pilihan.
  • Kunci filter_* yang tidak dikenal mengembalikan 400 {"filter_reviewer": "Unknown filter."}. Nilai yang tidak dapat dibaca mengembalikan 400 dengan kunci filter_* tersebut, misalnya {"filter_date_from": ["Enter a valid date."]}. Dalam kedua kasus itu tidak ada yang dihapus, sehingga filter yang salah ketik tidak pernah memperluas penghapusan ke semua sesi.
  • Pekerjaan penghapusan menerapkan filter yang sama. Seperti setiap delete_all, pekerjaan ini hanya mencakup sesi yang dibuat sebelum permintaan.

Kolom retensi dan instruksi

Endpoint ini menerima kolom opsional yang sama dengan endpoint satu sesi, dan menerapkannya ke setiap sesi yang cocok: Lihat Hapus Sesi untuk mengetahui apa saja yang dimuat dan tidak dimuat dalam templat yang dipertahankan, cara expires_at dihitung, dan apa yang dilakukan instruksi penghapusan privasi.

Hasil per sesi

Untuk hingga 20 sesi yang cocok, 200 OK mengembalikan satu hasil per sesi:
Setiap hasil memuat kolom yang sama dengan respons Hapus Sesi. biometric_template_expires_at adalah waktu templat yang dipertahankan dihapus, dan deleted_child_verifications selalu 0 di sini karena endpoint ini hanya menghapus sesi KYC. Sesi dihapus per kelompok. Jika sebuah kelompok tidak dapat dihapus, setiap sesi di dalamnya dilaporkan sebagai failed_retryable. Kelompok lain tidak terpengaruh dan tetap terhapus.

Pemilihan dalam jumlah besar dijalankan sebagai job

Jika lebih dari 20 sesi cocok, respons berupa 202 Accepted dengan job penghapusan, bukan results:
Lakukan polling ke Dapatkan Job Penghapusan Sesi setiap beberapa detik hingga status menjadi COMPLETED atau FAILED.
  • Job hanya melaporkan jumlah sesi per hasil, dan tidak pernah melaporkan sesi mana yang dihapus.
  • Job delete_all hanya menghapus sesi yang dibuat sebelum permintaan Anda. Sesi yang dimulai selama job berjalan tidak dihapus.
  • Kolom retensi dan instruksi dari permintaan Anda berlaku untuk setiap sesi yang dihapus oleh job.
  • Jika suatu kelompok belum dapat dihapus, job akan mencoba lagi secara otomatis.
  • Job yang FAILED menjelaskan penyebabnya di error. Sesi yang belum dijangkau job masih ada: ulangi permintaan untuk menghapusnya.

Contoh

Migrasi dari respons 204

Hingga rilis ini, endpoint mengembalikan 204 No Content. Sekarang endpoint mengembalikan 200 OK dengan results[], atau 202 Accepted dengan job penghapusan untuk lebih dari 20 sesi yang cocok. Perbarui klien yang mengharapkan 204. Perilaku penghapusan default tidak berubah: aplikasi yang ada tetap menggunakan delete_with_session sampai Anda secara eksplisit mengubah kebijakan.

Terkait

Otorisasi

x-api-key
string
header
wajib

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

application/json
session_numbers
string[]

Nilai numerik session_number dari sesi KYC yang akan dihapus, sebagai string khusus digit (angka JSON juga diterima dan dikonversi). Wajib diisi kecuali delete_all bernilai true; daftar kosong mengembalikan 400. Setiap entri non-digit menolak seluruh permintaan dengan 400 (kecuali delete_all bernilai true, di mana validasi dilewati dan entri diabaikan). Nomor yang tidak cocok dengan sesi aktif di aplikasi Anda akan dilewati tanpa peringatan.

Minimum array length: 1
Pattern: ^[0-9]+$
Contoh:
delete_all
boolean
default:false

Jika true, setiap sesi KYC yang tersisa di aplikasi pemanggil akan dihapus dan session_numbers diabaikan, kecuali Anda mempersempit pilihan dengan kunci filter_*. Lebih dari 20 sesi yang cocok akan dijalankan sebagai tugas penghapusan (202) yang hanya mencakup sesi yang dibuat sebelum permintaan. Default ke false. Tidak dapat dibatalkan; tidak ada langkah konfirmasi.

Contoh:

false

retain_face_embeddings
boolean | null

Timpa face_retention_policy aplikasi untuk penghapusan ini. true mempertahankan satu templat biometrik wajah bebas gambar yang ditautkan ke Pengguna sesi setelah sesi dihapus; false menghapus embedding wajah bersama sesi; abaikan atau gunakan null untuk mengikuti kebijakan aplikasi. Diabaikan untuk sesi KYB dan untuk sesi tanpa embedding wajah.

Contoh:

true

face_retention_days
integer

Durasi retensi terbatas, dalam hari, untuk templat yang disimpan. Wajib diisi saat templat disimpan kecuali aplikasi sudah menyetel face_retention_days. expires_at templat adalah yang paling awal di antara durasi ini, jendela retensi data umum aplikasi, dan face_retention_deadline.

Rentang yang diperlukan: 1 <= x <= 3650
Contoh:

365

face_retention_deadline
string<date-time>

Kedaluwarsa mutlak opsional untuk templat yang disimpan. Harus berada di masa mendatang.

Contoh:

"2027-08-28T00:00:00Z"

deletion_instruction
enum<string>
default:operational_session_delete

Kelas instruksi yang Anda berikan. operational_session_delete menghapus sesi dan mempertahankan templat hanya jika kebijakan atau retain_face_embeddings menentukannya. privacy_erasure menghapus permanen setiap templat biometrik tersimpan yang terkait dengan Pengguna sesi tersebut sebelum menghapus sesi, tidak dapat ditimpa oleh kebijakan aplikasi, dan tidak dapat digabungkan dengan retain_face_embeddings: true (400).

Opsi yang tersedia:
operational_session_delete,
privacy_erasure
Contoh:

"operational_session_delete"

instruction_id
string

Referensi permanen Anda untuk instruksi penghapusan ini (misalnya id tiket penghapusan). Dicatat pada jejak audit dan pada setiap templat yang dipertahankan. Dihasilkan oleh Didit jika ditiadakan.

Maximum string length: 255
Contoh:

"dsar-2026-0142"

filter_status

Mempersempit delete_all ke sesi yang cocok dengan filter status dari Daftar Sesi, dengan nilai yang sama. String yang dipisahkan koma atau sebuah array. Diabaikan tanpa delete_all. Nilai kosong diabaikan dan tidak mempersempit pilihan.

filter_vendor_data
string

Mempersempit delete_all ke sesi yang cocok dengan filter vendor_data dari Daftar Sesi, dengan nilai yang sama. Satu nilai, bukan daftar: array digabungkan menjadi satu teks yang dipisahkan koma, sehingga beberapa nilai tidak dicocokkan sebagai alternatif. Diabaikan tanpa delete_all. Nilai kosong diabaikan dan tidak mempersempit pilihan.

Mempersempit delete_all ke sesi yang cocok dengan filter search dari Daftar Sesi, dengan nilai yang sama. Satu nilai, bukan daftar: array digabungkan menjadi satu teks yang dipisahkan koma, sehingga beberapa nilai tidak dicocokkan sebagai alternatif. Diabaikan tanpa delete_all. Nilai kosong diabaikan dan tidak mempersempit pilihan.

filter_workflow_id

Mempersempit delete_all ke sesi yang cocok dengan filter workflow_id dari Daftar Sesi, dengan nilai yang sama. String yang dipisahkan koma atau sebuah array. Diabaikan tanpa delete_all. Nilai kosong diabaikan dan tidak mempersempit pilihan.

filter_date_from
string<date>

Mempersempit delete_all ke sesi yang cocok dengan filter date_from dari List Sessions, dengan nilai yang sama. Satu nilai, bukan daftar: array digabungkan menjadi satu nilai yang dipisahkan koma, sehingga beberapa nilai ditolak dengan 400. Diabaikan tanpa delete_all. Nilai kosong diabaikan dan tidak mempersempit pilihan.

filter_date_to
string<date>

Mempersempit delete_all ke sesi yang cocok dengan filter date_to dari List Sessions, dengan nilai yang sama. Satu nilai, bukan daftar: array digabungkan menjadi satu nilai yang dipisahkan koma, sehingga beberapa nilai ditolak dengan 400. Diabaikan tanpa delete_all. Nilai kosong diabaikan dan tidak mempersempit pilihan.

filter_country

Mempersempit delete_all ke sesi yang cocok dengan filter country dari List Sessions, dengan nilai yang sama. String yang dipisahkan koma atau array. Diabaikan tanpa delete_all. Nilai kosong diabaikan dan tidak mempersempit pilihan.

filter_document_type

Mempersempit delete_all ke sesi yang cocok dengan filter document_type dari List Sessions, dengan nilai yang sama. String yang dipisahkan koma atau array. Diabaikan tanpa delete_all. Nilai kosong diabaikan dan tidak mempersempit pilihan.

filter_document_name

Mempersempit delete_all ke sesi yang cocok dengan filter document_name dari List Sessions, dengan nilai yang sama. String yang dipisahkan koma atau array. Diabaikan tanpa delete_all. Nilai kosong diabaikan dan tidak mempersempit pilihan.

filter_region

Mempersempit delete_all ke sesi yang cocok dengan filter region dari Daftar Sesi, dengan nilai yang sama. String yang dipisahkan koma atau sebuah array. Diabaikan tanpa delete_all. Nilai kosong diabaikan dan tidak mempersempit pilihan.

filter_didit_internal_id
string<uuid>

Mempersempit delete_all ke sesi yang cocok dengan filter didit_internal_id dari List Sessions, dengan nilai yang sama. Satu nilai, bukan daftar: array digabungkan menjadi satu nilai yang dipisahkan koma, sehingga beberapa nilai ditolak dengan 400. Diabaikan tanpa delete_all. Nilai kosong diabaikan dan tidak mempersempit pilihan.

filter_session_type

Mempersempit delete_all ke sesi yang cocok dengan filter session_type dari Daftar Sesi, dengan nilai yang sama. String yang dipisahkan koma atau sebuah array. Diabaikan tanpa delete_all. Nilai kosong diabaikan dan tidak mempersempit pilihan.

filter_api_service
string

Mempersempit delete_all ke sesi yang cocok dengan filter api_service dari List Sessions, dengan nilai yang sama. Satu nilai, bukan daftar: array digabungkan menjadi satu nilai yang dipisahkan koma, sehingga beberapa nilai ditolak dengan 400. Diabaikan tanpa delete_all. Nilai kosong diabaikan dan tidak mempersempit pilihan.

filter_screened_full_name
string

Mempersempit delete_all ke sesi yang cocok dengan filter screened_full_name dari Daftar Sesi, dengan nilai yang sama. Satu nilai, bukan daftar: array digabungkan menjadi satu teks yang dipisahkan koma, sehingga beberapa nilai tidak dicocokkan sebagai alternatif. Diabaikan tanpa delete_all. Nilai kosong diabaikan dan tidak mempersempit pilihan.

filter_warning

Mempersempit delete_all ke sesi yang cocok dengan filter warning dari Daftar Sesi, dengan nilai yang sama. String yang dipisahkan koma atau sebuah array. Diabaikan tanpa delete_all. Nilai kosong diabaikan dan tidak mempersempit pilihan.

filter_status_initialized_as_in_review
boolean

Mempersempit delete_all ke sesi yang cocok dengan filter status_initialized_as_in_review dari Daftar Sesi, dengan nilai yang sama. Diabaikan tanpa delete_all. Nilai kosong diabaikan dan tidak mempersempit pilihan.

filter_is_kyc_to_be_reviewed
boolean

Mempersempit delete_all ke sesi yang cocok dengan filter is_kyc_to_be_reviewed dari List Sessions, dengan nilai yang sama. Diabaikan tanpa delete_all. Nilai kosong diabaikan dan tidak mempersempit pilihan.

filter_euuid
string<uuid>

Mempersempit delete_all ke sesi yang cocok dengan filter euuid dari List Sessions, dengan nilai yang sama. Satu nilai, bukan daftar: array digabungkan menjadi satu nilai yang dipisahkan koma, sehingga beberapa nilai ditolak dengan 400. Diabaikan tanpa delete_all. Nilai kosong diabaikan dan tidak mempersempit pilihan.

filter_organization_name

Mempersempit delete_all ke sesi yang cocok dengan filter organization_name dari Daftar Sesi, dengan nilai yang sama. String yang dipisahkan koma atau sebuah array. Dengan kunci API, ini hanya dapat mencocokkan nama organisasi Anda sendiri, sehingga ini memilih semua sesi Anda atau tidak sama sekali. Diabaikan tanpa delete_all. Nilai kosong diabaikan dan tidak mempersempit pilihan.

Respons

Hingga 20 sesi yang cocok ditemukan dan diproses dalam permintaan. Satu hasil per sesi yang cocok; nomor yang tidak cocok dengan apa pun (tidak dikenal atau sudah dihapus) dilewati dan tidak muncul. Hasil mengonfirmasi penghapusan kecuali jika face_retention_outcome adalah failed_retryable: sesi tersebut TIDAK dihapus dan harus dicoba lagi.

results
object[]
Terakhir diubah pada 7 November 2026