UK पासपोर्ट उन दस्तावेज़ों में से है जो किसी ब्रिटिश ऑनबोर्डिंग फ़्लो में सबसे ज़्यादा दिखते हैं। HM Passport Office, जो ख़ुद को "UK पासपोर्ट का एकमात्र जारीकर्ता" बताता है, अपने ही शब्दों में "ब्रिटिश नागरिकों और अन्य ब्रिटिश नेशनल्स को हर साल 60 लाख से ज़्यादा पासपोर्ट जारी करने" के लिए ज़िम्मेदार है। अगर आपका प्रोडक्ट UK में ग्राहकों की जाँच करता है, तो आप इनमें से बहुत-से पढ़ेंगे।

यह पोस्ट उन डेवलपर्स के लिए है जिन्हें UK पासपोर्ट से डेटा निकालकर अपने सिस्टम में डालना है। इसमें बताया गया है कि डेटा पेज पर क्या है, मशीन-रीडेबल ज़ोन (MRZ) कैसे व्यवस्थित है, 2026 में आपको कौन-से डिज़ाइन मिलेंगे, और एक API कॉल क्या लौटाती है। पासपोर्ट के बारे में हर बात GOV.UK या ICAO से उद्धृत है और जहाँ आती है वहीं उसका लिंक दिया गया है; उद्धरणों का मूल पाठ अंग्रेज़ी में है और अनुवाद हमारे अपने हैं।

यह doc.cheap का ब्लॉग है, जो एक पासपोर्ट और ID OCR API है। प्रोडक्ट वाला हिस्सा यह ध्यान में रखकर पढ़ें।

एक तस्वीर में डेटा पेज

HM Passport Office की अपनी ऐतिहासिक पासपोर्ट जानकारी से जुड़ी गाइडेंस मौजूदा पासपोर्ट बुक का वर्णन करती है: "1 मार्च 2020 को UK सीरीज़ C ई-पासपोर्ट (नीला ई-पासपोर्ट) चरणबद्ध तरीक़े से उत्पादन में लाया गया।" उसी पेज के अनुसार यह पासपोर्ट:

  • "बुक के आगे टिकाऊ पॉलीकार्बोनेट का व्यक्तिगत विवरण पेज रखता है"
  • "पेज 3 पर टिप्पणियाँ छपी होती हैं"
  • "बुक के भीतर ग्राहक की पासपोर्ट फ़ोटो 3 बार दिखाता है"
  • "व्यक्तिगत विवरण पेज में लगी इलेक्ट्रॉनिक चिप रखता है"

OCR के लिए इसका एक ही मतलब है: आपको जो कुछ चाहिए, वह आगे के एक ही पेज पर है। उस पेज की समतल और पूरी फ़ोटो लें, और छपे हुए फ़ील्ड, पोर्ट्रेट और मशीन-रीडेबल ज़ोन एक ही इमेज में मिल जाते हैं। चिप उसी पेज के अंदर है, लेकिन फ़ोटो चिप को नहीं पढ़ सकती; इमेज से आपको छपा हुआ पेज ही मिलता है।

मशीन-रीडेबल ज़ोन

MRZ डेटा पेज के निचले हिस्से में बड़े अक्षरों, अंकों और < फ़िलर का ब्लॉक है। वही गाइडेंस बताती है कि यह कहाँ से आया: "ग्राहक के व्यक्तिगत विवरण ऐसे अक्षरों में बदले जाते हैं जिन्हें पासपोर्ट स्कैनर पढ़ सकते हैं। ये अक्षर पासपोर्ट में 44-44 अक्षरों की 2 पंक्तियों में जोड़े जाते हैं। इस जानकारी को मशीन-रीडेबल ज़ोन कहा जाता है।"

44 अक्षरों की दो पंक्तियाँ ICAO Doc 9303 का पासपोर्ट फ़ॉर्मैट है। Doc 9303 का ICAO पेज इसके भाग 4 का नाम "मशीन रीडेबल पासपोर्ट (MRPs) और TD3 आकार के अन्य MRTDs के लिए विनिर्देश" बताता है, इसीलिए पासपोर्ट लेआउट को TD3 कहा जाता है। भाग 5 और 6 छोटे TD1 और TD2 आकारों को कवर करते हैं, जिनका इस्तेमाल ID कार्ड करते हैं।

