
# Countries & ID types

When creating a verification you pass a `country` and an `idType`. Coverage comes in two tiers:

- **Government-database markets**: `NG`, `GH`, `KE`, `ZA`, `CI`. Full catalogue, **including number-only IDs** (BVN, NIN, …), validated against the source government database. Strongest assurance.
- **Global documents**: **any other ISO-3166 country** verifies via document capture (Document Intelligence): `passport`, `drivers-license`, and `national-id`. No government database sits behind these, so they reach the `document` assurance tier (a passport can still reach the stronger `chip` tier via its NFC chip).

For the full geographic list, including the 48 [business (KYB)](https://trust.myaza.co/documentation/business-verification/markdown) registry countries, see [Supported countries](https://trust.myaza.co/documentation/countries/markdown).

> The **authoritative** list for your organisation comes from [`GET /config`](https://trust.myaza.co/documentation/api-config/markdown); it returns only the countries and ID types **enabled for your account** and their feature flags. New countries and ID types reach your organisation only when Myaza grants them. Use the catalogue below for reference; use `/config` at runtime.

> **SDK availability.** Global-document countries are available via the API and **all three SDKs** (web, React Native, Flutter). See [Feature availability](https://trust.myaza.co/documentation/sdks/markdown#feature-availability).

## Assurance levels

Every passing verification carries an **`assuranceLevel`** telling you *how strongly* the identity was proven, surfaced on the [status](https://trust.myaza.co/documentation/api-verification-status/markdown) response, the [webhook](https://trust.myaza.co/documentation/webhooks/markdown) payload, and workflow [decisioning](https://trust.myaza.co/documentation/decisioning/markdown):

| `assuranceLevel` | How it passed |
|---|---|
| `chip` | The document's [NFC chip](https://trust.myaza.co/documentation/nfc-chip/markdown) (eMRTD) was read and passively authenticated. Strongest. |
| `gov_db` | Matched against the source government database (the five markets below). |
| `document` | Verified from the document alone (Document Intelligence): the global-document tier. |

Branch on it to, say, auto-approve `chip` and route `document`-only to review.

## Government-database markets

| Country | `idType` values |
|---|---|
| `NG` Nigeria | `bvn`, `bvn-premium`, `nin`, `vnin`, `drivers-license`, `passport`, `pvc` |
| `GH` Ghana | `ghana-card`, `voters`, `drivers-license`, `ssnit`, `passport` |
| `KE` Kenya | `national-id`, `passport` |
| `ZA` South Africa | `national-id`, `passport` |
| `CI` Côte d'Ivoire | `cni`, `residence-card` |

ID type identifiers are lowercase and hyphenated (e.g. `drivers-license`, not `drivers_license`).

## Global documents (any other country)

For any ISO-3166 country outside the five above, pass its two-letter code with one of the generic document types:

| `idType` | Capture | Chip (NFC) |
|---|---|---|
| `passport` | Front only (MRZ) | ✅ eMRTD, reaches `chip` assurance |
| `drivers-license` | Front **and** back | — |
| `national-id` | Front **and** back | — |

> A country whose national ID is already covered by a database-backed key uses **that** instead of the generic `national-id`: `NG` → `nin`, `GH` → `ghana-card`, `CI` → `cni`. Kenya and South Africa's `national-id` *is* the database-backed key.

## Capture requirements

ID types fall into two groups, which determines what you must capture and upload.

### Number-only IDs

Verified from the ID number alone; no document scan required. You may still run a liveness/selfie step if enabled.

| Country | Number-only IDs |
|---|---|
| `NG` | `bvn`, `bvn-premium`, `nin`, `vnin` |

For these, send `idNumber` and (optionally) a `selfie` / `livenessVideo` media ID.

### Document IDs

Every other ID type requires a document scan. Some need both sides:

| Capture | IDs |
|---|---|
| Front only | `passport` (every country) · all document IDs not listed below |
| Front **and** back | Global `drivers-license`, `national-id` · `NG`: `drivers-license`, `pvc` · `GH`: `ghana-card`, `voters`, `drivers-license` · `KE`/`ZA`: `national-id` · `CI`: `cni`, `residence-card` |

For document IDs, [upload](https://trust.myaza.co/documentation/api-upload/markdown) the relevant files (`documentFront`, `documentBack`, `selfie`, …) and reference their `mediaId`s in the verify request.

## Feature flags

Each enabled ID type from [`GET /config`](https://trust.myaza.co/documentation/api-config/markdown) carries three feature flags:

| Feature | Meaning |
|---|---|
| `documentVerification` | A document image is captured and checked. |
| `livenessCheck` | A selfie/liveness step runs and is face-matched to the document. |
| `govDbCheck` | The ID is validated against the government database. **Always `false` for global-document countries** (no live government source is available there), so those verify by document capture alone. |

Branch your capture flow on these flags so you never ask the user for something the org hasn't enabled. Manage which ID types are enabled under **Settings → Organization → ID Types**.
