Langsung ke konten utama
Setiap sesi verifikasi melewati serangkaian status. Memahami status-status ini membantu Anda memantau kemajuan pengguna, mengotomatiskan keputusan kepatuhan, dan mengoptimalkan konversi. Enum ini adalah satu-satunya sumber kebenaran untuk string yang dikembalikan oleh GET /v3/session/<id>/decision/ dan setiap webhook Didit.

Semua Nilai Status

Setiap status adalah string persis yang dikembalikan oleh API dan webhook Didit. Selalu gunakan pencocokan string yang ketat (misalnya === "In Review") dalam kode Anda, karena nilai-nilai ini peka terhadap huruf besar-kecil dan mengandung spasi. Nilai Kyc Expired juga menggunakan huruf kapital K tunggal (bukan KYC).

Status Sesi

Nilai API: "Not Started"Sesi telah dibuat melalui API, tetapi pengguna belum membuka tautan verifikasi.
  • Yang perlu dilakukan: Tunggu hingga pengguna memulai, atau kirim pengingat jika waktu berlalu terlalu lama.
  • Beralih ke: "In Progress", "Expired"
Nilai API: "In Progress"Pengguna telah membuka tautan dan sedang menyelesaikan langkah verifikasi secara aktif (pengambilan dokumen, liveness, dan lainnya).
  • Yang perlu dilakukan: Tidak ada tindakan yang diperlukan, pengguna sedang menjalani alur.
  • Beralih ke: "Approved", "Declined", "In Review", "Abandoned"
Nilai API: "Approved"Semua pemeriksaan verifikasi lulus. Identitas pengguna telah diverifikasi.
  • Yang perlu dilakukan: Berikan akses kepada pengguna, perbarui profilnya, dan simpan data keputusan.
  • Webhook menyertakan: Objek decision lengkap dengan semua hasil fitur.
  • Beralih ke: "Kyc Expired" (secara default saat tanggal kedaluwarsa dokumen yang diverifikasi terlewati, kecuali Expiration mode untuk negara dan jenis dokumen tersebut diatur ke Allow expired). Peninjau atau endpoint update-status juga dapat mengatur status ini ke "Declined" atau "Resubmitted".
Nilai API: "Declined"Satu atau lebih pemeriksaan verifikasi gagal. Pengguna tidak lolos verifikasi.
  • Yang perlu dilakukan: Beri tahu pengguna. Jika masalahnya dapat diperbaiki, Anda dapat meminta pengajuan ulang.
  • Webhook menyertakan: Objek decision lengkap dengan peringatan yang menjelaskan kegagalan tersebut.
  • Beralih ke: "Resubmitted" (jika peninjau memintanya). Peninjau atau endpoint update-status juga dapat mengatur status ini ke "Approved".
Nilai API: "In Review"Pemeriksaan otomatis menandai peringatan yang memerlukan peninjauan manusia. Peninjau kepatuhan harus membuat keputusan akhir.
  • Yang perlu dilakukan: Peninjau sebaiknya membuka sesi di Console dan menyetujui, menolak, atau meminta pengajuan ulang.
  • Webhook menyertakan: Objek decision lengkap dengan peringatan.
  • Beralih ke: "Approved", "Declined", "Resubmitted"
Nilai API: "Resubmitted"Peninjau telah meminta pengguna mengulangi langkah verifikasi tertentu (misalnya, mengambil ulang foto dokumen yang buram).
  • Yang perlu dilakukan: Tunggu hingga pengguna menyelesaikan langkah yang diajukan ulang. Sistem akan mengevaluasi ulang secara otomatis.
  • Webhook menyertakan: Objek resubmit_info dengan daftar fitur yang harus diulang beserta alasannya.
  • Beralih ke: "Approved", "Declined", "In Review", atau "Abandoned" jika jendela sesi berakhir sebelum pengguna mengulangi langkahnya.
Nilai API: "Expired"Sesi melewati batas waktu sebelum pengguna membuka tautan verifikasi.
  • Yang perlu dilakukan: Buat sesi baru dan kirim tautan baru kepada pengguna.
  • Status terminal: tidak ada transisi lebih lanjut.
Nilai API: "Abandoned"Pengguna memulai tetapi tidak menyelesaikan verifikasi dalam batas waktu yang diizinkan.
  • Yang perlu dilakukan: Kirim pengingat atau buat sesi baru.
  • Tidak ada transisi otomatis. Peninjau, atau PATCH /v3/session/{sessionId}/update-status/, tetap dapat mengatur status ini ke "Approved", "Declined", atau "Resubmitted".
