Passport OCR SDK

Supports All Passport Types
Ordinary, biometric, diplomatic, temporary, and more — consistent extraction across all formats.
Regulation-Ready
GDPR-compliant OCR SDK built to meet many other stringent data protection standards.
Supports ICAO/ISO-Compliant Passports
OCR SDK correctly scans passports compliant with both legacy and new-generation ICAO/ISO standards.
Passport Scanning in Real-World Conditions
Instant recognition robust to glares, blurs, low light, and challenging capture angles.
Extremely On-Premise
Server, desktop, mobile, or web — on-premise OCR SDK ensures strict data locality.
Passport Scanner API for KYC & Identity Verification
iDenfy uses of OCR Studio ID scanning technology
OCR Solutions partners with OCR Studio to provide USA IDs scanning
Minits integrates OCR scanning of national ID cards, passports, and driving licenses of the EU
Smaregi is equipped with OCR Studio technology for MRZ scanning on passports to streamline tax free procedures for foreign citizens in Japan
ZeusTech integrated MRZ scanning by OCR Studio into its hospitality applications
GKD Global partners with AI ID recognition systems developer OCR Studio for automatic documents clearing services

OCR Studio’s Passport OCR SDK is an advanced solution for automated passport scanning, data extraction, and identity verification. It captures and structures passport data using OCR and machine-readable zone recognition, supports documents from over 250 countries and territories, recognizes all passport types, including biometric and electronic formats. OCR SDK works across mobile, desktop, server, and web environments, enabling flexible integration. It recognizes visa stickers, performs document authentication through ID verification SDK, conducts face matching and NFC passport reading. OCR SDK’s wide document coverage allows you to build a reliable KYC for emerging markets.

OCR SDK for International Identity Verification

Cutting-Edge Passport Scanner
Supports IDs issued in 250+ countries and territories and handles ordinary, biometric, diplomatic, temporary, and other passports (MRP, MRTD, eMRTD) under various conditions.
Passport OCR SDK for Challenging Scanning Conditions
Recognizes passports with glares and blurs in low light and extreme capture angles.
Regulatory Compliant On-Premise OCR SDK
On-premise OCR SDK architecture enhances compliance with the most stringent data privacy standards.
Scans Passports Compliant with ICAO/ISO Standards
ID verification SDK supports any passports compliant with both legacy and new-generation ICAO/ISO standards.
Advanced ID Presence Checks
OCR SDK confirms that the passport is physically present — not a document shown from a phone screen or a photocopied ID.
Versatile Device Support
Enables automatic and autonomous passport scanning across smartphones, desktop computers, and servers.
Visa Sticker Recognition
Accurately scans and recognizes visa stickers in addition to main passport pages.
Enhanced Security
ID verification SDK detects digital image tampering, deepfakes, and morphed passport photos.
Cross-Verification through NFC, MRZ, and VIZ
Validates presented passports through NFC passport reading and machine-readable zone authentication using MRZ scanner SDK.

All Passports, Fully Covered

ID document scanning
Ordinary passports 
of all countries
ID document scanning
Diplomatic passports 
of all countries
ID document scanning
Service/official passports 
of all countries
ID document scanning
Public affairs passports 
of all countries
ID document scanning
Regional and subnational passports
ID document scanning
Emergency passports of all countries

Passport Scanning with Multi-Script OCR SDK

Passport Scanning with Multi-Script OCR SDK
There are 293 writing systems in the world, yet the Latin script dominates global OCR use cases as it is used by nearly 70% of the world’s population. Many OCR companies claim to support hundreds of languages — but almost all of them are Latin-based. As a result, businesses are missing out on millions of customers with passports written in non-Latin scripts.
OCR Studio’s multi-script OCR SDK instantly extracts data from passports written in Arabic, Cyrillic, CJK, Southeast Asian, and many other complex scripts with a large number of character classes and unusual letter connections. This makes it possible to build a global KYC platform for emerging markets and significantly expand the customer base.

RFID/NFC Passport Reader SDK

Securely extracts information from any NFC chip compliant with ICAO/ISO standards, including the holder’s personal data and digital photographs.

NFC ePassport Reading

OCR SDK gives the ability to create an NFC access key using the document’s machine-readable zone and extract data from the RFID chip.

Multimodal Document Verification

ID verification SDK authenticates documents using advanced image analysis, visible document features analysis, cross-checking of personal data, and validation of both textual and graphical RFID chip data.

  • Full ePassport NFC reading (.COM, .SOD, .DG1, .DG2) with passive authentication
  • Document integrity checks across MRZ ↔ Chip ↔ VIZ
  • Confirms adherence to ISO/ICAO standard (ISO/IEC 7501-1 / ICAO Document 9303)
