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
document
file
wajib

Dokumen Bukti Alamat. Ekstensi yang diizinkan: tiff, jpg, jpeg, png, pdf, webp. Ukuran unggahan maksimum: 15 MB (file yang lebih besar akan ditolak dengan 400). PDF multi-halaman didukung (perkirakan latensi lebih tinggi); PDF terenkripsi memerlukan document_password. Gambar dikompresi secara otomatis sebelum diproses.

document_password
string
write-only

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

expected_address
string

Alamat yang akan diverifikasi terhadap dokumen. Alamat ini di-geocode dan dibandingkan dengan alamat yang diekstrak; ketidakcocokan (atau alamat yang diharapkan tidak dapat di-geocode/diverifikasi) menambahkan ADDRESS_MISMATCH_WITH_PROVIDED, yang diatur oleh poa_address_mismatch_action. Bentuk yang di-geocode ditampilkan kembali di expected_details_formatted_address / expected_details_parsed_address.

Contoh:

"Av. Monseñor Tavella 1291, Salta, Argentina"

expected_country
string

Negara yang akan diverifikasi terhadap dokumen (kode ISO 3166-1, misalnya ARG atau AR). Ketidakcocokan dengan negara dokumen menambahkan POA_COUNTRY_MISMATCH_WITH_PROVIDED, yang diatur oleh poa_address_mismatch_action.

Contoh:

"ARG"

expected_first_name
string

Nama depan untuk diverifikasi terhadap name_on_document (pencocokan samar, mendukung transliterasi). Skor di bawah ambang batas kecocokan menambahkan NAME_MISMATCH_WITH_PROVIDED, yang diatur oleh poa_address_mismatch_action.

Contoh:

"Sophia"

expected_last_name
string

Nama belakang untuk diverifikasi terhadap name_on_document, digabungkan dengan expected_first_name untuk skor kecocokan.

Contoh:

"Martinez"

poa_languages_allowed
string

Daftar bahasa dokumen yang diterima yang dipisahkan koma sebagai kode ISO 639-1 (misalnya en,es,fr). Jika dihilangkan atau kosong, seluruh 51 bahasa yang didukung akan diterima. Dokumen dalam bahasa di luar daftar akan menambahkan UNSUPPORTED_DOCUMENT_LANGUAGE (diatur oleh poa_unsupported_language_action); kode yang tidak dikenal dalam daftar akan mengembalikan 400 beserta seluruh kode yang didukung.

Contoh:

"en,es"

poa_document_age_months
string

Pasangan key:value yang dipisahkan koma yang menetapkan usia dokumen maksimum dalam hitungan bulan per jenis dokumen — kunci: utility_bill, bank_statement, government_issued_document, other_poa_document; nilai: 1–120, atau -1 untuk tanpa batas (tanpa pemeriksaan usia). Nilai default jika dihilangkan: utility_bill:3,bank_statement:3,government_issued_document:12,other_poa_document:12. Dokumen yang lebih lama dari batasnya akan ditolak dengan POA_DOCUMENT_EXPIRED. Perhatian: saat Anda memberikan kolom ini, cantumkan setiap jenis yang Anda terima — jenis yang dihilangkan akan dianggap tidak diterima (POA_DOCUMENT_NOT_SUPPORTED_FOR_APPLICATION bersifat informasi) dan pemeriksaan usianya dilewati.

Contoh:

"utility_bill:3,bank_statement:6"

poa_name_mismatch_action
enum<string>
default:DECLINE

Diterima tetapi saat ini tidak diterapkan — peringatan ketidakcocokan nama (NAME_MISMATCH_WITH_PROVIDED) mengikuti poa_address_mismatch_action. Atur poa_address_mismatch_action untuk mengontrol perilaku ketidakcocokan nama maupun alamat.

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

Tindakan yang diambil saat terjadi masalah integritas file — dalam praktiknya hanya DOCUMENT_METADATA_MISMATCH yang dihasilkan oleh endpoint ini.

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

Tindakan yang diambil saat manipulasi dokumen dicurigai (SUSPECTED_DOCUMENT_MANIPULATION) — misalnya PDF dimodifikasi setelah penandatanganan digital, diproses oleh editor PDF yang dikenal, menunjukkan manipulasi overlay teks, atau memiliki tanggal EXIF yang tidak konsisten. Opsi ini juga mengatur POA_DOCUMENT_UNPROVEN_TEXT_REPLACEMENT (kolom teks yang diketik ulang yang tidak dapat dibuktikan oleh file apakah telah diubah atau tidak): DECLINE juga akan menolaknya, NO_ACTION menyimpannya sebagai peringatan.

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

Tindakan yang harus diambil ketika bahasa dokumen berada di luar poa_languages_allowed (UNSUPPORTED_DOCUMENT_LANGUAGE).

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

Tindakan yang harus diambil ketika detail yang diekstrak tidak cocok dengan kolom expected_*: ADDRESS_MISMATCH_WITH_PROVIDED, NAME_MISMATCH_WITH_PROVIDED, dan POA_COUNTRY_MISMATCH_WITH_PROVIDED semuanya mengikuti tindakan ini.

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

Tindakan yang diambil saat tidak ada perusahaan/organisasi penerbit yang dapat diidentifikasi pada dokumen (ISSUER_NOT_IDENTIFIED).

Opsi yang tersedia:
DECLINE,
NO_ACTION
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 dokumen yang diunggah disimpan. Jika false, tidak ada yang disimpan dan request_id adalah UUID sementara hanya untuk korelasi respons.

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. poa.status bernilai Approved atau Declined; setiap masalah yang terdeteksi dirinci dalam poa.warnings. Dokumen yang kedaluwarsa, tidak cocok, atau mencurigakan 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.

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.

poa
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