पहली मशीन-रीडेबल ब्रिटिश बुक्स का वर्णन करते हुए गाइडेंस बताती है कि ज़ोन में क्या होता है: ग्राहक का नाम, पासपोर्ट नंबर, चेक डिजिट, राष्ट्रीयता, जन्मतिथि, लिंग, पासपोर्ट की समाप्ति तिथि और एक व्यक्तिगत पहचान संख्या। चेक डिजिट इन्हीं फ़ील्ड पर गिने जाते हैं, इसलिए ग़लत पढ़ा गया अक्षर आमतौर पर ऐसे अंक के रूप में सामने आता है जिसका हिसाब नहीं मिलता। इसी वजह से MRZ पेज का वह इकलौता हिस्सा है जिसे आप ख़ुद दोबारा जाँच सकते हैं, पढ़ने वाले पर भरोसा किए बिना।

पार्सर के लिए दो व्यावहारिक बातें:

  • जारी करने की तारीख़ नहीं होती। ज़ोन में यह नहीं होती। अगर आपको चाहिए, तो इसे छपे हुए पेज से लेना होगा।
  • राष्ट्रीयता हमेशा GBR नहीं होती। ज़ोन के देश कोड ISO नहीं, बल्कि ICAO Doc 9303 का पालन करते हैं, और ब्रिटिश राष्ट्रीयता की श्रेणियों के अपने कोड हैं। doc.cheap का रिस्पॉन्स रेफ़रेंस GBR के अलावा पाँच कोड गिनाता है – GBD, GBN, GBO, GBP और GBS – इसलिए जो पार्सर सिर्फ़ GBR स्वीकार करता है, वह कुछ ब्रिटिश पासपोर्ट ठुकरा देगा।

आपको कौन-से डिज़ाइन मिलेंगे

एक ही समय में UK पासपोर्ट के एक से ज़्यादा डिज़ाइन मान्य हैं, इसलिए ऐसी जाँच न बनाएँ जो सिर्फ़ एक रूप की उम्मीद करे।

  • 2020 की नीली बुक। ऊपर बताया गया सीरीज़ C ई-पासपोर्ट।
  • दिसंबर 2025 से नया डिज़ाइन। GOV.UK ने घोषणा की कि "महामहिम किंग चार्ल्स III के कोट ऑफ़ आर्म्स वाले पहले ब्रिटिश पासपोर्ट दिसंबर से एक नए रूप वाले डिज़ाइन के हिस्से के रूप में जारी किए जाएँगे", और इसे "2020 के बाद का पहला पूरी तरह नया डिज़ाइन" कहा।
  • पुरानी बुक्स जो अब भी वैध हैं। वही घोषणा कहती है: "क्वीन एलिज़ाबेथ II के कोट ऑफ़ आर्म्स के साथ जारी किए गए पासपोर्ट अपनी समाप्ति तिथि तक वैध रहते हैं।"

वैधता में भी एक फंदा है। अक्टूबर 2018 से पहले, नवीनीकरण पुरानी बुक का बचा हुआ समय आगे ले जा सकता था: गाइडेंस एक वयस्क का उदाहरण देती है जिसने 7 महीने बचे रहते नवीनीकरण कराया और उसे "10 साल और 7 महीने के लिए वैध" पासपोर्ट मिला। अक्टूबर 2018 से नवीनीकरण पर मिलती है "इससे ज़्यादा नहीं: 10 साल की वैधता (वयस्कों के लिए), 5 साल की वैधता (बच्चों के लिए)"। इसलिए समाप्ति तिथि दस्तावेज़ से पढ़ें; उसे जारी करने की तारीख़ से न गिनें।

एक API कॉल से पासपोर्ट पढ़ना

doc.cheap पासपोर्ट को एक इमेज से पढ़ता है: एक POST /v1/scans, जिसमें फ़ोटो base64 में एन्कोड होकर JSON बॉडी में जाती है। सार्वजनिक सैंडबॉक्स की sk_sandbox_public बिना अकाउंट के काम करती है। इसके साथ एक नमूना (specimen) इमेज इस्तेमाल करें, असली पासपोर्ट कभी नहीं, क्योंकि सार्वजनिक की से किए गए स्कैन एक साल तक रखे जाते हैं।

