Langsung ke konten utama
POST
cURL

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

multipart/form-data
front_image
file
wajib

Sisi depan dokumen identitas. Ekstensi yang diizinkan: tiff, jpg, jpeg, png, webp, pdf. Ukuran unggahan maksimum: 10 MB (file yang lebih besar ditolak dengan 400). Dokumen PDF dirender menjadi gambar sebelum proses OCR; PDF terenkripsi memerlukan front_image_password. Gambar otomatis dikompresi menjadi ~0.5 MB dan orientasi EXIF diterapkan. Unggah hasil pengambilan penuh yang tidak dipotong dengan keempat sudut dokumen terlihat jelas.

front_image_password
string
write-only

Kata sandi untuk mendekripsi front_image jika berupa PDF terenkripsi. Mengirimkan PDF terenkripsi tanpa kata sandi (atau dengan kata sandi yang salah) mengembalikan 400.

back_image
file

Sisi belakang dokumen — kirimkan setiap kali dokumen memilikinya (banyak kartu identitas memiliki MRZ atau barcode di bagian belakang; mengabaikannya hanya akan mengosongkan MRZ dan kolom sisi belakang dalam respons — endpoint ini tidak memunculkan peringatan MRZ yang hilang). Batas format dan ukuran sama dengan front_image. Jika diabaikan, back_image dan kolom sisi belakang bernilai null dalam respons.

back_image_password
string
write-only

Kata sandi untuk mendekripsi back_image jika berupa PDF terenkripsi.

perform_document_liveness
boolean
default:true

Memeriksa kedua gambar untuk serangan presentasi: pemutaran ulang layar (SCREEN_CAPTURE_DETECTED), salinan cetak (PRINTED_COPY_DETECTED), dan manipulasi potret (PORTRAIT_MANIPULATION_DETECTED). Salah satu dari kondisi ini akan menyebabkan penolakan otomatis. Diaktifkan secara default; atur ke false untuk melewati skrining penipuan dan mengurangi latensi. Ketika diaktifkan dan penyedia tidak mengembalikan skor yang dapat digunakan, responsnya adalah In Review dengan peringatan DOCUMENT_LIVENESS_NOT_COMPUTED alih-alih Approved.

Contoh:

true

minimum_age
integer | null

Diterima dan divalidasi (1–120) tetapi saat ini tidak diterapkan oleh endpoint ini — kolom ini tidak pernah menghasilkan peringatan MINIMUM_AGE_NOT_MET. Terapkan aturan usia dari date_of_birth/age yang dikembalikan, atau gunakan alur kerja sesi verifikasi dengan pembatasan usia.

Rentang yang diperlukan: 1 <= x <= 120
expiration_date_not_detected_action
enum<string>
default:NO_ACTION

Tindakan yang diambil saat tanggal kedaluwarsa tidak dapat dibaca (EXPIRATION_DATE_NOT_DETECTED). Default NO_ACTION karena banyak dokumen identitas tidak mencantumkan tanggal kedaluwarsa. Catatan: tanggal kedaluwarsa yang terdeteksi dan telah lewat selalu ditolak (DOCUMENT_EXPIRED), terlepas dari opsi ini.

Opsi yang tersedia:
NO_ACTION,
DECLINE
invalid_mrz_action
enum<string>
default:DECLINE

Tindakan yang harus diambil ketika MRZ yang diekstrak gagal dalam validasi check-digit (MRZ_VALIDATION_FAILED). MRZ yang hilang tidak memunculkan peringatan pada endpoint ini. Hanya relevan untuk dokumen yang memiliki MRZ. REVIEW tidak didukung pada endpoint ini dan mengembalikan 400.

Opsi yang tersedia:
NO_ACTION,
DECLINE
inconsistent_data_action
enum<string>
default:DECLINE

Tindakan yang diambil saat data yang diekstraksi tidak konsisten secara internal: DATA_INCONSISTENT, MRZ_AND_DATA_EXTRACTED_FROM_OCR_NOT_SAME (zona visual tidak sesuai dengan MRZ), atau DOCUMENT_NAME_DIFFERENT_FROM_OTHER_APPROVED_DOCUMENTS.

Opsi yang tersedia:
NO_ACTION,
DECLINE
critical_field_occlusion_action
enum<string>
default:DECLINE

