> ## Documentation Index
> Fetch the complete documentation index at: https://docs.didit.me/llms.txt
> Use this file to discover all available pages before exploring further.

# फ़ोन सत्यापन API: OTP, SMS और WhatsApp

> Didit से SMS, WhatsApp, Telegram, RCS और वॉइस OTP द्वारा फ़ोन सत्यापित करें। $0.02 प्रति कॉल + कैरियर, कैरियर डिटेक्शन और जोखिम स्कोरिंग।

Didit का फ़ोन सत्यापन वन-टाइम पासकोड (OTP) के माध्यम से उपयोगकर्ता के फोन नंबर को सत्यापित करने का एक विश्वसनीय तरीका प्रदान करता है। यह सुविधा आपकी पहचान सत्यापन प्रक्रिया में सुरक्षा की एक अनिवार्य परत जोड़ती है, जिससे वैध उपयोगकर्ता संपर्क जानकारी सुनिश्चित होती है।

फ़ोन सत्यापन इंटीग्रेशन प्रॉम्प्ट
        प्रॉम्प्ट को क्लिपबोर्ड पर कॉपी करें



      
      

\<pre>

\````# Goal
Integrate Didit Phone Verification (OTP send + check + carrier/risk lookup) into your app. Pick ONE mode.

\# Mode A — Session-based
Use this when the user goes through a hosted Didit flow — the SDK collects the number and OTP for you.

1\. Add the PHONE feature to the workflow (Business Console or POST /v3/workflows/). Configure risk actions: duplicated_phone_number_action, disposable_number_action, voip_number_action.
2\. Create a session — POST /v3/session/ with { workflow_id, vendor_data, callback }. See /sessions-api/create-session.
3\. Open session.url for the user (or mount the Web/Mobile SDK).
4\. Fetch the decision — GET /v3/session/{sessionId}/decision/ or subscribe to session.status.updated.

Decision surface: `phone_verifications[]` array on the decision payload.

\# Mode B — Standalone API (server-to-server, OTP pair)
Two endpoints, paired by phone_number.