curl -X POST https://api.doc.cheap/v1/scans \
  -H "Authorization: Bearer sk_sandbox_public" \
  -H "Content-Type: application/json" \
  -d "{\"image\": \"$(base64 < document.jpg | tr -d '\n')\",
       \"options\": {\"expect_country\": \"GBR\", \"return_portrait\": false}}"

जब आपको जारीकर्ता पहले से पता हो, तो expect_country उसे संकेत के रूप में भेजता है, और return_portrait: false धारक का चेहरा रिस्पॉन्स से बाहर रखता है। UK पासपोर्ट के लिए जवाब के ज़रूरी हिस्से कुछ ऐसे दिखते हैं, काल्पनिक मानों के साथ:

{
  "document": {
    "kind": "passport",
    "issuing_state": "GBR",
    "issuing_state_detail": { "code": "GBR", "alpha3": "GBR", "alpha2": "GB", "category": "iso" },
    "number": "000000000",
    "issue_date": "2025-12-01",
    "expiry_date": "2035-12-01",
    "is_expired": false
  },
  "holder": {
    "surname": "SPECIMEN",
    "given_names": "ANGELA ZOE",
    "birth_date": "1990-01-01",
    "nationality": "GBR"
  },
  "mrz": { "status": "passed", "reason": null },
  "authenticity": { "overall": "not_checked", "checks": [] }
}

इसमें से क्या पढ़ें:

  • mrz.status का मान passed, failed या absent होता है। passed का मतलब है कि हर चेक डिजिट सही निकला और ज़ोन में कुछ भी छपे हुए पेज से टकराता नहीं। failed होने पर mrz.reason फ़ील्ड का नाम बताता है, ताकि आप जान सकें कि नई फ़ोटो माँगनी है या नहीं। अगर आप अंक ख़ुद दोबारा गिनना चाहें, तो mrz.text पूरे ज़ोन को एक स्ट्रिंग के रूप में देता है; MRZ जाँच गाइड इसे क़दम-दर-क़दम समझाती है।
  • document.issue_date छपे हुए पेज से आता है, क्योंकि ज़ोन में यह नहीं होता।
  • holder.nationality_detail GBD और बाक़ी ब्रिटिश कोड जैसे लिखे हैं वैसे ही रखता है, category को british_nationality और alpha3 को GBR पर सेट करके, ताकि आप श्रेणी खोए बिना देश के आधार पर काम कर सकें।

UK पासपोर्ट OCR पेज पर यही तथ्य एक जगह हैं, GOV.UK और ICAO के लिंक के साथ।

OCR आपको क्या नहीं बताता

पासपोर्ट पढ़ना और उसका सत्यापन करना अलग-अलग काम हैं। doc.cheap वही पढ़ता है जो छपा है, और MRZ को ख़ुद से और विज़ुअल ज़ोन से मिलाकर जाँचता है। यह जाँच नहीं करता कि दस्तावेज़ असली है या नहीं: सिर्फ़ पहचान (recognition-only) वाले परिदृश्य में authenticity.overall का मान not_checked होता है, और यह चिप नहीं पढ़ता। अगर आपके फ़्लो को चेहरे का मिलान, लाइवनेस जाँच या प्रामाणिकता जाँच चाहिए, तो वे अलग क़दम हैं जिनके लिए अलग टूल बने हैं।

आज़माकर देखें

सार्वजनिक सैंडबॉक्स की के लिए अकाउंट की ज़रूरत नहीं है। रजिस्टर करने पर आपको अपनी की पर हर महीने 100 मुफ़्त रिकग्निशन मिलते हैं, जो पूरा फ़्लो बनाने और परखने के लिए काफ़ी है। अगर आप प्रोवाइडर चुन रहे हैं, तो पासपोर्ट OCR API तुलना प्रकाशित क़ीमतों को साथ-साथ रखती है, और ब्रिटिश दस्तावेज़ों के लिए शुरुआत की जगह UK पासपोर्ट OCR पेज है।

आपसे एक सवाल: UK पासपोर्ट के किस हिस्से ने आपके पार्सर को सबसे ज़्यादा परेशान किया – राष्ट्रीयता कोड, पुराने वैधता नियम या कुछ और? नीचे कमेंट में बताएँ।