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
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
Indian Passport Family Details OCR
Extract Father, Mother, and Spouse names from the back page of Indian passports for background verification. Zero-retention API-first integration.
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 API
Automate PoA verification. Extract and validate permanent residential addresses from Indian passport back pages. Zero-retention API-first integration.
Remote Hiring Identity OCR API
Automate global remote hiring with our zero-retention identity OCR API. Extract passport data securely without SDKs. Upload an image to test our free live demo.
REST API for Global Passport MRZ
Extract global passport MRZ data instantly via our fast, zero-retention REST API. No SDK required. Upload an image to test our live demo for free.
Right-to-Work Passport Verification API
Automate global HR compliance. Extract passport data instantly with our zero-retention OCR API. No SDK required. Upload an image to test our free live demo.
Zero-Retention Passport OCR for Neo-Banks
Secure your digital onboarding with our zero-retention passport OCR API for neo-banks. Process global KYC data in-memory. Upload an image to test free.
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.
Technical Comparisons & Integrations
Explore platform integrations and competitive analysis
Add Passport OCR to Your Bolt.new App in 5 Minutes
Step-by-step guide to integrating the StructOCR Passport scanner API into a Bolt.new app. Build travel, hospitality, and global KYC flows right in your browser.
Add Passport OCR using Cursor in 5 Minutes
Step-by-step guide to integrating the StructOCR Passport scanner API using the Cursor AI code editor. Build travel, hospitality, and global KYC flows rapidly.
Extracting ECR Status & File Numbers: Generic OCR vs. StructOCR Indian Passport API
Learn why generic text extractors fail to capture critical Indian KYC fields like ECR status and File Numbers, and how a specialized API structures this data automatically.
Heavy KYC SDKs vs. StructOCR Passport API for Mobile Apps
Discover why modern app developers are abandoning bulky on-device OCR SDKs in favor of lightweight, edge-deployed Passport APIs.
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.
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.