AAMVA PDF417 driver's license decoder
Paste the raw contents of any US or Canadian driver's license PDF417 barcode, or point us at a photo — a live demo of the idcheck.now verification pipeline.
Point the back of the license at the camera…
📷 Photos you upload or scan are sent to idcheck.now and stored — that's what makes this a live demo of our verification pipeline. Decoding itself runs locally (WebAssembly) so you see results instantly.
🔒 Pasted payloads are decoded entirely in this tab and never sent anywhere — view source and check the network tab if you like. (Photos above are a different story: those we store.)
What is the AAMVA PDF417?
Flip over any US driver's license or state ID and you'll find a dense two-dimensional
barcode — a PDF417 symbol. Its contents are standardized by the
American Association of Motor Vehicle Administrators (AAMVA) in the
Card Design Standard (CDS), so a barcode printed in Florida can be read by a scanner
in Texas. The payload is plain text: a header identifying the issuing jurisdiction
(via a six-digit IIN), the CDS version, and one or more "subfiles" containing
three-letter data elements — DCS for family name, DBB for
date of birth, DAQ for the license number, DBA for expiry,
and dozens more.
The standard has evolved through twelve versions (CDS 2000 to CDS 2025), adding fields
like the document discriminator (DCF), REAL ID compliance type
(DDA), and truncation indicators for long names. Jurisdictions may also
append their own Z-prefixed subfiles with state-specific data.
Why decoding matters for fraud
Fake IDs are usually made by printing a convincing card front and pairing it with a lazily-encoded barcode — or a copied one. Decoding the PDF417 exposes the truth: missing mandatory elements, impossible dates, an IIN that doesn't match the claimed state, or an expiry that contradicts the printed card. Some states go further — Florida, Illinois, and Wisconsin derive the license number from the holder's name and birthdate, so the number can be recomputed and compared against what's encoded.
This tool runs the exact same open-source @idcheck/aamva parser and
validation battery that powers production KYC at idcheck.now — where the barcode is
also cross-checked against OCR of the card front, a live selfie, and sanctions data.
FAQ
Is this PDF417 decoder really free?
Yes. No signup, no API key, no usage cap. Decoding runs entirely in your browser with the open @idcheck/aamva parser — pasted data never leaves your device.
What barcode versions are supported?
AAMVA CDS versions 01 through 12 (2000–2025), all US states and Canadian provinces. The parser tolerates real-world quirks like wrong separators, bad offsets, and undeclared trailing subfiles.
What does the validation battery check?
Mandatory CDS elements, date parseability and ordering, expiry, age plausibility, IIN-to-state matching, license-number format plausibility, and full license-number recomputation for FL, IL, and WI.
Is it safe to paste a real license barcode?
Pasting, yes — pasted payloads are decoded 100% client-side and never transmitted; you can go offline after the page loads and it still works. Photos are different: images you upload or scan are sent to idcheck.now and stored, because this tool is a live demo of our verification pipeline.
What happens to photos I upload?
They're sent to idcheck.now over HTTPS and stored, along with the decoded barcode payload. We use them to evaluate and improve the verification pipeline — the same pipeline production customers use. Don't upload anything you don't want us to have.
Need this check in your onboarding flow?
idcheck.now decodes the barcode server-side, cross-checks it against the card front, matches a live selfie, and screens OFAC — in one API call. First 100 verifications free.