Identity Document SDK

Scan any ID document.
In under a second.

DLens is a production-grade mobile SDK that reads driver licences, passports, and national ID cards — entirely on-device. Zero data stored. Zero data transmitted. Ever.

< 800msAverage scan time
190+Countries covered
99.7%Read accuracy
0 bytesData transmitted
ICAO 9303 Compliant
🔒Zero Data Storage
DLens SDK · Live Scan
P<GBRWATSON<<EMMA<<ROSE<<<<<<<
9876543213GBR8506184F2812319<<<
Full NameEmma Rose Watson
NationalityBritish · GBR
Date of Birth18 Jun 1985
Expires31 Dec 2028

Trusted by identity-first teams worldwide

VERIFYFLOWKYCDIRECTSECUREONBOARDIDCHECK PROAGECHECK INCTRUSTBRIDGEONBOARDLYPASSENTRYCLEARGATEIDVAULT VERIFYFLOWKYCDIRECTSECUREONBOARDIDCHECK PROAGECHECK INCTRUSTBRIDGEONBOARDLYPASSENTRYCLEARGATEIDVAULT
🔒

Zero Data Storage

DLens does not store any scanned document data. No images, no personal information, no metadata — nothing is retained on device or in the cloud after scanning is complete.

📡

Zero Data Transmission

All scanning, OCR, barcode decoding, and parsing happens entirely on the user's device. No document data is ever sent to any server — not ours, not yours, not anyone's.

GDPR & Privacy Ready

Because DLens processes data entirely on-device and transmits nothing, it does not act as a data processor under GDPR. Your users' document data never leaves their hands.

How It Works

From camera frame to structured data
in three steps

DLens handles capture, detection, parsing, and validation — so your team ships features, not OCR pipelines.

STEP 01
📷

Point & Capture

Your app calls a single SDK method. DLens activates the camera, preprocesses frames in real time, and guides the user with live visual feedback until the document is correctly positioned.

STEP 02

Detect & Parse

Parallel pipelines run PDF417 barcode detection and ICAO MRZ OCR simultaneously. Full ICAO 9303 checksum validation confirms data integrity before returning any result.

STEP 03

Receive Typed Results

A strongly-typed result object lands in your callback — name, DOB, nationality, document number, expiry, and MRZ validity. No raw strings. No parsing required. No data leaves the device.

Features

Everything a production identity
workflow needs

Purpose-built for KYC onboarding, age verification, access control, and border-adjacent use cases.

🌍

Global Document Coverage

Supports 190+ countries via ICAO 9303-compliant MRZ parsing — all TD1, TD2, and TD3 formats. For driver licences, parses AAMVA PDF417 barcodes from all 50 US states, DC, and every Canadian province including legacy AAMVA and modern ANSI formats with automatic detection.

190+ countries · All 50 US states · All Canadian provinces

Sub-Second Performance

Vision framework warm-up on session start, intelligent frame gating, and parallel async scan pipelines keep average scan time under 800ms — even on mid-range devices in ambient light.

Avg. < 800ms
🔒

Fully On-Device

Every byte of scanning, OCR, barcode detection, checksum validation, and parsing happens on the user's device. No document images, biometric data, or PII is ever stored or transmitted to any server.

Zero data egress · Zero storage
✔️

ICAO Checksum Validation

Full ICAO 9303 check digit validation on document number, date of birth, expiry, and composite checksums. Invalid documents are rejected, not silently passed through.

🧠

OCR Noise Resilience

Multi-pass preprocessing pipeline with gamma correction, local contrast normalisation, unsharp masking, and rotation sweep — handling blur, glare, dark conditions, and tilt up to 35°.

🎯

Smart Document Framing

Real-time document detection with auto-zoom sweep provides frame-by-frame visual guidance — prompting the user to hold steady, confirming when the document is correctly positioned.

📸

Multi-Image Capture

Captures and exposes front face, back face, and extracted portrait images alongside all parsed data fields. Raw MRZ/barcode payload included for developer inspection.

🧩

One-Hour Integration

Full Swift API with SwiftUI wrapper included. Sample app, comprehensive documentation, and dedicated developer support get you live fast.

Swift · SwiftUI · iOS 17+
Integrate in minutes

Seriously simple API

One initialiser. One scanner view. One result object. No server keys, no network permissions, no configuration files.

📦
CocoaPods or XCFramework

Drop DLensSDK.xcframework into your Xcode project. No SPM compilation wait, no C++ build time. Link, embed, and go.

🎯
Strongly Typed Results

Every field — first name, surname, DOB, licence number, expiry — is a named property on the result struct. No dictionary parsing.

🔒
API Key & Secret Auth

Initialise with your API key and secret. Keys are HMAC-SHA256 signed tokens — optionally bundle-locked to your app ID.

Swift
DLensScanner.swift
import DLensSDK

// Initialise once at app launch
try DLensKit.initialize(
  apiKey: "YOUR_API_KEY",
  secret: "YOUR_SECRET"
)

// Present the scanner (SwiftUI)
DLensScanner { result in
  print(result.firstName)    // "Emma"
  print(result.lastName)     // "Watson"
  print(result.dateOfBirth)  // Jun 18, 1985
  print(result.licenseNumber)// "A1234567"
}
Document Coverage

Every major document type, worldwide

From AAMVA driver licences to ICAO passports — DLens handles them all with a single SDK call.

🪪

Driver Licences

AAMVA PDF417 barcodes — all 50 US states, DC, and all Canadian provinces. Legacy and modern ANSI formats.

AAMVA · ANSI
🛂

Passports

ICAO TD3 machine-readable passports from 190+ countries. Full two-line MRZ with complete checksum validation.

ICAO TD3
🪪

National ID Cards

