Instant, Accurate Passport Verification
Read the MRZ, printed fields and face photo from ICAO 9303 passports in a single API call. MRZ check digits are validated, so a misread gets flagged instead of passing silently.

Comprehensive Field Extraction
How Accurate Is It?
We have not published a benchmark for passports yet, so we will not put a made-up number here. This is what we have measured, and how errors get caught.
97-99%
Clean Typed Text
Character accuracy on clean typed text in our 2026 OCR benchmark. Printed ID fields are typed text, but glare, wear and angled photos pull it down.
ICAO 9303
MRZ Check Digits
The machine-readable zone carries check digits for the passport number, birth date and expiry date. A misread usually fails the checksum, so it gets flagged instead of passing silently.
Fields the engine is unsure about are flagged for a reviewer instead of guessed. The best test is your own sample, so bring a few real passports captures to the demo.
Passport Extraction Workflow
Camera or Scan Upload
Users can capture passport via mobile camera or upload a scan through your app or web interface.
Auto-detect & MRZ Parse
AI detects the passport type and orientation, then reads the MRZ and validates its check digits.
Check Digits Validation
System validates MRZ check digits to ensure document authenticity and data integrity.
Optional Face ≈ Selfie Match
Compare extracted passport photo with live selfie for additional identity verification.
Time and Checks
What changes when passports are read by DocsAPI instead of typed in by hand
Time
Speed from our 2026 OCR benchmark, including the network round-trip. Capture quality matters more than processing time: a blurry photo costs the user a retake, so guide them to a clean, flat, well-lit shot.
Checks Before the Data Moves On
- MRZ check digits validated against ICAO 9303
- Field formats checked before the data moves on
- Low-confidence fields flagged for a reviewer instead of guessed
Fraud catch rates depend on your applicant mix and capture flow, so we would rather test on your samples than quote a number.
Developer Output Example
{
"request_id": "pass_req_8f7d9c2e",
"status": "success",
"processing_time_ms": 842,
"document": {
"type": "passport",
"issuing_country": "GBR",
"document_number": "123456789",
"surname": "SMITH",
"given_names": "JOHN JAMES",
"nationality": "GBR",
"dob": "1990-01-15",
"expiry_date": "2030-01-14",
"sex": "M",
"mrz_raw": "P<GBRSMITH<<JOHN<JAMES<<<<<<<<<<<<<<<<<<<<<<<\n1234567897GBR9001154M3001141<<<<<<<<<<<<<<00",
"mrz_validity": true,
"face_crop_base64": "[base64_encoded_image_data]",
"confidence": {
"document_number": 0.99,
"surname": 0.98,
"given_names": 0.97,
"dob": 0.99,
"expiry_date": 0.99
},
"face_match_score": 0.92
}
}Key Response Elements
document_number and expiry_date for identity verification
mrz_validity boolean flag for document authenticity check
confidence scores for each extracted field
face_match_score for biometric verification
Compliance & Security
ICAO 9303 Compliant
Fully compliant with International Civil Aviation Organization standards for travel document processing.
End-to-End Encryption
All passport data is encrypted in transit and at rest using AES-256 encryption standards.
Auto-Redaction
Configurable data retention policies with automatic redaction when retention period expires.
Frequently Asked Questions
Deploy passport OCR in your app.
Start verifying passports with MRZ check digits validated on every read. Book a demo and bring a few real passport images.
