> ## Documentation Index
> Fetch the complete documentation index at: https://docs.didit.me/llms.txt
> Use this file to discover all available pages before exploring further.

# ID Verification Methods

> Verify identity three ways in one feature: document capture, a non-document lookup against an authoritative source, or a digital ID wallet sign-in.

ID Verification is one feature with three methods. You choose which methods a country may use; the end user gets whichever of them apply to the country they pick, and the session records which method actually produced the result.

| Method               | What the user does                                                                                                     | Assurance tier |
| -------------------- | ---------------------------------------------------------------------------------------------------------------------- | -------------- |
| **Document capture** | Photographs their passport, ID card, driver's licence or residence permit                                              | Documentary    |
| **Non-doc lookup**   | Types their national ID number plus a few personal details, checked against a government or other authoritative source | Data match     |
| **Wallet**           | Signs in with a government or bank digital identity such as MitID, BankID or itsme                                     | Cryptographic  |

Document capture is unchanged. Everything you already configure through [`documents_allowed`](/management-api/workflows/feature-configs) — accepted types, subtypes, capture rules, thresholds, warnings — keeps working exactly as before, and a workflow that says nothing about methods stays document capture only.

## How each method works

### Document capture

What the rest of this section documents: the user photographs the document, Didit reads it, checks it for authenticity and returns the extracted fields. Available in every country Didit supports, at \$0.15 per check with the first 500 checks each month free. Start at the [ID Verification overview](/core-technology/id-verification/overview).

### Non-doc lookup

The user types their national ID number and a few personal details, and Didit checks them against the authoritative source for that country. No photograph of a document is involved.

That source is a government register in most countries, but not in all of them: in Canada, France, Indonesia, the Netherlands, Norway, Singapore, the United Kingdom and the United States it is a credit-bureau, financial-services, utility or residential-records file instead. Because provenance and the applicable consent regime differ with it, the exact source is named per country in the table below and on [Non-document lookup](/core-technology/id-verification/non-doc-lookup) — never generalised.

Where the source returns a portrait — South Africa, Nigeria, Argentina and Panama today, all four government registers — the user is also asked for a selfie. Passive liveness runs on that selfie and it is face-matched to the registry portrait, all inside the lookup and all inside the lookup price. Where the source returns data only there is nothing to face-match against, so no selfie is taken; run [Liveness](/core-technology/liveness/overview) and [Face Match](/core-technology/face-match/overview) as their own workflow steps if you need them.

Full per-country request fields, format rules and consent regimes are on [Non-document lookup](/core-technology/id-verification/non-doc-lookup).

### Wallet

The user signs in with a digital identity they already hold — a national eID or a bank identity. The wallet authenticates them, then shares a signed set of attributes with Didit. Nothing is photographed and nothing is typed.

Same-device sign-in hands the user to the wallet app and back; cross-device sign-in shows a QR code they scan with their phone. Per-wallet attributes, assurance levels and failure semantics are on [Digital ID wallets](/core-technology/id-verification/digital-id-wallets).

## Assurance tiers

Every ID Verification result carries an assurance tier derived from the method that produced it. The tier is an honest description of what was actually proven, not a ranking:

| Tier          | Value on the session | What it means                                                                                              |
| ------------- | -------------------- | ---------------------------------------------------------------------------------------------------------- |
| Documentary   | `documentary`        | A physical document was captured, read and checked for authenticity.                                       |
| Data match    | `data_match`         | The details the user gave matched a record held by the source that was queried. No document was inspected. |
| Cryptographic | `cryptographic`      | A digital identity provider authenticated the user and signed the attributes it shared.                    |

<Note>
  Assurance tiers are an admin-facing label. They appear on the session payload, in the console and in exports. End users never see the tier, the price or the name of the source that was queried.
</Note>

## Configuring methods per country

Methods live under the `methods` key on the ID Verification (`OCR`) feature config, keyed by [ISO 3166-1 alpha-3](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3) country code. Omit the key, omit a country, or omit a method inside a country, and that country is document capture only.

