Langsung ke konten utama
PATCH
curl

Apa yang dilakukan ini

Sesi verifikasi terdiri dari fitur (langkah) individual: ID/OCR, Liveness, Pencocokan Wajah, AML, Bukti Alamat, Telepon, dan sebagainya. Endpoint ini memungkinkan Anda menetapkan status satu dari langkah tersebut menjadi Approved, Declined, atau In Review. Gunakan update-status saat Anda ingin menyetujui, menolak, atau membuka kembali seluruh sesi. Gunakan endpoint ini saat Anda hanya ingin mencatat keputusan pada satu langkah, misalnya untuk menandai langkah Pencocokan Wajah sebagai Declined dalam alur tinjauan Anda sendiri. Sesi yang sudah memiliki keputusan akan tetap mempertahankannya: hanya langkahnya yang berubah. Jika sesi belum memiliki keputusan dan alur kerjanya sedang menunggu tepat pada langkah ini, penerapan override akan menyelesaikan langkah tersebut, sama seperti jika langkah itu diselesaikan secara normal. Alur kerja kemudian berlanjut, langkah-langkah berikutnya dijalankan, dan node status dapat menetapkan keputusan sesi serta memicu webhook status.updated.

Menargetkan langkah dengan node_id

Dalam alur kerja berbasis graf, setiap langkah memiliki node_id (misalnya feature_ocr_1, feature_liveness_1, feature_aml_1). Anda dapat menemukannya di keputusan sesi: setiap fitur dalam keputusan V3 membawa node_id-nya. Untuk alur kerja non-graf (satu langkah), fitur yang mendasarinya tidak memiliki node ID. Kirimkan nilai literal default sebagai nodeId untuk menargetkannya. Karena tidak ada langkah pada alur kerja semacam itu yang memiliki node ID, kirimkan juga feature_type (misalnya LIVENESS, AML, atau FACE_MATCH) untuk menyatakan langkah yang dimaksud. feature_type yang tidak dikenal akan mengembalikan 400.

Tunggu hingga pengguna akhir menyelesaikan alur

Secara default, override langsung diterapkan. Jika pengguna akhir masih menjalani alur, override itu akan mengubah langkah di bawah alur yang masih berjalan; override kemudian dicatat dengan forced: true. Setel defer_until_flow_finishes: true untuk menunggu. Selama sesi berstatus Not Started, In Progress, atau Resubmitted dan pengguna akhir belum menyelesaikan alur, override disimpan sebagai pending_until_flow_finishes. Override diterapkan ketika pengguna akhir menyelesaikan alur, setelah alur mencapai keputusannya sendiri. Pada sesi yang alurnya sudah berakhir, override langsung diterapkan dalam kedua kasus. Override yang sedang menunggu dibatalkan, bukan diterapkan, ketika:
  • pengguna akhir mengulang langkah sebelum menyelesaikannya (check_changed),
  • override yang lebih baru pada langkah yang sama menggantikannya (replaced),
  • sesi keluar dari alur sebelum selesai: ditinggalkan, kedaluwarsa, atau diputuskan di tengah alur (session_closed),
  • Anda membatalkannya dengan Batalkan Override Fitur (cancelled_by_reviewer).
Objek override pada respons memberi tahu Anda apa yang terjadi: state bernilai applied atau pending_until_flow_finishes, dan applied_at diisi setelah override diterapkan. new_status pada tingkat atas adalah status tersimpan langkah tersebut, sehingga tetap tidak berubah selama override menunggu. Gunakan Daftar Override Fitur untuk melihat setiap override pada sesi dan apakah pengguna akhir masih berada dalam alur.

Dukungan KYC dan KYB

Berfungsi sama untuk sesi Verifikasi Pengguna (KYC) dan Verifikasi Bisnis (KYB): Didit menemukan sessionId di kedua jenis sesi tersebut. Jenis langkah yang didukung mencakup ID/OCR, Liveness, Pencocokan Wajah, NFC, AML, Bukti Alamat, Telepon, Email, Validasi Database, Kuesioner, serta pemeriksaan registri, dokumen, dan pihak kunci KYB.
Sesi API mandiri (yang dibuat melalui API verifikasi mandiri, session_type = API) tidak dapat diubah status fitur individualnya. Endpoint mengembalikan 400.

Contoh

