डेटा एक्सट्रैक्शन
एक OCR ID स्कैनिंग API जो टेक्स्ट का एक ब्लॉक नहीं, बल्कि संरचित फ़ील्ड लौटाती है।
ShieldID सरकारी फ़ोटो ID को संरचित, फ़ील्ड-दर-फ़ील्ड डेटा में बदलता है: नाम, जन्म तिथि, दस्तावेज़ नंबर, समाप्ति तिथि, पता और बहुत कुछ, हर एक अपने स्रोत और अपने निर्णय के साथ। एक ही सेशन में दस्तावेज़ डेटा एक्सट्रैक्शन API और दस्तावेज़ वेरिफ़िकेशन API।
क्या वापस आता है
संरचित फ़ील्ड, जहाँ दस्तावेज़ में वास्तव में मौजूद हों।
हर दस्तावेज़ में हर फ़ील्ड नहीं होता। ShieldID वही लौटाता है जो दस्तावेज़ में है, और जो नहीं है उसे चिह्नित करता है।
- पूरा नाम
- जैसा छपा है, और जैसा बारकोड या MRZ में एन्कोड है, जहाँ दस्तावेज़ में वह मौजूद हो।
- जन्म तिथि
- छपे हुए हिस्से से पढ़ा गया और बारकोड तथा MRZ के विरुद्ध क्रॉस-चेक किया गया।
- दस्तावेज़ नंबर
- लाइसेंस नंबर या पासपोर्ट नंबर, जहाँ जारीकर्ता का फ़ॉर्मेट अनुमति देता है वहाँ आंतरिक संगति के लिए जाँचा गया।
- समाप्ति तिथि
- छपे हुए हिस्से और बारकोड या MRZ से पढ़ा गया।
- पता
- छपे हुए हिस्से और, जहाँ मौजूद हो, बारकोड से पढ़ा गया; अलग से अपलोड किए गए पते के दस्तावेज़ से तुलना की जा सकती है।
- लिंग
- वहाँ से पढ़ा गया जहाँ दस्तावेज़ उसे छापता या एन्कोड करता है।
- जारी करने वाला क्षेत्राधिकार
- बारकोड जारीकर्ता कोड से पहचाना जाता है, जहाँ दस्तावेज़ में कोई मान्यता-प्राप्त कोड हो, जैसा उपलब्ध हो।
तीन स्रोत, एक तुलना
बारकोड, MRZ और छपा हुआ अगला भाग, सोच-समझकर पढ़े गए, संयोग से मिलाए नहीं गए।
हर फ़ील्ड को उसके स्रोत के साथ जोड़ा जाता है। जब दो स्रोत आपस में मेल नहीं खाते, तो परिणाम पर उसका फ़्लैग लगता है, दोनों संख्याओं का औसत नहीं निकाला जाता।
PDF417 बारकोड
उत्तरी अमेरिकी ड्राइविंग लाइसेंस या ID कार्ड के पिछले हिस्से को संरचित AAMVA फ़ील्ड में डिकोड किया जाता है। जब किसी दस्तावेज़ पर बारकोड हो, तो उसके फ़ील्ड को सामने की छपी जानकारी पर प्राथमिकता मिलती है।
पासपोर्ट MRZ
मशीन-पठनीय ज़ोन को खोजा जाता है, पढ़ा जाता है, और ज़ोन में निहित ICAO चेक-डिजिट सूत्रों के विरुद्ध सत्यापित किया जाता है। एक न्यूनतम वैधता स्कोर, जिसकी जाँच उसी स्कोर से की जाती है, तय करता है कि MRZ से पढ़े गए किसी फ़ील्ड पर भरोसा किया जाए या नहीं — जो ज़ोन अपना ही चेकसम पास नहीं कर पाता, वह किसी अधिक साफ़ स्रोत को ओवरराइड नहीं कर सकता।
अगले भाग की संरचित और पूरे पृष्ठ की OCR
छपे हुए हिस्से को, जहाँ दस्तावेज़ का अपना लेआउट पहचाना जाता है वहाँ उसी के आधार पर पढ़ा जाता है, और अन्यथा पूरे पृष्ठ के OCR का सहारा लिया जाता है, ताकि अपरिचित दस्तावेज़ से भी पढ़ने योग्य फ़ील्ड मिल सकें।
टकराव को फ़्लैग किया जाता है, औसत नहीं निकाला जाता
यदि कोई नाम या जन्मतिथि अगले भाग, बारकोड और MRZ के बीच अलग-अलग निकलती है, तो परिणाम पर उसे बेमेल के रूप में दर्ज किया जाता है। पाइपलाइन में कुछ भी चुपचाप किसी एक को विजेता चुनकर असहमति को छिपाता नहीं है।
MRZ चेकसम सत्यापन
मशीन-पठनीय ज़ोन पर भरोसा करने से पहले उसे अपना गणित खुद जाँचना होता है।
पासपोर्ट पर ICAO मशीन-पठनीय ज़ोन में डिज़ाइन के अनुसार चेक डिजिट होते हैं। MRZ से पढ़े गए किसी फ़ील्ड को भरोसेमंद मानने से पहले ShieldID उन्हें सत्यापित करता है।
एक समर्पित डिटेक्टर MRZ को खोजता है, एक रीडर अक्षर निकालता है, और ज़ोन के अपने चेकसम सूत्रों के आधार पर परिणाम का वैधता स्कोर निकाला जाता है। केवल वही फ़ील्ड पूर्ण प्राथमिकता पर भरोसेमंद माना जाता है जो न्यूनतम वैधता स्कोर पार करे; जो ज़ोन खराब पढ़ा जाता है, उसे उसी के अनुसार माना जाता है, उसे साफ़ मानकर आगे नहीं बढ़ा दिया जाता।
बारकोड-प्रथम प्राथमिकता
जब स्रोत एक-दूसरे से मेल खाते हैं, तो सबसे भरोसेमंद स्रोत को चुना जाता है।
एक ही फ़ील्ड बारकोड, MRZ और छपे हुए अगले भाग, तीनों पर दिख सकता है। ShieldID हर बार एक ही क्रम से इसका समाधान करता है।
- PDF417 बारकोड
- पासपोर्ट MRZ, चेकसम पास करने के बाद
- छपे हुए अगले भाग की संरचित रीडिंग
- पूरे पृष्ठ की OCR का फ़ॉलबैक
पते के दस्तावेज़
दूसरा दस्तावेज़ अपलोड करें, पते की सीधी तुलना पाएँ।
जब किसी सत्यापन के लिए पते का प्रमाण ज़रूरी होता है, तो आवेदक एक अलग दस्तावेज़ अपलोड करता है और ShieldID उसे उसी तरह पढ़ता है जैसे ID को।
पते के दस्तावेज़ पर OCR चलाई जाती है, और उसके पते की तुलना ID दस्तावेज़ से पढ़े गए पते से की जाती है। यह सादा टेक्स्ट और टोकन की तुलना है, कोई अलग दस्तावेज़ क्लासिफ़ायर नहीं, और यह तभी चलती है जब सेशन को इसकी ज़रूरत हो और कोई दस्तावेज़ वास्तव में दिया गया हो।
रिडैक्शन और PII का प्रबंधन
निकाले गए डेटा को उसी तरह सुरक्षित रखा जाता है जैसे इमेज को।
संरचित फ़ील्ड पर वही गोपनीयता नियंत्रण लागू होते हैं जो ID की तस्वीरों पर लागू होते हैं।
जन्मतिथि स्टोरेज में एन्क्रिप्टेड
जन्मतिथि स्टोरेज में एन्क्रिप्टेड रूप में रखी जाती है; एन्क्रिप्शन कुंजी मौजूद न होने पर सेवा चलेगी ही नहीं।
टाइमर पर इमेज हटाना
खींचे गए दस्तावेज़ और सेल्फ़ी की इमेज एक छोटे टाइमर पर अपने-आप हटा दी जाती हैं, डिफ़ॉल्ट रूप से सात दिन में। एक स्वीप तय अंतराल पर और हर रीस्टार्ट के कुछ ही देर बाद फिर चलता है, ताकि शांत अवधि में भी कोई इमेज अपने हटने के दिन से आगे न टिकी रहे।
डिवाइस पर स्कोर रिडैक्शन
जहाँ किसी मैच या कॉन्फ़िडेंस आँकड़े को आवेदक के अपने फ़ोन पर दिखाया जाना होता, वहाँ ShieldID संदेश दिखाए जाने से पहले उसमें से मूल प्रतिशत हटा देता है, ताकि कच्चा स्कोर आपके खाते के बाहर कभी सामने न आए।
रिकॉर्ड इमेज से ज़्यादा समय तक रहता है
इमेज एक तय समय-सारणी पर हटती हैं। सत्यापन हुआ, और उसमें क्या मिला, यह आपके खाते में बना रहता है — और Trust Ledger इंटीग्रेशन के लिए, Activity Ledger में verified/failed प्रविष्टि के रूप में भी (ShieldID API खातों के लिए लेजर प्रविष्टियाँ: जल्द आ रही हैं)।
नमूना परिणाम
प्रत्येक फ़ील्ड का निर्णय, उसी रूप में जिसमें API लौटाता है।
नीचे दिए गए नाम, नंबर और पते इस उदाहरण के लिए गढ़े गए हैं। फ़ील्ड का समूह, स्रोत और निर्णय किसी वास्तविक परिणाम के असली रूप में हैं।
| फ़ील्ड | मान | स्रोत | निर्णय |
|---|---|---|---|
| person.name | "Maria Gonzalez" | barcode | match |
| person.dob | "1991-07-22" | barcode | match |
| person.document_number | "D1234567" | barcode | match |
| person.document_country | "US" | barcode issuer code | match |
| person.address | "1428 Elm St, Sacramento, CA" | barcode | match |
| identity.name_match | PASS | front vs barcode vs requester | PASS |
| checks.document_tamper | "no_indication" | advisory model | advisory, not gating |
// Sample result. Names, numbers and addresses are fictional.
{
"session_id": "ses_9f2c...sample",
"status": "VERIFIED",
"environment": "sandbox",
"person": {
"name": "Maria Gonzalez",
"dob": "1991-07-22",
"document_type": "DRIVERS_LICENCE",
"document_country": "US",
"document_jurisdiction": "CA",
"address": "1428 Elm St, Sacramento, CA"
},
"identity": {
"checks": ["name_match"],
"warnings": [],
"sources": {
"name": "barcode",
"dob": "barcode",
"address": "barcode"
}
},
"checks": {
"document": "PASS",
"identity": "PASS",
"document_tamper": "no_indication"
},
"completed_at": "2026-09-17T14:02:11Z"
}इंटीग्रेशन नोट्स
वही फ़ील्ड, आप नतीजा कहीं भी पढ़ें।
संरचित फ़ील्ड वेरिफ़िकेशन सेशन से अलग कोई उत्पाद नहीं हैं। वे उसी नतीजे के हिस्से के रूप में आते हैं।
- वेरिफ़िकेशन पूरा होने पर फ़ील्ड उस सेशन नतीजे में मिलते हैं जिसे आप API के ज़रिए प्राप्त करते हैं।
- वेरिफ़िकेशन समाप्त होने पर वही नतीजा एक हस्ताक्षरित वेबहुक द्वारा आपके एंडपॉइंट पर भेजा जाता है, इसलिए आपको उसके लिए बार-बार पोल नहीं करना पड़ता।
- हर फ़ील्ड अपने स्रोत से जुड़ा होता है और अपना निर्णय साथ रखता है, API नतीजे में भी और वेबहुक पेलोड में भी।
- Sandbox सेशन प्रोडक्शन जैसा ही फ़ील्ड स्वरूप लौटाते हैं, इसलिए आप एक भी असली दस्तावेज़ पढ़े जाने से पहले अपना इंटीग्रेशन बना सकते हैं।
प्रश्न
डेटा एक्सट्रैक्शन पर सीधे जवाब।
फ़ील्ड खुद देखें
एक sandbox वेरिफ़िकेशन चलाएँ और संरचित नतीजा पढ़ें।
एक sandbox सेशन बनाएँ, अपने फ़ोन पर कोई दस्तावेज़ स्कैन करें, और रिस्पॉन्स में हर फ़ील्ड, उसका स्रोत और उसका निर्णय देखें। Sandbox सेशन का कभी बिल नहीं बनता।