Passport OCR for Neo-Banks: 24-Hour Data Retention
Speed up digital account opening with a passport OCR API that keeps documents only as long as needed: images are deleted within 24 hours, and StructOCR holds SOC 2 Type II.
200 free credits = 100 Passport scans, no credit card. Then from $5 for 500 credits, pay as you go. See pricing

Why Retention Matters for Neo-Bank KYC
For neo-banks and challenger banks scaling globally, fast onboarding is a competitive advantage, but every vendor that touches passport images adds to your data protection obligations under frameworks like GDPR and India's DPDP Act. Before you choose an OCR provider, your compliance team will ask how long images are kept, who can see them, and what certifications back that up. For comprehensive compliance strategies across borders, explore our travel identity verification solutions.
StructOCR: Short, Documented Retention
Designed specifically for modern financial infrastructure, our core Passport OCR engine keeps images for at most 24 hours for quality spot-checks, then deletes them. Retention is limited to quality spot-checks and documented in our privacy policy, and StructOCR holds SOC 2 Type II. Because the API is plain REST (no black-box SDK), your neo-bank keeps control of the KYC pipeline: you choose what to send, and you store the JSON on your side.
Live Demo: Passport scanner
No registration required. Upload a file to test the extraction.
Drop files here or click to browse
JPG · PNG · PDF · TIFF · up to 500 files · max 4.5 MB each
No document handy?
Core FinTech Applications
Digital Account Opening
Reduce Time-to-First-Transaction (TTFT) by automatically extracting and normalizing MRZ and VIZ data in seconds to populate core banking systems.
Cross-Border Onboarding
Seamlessly verify users from 195+ countries. As a global platform, we natively accept USDT/Crypto payments to bypass fiat friction for international SaaS operators. View our API pricing.
Automated AML Screening
Extract deterministic, ISO 8601 formatted names and dates to instantly cross-reference against global sanctions and PEP (Politically Exposed Persons) watchlists.
Crypto-Friendly Banking
Provide a Web3-friendly onboarding experience with a plain REST API, crypto payment options, and images deleted within 24 hours.
Technical Specs
- 24-Hour Data Retention: Built for FinTech compliance. Images and resulting JSON are kept for at most 24 hours for quality spot-checks, then deleted.
- Edge Deployment: Deployed across Cloudflare's global edge network for low latency for international users.
- Base64 Native: Stream image data securely without ever exposing sensitive PII to intermediary AWS S3 URLs.
- API-First Architecture: 100% RESTful integration eliminates the security vulnerabilities and version conflicts inherent in mobile SDKs.
Key Features
- Universal MRZ Parsing: Accurately decodes ICAO Document 9303 standard formats with built-in checksum validation to prevent tampering.
- VIZ Fallback: Intelligently extracts data from the Visual Inspection Zone if the MRZ is damaged or obscured.
- Strict Normalization: All dates are returned in reliable ISO 8601 (`YYYY-MM-DD`) format for deterministic backend banking logic.
Integration & AI Prompts
Keep sensitive documents off public cloud storage URLs. Stream Base64 image data directly from your backend to our edge nodes. For complete payload schemas, consult our official Passport OCR Developer Documentation.
import requests
import base64
# 📚 Developer Docs: https://structocr.com/developers/passport-ocr
# Note: StructOCR is an API-first platform. Stream Base64 natively
# from your Neo-bank's backend to maintain a closed-loop data pipeline.
with open("user_passport_kyc.jpg", "rb") as image_file:
base64_image = base64.b64encode(image_file.read()).decode('utf-8')
url = "https://api.structocr.com/v1/passport"
headers = {
"x-api-key": "YOUR_API_KEY",
"Content-Type": "application/json"
}
payload = {
"img": base64_image
}
try:
# Processed at the edge; images are deleted within 24 hours
print("Authenticating Neo-Bank User...")
response = requests.post(url, headers=headers, json=payload)
result = response.json()
if result.get('success'):
print("✅ Extraction complete!\n")
# Standardized ISO 8601 Data for AML checks
core = result['data']
print(f"Name: {core.get('given_names')} {core.get('surname')}")
print(f"ID No: {core.get('passport_number')} ({core.get('country_code')})")
print(f"DOB: {core.get('date_of_birth')} (ISO 8601)")
print(f"Expiry: {core.get('date_of_expiry')} (ISO 8601)")
else:
print(f"❌ Extraction Failed: {result.get('error')} - {result.get('message')}")
except Exception as e:
print(f"Error: {e}")Standardized JSON Output
Receive deterministic, cleanly structured data ready for immediate insertion into your core banking system.
{
"success": true,
"data": {
"type": "passport",
"country_code": "IND",
"nationality": "INDIAN",
"passport_number": "Z1234567",
"surname": "SHARMA",
"given_names": "RAHUL",
"sex": "M",
"date_of_birth": "1988-07-22",
"place_of_birth": "NEW DELHI",
"date_of_issue": "2021-04-10",
"date_of_expiry": "2031-04-09",
"issuing_authority": "MINISTRY OF EXTERNAL AFFAIRS",
"country_specific": {
"last_page": {
"father_name": "AMIT SHARMA",
"mother_name": "SITA SHARMA",
"spouse_name": "PRIYA SHARMA",
"address": "FLAT 4B, GREENWOOD APARTMENTS, NEW DELHI PIN: 110001, INDIA",
"old_passport_number": "P7654321",
"old_passport_issue_date": "2010-01-05",
"old_passport_issue_place": "DELHI",
"file_no": "DL1076071103622",
"ecr_status": null
}
}
}
}Frequently Asked Questions
How long does StructOCR keep our banking users' documents?
Uploaded images and extracted results are kept for at most 24 hours so we can run quality spot-checks, then they are deleted. Requests are encrypted in transit, StructOCR holds SOC 2 Type II, and our privacy policy documents the retention period. Store the JSON you need in your own systems.
Why is an API-first approach better than an SDK for Neo-banks?
Mobile SDKs introduce massive security black-boxes, bloat app sizes, and make cross-platform development (like React Native/Flutter) a nightmare of version conflicts. An API-first approach allows your engineering team to own the entire user experience and data pipeline, simply sending secure HTTP requests to our endpoints.
Can the API process non-standard passports or those with heavy glare?
Yes. While we prioritize the MRZ for structured accuracy, our engine includes a secondary VIZ (Visual Inspection Zone) parsing module that can extract information from the complex visual layouts of passports across 195+ countries, effectively handling real-world mobile capture issues like glare and skew.
Explore More Travel & KYC Solutions
Automated Hotel Check-In Passport Scanner API
Streamline hotel check-ins with our automated passport scanner API. Extract global guest data instantly without SDKs. Upload an image to test our free live demo.
Crypto KYC Passport API (No SDK)
Passport OCR API for Web3 and Crypto KYC, with 24-hour data retention. Extract global MRZ and VIZ data instantly without SDK bloat. Upload an image to test our free live demo.
DPDP Compliant Indian Passport OCR API
DPDP-friendly OCR API for Indian passports, with 24-hour data retention. Securely extract back-page PII (Address, Parents' Names) for KYC workflows. File, Base64, and URL supported.
GDPR Compliant Passport OCR API
Extract passport data securely with our OCR API; images are deleted within 24 hours. Upload an image to test our free live demo.
India Passport Address Extraction API
Extract highly complex address blocks and PII from Indian passport back pages. OCR API built for global KYC workflows, with 24-hour data retention. Supports Base64, URLs, and direct file uploads.
Indian Passport OCR for KYC
Automate digital KYC. Extract MRZ, family, and address details from Indian Passports for RBI compliance. Upload a test image for a free live API demo.
Indian Passport Family Details OCR
Extract Father, Mother, and Spouse names from the back page of Indian passports for background verification. API-first integration with 24-hour data retention.
ISO 8601 Passport Date Parsing API
Stop writing complex regex. Automatically extract and normalize passport dates to strict ISO 8601 (YYYY-MM-DD) format. Upload an image to test our free live demo.
Passport VIZ Extraction API for Airlines
Automate airline check-ins by extracting both MRZ and VIZ passport data instantly via a pure REST API. Upload an image to test our free live demo today.
Proof of Address (PoA) OCR India
Automate PoA verification. Extract and validate permanent residential addresses from Indian passport back pages. API-first integration with 24-hour data retention.
Technical Comparisons & Integrations
Explore platform integrations and competitive analysis
Add Passport OCR to Your Lovable.dev App in 5 Minutes
Step-by-step guide to integrating the StructOCR Passport scanner API into a Lovable.dev app through a secure server-side function for travel and KYC flows.
Add Passport OCR to Your Replit App in 5 Minutes
Step-by-step guide to integrating the StructOCR Passport scanner API into a Replit application. Build travel, hospitality, and global KYC flows using Replit Agent and Secrets.
Tesseract & PassportEye vs. StructOCR Passport API
A technical evaluation for developers deciding between open-source MRZ scanners and a dedicated cloud-based Passport OCR API.
Add Passport OCR to Your v0 App in 5 Minutes
Step-by-step guide to integrating the StructOCR Passport scanner API into a v0 by Vercel app through a secure Next.js server route.
AWS Textract vs. StructOCR API for Indian Passport Back Page Extraction
Why generic OCR fails at parsing the back page of Indian passports, and how a dedicated KYC API instantly extracts structured addresses, PIN codes, and family details.
AWS Textract & Google Vision vs. StructOCR Passport API
How AWS Textract AnalyzeID, Google Cloud Vision OCR, and the StructOCR Passport API differ for passport data, quoting each vendor’s own documentation.
From tutorial to production in 5 minutes.
You've seen the code. Now get your API key, grab your 200 free credits, and see it work with your own images. No credit card required.