Step 1 — send the code:
\```bash
curl -X POST 'https://verification.didit.me/v3/phone/send/' \
-H "x-api-key: $DIDIT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"phone_number": "+14155552671",
"options": {
  "code_size": 6,
  "preferred_channel": "whatsapp",
  "locale": "en-US"
},
"vendor_data": "user-1234"
}'
\```
Channels: `whatsapp` (default), `sms`, `telegram`, `voice` — delivery falls back to SMS if the preferred channel is unavailable. Codes are valid for **5 minutes**; one free retry per number within the window.
Branding: SMS codes carry your app's SMS sender name ("123456 is your verification code for Acme Bank") on every send, at no extra cost; set it in the Business Console. Pass `options.sms_sender_name` to sign one code with another name (1 to 30 characters). WhatsApp codes use a fixed message; connect your own WhatsApp Business number in the Business Console to send them under your business name.

Step 2 — check the code (user types it into your UI):
\```bash
curl -X POST 'https://verification.didit.me/v3/phone/check/' \
-H "x-api-key: $DIDIT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"phone_number": "+14155552671",
"code": "123456",
"voip_number_action": "DECLINE"
}'
\```
Each session accepts **up to 3** code-entry attempts. The check response includes the full phone metadata (carrier, line_type, disposable, voip, ported).

\# Status enum (per phone_verifications[].status / phone.status)
"Not Started" | "In Progress" | "Approved" | "Declined" | "Failed" | "Expired or Not Found" | "Abandoned" | "Kyc Expired"

\# Warnings (LogWarningChoices.PHONE)
warnings[] risk codes include:
DUPLICATED_PHONE_NUMBER, DISPOSABLE_NUMBER, VOIP_NUMBER, INVALID_PHONE_NUMBER, OTP_DELIVERY_FAILED, OTP_MAX_ATTEMPTS_REACHED, OTP_EXPIRED, PHONE_NUMBER_BLOCKED.
Full catalogue: /core-technology/phone-verification/warnings-phone-verification.

\# Failure modes to handle
\- HTTP 400 — non-E.164 phone_number on /send/.
\- send response status="Blocked" with reason="spam" — anti-abuse block; no code sent, no charge.
\- check response status="Failed" — wrong code, attempts remaining; re-prompt.
\- check response status="Declined" — third failed attempt; restart with /v3/phone/send/.
\- check response status="Expired or Not Found" — outside the 5-minute window or no pending session for that number; restart.

\# See also
\- Canonical schema: /reference/data-models#phone-verification
\- Per-feature report: /core-technology/phone-verification/report-phone-verification
\- Risk catalogue: /core-technology/phone-verification/warnings-phone-verification
\- Full integration playbook: /integration/integration-prompt````

\</pre>



      
      

यहाँ पेस्ट करें

सत्यापन परिणाम पढ़ने वाले Academy पाठ में, 8:08 का अध्याय फ़ोन सत्यापन और डुप्लिकेट का पता लगाने को कवर करता है।[फ़ोन सत्यापन और डुप्लिकेट — Didit Academy](https://www.youtube.com/embed/7htTWCWsl60?start=488\&rel=0\&playsinline=1)![फ़ोन सत्यापन फ़्लो आरेख](https://mintcdn.com/didit-0f962782/z6T2GHM4Zh-iSj-K/images/phone-verification-flow.png?fit=max\&auto=format\&n=z6T2GHM4Zh-iSj-K\&q=85\&s=6c12863ce97e5ad6a11757b598918932)## यह कैसे काम करता हैहमारा फ़ोन सत्यापन समाधान एक सरल, उपयोगकर्ता-अनुकूल प्रक्रिया के माध्यम से व्यापक फ़ोन नंबर सत्यापन प्रदान करता है। यह सिस्टम बड़े पैमाने पर विश्वसनीय फ़ोन सत्यापन प्रदान करने के लिए OTP सत्यापन को उन्नत जोखिम मूल्यांकन के साथ जोड़ता है।**1. फ़ोन संग्रह**सिस्टम सुरक्षित रूप से निम्नलिखित जानकारी एकत्र करता है:| एकत्र किया गया डेटा | विवरण |
| - | - |
| **फोन नंबर** | यदि सत्र निर्माण के दौरान प्रदान नहीं किया गया है, तो उपयोगकर्ता अंतरराष्ट्रीय प्रारूप में अपना फ़ोन नंबर दर्ज करता है। यदि प्रदान किया गया है, तो उपयोगकर्ता को पहले से भरे गए नंबर को सत्यापित करना होगा। |
| **देश कोड** | IP स्थान या उपयोगकर्ता चयन के आधार पर स्वचालित रूप से सुझाया जाता है। |
| **कैरियर का प्रकार** | यह पता लगाया जाता है कि नंबर मोबाइल है या लैंडलाइन। |**2. OTP जनरेशन और डिलीवरी**हमारा सत्यापन सिस्टम:- एक सुरक्षित, समय-सीमित वन-टाइम पासकोड जनरेट करता है
- प्रदान किए गए नंबर पर SMS के माध्यम से कोड डिलीवर करता है
- एकाधिक कैरियर इंटीग्रेशन के माध्यम से अनुकूलित डिलीवरी सुनिश्चित करता है
- डिलीवरी संबंधी चुनौतियों के लिए फ़ॉलबैक विकल्प प्रदान करता है**3. कोड सत्यापन**उपयोगकर्ता निम्न प्रकार से सत्यापन पूरा करता है:- प्राप्त कोड को सत्यापन इंटरफ़ेस में दर्ज करके
- कॉन्फ़िगर की गई समय-सीमा (आमतौर पर 5–10 मिनट) के भीतर सबमिट करके
- यदि आवश्यक हो तो नया कोड अनुरोध करके (उचित रेट लिमिट के साथ)**4. जोखिम मूल्यांकन**हमारा सिस्टम उन्नत जांच करता है:| जांच | विवरण |
| - | - |
| **प्रारूप और कैरियर** | फ़ोन नंबर प्रारूप और कैरियर जानकारी की पुष्टि करता है। |
| **डिस्पोजेबल नंबर** | ज्ञात डिस्पोजेबल/वर्चुअल नंबर डेटाबेस के विरुद्ध जांच करता है। |
| **SIM स्वैप पहचान** | संभावित SIM स्वैप जोखिमों की पहचान करता है। |
| **गतिविधि पैटर्न** | संदिग्ध गतिविधि पैटर्न का पता लगाता है। |
| **ऐतिहासिक डेटा** | ऐतिहासिक सत्यापन डेटा के साथ क्रॉस-रेफ़रेंस करता है। |**5. परिणाम डिलीवरी**एकाधिक चैनलों के माध्यम से सत्यापन परिणाम प्राप्त करें:| चैनल | विवरण |
| - | - |
| **डैशबोर्ड** | रीयल-टाइम डैशबोर्ड अपडेट। |
| **Webhook** | त्वरित webhook सूचनाएं। |
| **API** | RESTful API इंटीग्रेशन। |
| **रिपोर्ट** | विस्तृत सत्यापन जानकारी के साथ व्यापक रिपोर्ट। |## सत्यापन सुविधाएँहमारी फ़ोन सत्यापन सेवा आपकी सत्यापन प्रक्रिया को बेहतर बनाने के लिए कई प्रमुख सुविधाएँ प्रदान करती है:#### OTP सत्यापन- **सुरक्षित कोड जनरेशन**: रैंडमली जनरेट किए गए वन-टाइम पासकोड
- **SMS डिलीवरी**: मोबाइल डिवाइसों पर तेज़ और विश्वसनीय डिलीवरी
- **कॉन्फ़िगर करने योग्य टाइमआउट**: अपनी सुरक्षा आवश्यकताओं के आधार पर समाप्ति समय निर्धारित करें
- **पुनः प्रयास विकल्प**: उचित रेट लिमिटिंग के साथ उपयोगकर्ताओं को नए कोड का अनुरोध करने की अनुमति दें
- **ब्रांडेड कोड**: बिना किसी अतिरिक्त लागत के, सामान्य संदेश भेजने के बजाय SMS कोड आपके ब्रांड का नाम शामिल करते हैं। [ब्रांडेड सत्यापन संदेश](#ब्रांडेड-सत्यापन-संदेश) देखें।
- **आपका अपना WhatsApp नंबर**: WhatsApp कोड आपके अपने WhatsApp Business नंबर से आ सकते हैं। [अपने स्वयं के नंबर से WhatsApp कोड भेजें](#अपने-स्वयं-के-नंबर-से-whatsapp-कोड-भेजें) देखें।#### ब्रांडेड सत्यापन संदेशSMS सत्यापन कोड में आपके ब्रांड का नाम शामिल हो सकता है, ताकि आपके उपयोगकर्ता संदेश को आपके रूप में पहचान सकें:> 123456 **Acme Bank** के लिए आपका सत्यापन कोड हैकेवल नाम ही कस्टमाइज़ करने योग्य है।
बाकी शब्दावली प्रत्येक देश में मोबाइल ऑपरेटरों के साथ पंजीकृत एक मानक टेक्स्ट है, जो कोड को स्पैम के रूप में फ़िल्टर होने से रोकता है, और इसका प्राप्तकर्ता की भाषा में अनुवाद किया जाता है।
ब्रांडिंग निःशुल्क है: एक ब्रांडेड कोड की कीमत बिना ब्रांड वाले कोड के समान ही होती है।**अपना SMS प्रेषक नाम सेट करें**: Business Console में, किसी वर्कफ़्लो के **Phone Verification → Settings** में या **White Label → SMS** के अंतर्गत।
यह आपके एप्लिकेशन से संबंधित होता है, न कि किसी एक वर्कफ़्लो से: यह एप्लिकेशन द्वारा भेजे जाने वाले प्रत्येक SMS कोड को साइन करता है, चाहे वह किसी भी वर्कफ़्लो में हो या स्टैंडअलोन API के माध्यम से, व्हाइट लेबल कस्टमाइज़ेशन के साथ या उसके बिना।**कोड पर कौन सा नाम प्रदर्शित होता है**, पहला मिलान लागू होता है:1) उस विशिष्ट कोड के लिए, [`POST /v3/phone/send/`](https://docs.didit.me/hi/standalone-apis/phone-send) पर `options.sms_sender_name`।
2) आपके एप्लिकेशन का SMS प्रेषक नाम।
3) केवल व्हाइट लेबल सेंड पर (व्हाइट लेबल कस्टमाइज़ेशन वाला वर्कफ़्लो, या API पर `options.use_white_label_customization: true`), आपका व्हाइट लेबल सार्वजनिक नाम।
4) अन्यथा कोड बिना किसी नाम के भेजा जाता है।प्रेषक नाम 1 से 30 वर्णों का होता है: केवल अक्षर, अंक, स्पेस और ' & - !, केवल अंक नहीं, तथा शब्दों के बीच एकल स्पेस होना चाहिए।
कोई भी कोड भेजे जाने से पहले API इन नियमों से बाहर के नाम को `400` के साथ अस्वीकार कर देता है।- **चैनल**: यह नाम SMS संदेशों में जोड़ा जाता है, जिसमें किसी अन्य चैनल से फ़ॉलबैक के रूप में भेजा गया SMS भी शामिल है। WhatsApp कोड एक निश्चित संदेश के साथ भेजे जाते हैं और उनमें यह शामिल नहीं होता है; उन पर अपने व्यवसाय का नाम शामिल करने के लिए, [उन्हें अपने स्वयं के नंबर से भेजें](#अपने-स्वयं-के-नंबर-से-whatsapp-कोड-भेजें)।
- **प्रति दिन परिवर्तन**: प्रत्येक एप्लिकेशन प्रति दिन (UTC) अधिकतम दो नए नामों का उपयोग शुरू कर सकता है, जिसमें नए प्रेषक नाम और नए `sms_sender_name` मान दोनों शामिल हैं। उसके बाद, अगले दिन तक कोड एप्लिकेशन के वर्तमान नाम के साथ भेजे जाते रहते हैं, और प्रति-अनुरोध नया नाम एप्लिकेशन के नाम के साथ भेजा जाता है। आपके द्वारा पहले उपयोग किया गया नाम दोबारा नहीं गिना जाता है।
- **डिलीवरी पहले**: ब्रांडिंग की समस्या कभी भी कोड को रोकती नहीं है। यदि कोई नाम लागू नहीं किया जा सकता है, तो कोड एप्लिकेशन के नाम के साथ, या बिना किसी नाम के भेजा जाता है।#### अपना स्वयं का SMS टेक्स्ट और सेंडर ID लिखेंआप अपने SMS कोड के टेक्स्ट और आपके उपयोगकर्ताओं को दिखने वाले प्रेषक को बदल सकते हैं।
दोनों को Business Console में **White Label → SMS** के अंतर्गत सेट करें।
SMS प्रेषक नाम की तरह, वे आपके एप्लिकेशन से संबंधित होते हैं, और इसके द्वारा भेजे जाने वाले प्रत्येक SMS कोड पर लागू होते हैं, प्रत्येक वर्कफ़्लो में और स्टैंडअलोन API के माध्यम से।**आपका अपना टेक्स्ट** प्रति भाषा लिखा जाता है।
जब आप उस भाषा के लिए टेक्स्ट लिखते हैं जिसमें कोड भेजा जाता है, तो कोड आपके टेक्स्ट में भेजा जाता है; अन्य सभी भाषाएँ Didit के अनुवादित टेक्स्ट को बनाए रखती हैं।
कोड के लिए `{code}` और वैकल्पिक रूप से, अपने SMS प्रेषक नाम के लिए `{brand}` का उपयोग करें, उदाहरण के लिए `Acme: {code} is your login code for {brand}.`टेक्स्ट में यह होना अनिवार्य है:- ठीक एक बार `{code}` शामिल हो, और `{code}` तथा `{brand}` के अलावा कोई अन्य प्लेसहोल्डर न हो;
- कोई लिंक शामिल न हो: मोबाइल ऑपरेटर ऐसे सत्यापन कोड को ब्लॉक कर देते हैं जिनमें लिंक होते हैं;
- 8-अंकीय कोड और 30-वर्णों के नाम के साथ एक ही SMS में फ़िट हो: 160 वर्णों तक, या जब यह बुनियादी लैटिन वर्णमाला से बाहर के वर्णों (उदाहरण के लिए सिरिलिक, अरबी या इमोजी) का उपयोग करता है तो 70 वर्णों तक।**आपका अपना सेंडर ID** 3 से 11 वर्णों का होता है और इसमें अक्षर, अंक तथा स्पेस होते हैं, केवल अंक नहीं, उदाहरण के लिए `AcmeBank`।
इसका उपयोग उन देशों में किया जाता है जहाँ Didit कस्टम सेंडर ID सक्षम करता है, जो वे देश हैं जिनके ऑपरेटर प्रेषक नाम को पहले पंजीकृत किए बिना स्वीकार करते हैं; अन्य सभी स्थानों पर आपके कोड Didit के प्रेषक के तहत भेजे जाते हैं।
ऐसे देश का अनुरोध करने के लिए सहायता टीम से संपर्क करें जिसके प्रेषक को पंजीकृत करने की आवश्यकता होती है।- **डिलीवरी पहले**: जब किसी ऐसे रूट पर कोड फिर से भेजा जाता है जो आपके टेक्स्ट या आपके सेंडर ID को सपोर्ट नहीं कर सकता है, तो इसे Didit के टेक्स्ट के साथ, आपके SMS प्रेषक नाम से हस्ताक्षरित, और Didit के प्रेषक के साथ भेजा जाता है, ताकि कोड हमेशा डिलीवर हो सके।#### अपने स्वयं के नंबर से WhatsApp कोड भेजेंडिफ़ॉल्ट रूप से, WhatsApp कोड Didit के WhatsApp Business नंबर से आते हैं।
इसके बजाय आप अपना स्वयं का WhatsApp Business नंबर कनेक्ट कर सकते हैं, जिससे आपके उपयोगकर्ताओं को उनके कोड आपके व्यवसाय के नाम और नंबर से प्राप्त होंगे।Business Console में, किसी वर्कफ़्लो के **Phone Verification → Settings → WhatsApp number** में **एक नंबर कनेक्ट करें**, और **Connect WhatsApp number** चुनें।
एक साइन-इन विंडो खुलती है: उस व्यवसाय खाते में साइन इन करें जो आपके WhatsApp Business नंबर का प्रबंधन करता है, फिर WhatsApp Business खाता और भेजने के लिए नंबर चुनें।
इसके बाद Didit नंबर को भेजने के लिए पंजीकृत करता है और इसका सत्यापन संदेश बनाता है।
इसे संपादित करने के लिए कस्टमाइज़ेशन को संपादित करने की अनुमति की आवश्यकता होती है, जैसे SMS प्रेषक नाम।यह नंबर आपके एप्लिकेशन से संबंधित है, न कि किसी एक वर्कफ़्लो से: एक बार कनेक्ट होने के बाद, यह एप्लिकेशन द्वारा भेजे जाने वाले प्रत्येक WhatsApp कोड को भेजता है, प्रत्येक वर्कफ़्लो में और स्टैंडअलोन API के माध्यम से।- **स्वीकृति**: नंबर द्वारा कोड भेजे जाने से पहले नए सत्यापन संदेश को स्वीकृति की आवश्यकता होती है, जो आमतौर पर कुछ ही मिनटों में मिल जाती है। तब तक कार्ड नंबर को स्वीकृति की प्रतीक्षा करते हुए दिखाता है, और इस दौरान कोड Didit के नंबर से जाते रहते हैं।
- **संदेश टेक्स्ट**: WhatsApp पर सत्यापन संदेश आपके उपयोगकर्ता की भाषा में एक मानक टेक्स्ट का उपयोग करते हैं: कोड, एक सुरक्षा नोट और एक कॉपी बटन। टेक्स्ट को संपादित नहीं किया जा सकता है, लेकिन प्रेषक आपका व्यवसाय होता है।
- **डिलीवरी**: यदि WhatsApp पर कोई कोड डिलीवर नहीं किया जा सकता है, तो इसे आपके SMS प्रेषक नाम से हस्ताक्षरित करके SMS द्वारा भेजा जाता है।
- **बिलिंग**: आपके नंबर द्वारा भेजे जाने वाले संदेशों का शुल्क आपके WhatsApp Business खाते से लिया जाता है, इसलिए Didit उन कोड के लिए केवल अपना सत्यापन शुल्क (\$0.02) लेता है। SMS द्वारा भेजे गए कोड का बिल हमेशा की तरह लिया जाता है।
- **ध्यान देने की ज़रूरत**: यदि नंबर अब भेजने में सक्षम नहीं है (उदाहरण के लिए, आपके व्यवसाय खाते से इसका एक्सेस हटा दिया गया था), तो कोड फिर से Didit के नंबर से जाने लगते हैं और कार्ड आपसे नंबर को फिर से कनेक्ट करने के लिए कहता है।
- उसी कार्ड से किसी भी समय **डिस्कनेक्ट करें**। कोड फिर से Didit के नंबर से जाने लगेंगे; नंबर और उसका सत्यापन संदेश आपके WhatsApp Business खाते में बने रहेंगे।#### फ़ोन नंबर विश्लेषण- **फ़ॉर्मेट सत्यापन**: सुनिश्चित करें कि फ़ोन नंबर सही अंतरराष्ट्रीय फ़ॉर्मेट का पालन करता है
- **कैरियर डिटेक्शन**: नंबर से जुड़े दूरसंचार प्रदाता की पहचान करें
- **नंबर का प्रकार**: मोबाइल, लैंडलाइन और VoIP नंबरों के बीच अंतर करें
- **देश सत्यापन**: सत्यापित करें कि फ़ोन नंबर अपेक्षित देश के फ़ॉर्मेट से मेल खाता है#### जोखिम मूल्यांकन- **डिस्पोज़ेबल नंबर डिटेक्शन**: ट्रेसिबिलिटी से बचने के लिए उपयोग किए जाने वाले अस्थायी नंबरों की पहचान करें
- **वर्चुअल नंबर पहचान**: उन नंबरों को फ़्लैग करें जो वर्चुअल या VoIP-आधारित हो सकते हैं
- **गतिविधि निगरानी**: सत्यापन प्रयासों के दौरान संदिग्ध पैटर्न को ट्रैक करें
- **ब्लॉकलिस्ट चेकिंग**: पहले दुरुपयोग किए गए नंबरों की आंतरिक सूचियों के विरुद्ध जाँच करें## मूल्य निर्धारणफ़ोन सत्यापन के लिए **प्रति भेजा गया संदेश** पारदर्शी, पे-ऐज़-यू-गो मूल्य निर्धारण के साथ शुल्क लिया जाता है:| कंपोनेंट | लागत |
| - | - |
| **Didit शुल्क** | \$0.02 प्रति सत्यापन |
| **कैरियर शुल्क** | देश और चैनल के अनुसार भिन्न होता है |
| **कुल** | \$0.02 + कैरियर शुल्क |आपका प्लान डिस्काउंट केवल \$0.02 Didit शुल्क पर लागू होता है; कैरियर शुल्क वास्तविक लागत पर ही आपसे लिया जाता है और इस पर कभी छूट नहीं दी जाती है। [छूट](https://docs.didit.me/hi/getting-started/pricing.md#छूट) देखें।हम अलग-अलग मूल्य निर्धारण के साथ कई डिलीवरी चैनलों का समर्थन करते हैं (उपलब्धता देश के अनुसार भिन्न होती है):| चैनल | विवरण |
| - | - |
| **SMS** | पारंपरिक टेक्स्ट संदेश डिलीवरी |
| **WhatsApp** | WhatsApp मैसेजिंग के माध्यम से डिलीवरी |
| **Telegram** | Telegram मैसेजिंग के माध्यम से डिलीवरी |
| **RCS** | रिच कम्युनिकेशन सर्विसेज़ मैसेजिंग |
| **Viber** | Viber मैसेजिंग के माध्यम से डिलीवरी |
| **Zalo** | Zalo मैसेजिंग (वियतनाम) के माध्यम से डिलीवरी |> [!NOTE]
>
> आप केवल तभी भुगतान करते हैं जब कोई संदेश भेजा जाता है। यदि उपयोगकर्ता OTP डिलीवरी से पहले सत्र छोड़ देता है, तो आपसे कोई शुल्क नहीं लिया जाता है।→ [फ़ोन सत्यापन मूल्य निर्धारण](https://docs.didit.me/hi/getting-started/phone-verification-pricing.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.