NFC/RFID Chip Reader

On-premise Integration Capabilities

Comprehensive Data Extraction

ID scanner provides data fields recognition confidence scores, coordinates of separate objects, and extracts images of individual data fields.

WebAssembly SDK

Web-based integration for ID document scanner supports all modern browsers, including Chrome, Firefox, Safari, and Edge.

Versatile API Options

Our ID scanning SDK includes both REST API for low-code integration, and native APIs for C++, C#, Java, and Python to maximize efficiency.

Seamless Mobile Integration

Mobile integration is supported both natively and through popular frameworks.

Extensive Usage Examples

ID reader SDK includes usage examples for C++, C#, Java, and Python APIs.

Cross-Platform Support

Native support for Android, iOS, Windows, and Linux operating systems.

Wide CPU Architectures Support

Supports CPU architectures including x86, x86_64, ARMv7, ARMv8, and ARMv9 (AArch32 and AArch64).

Here’s how to scan passport using our SDK

# Python
engine_instance = ocrstudiosdk.OCRStudioSDKInstance.CreateFromPath(<PATH_TO_CONFIGURATION_FILE>)
session = engine_instance.CreateSession(<SIGNATURE>,
  "{\"session_type\": \"document_recognition\", \"target_group_type\": \"default\", \"target_masks\": \"chn.passport.*\"}")
image = ocrstudiosdk.OCRStudioSDKImage.CreateFromFile(<PATH_TO_IMAGE>)
session.ProcessImage(image)

result = session.CurrentResult()
target = result.TargetByIndex(0)
item_it = target.ItemsBegin('string')
while not item_it.IsEqualTo(target.ItemsEnd('string')):
  name = item_it.Item().Name()
  value = it.Item().Value()
  item_it.Step()
// Java
OCRStudioSDKInstance engine_instance = OCRStudioSDKInstance.CreateFromPath(<PATH_TO_CONFIGURATION_FILE>);
OCRStudioSDKSession session = engine_instance.CreateSession(<SIGNATURE>,
  "{\"session_type\": \"document_recognition\", \"target_group_type\": \"default\", \"target_masks\": \"chn.passport.*\"}");
OCRStudioSDKImage image = OCRStudioSDKImage.CreateFromFile(<PATH_TO_IMAGE>);
session.ProcessImage(image);
OCRStudioSDKResult result = session.CurrentResult();
OCRStudioSDKTarget target = result.TargetByIndex(0);
for (OCRStudioSDKItemIterator item_it = target.ItemsBegin("string"); !item_it.IsEqualTo(target.ItemsEnd("string")); item_it.Step()) {
  String name = item_it.Item().Name()
  String value = item_it.Item().Value()
  }
// C#
ocrstudio.OCRStudioSDKInstance engine_instance = ocrstudio.OCRStudioSDKInstance.CreateFromPath(<PATH_TO_CONFIGURATION_FILE>);
ocrstudio.OCRStudioSDKSession session = engine_instance.CreateSession(<SIGNATURE>,
  "{\"session_type\": \"document_recognition\", \"target_group_type\": \"default\", \"target_masks\": \"chn.passport.*\"}");
ocrstudio.OCRStudioSDKImage image = ocrstudio.OCRStudioSDKImage.CreateFromFile(<PATH_TO_IMAGE>);
session.ProcessImage(image);

ocrstudio.OCRStudioSDKResult result = session.CurrentResult();
ocrstudio.OCRStudioSDKTarget target = result.TargetByIndex(0);
for (OCRStudioSDKItemIterator item_it = target.ItemsBegin("string"); !item_it.IsEqualTo(target.ItemsEnd("string")); item_it.Step()) {
  String name = item_it.Item().Name();
  String value = item_it.Item().Value();
  }
// C++
std::unique_ptr<ocrstudio::OCRStudioSDKInstance> engine_instance(ocrstudio::OCRStudioSDKInstance::CreateFromPath(<PATH_TO_CONFIGURATION_FILE>));
std::unique_ptr<ocrstudio::OCRStudioSDKSession> session(engine_instance->CreateSession(<SIGNATURE>,
  "{\"session_type\": \"document_recognition\", \"target_group_type\": \"default\", \"target_masks\": \"chn.passport.*\"}"));
