Langsung ke konten utama

Ikhtisar

Setiap laporan per fitur mengikuti bentuk serializer V3 yang didefinisikan di service-didit-verification. Objek yang sama muncul di tiga tempat, sehingga skema yang Anda lihat di sini menjadi satu-satunya sumber kebenaran untuk ketiganya:
  • GET /v3/session/{sessionId}/decision/: setiap fitur dikembalikan sebagai array jamak (id_verifications[], nfc_verifications[], liveness_checks[], face_matches[], poa_verifications[], phone_verifications[], email_verifications[], aml_screenings[], ip_analyses[], database_validations[], questionnaire_responses[], signatures[], bank_verifications[] (lihat Metode verifikasi bank), serta padanan KYB-nya, yaitu registry_checks[], document_verifications[], key_people_checks[]).
  • Payload webhook (status.updated, data.updated): bentuk yang sama di dalam pembungkus decision.
  • API mandiri: respons objek tunggal (Face Search, Age Estimation, Biometric Authentication) memakai kumpulan kolom yang sama.
V3 memperkenalkan alur kerja multi-instance: setiap objek fitur membawa node_id yang mengaitkan laporan dengan node grafik alur kerja yang menghasilkannya. Endpoint V2 (kyc, face, aml, dll. yang berbentuk tunggal) tetap kompatibel mundur, tetapi hanya mengembalikan instans pertama.

Kolom umum

Setiap objek laporan memiliki kolom berikut: Kolom media (portrait_image, front_image, document_file, …) berupa URL yang telah ditandatangani sebelumnya dengan masa berlaku terbatas, jadi unduh segera alih-alih menyimpan URL-nya. Contoh menampilkannya sebagai https://<media-host>/....

Objek peringatan

Dikembalikan di setiap array warnings[]. Skema dari logs/serializers/log.py:8-65 (LogV3Serializer).

Objek laporan

Bagian-bagian berikutnya membahas setiap objek laporan per fitur. Teks heading H3 sengaja dibuat tetap agar dokumen lain dapat menautkannya secara langsung.

Verifikasi identitas

Dikembalikan untuk setiap dokumen KYC/ID yang dikirimkan pengguna. Muncul sebagai id_verifications[] di GET /v3/session/{sessionId}/decision/ dan di dalam kolom kyc pada respons V2. Sumber: kyc/serializers/kyc.py:383-414 (IDVerificationV3Serializer, memperluas IDVerificationV2Serializer di kyc/serializers/kyc.py:320-380).
Objek yang sama dengan metode non-dokumen. Hanya kunci khusus metode yang berubah; semua yang diisi pembacaan dokumen justru diisi dari rekaman registri atau atribut dompet, dan kunci yang tidak berlaku bernilai null.

Verifikasi NFC

Dikembalikan untuk setiap pembacaan chip terhadap dokumen identitas: chip ePassport atau eID ICAO 9303, atau pembacaan My Number Card Jepang melalui JPKI (chip_protocol: "jpki"). Muncul sebagai nfc_verifications[] di GET /v3/session/{sessionId}/decision/ (satu per rekaman KYC induk). Sumber: kyc/serializers/epassport.py:121-139 (NFCV3Serializer, memperluas NFCV2Serializer di kyc/serializers/epassport.py:83-118).

Pemeriksaan liveness

Dikembalikan per sesi liveness. Muncul sebagai liveness_checks[] di GET /v3/session/{sessionId}/decision/. Sumber: face/serializers/face.py:301-320 (LivenessV3Serializer, memperluas LivenessV2Serializer di face/serializers/face.py:216-298).

Pencocokan wajah

Dikembalikan untuk setiap perbandingan pencocokan wajah (biasanya wajah liveness pengguna dengan potret dokumen). Muncul sebagai face_matches[] di GET /v3/session/{sessionId}/decision/. Sumber: face/serializers/face.py:367-389 (FaceMatchV3Serializer, memperluas FaceMatchV2Serializer di face/serializers/face.py:323-364).

Pencarian Wajah

Dikembalikan oleh API Pencarian Wajah mandiri (POST /v3/face-search/). Pencarian Wajah tidak pernah muncul sebagai array berisi banyak elemen di /v3/session/{sessionId}/decision/. Saat disimpan dengan save_api_request=true, sesi tampil di sana sebagai entri FACE_SEARCH dalam features[], ditambah item liveness_checks[] yang memuat matches tersimpan. Sumber: apis/serializers/face_search.py:8-79 (FaceSearchResponseSerializer yang membungkus FaceSearchDetailsSerializer); dict kecocokan dibuat di face/utils/utils.py:869-884. Respons tingkat atas: Objek face_search:

