Constaia

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: true returns in fields;
  • 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

categoryWhat it groups
identityIdentity documents: DNI, NIE/TIE, passport, ID cards from other EU countries, Latin American and US IDs.
residenceResidence and work permits: EU residence permit, Green Card, EAD, I-94…
drivingDriving licences (EU, UK, Latin America, US with PDF417, Canada) and the international driving permit.
certificateCertificates issued by an authority or a professional: sports medical, sexual offences, criminal record, disability.
healthHealth cards, EHIC, Medicare, vaccination certificates.
educationAcademic degrees and transcripts.
employmentPayslips, Spanish work history, employment contracts, Form I-9.
taxSpanish AEAT and Social Security certificates, income tax returns, W-9, W-2, 1099, tax ID cards.
financePayment receipts, invoices, bank statements, bank ownership and insurance certificates (ACORD 25).
addressUtility bills and rental agreements.
legalNotarial deeds, powers of attorney, company registry extracts.
vehicleVehicle registrations.
civilCivil registry and census: census registration, family book, birth and marriage certificates.
sportsSports licences and coaching qualifications.
othergeneric: 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).

TypeDocumentFieldsValidators
es_dniSpanish ID card (DNI)document_numberfirst_namelast_name_1last_name_2sexnationalitybirth_dateexpiry_dateissue_datesupport_numberaddressbirth_placeparentsmrzNIF/NIE check letter, MRZ ICAO 9303, MRZ vs printed data, Validity, Holder, Age
es_nieSpanish NIE / TIEnie_numberfirst_namelast_namenationalitybirth_dateexpiry_datepermit_typesexmrzNIF/NIE check letter, MRZ ICAO 9303, MRZ vs printed data, Validity, Holder, Age
passportPassport (any country)document_numberfirst_namelast_namesexnationalitybirth_dateissue_dateexpiry_dateissuing_countrymrzMRZ ICAO 9303, MRZ vs printed data, Validity, Holder, Age
eu_id_cardEU national ID carddocument_numberfirst_namelast_namesexnationalitybirth_dateissue_dateexpiry_dateissuing_countrymrzMRZ ICAO 9303, MRZ vs printed data, Validity, Holder, Age
es_driving_licenseSpanish driving licencenumberfirst_namelast_namebirth_dateissue_dateexpiry_datecategoriesNIF/NIE check letter, Validity, Holder, Age
medical_certificate_sportSports medical certificatepatient_namepatient_idissue_datedoctor_namedoctor_license_numberfit_for_sportsportrestrictionssignature_presentstamp_presentNIF/NIE check letter, Recency, Holder
es_sexual_offences_certificateSpanish sexual offences certificateholder_nameholder_idissue_datehas_recordscsv_codeNIF/NIE check letter, Recency, Holder, Secure verification code, PDF electronic signature
es_criminal_record_certificateSpanish criminal record certificateholder_nameholder_idissue_datehas_recordscsv_codeNIF/NIE check letter, Recency, Holder, Secure verification code, PDF electronic signature
sports_licenseSports federation licenceholder_nameholder_idfederationlicense_numberseasoncategoryvalid_untilNIF/NIE check letter, Holder, Validity
coach_qualificationCoach or sports technician qualificationholder_nameholder_idqualificationlevelissuerissue_dateNIF/NIE check letter, Holder
insurance_certificateInsurance certificateinsurerpolicy_numberholdercoveragevalid_fromvalid_untilValidity, Holder
payment_receiptPayment or bank transfer receiptamountcurrencydatepayer_namepayer_ibanbeneficiary_namebeneficiary_ibanconceptreferenceIBAN, Expected values, Holder
bank_ownership_certificateBank account ownership certificateholder_nameholder_idibanbankissue_dateIBAN, NIF/NIE check letter, Holder, Recency
invoiceInvoicenumberissue_datesellerbuyerlinestax_basevatwithholdingtotalcurrencyNIF/NIE check letter, Totals, Expected values
es_disability_certificateSpanish disability certificateholder_nameholder_iddegree_percentissue_datevalid_untilissuerNIF/NIE check letter, Validity, Holder
es_census_certificateSpanish census registration certificateholder_nameholder_idaddressmunicipalityissue_dateNIF/NIE check letter, Recency, Holder
es_family_bookSpanish family bookholderschildren-
id_cardIdentity card (any country)document_numberfirst_namelast_namesexnationalitybirth_dateissue_dateexpiry_dateissuing_countrymrzpersonal_numberbirth_placeaddressissuing_authorityMRZ ICAO 9303, MRZ vs printed data, Holder, Age, Validity
eu_residence_permitEU residence permit (uniform format)document_numberfirst_namelast_namesexnationalitybirth_dateissue_dateexpiry_dateissuing_countrymrzpermit_typeremarksbirth_placeaddresspersonal_numberMRZ ICAO 9303, MRZ vs printed data, Holder, Age, Validity
refugee_travel_documentRefugee travel documentdocument_numberfirst_namelast_namesexnationalitybirth_dateissue_dateexpiry_dateissuing_countrymrzissuing_authorityMRZ ICAO 9303, MRZ vs printed data, Holder, Age, Validity
eu_driving_licenceEU driving licencedocument_numberlast_namefirst_namebirth_datebirth_placeissue_dateexpiry_dateissuing_authoritypersonal_numberissuing_countrycategoriescategory_detailsHolder, Age, Validity
international_driving_permitInternational driving permitdocument_numberfirst_namelast_namebirth_dateissue_dateexpiry_dateissuing_countrynational_licence_numbercategoriesHolder, Age, Validity
pt_citizen_cardPortuguese Citizen Card (Cartão de Cidadão)document_numberfirst_namelast_namesexnationalitybirth_dateissue_dateexpiry_dateissuing_countrymrzcivil_id_numbertax_idsocial_security_numberhealth_numberheightparentsMRZ ICAO 9303, MRZ vs printed data, National identifiers, Holder, Age, Validity
fr_cniFrench national identity card (2021)document_numberfirst_namelast_namesexnationalitybirth_dateissue_dateexpiry_dateissuing_countrymrzbirth_placeaddressalternate_nameissuing_authorityMRZ ICAO 9303, MRZ vs printed data, Holder, Age, Validity
fr_cni_legacyFrench national identity card (1995–2021)document_numberfirst_namelast_namesexnationalitybirth_dateissue_dateexpiry_dateissuing_countrymrzbirth_placeaddressheightissuing_authorityMRZ ICAO 9303, MRZ vs printed data, Holder, Age, Validity
de_id_cardGerman identity card (Personalausweis)document_numberfirst_namelast_namesexnationalitybirth_dateissue_dateexpiry_dateissuing_countrymrzbirth_placeaddressbirth_nameheighteye_colorcan_numberissuing_authorityMRZ ICAO 9303, MRZ vs printed data, National identifiers, Holder, Age, Validity
it_cieItalian electronic identity card (CIE)document_numberfirst_namelast_namesexnationalitybirth_dateissue_dateexpiry_dateissuing_countrymrztax_codebirth_placeaddressheightmunicipalityMRZ ICAO 9303, MRZ vs printed data, National identifiers, Holder, Age, Validity
nl_id_cardDutch identity card (identiteitskaart)document_numberfirst_namelast_namesexnationalitybirth_dateissue_dateexpiry_dateissuing_countrymrzpersonal_numberbirth_placeheightissuing_authorityMRZ ICAO 9303, MRZ vs printed data, National identifiers, Holder, Age, Validity
be_eidBelgian eID carddocument_numberfirst_namelast_namesexnationalitybirth_dateissue_dateexpiry_dateissuing_countrymrzpersonal_numberbirth_placeissuing_authorityMRZ ICAO 9303, MRZ vs printed data, National identifiers, Holder, Age, Validity
lu_id_cardLuxembourg identity carddocument_numberfirst_namelast_namesexnationalitybirth_dateissue_dateexpiry_dateissuing_countrymrzpersonal_numberbirth_placeMRZ ICAO 9303, MRZ vs printed data, Holder, Age, Validity
ie_passport_cardIrish Passport Carddocument_numberfirst_namelast_namesexnationalitybirth_dateissue_dateexpiry_dateissuing_countrymrzbirth_placeMRZ ICAO 9303, MRZ vs printed data, Holder, Age, Validity
at_id_cardAustrian identity card (Personalausweis)document_numberfirst_namelast_namesexnationalitybirth_dateissue_dateexpiry_dateissuing_countrymrzbirth_placeheightissuing_authorityMRZ ICAO 9303, MRZ vs printed data, Holder, Age, Validity
ch_id_cardSwiss identity carddocument_numberfirst_namelast_namesexnationalitybirth_dateissue_dateexpiry_dateissuing_countrymrzplace_of_originheightissuing_authorityMRZ ICAO 9303, MRZ vs printed data, Holder, Age, Validity
pl_id_cardPolish identity card (dowód osobisty)document_numberfirst_namelast_namesexnationalitybirth_dateissue_dateexpiry_dateissuing_countrymrzpersonal_numberbirth_placefamily_nameissuing_authorityMRZ ICAO 9303, MRZ vs printed data, National identifiers, Holder, Age, Validity
ro_id_cardRomanian identity card (carte de identitate)document_numberfirst_namelast_namesexnationalitybirth_dateissue_dateexpiry_dateissuing_countrymrzpersonal_numberseriesbirth_placeaddressissuing_authorityMRZ ICAO 9303, MRZ vs printed data, National identifiers, Holder, Age, Validity
bg_id_cardBulgarian identity card (lichna karta)document_numberfirst_namelast_namesexnationalitybirth_dateissue_dateexpiry_dateissuing_countrymrzpersonal_numberbirth_placeaddressissuing_authorityMRZ ICAO 9303, MRZ vs printed data, National identifiers, Holder, Age, Validity
hr_id_cardCroatian identity card (osobna iskaznica)document_numberfirst_namelast_namesexnationalitybirth_dateissue_dateexpiry_dateissuing_countrymrzpersonal_numberaddressissuing_authorityMRZ ICAO 9303, MRZ vs printed data, National identifiers, Holder, Age, Validity
cz_id_cardCzech identity card (občanský průkaz)document_numberfirst_namelast_namesexnationalitybirth_dateissue_dateexpiry_dateissuing_countrymrzpersonal_numberbirth_placeaddressissuing_authorityMRZ ICAO 9303, MRZ vs printed data, National identifiers, Holder, Age, Validity
sk_id_cardSlovak identity card (občiansky preukaz)document_numberfirst_namelast_namesexnationalitybirth_dateissue_dateexpiry_dateissuing_countrymrzpersonal_numberbirth_placeaddressissuing_authorityMRZ ICAO 9303, MRZ vs printed data, National identifiers, Holder, Age, Validity
si_id_cardSlovenian identity card (osebna izkaznica)document_numberfirst_namelast_namesexnationalitybirth_dateissue_dateexpiry_dateissuing_countrymrzpersonal_numberaddressissuing_authorityMRZ ICAO 9303, MRZ vs printed data, National identifiers, Holder, Age, Validity
hu_id_cardHungarian identity carddocument_numberfirst_namelast_namesexnationalitybirth_dateissue_dateexpiry_dateissuing_countrymrzbirth_placemother_nameissuing_authorityMRZ ICAO 9303, MRZ vs printed data, Holder, Age, Validity
gr_id_cardGreek identity card (deltio taftotitas)document_numberfirst_namelast_namesexnationalitybirth_dateissue_dateexpiry_dateissuing_countrymrzbirth_placefather_namemother_namelatin_nameissuing_authorityMRZ ICAO 9303, MRZ vs printed data, Holder, Age, Validity
cy_id_cardCypriot identity carddocument_numberfirst_namelast_namesexnationalitybirth_dateissue_dateexpiry_dateissuing_countrymrzbirth_placeMRZ ICAO 9303, MRZ vs printed data, Holder, Age, Validity
mt_id_cardMaltese identity carddocument_numberfirst_namelast_namesexnationalitybirth_dateissue_dateexpiry_dateissuing_countrymrzbirth_placeMRZ ICAO 9303, MRZ vs printed data, Holder, Age, Validity
ee_id_cardEstonian ID card (ID-kaart)document_numberfirst_namelast_namesexnationalitybirth_dateissue_dateexpiry_dateissuing_countrymrzpersonal_numberbirth_placeMRZ ICAO 9303, MRZ vs printed data, National identifiers, Holder, Age, Validity
lv_id_cardLatvian identity card (eID karte)document_numberfirst_namelast_namesexnationalitybirth_dateissue_dateexpiry_dateissuing_countrymrzpersonal_numberMRZ ICAO 9303, MRZ vs printed data, National identifiers, Holder, Age, Validity
lt_id_cardLithuanian identity carddocument_numberfirst_namelast_namesexnationalitybirth_dateissue_dateexpiry_dateissuing_countrymrzpersonal_numberbirth_placeMRZ ICAO 9303, MRZ vs printed data, National identifiers, Holder, Age, Validity
fi_id_cardFinnish identity card (henkilökortti)document_numberfirst_namelast_namesexnationalitybirth_dateissue_dateexpiry_dateissuing_countrymrzpersonal_numberissuing_authorityMRZ ICAO 9303, MRZ vs printed data, National identifiers, Holder, Age, Validity
se_id_cardSwedish national identity carddocument_numberfirst_namelast_namesexnationalitybirth_dateissue_dateexpiry_dateissuing_countrymrzpersonal_numberheightMRZ ICAO 9303, MRZ vs printed data, National identifiers, Holder, Age, Validity
no_id_cardNorwegian national ID carddocument_numberfirst_namelast_namesexnationalitybirth_dateissue_dateexpiry_dateissuing_countrymrzpersonal_numberMRZ ICAO 9303, MRZ vs printed data, National identifiers, Holder, Age, Validity
dk_id_cardDanish identity card (identitetskort)document_numberfirst_namelast_namesexnationalitybirth_dateissue_dateexpiry_dateissuing_countryissuing_authorityHolder, Age, Validity
is_id_cardIcelandic identity card (nafnskírteini)document_numberfirst_namelast_namesexnationalitybirth_dateissue_dateexpiry_dateissuing_countrymrzpersonal_numberMRZ ICAO 9303, MRZ vs printed data, Holder, Age, Validity
li_id_cardLiechtenstein identity carddocument_numberfirst_namelast_namesexnationalitybirth_dateissue_dateexpiry_dateissuing_countrymrzplace_of_originMRZ ICAO 9303, MRZ vs printed data, Holder, Age, Validity
fr_residence_permitFrench residence permit (titre de séjour)document_numberfirst_namelast_namesexnationalitybirth_dateissue_dateexpiry_dateissuing_countrymrzpermit_typeremarkspersonal_numberbirth_placeaddressMRZ ICAO 9303, MRZ vs printed data, Holder, Age, Validity
gb_brpUK Biometric Residence Permit (BRP)document_numberfirst_namelast_namesexnationalitybirth_dateissue_dateexpiry_dateissuing_countrymrzpermit_typeremarksbirth_placenational_insurance_numberMRZ ICAO 9303, MRZ vs printed data, National identifiers, Holder, Age, Validity
ad_residence_permitAndorran residence permitdocument_numberfirst_namelast_namesexnationalitybirth_dateissue_dateexpiry_dateissuing_countrytax_idpermit_typeaddressNational identifiers, Holder, Age, Validity
ma_cnieMoroccan national electronic ID card (CNIE)document_numberfirst_namelast_namesexnationalitybirth_dateissue_dateexpiry_dateissuing_countrymrzbirth_placeaddresscan_numberMRZ ICAO 9303, MRZ vs printed data, National identifiers, Holder, Age, Validity
pt_driving_licencePortuguese driving licencedocument_numberlast_namefirst_namebirth_datebirth_placeissue_dateexpiry_dateissuing_authoritypersonal_numberissuing_countrycategoriescategory_detailsHolder, Age, Validity
fr_driving_licenceFrench driving licencedocument_numberlast_namefirst_namebirth_datebirth_placeissue_dateexpiry_dateissuing_authoritypersonal_numberissuing_countrycategoriescategory_detailsHolder, Age, Validity
it_driving_licenceItalian driving licencedocument_numberlast_namefirst_namebirth_datebirth_placeissue_dateexpiry_dateissuing_authoritypersonal_numberissuing_countrycategoriescategory_detailsHolder, Age, Validity
de_driving_licenceGerman driving licencedocument_numberlast_namefirst_namebirth_datebirth_placeissue_dateexpiry_dateissuing_authoritypersonal_numberissuing_countrycategoriescategory_detailsHolder, Age, Validity
nl_driving_licenceDutch driving licencedocument_numberlast_namefirst_namebirth_datebirth_placeissue_dateexpiry_dateissuing_authoritypersonal_numberissuing_countrycategoriescategory_detailsNational identifiers, Holder, Age, Validity
gb_driving_licenceUK driving licence (photocard)document_numberlast_namefirst_namebirth_datebirth_placeissue_dateexpiry_dateissuing_authoritypersonal_numberissuing_countrycategoriescategory_detailsaddresspostal_codeNational identifiers, Postal code, Holder, Age, Validity
it_health_cardItalian health insurance card (tessera sanitaria)tax_codedocument_numberfirst_namelast_namesexbirth_datebirth_placeprovinceexpiry_dateNational identifiers, Holder, Age, Validity
fr_health_cardFrench health insurance card (Carte Vitale)social_security_numberdocument_numberfirst_namelast_nameissue_dateNational identifiers, Holder
at_ecardAustrian e-cardsocial_security_numberdocument_numberfirst_namelast_namebirth_dateexpiry_dateNational identifiers, Holder, Age, Validity
ch_health_insurance_cardSwiss health insurance cardsocial_security_numberdocument_numberinsurerfirst_namelast_namebirth_dateexpiry_dateNational identifiers, Holder, Age, Validity
dk_health_cardDanish health insurance card (sundhedskort)document_numberfirst_namelast_nameaddressdoctorissue_dateNational identifiers, Holder
ie_pps_cardIrish Public Services Carddocument_numberpersonal_numberfirst_namelast_nameexpiry_dateNational identifiers, Holder, Validity
de_tax_id_noticeGerman tax ID notice (Steuer-IdNr)holder_nametax_idbirth_dateaddressissue_dateNational identifiers, Holder
es_payslipSpanish payslip (nómina)companyemployeeperiod_startperiod_enddaysaccrualstotal_accrueddeductionstotal_deductionsnet_payirpf_percentcontribution_basespayment_dateibanNational identifiers, Holder, Recency, IBAN
es_work_historySpanish employment history report (vida laboral)holder_nameholder_idissue_datesocial_security_numberbirth_datetotal_daysperiodscsv_codeNational identifiers, Holder, Recency, Secure verification code, PDF electronic signature
es_aeat_tax_compliance_certificateSpanish tax compliance certificate (AEAT)holder_nameholder_idissue_datepurposeresultis_compliantcsv_codeNational identifiers, Holder, Recency, Secure verification code, PDF electronic signature
es_social_security_compliance_certificateSpanish Social Security compliance certificateholder_nameholder_idissue_datecccis_compliantcsv_codeNational identifiers, Holder, Recency, PDF electronic signature
es_self_employed_fee_receiptSpanish self-employed contribution receipt (RETA)holder_nameholder_idsocial_security_numberperiodcontribution_baseamountpayment_dateibanreceipt_numberNational identifiers, Holder, Recency, IBAN
es_aeat_census_certificateSpanish tax census status certificate (AEAT)holder_nameholder_idissue_datetax_addressactivitiesvat_regimeincome_tax_regimeregistration_datecsv_codeNational identifiers, Holder, Recency, Secure verification code, PDF electronic signature
es_aeat_tax_id_cardSpanish tax identification card (NIF)holder_nameholder_idtax_addressissue_datecsv_codeNational identifiers, Holder, Secure verification code, PDF electronic signature
es_income_tax_returnSpanish personal income tax return (form 100)tax_yearholder_nameholder_idspouse_idjointgeneral_tax_basesavings_tax_basetotal_tax_dueresultreceipt_numberfiling_datecsv_codeNational identifiers, Holder, Secure verification code
es_aeat_income_certificateSpanish income tax certificate (AEAT)holder_nameholder_idissue_datetax_yearhas_filedgeneral_tax_basesavings_tax_basetotal_incomecsv_codeNational identifiers, Holder, Recency, Secure verification code, PDF electronic signature
es_social_security_number_documentSpanish Social Security number document (NUSS)holder_nameholder_idissue_datesocial_security_numberbirth_datecsv_codeNational identifiers, Holder, PDF electronic signature
es_health_cardSpanish health card (tarjeta sanitaria)document_numberfirst_namelast_namesocial_security_numberhealth_serviceexpiry_dateHolder
es_vehicle_registrationSpanish vehicle registration certificateplate_numberfirst_registration_dateholder_nameholder_idaddressmakemodelvinissue_dateNational identifiers, Holder
mx_ineMexican INE voter ID carddocument_numberfirst_namelast_namesexbirth_datecurpelector_keyocr_numberaddresssectionregistration_yearissue_dateexpiry_datemrzMRZ ICAO 9303, MRZ vs printed data, National identifiers, Holder, Age, Validity
ar_dniArgentine national ID card (DNI)document_numberfirst_namelast_namesexnationalitybirth_dateissue_dateexpiry_dateissuing_countrymrzprocedure_numbercopycuilbirth_placeaddressMRZ ICAO 9303, MRZ vs printed data, National identifiers, Holder, Age, Validity
co_cedulaColombian citizenship card (cédula de ciudadanía)document_numberfirst_namelast_namesexnationalitybirth_dateissue_datebirth_placeissue_placeheightblood_typeNational identifiers, Holder, Age
co_cedula_digitalColombian digital ID card (cédula digital)document_numberfirst_namelast_namesexnationalitybirth_dateissue_dateexpiry_dateissuing_countrymrzbirth_placeissue_placeblood_typeMRZ ICAO 9303, MRZ vs printed data, National identifiers, Holder, Age, Validity
cl_cedulaChilean identity card (cédula de identidad)document_numberfirst_namelast_namesexnationalitybirth_dateissue_dateexpiry_dateissuing_countrymrzrunbirth_placeprofessionMRZ ICAO 9303, MRZ vs printed data, National identifiers, Holder, Age, Validity
pe_dniPeruvian national ID card (DNI)document_numberfirst_namelast_namesexnationalitybirth_dateissue_dateexpiry_dateissuing_countrymrzcheck_digitubigeomarital_statusaddressMRZ ICAO 9303, MRZ vs printed data, National identifiers, Holder, Age, Validity
pe_dniePeruvian electronic ID card (DNIe)document_numberfirst_namelast_namesexnationalitybirth_dateissue_dateexpiry_dateissuing_countrymrzcheck_digitubigeoaddressMRZ ICAO 9303, MRZ vs printed data, National identifiers, Holder, Age, Validity
ve_cedulaVenezuelan identity card (cédula de identidad)document_numberfirst_namelast_namesexnationalitybirth_dateissue_dateexpiry_datemarital_statusNational identifiers, Holder, Age, Validity
ec_cedulaEcuadorian identity card (cédula de identidad)document_numberfirst_namelast_namesexnationalitybirth_dateissue_dateexpiry_datebirth_placefingerprint_codemarital_statusNational identifiers, Holder, Age, Validity
uy_ciUruguayan identity card (cédula de identidad)document_numberfirst_namelast_namesexnationalitybirth_dateissue_dateexpiry_dateissuing_countrymrzbirth_placeMRZ ICAO 9303, MRZ vs printed data, National identifiers, Holder, Age, Validity
br_rgBrazilian identity card (RG)document_numberfirst_namelast_namebirth_dateissue_dateissuing_stateissuing_authoritycpffather_namemother_namebirth_placeNational identifiers, Holder, Age
br_cinBrazilian National Identity Card (CIN)document_numberfirst_namelast_namesexnationalitybirth_dateissue_dateexpiry_dateissuing_countrymrzissuing_statemother_namefather_namebirth_placeMRZ ICAO 9303, MRZ vs printed data, National identifiers, Holder, Age, Validity
bo_ciBolivian identity card (cédula de identidad)document_numberfirst_namelast_namesexnationalitybirth_dateissue_dateexpiry_dateextensionbirth_placeNational identifiers, Holder, Age, Validity
py_ciParaguayan identity card (cédula de identidad)document_numberfirst_namelast_namesexnationalitybirth_dateissue_dateexpiry_datebirth_placeNational identifiers, Holder, Age, Validity
do_cedulaDominican identity and voter card (cédula)document_numberfirst_namelast_namesexnationalitybirth_dateissue_dateexpiry_datebirth_placemarital_statusNational identifiers, Holder, Age, Validity
gt_dpiGuatemalan ID card (DPI)document_numberfirst_namelast_namesexnationalitybirth_dateissue_dateexpiry_dateaddressHolder, Age, Validity
cr_cedulaCosta Rican identity card (cédula)document_numberfirst_namelast_namesexnationalitybirth_dateissue_dateexpiry_dateaddressHolder, Age, Validity
pa_cedulaPanamanian identity card (cédula)document_numberfirst_namelast_namesexnationalitybirth_dateissue_dateexpiry_dateaddressHolder, Age, Validity
sv_duiSalvadoran ID card (DUI)document_numberfirst_namelast_namesexnationalitybirth_dateissue_dateexpiry_dateaddressHolder, Age, Validity
hn_dniHonduran ID card (DNI)document_numberfirst_namelast_namesexnationalitybirth_dateissue_dateexpiry_dateaddressHolder, Age, Validity
br_cnhBrazilian driver's license (CNH)document_numberfirst_namelast_namebirth_dateissue_dateexpiry_datecategoriesrestrictionsaddressissuing_authoritycpfrgfirst_licence_datemother_nameNational identifiers, Holder, Age, Validity
mx_driver_licenseMexican driver's licensedocument_numberfirst_namelast_namebirth_dateissue_dateexpiry_datecategoriesrestrictionsaddressissuing_authorityissuing_statecurpNational identifiers, Holder, Age, Validity
ar_driver_licenseArgentine national driver's licensedocument_numberfirst_namelast_namebirth_dateissue_dateexpiry_datecategoriesrestrictionsaddressissuing_authorityNational identifiers, Holder, Age, Validity
co_driver_licenseColombian driver's licensedocument_numberfirst_namelast_namebirth_dateissue_dateexpiry_datecategoriesrestrictionsaddressissuing_authorityblood_typeNational identifiers, Holder, Age, Validity
cl_driver_licenseChilean driver's licensedocument_numberfirst_namelast_namebirth_dateissue_dateexpiry_datecategoriesrestrictionsaddressissuing_authorityNational identifiers, Holder, Age, Validity
mx_curp_certificateMexican CURP certificatecurpholder_namebirth_datebirth_statesexnationalityregistration_documentissue_dateNational identifiers, Holder, Recency
mx_rfc_certificateMexican tax status certificate (constancia de situación fiscal)rfccurpholder_nameid_ciftax_regimesstatusoperations_start_dateaddresspostal_codeissue_dateNational identifiers, Postal code, Holder, Recency, PDF electronic signature
ar_cuil_cuit_certificateArgentine CUIL/CUIT certificatetax_idholder_nameholder_idtax_statusaddressissue_dateNational identifiers, Holder, Recency
co_rutColombian tax registration (RUT)tax_idholder_nameeconomic_activityresponsibilitiesaddressissue_dateNational identifiers, Holder, Recency
cl_rut_certificateChilean tax ID certificate (e-RUT)tax_idholder_nameactivity_start_dateaddressissue_dateNational identifiers, Holder, Recency
br_cpf_cardBrazilian CPF registration proofcpfholder_namebirth_datestatusissue_datecontrol_codeNational identifiers, Holder, Recency
br_cnpj_cardBrazilian CNPJ registration cardcnpjcompany_nametrade_nameopening_datelegal_naturemain_activityaddresspostal_codestatusissue_dateNational identifiers, Postal code, Recency
us_driver_licenseUS driver licensedocument_numberissuing_statefirst_namemiddle_namelast_namename_suffixbirth_dateissue_dateexpiry_datesexheightweighteye_colorhair_coloraddresspostal_codereal_id_compliantddorgan_donorveteranunder_21_untilfederal_limits_applyclassrestrictionsendorsementscommercialpermit_typebarcode_dataPDF417 barcode (AAMVA), National identifiers, Postal code, Holder, Age, Validity, Form I-9
us_state_idUS state ID carddocument_numberissuing_statefirst_namemiddle_namelast_namename_suffixbirth_dateissue_dateexpiry_datesexheightweighteye_colorhair_coloraddresspostal_codereal_id_compliantddorgan_donorveteranunder_21_untilfederal_limits_applybarcode_dataPDF417 barcode (AAMVA), National identifiers, Postal code, Holder, Age, Validity, Form I-9
us_passport_bookUS passport bookdocument_numberfirst_namelast_namesexnationalitybirth_dateissue_dateexpiry_dateissuing_countrymrzbirth_placeissuing_authorityMRZ ICAO 9303, MRZ vs printed data, Holder, Age, Validity, Form I-9
us_passport_cardUS passport carddocument_numberfirst_namelast_namesexnationalitybirth_dateissue_dateexpiry_dateissuing_countrymrzbirth_placeMRZ ICAO 9303, MRZ vs printed data, Holder, Age, Validity, Form I-9
us_permanent_resident_cardUS permanent resident card (green card)document_numberuscis_numberfirst_namelast_namesexbirth_datecountry_of_birthcategoryissue_dateexpiry_datenationalitymrzMRZ ICAO 9303, MRZ vs printed data, National identifiers, Holder, Age, Validity, Form I-9
us_eadUS Employment Authorization Document (EAD, Form I-766)document_numberuscis_numberfirst_namelast_namesexbirth_datecountry_of_birthcategoryissue_dateexpiry_datenationalitymrztermsMRZ ICAO 9303, MRZ vs printed data, National identifiers, Holder, Age, Validity, Form I-9
us_foreign_passport_i551Foreign passport with temporary I-551 stampdocument_numberfirst_namelast_namesexnationalitybirth_dateissue_dateexpiry_dateissuing_countrymrzuscis_numberstamp_expiry_dateMRZ ICAO 9303, MRZ vs printed data, National identifiers, Holder, Age, Validity, Form I-9
us_i94US Arrival/Departure Record (Form I-94)admission_numberfirst_namelast_namebirth_datepassport_numbercountry_of_issuancearrival_dateclass_of_admissionadmit_until_dateHolder, Age, Validity, Form I-9
us_ssn_cardUS Social Security cardssnholder_namerestrictionsignature_presentNational identifiers, Holder, Form I-9
us_birth_certificateUS birth certificateholder_namebirth_datebirth_placeissuing_statesexmother_namefather_namecertificate_numberregistration_dateissue_dateissuing_authorityseal_presentHolder, Form I-9
us_consular_birth_reportConsular Report of Birth Abroad (FS-240)holder_namebirth_datebirth_placesexform_typecertificate_numberissue_dateparentsHolder, Form I-9
us_school_idUS school ID card with photodocument_numberfirst_namelast_nameinstitutionissue_dateexpiry_dateHolder, Form I-9
us_voter_registration_cardUS voter registration carddocument_numberfirst_namelast_namebirth_dateissuing_statecountyaddressprecinctpartyissue_dateHolder, Age, Form I-9
us_military_idUS military ID carddocument_numberfirst_namelast_namebirth_datebranchrankcard_typeissue_dateexpiry_dateHolder, Age, Validity, Form I-9
us_tribal_documentNative American tribal documentdocument_numberfirst_namelast_namebirth_datetribeissue_dateexpiry_dateHolder, Age, Form I-9
us_citizen_id_cardUS Citizen ID Card (Form I-197)document_numberfirst_namelast_namebirth_dateissue_dateHolder, Age, Form I-9
us_resident_citizen_id_cardIdentification Card for Use of Resident Citizen in the United States (Form I-179)document_numberfirst_namelast_namebirth_dateissue_dateHolder, Age, Form I-9
us_medicare_cardUS Medicare cardholder_namembihospital_part_a_datemedical_part_b_dateNational identifiers, Holder
us_health_insurance_cardUS health insurance cardinsurermember_namemember_idgroup_numberplan_namerx_binrx_pcnrx_grouppayer_ideffective_datecopaysHolder
us_w9IRS Form W-9namebusiness_nametax_classificationexempt_payee_codeaddresspostal_codessneinsignature_presentsignature_dateform_revisionNational identifiers, Postal code, Holder, Recency
us_w2IRS Form W-2tax_yearemployer_einemployeremployee_ssnemployee_nameemployee_addresswagesfederal_income_tax_withheldsocial_security_wagessocial_security_tax_withheldmedicare_wagesmedicare_tax_withheldstatestate_wagesstate_income_taxNational identifiers, Holder
us_1099_necIRS Forms 1099tax_yearpayer_namepayer_addresspayer_tinrecipient_namerecipient_tinrecipient_addressaccount_numbernonemployee_compensationfederal_income_tax_withheldstatestate_incomestate_tax_withheldNational identifiers, Holder
us_1099_miscIRS Form 1099-MISCtax_yearpayer_namepayer_addresspayer_tinrecipient_namerecipient_tinrecipient_addressaccount_numberrentsroyaltiesother_incomemedical_paymentsattorney_proceedsfederal_income_tax_withheldstatestate_incomestate_tax_withheldNational identifiers, Holder
us_1099_intIRS Form 1099-INTtax_yearpayer_namepayer_addresspayer_tinrecipient_namerecipient_tinrecipient_addressaccount_numberinterest_incomeearly_withdrawal_penaltyus_savings_bonds_interesttax_exempt_interestfederal_income_tax_withheldstatestate_incomestate_tax_withheldNational identifiers, Holder
us_irs_ein_letterIRS EIN assignment letter (CP 575 / 147C)business_nameeinaddresspostal_codenotice_typeissue_dateNational identifiers, Postal code
us_paystubUS pay stubemployer_nameemployer_addressemployee_nameemployee_idssn_last4pay_period_startpay_period_endpay_datepay_frequencyhoursrategross_paynet_payytd_grossytd_netdeductionsHolder, Recency
us_bank_statementUS bank statementbank_nameaccount_holderaddresspostal_codeaccount_numberrouting_numberaccount_typeperiod_startperiod_endopening_balanceclosing_balancetotal_depositstotal_withdrawalstransactionsNational identifiers, Postal code, Holder, Recency
us_utility_billUS utility billproviderservice_typeaccount_holderaccount_numberservice_addresspostal_codeissue_datedue_dateservice_period_startservice_period_endamount_dueNational identifiers, Postal code, Holder, Recency
acord_25ACORD 25 Certificate of Liability Insurancecertificate_datecertificate_numberrevision_numberproducerinsuredinsurerspoliciespolicy_expiry_datedescription_of_operationscertificate_holderauthorized_representativeHolder, Validity
us_vehicle_registrationUS vehicle registrationissuing_stateplate_numbervinmakemodelmodel_yearowner_nameaddresspostal_codeissue_dateexpiry_dateNational identifiers, Postal code, Holder, Validity
us_i9_formUSCIS 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_editionNational identifiers, Holder, Age
ca_driver_licenceCanadian driver's licencedocument_numberissuing_provincefirst_namelast_namebirth_dateissue_dateexpiry_datesexheightaddresspostal_codeddclassconditionsbarcode_dataPDF417 barcode (AAMVA), National identifiers, Postal code, Holder, Age, Validity, Form I-9
ca_photo_id_cardCanadian provincial photo ID carddocument_numberissuing_provincefirst_namelast_namebirth_dateissue_dateexpiry_datesexheightaddresspostal_codeddbarcode_dataPDF417 barcode (AAMVA), National identifiers, Postal code, Holder, Age, Validity
ca_pr_cardCanadian Permanent Resident Carddocument_numberfirst_namelast_namesexnationalitybirth_dateissue_dateexpiry_dateissuing_countrymrzucicountry_of_birthresident_sinceMRZ ICAO 9303, MRZ vs printed data, Holder, Age, Validity
ca_sinCanadian Social Insurance Number (SIN) confirmationsinholder_nameissue_dateexpiry_dateNational identifiers, Holder
ca_health_cardCanadian provincial health carddocument_numberversion_codeissuing_provincefirst_namelast_namebirth_datesexissue_dateexpiry_dateHolder, Age, Validity
ehicEuropean Health Insurance Card (EHIC)last_namefirst_namebirth_datepersonal_numberinstitutiondocument_numberexpiry_dateissuing_countryHolder, Age, Validity
vaccination_certificateVaccination certificateholder_nameholder_idbirth_datecertificate_idissuerissue_datevaccinationsqr_presentHolder
criminal_record_certificateCriminal record certificateholder_nameholder_idissue_datebirth_datecountryissuing_authorityhas_recordspurposeverification_codeHolder, Recency
academic_degreeAcademic degree certificateholder_nameholder_idbirth_datedegree_titlefield_of_studylevelinstitutioncountrycompletion_dateissue_dateregistry_numberHolder
academic_transcriptAcademic transcriptholder_nameholder_idinstitutionprogramcoursesaverage_gradeissue_dateHolder, Recency
birth_certificateBirth certificateholder_namebirth_datebirth_placesexmother_namefather_nameregistryregistry_referencecountryissue_dateHolder
marriage_certificateMarriage certificatespouse_1_namespouse_2_namemarriage_datemarriage_placeregistryregistry_referencecountryissue_dateHolder
notarial_deedNotarial deeddeed_typenotary_namenotary_locationprotocol_numberdeed_datepartiessubjectamountcopy_typecsv_codecountry-
power_of_attorneyPower of attorneygrantorattorneyspowersscopejoint_actionnotary_nameprotocol_numbergrant_datevalid_untilcountryHolder
company_registry_extractCompany registry extractcompany_nameregistration_numbertax_idlegal_formregistered_officeincorporation_dateshare_capitalstatusdirectorsregistrycountryissue_dateNational identifiers, Recency
tax_residence_certificateTax residence certificateholder_nameholder_idissue_datecountrytax_yeartreatyissuing_authorityverification_codeHolder, Recency
rental_agreementRental agreementlandlordtenantsproperty_addresscadastral_referencestart_dateend_datemonthly_rentcurrencydepositsignature_datesignatures_present-
utility_billUtility billsuppliersupplier_tax_idservice_typeholder_nameholder_idsupply_addresspostal_codecountrycupscontract_numberinvoice_numberissue_dateperiod_startperiod_endamountcurrencyNational identifiers, Postal code, Holder, Recency
bank_statementBank statementbank_nameaccount_holderaddressibanbicperiod_startperiod_endopening_balanceclosing_balancecurrencytransactionsNational identifiers, IBAN, Holder, Recency
payslipPayslipemployer_nameemployer_tax_idemployee_nameemployee_idsocial_security_numberperiod_startperiod_endpay_dategross_paytotal_deductionsnet_paycurrencyHolder, Recency
employment_contractEmployment contractemployeremployeepositioncontract_typestart_dateend_dateworking_hourssalarysalary_periodcurrencysignature_datesignatures_presentHolder
genericAny other document--
us_acord_25Certificate 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.type and verdict.expected repeats your list.
  • If a catalogue type is recognised that is not in the list, the verdict is invalid with the type_mismatch reason.
  • If the document cannot be identified (generic) or classification confidence is below 0.5, the reason is type_unknown and the verdict review.

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}.

identity.ts
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

On this page