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

# पहचान सत्यापन REST API संदर्भ | Didit

> Didit REST API संदर्भ: KYC, KYB, AML, बायोमेट्रिक, लेन-देन निगरानी endpoints। OpenAPI spec, pay-per-use मूल्य निर्धारण, $10 free/month।



स्टैंडअलोन API इंटीग्रेशन प्रॉम्प्ट
        प्रॉम्प्ट को क्लिपबोर्ड पर कॉपी करें



      
      

\<pre>

\``Integrate Didit standalone verification APIs into my backend for server-to-server identity checks.

\## Available Standalone APIs

\### Identity & Documents
\- POST /v3/id-verification/ — multipart/form-data: front_image (required), back_image (optional). Returns: { request_id, id_verification: { status, first_name, last_name, document_type, document_number, date_of_birth, nationality, expiration_date, issuing_state, address, parsed_address, warnings[] } }
\- POST /v3/poa/ — multipart/form-data: document (PDF/image). Returns: { request_id, poa: { status, document_type, issuer, poa_address, poa_parsed_address, issue_date, warnings[] } }
\- POST /v3/database-validation/ — JSON: { issuing_state, validation_type, first_name, last_name, date_of_birth, personal_number, ... }. Returns: { request_id, database_validation: { status, validations } }

\### Document AI
\- POST /v3/document-ai/ — multipart/form-data: document (PDF/image), fields (one JSON-encoded array string of { key, name, instruction, type: "text"|"number"|"date", required, is_full_name }, 1-30 items), expected_first_name + expected_last_name OR expected_company_name (+ expected_company_country), document_ai_name_match_score_threshold (default 80), per-risk *_action params. Returns: { request_id, document_ai: { status, extracted_data: { <key>: value|null }, detected_codes[], fields[], name_match_score, name_on_document, warnings[] } }. $0.20 per document.

\### Biometrics & Face
\- POST /v3/passive-liveness/ — multipart/form-data: user_image. Returns: { request_id, passive_liveness: { status, score, method } }
\- POST /v3/face-match/ — multipart/form-data: user_image + ref_image. Returns: { request_id, face_match: { status, score } }
\- POST /v3/face-search/ — multipart/form-data: user_image. Returns: { request_id, face_search: { status, total_matches, matches[] } }
\- POST /v3/age-estimation/ — multipart/form-data: user_image. Returns: { request_id, age_estimation: { status, age_estimation, score } }

\### Compliance
\- POST /v3/aml/ — JSON: { full_name, entity_type, date_of_birth, nationality, document_number, include_adverse_media, include_ongoing_monitoring }. Returns: { request_id, aml: { status, total_hits, hits[], score, entity_type } }