Nilai API: "Kyc Expired"Dokumen yang diverifikasi selama sesi telah melewati tanggal kedaluwarsanya sendiri. Pemicunya adalah tanggal tersebut, bukan jangka waktu yang dihitung dari persetujuan, dan tidak ada peringatan yang dikirim sebelumnya.
  • Yang perlu dilakukan: Minta pengguna untuk memverifikasi ulang dengan sesi baru. status.updated mengirimkan transisi ini, dan hasil verifikasi identitas memuat peringatan DOCUMENT_EXPIRED.
  • Dikendalikan oleh: Expiration mode untuk negara dan jenis dokumen tersebut di ID verification → Additional settings by country & document type. Reject expired (default) memantau dokumen, sedangkan Allow expired berarti sesi tidak pernah berpindah ke status ini.
  • Tidak ada transisi otomatis. Peninjau, atau PATCH /v3/session/{sessionId}/update-status/, tetap dapat mengatur status ini ke "Approved", "Declined", atau "Resubmitted".

Transisi Status

Diagram siklus hidup


Terminal dan Non-Terminal


Menangani Status dalam Kode Anda

Gunakan webhook atau Retrieve Session API untuk merespons perubahan status.
Status adalah string yang persis, peka huruf besar/kecil, dan mengandung spasi. Misalnya, "In Review" (bukan "in_review" atau "IN_REVIEW"). Selalu gunakan kesamaan ketat (===) saat mencocokkan.

Pengajuan Ulang

Status Resubmitted memungkinkan tim kepatuhan Anda memberi pengguna kesempatan kedua tanpa membuat sesi baru.
1

Peninjau memulai pengajuan ulang

Dari Console, buka sesi In Review atau Declined lalu klik Minta Pengajuan Ulang. Pilih langkah mana yang perlu diulang.
2

Data sebelumnya diarsipkan

Sistem mereset fitur yang dipilih dan menandai data sebelumnya sebagai previous_attempt, sehingga jejak audit lengkap tetap tersimpan.
3

Pengguna diberi tahu

Jika email tersedia, pengguna menerima email yang telah dilokalkan dengan tautan langsung untuk melanjutkan.
4

Pengguna mengulang langkah tertentu

Pengguna hanya mengulang langkah yang ditandai, bukan seluruh verifikasi.
5

Sistem mengevaluasi ulang

Setelah selesai, sesi otomatis beralih ke "Approved", "Declined", atau "In Review".

Payload Webhook Pengajuan Ulang

reasons memetakan setiap node_id yang diajukan ulang ke kode peringatan dari log paling relevan pada langkah tersebut (kode yang sama dengan yang dilaporkan oleh keputusan), sehingga Anda dapat memetakannya ke teks Anda sendiri. Kode ini juga yang dilokalkan untuk pengguna oleh layar pengajuan ulang pada alur yang di-hosting dan oleh email pengajuan ulang, kecuali untuk peringatan yang dapat mengungkap sinyal skrining atau penipuan (duplikat, AML, daftar blokir, pemeriksaan lintas organisasi, integritas lokasi, dan sejenisnya). Untuk peringatan tersebut, pengguna hanya melihat alasan umum, dan resubmit_info.reasons di webhook Anda selalu berisi kode yang sebenarnya. Langkah tanpa peringatan yang tercatat tidak memiliki entri.

Fitur Mana yang Dapat Diajukan Ulang?

Fitur apa pun dengan status yang belum disetujui: Declined, In Review, Not Finished, Not Started, atau Expired.
Anda dapat meminta pengajuan ulang berkali-kali pada sesi yang sama. Setiap siklus mengarsipkan data percobaan sebelumnya, sehingga Anda memiliki visibilitas penuh atas riwayat verifikasi pengguna.

Praktik Terbaik

Pantau Dalam Peninjauan

Atur alert (email atau Slack) di Didit Console Anda agar Anda diberi tahu saat sesi memerlukan peninjauan manual.

Utamakan Pengajuan Ulang

Jika masalahnya dapat diperbaiki (foto buram, sisi dokumen yang salah), minta pengajuan ulang alih-alih menolak. Cara ini meningkatkan tingkat konversi.

Pantau Drop-off

Tingkat sesi yang Ditinggalkan atau Kedaluwarsa yang tinggi dapat menandakan hambatan UX. Pertimbangkan untuk menyesuaikan TTL sesi atau meningkatkan panduan bagi pengguna.

Penanganan Idempoten

Webhook dapat dikirim ulang. Gunakan session_id sebagai kunci unik untuk memastikan Anda memproses setiap perubahan status hanya sekali.
Selalu verifikasi tanda tangan webhook sebelum memproses payload. Didit menyediakan tiga metode: X-Signature, X-Signature-V2 (direkomendasikan), dan X-Signature-Simple yang sudah usang, yang hanya mengautentikasi amplop dan tidak pernah mengautentikasi isi decision. Lihat Webhooks untuk detailnya.
Terakhir diubah pada 7 November 2026