Objek kecocokan Pencarian Wajah

Skrining AML

Dikembalikan untuk setiap entitas yang menjalani skrining. Muncul sebagai aml_screenings[] di GET /v3/session/{sessionId}/decision/ untuk sesi KYC maupun KYB. Sumber: aml/serializers/aml.py:63-85 (AMLV3Serializer, memperluas AMLV2Serializer di aml/serializers/aml.py:28-60).

Analisis IP

Dikembalikan per lokasi jaringan yang ditangkap. Muncul sebagai ip_analyses[] di GET /v3/session/{sessionId}/decision/ untuk sesi KYC maupun KYB. Sumber: kyc/serializers/location.py:196-243 (IPAnalysisSerializerV3).

Verifikasi lokasi

Dikembalikan per langkah Verifikasi lokasi. Muncul sebagai geolocation_checks[] di GET /v3/session/{sessionId}/decision/: satu item per langkah, yaitu percobaan yang diterimanya. geolocation_attempts[] mencantumkan setiap percobaan dari setiap langkah, dimulai dari yang paling lama. Keduanya bernilai null untuk alur kerja tanpa langkah tersebut. Sumber: GeolocationDecisionSerializer. Setiap kolom dan contoh ada di Laporan verifikasi lokasi.

Bukti Alamat

Dikembalikan untuk setiap dokumen alamat yang dikirim. Muncul sebagai poa_verifications[] di GET /v3/session/{sessionId}/decision/. Sumber: poa/serializers/poa.py:212-227 (POAV3Serializer, memperluas POAV2Serializer di poa/serializers/poa.py:173-209).

Verifikasi Telepon

Dikembalikan per percobaan verifikasi telepon. Muncul sebagai phone_verifications[] di GET /v3/session/{sessionId}/decision/ untuk sesi KYC dan KYB. Sumber: phone/serializers/phone.py:251-266 (PhoneV3Serializer, memperluas PhoneV2Serializer di phone/serializers/phone.py:103-248).

Verifikasi Email

Dikembalikan per percobaan verifikasi email. Muncul sebagai email_verifications[] di GET /v3/session/{sessionId}/decision/ untuk sesi KYC dan KYB. Sumber: email_verification/serializers/email.py:149-164 (EmailV3Serializer, memperluas EmailV2Serializer di email_verification/serializers/email.py:38-146).

Validasi Database

Dikembalikan per pencarian database yang dijalankan terhadap data yang dikirimkan pengguna. Muncul sebagai database_validations[] di GET /v3/session/{sessionId}/decision/. Sumber: database_validation/serializers/database_validation.py:21-142 (DatabaseValidationV3Serializer, memperluas DatabaseValidationV2Serializer).

Respons kuesioner

Dikembalikan per pengiriman kuesioner. Muncul sebagai questionnaire_responses[] di GET /v3/session/{sessionId}/decision/ untuk sesi KYC dan KYB. Sumber: questionnaires/serializers/questionnaire.py:591-597 (QuestionnaireResponseV3Serializer, memperluas QuestionnaireResponseSerializer di questionnaires/serializers/questionnaire.py:520-588).

Tanda Tangan Elektronik

Dikembalikan per penandatangan dari langkah Tanda Tangan Elektronik. Muncul sebagai signatures[] di GET /v3/session/{sessionId}/decision/ untuk sesi KYC dan KYB, hanya jika alur kerja memiliki langkah tersebut. Berbeda dengan objek laporan lainnya, status-nya adalah tahap penandatanganan dan hasilnya ada di verdict, sedangkan item warnings[]-nya berbentuk { code, node_id }, bukan objek peringatan. Laporan Tanda Tangan Elektronik memuat contoh lengkap dan setiap kolom bersarang.

Estimasi Usia

Dikembalikan oleh API Estimasi Usia mandiri (POST /v3/age-estimation/). Respons memuat subset dari bentuk Liveness check di dalam envelope age_estimation, yaitu status, method, score, age_estimation, warnings, serta blok deteksi wajah user_image yang hanya ada pada mode mandiri. Respons tidak menyertakan reference_image, video_url, matches, face_quality, atau face_luminance. Pada sesi alur kerja tidak ada array terpisah. Usia yang diestimasi muncul sebagai liveness_checks[].age_estimation di GET /v3/session/{sessionId}/decision/. Sumber: apis/serializers/age_estimation.py:50-55 (AgeEstimationResponseSerializer), envelope dibangun di apis/views/age_estimation.py:138-174.

