config berikut di dalam setiap item array features untuk POST /v3/workflows/ dan PATCH /v3/workflows/{settings_uuid}/.
features yang berurutan. Kirim fitur dalam urutan eksekusi yang tepat.
Mesin yang menjalankan suatu fitur, yaitu milik Didit atau penyedia pihak ketiga, bukan salah satu kolom config di bawah. Mesin ini dikelola melalui Marketplace di konsol, yang akan mengatur
provider_key dan fallback_to_native pada objek config fitur tersebut untuk Anda.Aturan validasi
OCRsecara default mencakup semua negara dan jenis dokumen yang didukung ketikaconfig.documents_alloweddihilangkan, bernilainull, atau{}. Jika Anda mengirim objekdocuments_allowedkustom, objek tersebut harus berisi minimal satu negara yang valid dan satu jenis dokumen yang diaktifkan. Setiap konfigurasi dokumen dapat mengatursideske1untuk pengambilan hanya sisi depan, atau2untuk pengambilan sisi depan dan belakang.QUESTIONNAIREmemerlukanconfig.questionnaire_uuid.KYB_DOCUMENTSmemerlukanconfig.kyb_required_document_groups.SIGNATUREmenolaksignature_level: "qes"denganqes_not_availablesampai tanda tangan terkualifikasi tersedia, dan menolak langkah baru dengansignature_level: "aes"denganaes_not_availableselamasignature_availability.aesbernilaifalsepada alur kerja. Dokumennya harus sudah ada saat sesi dibuat. Jikasignature_documents_sourcediatur keworkflow, langkah tersebut memerlukan dokumen yang diunggah di konsol, dan langkah tanpa dokumen dapat tetap berstatus draf tetapi tidak dapat diaktifkan. Jika diatur kesession, setiap panggilan pembuatan harus mengirimsign.documents.FACE_MATCHharus berada setelahOCRdalam permintaan alur kerja sederhana.NFCdanDATABASE_VALIDATIONmemerlukanOCRjika muncul dalam alur kerja yang sama.AMLmemerlukan salah satu dariOCR,KYB_REGISTRY, atauDOCUMENT_AIsebelumnya. Jika hanyaDOCUMENT_AIyang berada sebelumnya,full_nameyang akan diskrining harus dapat diisi, yaitu dari kolom Document AI di langkah sebelumnya yang sudah diberi kuncifull_name(akan dipetakan untuk Anda), atau dari entriconfig.aml_field_sourcesyang eksplisit (lihat AML).- Fitur sub-KYB seperti
KYB_DOCUMENTSdanKYB_KEY_PEOPLEmemerlukanKYB_REGISTRYsebelumnya dalam alur kerja. - Alur kerja adalah alur kerja orang (KYC) atau alur kerja bisnis (KYB), tidak pernah keduanya. Alur kerja yang menggunakan fitur KYB apa pun (
KYB_REGISTRY,KYB_DOCUMENTS,KYB_KEY_PEOPLE) hanya boleh dikombinasikan denganAML,DOCUMENT_AI,QUESTIONNAIRE,PHONE_VERIFICATION,EMAIL_VERIFICATION,IP_ANALYSIS, danSIGNATURE. Alur kerja tersebut tidak boleh menyertakan fitur khusus orang sepertiOCR,LIVENESS,FACE_MATCH,NFC,PROOF_OF_ADDRESS,DATABASE_VALIDATION, atauAGE_ESTIMATION, dan alur kerja orang tidak boleh menyertakan fitur KYB. Pada alur kerja bisnis,DOCUMENT_AImembandingkan setiap kolom yang ditandaiis_full_namedengan perusahaan yang telah diverifikasi, bukan dengan orang. Untuk memverifikasi orang di balik perusahaan, buat alur kerja KYC terpisah dan rujuk dari nodeKYB_KEY_PEOPLEmenggunakankyb_ubo_verification_workflow,kyb_officer_verification_workflow, ataukyb_shareholder_verification_workflow. - Kolom tindakan menggunakan
DECLINE,REVIEW, atauNO_ACTION, kecuali kolom di bawahnya menyatakan bahwa kolom tersebut dibatasi. - Kolom skor dan ambang batas berupa angka dari
0hingga100, kecuali rentang yang lebih sempit dicantumkan.
Aturan status umum
Setiap fitur mendukung arraystatus_rules opsional. Gunakan array ini untuk menimpa status fitur saat kondisi pada sebuah kolom cocok.
Baca contoh di atas sebagai:
kyc.extra_fields.profession cocok secara fuzzy dengan Soft. Engineer dengan skor minimum 80 → atur status fitur menjadi Declined.
Untuk Verifikasi Identitas, targetkan nilai extra_fields yang diekstrak, seperti kyc.extra_fields.profession, tanggal berlaku kelas SIM seperti kyc.extra_fields.dl_class_code_b_from dan kyc.extra_fields.dl_class_code_b_to, atau kode pembatasan dan informasi per kelas seperti kyc.extra_fields.dl_class_code_b_notes (kolom 12 pada SIM Inggris). Nilai-nilai ini berasal dari objek extra_fields pada hasil OCR; nilai-nilai tersebut bukan bagian dari expected_details.
dl_class_code_*_from dan dl_class_code_*_to selalu berupa tanggal ISO yang valid atau tidak ada di extra_fields. Didit tidak pernah mengembalikan teks OCR yang tidak terbaca pada kolom tanggal. Jika sel tabel kelas tidak dapat dibaca, kolom tersebut dihilangkan alih-alih dikirim sebagai string mentah. Karena itu, gunakan operator is_empty untuk mengarahkan tanggal kelas yang tidak terbaca, dan jangan berasumsi bahwa kolom tersebut selalu ada.value_type: "relative_date" dengan objek nilai berbentuk { "direction": "past" | "future", "amount": number, "unit": "days" | "months" | "years" }. Misalnya, operator: "less_than" dengan { "direction": "past", "amount": 3, "unit": "years" } cocok dengan tanggal yang lebih lama dari tiga tahun sebelum hari ini.
Bandingkan dengan langkah tertentu
Alur kerja berbasis graf dapat menjalankan fitur yang sama lebih dari satu kali, misalnya tiga langkah Verifikasi Identitas. Denganvalue_type: "field", tambahkan @<node_id> ke nilai untuk membacanya dari langkah tertentu.
Node yang dirujuk harus berupa langkah fitur yang selalu berjalan sebelum langkah aturan itu sendiri, di setiap jalur yang menuju ke sana, atau langkah aturan itu sendiri.
Nilai tanpa akhiran tersebut dibaca dari langkah aturan itu sendiri.
kyc.full_name pada langkah ini cocok secara fuzzy dengan nama lengkap yang dibaca oleh langkah ocr_1 dengan skor minimum 80 → atur status fitur menjadi Declined.
Di konsol, pemilih variabel mencantumkan setiap langkah yang memenuhi syarat berdasarkan nomornya pada kanvas, dan menyimpan akhiran tersebut untuk Anda.
OCR / Verifikasi Identitas
Nilai fitur:OCR.
Deteksi Liveness dokumen dikonfigurasi dengan enam ambang batas
document_liveness_* di atas, bukan dengan kolom tindakan per sinyal. portrait_replacement_action, printed_copy_action, dan screen_capture_action adalah pengaturan tingkat akun dan tidak diterima dalam konfigurasi fitur alur kerja: API menghapus kunci konfigurasi yang tidak dikenal saat disimpan, sehingga mengirimkannya di sana tidak berpengaruh. Setiap sinyal memiliki ambang batas tolak dan ambang batas tinjau pada skala 0-100, di mana skor yang lebih tinggi berarti dokumen makin mungkin asli.Metode per negara
methods menggunakan kode negara ISO 3166-1 alpha-3 sebagai kuncinya. Setiap negara memuat hingga tiga objek metode; apa pun yang Anda hilangkan akan mengambil nilai default-nya.
wallet.on_failure bernilai fallback_to_document, decline, atau retry. retry (khusus dompet, pengambilan dokumen nonaktif untuk negara tersebut) membuat pengguna yang proses masuknya di langkah dompet belum selesai dapat mencoba lagi; sesi tidak pernah ditolak karenanya dan tetap terbuka hingga mereka selesai atau sesinya kedaluwarsa. Sakelar id_lookup hanya menerima fallback_to_document atau decline.
Untuk menjaga dokumen agar tidak muncul di layar pertama dan hanya menawarkannya saat dompet atau pencarian tidak berhasil, atur document.fallback_only. Contoh ini menggunakan Finlandia, di mana Finnish Trust Network ditampilkan lebih dulu dan pengambilan dokumen menjadi cadangan. Finlandia juga perlu jenis dokumennya diaktifkan di documents_allowed (misalnya paspor dan kartu identitas) agar cadangan memiliki dokumen untuk ditawarkan.
available dalam katalog saat ini, sehingga konfigurasi tersebut tersimpan seperti yang tertulis. Blok dompet sengaja tidak disertakan dalam contoh ini: blok dompet hanya dapat disimpan di negara yang katalognya menandai dompet tersebut sebagai available, dan wallet.enabled: true di tempat lain akan ditolak dan menggagalkan seluruh penyimpanan, termasuk konfigurasi pencarian. Jika katalog menandai dompet sebagai available di suatu negara, tambahkan blok dompet tersebut ke konfigurasi negara itu:
Validasi yang diterapkan API saat disimpan:
- Kode negara yang tidak dikenal, kunci yang tidak dikenal di dalam sebuah negara, atau kunci yang tidak dikenal di dalam sebuah metode akan ditolak. Tidak ada yang dibuang diam-diam.
- Negara yang tidak mengaktifkan satu metode pun akan ditolak, karena tidak ada yang bisa melakukan verifikasi di sana.
- Dompet atau pencarian hanya bisa kembali ke pengambilan dokumen jika pengambilan dokumen diaktifkan untuk negara tersebut.
fallback_to_documentdi negara yangdocument.enabled-nyafalseakan ditolak saat runtime, karena tidak ada tujuan untuk kembali. document.fallback_only: trueditolak dengan HTTP 400 kecualidocument.enabledbernilaitruedan setidaknya satu dompet atau pencarian ID di negara tersebut kembali ke pengambilan dokumen.
methods, melalui tab Negara di konsol, atau dengan alat MCP didit_workflow_get_id_verification_methods_catalog. Perilaku, cakupan, dan penagihan dijelaskan di Metode Verifikasi Identitas.
NFC / ePassport
Nilai fitur:NFC.
Deteksi Liveness
Nilai fitur:LIVENESS.
Pencocokan Wajah
Nilai fitur:FACE_MATCH.
Estimasi Usia
Nilai fitur:AGE_ESTIMATION.
Verifikasi Telepon
Nilai fitur:PHONE_VERIFICATION.
Verifikasi Telepon dinonaktifkan hingga organisasi Anda melakukan isi saldo pertama.
Pengayaan intelijen telepon adalah add-on opsional. Saat
phone_enrichment_enabled bernilai true, setiap verifikasi telepon yang selesai diperkaya dengan intelijen telepon dan ditagih $0.05 per permintaan di luar biaya verifikasi telepon standar. Tindakan berbasis skor hanya berlaku setelah skor pengayaan tersedia; tindakan indeks kepercayaan, jenis telepon, dan porting diterapkan segera setelah pengayaan berjalan.Pemeriksaan jejak sosial adalah add-on kedua yang terpisah. Saat phone_social_enabled bernilai true, setiap verifikasi telepon yang selesai juga melaporkan platform online tempat nomor tersebut terdaftar - platform perpesanan, media sosial, e-commerce, dan layanan profesional - dan ditagih $0.05 per permintaan. Fitur ini dapat diaktifkan dengan atau tanpa phone_enrichment_enabled: kedua add-on ditetapkan harga dan ditagih secara independen. Pencarian yang tidak menemukan nomor di platform mana pun yang dicakupnya adalah jawaban yang valid dan tetap ditagih, serta memicu phone_no_social_presence_action. Gunakan phone.social_profiles_registered (jumlah platform tempat nomor terdaftar) untuk bercabang berdasarkan hasil di dalam graf alur kerja.Verifikasi Email
Nilai fitur:EMAIL_VERIFICATION.
Pengayaan intelijen email adalah tambahan opsional. Saat
email_enrichment_enabled bernilai true, setiap verifikasi email yang selesai diperkaya dengan intelijen email dan ditagihkan $0.05 per permintaan di samping biaya verifikasi email standar. Tindakan berbasis skor berlaku setelah skor pengayaan tersedia; tindakan kebocoran data berlaku segera setelah pengayaan dijalankan.Pemeriksaan jejak sosial adalah tambahan kedua yang terpisah. Saat email_social_enabled bernilai true, setiap verifikasi email yang selesai juga melaporkan platform daring tempat alamat tersebut terdaftar, yaitu layanan email, media sosial, layanan profesional, e-commerce, dan hiburan, dan ditagihkan $0.05 per permintaan. Fitur ini dapat diaktifkan dengan atau tanpa email_enrichment_enabled, karena harga dan penagihan kedua tambahan ini dilakukan secara terpisah. Pencarian yang tidak menemukan alamat di satu pun platform yang dicakupnya tetap merupakan jawaban yang valid dan dapat ditagihkan, dan akan memicu email_no_social_presence_action. Gunakan email.social_profiles_registered (jumlah platform tempat alamat terdaftar) untuk bercabang berdasarkan hasil di graf alur kerja.Validasi Database
Nilai fitur:DATABASE_VALIDATION.
Contoh:
400 yang menyebutkan ID tersebut dan alasannya, dan tidak ada yang disimpan.
Ini mencakup ID yang tidak ada di katalog, ID yang termasuk negara lain, layanan yang belum tersedia, dan layanan yang hanya tersedia melalui endpoint mandiri POST /v3/database-validation/.
Layanan yang inputnya tidak disediakan oleh langkah mana pun sebelumnya ditolak dengan cara yang sama, dengan daftar input yang hilang.
Layanan yang sudah ada di alur kerja tersimpan tetapi tidak lagi dapat dijalankan akan dihapus saat Anda menyimpannya kembali.
Misalnya, alur kerja Argentina ini membaca nomor DNI dan jenis kelamin dari Verifikasi Identitas lalu memeriksanya terhadap RENAPER tanpa swafoto:
arg_renaper sebagai gantinya, setelah langkah LIVENESS, untuk juga mencocokkan swafoto dengan foto yang dimiliki RENAPER.
Lihat RENAPER untuk skor Pencocokan Wajah dan ambang batasnya.
Verifikasi Bank
Nilai fitur:BANK_VERIFICATION.
Pengguna memverifikasi rekening bank, dan pemilik rekening yang dilaporkan bank dibandingkan dengan identitas yang sudah ditetapkan oleh langkah sebelumnya dalam alur kerja. Pengguna memilih salah satu dari dua metode: masuk ke bank mereka (open_banking), atau pemeriksaan rekening (account_lookup), yaitu mereka memasukkan detail rekening dan bank mengonfirmasi nama pemilik rekening tersebut. bank_method_order dan methods di setiap negara menentukan metode apa saja yang ditawarkan suatu negara dan mana yang tampil pertama; lihat Metode verifikasi bank. Langkah ini menghasilkan bukti berupa skor kecocokan nama pemilik, perbandingan yang menghasilkan skor tersebut, dan kode alasan. Kunci bank_*_action mengubah bukti itu menjadi status.
Dua hal menentukan apakah node melakukan sesuatu sama sekali. bank_countries adalah daftar izin, sehingga map kosong tidak menawarkan bank apa pun dan tidak menjalankan pemeriksaan apa pun. Nama pemilik rekening perlu dibandingkan dengan sesuatu: tambahkan langkah OCR, DATABASE_VALIDATION atau QUESTIONNAIRE sebelum node ini, kirim expected_details saat membuat sesi, atau petakan kolom sendiri dengan bank_field_sources. Tanpa salah satu dari itu, kepemilikan hanya bisa bernilai unknown, dan bank_reference_identity_missing_action yang menentukan hasilnya.
Verifikasi Bank masih dalam tahap peluncuran, jadi node
BANK_VERIFICATION hanya diterima pada akun yang telah mengaktifkannya. Di akun lain, penyimpanan ditolak dan pesan penolakannya menyebutkan hal tersebut. Rute yang menjalankan langkah ini juga tidak diatur di sini: pasangan provider_key dan fallback_to_native diatur untuk Anda oleh Marketplace di konsol.Menghubungkan rekening
Saat pengguna tidak dapat memverifikasi
Pengguna selalu dapat melanjutkan tanpa bank, dan langkah ini tidak pernah membuat mereka terhenti. Lihat Saat orang tidak dapat memverifikasi bank mereka.
Yang terjadi pada sesi ketika pengguna melanjutkan ditentukan oleh
bank_unsupported_action, bank_attempts_exhausted_action atau bank_skipped_action, bergantung pada alasan pengguna melanjutkan, kecuali percobaan yang dievaluasi sebelumnya sudah menetapkan langkah tersebut: lihat Tindakan keputusan.
Membandingkan pemegang rekening
Pemeriksaan rekening
Kunci-kunci ini hanya berlaku untuk pemeriksaan rekening. Login bank tetap menggunakan kecocokan dekat danbank_max_attempts-nya sendiri.
Data keuangan
bank_expected_currencies berfungsi dengan persetujuan ownership default saja. Tiga kunci lainnya membaca data keuangan sungguhan, sehingga masing-masing memerlukan cakupan persetujuan yang sesuai di bank_scopes, dan penyimpanan ditolak tanpanya.
Yang disimpan
Tindakan keputusan
Setiap kunci di sini menerimaDECLINE, REVIEW atau NO_ACTION kecuali ditandai sebagai terbatas, dan kembali ke default di bawah saat Anda menghilangkannya atau mengirim null. Tidak ada yang bukan bukti kepemilikan positif yang disetujui secara default, dan hanya bukti yang terbukti menentang pengguna yang menghasilkan penolakan.
Kontrol tambahan
Kunci-kunci ini bersifat opsional. Setiap kunci tindakan menerimaDECLINE, REVIEW atau NO_ACTION.
Contoh objek
config, untuk akun yang Verifikasi Bank-nya aktif dan rute yang Anda pilih mencakup negara yang Anda cantumkan:
AML
Nilai fitur:AML.
Untuk skrining orang KYC, gunakan kolom berikut:
Untuk skrining perusahaan KYB, gunakan kolom berikut:
Skrining entitas yang diekstrak oleh langkah Document AI
Langkah AML biasanya membaca siapa yang diskrining dari langkahOCR (orang) atau langkah KYB_REGISTRY (perusahaan). Alur kerja yang hanya memiliki langkah ekstraksi DOCUMENT_AI untuk dokumen tidak terstandar seperti sertifikat pajak atau akta pendirian tidak memiliki keduanya, sehingga alur kerja tersebut harus menyatakan dari mana setiap input skrining berasal.
Contoh: melakukan skrining terhadap perusahaan yang disebutkan dalam acta constitutiva Meksiko, tanpa dokumen identitas di mana pun dalam alur kerja:
Analisis Perangkat & IP
Nilai fitur:IP_ANALYSIS.
Contoh:
recovered_device_action secara terpisah dari duplicated_device_action jika Anda ingin memantau perangkat hasil pemulihan berkeyakinan tinggi sebelum menolaknya secara otomatis. Ini berguna selama peluncuran karena kecocokan perangkat hasil pemulihan dirancang untuk mendeteksi jaringan penipuan, tetapi tetap perlu dikalibrasi terhadap lalu lintas Anda sendiri.
Verifikasi lokasi
Nilai fitur:GEOLOCATION.
Memeriksa lokasi orang tersebut saat melakukan verifikasi, dari posisi perangkat atau lokasi IP koneksinya, terhadap area yang diizinkan dan diblokir, lokasi IP, serta alamat dokumen.
Lihat Verifikasi lokasi untuk cara langkah ini berperilaku dan laporannya untuk kolom keputusan.
Tempatkan setelah Verifikasi Identitas atau Bukti Alamat jika Anda ingin jarak ke alamat dokumen, karena jarak hanya diukur saat alamat tersimpan.
Jika geolocation_position_source tidak diatur, jarak ke lokasi IP memerlukan langkah Analisis Perangkat & IP dalam alur kerja yang sama.
Semua kunci bersifat opsional: langkah dengan config kosong meminta perangkat untuk posisi dengan akurasi hingga 250 m, tidak lebih dari 120 detik, memberi orang tersebut 3 percobaan, dan tidak menerapkan aturan area.
Setiap temuan memiliki kunci tindakan sendiri, dan kunci tindakan yang tidak Anda atur mengikuti default dari geolocation_preset yang Anda pilih, atau default per kunci yang tercantum di bawah jika Anda tidak memilih preset.
Lokasi yang tidak pasti atau ditolak secara default menjadi REVIEW, dan tidak pernah DECLINE, karena izin yang ditolak atau radius yang besar bukan bukti penipuan.
Tindakan yang Anda atur secara eksplisit selalu didahulukan daripada preset.
Tantangan yang diputar ulang (LOCATION_REPLAY_DETECTED) dan atestasi perangkat yang gagal (LOCATION_INTEGRITY_FAILED) selalu ditolak dan tidak memiliki kunci tindakan.
Bentuk area
Setiap item digeolocation_areas memiliki id (1 hingga 64 karakter dari A-Z a-z 0-9 _ -, unik dalam daftar), label opsional (hingga 80 karakter), type berupa allowed atau blocked, dan kind yang menentukan bentuknya.
Daftar berisi paling banyak 50 area dan memerlukan setidaknya satu area
allowed selama is_geolocation_geofencing_enabled bernilai true.
geolocation_areas dan geolocation_geofencing_by_country tidak dapat dikirim bersamaan, dan geolocation_refusal_path: "end_session" memerlukan geolocation_permission_denied_action bernilai REVIEW atau DECLINE.
API menolak area yang tidak akan pernah cocok, seperti region dari negara tanpa batas yang dipublikasikan, alih-alih menyimpannya.
Contoh:
Bukti Alamat
Nilai fitur:PROOF_OF_ADDRESS.
Kuesioner
Nilai fitur:QUESTIONNAIRE.
Registri KYB
Nilai fitur:KYB_REGISTRY.
kyb_registry_fields_config memetakan setiap kunci kolom yang dapat dikonfigurasi ke {"enabled": bool, "required": bool}. enabled: false menyembunyikan kolom, enabled: true, required: false menampilkannya sebagai opsional, dan enabled: true, required: true membuatnya wajib saat pengiriman. company_name, country_code, dan region selalu ditampilkan dan wajib, dan tidak dapat dikonfigurasi. Jika objek dihilangkan, bernilai null, atau berupa {}, default berlaku: hanya incorporation_date yang wajib dan setiap kolom lain bersifat opsional.
registration_number, incorporation_date, legal_address, vat_number, alternative_names, tax_number, company_type, legal_entity_identifier, location_of_registration, nature_of_business, registered_capital_amount, registered_capital_currency, website, email, phone, control_scheme. Lihat konfigurasi kolom formulir registri yang dapat dikonfigurasi untuk perilaku pengguna akhir dan validasi VAT dan ID pajak untuk cara vat_number dan tax_number diperiksa.
Dokumen KYB
Nilai fitur:KYB_DOCUMENTS.
Pihak Kunci KYB
Nilai fitur:KYB_KEY_PEOPLE.
Document AI
Nilai fitur:DOCUMENT_AI.
Meminta satu atau beberapa dokumen dari pengguna dan mengekstrak kolom bernama yang Anda tentukan dengan model visi. Setiap kolom yang dikonfigurasi menjadi nilai yang dapat dicabangkan, yaitu document_ai.<key>, dan hasil langkah ini adalah document_ai.status.
Setiap entri dalam
document_ai_documents adalah sebuah dokumen:
Setiap entri dalam
fields sebuah dokumen adalah sebuah kolom:
Contoh:
Tanda Tangan Elektronik
Nilai fitur:SIGNATURE.
Memungkinkan orang yang telah diverifikasi, atau pihak kunci perusahaan, menandatangani dokumen, pada level Simple (bawaan) atau Advanced (AES). Letakkan setelah langkah yang memverifikasi penandatangan: Verifikasi Identitas, dan Verifikasi Email atau Verifikasi Telepon untuk kodenya. Lihat Tanda Tangan Elektronik.
Kolom pada dokumen alur kerja ditempatkan di editor templat konsol. Untuk dokumen sesi, kirimkan di
sign.documents[].fields, dan kirimkan nilai kolom api.<key> di sign.field_values. Lihat Buat sesi.
Contoh, untuk dokumen yang dikirim pada setiap sesi: