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 dokumentasi 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 kolom yang diisi oleh pembacaan dokumen diisi dari catatan 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 Japan My Number Card 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).
Sesi PASSIVE mengembalikan kolom ini saat pengambilannya menyimpan rekaman, dan null saat sesi tidak menyimpan rekaman; contoh di atas adalah sesi yang tidak menyimpan rekaman.

Pencocokan Wajah

Dikembalikan per 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 jamak di /v3/session/{sessionId}/decision/. Saat disimpan dengan save_api_request=true, sesi muncul 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 diterima. geolocation_attempts[] mencantumkan setiap percobaan dari setiap langkah, dari yang paling lama. Keduanya 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 untuk setiap percobaan verifikasi telepon. Muncul sebagai phone_verifications[] di GET /v3/session/{sessionId}/decision/ untuk sesi KYC maupun KYB. Sumber: phone/serializers/phone.py:251-266 (PhoneV3Serializer, memperluas PhoneV2Serializer di phone/serializers/phone.py:103-248).

Verifikasi Email

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

Validasi Database

Dikembalikan untuk setiap 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, serta 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 bawah envelope age_estimation: status, method, score, age_estimation, warnings. Respons ini juga menyertakan blok deteksi wajah user_image khusus mandiri, dan tidak menyertakan reference_image, video_url, matches, face_quality, atau face_luminance. Dalam sesi alur kerja tidak ada array terpisah: estimasi usia muncul sebagai liveness_checks[].age_estimation di GET /v3/session/{sessionId}/decision/. Sumber: apis/serializers/age_estimation.py:50-55 (AgeEstimationResponseSerializer), envelope dirakit di apis/views/age_estimation.py:138-174.

Autentikasi Biometrik

Autentikasi biometrik menjalankan pipeline Liveness + Pencocokan Wajah yang sama seperti yang digunakan dalam KYC standar, tetapi dikonfigurasi untuk membandingkan wajah yang diambil dengan gambar referensi pengguna yang sudah ada, bukan dengan potret dokumen hasil OCR yang baru. 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 per node yang mengumpulkan dokumen pendukung KYB. Muncul sebagai document_verifications[] di GET /v3/session/{sessionId}/decision/ untuk sesi bisnis, dengan satu entri per node_id dan items[] berisi daftar 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 per node pihak kunci dalam alur kerja KYB. Muncul sebagai key_people_checks[] di 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 14 November 2026