Standards/aamva-dl
AAMVA DL/ID
Overview
The AAMVA DL/ID Card Design Standard is the North American standard, published by the American Association of Motor Vehicle Administrators (AAMVA), that governs the design and machine-readable encoding of driver licenses and identification cards. Its Annex D defines the mandatory pdf417 two-dimensional bar code carried on the back of essentially every U.S. and Canadian driver license / ID card, mapping the cardholder's data elements onto that barcode [1].
The data format is a flat, cleartext, length-and-separator-delimited record: a fixed header that identifies the symbol as AAMVA-compliant, one or more "subfile" designators ("DL", "ID", "EN"), and a list of three-letter element identifiers (e.g. DCS = family name, DAQ = customer ID number) each prefacing its value [1]. The carrier symbology is mandated to be exactly pdf417 (per ISO/IEC 15438) — the Compact, Micro and Macro PDF417 variants are explicitly forbidden [1].
History
The standard began as the AAMVA DL/ID-2000 national standard for the driver license / identification card; barcodes printed before that standard's adoption are designated version "0"/"00" [1]. Each subsequent edition increments the AAMVA Version Number field encoded in the barcode header [1]:
| AAMVA version | Edition | Date |
|---|---|---|
| 01 | AAMVA DL/ID-2000 | 2000 |
| 02 | Card Design Specification v1.0 | 09-2003 |
| 03 | Card Design Specification v2.0 | 03-2005 |
| 04 | Card Design Standard v1.0 | 07-2009 |
| 05 | Card Design Standard v1.0 | 07-2010 |
| 06 | Card Design Standard v1.0 | 06-2012* |
| 07 | Card Design Standard v1.0 | 06-2012 |
| 08 | Card Design Standard v1.0 | 08-2013 |
| 09 | Card Design Standard v1.0 | 09-2016 |
| 10 | Card Design Standard (2020) | 2020 |
(*The 2020 standard lists version "06" against the dated 07-2011 edition and "07" against 06-2012 [1].) The standard continues to be revised; a 2025 edition has been published [2]. Independent parser documentation lists supported AAMVA versions 2000, 2003, 2005, 2009, 2010, 2011, 2012, 2013 and 2016, matching the header version mapping [3].
Technical specification
Carrier. The minimum mandatory machine-readable technology is the pdf417 symbology (ISO/IEC 15438). Compact PDF417, MicroPDF417 and MacroPDF417 must not be used. The symbol uses an X-dimension between 0.170 mm and 0.380 mm, a minimum error-correction level of 3 (level 5 recommended where space allows), the ISO 8859-1 (Latin-1) 256-character set, must sit in "Zone V" of the card, oriented with bars perpendicular to the card's bottom edge (≤ ±5° skew), within a maximum 75.565 mm × 38.1 mm area [1].
File header (fixed). Every compliant symbol begins with a fixed header [1]:
| Field | Bytes | Value |
|---|---|---|
| Compliance Indicator | 1 | @ (0x40) |
| Data Element Separator | 1 | LF (0x0A) |
| Record Separator | 1 | RS (0x1E) |
| Segment Terminator | 1 | CR (0x0D) |
| File Type | 5 | ANSI␣ (ANSI + trailing space) |
| Issuer Identification Number (IIN) | 6 | identifies the issuing jurisdiction |
| AAMVA Version Number | 2 | 00–99, per table above |
| Jurisdiction Version Number | 2 | 00–99, jurisdiction's own revision |
| Number of Entries | 2 | count of subfile designators that follow |
Subfile designator (fixed). After the header come one or more subfile designators. Each is Subfile Type (2 chars: DL, ID, or EN for enhanced DL; jurisdiction-specific subfiles begin with Z + the jurisdiction's first letter, e.g. ZC for California/Colorado), a 4-digit Offset (bytes from start of file), and a 4-digit Length (subfile length in bytes, including the two-character type and the trailing segment terminator) [1].
Data elements (Table D.3, mandatory). Within a subfile each value is prefixed by its three-letter Element ID; a Data Element Separator (LF) both terminates a field and signals the next field follows. The minimum mandatory elements are [1]:
| ID | Element | Notes |
|---|---|---|
| DCA | Jurisdiction-specific vehicle class | V6ANS, DL only |
| DCB | Jurisdiction-specific restriction codes | V12ANS, DL only |
| DCD | Jurisdiction-specific endorsement codes | V5ANS, DL only |
| DBA | Document Expiration Date | F8N (MMDDCCYY US / CCYYMMDD CA) |
| DCS | Customer Family Name (surname) | V40ANS |
| DAC | Customer First Name | V40ANS |
| DAD | Customer Middle Name(s) | V40ANS |
| DBD | Document Issue Date | F8N |
| DBB | Date of Birth | F8N |
| DBC | Sex | F1N (1=male, 2=female, 9=not specified) |
| DAY | Eye Color | F3A (ANSI D-20 codes) |
| DAU | Height | F6ANS (e.g. 073 in or 181 cm) |
| DAG | Address – Street 1 | V35ANS |
| DAI | Address – City | V20ANS |
| DAJ | Address – Jurisdiction (state) | F2A |
| DAK | Address – Postal Code | F11ANS |
| DAQ | Customer ID Number | V25ANS (the license/ID number) |
| DCF | Document Discriminator | V25ANS (uniquely IDs this physical document) |
| DCG | Country | F3A (USA / CAN) |
| DDE | Family name truncation | F1A (T/N/U) |
| DDF | First name truncation | F1A (T/N/U) |
| DDG | Middle name truncation | F1A (T/N/U) |
Mandatory elements with no value are encoded with NONE; if data is unavailable, unavl is encoded [1]. Optional elements (Table D.4) include DAH (street line 2) and many others. All mandatory and optional data must be unencrypted; a jurisdiction may encrypt only its own jurisdiction-specific subfile [1].
Use cases
- Identity and age verification — bars, retailers and venues scan the pdf417 to read date of birth and name; the standard explicitly cites identity and age verification as core functions [1].
- Law enforcement — the standard "primarily seeks to support the needs of the law-enforcement community" during traffic stops and other interactions with DL/ID documents [1].
- Administrative automation and address verification — automating data entry and confirming address details [1].
- Account opening / KYC — third-party software parses the barcode to auto-fill identity fields.
Implementations
c0shea/IdParser— C#, MIT. Parses pdf417 AAMVA-compliant driver's licenses and ID cards. ~106 stars; last pushed 2023 [4].benhovinga/aamva_barcode_library— Python, MIT. Parses the barcode data on a North American DL/ID, decomposing it into file header, subfiles and subfile elements per AAMVA Annex D. ~16 stars; last pushed 2025 [5].- Commercial SDKs — e.g. Dynamsoft's Code Parser documents an
AAMVA_DL_ID(pdf417) code type and anAAMVA_DL_ID_WITH_MAG_STRIPEvariant, exposing the parsed element fields [3].
Comparison
Versus iata-bcbp: both are flat cleartext formats carried in pdf417, but AAMVA mandates a single symbology (pdf417 only, no Compact/Micro/Macro and no matrix codes), whereas BCBP permits four symbologies [1]. AAMVA uses named three-letter element IDs with separators (self-describing), whereas BCBP uses fixed-position length-delimited fields.
Versus the mobile-driving-licence (mDL, ISO/IEC 18013-5): the AAMVA pdf417 is the physical-card incarnation of the driver license — cleartext, no selective disclosure, fully revealed on every scan — while the mDL is the digital incarnation, an mdoc carrying signed, selectively-disclosable attributes engaged over a QR/NFC/BLE channel [1]. AAMVA also publishes the companion mDL Implementation Guidelines, so the two coexist: the pdf417 standard governs the plastic card, mDL governs the phone [1].
Fun facts
- The barcode payload is deliberately unencrypted, so any scanner — including off-the-shelf phone apps — can read a person's full name, address and date of birth straight off the back of a U.S. or Canadian license [1].
- Jurisdiction-specific subfiles are tagged by the first letter of the jurisdiction's name, which creates collisions:
ZCcould be California, Colorado or Connecticut, so parsers must disambiguate using the IIN or address [1].
Status
Active and near-universal in North America. The pdf417 barcode is mandatory on compliant U.S. and Canadian DL/ID cards, and the standard is actively maintained — the 2020 edition (AAMVA version 10) is widely deployed and a 2025 edition has been published [1, 2]. The companion mDL work (see mobile-driving-licence) is rolling out alongside, not replacing, the physical-card barcode.
Sources
- AAMVA DL/ID Card Design Standard (2020) — AAMVA, 2020
- AAMVA DL/ID Card Design Standard (2025) — AAMVA, 2025
- North America DL/ID — Supported Code Types — Dynamsoft
- IdParser — Parses PDF417 AAMVA-compliant driver's licenses and ID cards — c0shea (GitHub), 2023
- aamva_barcode_library — benhovinga (GitHub), 2025
Deployments
No country reports mention this standard by name.