मुख्य सामग्री पर जाएं
फ़ोन सत्यापन रिपोर्ट एक फ़ोन OTP चैलेंज के पूरे परिणाम को कैप्चर करती है: हमने कोड किसे भेजा, किस कैरियर और चैनल ने इसे हैंडल किया, इसमें कितने प्रयास लगे, क्या नंबर डिस्पोज़ेबल या VoIP है, और आपकी ब्लॉकलिस्ट या अन्य उपयोगकर्ताओं के सत्रों के साथ कोई क्रॉस-सत्र मिलान। यह पेज निर्णय endpoint द्वारा लौटाई गई JSON संरचना का दस्तावेज़ीकरण करता है ताकि आप प्रत्येक सत्यापित नंबर के लिए OTP परिणामों, कैरियर मेटाडेटा और जोखिम फ़्लैग को पार्स कर सकें।
OTP परिणाम, कैरियर मेटाडेटा और जोखिम फ़्लैग प्रदर्शित करने वाली Didit की फ़ोन सत्यापन रिपोर्ट

अवलोकन

हर बार जब कोई वर्कफ़्लो नोड फ़ोन सत्यापन सुविधा चलाता है, तो एक फ़ोन रिपोर्ट तैयार की जाती है। प्रत्येक रिपोर्ट एक फ़ोन नंबर के विरुद्ध एक OTP चैलेंज का प्रतिनिधित्व करती है और इसमें शामिल हैं:
  • प्रीफ़िक्स, राष्ट्रीय नंबर और पूर्ण E.164 प्रारूप में विभाजित फ़ोन नंबर, साथ ही ISO देश कोड और देश का नाम।
  • गंतव्य नेटवर्क से रिज़ॉल्व किया गया कैरियर मेटाडेटा (name, type)।
  • लाइन-प्रकार विश्लेषण से प्राप्त बूलियन जोखिम फ़्लैग (is_disposable, is_virtual)।
  • उपयोग किया गया वास्तविक डिलीवरी चैनल (verification_method) और OTP भेजने के प्रयासों की संख्या।
  • हर भेजने, पुनः प्रयास, डिलीवरी इवेंट और कोड-जाँच प्रयास का एक कालानुक्रमिक lifecycle[] लॉग।
  • अन्य सत्रों में—चाहे उनकी स्थिति कुछ भी हो और वे KYC, KYB या स्टैंडअलोन API सत्यापनों से संबंधित हों—या आपकी ब्लॉकलिस्ट में उसी नंबर को दर्शाने वाला एक matches[] ऐरे।
  • एक warnings[] ऐरे — सत्यापन के दौरान उत्सर्जित जोखिम इवेंट (देखें फ़ोन सत्यापन चेतावनियाँ)।
  • एक node_id जो यह पहचानता है कि किस वर्कफ़्लो ग्राफ़ नोड ने रिपोर्ट तैयार की (केवल V3 सत्र)।
होस्टेड सत्यापन फ़्लो में Didit आपके लिए OTP एक्सचेंज संचालित करता है। प्रत्यक्ष API इंटीग्रेशन के लिए इस फ़्लो में दो कॉल होती हैं — कोड डिलीवर करने के लिए POST /v3/phone/send/ और उपयोगकर्ता की प्रविष्टि को मान्य करने के लिए POST /v3/phone/check/। एक लंबित OTP पहले भेजने से 5 मिनट के लिए वैध होता है (पुनः प्रयासों से यह विंडो नहीं बढ़ती)। वर्कफ़्लो सत्रों में उपयोगकर्ताओं को डिफ़ॉल्ट रूप से 2 OTP भेजने के प्रयास (phone_max_retries) और 2 कोड-प्रविष्टि प्रयास (phone_max_check_attempts) मिलते हैं — दोनों प्रति वर्कफ़्लो नोड ट्यून करने योग्य हैं; किसी भी सीमा के समाप्त होने पर चरण VERIFICATION_CODE_ATTEMPTS_EXCEEDED के साथ Declined के रूप में फ़ाइनलाइज़ हो जाता है। स्टैंडअलोन फ़ोन API प्रति सत्यापन 3 कोड-प्रविष्टि प्रयासों की अनुमति देता है।

API रिस्पॉन्स में यह कहाँ दिखाई देता है

निर्णय endpoint (GET /v3/session/{sessionId}/decision/) बहुवचन ऐरे कुंजी phone_verifications के तहत फ़ोन रिपोर्ट लौटाता है। ऐरे में वर्कफ़्लो ग्राफ़ में प्रत्येक फ़ोन सत्यापन नोड के लिए एक प्रविष्टि होती है — आम तौर पर एक, लेकिन स्टेप-अप फ़्लो कई प्रविष्टियाँ उत्पन्न कर सकते हैं।
null मान का अर्थ है कि अभी तक कोई फ़ोन सत्यापन चरण नहीं चला है। जब आपका वर्कफ़्लो एक से अधिक फ़ोन नंबर एकत्र कर सकता है, तो ऐरे को इटरेट करें (केवल phone_verifications[0] को पढ़ने के बजाय)।

