Skip to content
Constaia
us_state_id

State ID card

Non-driver ID cards issued by state agencies: AAMVA barcode, expiry and age.

Category
Identity
Country
United States
Extracted fields
23 fields
Cost
1 credit
us_state_idspecimen
Document number
Issuing state
First name
Middle name
Last name
Name suffix
Date of birth
Issue date
Expiry date

State ID cards are issued by the same agencies as driver licenses and carry the same AAMVA barcode. Constaia reads them with the same rules, so you can accept either one in a single expect.

  • Pass ["us_driver_license", "us_state_id"] in expect when both are acceptable.
  • The REAL ID marking is returned as real_id_compliant. You do not need it for age or identity checks unless your process requires it.

What it checks

  • PDF417 barcode (AAMVA). The back is decoded and compared with the front.
  • National identifiers. Official checksum or format of the number (NIF, CPF, CURP, RUT, SSN…).us_dl, us_zip
  • Postal code. Postal code format of the country.
  • Holder. Name, number or date of birth match what you expect.
  • Age. Minimum or maximum age from the date of birth.
  • Validity. Not expired on the reference date.
  • Form I-9. Whether the document belongs to list A, B or C.B

Extracted fields

  • Document numberdocument_number
  • Issuing stateissuing_state
  • First namefirst_name
  • Middle namemiddle_name
  • Last namelast_name
  • Name suffixname_suffix
  • Date of birthbirth_date
  • Issue dateissue_date
  • Expiry dateexpiry_date
  • Sexsex
  • Heightheight
  • Weightweight
  • Eye coloreye_color
  • Hair colorhair_color
  • Addressaddress
  • Postal codepostal_code
  • REAL ID compliantreal_id_compliant
  • Dddd
  • Organ donororgan_donor
  • Veteranveteran
  • Under 21 untilunder_21_until
  • Federal limits applyfederal_limits_apply
  • Barcode databarcode_data

Where it is used

Sample request

curl https://api.constaia.com/v1/analyze \
  -H "Authorization: Bearer $CONSTAIA_API_KEY" \
  -F "file=@us_state_id_specimen.jpg" \
  -F 'options={
    "expect": "us_state_id",
    "checks": {
      "not_expired": true,
      "min_age_years": 18
    },
    "storage": "none"
  }'

Try it for free with a ck_test_ key and the file us_state_id_specimen.jpg.

Sample response

Fictitious data. Shortened response.

200 OK · application/json
{
  "id": "an_01J9Z3K8QW4T6Y2B7N5M1R0PXC",
  "object": "analysis",
  "status": "completed",
  "livemode": false,
  "document": {
    "type": "us_state_id",
    "label": "State ID card",
    "confidence": 0.97
  },
  "verdict": {
    "expected": [
      "us_state_id"
    ],
    "match": true,
    "status": "valid",
    "reasons": [
      {
        "code": "type_match",
        "severity": "info",
        "message": "The document is: State ID card."
      }
    ]
  },
  "fields": {
    "document_number": {
      "value": "123 456 789",
      "confidence": 0.99,
      "validated": true
    },
    "first_name": {
      "value": "TAYLOR",
      "confidence": 0.98,
      "validated": null
    },
    "last_name": {
      "value": "SAMPLE",
      "confidence": 0.97,
      "validated": null
    },
    "birth_date": {
      "value": "1988-11-21",
      "confidence": 0.96,
      "validated": null
    },
    "sex": {
      "value": "F",
      "confidence": 0.99,
      "validated": null
    },
    "issuing_state": {
      "value": "NY",
      "confidence": 0.98,
      "validated": null
    },
    "issue_date": {
      "value": "2024-02-02",
      "confidence": 0.97,
      "validated": null
    },
    "expiry_date": {
      "value": "2032-11-21",
      "confidence": 0.96,
      "validated": null
    },
    "real_id_compliant": {
      "value": true,
      "confidence": 0.99,
      "validated": null
    }
  },
  "checks": [
    {
      "code": "aamva_barcode_matches_front",
      "passed": true,
      "message": "The PDF417 barcode matches the front."
    },
    {
      "code": "not_expired",
      "passed": true,
      "message": "Valid on the reference date."
    },
    {
      "code": "min_age_years",
      "passed": true,
      "message": "The holder meets the minimum age."
    }
  ],
  "warnings": [],
  "storage": {
    "mode": "none",
    "file_deleted_at": "2026-09-29T10:00:02Z",
    "expires_at": null
  },
  "usage": {
    "credits": 1,
    "pages": 2
  }
}

FAQ

Does Constaia prove the document is authentic?

No. It checks the type, data consistency and your rules, and flags signals such as a possible edit or a screen photo. That does not prove authenticity.

Is a copy of the document kept?

No, unless you ask for it. With storage "none" (the default) the file is deleted when the analysis ends.

Other documents

And for the record…

Create your account, copy the test key and validate your first document in five minutes.