मुख्य सामग्री पर जाएं
POST
Python
एक दस्तावेज़ और उससे पढ़े जाने वाले फ़ील्ड की सूची भेजें। Didit दस्तावेज़ पर अपना डिफ़ॉल्ट एक्सट्रैक्शन मॉडल चलाता है, हर फ़ील्ड को उसके टाइप के साथ लौटाता है (text, number, या date जो YYYY-MM-DD के रूप में हो), समर्थित QR कोड और बारकोड का पता लगाकर उन्हें डिकोड करता है, फ़ाइल में छेड़छाड़ की जाँच करता है, और चाहें तो दस्तावेज़ पर लिखे नाम की तुलना उस व्यक्ति या कंपनी से कर सकता है जिसकी आप अपेक्षा करते हैं। इसका उपयोग धन का प्रमाण, वेतन पर्ची, बैंक स्टेटमेंट, कर दस्तावेज़, इनवॉइस, या किसी भी ऐसे दस्तावेज़ के लिए करें जो किसी निश्चित टेम्पलेट में फ़िट नहीं होता। यह होस्टेड Document AI चरण का सर्वर-से-सर्वर संस्करण है। अनुरोध multipart/form-data होता है: फ़ाइल document में जाती है, और फ़ील्ड परिभाषाएँ fields में एक JSON-एन्कोड की गई ऐरे स्ट्रिंग के रूप में जाती हैं।

निकालने के लिए फ़ील्ड परिभाषित करें

fields 1 से 30 आइटम की JSON ऐरे है, जिसे एकल स्ट्रिंग के रूप में भेजा जाता है। हर आइटम में एक key (केवल लोअरकेस अक्षर, अंक और अंडरस्कोर, अनुरोध के भीतर अद्वितीय), एक मानव-पठनीय name, एक instruction जो मॉडल को बताता है कि क्या खोजना है, एक type (text, number, या date), और दो फ़्लैग होते हैं: required और is_full_name।
multipart अनुरोध में पूरा ऐरे एक ही फ़ॉर्म मान होता है:
रिस्पॉन्स सामान्यीकृत fields लौटाता है और extracted_data लौटाता है, जो आपके key मानों से कुंजीबद्ध होता है, जिसमें मॉडल को जो नहीं मिला उसके लिए null होता है। हर आइटम पर name, instruction, और type वैकल्पिक हैं (type का डिफ़ॉल्ट text है); key अनिवार्य है। fields को bracket-style form keys (fields[0][key]=...) के रूप में, या JSON ऐरे के अलावा किसी और रूप में भेजने पर कोई भी एक्सट्रैक्शन चलने से पहले 400 लौटता है, इसलिए कोई बिलिंग नहीं होती।

QR कोड और बारकोड

हर सफल रिस्पॉन्स में document_ai.detected_codes शामिल होता है। हर आइटम में ये फ़ील्ड होते हैं: यह ऐरे PDF के हर संसाधित पृष्ठ को कवर करता है और कोई समर्थित कोड न मिलने पर खाली होता है। Didit कभी payload का अनुमान नहीं लगाता: क्षतिग्रस्त QR कोड उनके स्थान और parsed_payload: null के साथ लौटाए जा सकते हैं, जबकि कोड का पता लगाने में विफलता Document AI अनुरोध को विफल नहीं करती।

नाम मिलान

अधिकतम एक फ़ील्ड को is_full_name: true के साथ चिह्नित करें और बताएं कि दस्तावेज़ किसका होना चाहिए: कोई एक समूह भेजें, दोनों नहीं। जब कोई नाम निकाला जाता है और अपेक्षित नाम मौजूद होता है, तो रिस्पॉन्स में name_match_score (0 से 100) और name_on_document शामिल होते हैं। document_ai_name_match_score_threshold (डिफ़ॉल्ट 80) से कम स्कोर DOCUMENT_AI_NAME_MISMATCH चेतावनी उठाता है और document_ai_name_mismatch_action लागू करता है। यदि कोई फ़ील्ड is_full_name के रूप में चिह्नित नहीं है, तो Didit पहले टेक्स्ट फ़ील्ड पर वापस लौटता है जिसकी key नाम जैसी दिखती है (name, holder, full_name, account_holder); जब आप यह नियंत्रित करना चाहें कि किस मान की तुलना हो, तो फ़ील्ड को स्पष्ट रूप से चिह्नित करें। जब दस्तावेज़ पर कोई नाम मान नहीं मिलता, या कोई अपेक्षित नाम नहीं भेजा जाता, तो नाम जाँच छोड़ दी जाती है और name_match_score null होता है।