std::unique_ptr<ocrstudio::OCRStudioSDKImage> image(ocrstudio::OCRStudioSDKImage::CreateFromFile(<PATH_TO_IMAGE>));
session->ProcessImage(*image);
const ocrstudio::OCRStudioSDKResult& result = session->CurrentResult();
const ocrstudio::OCRStudioSDKTarget& target = result.TargetByIndex(0);
for (auto item_it = target.ItemsBegin("string"); item_it != target.ItemsEnd("string"); item_it.Step()) {
  string name = item_it.Item().Name();
  string value = item_it.Item().Value();
  }

Example output

authority: 公安部出入境管理局
authority_eng: MPS EXIT & ENTRY ADMINISTRATION
birth_date: 21.05.1986
birth_place: 北京
birth_place_eng: BEIJING
book_number: 2000789730
expiry_date: 14.02.2031
full_mrz: POCHNLIU<<XIAOHUA<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<EF10228097CHN8605216F3102145<<<<<<<<<<<<<<04
gender: F
issue_date: 15.02.2021
issue_place: 北京
issue_place_eng: BEIJING
last_name: 
last_name_eng: LIU
mrz_birth_date: 21.05.1986
mrz_cd_birth_date: 6
mrz_cd_composite: 4
mrz_cd_expiry_date: 5
mrz_cd_number: 7
mrz_cd_opt_data_2: 0
mrz_doc_type_code: PO
mrz_expiry_date: 14.02.2031
mrz_gender: F
mrz_issuer: CHN
mrz_last_name: LIU
mrz_line1: POCHNLIU<<XIAOHUA<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
mrz_line2: EF10228097CHN8605216F3102145<<<<<<<<<<<<<<04
mrz_name: XIAOHUA
mrz_nationality: CHN
mrz_number: EF1022809
mrz_opt_data_2: 
mrz_status: success
name: 小华
name_eng: XIAOHUA
nationality: 中国
nationality_eng: CHINESE
number: EF1022809
type: P

For more information, please visit Developer section

OCR Studio Demo Application

Try our free demo app, which showcases all our technologies

apple store link google play link web app demo link
Demo apps privacy policy
OCR Studio Demo App

Frequently Asked Questions

What is Passport OCR SDK? arrow icon

Passport OCR SDK is an advanced solution for automated passport scanning and authentication. It captures and structures passport data using OCR and machine-readable zone recognition, supports NFC passport reading, and enables fast integration into mobile, desktop, server, and web environments.

Which passport types does OCR SDK support? arrow icon

OCR SDK supports passports issued in 250+ countries and territories, allowing to create a global KYC platform for international identity verification. The solution scans ordinary, biometric, electronic, diplomatic, temporary, and other passport types, including MRP, MRTD, and eMRTD formats. OCR SDK correctly recognizes passports compliant with both legacy and new-generation ICAO/ISO standards.

How does OCR SDK enhance regulatory compliance? arrow icon

Passport OCR SDK enhances regulatory compliance through on-premise / on-device data processing. Passport images and extracted personal data can be processed directly on the user’s device or within the company’s secure infrastructure, helping businesses meet GDPR, CCPA, and local data privacy standards, which is relevant for building KYC for emerging markets.

Are passport images sent to external servers? arrow icon

No. On-premise OCR SDK does not require passport images to be sent to external servers, clouds, or crowdsourcing platforms for processing. The system runs directly on mobile devices, desktops, or company’s servers, ensuring full data locality and reducing privacy and security risks.

How does OCR SDK detect forged passports? arrow icon

ID verification SDK detects forged passports using advanced document forensics technologies. The system spots digital image tampering, deepfakes, morphed passport photos, photocopied IDs, screen recapture attempts, and other signs of manipulation. Passport OCR SDK also validates document authenticity through machine-readable zone verification, NFC passport reading, and cross-checking of passport data.

Why is passport data cross-validation essential? arrow icon

Passport data cross-validation helps confirm that all document zones contain consistent information. OCR SDK compares data from the visual inspection zone, machine-readable zone, and RFID/NFC chip to detect mismatches that may indicate document manipulation.

Does OCR SDK handle poor-quality images? arrow icon

Yes. Passport OCR SDK is designed for real-world scanning conditions and can recognize passports with glares and blurs under low light and challenging capture angles. The system also performs preliminary image quality analysis during document capture to maintain high recognition accuracy and a low false acceptance rate.

Which platforms support Passport OCR SDK? arrow icon

Passport OCR SDK runs on Android, iOS, Windows, Linux, and in web browsers through the WebAssembly technology. The solution enables precise document processing across all platforms. Developers can integrate it using C++, C#, Java, Python.

Get in Touch With Us Today!

For comprehensive details about our complete
range of solutions and services.

Or contact our sales team:

sales@ocrstudio.ai

    * Required information
    By clicking the “Send request” button, you consent to data processing