Upload or paste a file
Click to browse, drop an image here, or paste one from the clipboard with Ctrl + V (⌘ + V on macOS)
California AAMVA sample data only — not a real identity document.
A free online driver's license scanner powered by Dynamsoft Barcode Reader — scan the PDF417 barcode and read the AAMVA fields
Upload or paste a file
Click to browse, drop an image here, or paste one from the clipboard with Ctrl + V (⌘ + V on macOS)
California AAMVA sample data only — not a real identity document.
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.
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:
| 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"
}
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.
| 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. |
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.
"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.