जोखिम और कार्रवाइयाँ

नीचे का हर जोखिम एक कार्रवाई पैरामीटर से मेल खाता है जिसे आप प्रति अनुरोध सेट कर सकते हैं: DECLINE, REVIEW, या NO_ACTION। सबसे सख्त ट्रिगर हुई कार्रवाई document_ai.status तय करती है (Declined > In Review > Approved), और हर ट्रिगर हुआ जोखिम document_ai.warnings में सूचीबद्ध होता है। डिफ़ॉल्ट होस्टेड वर्कफ़्लो चरण से मेल खाते हैं; यह जानने के लिए कि हर जोखिम कैसे पहचाना जाता है, Document AI नियम और चेतावनियाँ देखें।

फ़ाइलें, सहेजना और बिलिंग

  • समर्थित फ़ाइलें: PDF (कई पृष्ठों वाली PDF समर्थित), JPG, JPEG, PNG, TIFF, WebP, या दस्तावेज़ वाली ZIP फ़ाइल, 30 MB तक। एन्क्रिप्टेड PDF के लिए 400 लौटता है; इसके बजाय डिक्रिप्ट किया हुआ PDF या फ़ोटो अपलोड करें।
  • save_api_request (डिफ़ॉल्ट true): अनुरोध, निकाले गए फ़ील्ड और पहचाने गए कोड Business Console में Manual Checks के अंतर्गत दिखते हैं, जहाँ आपकी टीम उनकी समीक्षा कर सकती है। सहेजना छोड़ने के लिए इसे false पर सेट करें।
  • vendor_data और metadata रिस्पॉन्स में बिना बदले लौटाए जाते हैं, ताकि आप परिणाम को अपने रिकॉर्ड से जोड़ सकें।
  • कीमत: प्रति दस्तावेज़ $0.20, जिसका बिल दस्तावेज़ संसाधित होने और स्थिति लौटाए जाने पर किया जाता है। आपके प्लान की छूट लागू होती है। मूल्य निर्धारण देखें।
उपयोगकर्ता से दस्तावेज़ खुद अपलोड करवाना है, एक प्रवाह में 3 दस्तावेज़ तक जमा करने हैं, अपलोड स्क्रीन का स्वतः अनुवाद करना है, या निकाले गए फ़ील्ड को ID या प्रश्नावली डेटा से मिलाना है? तो इसके बजाय होस्टेड Document AI वर्कफ़्लो चरण का उपयोग करें।

प्राधिकरण

x-api-key
string
header
आवश्यक

आपकी एप्लिकेशन की API कुंजी, Business Console में Developers -> API keys से। प्राथमिक कुंजी के पास पूर्ण एक्सेस होता है। एक नामित कुंजी को स्कोप किया जा सकता है: प्रति संसाधन none, read या write, कुछ वर्कफ़्लो या स्वीकृत सत्रों तक सीमित, IP पतों की सूची तक सीमित, और समाप्ति तिथि तक सीमित। 401 का अर्थ है कि कुंजी गलत है, निरस्त कर दी गई है या उसकी समय-सीमा समाप्त हो गई है; 403 का अर्थ है कि कोई कुंजी नहीं भेजी गई थी, कुंजी के पास इस संसाधन या कार्रवाई का एक्सेस नहीं है, या अनुरोध उसकी IP सूची से बाहर के पते से आया था; सत्र रूट पर 404 का अर्थ है कि सत्र कुंजी के वर्कफ़्लो या स्थितियों से बाहर है। मीडिया एक्सेस के बिना एक कुंजी को छवि, वीडियो और PDF URL null के रूप में प्राप्त होते हैं, और सत्र write के बिना एक कुंजी को सत्र लिंक और token null के रूप में प्राप्त होते हैं। देखें https://docs.didit.me/console/api-keys।

बॉडी

multipart/form-data
document
file
आवश्यक

रीड किया जाने वाला दस्तावेज़। अनुमत एक्सटेंशन: tiff, jpg, jpeg, png, pdf, webp, zip। अधिकतम अपलोड आकार: 30 MB (बड़ी फ़ाइलों को 400 के साथ अस्वीकार कर दिया जाता है)। मल्टी-पेज PDF समर्थित हैं (अधिक विलंबता की अपेक्षा करें); एन्क्रिप्टेड PDF को 400 के साथ अस्वीकार कर दिया जाता है। प्रोसेसिंग से पहले छवियों को स्वचालित रूप से कंप्रेस किया जाता है।

