iOS identity scanning SDK

Identity data,
captured on device.

DLens turns passports, driver licences, and national ID cards into structured data in under a second—without sending document data to a server.

<800 msAverage scan
190+Countries
iOS 17+Native SDK
0 bytesDocument data sent
Scanner active
DLensSDK 1.0
Identity document
P<GBRWATSON<<EMMA<<ROSE<<<<<<
9876543213GBR8506184F2812319<<<
Full nameEmma Rose Watson
NationalityGBR
Expiry31 Dec 2028
Checksum valid612 ms
Built for regulated identity workflows
ICAO 9303AAMVAON-DEVICE OCROFFLINE-FIRST
Product

A focused SDK for real-world documents.

Capture, detect, parse, and validate without maintaining an OCR pipeline or sending sensitive data off-device.

Explore the API
01

Parallel detection

Hardware PDF417 decoding, Vision barcode fallback, and MRZ OCR work together to find the right signal quickly.

02

Typed results

Receive names, dates, document numbers, addresses, and validation status as a predictable Swift result object.

03

Resilient capture

Frame gating, auto-zoom, contrast correction, and rotation handling improve reads in imperfect lighting and angles.

04

Native integration

Use the same SDK from SwiftUI, UIKit, or Objective-C. Add the XCFramework, initialize once, and present the scanner — or skip the UI entirely and scan an image you already hold.

How it works

From camera frame to usable data.

01 / CAPTURE

Guide the user

The scanner frames the document, adjusts zoom, and waits for a stable image before processing.

02 / PARSE

Read in parallel

Barcode and MRZ pipelines identify the document format, normalize fields, and handle OCR noise.

03 / VALIDATE

Return the result

Checksums are verified and a strongly typed result is delivered to your callback on the main thread.

Integration

A small API surface, by design.

There is no capture server to configure and no response schema to maintain.

  • SwiftUI, UIKit, and Objective-C support
  • Headless API for custom camera UI
  • XCFramework distribution
  • Configurable scanner controls
  • Results returned on the main thread
View the integration guide
DLensScanner.swiftSwift
import DLensSDK

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

// Present from SwiftUI
DLensScanner { result in
  print(result.fullName)
  print(result.licenseNumber)
}
Coverage

One scanner for the documents you encounter.

DLens automatically identifies the document format and routes each frame through the appropriate parsing pipeline.

Driver licences

PDF417 barcodes from all US states, Washington DC, and Canadian provinces and territories.

AAMVA / ANSI

Passports

Machine-readable passports from more than 190 countries with full check-digit validation.

ICAO TD3

National ID cards

Two-line and three-line MRZ formats used across Europe, Asia, the Middle East, and Africa.

ICAO TD1 / TD2

Residence permits

Biometric residence cards, permits, and compatible visa documents.

MRZ
Security

Document processing stays on the device.

Images, barcode payloads, and parsed identity data are handled within the app process. Your application receives the result directly.

01

On-device OCR

Vision and AVFoundation perform capture and recognition locally.

02

No scan history

The SDK does not maintain a persistent record of scanned documents.

03

No analytics SDK

No third-party telemetry or behavioral tracking is bundled with DLens.

04

Privacy manifest

An Apple PrivacyInfo manifest ships with the framework.

Platform availability
iOS AVAILABLE
Android COMING SOON
Flutter PLANNED
React Native PLANNED
Pricing

Predictable pricing, without scan limits.

Start with a full evaluation, then move to a flat monthly licence when you are ready to ship.

Evaluation

Trial

Test the complete iOS SDK in your application before committing.

Free
  • 30-day evaluation
  • All supported document types
  • Sample app and documentation
  • Community support
Request trial key
Organizations

Enterprise

Custom terms and support for larger teams or multi-platform requirements.

Custom
  • Everything in Initial
  • Multi-platform access
  • Dedicated support channel
  • Custom SLA and MSA
  • Multi-year invoicing
Contact sales

Prices in USD. Monthly billing. No per-scan fees or usage caps.

FAQ

Common questions.

Does DLens send document data to a server?

No. OCR, barcode decoding, checksum validation, and parsing happen on the device. Document images and extracted identity data are not sent to DLens servers.

Which countries and document types are supported?

DLens supports AAMVA driver licences from the US and Canada, ICAO TD3 passports from more than 190 countries, and TD1/TD2 national identity documents.

Is there a per-scan fee?

No. The Initial plan is $499 per month and includes unlimited scans and applications.

Which iOS versions are supported?

The SDK requires iOS 17 or later, Swift 5.9, and Xcode 15. SwiftUI, UIKit, and Objective-C integration patterns are supported, plus a headless API for scanning without the built-in camera UI.

How do I get an evaluation key?

Submit the form below. Evaluation keys are normally issued within one business day and do not require a credit card.

Start a trial

Test DLens in your own app.

Tell us a little about your project. We will send a 30-day evaluation key and the iOS framework within one business day.

Optional. Used to issue a bundle-locked key.

Request sent. We will be in touch within one business day.