DPDP Compliant Indian Passport OCR

Process highly sensitive Indian passport back-page data with total peace of mind. Our zero-data-retention API is built for strict privacy and DPDP Act compliance.

Secure, zero-retention processing of Indian Passport back-page data including address and file number.

The Risk of Storing Back-Page PII

With the enforcement of India's Digital Personal Data Protection (DPDP) Act, storing or mishandling Personally Identifiable Information (PII)—especially dense back-page data like residential addresses, father's name, and file numbers—exposes businesses to severe regulatory penalties. Relying on legacy OCR vendors that save your images to train their models is a massive compliance risk. For comprehensive compliance strategies in global user onboarding, explore our travel identity verification solutions.

StructOCR: Process-and-Forget Edge Architecture

StructOCR operates on a strict "process-and-forget" architecture. Powered by our core Passport OCR engine, your images and extracted data are processed entirely in-memory across secure Cloudflare edge nodes. Because we deliver a pure, lightweight API rather than a restrictive SDK, integration is completely within your control. Your users' sensitive data is never written to our physical disks, ensuring total data sovereignty.

Live Demo: Passport scanner

No registration required. Upload a file to test the extraction.

1
Upload
2
Results

Drop files here or click to browse

JPG · PNG · WebP  ·  up to 500 files · max 4.5 MB each

No files selected

Ready to use this in production? Get 20 free API calls — no credit card needed.

Get 20 Free API Calls →

Core Industry Applications

Regulated Financial Services (Banks & NBFCs)

Process complex KYC workflows without creating third-party data liabilities. Scale your operations globally with borderless payment options. View our API pricing (USDT/Crypto supported for international SaaS teams).

Healthcare Onboarding

Extract identity and residential address data for patient records while maintaining strict medical privacy standards.

Telecom SIM Activation

Instantly verify proof of address (PoA) from the passport back page at the point of sale, completely eliminating manual data entry.

Enterprise HR Tech

Manage employee background checks and document verification securely without expanding your organization's attack surface.

Technical Specs

  • Zero Data Retention: Fully compliant with DPDP; images and JSON are purged instantly from RAM.
  • Edge Architecture: Cloudflare deployment ensures processing occurs physically closer to the request origin.
  • Input Flexibility: Seamlessly accepts direct File Uploads, Base64 strings, or Image URLs.
  • Format Agnostic: Pure API architecture completely eliminates SDK bloat and version conflicts.

Key Features

  • Full Back Page Data: Extracts Address, PIN, Father Name, Mother Name, Spouse Name, and File Number with pinpoint accuracy.
  • Address Normalization: Handles multi-line Indian residential addresses, cleanly separating street, locality, and PIN codes.
  • Rapid Response: Highly optimized inference models prevent timeouts in complex secure KYC pipelines.

Integration & AI Prompts

Call the API directly using raw files, Base64 strings, or Image URLs. For deep dive integration specs, consult our official Passport OCR Developer Documentation.

import requests
import base64

# 📚 Developer Docs: https://structocr.com/developers/passport-ocr

# Note: StructOCR is API-first. It natively supports File Uploads,
# Base64-encoded strings, and direct Image URLs.
# Below is a secure Base64 implementation.

with open("india_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:
    # Data is processed in-memory at the edge and instantly purged
    print("Processing Indian Passport Data...")
    response = requests.post(url, headers=headers, json=payload)
    result = response.json()

    if result.get('success'):
        print("✅ Secure Extraction Complete!\n")
        
        # Extract Core 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 Back Page Data
        back_page = core_data['country_specific']['last_page']
        print(f"Address:      {back_page.get('address')}")
        print(f"Father Name:  {back_page.get('father_name')}")
    else:
        print(f"❌ Extraction Failed: {result.get('error')} - {result.get('message')}")
except Exception as e:
    print(f"Error: {e}")

Standardized JSON Output

Securely receive the structured payload and immediately map it to your encrypted database.

{
  "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

Do you provide an SDK for mobile integration?

StructOCR is intentionally designed as an API-first platform rather than providing proprietary SDKs. This allows you to use your preferred language wrappers and eliminates app size bloat, while natively supporting file uploads, Base64, and URLs directly from your backend.

How does the API handle complex, multi-line Indian addresses on the back page?

Our models are specifically trained on the layout typography of Indian passports. It captures the entire address block and structural elements like the PIN code with high fidelity, regardless of line breaks.

Is the API suitable for enterprise compliance audits?

Yes, our zero-data-retention architecture is designed to support SOC2 and DPDP compliance requirements. Data is processed in-memory at the edge and never persisted to storage disks.

Explore More Travel & KYC Solutions

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