Accepted documents
You decide which documents a verification will accept by passing
allowed_documents to POST /v1/verifications (or by configuring the document
step of a Flow). The applicant then picks one of them on the hosted page. If
you omit it, the applicant gets the default Mozambique surface.
The allowlist
Section titled “The allowlist”allowed_documents is a list of { country, document_type } entries. The
country is an explicit ISO-3166-1 alpha-2 code — wildcards ("*") are
rejected at request time; always pin the countries you accept.
{ "type": "kyc", "allowed_documents": [ { "country": "MZ", "document_type": "bilhete_identidade" }, { "country": "MZ", "document_type": "passport" }, { "country": "PT", "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, then the document type allowed for it.
Three groups
Section titled “Three groups”Every (country, document_type) pair falls into one of three groups. The group
determines what the verification can return — never whether your request is
accepted.
1. Tuned — assessed
Section titled “1. Tuned — assessed”Four documents have per-country tuning: templates, MRZ rules, document-side
profiles, and thresholds. They get the full range of assessments, including
no_material_concerns.
| Country | document_type |
Document |
|---|---|---|
MZ |
bilhete_identidade |
Mozambique Bilhete de Identidade |
MZ |
passport |
Mozambique passport |
MX |
national_id |
Mexico national ID (INE) |
MX |
passport |
Mexico passport |
2. Accepted for manual review, not assessed
Section titled “2. Accepted for manual review, not assessed”The other accepted documents are accepted for manual review, not assessed:
| Country | document_type |
Document |
|---|---|---|
| any explicit country | passport |
ICAO 9303 machine-readable passport |
MZ |
drivers_license |
Carta de condução |
MZ |
dire |
DIRE residence permit |
MX |
drivers_license |
Licencia de conducir |
MX |
residence_permit |
Tarjeta de residente |
A verification with one of them never returns no_material_concerns. Expect
manual_review_recommended with the reason uncalibrated_document_scope, and
review the capture yourself before you act.
So a foreigner resident in Mozambique can still go through your flow with their
home-country passport: list { "country": "PT", "document_type": "passport" }
(or whichever countries you serve) alongside your MZ documents, and plan to
review those verifications.
3. Everything else — not supported
Section titled “3. Everything else — not supported”Any other pair — say a national ID from a country without tuning — is not
rejected at creation, but it is not assessed either: once the applicant
submits, the verification ends failed with assessment_incomplete (and a
verification.failed webhook) without running the checks.
How matching works
Section titled “How matching works”Validation is composed from open standards — no proprietary per-country template database:
- ICAO 9303 MRZ check-digits (TD3) — universal across machine-readable
passports; picking
passportlocks MRZ validation in. - Tuned per-country templates (MZ BI/passport, MX national ID/passport) — format-aware field validation and tuned thresholds.
Adding a document to the tuned group is a registration plus its tuning assets.