```json theme={null}
{
  "feature": "OCR",
  "config": {
    "methods": {
      "ZAF": {
        "document": { "enabled": true },
        "id_lookup": {
          "enabled": true,
          "max_attempts": 2,
          "skip_liveness_and_face_match": true,
          "on_partial_match": "fallback_to_document",
          "on_no_match": "fallback_to_document",
          "on_provider_error": "fallback_to_document"
        },
        "wallet": { "enabled": false, "providers": [], "on_failure": "fallback_to_document" }
      },
      "DNK": {
        "document": { "enabled": true },
        "wallet": { "enabled": true, "providers": ["mitid"], "on_failure": "fallback_to_document" }
      }
    }
  }
}
```

Two rules the API enforces on save:

* **Availability is server-driven.** A method or a wallet that the capability catalog does not mark `available` for that country is rejected. Read the catalog first — through the console's **Countries** tab, or with the [`didit_workflow_get_id_verification_methods_catalog`](/integration/mcp/tools) MCP tool.
* **Wallets are an accept-list, never a ranking.** `providers` says which wallets a country may offer. The order you send has no meaning and is normalised away; the end user picks.

The full field-by-field reference, including defaults and validation, is in [Workflow feature configs](/management-api/workflows/feature-configs#ocr--id-verification).

## Fallback: what happens when a non-document method does not land

Four switches decide what happens next. Each one is either `fallback_to_document` (send the user to document capture) or `decline` (end the session with a declined ID Verification). All four default to `fallback_to_document`.

| Switch                        | Fires when                                             |
| ----------------------------- | ------------------------------------------------------ |
| `id_lookup.on_partial_match`  | The register answered, but some fields did not match.  |
| `id_lookup.on_no_match`       | The register answered and found no matching record.    |
| `id_lookup.on_provider_error` | The register could not be reached or did not answer.   |
| `wallet.on_failure`           | The wallet sign-in was cancelled, timed out or failed. |

`id_lookup.max_attempts` (1 to 5, default 1) is how many answered lookups the user gets before the switch fires. A number that fails the client-side format check never reaches the register, so it does not consume an attempt — the user is simply asked to correct it.

If a switch says `fallback_to_document` but document capture is disabled for that country, the session is declined instead: there is nowhere to fall back to. A decline records `fallback_from` on the declined ID Verification, naming the method that failed and why.

## What each method costs

| Method           | Price              | Free tier                   |
| ---------------- | ------------------ | --------------------------- |
| Document capture | \$0.15 per check   | First 500 checks each month |
| Non-doc lookup   | Priced per country | —                           |
| Wallet           | Priced per wallet  | —                           |

The 500 free checks a month are scoped to document capture. Non-document methods are priced per country and per wallet and are not part of that allowance; see [Pricing](/getting-started/pricing) for the current published figures.

### Billing rules

* **A register that answered bills the lookup.** Match, partial match and no match all count — the query was run and the answer is the product.
* **A register that never answered is not billed.** A provider error costs nothing.
* **A number that fails the client-side format check is never billed** and never counted against `max_attempts`, because it never reached the register.
* **Document capture bills on top when the user falls back.** A lookup that answered and then fell back to a document is two charges, because two checks ran.
* **An abandoned, cancelled, timed-out or failed wallet sign-in is not billed.** Only a completed sign-in is.

## Coverage

Document capture is available in every country Didit supports and is not repeated below: \$0.15 per check, first 500 a month free. This table lists only the countries where a **non-document** method exists. A country that is not listed, or a cell that reads Not planned, is document capture only.

| Country              | Code  | Non-doc lookup                                                     | Digital ID wallets                                                                             |
| -------------------- | ----- | ------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------- |
| Argentina            | `ARG` | Available — RENAPER                                                | Not planned                                                                                    |
| Austria              | `AUT` | Not planned                                                        | EUDI Wallet (coming soon)                                                                      |
| Belgium              | `BEL` | Not planned                                                        | itsme (coming soon), Smart-ID (coming soon), EUDI Wallet (coming soon)                         |
| Bolivia              | `BOL` | Available — SEGIP                                                  | Not planned                                                                                    |
| Brazil               | `BRA` | Available — Receita Federal                                        | gov.br (coming soon)                                                                           |
| Bulgaria             | `BGR` | Not planned                                                        | EUDI Wallet (coming soon)                                                                      |
| Cambodia             | `KHM` | Available — Ministry of Interior voter register                    | Not planned                                                                                    |
| Canada               | `CAN` | Available — Canadian credit bureau records (FINTRAC dual-process)  | Not planned                                                                                    |
| Chile                | `CHL` | Available — Servicio de Registro Civil e Identificación            | Not planned                                                                                    |
| China                | `CHN` | Available — NCIIC (National Citizen Identity Information Center)   | Not planned                                                                                    |
| Colombia             | `COL` | Available — Registraduría General de la Nación / ANI               | Not planned                                                                                    |
| Costa Rica           | `CRI` | Available — Tribunal Supremo de Elecciones                         | Not planned                                                                                    |
| Croatia              | `HRV` | Not planned                                                        | EUDI Wallet (coming soon)                                                                      |
| Cyprus               | `CYP` | Not planned                                                        | EUDI Wallet (coming soon)                                                                      |
| Czechia              | `CZE` | Not planned                                                        | Bank iD (coming soon), MojeID (coming soon), EUDI Wallet (coming soon)                         |
| Denmark              | `DNK` | Available — CPR register                                           | MitID (coming soon), EUDI Wallet (coming soon)                                                 |
| Dominican Republic   | `DOM` | Available — Junta Central Electoral                                | Not planned                                                                                    |
| Ecuador              | `ECU` | Available — Registro Civil del Ecuador                             | Not planned                                                                                    |
| El Salvador          | `SLV` | Available — RNPN                                                   | Not planned                                                                                    |
| Estonia              | `EST` | Not planned                                                        | Smart-ID (coming soon), Mobile-ID (coming soon), EUDI Wallet (coming soon)                     |
| Finland              | `FIN` | Available — DVV population register                                | Finnish Trust Network (coming soon), EUDI Wallet (coming soon)                                 |
| France               | `FRA` | Available — French residential and utility records                 | FranceConnect (coming soon), EUDI Wallet (coming soon)                                         |
| Germany              | `DEU` | Not planned                                                        | Personalausweis (coming soon), EUDI Wallet (coming soon)                                       |
| Greece               | `GRC` | Not planned                                                        | EUDI Wallet (coming soon)                                                                      |
| Guatemala            | `GTM` | Available — SAT                                                    | Not planned                                                                                    |
| Honduras             | `HND` | Available — CNE                                                    | Not planned                                                                                    |
| Hungary              | `HUN` | Not planned                                                        | EUDI Wallet (coming soon)                                                                      |
| Iceland              | `ISL` | Not planned                                                        | Auðkenni (coming soon), EUDI Wallet (coming soon)                                              |
| India                | `IND` | Available — UIDAI (Aadhaar)                                        | Not planned                                                                                    |
| Indonesia            | `IDN` | Available — Indonesian population register via residential records | Not planned                                                                                    |
| Ireland              | `IRL` | Not planned                                                        | EUDI Wallet (coming soon)                                                                      |
| Italy                | `ITA` | Not planned                                                        | EUDI Wallet (coming soon)                                                                      |
| Kenya                | `KEN` | Available — IPRS (Integrated Population Registration System)       | Not planned                                                                                    |
| Latvia               | `LVA` | Not planned                                                        | Smart-ID (coming soon), Mobile-ID (coming soon), EUDI Wallet (coming soon)                     |
| Liechtenstein        | `LIE` | Not planned                                                        | EUDI Wallet (coming soon)                                                                      |
| Lithuania            | `LTU` | Not planned                                                        | Smart-ID (coming soon), Mobile-ID (coming soon), EUDI Wallet (coming soon)                     |
| Luxembourg           | `LUX` | Not planned                                                        | itsme (coming soon), EUDI Wallet (coming soon)                                                 |
| Malaysia             | `MYS` | Available — JPN (National Registration Department)                 | Not planned                                                                                    |
| Malta                | `MLT` | Not planned                                                        | EUDI Wallet (coming soon)                                                                      |
| Mexico               | `MEX` | Available — RENAPO                                                 | Not planned                                                                                    |
| Netherlands          | `NLD` | Available — Dutch residential records                              | itsme (coming soon), iDIN (coming soon), EUDI Wallet (coming soon)                             |
| Nigeria              | `NGA` | Available — NIMC / NIBSS                                           | Not planned                                                                                    |
| Norway               | `NOR` | Available — Norwegian residential records                          | BankID (coming soon), Vipps (coming soon), Buypass ID (coming soon), EUDI Wallet (coming soon) |
| Panama               | `PAN` | Available — Tribunal Electoral / SIB                               | Not planned                                                                                    |
| Paraguay             | `PRY` | Available — Registro del Estado Civil                              | Not planned                                                                                    |
| Peru                 | `PER` | Available — RENIEC                                                 | Not planned                                                                                    |
| Poland               | `POL` | Not planned                                                        | EUDI Wallet (coming soon)                                                                      |
| Portugal             | `PRT` | Not planned                                                        | EUDI Wallet (coming soon)                                                                      |
| Romania              | `ROU` | Not planned                                                        | EUDI Wallet (coming soon)                                                                      |
| Singapore            | `SGP` | Available — Singapore credit bureau and utility records            | Not planned                                                                                    |
| Slovakia             | `SVK` | Not planned                                                        | EUDI Wallet (coming soon)                                                                      |
| Slovenia             | `SVN` | Not planned                                                        | EUDI Wallet (coming soon)                                                                      |
| South Africa         | `ZAF` | Available — Department of Home Affairs                             | Not planned                                                                                    |
| Spain                | `ESP` | Not planned                                                        | EUDI Wallet (coming soon)                                                                      |
| Sweden               | `SWE` | Available — Skatteverket population register                       | BankID (coming soon), Freja eID (coming soon), EUDI Wallet (coming soon)                       |
| Thailand             | `THA` | Available — DOPA civil registration                                | Not planned                                                                                    |
| Ukraine              | `UKR` | Not planned                                                        | Diia (coming soon)                                                                             |
| United Arab Emirates | `ARE` | Not planned                                                        | UAE PASS (coming soon)                                                                         |
| United Kingdom       | `GBR` | Available — UK credit bureau and financial services records        | OneID (coming soon), GOV.UK Wallet (coming soon)                                               |
| United States        | `USA` | Available — US credit bureau and financial services records        | Not planned                                                                                    |
| Uruguay              | `URY` | Available — Dirección Nacional del Registro de Estado Civil        | Not planned                                                                                    |
| Venezuela            | `VEN` | Available — CNE                                                    | Not planned                                                                                    |

<Note>
  Coverage is generated from the capability catalog the backend serves, so this table is the same source the console and the API validate against. **Coming soon** means the entry is visible in the console and cannot be switched on yet; it is not a live capability and carries no committed date.
</Note>

## What lands on the session

Every ID Verification result carries the method that produced it, its assurance tier, and — when a non-document method ran — a per-method evidence block. Document sessions read exactly as they did before, with the new keys `null`.

| Field                 | Type           | Description                                                                                                                        |
| --------------------- | -------------- | ---------------------------------------------------------------------------------------------------------------------------------- |
| `verification_method` | string         | `document`, `id_lookup` or `wallet`.                                                                                               |
| `assurance`           | string         | `documentary`, `data_match` or `cryptographic`.                                                                                    |
| `wallet_provider`     | string \| null | Catalog wallet id when a wallet produced the result.                                                                               |
| `id_lookup`           | object \| null | Registry evidence: source, checked-at, attempts, per-field comparison, registry portrait.                                          |
| `wallet_verification` | object \| null | Credential evidence: provider, issuing authority, level of assurance, signature validity, shared attributes.                       |
| `fallback_from`       | object \| null | `{ "method": ..., "reason": ..., "action": ... }` when a non-document method failed and the country's switch declined the session. |

Field-by-field types and examples for all three methods are in the [ID verification data model](/reference/data-models#id-verification), and the same keys arrive on the [`status.updated` webhook](/integration/webhooks).

## Related

* [Non-document lookup](/core-technology/id-verification/non-doc-lookup) — per-country fields, formats, consent and retention
* [Digital ID wallets](/core-technology/id-verification/digital-id-wallets) — per-wallet attributes, assurance and failure semantics
* [ID Verification methods in the console](/console/id-verification-methods) — the Countries tab and the session method chip
* [Workflow feature configs](/management-api/workflows/feature-configs#ocr--id-verification) — the `methods` key reference
