AAMVA rijbewijsbarcode
De 2D-barcode op de achterkant van elk Amerikaans rijbewijs is een PDF417-symbool dat de identiteitsgegevens van de houder codeert per de AAMVA Card Design Standard. Oorspronkelijk gespecificeerd in 2000, momenteel in versie 10 (2020).
Barcode symbology: PDF417 (ISO/IEC 15438).
Prior versions: v8 (2013), v9 (2016), v10 (2020).
Wat het is
Een AAMVA-barcode is een PDF417-symbool waarvan de gedecodeerde payload begint met een vaste header, gevolgd door een 'subbestand' per gegevensdomeijn. Het kern-subbestand is DL (rijbewijs).
Header structure:
@
ANSI <IIN><version><jurisdiction version><subfile count>DL<subfile offset><subfile length>Elementcodes
Each data element is a 3-character code followed by its value. The most common:
| Code | Meaning | Format |
|---|---|---|
DAC | First name | Text |
DCS | Last name | Text |
DBB | Date of birth | MMDDYYYY |
DBA | License expiration | MMDDYYYY |
DAQ | License number | Alphanumeric |
DAG | Street address | Text |
DAI | City | Text |
DAJ | State | 2-char |
DAK | ZIP code | 5 or 9 digits |
DCF | Document discriminator | Jurisdiction-specific |
Issuer Identification Number (IIN)
Elke Amerikaanse staat heeft een 6-cijferig IIN toegewezen door AAMVA. Voorbeelden:
| State | IIN | State | IIN |
|---|---|---|---|
| California | 636014 | New York | 636001 |
| Texas | 636015 | Florida | 636010 |
| Illinois | 636035 | Pennsylvania | 636025 |
Version differences
| Version | Published | Key changes |
|---|---|---|
| v8 | 2013 | Added the compliance header. Baseline for modern parsers. |
| v9 | 2016 | Clarified DCF format. Added truncation flags. |
| v10 | 2020 | Added document-image elements; relaxed height units. |
Wat echte rijbewijzen hebben dat een afgedrukte AAMVA-barcode NIET heeft
Dit is van belang voor anti-fraude workflows: een PDF417 die correct parseert is niet hetzelfde als een echt rijbewijs. Fysieke rijbewijzen vertrouwen op:
- Hologrammen, staatscel, laminaatpatronen, optisch variabele apparaten.
- UV/IR-functies, inkten zichtbaar alleen onder 365nm UV of IR.
- Microtekst, 0,2mm tekst ingebed in de kaart.
- Tactiele functies, verhoogde oppervlakken op de naam en geboortedatum.
- Cryptografische attestatie (Mobile DL), ISO/IEC 18013-5 mDL is de opkomende digitale handtekeningslaag.
Leeftijdsverificatiekiosken die uitsluitend op PDF417-parsing vertrouwen worden routinematig nagespeeld. Productie-workflows moeten barcodeparse + minimaal één fysieke functieverificatie combineren.
Canonieke testvectoren
Gebruik duidelijk synthetische gegevens bij het genereren van testpayloads. JOHN TEST, JANE SAMPLE, geboortedatum in de toekomst of voor 1900, alles wat niet kan worden verward met een echt persoon.
| Geval | Invoer | Verwacht header substring |
|---|---|---|
| Californie v10, synthetisch | jurisdiction=CA | ANSI 636014100002DL |
| Texas v10, synthetisch | jurisdiction=TX | ANSI 636015100002DL |
| New York v9, synthetisch | jurisdiction=NY | ANSI 636001090002DL |
Veelvoorkomende valkuilen
- Ontbrekende compliance-header. Parsers die vanaf
ANSIlezen en het@\x1e\r-voorvoegsel overslaan, wijzen je payload af. - Verkeerd datumformaat. AAMVA gebruikt
MMDDYYYY, nietYYYY-MM-DD. - Lengte-eenheden. v10 accepteert zowel inches als centimeters. Oudere versies accepteren alleen inches.
- Naamafsnoervlaggen.
DDE/DDF/DDGmoetenT,NofUzijn. - Jurisdictie-specifieke elementcodes. Staten voegen
ZA-ZZ-gecodes toe. Onbekende codes moeten worden overgeslagen, niet afgewezen. - IIN-mismatch. Een California-rijbewijs met IIN 636015 (Texas) parseert correct maar mislukt bij elke post-parse geldigheidscontrole.
Scannercompatibiliteit
| Lezer | Ondersteuning | Opmerkingen |
|---|---|---|
| iOS Camera (iOS 17+) | Rijbewijs-bewust | Wallet-app herkent AAMVA-payloads. |
| Android Camera | Niet native | Behandelt als ruwe PDF417. |
| Google Lens | Alleen ruwe PDF417 | Toont gedecodeerde tekst zonder AAMVA-parsing. |
| Commerciële ID-verificatie SDK (IDEMIA, Jumio, Onfido) | Volledige parse | Industriestandaard voor leeftijdsverificatiekiosken. |
| Industriële PDF417-scanner (Zebra, Honeywell) | Volledige parse | De meeste moderne firmware bevat AAMVA-parsing. |