Zero-Retention Passport OCR for Neo-Banks

Accelerate digital account openings without compromising data sovereignty. Process global passports instantly at the edge—where sensitive PII is never written to disk.

Zero-retention passport OCR processing for Neo-bank KYC and digital onboarding.

The Compliance Liability of Legacy OCR

For Neo-banks and challenger banks scaling globally, fast customer onboarding is a competitive advantage. However, relying on traditional OCR vendors that log, store, or train models on your users' highly sensitive Personally Identifiable Information (PII) creates a massive regulatory liability under frameworks like GDPR and India's DPDP Act. For comprehensive compliance strategies across borders, explore our travel identity verification solutions.

StructOCR: Process-and-Forget Architecture

Designed specifically for modern financial infrastructure, our core Passport OCR engine operates on a strict zero-data-retention philosophy. By deploying entirely on Cloudflare's secure edge nodes, your users' Base64 document streams are processed entirely in-memory and instantly purged. Combined with our pure REST API approach (no black-box SDKs), your Neo-bank retains absolute architectural and legal control over the entire KYC data pipeline.

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
Need more testing? Create a free account to get 200 free credits (equals 100 Passport scans).

Core FinTech Applications

Digital Account Opening

Reduce Time-to-First-Transaction (TTFT) by automatically extracting and normalizing MRZ and VIZ data in under 1.2 seconds to instantly 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-native onboarding experience with an API that shares your ethos of decentralization and strict data privacy.

Technical Specs

  • Zero Data Retention: Built for FinTech compliance. Images and resulting JSON are completely purged from RAM immediately after inference.
  • Edge Deployment: Deployed across Cloudflare's global edge network to guarantee ultra-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 securely in RAM at the edge and instantly destroyed
    print("Authenticating Neo-Bank User...")
    response = requests.post(url, headers=headers, json=payload)
    result = response.json()

    if result.get('success'):
        print("✅ Zero-Retention 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 does StructOCR guarantee zero data retention for our banking users?

Our architecture is strictly 'process-and-forget'. When your backend sends a Base64 payload, it is processed entirely in-memory at our Cloudflare edge nodes. The moment the JSON response is dispatched, the memory is purged. We do not write images or extracted PII to any physical disk or database.

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

SOLUTION

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.

Travel & KYC
SOLUTION

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.

Travel & KYC
SOLUTION

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.

Travel & KYC
SOLUTION

GDPR-Compliant Passport Data Extraction

Extract passport data securely with our GDPR-compliant, zero-retention OCR API. No data stored or logged. Upload an image to test our free live demo.

Travel & KYC
SOLUTION

India Passport Address Extraction API

Extract highly complex address blocks and PII from Indian passport back pages. Zero-retention OCR API built for global KYC workflows. Supports Base64, URLs, and direct file uploads.

Travel & KYC
SOLUTION

Indian Passport OCR for KYC & AML

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.

Travel & KYC
SOLUTION

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.

Travel & KYC
SOLUTION

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.

Travel & KYC
SOLUTION

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.

Travel & KYC
SOLUTION

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.

Travel & KYC

Technical Comparisons & Integrations

Explore platform integrations and competitive analysis

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.

Instant Access Cancel Anytime 99.9% Uptime