data_match: the details the user gave matched a record that source holds. No document was inspected, so nothing about a document’s authenticity is being claimed.
Which source is queried
Most countries are a government register — the Department of Home Affairs in South Africa, RENAPER in Argentina, UIDAI in India, the CPR register in Denmark. Some are not. In Canada, France, Indonesia, the Netherlands, Norway, Singapore, the United Kingdom and the United States the authoritative record Didit can reach is a credit-bureau, financial-services, utility or residential-records file rather than a state register. That distinction is not cosmetic. It changes what the match proves, which consent regime the query runs under, and what you can tell a regulator about provenance, so this page never generalises: the Source queried column below names the exact source for every country, and it is the only statement of provenance to rely on. Read it before you enable a country.The end user never sees the source name. It is on the session payload (
id_lookup.source), in the console and in exports, for you and your auditors.What the user does
- Picks their country in the ID step.
- Types the fields that country asks for — always the identifier, usually a name, sometimes a date of birth or an address.
- Where the country’s lookup asks for one, takes a selfie.
- Gets a result: verified and moved on, asked to correct the number, retried, sent to document capture, or declined.
Selfies, portraits and a later Face Match step
A lookup establishes the identity from a record. What it leaves behind decides what a Face Match step later in the workflow can compare the user’s live capture against. Every source does one of three things, and the Selfie, liveness and face match column in the table below says which, per country:
Where the source returns a photograph, the user is asked for a selfie, passive liveness runs on it, and it is face-matched to the registry portrait. All three happen inside the lookup and inside the lookup price: there is no separate Liveness or Face Match charge. Because the lookup already proved a live person matching the register’s photograph, the country’s
skip_liveness_and_face_match switch (on by default) lets the workflow skip its own Liveness and Face Match steps after a match. Turn it off to run them anyway.
Where the source checks the selfie itself, as Brazil, Argentina (RENAPER), Nigeria and Panama (the Tribunal Electoral’s biometric service) do, the check returns a verdict, not a portrait. That is not a liveness check, so the switch is normalised off on save and any Liveness and Face Match steps in the workflow still run. On a match, Face Match compares the live capture with the selfie the lookup verified. In Nigeria the user chooses the ID type, and the selfie is checked against the face on record for a NIN and for a BVN alike.
Every other source returns data only, as do the Argentine sources that take no selfie. No selfie is taken and the switch is normalised off on save.
A Face Match step after a method that leaves no photo
A data-only lookup leaves a Face Match step nothing to compare, and so does a digital identity wallet sign-in: even where a wallet shares a portrait, it is not used as the Face Match reference. A Face Match step reached that way cannot pass anyone automatically: every user it sees goes to review or is declined. The workflow editor, and the graph validation every client uses, tell you before you publish:- The workflow cannot be published when, for a country, every path into the Face Match step verifies its users only with methods that leave no photo, and every route out of that ID Verification step leads to the Face Match step. A branch whose outcomes all lead back to Face Match does not change that. Allow document capture for that country, pick a source that returns a photograph or checks the selfie, or remove the Face Match step.
- A warning when it depends on the user: document capture or a source that leaves a photo is offered as well, or a branch after the ID Verification step can send those users to an outcome without Face Match. Users who finish with the data-only method still reach Face Match with nothing to compare.
portrait_image) always has something to compare and is never flagged.
If nothing else in the workflow provides one, Face Match has no reference to compare the live capture against after a data-only match.
It reports that the comparison could not be computed (FACE_MATCH_NOT_COMPUTED, with a null score) rather than declining automatically.
The Face Match step’s face_match_not_computed_action then decides the outcome: In Review by default, or Declined if you set it to DECLINE.
See Face match warnings.
Coverage and pricing
Prices below are public retail USD per answered attempt, checked against the anonymous Database Validation pricing feed on September 11, 2026. They use the services configured for the country. A price is not a production-launch announcement: enable only the methods your application catalog offers. The existing availability snapshot is retained separately from this price refresh. For a country using multiple sources, the table shows their sum when all answer. An answered attempt charges only its billable source responses; a source that did not answer is excluded. Nigeria uses NIN or BVN, not their sum. Custom contract rates can differ and are shown in your console. These are ID-step lookup prices, not a quote for every other Database Validation service offered in that country.Availability comes from the capability catalog the backend serves; the API rejects a workflow that enables a lookup the catalog does not mark
Available for that country. Prices marked On request are not published yet — non-document methods are priced per country and quoted by your account team.Format rules
Identifier fields carry a client-side format check before anything is sent — a length, a digit-only rule, a checksum or a pattern, depending on the country. A number that fails it never reaches the source, which means it is never billed and never counted againstmax_attempts: the user is shown a country-specific message and asked to correct it.
The per-country tables below list the rule for each field. A field with no rule is free text — a name, a date the interface collects, or an image capture.
Get the format right in your own pre-fill and you spend nothing on typos.
Per-country fields
Argentina (ARG)
Source: RENAPER. The lookup also takes a selfie and compares it with the face on record for that identity; that check returns a verdict, not a portrait. It is not a liveness check, so the skip switch stays off: any Liveness and Face Match steps in the workflow still run, and Face Match compares the live capture with that verified selfie.
Bolivia (BOL)
Source: SEGIP. This source returns data only, so there is no portrait to face-match against: a Face Match step later in the workflow has nothing to compare for a user verified this way.
Brazil (BRA)
Source: Receita Federal. The lookup also takes a selfie and compares it with the face on record for that identity; that check returns a verdict, not a portrait. It is not a liveness check, so the skip switch stays off: any Liveness and Face Match steps in the workflow still run, and Face Match compares the live capture with that verified selfie.
Cambodia (KHM)
Source: Ministry of Interior voter register. This source returns data only, so there is no portrait to face-match against: a Face Match step later in the workflow has nothing to compare for a user verified this way.
Canada (CAN)
Source: Canadian credit bureau records (FINTRAC dual-process). This source returns data only, so there is no portrait to face-match against: a Face Match step later in the workflow has nothing to compare for a user verified this way.
Chile (CHL)
Source: Servicio de Registro Civil e Identificación. This source returns data only, so there is no portrait to face-match against: a Face Match step later in the workflow has nothing to compare for a user verified this way.
China (CHN)
Source: NCIIC (National Citizen Identity Information Center). This source returns data only, so there is no portrait to face-match against: a Face Match step later in the workflow has nothing to compare for a user verified this way.
Colombia (COL)
Source: Registraduría General de la Nación / ANI. This source returns data only, so there is no portrait to face-match against: a Face Match step later in the workflow has nothing to compare for a user verified this way.
Costa Rica (CRI)
Source: Tribunal Supremo de Elecciones. This source returns data only, so there is no portrait to face-match against: a Face Match step later in the workflow has nothing to compare for a user verified this way.
Denmark (DNK)
Source: CPR register. This source returns data only, so there is no portrait to face-match against: a Face Match step later in the workflow has nothing to compare for a user verified this way.
Dominican Republic (DOM)
Source: Junta Central Electoral. This source returns data only, so there is no portrait to face-match against: a Face Match step later in the workflow has nothing to compare for a user verified this way.
Ecuador (ECU)
Source: Registro Civil del Ecuador. This source returns data only, so there is no portrait to face-match against: a Face Match step later in the workflow has nothing to compare for a user verified this way.
El Salvador (SLV)
Source: RNPN. This source returns data only, so there is no portrait to face-match against: a Face Match step later in the workflow has nothing to compare for a user verified this way.
Finland (FIN)
Source: DVV population register. This source returns data only, so there is no portrait to face-match against: a Face Match step later in the workflow has nothing to compare for a user verified this way.
France (FRA)
Source: French residential and utility records. This source returns data only, so there is no portrait to face-match against: a Face Match step later in the workflow has nothing to compare for a user verified this way.
Guatemala (GTM)
Source: SAT. This source returns data only, so there is no portrait to face-match against: a Face Match step later in the workflow has nothing to compare for a user verified this way.
Honduras (HND)
Source: CNE. This source returns data only, so there is no portrait to face-match against: a Face Match step later in the workflow has nothing to compare for a user verified this way.
India (IND)
Source: UIDAI (Aadhaar). This source returns data only, so there is no portrait to face-match against: a Face Match step later in the workflow has nothing to compare for a user verified this way.
Indonesia (IDN)
Source: Indonesian population register via residential records. This source returns data only, so there is no portrait to face-match against: a Face Match step later in the workflow has nothing to compare for a user verified this way.
Kenya (KEN)
Source: IPRS (Integrated Population Registration System). This source returns data only, so there is no portrait to face-match against: a Face Match step later in the workflow has nothing to compare for a user verified this way.
Malaysia (MYS)
Source: JPN (National Registration Department). This source returns data only, so there is no portrait to face-match against: a Face Match step later in the workflow has nothing to compare for a user verified this way.
Mexico (MEX)
Source: RENAPO. This source returns data only, so there is no portrait to face-match against: a Face Match step later in the workflow has nothing to compare for a user verified this way.
Netherlands (NLD)
Source: Dutch residential records. This source returns data only, so there is no portrait to face-match against: a Face Match step later in the workflow has nothing to compare for a user verified this way.
Nigeria (NGA)
Source: NIMC / NIBSS. The lookup also takes a selfie and compares it with the face on record for that identity; that check returns a verdict, not a portrait. It is not a liveness check, so the skip switch stays off: any Liveness and Face Match steps in the workflow still run, and Face Match compares the live capture with that verified selfie.
Norway (NOR)
Source: Norwegian residential records. This source returns data only, so there is no portrait to face-match against: a Face Match step later in the workflow has nothing to compare for a user verified this way.
Panama (PAN)
Source: Tribunal Electoral / SIB. The lookup also takes a selfie and compares it with the face on record for that identity; that check returns a verdict, not a portrait. It is not a liveness check, so the skip switch stays off: any Liveness and Face Match steps in the workflow still run, and Face Match compares the live capture with that verified selfie.
Paraguay (PRY)
Source: Registro del Estado Civil. This source returns data only, so there is no portrait to face-match against: a Face Match step later in the workflow has nothing to compare for a user verified this way.
Peru (PER)
Source: RENIEC. This source returns data only, so there is no portrait to face-match against: a Face Match step later in the workflow has nothing to compare for a user verified this way.
Singapore (SGP)
Source: Singapore credit bureau and utility records. This source returns data only, so there is no portrait to face-match against: a Face Match step later in the workflow has nothing to compare for a user verified this way.
South Africa (ZAF)
Source: Department of Home Affairs. The source returns a portrait, so a selfie is taken, passive liveness runs on it and it is face-matched to that portrait inside the lookup.
Sweden (SWE)
Source: Skatteverket population register. This source returns data only, so there is no portrait to face-match against: a Face Match step later in the workflow has nothing to compare for a user verified this way.
Thailand (THA)
Source: DOPA civil registration. This source returns data only, so there is no portrait to face-match against: a Face Match step later in the workflow has nothing to compare for a user verified this way.
United Kingdom (GBR)
Source: UK credit bureau and financial services records. This source returns data only, so there is no portrait to face-match against: a Face Match step later in the workflow has nothing to compare for a user verified this way.
United States (USA)
Source: US credit bureau and financial services records. This source returns data only, so there is no portrait to face-match against: a Face Match step later in the workflow has nothing to compare for a user verified this way.
Uruguay (URY)
Source: Dirección Nacional del Registro de Estado Civil. This source returns data only, so there is no portrait to face-match against: a Face Match step later in the workflow has nothing to compare for a user verified this way.
Venezuela (VEN)
Source: CNE. This source returns data only, so there is no portrait to face-match against: a Face Match step later in the workflow has nothing to compare for a user verified this way.
Zambia (ZMB)
Source: Zambia Revenue Authority. This source returns data only, so there is no portrait to face-match against: a Face Match step later in the workflow has nothing to compare for a user verified this way.
Consent
Several sources may only be queried with the person’s explicit consent, and the consent regime differs by country — POPIA in South Africa, NDPR in Nigeria, LGPD in Brazil, UK GDPR in the United Kingdom, GLBA permissible purpose in the United States, and so on. The regime that applies to each source is in the coverage table above. You are the controller for that consent. Collect it in your own flow, or add a questionnaire step before the ID step, and keep the record — Didit runs the query you asked for and does not judge whether you had the right to ask for it. Where a country’s source requires consent wording of its own, the verification UI shows it before the lookup runs.Attempts, outcomes and billing
Each answered lookup counts as one attempt.max_attempts is 1 to 5, default 1.
Each billable answered attempt sums the retail rates of the services that answered with a match, partial match or no match. Retries are new attempts and can add another charge. An attempt that ends in a provider error is not billed. Format rejection is not billed.
The first 500 document-capture checks per organization each month do not cover lookup attempts. If lookup falls back to document capture, the completed document check is billed separately, subject to its remaining document allowance. Disabling fallback declines the session; it does not refund a completed lookup. Sandbox scenarios simulate outcomes without paid registry queries or usage charges.
What lands on the session
A lookup that matched populates the ID Verification result the same way a document read would — name, date of birth and the national identifier — and adds anid_lookup evidence block:
comparison carries one row per comparable field, with result of match, partial or no_match, so a reviewer can see exactly which field disagreed. The row names are normalised — identification_number, full_name, date_of_birth, address — not the country’s request field keys, because a first name and a last name are compared as one name and every identifier alias is compared as one number.
The current staging response keeps source failures in a separate source_errors array. Its entries can contain service_id, code, message, details and outcome_detail when supplied. Treat these as query diagnostics, not identity mismatches. Earlier releases may represent source failures as comparison rows with result: "error"; confirm the contract deployed in your target environment.
registry_portrait is present only for a source that returns a portrait, when the selected response fields retain it; face_match_score is then the comparison of the selfie with that portrait. A source that checks the selfie itself (RENAPER in Argentina, Nigeria) returns no portrait, and face_match_score is the score it reported for its own check.
Full field types are in the ID verification data model.
Retention
The source record that produced a match is stored as the ID Verification result and follows your organization’s data retention settings, exactly like a document read. Deleting a session deletes it; see Delete session.Related
- ID Verification methods — the three methods, fallback and billing
- Digital ID wallets — the cryptographic method
- Database Validation — the standalone feature for checking a document you already captured against a source
- Workflow feature configs — the
methodskey reference