EU, Middle Eastern, Asian, and African national identity cards. Both TD1 (3-line) and TD2 (2-line) MRZ formats.

ICAO TD1 · TD2
📋

Residence Permits

EU and UK biometric residence permits and visa stickers with TD1-format MRZ zones.

BRP · Visa
Platforms

Native performance on every platform

🍎

iOS

Swift SDK, SwiftUI & UIKit support. iOS 17+.

Live
🤖

Android

Kotlin SDK, Jetpack Compose. Android 8.0+.

Coming Soon
💙

Flutter

Dart plugin wrapping native iOS & Android SDKs.

Beta Soon
⚛️

React Native

Native module with full TypeScript types.

Planned
Security & Privacy

Privacy by design,
not by policy

DLens was architected from day one so that user data never needs to leave the device. There is no opt-out because there is nothing to opt out of.

🚫
No Data Storage

DLens stores nothing. No scan history, no images, no PII — nothing is written to disk or memory beyond the active scan session.

📡
No Network Calls

The scanning SDK requires no internet connection. No data is transmitted to any server for OCR, validation, or any other purpose.

🔑
HMAC Signed Keys

API keys are HMAC-SHA256 signed tokens with optional bundle ID locking and expiry dates — unforgeable without your master secret.

🛡️
GDPR Ready

Because no data is processed off-device, DLens does not act as a data processor under GDPR Article 28. No DPA required.

On-device OCR & parsing

All Vision framework calls, barcode decoding, MRZ OCR, and AAMVA parsing run in-process on the user's device.

No analytics or telemetry

The SDK contains no analytics SDKs, crash reporters, or usage tracking. What your users scan is never observed by us.

Scans cleared from memory

All captured frames and extracted data are cleared from memory as soon as the scan session ends — before your callback returns.

Privacy manifest included

DLensSDK ships with Apple's required PrivacyInfo.xcprivacy manifest declaring only UserDefaults usage for zoom preference persistence.

190+
Countries Covered
<800ms
Average Scan Time
99.7%
Read Accuracy
0 bytes
Data Transmitted
Pricing

Transparent pricing.
No per-scan fees. Ever.

Flat annual licence. Unlimited scans. Scale without surprises.

Trial

Evaluation

Free

30-day evaluation licence. Full functionality. No credit card required.

  • Full SDK access — all document types
  • iOS SDK + sample app
  • Community support
  • 30-day term
Request Trial Key
Enterprise

Enterprise

Custom

For teams with advanced requirements, custom contracts, or multi-platform needs.

  • Everything in Initial
  • Android & Flutter SDK access
  • Dedicated Slack channel
  • Custom SLA & MSA
  • Multi-year pricing & invoicing
Contact Sales

All prices in USD · Annual billing · Unlimited scans, no usage caps

Testimonials

Loved by developers worldwide

★★★★★

"We integrated DLens into our KYC onboarding in two days. The on-device processing was the deciding factor — our legal team loved that we could say no PII ever leaves the user's phone."

SL
Sarah L.CTO, VerifyFlow
★★★★★

"The scan speed is genuinely impressive — our users barely notice it happening. AAMVA coverage for all 50 states saved us weeks of edge-case work."

MR
Marcus R.iOS Lead, SecureOnboard
★★★★★

"Privacy compliance was our biggest blocker. DLens solved it entirely — because nothing is transmitted, we had zero GDPR obligations around the scanning step."

JP
Jasmine P.Engineering Manager, KYCDirect
FAQ

Common questions

Does DLens send document data to a server?
No. All scanning, OCR, barcode decoding, checksum validation, and parsing happens entirely on the user's device. No document image, MRZ content, or personal data is ever transmitted anywhere. DLens does not require an internet connection to scan documents.
Does DLens store any scanned data?
No. DLens stores nothing from any scan. No images, no names, no document numbers — nothing is written to disk or any persistent storage. All scan data exists only in memory during the active scan session and is cleared immediately afterwards.
How do I get a trial licence key?
Email hello@dlens.io or use the "Request Trial Key" button above. We issue 30-day evaluation keys within one business day. No credit card, no contract, no commitment required.
Which document types and countries are supported?
Driver licences (AAMVA PDF417) for all 50 US states and all Canadian provinces, passports (ICAO TD3) from 190+ countries, national ID cards (TD1/TD2) from the EU, Middle East, Asia, and Africa, and EU/UK biometric residence permits.
Is there a per-scan fee or usage limit?
No. The Initial Plan is $5,000 per year with completely unlimited scans and unlimited applications. There are no scan counters, rate limits, throttling, or overage charges. Scale as much as you need.
Is DLens GDPR compliant?
Yes. Because all processing is on-device and no data is transmitted or stored, DLens does not act as a data processor for your users' document data under GDPR Article 28. No Data Processing Agreement is required for the scanning step.
Which iOS versions are supported?
The iOS SDK requires iOS 17.0 or later, built with Swift 5.9 / Xcode 15. It supports both SwiftUI and UIKit integration patterns.
What does the 99.9% SLA cover?
The SLA covers uptime of our licence validation endpoint, which operates offline-first (the SDK caches validation locally). It also includes 8-hour priority email response and hotfix releases for accuracy-critical bugs within 48 hours of report.

Ready to ship identity scanning?

Start your 30-day free trial today. Full SDK, all document types, no credit card required.

Get In Touch

Request your trial key

Fill out the form below and we'll send your 30-day evaluation key within one business day. No credit card, no contract.

We use this to issue a bundle-locked trial key (optional)
📧

Email

General enquiries & trial keys

hello@dlens.io
🛠️

Developer Support

Integration help & bug reports

support@dlens.io
💼

Sales

Enterprise plans & custom contracts

sales@dlens.io
⏱️

Response Time

Trial keys issued within 1 business day. Priority support customers receive responses within 8 hours.