fields
string
आवश्यक

1–30 फ़ील्ड परिभाषाओं (अधिकतम 16 KB) के साथ एक JSON-एन्कोडेड ऐरे स्ट्रिंग। प्रत्येक आइटम: key (आवश्यक, ^[a-z0-9_]{1,64}$, अद्वितीय — extracted_data में लौटाई गई कुंजी), name (≤100 वर्ण, संदेशों में दिखाया गया), instruction (≤500 वर्ण, मॉडल को क्या पढ़ना चाहिए), type (text डिफ़ॉल्ट | number | date), required (बूलियन, डिफ़ॉल्ट false), is_full_name (बूलियन, डिफ़ॉल्ट false, प्रति अनुरोध अधिकतम एक)। ब्रैकेट-शैली के फ़ॉर्म ऐरे, अमान्य JSON, डुप्लिकेट कुंजियाँ, या एक से अधिक is_full_name किसी भी प्रोसेसिंग या बिलिंग से पहले 400 लौटाते हैं।

उदाहरण:

"[{\"key\": \"employer_name\", \"name\": \"Employer name\", \"instruction\": \"The employer or company issuing the payslip.\", \"type\": \"text\", \"required\": true, \"is_full_name\": false}, {\"key\": \"employee_name\", \"name\": \"Employee name\", \"instruction\": \"The full name of the employee as printed on the payslip.\", \"type\": \"text\", \"required\": true, \"is_full_name\": true}, {\"key\": \"net_pay\", \"name\": \"Net pay\", \"instruction\": \"The net amount paid to the employee for the period.\", \"type\": \"number\", \"required\": true, \"is_full_name\": false}, {\"key\": \"pay_date\", \"name\": \"Pay date\", \"instruction\": \"The payment date shown on the payslip.\", \"type\": \"date\", \"required\": false, \"is_full_name\": false}]"

expected_first_name
string

दस्तावेज़ के नाम फ़ील्ड के विरुद्ध सत्यापित करने के लिए पहला नाम (फ़ज़ी मिलान, लिप्यंतरण-सचेत)। expected_last_name के साथ उपयोग करें; इसे expected_company_name के साथ संयोजित नहीं किया जा सकता है।

उदाहरण:

"Sophia"

expected_last_name
string

दस्तावेज़ के नाम फ़ील्ड के विरुद्ध सत्यापित करने के लिए अंतिम नाम, name_match_score के लिए expected_first_name के साथ संयुक्त।

उदाहरण:

"Martinez"

expected_company_name
string

दस्तावेज़ के नाम फ़ील्ड के विरुद्ध सत्यापित करने के लिए कंपनी का नाम (व्यावसायिक दस्तावेज़ों के लिए)। इसे expected_first_name / expected_last_name के साथ संयोजित नहीं किया जा सकता है (उद्देश्यपूर्ण रूप से कोई उदाहरण मान नहीं है — जनरेट किया गया अनुरोध नमूना व्यक्ति फ़ील्ड का उपयोग करता है; व्यावसायिक दस्तावेज़ को सत्यापित करते समय उन्हें इसके लिए बदलें)।

expected_company_country
string

वैकल्पिक ISO 3166-1 alpha-2 देश कोड (दो ASCII अक्षर, उदा. FR) जो expected_company_name के लिए कंपनी-नाम सामान्यीकरण को ट्यून करता है। केवल expected_company_name के साथ उपयोग किया जाता है।

document_ai_name_match_score_threshold
integer
डिफ़ॉल्ट:80

नाम को मिलान माना जाने के लिए न्यूनतम name_match_score (0–100)। कम स्कोर DOCUMENT_AI_NAME_MISMATCH जोड़ता है, जो document_ai_name_mismatch_action द्वारा नियंत्रित होता है।

आवश्यक सीमा: 0 <= x <= 100
उदाहरण:

80

document_ai_unreadable_document_action
enum<string>
डिफ़ॉल्ट:REVIEW

जब दस्तावेज़ से कोई फ़ील्ड नहीं पढ़ा जा सका (DOCUMENT_AI_UNREADABLE_DOCUMENT) तो क्या कार्रवाई करें।

उपलब्ध विकल्प:
DECLINE,
REVIEW,
NO_ACTION
document_ai_missing_required_fields_action
enum<string>
डिफ़ॉल्ट:REVIEW

