ID Scanning

Verify age and identity from a driver license

Read the PDF417 barcode on the back of North American driver licenses and ID cards, and get names, dates, address and an age check, all on the device.

JANE Q SAMPLE21+ verifiedNot expired
Born
1990-01-31 (age 36)
Expires
2028-01-31
License
D1234567 · CA

Features

AAMVA versions 1–10

Handles current and legacy name fields, US and Canadian date formats and ZIP+4.

Age checks built in

age, isUnder21, isUnder18 and isExpired are computed for you, with an injectable clock for tests.

Never leaves the phone

Parsing is pure code on the device, with no network calls and no image uploads.

Tuned viewfinder

A wide, line-style viewfinder fits the long PDF417 on the back of the card.

Every raw field

Jurisdiction-specific elements are kept in fields, for example fields.ZCA.

Same parser everywhere

parseAAMVA in JS, Swift, Kotlin, Python and C#.

For developers

A few lines of code

Drop in the pre-built component or build your own UI on the same engine.

Parsed fields

Identity
firstName, middleName, lastName, suffix, fullName, sex, documentNumber
Dates
dateOfBirth, issueDate, expiryDate (ISO), age, isExpired, isUnder21, isUnder18
Address
street, street2, city, state, postalCode, country
Physical & license
eyeColor, hairColor, height, weight, vehicleClass, restrictions, endorsements
import "qrgen-sdk/elements";
import { parseAAMVA } from "qrgen-sdk/parsers";

scanner.addEventListener("scan", (e) => {
  const id = parseAAMVA(e.detail.barcode.data);
  if (!id) return show("Not a driver license");
  if (id.isExpired) return show("License expired");
  show(id.isUnder21 ? "Under 21" : `21+ verified (age ${id.age})`);
});
Use cases

Where teams use id scanning

  • Age verification for alcohol, tobacco and cannabis
  • Hotel and car rental check-in
  • Visitor management
  • KYC form prefill
  • Event entry with ID checks
  • Pharmacy pickups

Try id scanning now

Open the demo on your phone, or let your coding agent add it to your app.

Esc

Share this page

ID Scanning | QRGen

Star QRGen on GitHub Add a "Powered by QRGen" badge