AAMVA PDF417 Element IDs Reference (DAQ, DCS, DBB)

What the three-letter AAMVA data element IDs on US and Canadian license barcodes mean, from DAQ and DCS to DBB, DBA, and DCF.

Identity elements

DAQ is the customer ID number (license or ID number), DCS the family name, DAC the first name, DAD middle names, DBB the date of birth, and DBC sex.

Extracting It Automatically

When you read this data from photos, the Driver License PDF417 OCR API returns it as structured JSON, and you can apply the rules on this page as validation. Try it with the free scanner.

Where This Fits

  • Document elements: DBA is the expiry date, DBD the issue date, DCF the document discriminator, DCG the country, DCA the vehicle class, DCB restrictions, and DCD endorsements.
  • Address and description: DAG is the street address, DAI the city, DAJ the jurisdiction code, DAK the postal code, DAU height, and DAY eye color.
  • Version differences: Version 1 records use DAA or DAB for names and DAR, DAS, DAT for class, restrictions, and endorsements; later versions use the codes above.
Need more testing? Create a free account to get 200 free credits (equals 100 Passport scans).

Extract It with the API

Read the document from a photo and validate the returned fields.

Prerequisite: Python 3.9+, `pip install requests`, and a STRUCTOCR_API_KEY

PYTHON EXAMPLE
import base64
import os
import requests

with open("license-back.jpg", "rb") as image_file:
    image = base64.b64encode(image_file.read()).decode("ascii")

response = requests.post(
    "https://api.structocr.com/v1/driver-license-pdf417",
    headers={"x-api-key": os.environ["STRUCTOCR_API_KEY"]},
    json={"img": image},
    timeout=30,
)
response.raise_for_status()
data = response.json()["data"]
print("document_kind:", data.get("document_kind"))
print("document_number:", data.get("document_number"))
print("date_of_birth:", data.get("date_of_birth"))
print("region:", data.get("region"))

Technical Specs

  • •Endpoint: POST https://api.structocr.com/v1/driver-license-pdf417
  • •Authentication: x-api-key request header
  • •Inputs: JPG, PNG, or WebP as Base64 JSON; maximum 4.5MB
  • •Price: 2 credits per successful request; failed requests are not billed
  • •Free trial: 200 free credits on sign-up, no credit card required

Key Features

  • •Document elements: DBA is the expiry date, DBD the issue date, DCF the document discriminator, DCG the country, DCA the vehicle class, DCB restrictions, and DCD endorsements.
  • •Address and description: DAG is the street address, DAI the city, DAJ the jurisdiction code, DAK the postal code, DAU height, and DAY eye color.
  • •Version differences: Version 1 records use DAA or DAB for names and DAR, DAS, DAT for class, restrictions, and endorsements; later versions use the codes above.
  • •Validate after OCR: Apply these rules to API output before storing it.

Reference Summary

Key facts from this page in structured form, for quick lookup.

{
  "Identity elements": "DAQ is the customer ID number (license or ID number), DCS the family name, DAC the first name, DAD middle names, DBB the date of birth, and DBC sex..",
  "Document elements": "DBA is the expiry date, DBD the issue date, DCF the document discriminator, DCG the country, DCA the vehicle class, DCB restrictions, and DCD endorsements..",
  "Address and description": "DAG is the street address, DAI the city, DAJ the jurisdiction code, DAK the postal code, DAU height, and DAY eye color..",
  "Version differences": "Version 1 records use DAA or DAB for names and DAR, DAS, DAT for class, restrictions, and endorsements; later versions use the codes above.."
}

Frequently Asked Questions

Do I need to parse element IDs myself?

Not with StructOCR. The PDF417 API returns normalized JSON fields such as document_number and date_of_birth.

Are dates always MMDDYYYY?

US records typically use MMDDCCYY and Canadian records CCYYMMDD; the API normalizes both to YYYY-MM-DD.

You May Also Like

Related tutorials, platform guides, and comparisons

Country Tutorial

Kentucky Driver License OCR: Extract Fields with Python

Extract visible fields from Kentucky driver license images into JSON. Map identifiers, names and dates, with a review workflow for incomplete results.

Python · Driver License
Tutorial

Driver License OCR API Pricing and Cost per Scan

What driver license OCR costs with StructOCR: 2 credits per successful scan, prepaid credits that never expire, and no charge for failed requests.

Driver License
Tutorial

Connecticut Driver License & ID Card PDF417 API

Decode the PDF417 barcode on Connecticut driver licenses and state ID cards into AAMVA JSON, with document_kind to tell licenses from ID cards.

Driver License
Tutorial

C# / .NET US Driver License PDF417 API Tutorial

Decode US driver license PDF417 barcodes with C# / .NET. Send a license-back image, parse AAMVA fields, and handle unreadable barcode errors safely.

C# · Driver License
Tutorial

Kansas Driver License & ID Card PDF417 API

Decode the PDF417 barcode on Kansas driver licenses and state ID cards into AAMVA JSON, with document_kind to tell licenses from ID cards.

Driver License
Tutorial

AAMVA DL/ID Barcode Versions 1–10 Explained

How AAMVA card barcode versions differ, how to read the version from the ANSI header, and why parsers must handle old and new cards.

Driver License
Country Tutorial

Australia Driver License OCR with Python SDK

Extract structured fields from a Australia state or territory driver licence with the StructOCR Python SDK and FastAPI.

Python · Driver License
Country Tutorial

Australia Driver License OCR with Node.js SDK

Extract structured fields from a Australia state or territory driver licence with the StructOCR Node.js SDK and TypeScript + Express.

Node.js · Driver License
Country Tutorial

Brazil Driver License OCR with Node.js SDK

Extract structured fields from a Brazil Carteira Nacional de Habilitação (CNH) with the StructOCR Node.js SDK and TypeScript + Express.

Node.js · Driver License
Country Tutorial

Brazil Driver License OCR with Python SDK

Extract structured fields from a Brazil Carteira Nacional de Habilitação (CNH) with the StructOCR Python SDK and FastAPI.

Python · Driver License
Tutorial

Scandit ID Scanning Alternative: PDF417 Barcode OCR API

Scandit ID Scanning compared with the StructOCR REST API for driver license pdf417 extraction: deployment, pricing model, and when each fits.

Driver License

Technical Comparisons & Integrations

Explore platform integrations and competitive analysis

From tutorial to production in 5 minutes.

You've seen the code. Now get your API key, grab your 200 free credits, and see it work with your own images. No credit card required.

Instant Access Cancel Anytime No Credit Card