AAMVA PDF417 Barcode Format: Fields, Examples and Parsing Guide
Every day, millions of people swipe, present, or scan physical identification cards. Whether a driver is buying age-restricted goods, checking into a hotel, passing through an airport security checkpoint, or completing a digital identity verification workflow, much of the underlying data exchange relies on a two-dimensional barcode printed on the back of state-issued IDs.
That symbol is an AAMVA-compliant PDF417 barcode.
For software engineers and product managers building mobile identity verification, access control, or onboarding systems, working with driver license barcodes involves two distinct engineering phases:
- Decoding: Reading the physical high-density PDF417 barcode image into a raw string of bytes or text.
- Parsing: Extracting structured fields (such as first name, last name, date of birth, and license expiration) from the raw AAMVA text payload.
In this guide, we break down how the AAMVA standard structures PDF417 data, list key field identifiers, analyze scanning challenges in real-world environments, and demonstrate how to seamlessly parse identity data in your applications using barKoder.
What Is an AAMVA PDF417 Barcode?
An AAMVA PDF417 barcode represents the combination of a visual barcode format (PDF417) and an information specification (AAMVA DL/ID Card Design Standard).
- PDF417: A 2D stacked linear symbology developed by Symbol Technologies. PDF417 can store up to ~1,100 bytes of text or binary data in a compact space and incorporates built-in Reed-Solomon error correction to remain readable even if partially smudged or damaged.
- AAMVA: The American Association of Motor Vehicle Administrators (AAMVA) standardizes North American driver licenses and identification cards. AAMVA specifies the exact character layout, headers, subfiles, and field identifiers encoded inside the PDF417 symbology across North American jurisdictions.
When combined, PDF417 acts as the physical vehicle, while the AAMVA specification acts as the universal language spoken by state motor vehicle agencies.
Where Are AAMVA PDF417 Barcodes Used?
Because AAMVA PDF417 barcodes contain verified personal information straight from issuing government entities, they form the cornerstone of modern offline and online verification workflows:
- Age Verification: Retailers, nightclubs, and dispensaries scan the barcode to immediately calculate age without relying on manual cashier math.
- Customer Onboarding: Auto rental agencies, car dealerships, and banks scan driver licenses to auto-fill registration forms, eliminating clerical errors.
- Public-Sector Workflows & Law Enforcement: Police officers read barcodes via in-vehicle mobile devices during traffic stops to auto-populate citation fields.
- Hospitality and Travel Check-ins: Hotels capture customer addresses and identity records rapidly upon check-in.
- Access Control: Event venues, high-security facilities, and military bases log visitor entries by scanning state IDs.
Real-World Impact Case Study:
Beyond commercial applications, strict document verification using AAMVA PDF417 data is vital for public safety. For instance, national transportation safety groups like the National Highway Traffic Safety Administration (NHTSA) work closely with state agencies to combat identity fraud and unauthorized usage across public networks. Standardized digital decoding helps ensure credentials present accurate, untampered data.
How the AAMVA Barcode Payload Works
When your barcode engine decodes a PDF417 barcode on the back of an ID card, it returns a raw ASCII payload. A typical raw AAMVA text stream looks similar to this:
Deconstructing the Payload Structure
- Compliance Indicator (@): Signals the start of an AAMVA-compliant data structure.
- Data Element Separator & Header: Specifies details such as the Issuer Identification Number (IIN) and ANSI standard version.
- Subfile Designator (DL or ID): Indicates whether the payload represents a Driver's License or an Identification Card.
- Field Identifier Prefix: 3-character field codes (such as DCS, DAC, or DBB) precede each data element.
- Terminators: Non-printable control characters (such as Carriage Return \r or Line Feed \n) separate distinct fields.
Common AAMVA Field Codes
The AAMVA DL/ID specification defines standard 3-character field codes. Below are the mandatory fields every developer should map when parsing driver license data:
| Field Code | AAMVA Data Definition | Example Value |
| DCS | Customer Last Name / Surname | PUBLIC |
| DAC | Customer First Name | JOHN |
| DAD | Customer Middle Name(s) | QUINCY |
| DBB | Date of Birth (YYYYMMDD) | 19850512 |
| DBA | Expiration Date (YYYYMMDD) | 20280512 |
| DBD | Document Issue Date (YYYYMMDD) | 20220512 |
| DAQ | Unique Driver License / ID Number | 123456789012 |
| DAG | Street Address Line 1 | 123 MAIN STREET |
| DAI | City | SPRINGFIELD |
| DAJ | State / Province | IL |
| DAK | Postal / ZIP Code | 627011234 |
| DBC | Sex (1 = Male, 2 = Female) | 1 |
| DAU | Height | 070 in or 178 cm |
| DAY | Eye Color | BLU |
Why AAMVA PDF417 Barcodes Can Be Difficult to Scan
Unlike clean 1D product barcodes or high-contrast QR codes, scanning a PDF417 barcode on a driver's license presents unique physical challenges:
- High Symbol Density: PDF417 codes pack up to a kilobyte of data into a tiny vertical strip on the back of modern ID cards.
- Physical Wear and Scratches: IDs sit in wallets for years, resulting in severe surface scratches, worn laminate, or faded printer ink.
- Glare and Glossy Reflections: Polycarbonate plastic cards reflect intense overhead store lights or smartphone camera flashes, blinding standard camera sensors.
- Low-Light Environments: Nightclubs, bars, and roadside stops frequently require scanning under sub-optimal lighting conditions.
- Extreme Angles and Curved Cards: Bent, warped, or tilted ID cards distort barcode geometry.
Standard open-source scanning engines often struggle under these real-world conditions because they rely on intact start/stop patterns or perfect row alignments.
How Developers Can Scan and Parse AAMVA Data
-
Step 1: Barcode Decoding
The camera engine captures a frame, locates the PDF417 geometry, resolves error correction, and converts visual bar patterns into an unformatted ASCII text blob. -
Step 2: AAMVA Parsing
The application passes the raw string to a parser, which handles subfile extraction, strips delimiter characters, maps AAMVA code keys (like DCS $\rightarrow$ lastName), converts date strings into usable timestamps, and outputs a structured JSON object.
Privacy and Compliance Considerations
Driver license data contains highly sensitive Personally Identifiable Information (PII). Developers must adhere to best practices for compliance and privacy:
- Local, On-Device Processing: Avoid transmitting raw driver's license scans or unencrypted personal data to external cloud servers. Perform decoding and parsing natively on the mobile device or web edge.
- Data Redaction: Only parse and keep the fields necessary for your specific use case. If your application only requires age verification, extract DBB (Date of Birth) and immediately discard the rest of the payload.
- Use Mock Test Data During Development: Avoid using real employee or customer IDs during software testing or CI/CD pipelines.
- Data Protection Regulation Compliance: Ensure compliance with frameworks like GDPR, CCPA/CPRA, and state-level driver privacy protection acts (such as DPPA) regarding storage and retention limits.
Using barKoder for PDF417 and AAMVA Scanning
When building mission-critical ID scanning applications, scanning performance must be instantaneous and reliable.
The barKoder Barcode Scanner SDK provides enterprise-grade scanning optimized specifically for high-density 2D barcodes and document workflows:
- barKoder PDF417-LineSight®: Proprietary decoding algorithms designed to capture severely damaged, warped, or partially cut-off PDF417 barcodes—even when start/stop patterns or entire columns are missing.
- Built-in ID & AAMVA Parsing: Decode and automatically parse state IDs, North American driver licenses, and specialized identity documents in a single SDK pass using our dedicated barKoder AAMVA Parser, with out-of-the-box support for international standards like South African Driver Licenses.
- Cross-Platform Support: Integrate seamlessly across iOS, Android, Web Assembly, React Native, Flutter, and .NET MAUI. Explore complete code samples in the barKoder Documentation.
- Comprehensive ID Features: For international travel workflows, barKoder also offers an integrated barKoder MRZ Scanner for passports and visas. Learn more about AAMVA standards in our AAMVA PDF417 deep dive or review our PDF417 performance comparison guide.
Test PDF417 and Driver License Barcode Scanning Today
Transform your web or mobile applications with fast, offline ID scanning.
See how real-world companies streamline their operations with high-performance scanning. For instance, read our Tiental Success Story to discover how integrating barKoder transformed their identity verification and document workflows in demanding environments.
Start your free 30-day barKoder trial license to test PDF417 decoding and AAMVA parsing performance directly in your native development environment.