Tindakan yang diambil saat kolom tercetak yang penting tertutup secara fisik pada hasil pengambilan gambar (CRITICAL_FIELD_OCCLUSION_DETECTED) - nomor identitas, nama, tanggal lahir, atau tanggal kedaluwarsa. Ditolak secara default, sama seperti risiko integritas dokumen lainnya pada endpoint ini: menutupi nomor yang menjadi acuan rekonsiliasi laporan merupakan bentuk dokumen yang disunting. Nilai yang terbaca untuk kolom yang tertutup akan tetap dihapus dari ekstraksi, sehingga peringatan *_NOT_DETECTED yang sesuai biasanya menyertainya. REVIEW tidak didukung pada endpoint ini dan mengembalikan 400.

Opsi yang tersedia:
NO_ACTION,
DECLINE
document_or_personal_number_format_mismatch_action
enum<string>
default:NO_ACTION

Tindakan yang diambil saat nomor tidak cocok dengan format yang digunakan oleh otoritas penerbit untuk jenis dokumen tersebut (DOCUMENT_NUMBER_FORMAT_MISMATCH, PERSONAL_NUMBER_FORMAT_MISMATCH). Default NO_ACTION, yang melaporkan peringatan tanpa mengubah status. REVIEW tidak didukung pada endpoint ini dan mengembalikan 400.

Opsi yang tersedia:
NO_ACTION,
DECLINE
preferred_characters
enum<string>
default:latin

Aksara pilihan untuk kolom nama/alamat pada dokumen yang mencetak teks Latin dan non-Latin (Arab, Sirilik, CJK, …). latin mengembalikan nilai yang ditransliterasikan/Latin; non_latin memprioritaskan aksara asli.

Opsi yang tersedia:
latin,
non_latin
save_api_request
boolean
default:true

Jika true (default), menyimpan panggilan sebagai sesi tipe API — terlihat di Business Console, dapat diambil melalui GET /v3/session/{sessionId}/decision/ menggunakan request_id yang dikembalikan, diumumkan melalui webhook status.updated, dan dengan gambar dokumen dikembalikan sebagai URL media. Jika false, tidak ada yang disimpan, request_id adalah UUID sementara, dan gambar dikembalikan secara inline sebagai string base64 JPEG.

Contoh:

true

vendor_data
string

String buram opsional (ID pengguna internal, email, UUID Anda…) yang disimpan pada sesi yang dipertahankan dan dikembalikan dalam respons. Gunakan untuk mengorelasikan panggilan API dengan catatan Anda sendiri dan memfilter sesi nantinya.

Contoh:

"user-123"

metadata
object

Objek JSON opsional yang disimpan bersama sesi (saat save_api_request=true) dan dikembalikan dalam respons. Dalam permintaan multipart, kirimkan sebagai kolom string yang dikodekan dalam JSON (misalnya metadata={"flow":"onboarding"}) — kolom ini akan diuraikan menjadi sebuah objek.

Contoh:

Respons

Dokumen diproses. id_verification.status bernilai Approved, Declined, atau In Review; setiap masalah yang terdeteksi dirinci dalam id_verification.warnings. In Review dikembalikan saat pemeriksaan liveness dokumen yang diminta tidak menghasilkan hasil yang dapat digunakan (DOCUMENT_LIVENESS_NOT_COMPUTED). Dokumen yang bermasalah tetap menghasilkan 200 dengan status: "Declined" — periksa isi respons, bukan hanya kode HTTP. Ketika save_api_request=true, request_id adalah id sesi yang disimpan dan kolom gambar berupa URL media berumur pendek; jika save_api_request=false, kolom tersebut berupa string JPEG base64 inline.

request_id
string<uuid>

ID sesi yang disimpan saat save_api_request=true (dapat digunakan dengan GET /v3/session/{sessionId}/decision/); jika tidak, berupa UUID korelasi sementara.

id_verification
object
vendor_data
string | null

Salinan vendor_data yang Anda kirimkan, atau null.

metadata
object | null

Salinan objek metadata yang Anda kirimkan, atau null.

created_at
string<date-time>

Stempel waktu ISO 8601 (UTC) saat respons dibuat.

Terakhir diubah pada 7 November 2026