जब कम से कम एक required फ़ील्ड नहीं पढ़ा जा सका (DOCUMENT_AI_MISSING_REQUIRED_FIELDS; additional_data.missing_fields उन्हें सूचीबद्ध करता है) तो क्या कार्रवाई करें।

उपलब्ध विकल्प:
DECLINE,
REVIEW,
NO_ACTION
document_ai_document_tampering_action
enum<string>
डिफ़ॉल्ट:DECLINE

जब PDF/EXIF फ़ोरेंसिक्स में हेरफेर का संदेह हो तो क्या कार्रवाई करें — डिजिटल हस्ताक्षर के बाद संशोधित, ज्ञात PDF संपादक, ओवरले-टेक्स्ट हेरफेर, संदिग्ध पुनः एक्सपोर्ट, छवि विसंगतियाँ (DOCUMENT_AI_SUSPECTED_MANIPULATION)।

उपलब्ध विकल्प:
DECLINE,
REVIEW,
NO_ACTION
document_ai_name_mismatch_action
enum<string>
डिफ़ॉल्ट:NO_ACTION

जब name_match_score थ्रेशोल्ड से कम हो तो क्या कार्रवाई करें (DOCUMENT_AI_NAME_MISMATCH)।

उपलब्ध विकल्प:
DECLINE,
REVIEW,
NO_ACTION
document_ai_unsupported_file_action
enum<string>
डिफ़ॉल्ट:REVIEW

अपलोड के रिक्त होने या प्रोसेस करने योग्य फ़ाइल न होने (DOCUMENT_AI_UNSUPPORTED_FILE) पर क्या कार्रवाई की जाए।

उपलब्ध विकल्प:
DECLINE,
REVIEW,
NO_ACTION
save_api_request
boolean
डिफ़ॉल्ट:true

true (डिफ़ॉल्ट) होने पर, कॉल को API-प्रकार के सत्र के रूप में बनाए रखता है — Business Console में दृश्यमान, लौटाए गए request_id का उपयोग करके GET /v3/session/{sessionId}/decision/ के माध्यम से प्राप्त करने योग्य, जिसमें अपलोड किया गया दस्तावेज़, निकाले गए मान, फ़ील्ड परिभाषाएँ और नाम-मिलान स्नैपशॉट संग्रहीत होते हैं। false होने पर, कुछ भी संग्रहीत नहीं किया जाता है और request_id केवल रिस्पॉन्स सहसंबंध के लिए एक अस्थायी UUID होता है; कॉल के लिए बिलिंग अभी भी की जाती है।

उदाहरण:

true

vendor_data
string

वैकल्पिक अपारदर्शी स्ट्रिंग (आपकी आंतरिक उपयोगकर्ता ID, ईमेल, UUID…) जो स्थायी सत्र पर संग्रहीत होती है और रिस्पॉन्स में वापस भेजी जाती है। इसका उपयोग अपने स्वयं के रिकॉर्ड के साथ API कॉल को सहसंबंधित करने और बाद में सत्रों को फ़िल्टर करने के लिए करें।

उदाहरण:

"user-123"

metadata
object

सत्र के साथ संग्रहीत वैकल्पिक JSON ऑब्जेक्ट (जब save_api_request=true) और रिस्पॉन्स में वापस प्रतिध्वनित होता है। मल्टीपार्ट अनुरोधों में, इसे JSON-एन्कोडेड स्ट्रिंग फ़ील्ड (उदा. metadata={"flow":"onboarding"}) के रूप में भेजें — इसे एक ऑब्जेक्ट में पार्स किया जाता है।

उदाहरण:

प्रतिक्रिया

दस्तावेज़ संसाधित। document_ai.status Approved, Declined, या In Review है; हर संसूचित समस्या को document_ai.warnings में सूचीबद्ध किया गया है। समस्याग्रस्त दस्तावेज़ भी 200 लौटाता है — केवल HTTP कोड ही नहीं, बल्कि बॉडी का भी निरीक्षण करें। जब save_api_request=true हो, तो request_id स्थायी सत्र id होती है।

request_id
string<uuid>

save_api_request=true होने पर सहेजी गई सत्र ID (GET /v3/session/{sessionId}/decision/ के साथ उपयोग योग्य); अन्यथा एक क्षणिक सहसंबंध UUID।

document_ai
object
vendor_data
string | null

आपके द्वारा भेजे गए vendor_data का इको, या null।

metadata
object | null

आपके द्वारा भेजे गए metadata ऑब्जेक्ट का इको, या null।

created_at
string<date-time>

अनुरोध कब प्रोसेस किया गया था (UTC, ISO 8601)।

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