FreeDriver License Scanner

A free online driver's license scanner powered by Dynamsoft Barcode Reader — scan the PDF417 barcode and read the AAMVA fields

Aim at the barcode on the driver's license.
Scan Results

Initializing Dynamsoft Barcode Reader…

What this driver license scanner does

It reads the PDF417 barcode on a North American driver's licence or ID card, using a live camera or an uploaded image, and parses the AAMVA payload into named fields: licence number, name, address, jurisdiction, date of birth, issue and expiry dates, sex and height. The result appears as a field list rather than raw barcode text. The image never leaves the device.

Worked example: from a synthetic card to named fields

You do not need someone else's licence to test this. Switch to Upload and choose Scan sample image to decode the bundled synthetic California card through the same PDF417 and AAMVA path as your own image. Every identity value is fictional and the card carries a SPECIMEN watermark. For other jurisdictions, the companion AAMVA driver licence generator builds a synthetic card for any of 71 US, Canadian and Mexican jurisdictions. Upload its PNG here and the panel lists the fields the payload carried.

The mapping is worth spelling out, because the two tools use different words for the same thing:

What the parser returns for a standard AAMVA DL/ID payload. Optional elements appear only when the issuing jurisdiction writes them.
Field in the results panel Where it comes from
Licence / ID number The document number element. On some jurisdictions it differs from the customer identifier printed on the card.
Family name, given names Separate elements, not one full-name string. Middle name and name suffix are optional.
Street, city, jurisdiction, postal code Two address lines, city, the issuing state or province, and the postal code.
Date of birth, issue date, expiry date Returned as written in the payload. AAMVA dates are not ISO 8601, and a two-digit year is completed by the issuing jurisdiction's rule, not by the reader.
Sex, height, weight, eye colour Optional physical descriptors. Absent fields are absent, not blank strings.
Vehicle class, restrictions, endorsements Jurisdiction-specific codes. The parser returns the code; interpreting it needs that jurisdiction's table.

The bundled card is also available directly as sample-license-ca.png. Scanning it returned this field subset; the panel continues with the address, dates, physical descriptors and the jurisdiction-specific codes:

{
  "licenseNumber": "S0856486",
  "familyName": "SAMPLEMAN",
  "givenName": "ROBERT",
  "middleName": "MAY",
  "familyNameTruncation": "N",
  "firstGivenNameTruncation": "N",
  "middleNameTruncation": "N"
}
Driver License Scanner results panel with the synthetic California licence decoded into named fields
The results panel after Scan sample image in Chrome on 26 October 2026. The sample was decoded through the same PDF417 and AAMVA parser as an uploaded licence; its identity values are fictional.

Failure case: a South African card cannot be synthesised

This page also loads the South Africa driver licence spec, but that payload is not plaintext: its 720 bytes are six RSA-encrypted blocks. A generated barcode cannot be decrypted, so the only useful input is a real card — and a synthetic test fixture is impossible by construction. If you are testing that path, plan for a physical document rather than a PNG.

A second, quieter failure: since bundle 11.6 the parser resources ship as one .data file per spec, and AAMVA_DL_ID already covers magnetic-stripe licences. The separate AAMVA_DL_ID_WITH_MAG_STRIPE spec is no longer loaded, because loading it would parse the same payload twice and produce duplicate fields.

Supported and not supported

Capability This tool
AAMVA DL/ID payloads Parsed into named fields, including the magnetic-stripe variant covered by AAMVA_DL_ID since bundle 11.6.
South Africa driver licence spec Loaded, but the payload is RSA-encrypted — a real card is the only usable input.
Camera and upload Both. Camera needs HTTPS or localhost; on phones the results panel becomes a bottom sheet so the viewfinder stays visible.
PDF, TIFF and large files Not accepted directly. The upload path takes one browser-readable image; export a PDF or TIFF page to PNG/JPEG first. The synthetic fixture here is 2.2 MB and loads only when requested.
Other countries' licences Not parsed. A European or Asian licence may carry a PDF417 or a 2D symbol, but without a matching AAMVA-style spec the page returns barcode text, not fields.
Reading the printed card Not offered. Only the barcode is decoded; the printed name, photo and dates are not read by OCR.
Checking that the card is genuine Not offered. A syntactically valid payload is exactly what a generator produces — this page parses structure, it does not authenticate a document.
Reading the magnetic stripe Not offered. The spec name refers to the payload format; a stripe reader is hardware this page does not use.
Privacy and network The image is decoded on the device and is not uploaded. The page does fetch the SDK bundle, the licence and demo analytics over the network.

Use the tool, or build it into your app

Use the free hosted tool

No account and no key: the page activates a licence bound to dynamsoft.com. Point a camera at the back of a card, or drop in an image.

Integrate it in your application

"Free" describes the hosted demo, not the source code. Cloned and served elsewhere, the same files need your own licence before the SDK will activate.

Limits worth knowing before you rely on it

Can this tell me whether an ID is fake?
No. It decodes a barcode and parses its structure. A counterfeit card with a correctly encoded PDF417 parses perfectly, and a genuine card with a scratched barcode parses not at all. Document authentication needs security features, a chip read or a database check.
Why do I get barcode text instead of fields for a European licence?
The parser is driven by a spec, and only the AAMVA DL/ID and South Africa specs are loaded here. Other formats need their own spec before the payload becomes named fields.
Is the date of birth trustworthy?
It is trustworthy as a transcription of the payload. AAMVA writes dates in its own format and lets the jurisdiction's rule complete a two-digit year, so the value is only as good as the encoding jurisdiction — the reader does not re-derive it.