\### Business Verification (KYB)
\- POST /v3/kyb/search/ — JSON: { country_code (required), name, registration_number, tier: "basic" (default) | "shareholders" | "ubo", search_type: "contains", webhook_url, vendor_data, metadata }. `tier` picks the provider chain the search runs on; retrieve the candidate from select (Lite), shareholders or ubo. Up to $0.50 per successful request, separately from profile retrieval; empty results and failures are not charged. Returns: { request_id, kyb_registry: { companies[] ({ kyb_response_id, name, registration_number, status, type, fetch_status }), pagination, search_status, search_resolved } }. `kyb_response_id` is an opaque handle — pass it straight to select/shareholders/ubo, never parse it.
\- POST /v3/kyb/select/ — JSON: { kyb_response_id (from search), save_api_request, vendor_data, metadata }. **Lite** tier, priced per country ([per-country prices](https://docs.didit.me/getting-started/kyb-registry-pricing.md)). Returns: { request_id, kyb_registry: { status, company_name, registration_number, country_code, company_type, incorporation_date, registered_address, officers[], beneficial_owners[], fetch_status, data_resolved, ... } }
\- POST /v3/kyb/shareholders/ and POST /v3/kyb/ubo/ — same JSON shape as select. **Shareholders** and **UBOs** tiers, priced per country; delivered and billed as the highest tier the country's registries can serve. v3 only.

\### Contact Verification
\- POST /v3/email/send/ — JSON: { email }. Sends OTP code.
\- POST /v3/email/check/ — JSON: { email, code }. Verifies OTP.
\- POST /v3/phone/send/ — JSON: { phone, channel }. Sends OTP via SMS/WhatsApp/Telegram.
\- POST /v3/phone/check/ — JSON: { phone, code }. Verifies OTP.

\### Bank Verification
\- POST /v3/bank/account-check/ - JSON: { country (ISO 3166-1 alpha-3), account: { iban } or { account_number, sort_code | routing_number | ifsc | bsb | transit_institution | bank_code } or { clabe } or { cbu_cvu }, holder: { full_name } or { business_name }, vendor_data }. Checks that a bank account belongs to the name, with no session. Returns: { request_id, result: match | close_match | no_match | cannot_verify, holder_name (close_match only), account (masked), vendor_data, created_at }. Billed once per check the bank answers; errors are never billed.

\## Authentication
All requests require: Headers: { "x-api-key": DIDIT_API_KEY }
For file uploads: multipart/form-data. For JSON: Content-Type: application/json.

\## Common Parameters
\- save_api_request (bool, default true): if true, appears in Console > Manual Checks
\- vendor_data (string): your internal ID for tracking

\## Example: ID Verification (Node.js)
const FormData = require('form-data');
const fs = require('fs');
const form = new FormData();
form.append('front_image', fs.createReadStream('./id_front.jpg'));
form.append('back_image', fs.createReadStream('./id_back.jpg'));

const response = await fetch('https://verification.didit.me/v3/id-verification/', {
method: 'POST',
headers: { 'x-api-key': process.env.DIDIT_API_KEY, ...form.getHeaders() },
body: form
});
const result = await response.json();
// result.id_verification.status: "Approved" or "Declined"
// result.id_verification.first_name, .last_name, .document_number, etc.

\## Example: AML Screening
const response = await fetch('https://verification.didit.me/v3/aml/', {
method: 'POST',
headers: { 'x-api-key': process.env.DIDIT_API_KEY, 'Content-Type': 'application/json' },
body: JSON.stringify({
full_name: 'John Doe',
entity_type: 'person',
date_of_birth: '1990-01-15',
nationality: 'US'
})
});
const result = await response.json();
// result.aml.status, result.aml.total_hits, result.aml.hits

\## When to Use Standalone APIs vs Sessions
\- Standalone: you have images/data, server-to-server, batch processing, custom UX
\- Sessions: user-facing flows where Didit handles camera, UX, multi-step, 54 languages

\## Rate Limits
\- Free: 10/min. Paid: 600/min. Exceeded: HTTP 429.

\## Environment Variables
\- DIDIT_API_KEY — from Didit Console > API & Webhooks

\## Docs
\- API Reference: https://docs.didit.me/api-reference/overview
\- Sessions vs APIs: https://docs.didit.me/api-reference/overview
\- Webhooks: https://docs.didit.me/integration/webhooks``

\</pre>



      
      

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

Didit पहचान सत्यापन के लिए **दो पूरक तरीके** प्रदान करता है। दोनों के बीच का अंतर समझना आपके उपयोग के मामले के लिए सही इंटीग्रेशन चुनने में अहम है।### [होस्टेड सत्र](https://docs.didit.me/hi/sessions-api/create-session.md)पूर्व-निर्मित, अनुकूलित UI के साथ पूर्ण सत्यापन प्रवाह। उपयोगकर्ता रीडायरेक्ट, iframe या नेटिव SDK के माध्यम से Didit के होस्टेड इंटरफ़ेस के साथ इंटरैक्ट करते हैं।### [स्टैंडअलोन APIs](https://docs.didit.me/hi/standalone-apis/id-verification.md)सीधे सर्वर-से-सर्वर API कॉल। आप डेटा (छवियाँ, दस्तावेज़, नाम) भेजते हैं और संरचित सत्यापन परिणाम प्राप्त करते हैं। इसमें कोई अंतिम उपयोगकर्ता UI शामिल नहीं होता।***## होस्टेड सत्र (उपयोगकर्ता-उन्मुख प्रवाह के लिए अनुशंसित)अधिकांश इंटीग्रेशन के लिए होस्टेड सत्र **अनुशंसित तरीका** है। जब आप सत्र बनाते हैं, तो Didit एक `verification_url` जनरेट करता है, जिसे आप अपने उपयोगकर्ता को दिखाते हैं। उपयोगकर्ता Didit के अनुकूलित इंटरफ़ेस में पूरा सत्यापन प्रवाह पूरा करता है, और आप परिणाम webhook या API के माध्यम से प्राप्त करते हैं।### यह कैसे काम करता है**1. सत्र बनाएँ**आपका सर्वर वर्कफ़्लो ID के साथ `POST /v3/session/` कॉल करता है। Didit एक `verification_url` और `session_token` लौटाता है।**2. उपयोगकर्ता को दिखाएँ**उपयोगकर्ता को रीडायरेक्ट करें, iframe के ज़रिए एम्बेड करें, या सत्र token का उपयोग करके नेटिव SDK शुरू करें।**3. उपयोगकर्ता सत्यापन पूरा करता है**उपयोगकर्ता Didit के अनुकूलित UI में निर्देशित प्रवाह का पालन करता है: ID कैप्चर, लाइवनेस, और कोई भी अतिरिक्त चरण।**4. परिणाम प्राप्त करें**Didit सत्यापन निर्णय के साथ आपके सर्वर को webhook भेजता है, या आप पुनः प्राप्ति API से पोल करते हैं।### सत्र क्यों अनुशंसित हैं| लाभ | विवरण |
| - | - |
| **अनुकूलित UX** | सत्यापन इंटरफ़ेस का वैश्विक स्तर पर लगातार A/B परीक्षण किया जाता है ताकि सबसे अधिक पूर्णता दर मिल सके |
| **कैमरा प्रबंधन** | स्मार्ट कैमरा चयन, ऑटो-कैप्चर, गुणवत्ता जाँच और डिवाइस संगतता पहले से शामिल हैं |
| **निर्देशित प्रवाह** | उपयोगकर्ता के लिए चरण-दर-चरण निर्देश, रीयल-टाइम फ़ीडबैक और त्रुटि पुनर्प्राप्ति |
| **बहु-सुविधा वर्कफ़्लो** | एक ही प्रवाह में कई सुविधाएँ जोड़ें (पहचान सत्यापन + लाइवनेस + AML + फ़ोन सत्यापन + ईमेल सत्यापन) |
| **सुरक्षा** | प्रवाह में एंटी-स्पूफिंग, सक्रिय लाइवनेस डिटेक्शन और डिवाइस फ़िंगरप्रिंटिंग शामिल हैं |
| **अनुपालन** | सत्र-स्तरीय ऑडिट लॉग, सहमति कैप्चर और डेटा प्रतिधारण नीतियाँ स्वचालित रूप से संभाली जाती हैं |
| **स्थानीयकरण** | स्वचालित ब्राउज़र पहचान के साथ 54 भाषाएँ |
| **मोबाइल-नेटिव** | iOS, Android, React Native और Flutter के लिए नेटिव SDK |
| **कोई रखरखाव नहीं** | Didit सभी UI अपडेट, ब्राउज़र और डिवाइस बग, और कैमरे से जुड़ी असामान्य स्थितियाँ संभालता है |### सत्र कब उपयोग करें- **उपयोगकर्ता ऑनबोर्डिंग / KYC**: नए उपयोगकर्ता साइन अप करते हैं और उन्हें अपनी पहचान सत्यापित करनी होती है
- **आयु सत्यापन**: पुष्टि करें कि उपयोगकर्ता न्यूनतम आयु आवश्यकताएँ पूरी करते हैं
- **पुनः सत्यापन**: मौजूदा उपयोगकर्ताओं को समय-समय पर फिर से सत्यापित करें
- **बायोमेट्रिक प्रमाणीकरण**: संवेदनशील कार्रवाइयों के लिए उपयोगकर्ता अपने चेहरे से प्रमाणीकरण करते हैं
- **बहु-चरणीय अनुपालन**: ऐसे प्रवाह जिनमें ID + लाइवनेस + AML + फ़ोन एक साथ चाहिए
- ऐसी कोई भी स्थिति जहाँ अंतिम उपयोगकर्ता मौजूद हो और सीधे इंटरैक्ट करे### सत्र endpoint| endpoint | उद्देश्य |
| - | - |
| [सत्र बनाएँ](https://docs.didit.me/hi/sessions-api/create-session.md) | किसी उपयोगकर्ता के लिए सत्यापन URL जनरेट करें |
| [सत्र पुनः प्राप्त करें](https://docs.didit.me/hi/sessions-api/retrieve-session.md) | किसी सत्र के पूर्ण परिणाम और निर्णय प्राप्त करें |
| [सत्र सूची](https://docs.didit.me/hi/sessions-api/list-sessions.md) | सभी सत्रों को क्वेरी और फ़िल्टर करें |
| [सत्र हटाएँ](https://docs.didit.me/hi/sessions-api/delete-session.md) | सत्र और उससे जुड़ा सारा डेटा हटाएँ |
| [PDF जनरेट करें](https://docs.didit.me/hi/sessions-api/generate-pdf.md) | सत्यापन रिपोर्ट को PDF के रूप में एक्सपोर्ट करें |
| [सत्र साझा करें](https://docs.didit.me/hi/sessions-api/share-session/share.md) | भागीदार के साथ पुनः प्रयोज्य KYC के लिए शेयर token जनरेट करें |
| [साझा सत्र इंपोर्ट करें](https://docs.didit.me/hi/sessions-api/share-session/import.md) | भागीदार द्वारा साझा किया गया सत्र इंपोर्ट करें (पुनः प्रयोज्य KYC) |***## स्टैंडअलोन APIs (सर्वर-से-सर्वर प्रोसेसिंग के लिए)स्टैंडअलोन APIs आपको **सीधे अपने सर्वर से** किसी भी अंतिम उपयोगकर्ता के UI के बिना अलग-अलग सत्यापन सुविधाओं को कॉल करने देते हैं। आप डेटा (इमेज, दस्तावेज़, नाम) भेजते हैं और संरचित परिणाम प्राप्त करते हैं।### यह कैसे काम करता है**1. डेटा भेजें**आपका सर्वर आवश्यक डेटा के साथ एक स्टैंडअलोन endpoint (जैसे `POST /v3/id-verification/`) कॉल करता है: इमेज, दस्तावेज़ या JSON फ़ील्ड।**2. परिणाम प्राप्त करें**Didit अनुरोध को सिंक्रोनस रूप से प्रोसेस करता है और रिस्पॉन्स में संरचित सत्यापन परिणाम लौटाता है।### स्टैंडअलोन APIs कब इस्तेमाल करें| उपयोग का मामला | उदाहरण |
| - | - |
| **बैकएंड प्रोसेसिंग** | आपके पास अपने कैप्चर UI से दस्तावेज़ों की इमेज पहले से हैं और आपको उन्हें सत्यापित करना है |
| **बैच सत्यापन** | ऑपरेशन टीम द्वारा अपलोड किए गए बड़ी संख्या में पहचान दस्तावेज़ प्रोसेस करना |
| **कस्टम UX** | आपने अपना कैप्चर फ़्लो बनाया है और केवल विश्लेषण के लिए Didit का उपयोग करना चाहते हैं |
| **सर्वर-से-सर्वर जाँच** | बिना किसी उपयोगकर्ता इंटरैक्शन के ग्राहकों की सूची पर AML स्क्रीनिंग |
| **स्वचालित पाइपलाइन** | CI/CD या cron-आधारित अनुपालन पुनः जाँच (जैसे दैनिक AML निगरानी) |
| **मौजूदा सिस्टम के साथ इंटीग्रेशन** | Didit के सत्यापन को अपने मौजूदा दस्तावेज़ प्रबंधन सिस्टम से जोड़ना |
| **एकल-सुविधा कॉल** | आपको केवल एक सुविधा चाहिए (जैसे सिर्फ़ AML स्क्रीनिंग या सिर्फ़ चेहरा मिलान) |### उपलब्ध स्टैंडअलोन APIs**पहचान और दस्तावेज़**| API | यह क्या करता है |
| - | - |
| [ID Verification](https://docs.didit.me/hi/standalone-apis/id-verification.md) | ID दस्तावेज़ों (फ़्रंट और बैक इमेज) से डेटा निकालना और उसे सत्यापित करना |
| [Proof of Address](https://docs.didit.me/hi/standalone-apis/proof-of-address.md) | पते के दस्तावेज़ सत्यापित करना (उपयोगिता बिल, बैंक स्टेटमेंट, सरकारी दस्तावेज़) |
| [Address Validation](https://docs.didit.me/hi/standalone-apis/address-validation.md) | पुष्टि करना कि पता मौजूद है और उसे सामान्यीकृत रूप में निर्देशांक सहित वापस पाना |
| [Database Validation](https://docs.didit.me/hi/core-technology/database-validation/overview.md) | उपयोगकर्ता के डेटा की सरकारी डेटाबेस से तुलना करना |**Document AI**| API | यह क्या करता है |
| - | - |
| [Document AI](https://docs.didit.me/hi/standalone-apis/document-ai.md) | किसी भी दस्तावेज़ (PDF या इमेज) से आपके परिभाषित फ़ील्ड निकालना, नाम मिलान और छेड़छाड़ की जाँच के साथ |**बायोमेट्रिक्स और चेहरा**| API | यह क्या करता है |
| - | - |
| [Passive Liveness](https://docs.didit.me/hi/standalone-apis/passive-liveness.md) | एक ही इमेज से पुष्टि करना कि वास्तविक व्यक्ति मौजूद है (स्पूफिंग-विरोधी) |
| [Face Match](https://docs.didit.me/hi/standalone-apis/face-match.md) | दो चेहरों की तुलना करके तय करना कि वे एक ही व्यक्ति के हैं या नहीं |
| [Face Search](https://docs.didit.me/hi/standalone-apis/face-search.md) | पहले सत्यापित सभी सत्रों में चेहरा खोजना (1:N) |
| [Age Estimation](https://docs.didit.me/hi/standalone-apis/age-estimation.md) | चेहरे की इमेज से व्यक्ति की आयु का अनुमान लगाना |**अनुपालन और जोखिम**| API | यह क्या करता है |
| - | - |
| [AML Screening](https://docs.didit.me/hi/standalone-apis/aml-screening.md) | व्यक्तियों या कंपनियों को प्रतिबंधों, PEP और वॉचलिस्ट के विरुद्ध स्क्रीन करना |**बैंक सत्यापन**| API | यह क्या करता है |
| - | - |
| [Account check](https://docs.didit.me/hi/standalone-apis/bank-account-check.md) | पैसे भेजने से पहले जाँचना कि कोई बैंक खाता आपके बताए व्यक्ति या कंपनी का है |**व्यवसाय सत्यापन (KYB)**| API | यह क्या करता है |
| - | - |
| [KYB Registry Search](https://docs.didit.me/hi/standalone-apis/kyb-registry-search.md) | नाम, पंजीकरण संख्या और देश से कंपनी रजिस्ट्री खोजना; सफल अनुरोध पर अधिकतम \$0.50 |
| [KYB Registry Select](https://docs.didit.me/hi/standalone-apis/kyb-registry-select.md) | चुनी गई कंपनी का पूरा रजिस्ट्री प्रोफ़ाइल (अधिकारी, वास्तविक स्वामी, पते) प्राप्त करना |***## साथ-साथ तुलना| | होस्टेड सत्र | स्टैंडअलोन APIs |
| - | - | - |
| **इंटीग्रेशन प्रयास** | कम: रीडायरेक्ट, iframe या SDK | मध्यम: डेटा कैप्चर और सबमिशन आप संभालते हैं |
| **उपयोगकर्ता इंटरैक्शन** | हाँ: उपयोगकर्ता Didit UI में फ़्लो पूरा करता है | नहीं: केवल सर्वर-से-सर्वर |
| **कैमरा/कैप्चर** | Didit द्वारा संभाला जाता है (अनुकूलित) | इमेज/डेटा आप प्रदान करते हैं |
| **मल्टी-सुविधा फ़्लो** | हाँ: वर्कफ़्लो में सुविधाओं को जोड़ा जा सकता है | प्रति API कॉल एक सुविधा |
| **UX अनुकूलन** | लगातार A/B टेस्ट किया जाता है | UX आपके नियंत्रण में है |
| **स्थानीयकरण** | 54 भाषाएँ, स्वतः पहचानी जाती हैं | लागू नहीं (कोई UI नहीं) |
| **webhook** | स्वचालित स्टेटस सूचनाएँ | लागू नहीं (सिंक्रोनस रिस्पॉन्स) |
| **प्रतिक्रिया समय** | एसिंक (उपयोगकर्ता अपनी गति से पूरा करता है) | सिंक्रोनस (सेकंड) |
| **सबसे उपयुक्त** | उपयोगकर्ता-उन्मुख ऑनबोर्डिंग और सत्यापन | बैकएंड प्रोसेसिंग और ऑटोमेशन |
| **कंसोल में दृश्यता** | डैशबोर्ड में पूरा सत्र जीवनचक्र | **मैन्युअल जाँच** सेक्शन में दिखता है |***## क्या मैं दोनों का उपयोग कर सकता हूँ?**हाँ।** कई टीमें दोनों तरीकों को मिलाकर इस्तेमाल करती हैं:1) **ऑनबोर्डिंग के लिए सत्र**: नए उपयोगकर्ता साइन-अप के दौरान पूरा होस्टेड सत्यापन फ़्लो पूरा करते हैं
2) **सतत निगरानी के लिए स्टैंडअलोन AML**: एक cron जॉब रात में सभी स्वीकृत उपयोगकर्ताओं को अपडेटेड वॉचलिस्ट के विरुद्ध फिर से स्क्रीन करता है
3) **डुप्लिकेट की पहचान के लिए स्टैंडअलोन Face Search**: जब कोई नया सत्र स्वीकृत होता है, तो आपका सर्वर डुप्लिकेट जाँचने के लिए Face Search कॉल करता है
4) **ऑपरेशंस के लिए स्टैंडअलोन ID Verification**: आपकी अनुपालन टीम विशेष मामलों की समीक्षा के लिए मैन्युअल रूप से दस्तावेज़ अपलोड करती है### उदाहरण: संयुक्त आर्किटेक्चर| आपका एप्लिकेशन | Didit API | प्रकार |
| - | - | - |
| **उपयोगकर्ता साइन-अप फ़्लो** | Sessions API (होस्टेड UI) | उपयोगकर्ता-उन्मुख |
| **रात्रिकालीन AML पुनः स्क्रीनिंग** | स्टैंडअलोन AML API | सर्वर-से-सर्वर |
| **ऑप्स टीम दस्तावेज़ समीक्षा** | स्टैंडअलोन ID Verification API | सर्वर-से-सर्वर |
| **डुप्लिकेट चेहरा पहचान** | स्टैंडअलोन Face Search API | सर्वर-से-सर्वर |***## शुरुआत कैसे करें### [सत्र के साथ क्विक स्टार्ट](https://docs.didit.me/hi/integration/api-full-flow.md)5 मिनट में अपना पहला होस्टेड सत्यापन सत्र बनाएँ।### [API प्रमाणीकरण](https://docs.didit.me/hi/getting-started/api-authentication.md)अपनी API कुंजी प्राप्त करें और प्रमाणीकृत अनुरोध करना शुरू करें।### [webhook सेट अप करें](https://docs.didit.me/hi/integration/webhooks.md)सत्यापन स्थिति बदलने पर रीयल-टाइम सूचनाएँ प्राप्त करें।### [वर्कफ़्लो बनाएँ](https://docs.didit.me/hi/console/workflows.md)Business Console में अपने कस्टम सत्यापन फ़्लो बनाएँ।***


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