Autentikasi Biometrik

Autentikasi biometrik menjalankan pipeline Liveness + Pencocokan Wajah yang sama seperti pada KYC standar, tetapi dikonfigurasi untuk membandingkan wajah yang diambil dengan gambar referensi milik pengguna yang sudah ada, bukan dengan potret dokumen yang baru di-OCR. Tidak ada serializer khusus. GET /v3/session/{sessionId}/decision/ mengembalikan objek pemeriksaan liveness dan Pencocokan Wajah standar di bawah liveness_checks[] dan face_matches[]. Alur kerja sesi dikonfigurasi dengan workflow_type = "biometric_authentication" (WorkflowTypeChoices, common/config/choices.py:636).

Registri KYB

Dikembalikan untuk setiap perusahaan yang dikonfirmasi oleh registri dalam alur kerja KYB. Muncul sebagai registry_checks[] di GET /v3/session/{sessionId}/decision/ untuk sesi bisnis. Sumber: kyb/serializers/kyb.py:939-964 (RegistryCheckV3Serializer).

Objek perusahaan

Dari kyb/serializers/kyb.py:220-321 (KYBCompanyResponseSerializer).

Dokumen KYB

Dikembalikan untuk setiap node yang mengumpulkan dokumen pendukung KYB. Muncul sebagai document_verifications[] di GET /v3/session/{sessionId}/decision/ untuk sesi bisnis, satu entri per node_id, dengan items[] yang mencantumkan setiap dokumen yang diunggah. Sumber: kyb/serializers/kyb.py:1053-1068 (DocumentVerificationV3Serializer); setiap item mengikuti kyb/serializers/kyb.py:811-851 (KYBDocumentResponseSerializer).

Objek item dokumen KYB

Pihak kunci KYB

Dikembalikan untuk setiap node Pihak Kunci dalam alur kerja KYB. Muncul sebagai key_people_checks[] dalam GET /v3/session/{sessionId}/decision/ untuk sesi bisnis. Sumber: kyb/serializers/kyb.py:967-1050 (KeyPeopleCheckV3Serializer).

Decision-level fields

Kolom-kolom ini berada di samping array fitur pada GET /v3/session/{sessionId}/decision/ dan di dalam decision pada webhook. Lihat Mengambil sesi untuk cara membaca kolom-kolom tersebut.

Persetujuan biometrik

Setiap keputusan Verifikasi Pengguna dan webhook sesi memuat satu objek biometric_consent (bukan array): apakah sesi memerlukan persetujuan biometrik eksplisit, alasannya, dan bukti atas jawabannya. Nilainya null jika sesi tidak pernah dievaluasi, misalnya alur kerja tanpa pengambilan wajah. Sumber: BiometricConsentDecisionSerializer (sessions/serializers/biometric_consent.py). Kapan langkah ini muncul dan arti setiap kasus dijelaskan di Persetujuan biometrik. Kolom yang tidak memiliki nilai tercatat berisi null, tidak pernah string kosong. Sesi di Illinois yang dilayani oleh SDK native di bawah 4.10.0, yang mengambil swafoto tanpa langkah ini:
Orang yang menggunakan VPN dengan titik keluar di luar AS dan menyetujui dalam alur yang di-hosting:

Referensi enum status

Dua ruang nilai yang saling terkait menggunakan nama kolom status yang sama. Setiap objek laporan per fitur di halaman ini memakai enum tingkat fitur. status tingkat atas pada sesi induk memakai enum sesi yang lebih luas.

Status tingkat fitur

Dipakai oleh kolom status di setiap objek laporan. Sumber: common/config/choices.py:343-348 (FeatureStatusChoices). Verifikasi Telepon, Verifikasi Email, dan Verifikasi Identitas juga dapat menampilkan Expired saat langkahnya melewati batas waktu (PhoneStatusChoices di common/config/choices.py:377-382, EmailStatusChoices di common/config/choices.py:434-439).

Status tingkat sesi

Dipakai oleh status tingkat atas pada sesi induk. Sumber: common/config/choices.py:106-117 (StatusChoices).
Nilai terminal sesi adalah Approved, Declined, In Review, Expired, Kyc Expired, dan Abandoned. Sesi dapat mencapai keputusan keseluruhannya sementara satu fitur individual tetap berstatus In Review.
Terakhir diubah pada 7 November 2026