> ## 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.

# पहचान सत्यापन तेज़ी से शुरू करें: क्विक स्टार्ट

> Didit के साथ मिनटों में पहला KYC फ़्लो बनाएं: खाता बनाएं, वर्कफ़्लो सेट करें और सत्र शुरू करें। $10 का निःशुल्क क्रेडिट/माह।

यह क्विक स्टार्ट आपको एक नए Didit खाते से लाइव पहचान सत्यापन तक ले जाता है: अपना खाता बनाएं, टेम्पलेट से एक सत्यापन वर्कफ़्लो तैयार करें, एक webhook कॉन्फ़िगर करें और अपनी API कुंजी कॉपी करें, एक API कॉल के साथ एक सत्यापन सत्र शुरू करें, और रीयल टाइम में निर्णय प्राप्त करें।यह पेज नीचे दिए गए Academy पाठ के साथ जुड़ा हुआ है: एक 19-मिनट की स्क्रीन रिकॉर्डिंग जो वास्तविक कंसोल में एक सत्यापन वर्कफ़्लो बनाती है, टेम्पलेट से लेकर प्रकाशित फ़्लो तक, जिसमें नियम, ब्रांचिंग, मूल्य निर्धारण और साझा करने योग्य लिंक शामिल हैं।[Build Your First Verification Flow — Didit Academy](https://www.youtube.com/embed/7-nJ3JE20i4?rel=0\&playsinline=1)

क्विक स्टार्ट प्रॉम्प्ट
        प्रॉम्प्ट को क्लिपबोर्ड पर कॉपी करें



      
      

\<pre>

\````# Goal — ship your first Didit verification end-to-end

You are integrating Didit (https://docs.didit.me) into my project. Take me from zero to a working KYC / KYB flow: account, workflow, session, hosted UI, webhook, decision.

For the full canonical recipe (5K-token version covering SDK pick, webhook HMAC verification, every status, decision parsing), use:

https://docs.didit.me/integration/integration-prompt

That page has a "Copy Prompt" button — copy its prompt and follow it. The summary below is enough to bootstrap if you can't fetch the full prompt.

\## My application context

\<my_stack>
Stack: [framework + language, e.g. Next.js 15 + TypeScript]
Surface: [web | iOS | Android | React Native | Flutter | backend-only]
Use case: [KYC at signup | KYB at business onboarding | age gate | re-auth]
Database: [Postgres | MySQL | Mongo]
\</my_stack>

\## Steps

1\. **Register programmatically (2 calls)** — `POST https://apx.didit.me/auth/v2/programmatic/register/` then `POST https://apx.didit.me/auth/v2/programmatic/verify-email/` with the 6-char code. Save `response.application.api_key` as `DIDIT_API_KEY`.

2\. **Create a workflow** —
\```bash
curl -X POST https://verification.didit.me/v3/workflows/ \
-H "x-api-key: $DIDIT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"workflow_label": "Standard KYC",
"workflow_type": "kyc",
"features": [
  \{"feature": "OCR"},
  \{"feature": "LIVENESS", "config": {"face_liveness_method": "PASSIVE"}},
  \{"feature": "FACE_MATCH"},
  \{"feature": "AML"}
]
}'
\```
Persist `workflow.id`.

3\. **Create a session** —
\```bash
curl -X POST https://verification.didit.me/v3/session/ \
-H "x-api-key: $DIDIT_API_KEY" \
-H "Content-Type: application/json" \
-d '{"workflow_id": "$WORKFLOW_ID", "vendor_data": "user-42", "callback": "https://myapp.com/kyc/return"}'
\```
Response contains `session_id`, `url`, `session_token`. Redirect the user to `url` (or open in the SDK / an iframe).

4\. **Register a webhook destination** — `POST https://verification.didit.me/v3/webhook/destinations/` with `{"label": "Production", "url": "...", "subscribed_events": ["status.updated","data.updated","user.status.updated","user.data.updated"], "webhook_version": "v3"}` (`label` and `url` are required). Save the returned `secret_shared_key` as `DIDIT_WEBHOOK_SECRET` (`GET /v3/webhook/destinations/{destination_uuid}/` returns it again).

5\. **Receive webhooks** — verify the `X-Signature-V2` header (HMAC-SHA256 of canonical JSON; see /integration/webhooks). De-dupe on `event_id`. Respond within 5 seconds. Apply decision to your DB based on `status`.

6\. **Retrieve the decision (fallback)** — `GET https://verification.didit.me/v3/session/{session_id}/decision/`. V3 returns plural arrays (`id_verifications[]`, `liveness_checks[]`, `face_matches[]`, `aml_screenings[]`, ...). Never assume singular V2 fields.

\## Failure modes
\- Missing API key → `403 {"detail": "You do not have permission to perform this action."}` on verification.didit.me. Wrong, revoked or expired key → `401`. JWT problems on apx.didit.me → `403`.
\- Invalid `workflow_id` → `400`.
\- Webhook handler slower than 5s, or answering 5xx or 404 → Didit retries twice, after about 1 and 4 minutes, then drops the delivery. Resend it from the destination's delivery log.

\## Sources of truth (cross-check before shipping)
\- /openapi-25.json — verification API
\- /openapi-auth.json — programmatic auth
\- /reference/data-models — V3 decision shape
\- /integration/integration-prompt — canonical end-to-end prompt````

\</pre>



      
      

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

**1. अपना Didit खाता बनाएं**1) [business.didit.me](https://business.didit.me) पर जाएं
2) SSO या ईमेल और पासवर्ड से साइन अप करें
3) अपना **संगठन** बनाएं — यहीं आपकी टीम वर्कफ़्लो, API कुंजियाँ और सत्यापन गतिविधि प्रबंधित करती है**2. सत्यापन वर्कफ़्लो बनाएं**साइडबार में **वर्कफ़्लो** पर जाएं और **Create New** पर क्लिक करें। वर्कफ़्लो का एक प्रकार चुनें:| प्रकार | विवरण |
| - | - |
| **Simple Workflow** | चरण एक निश्चित क्रम में चलते हैं — मानक ऑनबोर्डिंग फ़्लो के लिए आदर्श |
| **Node-Based Workflow** | लचीला ब्रांचिंग लॉजिक — सत्यापन परिणामों के आधार पर सशर्त पथ बनाएं |शुरू करने के लिए एक टेम्पलेट चुनें:| टेम्पलेट | उपयोग का मामला |
| - | - |
| **KYC** | मानक उपयोगकर्ता ऑनबोर्डिंग |
| **Adaptive Age Verification** | ID फ़ॉलबैक के साथ सेल्फ़ी आयु जांच |
| **Biometric Authentication** | पासवर्ड रहित सेल्फ़ी पुनः प्रमाणीकरण |
| **Address Verification** | पते का प्रमाण फ़्लो |ब्लॉक्स को टॉगल करके कस्टमाइज़ करें: लाइवनेस डिटेक्शन, चेहरा मिलान, AML, NFC सत्यापन, फ़ोन सत्यापन, ईमेल सत्यापन, और बहुत कुछ।नीचे दिया गया क्लिप Academy पाठ के 2:50 मिनट वाले भाग से शुरू होता है, जहाँ एक टेम्पलेट से एक नया वर्कफ़्लो बनाया जाता है और नोड दर नोड कॉन्फ़िगर किया जाता है।[Creating a new workflow from a template — Didit Academy](https://www.youtube.com/embed/7-nJ3JE20i4?start=170\&rel=0\&playsinline=1)**3. webhook कॉन्फ़िगर करें और API कुंजी कॉपी करें**साइडबार में **डेवलपर्स** पर जाएं, फिर **API कुंजियाँ** और **webhook**:1. अपना **webhook URL** जोड़ें — Didit यहीं स्थिति अपडेट भेजता है
2. अपनी **API कुंजी** कॉपी करें — इसे केवल सर्वर-साइड रखें, कभी भी फ़्रंटएंड कोड में उजागर न करें
3. गंतव्य के **हस्ताक्षर सीक्रेट** को अपने `.env` में `DIDIT_WEBHOOK_SECRET` के रूप में सहेजें — आने वाले webhook पर `X-Signature-V2` HMAC को सत्यापित करने के लिए यह आवश्यक है> [!TIP]
>
> आप अलग-अलग डेटा और स्थितियों के साथ इस पेज से **सीधे webhook का परीक्षण कर सकते हैं** — पूर्ण सत्यापन चलाने की आवश्यकता नहीं है। इससे आप लाइव होने से पहले यह मान्य कर सकते हैं कि आपका इंटीग्रेशन सही ढंग से काम कर रहा है।**4. सत्यापन सत्र शुरू करें****विकल्प A — होस्टेड सत्र** (अनुशंसित)हमारा पसंदीदा इंटीग्रेशन तरीका। Didit लगातार होस्टेड फ़्लो का A/B परीक्षण करता है, ताकि आपके द्वारा कोई भी UI शिप किए बिना पूर्णता दर, गति और धोखाधड़ी प्रतिरोध में सुधार होता रहे।कंसोल में, **"+"** पर क्लिक करें → एक वर्कफ़्लो चुनें → एक लिंक या QR कोड जनरेट करें। या प्रोग्रामेटिक रूप से सत्र बनाएं:```bash theme={null}
curl -X POST https://verification.didit.me/v3/session/ \
  -H "x-api-key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"workflow_id": "your-workflow-id"}'
```> [!NOTE]
>
> साइडबार में **वर्कफ़्लो** के तहत अपना `workflow_id` खोजें।इंटीग्रेशन Academy पाठ में, यह 3:36 का निशान है: इसके एक आवश्यक फ़ील्ड के साथ सत्र बनाने वाला कॉल, फिर वेंडर डेटा और कॉलबैक URL।[Create session: the one required field — Didit Academy](https://www.youtube.com/embed/fX03-WEu_EI?start=216\&rel=0\&playsinline=1)**विकल्प B — स्टैंडअलोन APIs** (उन्नत)सीधे अपने बैकएंड से endpoints को कॉल करें — किसी सत्र की आवश्यकता नहीं है। सर्वर-टू-सर्वर या कस्टम फ़्लो के लिए सर्वोत्तम:| endpoint | उद्देश्य |
| - | - |
| `POST /v3/id-verification/` | दस्तावेज़ जांच |
| `POST /v3/face-match/` | सेल्फ़ी बनाम ID |
| `POST /v3/aml/` | प्रतिबंध और PEP |
| `POST /v3/passive-liveness/` | डीपफ़ेक डिटेक्शन |पूरी सूची [API संदर्भ](https://docs.didit.me/hi/standalone-apis/id-verification.md) में देखें।**5. रीयल-टाइम परिणाम प्राप्त करें**Didit आपके endpoint पर webhook इवेंट भेजता है — किसी पोलिंग की आवश्यकता नहीं है।| इवेंट | ट्रिगर |
| - | - |
| `status.updated` | उपयोगकर्ता-सत्र या व्यवसाय-सत्र की स्थिति में बदलाव होता है |
| `data.updated` | सत्र या व्यवसाय-सत्र के सत्यापन डेटा में बदलाव होता है |
| `user.status.updated` | वेंडर उपयोगकर्ता की स्थिति में बदलाव होता है |
| `user.data.updated` | वेंडर उपयोगकर्ता प्रोफ़ाइल या समग्र डेटा में बदलाव होता है |
| `business.status.updated` | वेंडर व्यवसाय स्थिति में बदलाव होता है |
| `business.data.updated` | वेंडर व्यवसाय प्रोफ़ाइल या समग्र डेटा में बदलाव होता है |
| `activity.created` | गतिविधि इवेंट रिकॉर्ड किया गया |
| `transaction.created` | लेन-देन बनाया गया |
| `transaction.status.updated` | लेन-देन स्थिति में बदलाव होता है |payload प्रारूप और हस्ताक्षर सत्यापन के लिए [webhook](https://docs.didit.me/hi/integration/webhooks.md) देखें।**6. प्रबंधित करें और निगरानी करें**कंसोल का उपयोग करें:- रीयल टाइम में सत्र की प्रगति देखने के लिए
- अनुपालन के लिए PDF/CSV रिपोर्ट डाउनलोड करने के लिए
- संदिग्ध IDs या चेहरों को ब्लॉकलिस्ट करने के लिए
- सत्रों को मैन्युअल रूप से अपडेट या अस्वीकार करने के लिएपरिणामों को पढ़ने पर Academy पाठ वास्तविक सत्र की जाँच-दर-जाँच प्रक्रिया दिखाता है: चेतावनियाँ, स्कोर, इवेंट लॉग, webhook डिलीवरी, और वह PDF एक्सपोर्ट जो आपकी अनुपालन टीम मांगेगी।[How to Read a Verification Result — Didit Academy](https://www.youtube.com/embed/7htTWCWsl60?rel=0\&playsinline=1)## सहायता चाहिए?> [card] [ईमेल](mailto:hello@didit.me)
>
> [hello@didit.me](mailto:hello@didit.me)


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