स्कीमा

फ़ील्ड-दर-फ़ील्ड कैनोनिकल स्कीमा डेटा मॉडल पेज पर उपलब्ध है।

स्टेटस मान

लाइफ़साइकिल इवेंट प्रकार

lifecycle[] कालानुक्रमिक रूप से व्यवस्थित है। प्रत्येक इवेंट में type, timestamp, details, और एक बिल करने योग्य fee (जब लागू हो) शामिल होता है: details payload इवेंट फ़ैमिली पर निर्भर करता है:
  • भेजने के इवेंट (PHONE_VERIFICATION_MESSAGE_SENT, PHONE_VERIFICATION_RETRY_MESSAGE_SENT, PHONE_VERIFICATION_BLOCKED) — { status, reason, channel, actual_channel }। status Success, Retry या Blocked है; reason तब तक null है जब तक कि भेजा जाना ब्लॉक न किया गया हो (invalid_phone_number, repeated_attempts, suspicious, spam, unknown); channel अनुरोधित चैनल है और actual_channel वह चैनल है जिसने वास्तव में डिलीवरी की (उदा. WhatsApp संदेश जो SMS पर फ़ालबैक हो गया)।
  • डिलीवरी इवेंट (PHONE_DELIVERY_DELIVERED, PHONE_DELIVERY_UNDELIVERABLE) — { channel, status } जहां status delivered या undeliverable है।
  • जाँच इवेंट (VALID_CODE_ENTERED, INVALID_CODE_ENTERED) — { code_tried, status } जहां status Approved, Declined, Failed या Expired or Not Found है।
  • अंतिम स्टेटस इवेंट — null, सिवाय PHONE_VERIFICATION_DECLINED / PHONE_VERIFICATION_IN_REVIEW के, जिनमें { "reason": "<risk code>" } (उदा. PHONE_NUMBER_IN_BLOCKLIST) होता है।
भेजने के इवेंट पर fee उस भेजे जाने की कुल कीमत है: कैरियर या WhatsApp की कीमत के साथ $0.02 Didit शुल्क, या [आपके अपने WhatsApp Business नंबर](/hi/core-technology/phone-verification/overview#अपने-स्वयं-के-नंबर-से-whatsapp-कोड-भेजें) से भेजे गए WhatsApp कोड के लिए केवल $0.02 Didit शुल्क। यह डिलीवरी की पुष्टि होने तक अनुमानित कीमत होती है, उसके बाद वास्तविक बिल की गई राशि होती है। केवल Blocked भेजे गए संदेशों के निःशुल्क होने की गारंटी है: किसी भी अन्य भेजे गए संदेश के लिए तब शुल्क लिया जाता है जब सत्यापन फ़ाइनलाइज़ होता है या समय-सीमा समाप्त हो जाती है, भले ही डिलीवरी की कभी पुष्टि न हुई हो या संदेश डिलीवर न हो सका हो। डिलीवरी, जाँच और स्टेटस इवेंट में हमेशा fee: 0 होता है।

क्रॉस-सत्र मिलान

matches[] उसी एप्लिकेशन में अन्य सत्रों को रिकॉर्ड करता है जहाँ वही नंबर देखा गया था — KYC, KYB और स्टैंडअलोन API सत्यापनों में, चाहे उनका स्टेटस कुछ भी हो — साथ ही मैनेजमेंट API सूचियाँ में कॉन्फ़िगर किए गए ब्लॉकलिस्ट मिलान। वर्तमान सत्र के vendor_data को साझा करने वाले सत्रों को बाहर रखा गया है (एक ही अंतिम उपयोगकर्ता स्वयं से मेल नहीं खाता है), और ऐरे अधिकतम 5 प्रविष्टियों तक सीमित है। जब नंबर आपकी ब्लॉकलिस्ट में होता है लेकिन कोई भी मेल खाने वाला सत्र ब्लॉकलिस्टेड नहीं होता है, तो source: "list_entry" (सभी सत्र फ़ील्ड null) वाली एक सिंथेटिक प्रविष्टि ऐरे के आरंभ में जोड़ दी जाती है।

उदाहरण

स्वीकृत — WhatsApp OTP, मोबाइल कैरियर

अस्वीकृत — ब्लॉकलिस्टेड VoIP नंबर

उपयोगकर्ता ने एक मान्य OTP दर्ज किया, लेकिन फ़ाइनलाइज़ेशन के दौरान एप्लिकेशन की ब्लॉकलिस्ट पर नंबर पाया गया (ऑटो-डिक्लाइन) और इसके VoIP लाइन प्रकार को फ़्लैग किया गया (voip_number_action को NO_ACTION पर छोड़ दिया गया, इसलिए यह information के रूप में लॉग होता है)। चूंकि कोई भी मेल खाने वाला सत्र ब्लॉकलिस्टेड नहीं है, ब्लॉकलिस्ट हिट एक सिंथेटिक list_entry मिलान के रूप में दिखाई देता है।

संबंधित

अंतिम संशोधन 7 नवंबर 2026