
Ringkasan
Laporan telepon dibuat setiap kali node alur kerja menjalankan fitur Verifikasi Telepon. Setiap laporan mewakili satu tantangan OTP terhadap satu nomor telepon dan berisi:- Nomor telepon yang diuraikan menjadi awalan, nomor nasional, dan format E.164 lengkap, ditambah kode negara ISO dan nama negara.
- Metadata operator (
name,type) yang diidentifikasi dari jaringan tujuan. - Tanda risiko boolean (
is_disposable,is_virtual) yang diperoleh dari analisis jenis saluran telepon. - Saluran pengiriman sebenarnya yang digunakan (
verification_method) dan jumlah percobaan pengiriman OTP. - Log kronologis
lifecycle[]dari setiap pengiriman, percobaan ulang, peristiwa pengiriman, dan percobaan pemeriksaan kode. - Array
matches[]yang memunculkan nomor yang sama pada sesi lain — status apa pun, di seluruh KYC, KYB, dan verifikasi API mandiri — atau daftar blokir Anda. - Array
warnings[]— event risiko yang dikeluarkan selama verifikasi (lihat Peringatan Verifikasi Telepon). - Sebuah
node_idyang mengidentifikasi node graf alur kerja mana yang menghasilkan laporan tersebut (hanya sesi V3).
POST /v3/phone/send/ untuk mengirimkan kode dan POST /v3/phone/check/ untuk memvalidasi input pengguna. OTP yang masih tertunda tetap valid selama 5 menit dari pengiriman pertama (coba lagi tidak memperpanjang jendela waktu). Dalam sesi alur kerja, pengguna mendapatkan 2 percobaan pengiriman OTP (phone_max_retries) dan 2 percobaan input kode (phone_max_check_attempts) secara default — keduanya dapat disesuaikan per node alur kerja; setelah salah satu batas tersebut tercapai, langkah akan ditetapkan sebagai Declined dengan VERIFICATION_CODE_ATTEMPTS_EXCEEDED. API telepon mandiri mengizinkan 3 percobaan input kode per verifikasi.
Di mana laporan ini muncul dalam respons API
Endpoint keputusan (GET /v3/session/{sessionId}/decision/) mengembalikan laporan telepon dengan kunci array dalam bentuk jamak phone_verifications. Array ini berisi satu entri per node Verifikasi Telepon dalam graf alur kerja — biasanya satu, tetapi alur peningkatan verifikasi dapat menghasilkan beberapa entri.
null berarti belum ada langkah Verifikasi Telepon yang dijalankan. Lakukan iterasi pada array tersebut (alih-alih membaca phone_verifications[0]) ketika alur kerja Anda dapat mengumpulkan lebih dari satu nomor telepon.
Skema
Skema kanonikal kolom demi kolom tersedia di halaman Model data.Nilai status
Jenis event siklus hidup
lifecycle[] diurutkan secara kronologis. Setiap event memiliki type, timestamp, details, dan fee yang dapat ditagih (jika berlaku):
Payload
details bergantung pada kelompok event:
- Event pengiriman (
PHONE_VERIFICATION_MESSAGE_SENT,PHONE_VERIFICATION_RETRY_MESSAGE_SENT,PHONE_VERIFICATION_BLOCKED) —{ status, reason, channel, actual_channel }.statusbernilaiSuccess,Retry, atauBlocked;reasonbernilainullkecuali pengiriman diblokir (invalid_phone_number,repeated_attempts,suspicious,spam,unknown);channeladalah saluran yang diminta danactual_channeladalah saluran yang benar-benar digunakan untuk mengantarkan pesan (misalnya pengiriman WhatsApp yang dialihkan ke SMS). - Event pengiriman (delivery) (
PHONE_DELIVERY_DELIVERED,PHONE_DELIVERY_UNDELIVERABLE) —{ channel, status }denganstatusdeliveredatauundeliverable. - Event pemeriksaan (
VALID_CODE_ENTERED,INVALID_CODE_ENTERED) —{ code_tried, status }denganstatusApproved,Declined,Failed, atauExpired or Not Found. - Event status akhir —
null, kecualiPHONE_VERIFICATION_DECLINED/PHONE_VERIFICATION_IN_REVIEW, yang memuat{ "reason": "<risk code>" }(misalnyaPHONE_NUMBER_IN_BLOCKLIST).
fee pada event pengiriman adalah total harga pengiriman tersebut: harga operator atau WhatsApp ditambah biaya Didit $0.02, atau hanya biaya Didit $0.02 untuk kode WhatsApp yang dikirim dari nomor WhatsApp Business Anda sendiri. Ini merupakan perkiraan harga sampai pengiriman dikonfirmasi, kemudian menjadi jumlah aktual yang ditagihkan. Hanya pengiriman Blocked yang dijamin gratis: pengiriman lainnya akan dikenakan biaya saat verifikasi selesai atau kedaluwarsa, bahkan jika pengiriman tidak pernah dikonfirmasi atau pesan tidak dapat dikirimkan. Event pengiriman (delivery), pemeriksaan, dan status selalu memuat fee: 0.
Kecocokan lintas-sesi
matches[] mencatat sesi lain dalam aplikasi yang sama tempat nomor yang sama terlihat — di seluruh verifikasi KYC, KYB, dan API mandiri, apa pun statusnya — ditambah kecocokan dari daftar blokir yang dikonfigurasi dalam daftar API Manajemen. Sesi yang memiliki vendor_data yang sama dengan sesi saat ini dikecualikan (pengguna akhir yang sama tidak cocok dengan dirinya sendiri), dan array dibatasi hingga 5 entri. Saat nomor tersebut ada di daftar blokir Anda tetapi tidak ada sesi yang cocok yang masuk daftar blokir, entri sintetis dengan source: "list_entry" (semua kolom sesi bernilai null) akan ditambahkan di awal array.
Contoh
Disetujui — WhatsApp OTP, operator seluler
Ditolak — nomor VoIP yang masuk daftar blokir
Pengguna memasukkan OTP yang valid, tetapi finalisasi menemukan nomor tersebut di daftar blokir aplikasi (penolakan otomatis) dan menandai tipe saluran VoIP-nya (voip_number_action dibiarkan pada NO_ACTION, sehingga dicatat sebagai information). Karena tidak ada sesi yang cocok yang masuk daftar blokir, kecocokan daftar blokir muncul sebagai kecocokan sintetis list_entry.
Terkait
- Ringkasan Verifikasi Telepon — perilaku fitur, harga, saluran yang didukung.
- Peringatan Verifikasi Telepon — setiap kode risiko, pemicu penolakan, dan tindakan yang dapat dikonfigurasi.
- Model data — verifikasi telepon — skema kanonikal kolom demi kolom.
- API telepon mandiri — endpoint
POST /v3/phone/send/danPOST /v3/phone/check/. - API Manajemen — Daftar — mengelola daftar blokir telepon yang mengisi
matches[]dengansource: list_entry.