AAMVA Barcode Format Guide: Header, Subfiles and Data Elements

The American Association of Motor Vehicle Administrators (AAMVA) publishes the card design standard used by US and Canadian driver licenses and ID cards. The data is stored in a PDF417 barcode. This guide explains how that data is organised, which helps when you build or test software that reads it.

1. The compliance header

The data starts with a fixed header: a compliance indicator @, a data element separator, a record separator, a segment terminator, then the file type ANSI . After that come:

2. Subfile designators

Each subfile has a designator giving its type (for example DL for driver license or ID for identification card), the offset where it starts and its length.

3. Common data element IDs

IDMeaning
DAQCustomer ID / license number
DCSFamily (last) name
DACFirst name
DBBDate of birth
DBAExpiration date
DBDIssue date
DBCSex
DAYEye colour
DAGStreet address
DAICity
DAJState or jurisdiction code
DAKPostal code
DCFDocument discriminator
DCGCountry

Date formats and which elements are mandatory depend on the AAMVA version and the jurisdiction, so always check the standard version your target region uses.

4. Why structure matters for testing

Most parsing bugs come from wrong offsets, unexpected separators or missing mandatory elements. Testing with correctly structured sample barcodes lets you confirm that your scanner and parser handle valid input before you test edge cases.

Generated barcodes are for software testing and education only and must not be used to create or alter identity documents.

Try the AAMVA PDF417 generator