es_nieSpanish NIE / TIE
Validate the TIE card and NIE number of foreign residents in Spain.
- Category
- Identity
- Country
- Spain
- Extracted fields
- 9 fields
- Cost
- 1 credit
es_niespecimen- NIE number
- First name
- Last name
- Nationality
- Date of birth
- Expiry date
- Permit type
- Sex
- Mrz
The foreigner identity card (TIE) carries the NIE number and an MRZ. Constaia validates the NIE letter, the MRZ check digits and the expiry date, and extracts the permit type.
- The NIE replaces X, Y or Z with 0, 1 or 2 before computing the letter.
- Handy for registrations where DNI, NIE and passports mix: pass the three types in expect.
What it checks
- NIF/NIE check letter. The check character is recomputed (mod 23).
- 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
- NIE number
nie_number - First name
first_name - Last name
last_name - Nationality
nationality - Date of birth
birth_date - Expiry date
expiry_date - Permit type
permit_type - Sex
sex - Mrz
mrz
Sample request
curl https://api.constaia.com/v1/analyze \
-H "Authorization: Bearer $CONSTAIA_API_KEY" \
-F "file=@nie.jpg" \
-F 'options={
"expect": "es_nie",
"checks": {
"not_expired": true
},
"storage": "none"
}'Try it for free with a ck_test_ key and the file nie.jpg.
Sample response
Fictitious data. Shortened response.
200 OK · application/json
{
"id": "an_01J9Z3K8QW4T6Y2B7N5M1R0PXC",
"object": "analysis",
"status": "completed",
"livemode": false,
"document": {
"type": "es_nie",
"label": "Spanish NIE / TIE",
"confidence": 0.97
},
"verdict": {
"expected": [
"es_nie"
],
"match": true,
"status": "valid",
"reasons": [
{
"code": "type_match",
"severity": "info",
"message": "The document is: Spanish NIE / TIE."
}
]
},
"fields": {
"nie_number": {
"value": "X1234567L",
"confidence": 0.99,
"validated": true
},
"names": {
"value": "ANA MARIA POPESCU",
"confidence": 0.98,
"validated": null
},
"nationality": {
"value": "ROU",
"confidence": 0.97,
"validated": null
},
"birth_date": {
"value": "1988-11-02",
"confidence": 0.96,
"validated": null
},
"expiry_date": {
"value": "2029-06-30",
"confidence": 0.99,
"validated": null
},
"permit_type": {
"value": "RESIDENCIA",
"confidence": 0.98,
"validated": null
}
},
"checks": [
{
"code": "nie_check_digit",
"passed": true,
"message": "The NIE check letter is correct."
},
{
"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.