Apa yang terjadi setelah pembaruan

  • Webhook: event data.updated dipicu ketika override diterapkan, baik langsung maupun saat alur selesai. Tidak ada yang dikirim selama override menunggu atau ketika dibatalkan.
  • Aktivitas: setiap override dicatat dalam Aktivitas sesi sebagai FEATURE_OVERRIDE_PENDING, FEATURE_OVERRIDE_APPLIED, atau FEATURE_OVERRIDE_CANCELLED, beserta aktornya (kunci API, pengguna, atau sistem ketika override yang menunggu diterapkan). Entri permintaan Anda mencantumkan comment sebagai alasannya. Pada larik reviews di keputusan sesi, entri ini muncul dengan new_status: null, dan entri permintaan Anda memiliki alasan di comment.
  • Keputusan sesi: sesi yang sudah memiliki keputusan akan tetap mempertahankannya. Untuk mengubah keputusan akhir, panggil update-status secara terpisah.

Izin

Memerlukan hak akses write:sessions, dengan kunci API klien (x-api-key) atau header otorisasi pengguna. Kunci API dengan cakupan terbatas memerlukan akses tulis ke keputusan.

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.

Parameter Path

sessionId
string<uuid>
wajib

UUID sesi verifikasi. Menerima ID sesi pengguna (KYC) dan bisnis (KYB) — layanan mencari ID tersebut di kedua jenis sesi.

Contoh:

"11111111-2222-3333-4444-555555555555"

nodeId
string
wajib

ID node graf alur kerja dari fitur yang akan diperbarui (misalnya feature_ocr_1). Gunakan nilai harfiah default untuk alur kerja non-graf (satu langkah) di mana fitur tersebut tidak memiliki ID node.

Contoh:

"feature_ocr_1"

Body

application/json
new_status
enum<string>
wajib

Status target untuk fitur ini. Harus berbeda dari nilai saat ini.

Opsi yang tersedia:
Approved,
Declined,
In Review
Contoh:

"Approved"

comment
string

Catatan teks bebas opsional yang dicatat pada jejak peninjauan sesi untuk perubahan fitur ini.

Contoh:

"Document manually verified by compliance."

feature_type
enum<string>

Jenis langkah mana yang ditargetkan. Diperlukan pada alur kerja non-graf (nodeId = default), di mana setiap langkah tidak berbagi node; jika tidak, bersifat opsional. Nilai yang tidak dikenal akan mengembalikan 400.

Opsi yang tersedia:
ID_VERIFICATION,
OCR,
OCR_BACK,
NFC,
LIVENESS,
FACE,
AGE_ESTIMATION,
AGE_VERIFICATION,
FACE_SEARCH,
FACE_MATCH,
IP_ANALYSIS,
AML,
PHONE,
PHONE_VERIFICATION,
EMAIL,
EMAIL_VERIFICATION,
POA,
PROOF_OF_ADDRESS,
DATABASE_VALIDATION,
DATA_VALIDATION,
QUESTIONNAIRE,
DOCUMENT_AI,
KYB_REGISTRY,
KYB_DOCUMENTS,
KYB_KEY_PEOPLE,
BANK_VERIFICATION,
GEOLOCATION
Contoh:

"LIVENESS"

defer_until_flow_finishes
boolean
default:false

Saat orang tersebut masih berada dalam alur, simpan override sebagai pending_until_flow_finishes dan terapkan saat alur selesai, alih-alih langsung diterapkan. Jika tidak dicantumkan atau false, override langsung diterapkan. Pada sesi yang alurnya sudah berakhir, override langsung diterapkan dalam kondisi apa pun.

Contoh:

false

Respons

Penggantian telah dicatat. new_status adalah status pemeriksaan yang tersimpan: status yang diminta setelah penggantian diterapkan, atau status yang tidak berubah saat menunggu alur selesai. override menyatakan apa yang terjadi.

session_id
string<uuid>
wajib
node_id
string | null
wajib

Node alur kerja langkah yang diperbarui, atau null untuk langkah tanpa node (jalur default dalam alur kerja non-graf).

Contoh:

"feature_ocr_1"

feature_type
string
wajib

Nama model dari fitur yang diperbarui (misalnya KYC, Face, FaceMatch, AML, POA).

Contoh:

"KYC"

new_status
string
wajib

Status tersimpan dari pemeriksaan: status yang diminta setelah override diterapkan, atau yang tidak berubah saat override menunggu alur selesai.

Contoh:

"Approved"

override
object
wajib

Satu penimpaan status pemeriksaan (fitur) yang dibuat dengan PATCH /v3/session/{sessionId}/features/{nodeId}/update-status/: apa yang diubahnya, apakah sudah diterapkan atau masih menunggu orang tersebut menyelesaikan alur, siapa yang meminta dan alasannya.

Terakhir diubah pada 7 November 2026