Skip to content
Constaia
eu_id_card

EU national ID card

ID cards from other EU countries with a 3-line MRZ.

Category
Identity
Country
European Union
Extracted fields
10 fields
Cost
1 credit
eu_id_cardspecimen
Document number
First name
Last name
Sex
Nationality
Date of birth
Issue date
Expiry date
Issuing country

European ID cards use the ICAO TD1 format. Constaia extracts the data and validates the MRZ and the expiry date, whatever the document's language.

  • Reason messages come in the language you ask for, not the document's.

What it checks

  • MRZ ICAO 9303. Check digits of the machine readable zone.
  • MRZ vs printed data. The MRZ matches the visible data.
  • Validity. Not expired on the reference date.
  • Holder. Name, number or date of birth match what you expect.
  • Age. Minimum or maximum age from the date of birth.

Extracted fields

  • Document numberdocument_number
  • First namefirst_name
  • Last namelast_name
  • Sexsex
  • Nationalitynationality
  • Date of birthbirth_date
  • Issue dateissue_date
  • Expiry dateexpiry_date
  • Issuing countryissuing_country
  • Mrzmrz

Sample request

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

Sample response

Fictitious data. Shortened response.

200 OK · application/json
{
  "id": "an_01J9Z3K8QW4T6Y2B7N5M1R0PXC",
  "object": "analysis",
  "status": "completed",
  "livemode": false,
  "document": {
    "type": "eu_id_card",
    "label": "EU national ID card",
    "confidence": 0.97
  },
  "verdict": {
    "expected": [
      "eu_id_card"
    ],
    "match": true,
    "status": "valid",
    "reasons": [
      {
        "code": "type_match",
        "severity": "info",
        "message": "The document is: EU national ID card."
      }
    ]
  },
  "fields": {
    "document_number": {
      "value": "T22000129",
      "confidence": 0.99,
      "validated": true
    },
    "names": {
      "value": "ERIKA MUSTERMANN",
      "confidence": 0.98,
      "validated": null
    },
    "nationality": {
      "value": "DEU",
      "confidence": 0.97,
      "validated": null
    },
    "birth_date": {
      "value": "1983-08-12",
      "confidence": 0.96,
      "validated": null
    },
    "expiry_date": {
      "value": "2031-10-31",
      "confidence": 0.99,
      "validated": null
    },
    "issuing_country": {
      "value": "DEU",
      "confidence": 0.98,
      "validated": null
    },
    "sex": {
      "value": "F",
      "confidence": 0.97,
      "validated": null
    }
  },
  "checks": [
    {
      "code": "mrz_checksums",
      "passed": true,
      "message": "The MRZ check digits are correct."
    }
  ],
  "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.