Skip to content

Accepted documents

You decide which documents a verification will accept by passing allowed_documents to POST /v1/verifications. The applicant then picks one of them on the hosted page. If you omit it, the applicant gets the default Mozambique + passport surface.

The allowlist

allowed_documents is a list of { country, document_type } entries. The country is an ISO-3166-1 alpha-2 code, or "*" to mean any issuing country (used for passports).

{
"type": "kyc",
"allowed_documents": [
{ "country": "MZ", "document_type": "bilhete_identidade" },
{ "country": "MZ", "document_type": "dire" },
{ "country": "*", "document_type": "passport" }
]
}

The applicant flow follows from the list:

  • One entry → pinned; the applicant goes straight to capture.
  • Multiple → the applicant picks the issuing country first (a searchable list when passports from any country are allowed), then the document type allowed for it.

The foreigner case

{ "country": "*", "document_type": "passport" } lets a foreigner resident in Mozambique verify with their home-country passport, while you still restrict national documents to the countries you choose. That’s the typical mix: accept MZ national IDs or a passport from anywhere.

Document types

document_typeCoverage
passportAny country — ICAO 9303 TD3 machine-readable zone.
national_idAny country — ICAO 9303 TD1 MRZ + per-country number check where available.
bilhete_identidadeMozambique BI (format-aware template).
direMozambique residence permit.

How matching works

Beyond OCR, thibit validates the document against a definition composed from open standards — no proprietary per-country template database:

  • ICAO 9303 MRZ check-digits (TD1/TD2/TD3) — universal across passports and most modern national IDs.
  • Per-country ID-number check-digit validation for 29 countries (e.g. BR, PT, ES, FR, IT, NL, IN, TR, MY, PK, ZA-class schemes); unmapped countries fall back to MRZ + OCR without a hard failure.
  • Country-specific templates (MZ BI/DIRE) are preferred where they exist.

So validation is strong for passports everywhere and for national IDs in those 29 countries + Mozambique, and best-effort (MRZ + OCR) for national IDs elsewhere.