Document types
Constaia's document type catalogue by category, with fields and validators; how to use expect with several types and generic with your own schema.
Every document you analyse is classified into a type. The type identifier (es_dni, payment_receipt, invoice…) is what you send in expect and what you receive in document.type. Each type defines:
- a field template: what
extract: truereturns infields; - deterministic validators that run whenever the document allows it: NIF/NIE check letter, MRZ check digits, national identifiers (CPF, CURP, PESEL, SSN…), IBAN, totals, CSV format, the PDF417 barcode on US licenses and the electronic signature of PDFs;
- the checks that make sense for it: expiry on a DNI, issue age on a certificate, amount on a receipt.
The catalogue has 167 types: identity documents from the 30 EU/EEA countries and Switzerland, driving licences, residence permits, Latin America, the United States and Canada, certificates, tax, payslips, invoices… The source of truth is GET /v1/document-types: public, no key needed, filterable by country (country), category (category) or text (q) and always up to date. To see each type in more detail, open the full catalogue.
Categories
category | What it groups |
|---|---|
identity | Identity documents: DNI, NIE/TIE, passport, ID cards from other EU countries, Latin American and US IDs. |
residence | Residence and work permits: EU residence permit, Green Card, EAD, I-94… |
driving | Driving licences (EU, UK, Latin America, US with PDF417, Canada) and the international driving permit. |
certificate | Certificates issued by an authority or a professional: sports medical, sexual offences, criminal record, disability. |
health | Health cards, EHIC, Medicare, vaccination certificates. |
education | Academic degrees and transcripts. |
employment | Payslips, Spanish work history, employment contracts, Form I-9. |
tax | Spanish AEAT and Social Security certificates, income tax returns, W-9, W-2, 1099, tax ID cards. |
finance | Payment receipts, invoices, bank statements, bank ownership and insurance certificates (ACORD 25). |
address | Utility bills and rental agreements. |
legal | Notarial deeds, powers of attorney, company registry extracts. |
vehicle | Vehicle registrations. |
civil | Civil registry and census: census registration, family book, birth and marriage certificates. |
sports | Sports licences and coaching qualifications. |
other | generic: any document that does not fit the catalogue. |
Catalogue
Validators check the consistency of the data, not the authenticity of the document. A correct DNI letter or a well-formed MRZ do not prove the document has not been tampered with. That is what warnings are for, and they are hints, not proof. The exception is electronically signed PDFs: their signature is verified cryptographically (see Digital signatures in PDF).
| Type | Document | Fields | Validators |
|---|---|---|---|
es_dni | Spanish ID card (DNI) | document_numberfirst_namelast_name_1last_name_2sexnationalitybirth_dateexpiry_dateissue_datesupport_numberaddressbirth_placeparentsmrz | NIF/NIE check letter, MRZ ICAO 9303, MRZ vs printed data, Validity, Holder, Age |
es_nie | Spanish NIE / TIE | nie_numberfirst_namelast_namenationalitybirth_dateexpiry_datepermit_typesexmrz | NIF/NIE check letter, MRZ ICAO 9303, MRZ vs printed data, Validity, Holder, Age |
passport | Passport (any country) | document_numberfirst_namelast_namesexnationalitybirth_dateissue_dateexpiry_dateissuing_countrymrz | MRZ ICAO 9303, MRZ vs printed data, Validity, Holder, Age |
eu_id_card | EU national ID card | document_numberfirst_namelast_namesexnationalitybirth_dateissue_dateexpiry_dateissuing_countrymrz | MRZ ICAO 9303, MRZ vs printed data, Validity, Holder, Age |
es_driving_license | Spanish driving licence | numberfirst_namelast_namebirth_dateissue_dateexpiry_datecategories | NIF/NIE check letter, Validity, Holder, Age |
medical_certificate_sport | Sports medical certificate | patient_namepatient_idissue_datedoctor_namedoctor_license_numberfit_for_sportsportrestrictionssignature_presentstamp_present | NIF/NIE check letter, Recency, Holder |
es_sexual_offences_certificate | Spanish sexual offences certificate | holder_nameholder_idissue_datehas_recordscsv_code | NIF/NIE check letter, Recency, Holder, Secure verification code, PDF electronic signature |
es_criminal_record_certificate | Spanish criminal record certificate | holder_nameholder_idissue_datehas_recordscsv_code | NIF/NIE check letter, Recency, Holder, Secure verification code, PDF electronic signature |
sports_license | Sports federation licence | holder_nameholder_idfederationlicense_numberseasoncategoryvalid_until | NIF/NIE check letter, Holder, Validity |
coach_qualification | Coach or sports technician qualification | holder_nameholder_idqualificationlevelissuerissue_date | NIF/NIE check letter, Holder |
insurance_certificate | Insurance certificate | insurerpolicy_numberholdercoveragevalid_fromvalid_until | Validity, Holder |
payment_receipt | Payment or bank transfer receipt | amountcurrencydatepayer_namepayer_ibanbeneficiary_namebeneficiary_ibanconceptreference | IBAN, Expected values, Holder |
bank_ownership_certificate | Bank account ownership certificate | holder_nameholder_idibanbankissue_date | IBAN, NIF/NIE check letter, Holder, Recency |
invoice | Invoice | numberissue_datesellerbuyerlinestax_basevatwithholdingtotalcurrency | NIF/NIE check letter, Totals, Expected values |
es_disability_certificate | Spanish disability certificate | holder_nameholder_iddegree_percentissue_datevalid_untilissuer | NIF/NIE check letter, Validity, Holder |
es_census_certificate | Spanish census registration certificate | holder_nameholder_idaddressmunicipalityissue_date | NIF/NIE check letter, Recency, Holder |
es_family_book | Spanish family book | holderschildren | - |
id_card | Identity card (any country) | document_numberfirst_namelast_namesexnationalitybirth_dateissue_dateexpiry_dateissuing_countrymrzpersonal_numberbirth_placeaddressissuing_authority | MRZ ICAO 9303, MRZ vs printed data, Holder, Age, Validity |
eu_residence_permit | EU residence permit (uniform format) | document_numberfirst_namelast_namesexnationalitybirth_dateissue_dateexpiry_dateissuing_countrymrzpermit_typeremarksbirth_placeaddresspersonal_number | MRZ ICAO 9303, MRZ vs printed data, Holder, Age, Validity |
refugee_travel_document | Refugee travel document | document_numberfirst_namelast_namesexnationalitybirth_dateissue_dateexpiry_dateissuing_countrymrzissuing_authority | MRZ ICAO 9303, MRZ vs printed data, Holder, Age, Validity |
eu_driving_licence | EU driving licence | document_numberlast_namefirst_namebirth_datebirth_placeissue_dateexpiry_dateissuing_authoritypersonal_numberissuing_countrycategoriescategory_details | Holder, Age, Validity |
international_driving_permit | International driving permit | document_numberfirst_namelast_namebirth_dateissue_dateexpiry_dateissuing_countrynational_licence_numbercategories | Holder, Age, Validity |
pt_citizen_card | Portuguese Citizen Card (Cartão de Cidadão) | document_numberfirst_namelast_namesexnationalitybirth_dateissue_dateexpiry_dateissuing_countrymrzcivil_id_numbertax_idsocial_security_numberhealth_numberheightparents | MRZ ICAO 9303, MRZ vs printed data, National identifiers, Holder, Age, Validity |
fr_cni | French national identity card (2021) | document_numberfirst_namelast_namesexnationalitybirth_dateissue_dateexpiry_dateissuing_countrymrzbirth_placeaddressalternate_nameissuing_authority | MRZ ICAO 9303, MRZ vs printed data, Holder, Age, Validity |
fr_cni_legacy | French national identity card (1995–2021) | document_numberfirst_namelast_namesexnationalitybirth_dateissue_dateexpiry_dateissuing_countrymrzbirth_placeaddressheightissuing_authority | MRZ ICAO 9303, MRZ vs printed data, Holder, Age, Validity |
de_id_card | German identity card (Personalausweis) | document_numberfirst_namelast_namesexnationalitybirth_dateissue_dateexpiry_dateissuing_countrymrzbirth_placeaddressbirth_nameheighteye_colorcan_numberissuing_authority | MRZ ICAO 9303, MRZ vs printed data, National identifiers, Holder, Age, Validity |
it_cie | Italian electronic identity card (CIE) | document_numberfirst_namelast_namesexnationalitybirth_dateissue_dateexpiry_dateissuing_countrymrztax_codebirth_placeaddressheightmunicipality | MRZ ICAO 9303, MRZ vs printed data, National identifiers, Holder, Age, Validity |
nl_id_card | Dutch identity card (identiteitskaart) | document_numberfirst_namelast_namesexnationalitybirth_dateissue_dateexpiry_dateissuing_countrymrzpersonal_numberbirth_placeheightissuing_authority | MRZ ICAO 9303, MRZ vs printed data, National identifiers, Holder, Age, Validity |
be_eid | Belgian eID card | document_numberfirst_namelast_namesexnationalitybirth_dateissue_dateexpiry_dateissuing_countrymrzpersonal_numberbirth_placeissuing_authority | MRZ ICAO 9303, MRZ vs printed data, National identifiers, Holder, Age, Validity |
lu_id_card | Luxembourg identity card | document_numberfirst_namelast_namesexnationalitybirth_dateissue_dateexpiry_dateissuing_countrymrzpersonal_numberbirth_place | MRZ ICAO 9303, MRZ vs printed data, Holder, Age, Validity |
ie_passport_card | Irish Passport Card | document_numberfirst_namelast_namesexnationalitybirth_dateissue_dateexpiry_dateissuing_countrymrzbirth_place | MRZ ICAO 9303, MRZ vs printed data, Holder, Age, Validity |
at_id_card | Austrian identity card (Personalausweis) | document_numberfirst_namelast_namesexnationalitybirth_dateissue_dateexpiry_dateissuing_countrymrzbirth_placeheightissuing_authority | MRZ ICAO 9303, MRZ vs printed data, Holder, Age, Validity |
ch_id_card | Swiss identity card | document_numberfirst_namelast_namesexnationalitybirth_dateissue_dateexpiry_dateissuing_countrymrzplace_of_originheightissuing_authority | MRZ ICAO 9303, MRZ vs printed data, Holder, Age, Validity |
pl_id_card | Polish identity card (dowód osobisty) | document_numberfirst_namelast_namesexnationalitybirth_dateissue_dateexpiry_dateissuing_countrymrzpersonal_numberbirth_placefamily_nameissuing_authority | MRZ ICAO 9303, MRZ vs printed data, National identifiers, Holder, Age, Validity |
ro_id_card | Romanian identity card (carte de identitate) | document_numberfirst_namelast_namesexnationalitybirth_dateissue_dateexpiry_dateissuing_countrymrzpersonal_numberseriesbirth_placeaddressissuing_authority | MRZ ICAO 9303, MRZ vs printed data, National identifiers, Holder, Age, Validity |
bg_id_card | Bulgarian identity card (lichna karta) | document_numberfirst_namelast_namesexnationalitybirth_dateissue_dateexpiry_dateissuing_countrymrzpersonal_numberbirth_placeaddressissuing_authority | MRZ ICAO 9303, MRZ vs printed data, National identifiers, Holder, Age, Validity |
hr_id_card | Croatian identity card (osobna iskaznica) | document_numberfirst_namelast_namesexnationalitybirth_dateissue_dateexpiry_dateissuing_countrymrzpersonal_numberaddressissuing_authority | MRZ ICAO 9303, MRZ vs printed data, National identifiers, Holder, Age, Validity |
cz_id_card | Czech identity card (občanský průkaz) | document_numberfirst_namelast_namesexnationalitybirth_dateissue_dateexpiry_dateissuing_countrymrzpersonal_numberbirth_placeaddressissuing_authority | MRZ ICAO 9303, MRZ vs printed data, National identifiers, Holder, Age, Validity |
sk_id_card | Slovak identity card (občiansky preukaz) | document_numberfirst_namelast_namesexnationalitybirth_dateissue_dateexpiry_dateissuing_countrymrzpersonal_numberbirth_placeaddressissuing_authority | MRZ ICAO 9303, MRZ vs printed data, National identifiers, Holder, Age, Validity |
si_id_card | Slovenian identity card (osebna izkaznica) | document_numberfirst_namelast_namesexnationalitybirth_dateissue_dateexpiry_dateissuing_countrymrzpersonal_numberaddressissuing_authority | MRZ ICAO 9303, MRZ vs printed data, National identifiers, Holder, Age, Validity |
hu_id_card | Hungarian identity card | document_numberfirst_namelast_namesexnationalitybirth_dateissue_dateexpiry_dateissuing_countrymrzbirth_placemother_nameissuing_authority | MRZ ICAO 9303, MRZ vs printed data, Holder, Age, Validity |
gr_id_card | Greek identity card (deltio taftotitas) | document_numberfirst_namelast_namesexnationalitybirth_dateissue_dateexpiry_dateissuing_countrymrzbirth_placefather_namemother_namelatin_nameissuing_authority | MRZ ICAO 9303, MRZ vs printed data, Holder, Age, Validity |
cy_id_card | Cypriot identity card | document_numberfirst_namelast_namesexnationalitybirth_dateissue_dateexpiry_dateissuing_countrymrzbirth_place | MRZ ICAO 9303, MRZ vs printed data, Holder, Age, Validity |
mt_id_card | Maltese identity card | document_numberfirst_namelast_namesexnationalitybirth_dateissue_dateexpiry_dateissuing_countrymrzbirth_place | MRZ ICAO 9303, MRZ vs printed data, Holder, Age, Validity |
ee_id_card | Estonian ID card (ID-kaart) | document_numberfirst_namelast_namesexnationalitybirth_dateissue_dateexpiry_dateissuing_countrymrzpersonal_numberbirth_place | MRZ ICAO 9303, MRZ vs printed data, National identifiers, Holder, Age, Validity |
lv_id_card | Latvian identity card (eID karte) | document_numberfirst_namelast_namesexnationalitybirth_dateissue_dateexpiry_dateissuing_countrymrzpersonal_number | MRZ ICAO 9303, MRZ vs printed data, National identifiers, Holder, Age, Validity |
lt_id_card | Lithuanian identity card | document_numberfirst_namelast_namesexnationalitybirth_dateissue_dateexpiry_dateissuing_countrymrzpersonal_numberbirth_place | MRZ ICAO 9303, MRZ vs printed data, National identifiers, Holder, Age, Validity |
fi_id_card | Finnish identity card (henkilökortti) | document_numberfirst_namelast_namesexnationalitybirth_dateissue_dateexpiry_dateissuing_countrymrzpersonal_numberissuing_authority | MRZ ICAO 9303, MRZ vs printed data, National identifiers, Holder, Age, Validity |
se_id_card | Swedish national identity card | document_numberfirst_namelast_namesexnationalitybirth_dateissue_dateexpiry_dateissuing_countrymrzpersonal_numberheight | MRZ ICAO 9303, MRZ vs printed data, National identifiers, Holder, Age, Validity |
no_id_card | Norwegian national ID card | document_numberfirst_namelast_namesexnationalitybirth_dateissue_dateexpiry_dateissuing_countrymrzpersonal_number | MRZ ICAO 9303, MRZ vs printed data, National identifiers, Holder, Age, Validity |
dk_id_card | Danish identity card (identitetskort) | document_numberfirst_namelast_namesexnationalitybirth_dateissue_dateexpiry_dateissuing_countryissuing_authority | Holder, Age, Validity |
is_id_card | Icelandic identity card (nafnskírteini) | document_numberfirst_namelast_namesexnationalitybirth_dateissue_dateexpiry_dateissuing_countrymrzpersonal_number | MRZ ICAO 9303, MRZ vs printed data, Holder, Age, Validity |
li_id_card | Liechtenstein identity card | document_numberfirst_namelast_namesexnationalitybirth_dateissue_dateexpiry_dateissuing_countrymrzplace_of_origin | MRZ ICAO 9303, MRZ vs printed data, Holder, Age, Validity |
fr_residence_permit | French residence permit (titre de séjour) | document_numberfirst_namelast_namesexnationalitybirth_dateissue_dateexpiry_dateissuing_countrymrzpermit_typeremarkspersonal_numberbirth_placeaddress | MRZ ICAO 9303, MRZ vs printed data, Holder, Age, Validity |
gb_brp | UK Biometric Residence Permit (BRP) | document_numberfirst_namelast_namesexnationalitybirth_dateissue_dateexpiry_dateissuing_countrymrzpermit_typeremarksbirth_placenational_insurance_number | MRZ ICAO 9303, MRZ vs printed data, National identifiers, Holder, Age, Validity |
ad_residence_permit | Andorran residence permit | document_numberfirst_namelast_namesexnationalitybirth_dateissue_dateexpiry_dateissuing_countrytax_idpermit_typeaddress | National identifiers, Holder, Age, Validity |
ma_cnie | Moroccan national electronic ID card (CNIE) | document_numberfirst_namelast_namesexnationalitybirth_dateissue_dateexpiry_dateissuing_countrymrzbirth_placeaddresscan_number | MRZ ICAO 9303, MRZ vs printed data, National identifiers, Holder, Age, Validity |
pt_driving_licence | Portuguese driving licence | document_numberlast_namefirst_namebirth_datebirth_placeissue_dateexpiry_dateissuing_authoritypersonal_numberissuing_countrycategoriescategory_details | Holder, Age, Validity |
fr_driving_licence | French driving licence | document_numberlast_namefirst_namebirth_datebirth_placeissue_dateexpiry_dateissuing_authoritypersonal_numberissuing_countrycategoriescategory_details | Holder, Age, Validity |
it_driving_licence | Italian driving licence | document_numberlast_namefirst_namebirth_datebirth_placeissue_dateexpiry_dateissuing_authoritypersonal_numberissuing_countrycategoriescategory_details | Holder, Age, Validity |
de_driving_licence | German driving licence | document_numberlast_namefirst_namebirth_datebirth_placeissue_dateexpiry_dateissuing_authoritypersonal_numberissuing_countrycategoriescategory_details | Holder, Age, Validity |
nl_driving_licence | Dutch driving licence | document_numberlast_namefirst_namebirth_datebirth_placeissue_dateexpiry_dateissuing_authoritypersonal_numberissuing_countrycategoriescategory_details | National identifiers, Holder, Age, Validity |
gb_driving_licence | UK driving licence (photocard) | document_numberlast_namefirst_namebirth_datebirth_placeissue_dateexpiry_dateissuing_authoritypersonal_numberissuing_countrycategoriescategory_detailsaddresspostal_code | National identifiers, Postal code, Holder, Age, Validity |
it_health_card | Italian health insurance card (tessera sanitaria) | tax_codedocument_numberfirst_namelast_namesexbirth_datebirth_placeprovinceexpiry_date | National identifiers, Holder, Age, Validity |
fr_health_card | French health insurance card (Carte Vitale) | social_security_numberdocument_numberfirst_namelast_nameissue_date | National identifiers, Holder |
at_ecard | Austrian e-card | social_security_numberdocument_numberfirst_namelast_namebirth_dateexpiry_date | National identifiers, Holder, Age, Validity |
ch_health_insurance_card | Swiss health insurance card | social_security_numberdocument_numberinsurerfirst_namelast_namebirth_dateexpiry_date | National identifiers, Holder, Age, Validity |
dk_health_card | Danish health insurance card (sundhedskort) | document_numberfirst_namelast_nameaddressdoctorissue_date | National identifiers, Holder |
ie_pps_card | Irish Public Services Card | document_numberpersonal_numberfirst_namelast_nameexpiry_date | National identifiers, Holder, Validity |
de_tax_id_notice | German tax ID notice (Steuer-IdNr) | holder_nametax_idbirth_dateaddressissue_date | National identifiers, Holder |
es_payslip | Spanish payslip (nómina) | companyemployeeperiod_startperiod_enddaysaccrualstotal_accrueddeductionstotal_deductionsnet_payirpf_percentcontribution_basespayment_dateiban | National identifiers, Holder, Recency, IBAN |
es_work_history | Spanish employment history report (vida laboral) | holder_nameholder_idissue_datesocial_security_numberbirth_datetotal_daysperiodscsv_code | National identifiers, Holder, Recency, Secure verification code, PDF electronic signature |
es_aeat_tax_compliance_certificate | Spanish tax compliance certificate (AEAT) | holder_nameholder_idissue_datepurposeresultis_compliantcsv_code | National identifiers, Holder, Recency, Secure verification code, PDF electronic signature |
es_social_security_compliance_certificate | Spanish Social Security compliance certificate | holder_nameholder_idissue_datecccis_compliantcsv_code | National identifiers, Holder, Recency, PDF electronic signature |
es_self_employed_fee_receipt | Spanish self-employed contribution receipt (RETA) | holder_nameholder_idsocial_security_numberperiodcontribution_baseamountpayment_dateibanreceipt_number | National identifiers, Holder, Recency, IBAN |
es_aeat_census_certificate | Spanish tax census status certificate (AEAT) | holder_nameholder_idissue_datetax_addressactivitiesvat_regimeincome_tax_regimeregistration_datecsv_code | National identifiers, Holder, Recency, Secure verification code, PDF electronic signature |
es_aeat_tax_id_card | Spanish tax identification card (NIF) | holder_nameholder_idtax_addressissue_datecsv_code | National identifiers, Holder, Secure verification code, PDF electronic signature |
es_income_tax_return | Spanish personal income tax return (form 100) | tax_yearholder_nameholder_idspouse_idjointgeneral_tax_basesavings_tax_basetotal_tax_dueresultreceipt_numberfiling_datecsv_code | National identifiers, Holder, Secure verification code |
es_aeat_income_certificate | Spanish income tax certificate (AEAT) | holder_nameholder_idissue_datetax_yearhas_filedgeneral_tax_basesavings_tax_basetotal_incomecsv_code | National identifiers, Holder, Recency, Secure verification code, PDF electronic signature |
es_social_security_number_document | Spanish Social Security number document (NUSS) | holder_nameholder_idissue_datesocial_security_numberbirth_datecsv_code | National identifiers, Holder, PDF electronic signature |
es_health_card | Spanish health card (tarjeta sanitaria) | document_numberfirst_namelast_namesocial_security_numberhealth_serviceexpiry_date | Holder |
es_vehicle_registration | Spanish vehicle registration certificate | plate_numberfirst_registration_dateholder_nameholder_idaddressmakemodelvinissue_date | National identifiers, Holder |
mx_ine | Mexican INE voter ID card | document_numberfirst_namelast_namesexbirth_datecurpelector_keyocr_numberaddresssectionregistration_yearissue_dateexpiry_datemrz | MRZ ICAO 9303, MRZ vs printed data, National identifiers, Holder, Age, Validity |
ar_dni | Argentine national ID card (DNI) | document_numberfirst_namelast_namesexnationalitybirth_dateissue_dateexpiry_dateissuing_countrymrzprocedure_numbercopycuilbirth_placeaddress | MRZ ICAO 9303, MRZ vs printed data, National identifiers, Holder, Age, Validity |
co_cedula | Colombian citizenship card (cédula de ciudadanía) | document_numberfirst_namelast_namesexnationalitybirth_dateissue_datebirth_placeissue_placeheightblood_type | National identifiers, Holder, Age |
co_cedula_digital | Colombian digital ID card (cédula digital) | document_numberfirst_namelast_namesexnationalitybirth_dateissue_dateexpiry_dateissuing_countrymrzbirth_placeissue_placeblood_type | MRZ ICAO 9303, MRZ vs printed data, National identifiers, Holder, Age, Validity |
cl_cedula | Chilean identity card (cédula de identidad) | document_numberfirst_namelast_namesexnationalitybirth_dateissue_dateexpiry_dateissuing_countrymrzrunbirth_placeprofession | MRZ ICAO 9303, MRZ vs printed data, National identifiers, Holder, Age, Validity |
pe_dni | Peruvian national ID card (DNI) | document_numberfirst_namelast_namesexnationalitybirth_dateissue_dateexpiry_dateissuing_countrymrzcheck_digitubigeomarital_statusaddress | MRZ ICAO 9303, MRZ vs printed data, National identifiers, Holder, Age, Validity |
pe_dnie | Peruvian electronic ID card (DNIe) | document_numberfirst_namelast_namesexnationalitybirth_dateissue_dateexpiry_dateissuing_countrymrzcheck_digitubigeoaddress | MRZ ICAO 9303, MRZ vs printed data, National identifiers, Holder, Age, Validity |
ve_cedula | Venezuelan identity card (cédula de identidad) | document_numberfirst_namelast_namesexnationalitybirth_dateissue_dateexpiry_datemarital_status | National identifiers, Holder, Age, Validity |
ec_cedula | Ecuadorian identity card (cédula de identidad) | document_numberfirst_namelast_namesexnationalitybirth_dateissue_dateexpiry_datebirth_placefingerprint_codemarital_status | National identifiers, Holder, Age, Validity |
uy_ci | Uruguayan identity card (cédula de identidad) | document_numberfirst_namelast_namesexnationalitybirth_dateissue_dateexpiry_dateissuing_countrymrzbirth_place | MRZ ICAO 9303, MRZ vs printed data, National identifiers, Holder, Age, Validity |
br_rg | Brazilian identity card (RG) | document_numberfirst_namelast_namebirth_dateissue_dateissuing_stateissuing_authoritycpffather_namemother_namebirth_place | National identifiers, Holder, Age |
br_cin | Brazilian National Identity Card (CIN) | document_numberfirst_namelast_namesexnationalitybirth_dateissue_dateexpiry_dateissuing_countrymrzissuing_statemother_namefather_namebirth_place | MRZ ICAO 9303, MRZ vs printed data, National identifiers, Holder, Age, Validity |
bo_ci | Bolivian identity card (cédula de identidad) | document_numberfirst_namelast_namesexnationalitybirth_dateissue_dateexpiry_dateextensionbirth_place | National identifiers, Holder, Age, Validity |
py_ci | Paraguayan identity card (cédula de identidad) | document_numberfirst_namelast_namesexnationalitybirth_dateissue_dateexpiry_datebirth_place | National identifiers, Holder, Age, Validity |
do_cedula | Dominican identity and voter card (cédula) | document_numberfirst_namelast_namesexnationalitybirth_dateissue_dateexpiry_datebirth_placemarital_status | National identifiers, Holder, Age, Validity |
gt_dpi | Guatemalan ID card (DPI) | document_numberfirst_namelast_namesexnationalitybirth_dateissue_dateexpiry_dateaddress | Holder, Age, Validity |
cr_cedula | Costa Rican identity card (cédula) | document_numberfirst_namelast_namesexnationalitybirth_dateissue_dateexpiry_dateaddress | Holder, Age, Validity |
pa_cedula | Panamanian identity card (cédula) | document_numberfirst_namelast_namesexnationalitybirth_dateissue_dateexpiry_dateaddress | Holder, Age, Validity |
sv_dui | Salvadoran ID card (DUI) | document_numberfirst_namelast_namesexnationalitybirth_dateissue_dateexpiry_dateaddress | Holder, Age, Validity |
hn_dni | Honduran ID card (DNI) | document_numberfirst_namelast_namesexnationalitybirth_dateissue_dateexpiry_dateaddress | Holder, Age, Validity |
br_cnh | Brazilian driver's license (CNH) | document_numberfirst_namelast_namebirth_dateissue_dateexpiry_datecategoriesrestrictionsaddressissuing_authoritycpfrgfirst_licence_datemother_name | National identifiers, Holder, Age, Validity |
mx_driver_license | Mexican driver's license | document_numberfirst_namelast_namebirth_dateissue_dateexpiry_datecategoriesrestrictionsaddressissuing_authorityissuing_statecurp | National identifiers, Holder, Age, Validity |
ar_driver_license | Argentine national driver's license | document_numberfirst_namelast_namebirth_dateissue_dateexpiry_datecategoriesrestrictionsaddressissuing_authority | National identifiers, Holder, Age, Validity |
co_driver_license | Colombian driver's license | document_numberfirst_namelast_namebirth_dateissue_dateexpiry_datecategoriesrestrictionsaddressissuing_authorityblood_type | National identifiers, Holder, Age, Validity |
cl_driver_license | Chilean driver's license | document_numberfirst_namelast_namebirth_dateissue_dateexpiry_datecategoriesrestrictionsaddressissuing_authority | National identifiers, Holder, Age, Validity |
mx_curp_certificate | Mexican CURP certificate | curpholder_namebirth_datebirth_statesexnationalityregistration_documentissue_date | National identifiers, Holder, Recency |
mx_rfc_certificate | Mexican tax status certificate (constancia de situación fiscal) | rfccurpholder_nameid_ciftax_regimesstatusoperations_start_dateaddresspostal_codeissue_date | National identifiers, Postal code, Holder, Recency, PDF electronic signature |
ar_cuil_cuit_certificate | Argentine CUIL/CUIT certificate | tax_idholder_nameholder_idtax_statusaddressissue_date | National identifiers, Holder, Recency |
co_rut | Colombian tax registration (RUT) | tax_idholder_nameeconomic_activityresponsibilitiesaddressissue_date | National identifiers, Holder, Recency |
cl_rut_certificate | Chilean tax ID certificate (e-RUT) | tax_idholder_nameactivity_start_dateaddressissue_date | National identifiers, Holder, Recency |
br_cpf_card | Brazilian CPF registration proof | cpfholder_namebirth_datestatusissue_datecontrol_code | National identifiers, Holder, Recency |
br_cnpj_card | Brazilian CNPJ registration card | cnpjcompany_nametrade_nameopening_datelegal_naturemain_activityaddresspostal_codestatusissue_date | National identifiers, Postal code, Recency |
us_driver_license | US driver license | document_numberissuing_statefirst_namemiddle_namelast_namename_suffixbirth_dateissue_dateexpiry_datesexheightweighteye_colorhair_coloraddresspostal_codereal_id_compliantddorgan_donorveteranunder_21_untilfederal_limits_applyclassrestrictionsendorsementscommercialpermit_typebarcode_data | PDF417 barcode (AAMVA), National identifiers, Postal code, Holder, Age, Validity, Form I-9 |
us_state_id | US state ID card | document_numberissuing_statefirst_namemiddle_namelast_namename_suffixbirth_dateissue_dateexpiry_datesexheightweighteye_colorhair_coloraddresspostal_codereal_id_compliantddorgan_donorveteranunder_21_untilfederal_limits_applybarcode_data | PDF417 barcode (AAMVA), National identifiers, Postal code, Holder, Age, Validity, Form I-9 |
us_passport_book | US passport book | document_numberfirst_namelast_namesexnationalitybirth_dateissue_dateexpiry_dateissuing_countrymrzbirth_placeissuing_authority | MRZ ICAO 9303, MRZ vs printed data, Holder, Age, Validity, Form I-9 |
us_passport_card | US passport card | document_numberfirst_namelast_namesexnationalitybirth_dateissue_dateexpiry_dateissuing_countrymrzbirth_place | MRZ ICAO 9303, MRZ vs printed data, Holder, Age, Validity, Form I-9 |
us_permanent_resident_card | US permanent resident card (green card) | document_numberuscis_numberfirst_namelast_namesexbirth_datecountry_of_birthcategoryissue_dateexpiry_datenationalitymrz | MRZ ICAO 9303, MRZ vs printed data, National identifiers, Holder, Age, Validity, Form I-9 |
us_ead | US Employment Authorization Document (EAD, Form I-766) | document_numberuscis_numberfirst_namelast_namesexbirth_datecountry_of_birthcategoryissue_dateexpiry_datenationalitymrzterms | MRZ ICAO 9303, MRZ vs printed data, National identifiers, Holder, Age, Validity, Form I-9 |
us_foreign_passport_i551 | Foreign passport with temporary I-551 stamp | document_numberfirst_namelast_namesexnationalitybirth_dateissue_dateexpiry_dateissuing_countrymrzuscis_numberstamp_expiry_date | MRZ ICAO 9303, MRZ vs printed data, National identifiers, Holder, Age, Validity, Form I-9 |
us_i94 | US Arrival/Departure Record (Form I-94) | admission_numberfirst_namelast_namebirth_datepassport_numbercountry_of_issuancearrival_dateclass_of_admissionadmit_until_date | Holder, Age, Validity, Form I-9 |
us_ssn_card | US Social Security card | ssnholder_namerestrictionsignature_present | National identifiers, Holder, Form I-9 |
us_birth_certificate | US birth certificate | holder_namebirth_datebirth_placeissuing_statesexmother_namefather_namecertificate_numberregistration_dateissue_dateissuing_authorityseal_present | Holder, Form I-9 |
us_consular_birth_report | Consular Report of Birth Abroad (FS-240) | holder_namebirth_datebirth_placesexform_typecertificate_numberissue_dateparents | Holder, Form I-9 |
us_school_id | US school ID card with photo | document_numberfirst_namelast_nameinstitutionissue_dateexpiry_date | Holder, Form I-9 |
us_voter_registration_card | US voter registration card | document_numberfirst_namelast_namebirth_dateissuing_statecountyaddressprecinctpartyissue_date | Holder, Age, Form I-9 |
us_military_id | US military ID card | document_numberfirst_namelast_namebirth_datebranchrankcard_typeissue_dateexpiry_date | Holder, Age, Validity, Form I-9 |
us_tribal_document | Native American tribal document | document_numberfirst_namelast_namebirth_datetribeissue_dateexpiry_date | Holder, Age, Form I-9 |
us_citizen_id_card | US Citizen ID Card (Form I-197) | document_numberfirst_namelast_namebirth_dateissue_date | Holder, Age, Form I-9 |
us_resident_citizen_id_card | Identification Card for Use of Resident Citizen in the United States (Form I-179) | document_numberfirst_namelast_namebirth_dateissue_date | Holder, Age, Form I-9 |
us_medicare_card | US Medicare card | holder_namembihospital_part_a_datemedical_part_b_date | National identifiers, Holder |
us_health_insurance_card | US health insurance card | insurermember_namemember_idgroup_numberplan_namerx_binrx_pcnrx_grouppayer_ideffective_datecopays | Holder |
us_w9 | IRS Form W-9 | namebusiness_nametax_classificationexempt_payee_codeaddresspostal_codessneinsignature_presentsignature_dateform_revision | National identifiers, Postal code, Holder, Recency |
us_w2 | IRS Form W-2 | tax_yearemployer_einemployeremployee_ssnemployee_nameemployee_addresswagesfederal_income_tax_withheldsocial_security_wagessocial_security_tax_withheldmedicare_wagesmedicare_tax_withheldstatestate_wagesstate_income_tax | National identifiers, Holder |
us_1099_nec | IRS Forms 1099 | tax_yearpayer_namepayer_addresspayer_tinrecipient_namerecipient_tinrecipient_addressaccount_numbernonemployee_compensationfederal_income_tax_withheldstatestate_incomestate_tax_withheld | National identifiers, Holder |
us_1099_misc | IRS Form 1099-MISC | tax_yearpayer_namepayer_addresspayer_tinrecipient_namerecipient_tinrecipient_addressaccount_numberrentsroyaltiesother_incomemedical_paymentsattorney_proceedsfederal_income_tax_withheldstatestate_incomestate_tax_withheld | National identifiers, Holder |
us_1099_int | IRS Form 1099-INT | tax_yearpayer_namepayer_addresspayer_tinrecipient_namerecipient_tinrecipient_addressaccount_numberinterest_incomeearly_withdrawal_penaltyus_savings_bonds_interesttax_exempt_interestfederal_income_tax_withheldstatestate_incomestate_tax_withheld | National identifiers, Holder |
us_irs_ein_letter | IRS EIN assignment letter (CP 575 / 147C) | business_nameeinaddresspostal_codenotice_typeissue_date | National identifiers, Postal code |
us_paystub | US pay stub | employer_nameemployer_addressemployee_nameemployee_idssn_last4pay_period_startpay_period_endpay_datepay_frequencyhoursrategross_paynet_payytd_grossytd_netdeductions | Holder, Recency |
us_bank_statement | US bank statement | bank_nameaccount_holderaddresspostal_codeaccount_numberrouting_numberaccount_typeperiod_startperiod_endopening_balanceclosing_balancetotal_depositstotal_withdrawalstransactions | National identifiers, Postal code, Holder, Recency |
us_utility_bill | US utility bill | providerservice_typeaccount_holderaccount_numberservice_addresspostal_codeissue_datedue_dateservice_period_startservice_period_endamount_due | National identifiers, Postal code, Holder, Recency |
acord_25 | ACORD 25 Certificate of Liability Insurance | certificate_datecertificate_numberrevision_numberproducerinsuredinsurerspoliciespolicy_expiry_datedescription_of_operationscertificate_holderauthorized_representative | Holder, Validity |
us_vehicle_registration | US vehicle registration | issuing_stateplate_numbervinmakemodelmodel_yearowner_nameaddresspostal_codeissue_dateexpiry_date | National identifiers, Postal code, Holder, Validity |
us_i9_form | USCIS Form I-9 (Employment Eligibility Verification) | last_namefirst_namemiddle_initialother_last_namesaddressbirth_datessnemailphonecitizenship_statususcis_numberi94_numberforeign_passport_numberwork_authorization_expiryemployee_signature_datedocumentsfirst_day_of_employmentemployer_nameemployer_titlebusiness_namebusiness_addressemployer_signature_dateform_edition | National identifiers, Holder, Age |
ca_driver_licence | Canadian driver's licence | document_numberissuing_provincefirst_namelast_namebirth_dateissue_dateexpiry_datesexheightaddresspostal_codeddclassconditionsbarcode_data | PDF417 barcode (AAMVA), National identifiers, Postal code, Holder, Age, Validity, Form I-9 |
ca_photo_id_card | Canadian provincial photo ID card | document_numberissuing_provincefirst_namelast_namebirth_dateissue_dateexpiry_datesexheightaddresspostal_codeddbarcode_data | PDF417 barcode (AAMVA), National identifiers, Postal code, Holder, Age, Validity |
ca_pr_card | Canadian Permanent Resident Card | document_numberfirst_namelast_namesexnationalitybirth_dateissue_dateexpiry_dateissuing_countrymrzucicountry_of_birthresident_since | MRZ ICAO 9303, MRZ vs printed data, Holder, Age, Validity |
ca_sin | Canadian Social Insurance Number (SIN) confirmation | sinholder_nameissue_dateexpiry_date | National identifiers, Holder |
ca_health_card | Canadian provincial health card | document_numberversion_codeissuing_provincefirst_namelast_namebirth_datesexissue_dateexpiry_date | Holder, Age, Validity |
ehic | European Health Insurance Card (EHIC) | last_namefirst_namebirth_datepersonal_numberinstitutiondocument_numberexpiry_dateissuing_country | Holder, Age, Validity |
vaccination_certificate | Vaccination certificate | holder_nameholder_idbirth_datecertificate_idissuerissue_datevaccinationsqr_present | Holder |
criminal_record_certificate | Criminal record certificate | holder_nameholder_idissue_datebirth_datecountryissuing_authorityhas_recordspurposeverification_code | Holder, Recency |
academic_degree | Academic degree certificate | holder_nameholder_idbirth_datedegree_titlefield_of_studylevelinstitutioncountrycompletion_dateissue_dateregistry_number | Holder |
academic_transcript | Academic transcript | holder_nameholder_idinstitutionprogramcoursesaverage_gradeissue_date | Holder, Recency |
birth_certificate | Birth certificate | holder_namebirth_datebirth_placesexmother_namefather_nameregistryregistry_referencecountryissue_date | Holder |
marriage_certificate | Marriage certificate | spouse_1_namespouse_2_namemarriage_datemarriage_placeregistryregistry_referencecountryissue_date | Holder |
notarial_deed | Notarial deed | deed_typenotary_namenotary_locationprotocol_numberdeed_datepartiessubjectamountcopy_typecsv_codecountry | - |
power_of_attorney | Power of attorney | grantorattorneyspowersscopejoint_actionnotary_nameprotocol_numbergrant_datevalid_untilcountry | Holder |
company_registry_extract | Company registry extract | company_nameregistration_numbertax_idlegal_formregistered_officeincorporation_dateshare_capitalstatusdirectorsregistrycountryissue_date | National identifiers, Recency |
tax_residence_certificate | Tax residence certificate | holder_nameholder_idissue_datecountrytax_yeartreatyissuing_authorityverification_code | Holder, Recency |
rental_agreement | Rental agreement | landlordtenantsproperty_addresscadastral_referencestart_dateend_datemonthly_rentcurrencydepositsignature_datesignatures_present | - |
utility_bill | Utility bill | suppliersupplier_tax_idservice_typeholder_nameholder_idsupply_addresspostal_codecountrycupscontract_numberinvoice_numberissue_dateperiod_startperiod_endamountcurrency | National identifiers, Postal code, Holder, Recency |
bank_statement | Bank statement | bank_nameaccount_holderaddressibanbicperiod_startperiod_endopening_balanceclosing_balancecurrencytransactions | National identifiers, IBAN, Holder, Recency |
payslip | Payslip | employer_nameemployer_tax_idemployee_nameemployee_idsocial_security_numberperiod_startperiod_endpay_dategross_paytotal_deductionsnet_paycurrency | Holder, Recency |
employment_contract | Employment contract | employeremployeepositioncontract_typestart_dateend_dateworking_hourssalarysalary_periodcurrencysignature_datesignatures_present | Holder |
generic | Any other document | - | - |
us_acord_25 | Certificate of liability insurance (ACORD 25) | issue_dateproducerinsuredinsurerspolicy_numbergeneral_liability_each_occurrencegeneral_aggregateauto_liability_combined_single_limitumbrella_each_occurrenceworkers_comp_employers_liabilitypolicy_effective_datepolicy_expiration_dateadditional_insuredcertificate_holdersignature_present | - |
Accepting several types with expect
Often more than one document is fine: "DNI, NIE or passport". Pass a list in expect (up to 20 types). The verdict is valid if the document is any of them and passes the checks.
{
"expect": ["es_dni", "es_nie", "passport", "eu_id_card"],
"checks": { "min_age_years": 18, "holder": { "full_name": "María García López" } }
}- The detected type arrives in
document.typeandverdict.expectedrepeats your list. - If a catalogue type is recognised that is not in the list, the verdict is
invalidwith thetype_mismatchreason. - If the document cannot be identified (
generic) or classification confidence is below 0.5, the reason istype_unknownand the verdictreview.
Each check only applies if the detected type has the relevant field: min_age_years on a DNI, max_age_days on a certificate, expected_amount on a receipt. If you mix types, pick checks that make sense for all of them or branch on document.type. Which checks each type supports is given by its checks list in GET /v1/document-types/{type}.
import { Constaia } from "@constaia/sdk";
import { fromPath } from "@constaia/sdk/node";
const constaia = new Constaia();
const analysis = await constaia.analyze(await fromPath("./nie.jpg"), {
expect: ["es_dni", "es_nie", "passport"],
checks: { minAgeYears: 18, holder: { fullName: "Anna Kowalska" } },
});
switch (analysis.document?.type) {
case "es_dni":
console.log(analysis.fields.document_number?.value);
break;
case "es_nie":
console.log(analysis.fields.nie_number?.value);
break;
case "passport":
console.log(analysis.fields.document_number?.value, analysis.fields.nationality?.value);
break;
}
console.log(analysis.verdict?.status);In test mode, a file named nie.jpg returns a valid NIE for ANNA KOWALSKA.
generic with your own schema
If your document is not in the catalogue (a club authorisation, an internal form, an unusual certificate), analyse it with generic and describe the fields with a JSON Schema in extract:
{
"expect": "generic",
"extract": {
"type": "object",
"properties": {
"club_name": { "type": "string", "description": "Name of the club issuing the document" },
"member_name": { "type": "string", "description": "Member's full name" },
"season": { "type": "string", "description": "Season, e.g. 2026-2027" },
"signed": { "type": "boolean", "description": "Whether the document is signed" }
}
},
"checks": { "require_fields": ["club_name", "member_name"] }
}Fields come back in fields with value, confidence and position, just like catalogue types. generic has no deterministic validators and no expiry: the useful checks are require_fields and max_age_days. Result quality depends on how clear your schema's description texts are. More in POST /v1/analyze.
You can also pass your own schema with a catalogue type to keep only some fields: start from the schema returned by GET /v1/document-types/{type}.
New types in your code
The catalogue grows. Build your integration so it does not break if document.type carries a type it does not know: treat it as "other document" and send it to review. If you validate your configuration at startup, do it against GET /v1/document-types, not against a hard-coded list.
Next steps
SLA and status
The Constaia API health endpoint, how to get support with X-Request-Id, which SLA each plan has and how to make your integration resilient to failures.
API reference
Interactive reference and OpenAPI 3.1 specification of the Constaia API, /v1 conventions, client generation and import into Postman, Insomnia or Bruno.