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.
Trusted by identity-first teams worldwide
DLens handles capture, detection, parsing, and validation — so your team ships features, not OCR pipelines.
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.
Parallel pipelines run PDF417 barcode detection and ICAO MRZ OCR simultaneously. Full ICAO 9303 checksum validation confirms data integrity before returning any result.
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.
Purpose-built for KYC onboarding, age verification, access control, and border-adjacent use cases.
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 provincesVision 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. < 800msEvery 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 storageFull ICAO 9303 check digit validation on document number, date of birth, expiry, and composite checksums. Invalid documents are rejected, not silently passed through.
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°.
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.
Captures and exposes front face, back face, and extracted portrait images alongside all parsed data fields. Raw MRZ/barcode payload included for developer inspection.
Full Swift API with SwiftUI wrapper included. Sample app, comprehensive documentation, and dedicated developer support get you live fast.
Swift · SwiftUI · iOS 17+One initialiser. One scanner view. One result object. No server keys, no network permissions, no configuration files.
Drop DLensSDK.xcframework into your Xcode project. No SPM compilation wait, no C++ build time. Link, embed, and go.
Every field — first name, surname, DOB, licence number, expiry — is a named property on the result struct. No dictionary parsing.
Initialise with your API key and secret. Keys are HMAC-SHA256 signed tokens — optionally bundle-locked to your app ID.
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" }
From AAMVA driver licences to ICAO passports — DLens handles them all with a single SDK call.
AAMVA PDF417 barcodes — all 50 US states, DC, and all Canadian provinces. Legacy and modern ANSI formats.
AAMVA · ANSIICAO TD3 machine-readable passports from 190+ countries. Full two-line MRZ with complete checksum validation.
ICAO TD3EU, Middle Eastern, Asian, and African national identity cards. Both TD1 (3-line) and TD2 (2-line) MRZ formats.
ICAO TD1 · TD2EU and UK biometric residence permits and visa stickers with TD1-format MRZ zones.
BRP · VisaSwift SDK, SwiftUI & UIKit support. iOS 17+.
LiveKotlin SDK, Jetpack Compose. Android 8.0+.
Coming SoonDart plugin wrapping native iOS & Android SDKs.
Beta SoonNative module with full TypeScript types.
PlannedDLens 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.
DLens stores nothing. No scan history, no images, no PII — nothing is written to disk or memory beyond the active scan session.
The scanning SDK requires no internet connection. No data is transmitted to any server for OCR, validation, or any other purpose.
API keys are HMAC-SHA256 signed tokens with optional bundle ID locking and expiry dates — unforgeable without your master secret.
Because no data is processed off-device, DLens does not act as a data processor under GDPR Article 28. No DPA required.
All Vision framework calls, barcode decoding, MRZ OCR, and AAMVA parsing run in-process on the user's device.
The SDK contains no analytics SDKs, crash reporters, or usage tracking. What your users scan is never observed by us.
All captured frames and extracted data are cleared from memory as soon as the scan session ends — before your callback returns.
DLensSDK ships with Apple's required PrivacyInfo.xcprivacy manifest declaring only UserDefaults usage for zoom preference persistence.
Flat annual licence. Unlimited scans. Scale without surprises.
30-day evaluation licence. Full functionality. No credit card required.
Everything you need to go live. Unlimited scans, unlimited apps.
For teams with advanced requirements, custom contracts, or multi-platform needs.
All prices in USD · Annual billing · Unlimited scans, no usage caps
"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."
"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."
"Privacy compliance was our biggest blocker. DLens solved it entirely — because nothing is transmitted, we had zero GDPR obligations around the scanning step."
Start your 30-day free trial today. Full SDK, all document types, no credit card required.
Fill out the form below and we'll send your 30-day evaluation key within one business day. No credit card, no contract.
Trial keys issued within 1 business day. Priority support customers receive responses within 8 hours.