Indian Passport OCR for KYC & AML
Accelerate user onboarding for FinTechs and banks with financial-grade OCR that securely processes both front and back pages of Indian passports in milliseconds.

The Friction of Dual-Sided Verification
Financial institutions in India require both identity verification (front page MRZ) and relationship/address verification (back page) to meet stringent RBI KYC norms. Relying on manual data entry for these Officially Valid Documents (OVDs) creates massive onboarding friction, high abandonment rates, and severe operational bottlenecks. For a broader look at comprehensive compliance strategies across borders, explore our travel identity verification solutions.
StructOCR: Unified Dual-Page Processing
Powered by our core Passport OCR engine, you can deploy a unified API that seamlessly validates the front page and extracts critical data from the back page. Our engine is purpose-built for financial technology, combining high-speed Cloudflare edge processing with a strict zero-data-retention architecture to ensure your KYC pipeline is both frictionless for users and fully compliant with anti-money laundering (AML) standards.
Live Demo: Passport scanner
No registration required. Upload a file to test the extraction.
Drop files here or click to browse
JPG · PNG · WebP · up to 500 files · max 4.5 MB each
Ready to use this in production? Get 20 free API calls — no credit card needed.
Get 20 Free API Calls →Core Industry Applications
Crypto Wallet & Exchange Onboarding
Verify international users instantly. Combine our API with your existing flows and scale globally with borderless Crypto/USDT payment support for SaaS teams. View our API pricing.
Neo-Bank Account Creation
Process front and back passport images to extract complete KYC profiles without human intervention, drastically reducing Time-to-First-Transaction (TTFT).
Remittance Services
Fulfill strict AML requirements for cross-border money transfers by validating the sender's core identity and permanent address simultaneously.
Brokerage & Trading Apps
Accelerate demat account openings by automating the extraction of required OVD data points—such as Father's Name and File Number—from uploaded passport scans.
Technical Specs
- Edge Deployment: Infrastructure deployed on Cloudflare for ultra-low latency globally.
- Compliance First: API design supports RBI and international AML processing standards with zero data retention.
- Base64 & File Native: Send data streams natively without intermediary public cloud storage URLs.
- API-First Architecture: Pure REST API eliminates SDK version conflicts and mobile app bloat.
Key Features
- Cross-Verification Ready: Extract File Numbers from the back page to automatically cross-reference with internal banking systems.
- Comprehensive KYC Data: Reliably pulls Father's Name, Mother's Name, Spouse's Name, and complete address structures.
- High Throughput: Auto-scaling inference models designed to handle thousands of concurrent FinTech onboarding requests.
Integration & AI Prompts
StructOCR is intentionally API-first, eliminating SDK bloat. Securely pass raw files or Base64 image data directly to our endpoints to keep sensitive PII off public URLs. For detailed integration architecture, consult our official Passport OCR Developer Documentation.
import requests
import base64
# 📚 Developer Docs: https://structocr.com/developers/passport-ocr
# Note: StructOCR natively supports File Uploads, Base64-encoded strings,
# and direct Image URLs without requiring an SDK.
with open("kyc_passport_back.jpg", "rb") as image_file:
base64_image = base64.b64encode(image_file.read()).decode('utf-8')
url = "https://api.structocr.com/v1/passport/india/back-page"
headers = {
"x-api-key": "YOUR_API_KEY",
"Content-Type": "application/json"
}
payload = {
"img": base64_image
}
try:
# Processed at the edge and instantly purged (Zero Data Retention)
print("Processing KYC Document...")
response = requests.post(url, headers=headers, json=payload)
result = response.json()
if result.get('success'):
print("✅ KYC Data Securely Extracted!\n")
# Extract Core Identity Information
core_data = result['data']
print(f"Name: {core_data.get('given_names')} {core_data.get('surname')}")
print(f"Passport No: {core_data.get('passport_number')}")
# Extract India-Specific KYC Data (Address & Relationships)
back_page = core_data['country_specific']['last_page']
print(f"Address: {back_page.get('address')}")
print(f"Father Name: {back_page.get('father_name')}")
print(f"File No: {back_page.get('file_no')}")
else:
print(f"❌ Extraction Failed: {result.get('error')} - {result.get('message')}")
except Exception as e:
print(f"Error: {e}")Standardized JSON Output
Receive all requisite KYC data points neatly mapped in milliseconds, ready for immediate database insertion.
{
"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
Is this suitable for Video KYC (V-CIP) processes?
Absolutely. The API is deployed on edge networks optimized for speed and can process high-resolution frames captured during Video KYC sessions in under 1.2s.
Can we cross-verify the front and back pages?
Yes. By utilizing our API to extract data from both images, your backend can build automated logic to ensure the document holder's details (like old passport numbers or file numbers) match perfectly, enhancing your AML fraud detection.
Do you provide SDKs for mobile?
We operate exclusively as an API-first platform. This is intentional: it prevents SDK bloat in your mobile app and avoids versioning conflicts. You can easily integrate our endpoints natively using standard HTTP libraries in React Native, Flutter, or native iOS/Android, sending files or Base64 directly.
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 Required)
Zero-retention Passport OCR API for Web3 and Crypto KYC. Extract global MRZ and VIZ data instantly without SDK bloat. Upload an image to test our free live demo.
DPDP Compliant Indian Passport OCR
DPDP-compliant, zero data retention OCR API for Indian passports. Securely extract back-page PII (Address, Parents' Names) for KYC workflows. File, Base64, and URL supported.
Precise Data Extraction and Seamless
Integration with AI-powered OCR API.
Empower your solutions with automated data extraction by
integrating best-in class StructOCR via API seamlessly.
No credit card required • Full API access included