Guide
Reading a result
Match-first results: found, match_result, match scores, route and cost.
Verath is match-first. You send the details your customer gave you, and Verath tells you whether each one matches the official record. You don’t get the record itself unless your business is approved for records and the source allows it.
An example result
200 OK
{
"reference_id": "chk_3c5e1f0a9b2d4c7e8f6a1b2c3d4e5f60",
"object": "check",
"check": "nin_basic",
"status": "completed",
"found": true,
"source": "registry",
"source_ref": "sbx_8f29a712c4e01b5d",
"id_number": { "type": "nin", "last_digits": "0006" },
"match": { "first_name": 100, "last_name": 100, "dob": 100 },
"match_result": { "first_name": "match", "last_name": "match", "dob": "match" },
"route": [{ "source": "registry", "outcome": "found", "latency_ms": 412, "ref": "sbx_8f29a712c4e01b5d" }],
"latency_ms": 431,
"error": null,
"cost": { "billed": false, "amount_kobo": 0, "currency": "NGN" },
"customer": { "id": "cus_9a7b…", "customer_ref": "cust_1042" },
"purpose": "KYC-ONB",
"consent_ref": null,
"mode": "test",
"created_at": "2026-11-11T15:32:00.112Z",
"completed_at": "2026-11-11T15:32:00.543Z",
"retry": null,
"data": null,
"data_policy": "match_only"
}The fields that matter
| Field | Meaning |
|---|---|
| status | completed (found or not found), pending (no source answered yet; retried automatically) or failed (gave up after 72 hours). |
| found | Whether the number exists on the record. false is an answer too, and is billed like one. |
| match_result | For each field you sent: match (95+), partial (50–94: a typo, a middle name used as a first name, day and month swapped) or no_match. Face and liveness: high, medium or low. |
| match | The 0–100 score behind each result, computed by Verath, so it means the same whichever source answered. |
| id_number | The type and last digits of the number. Verath never stores the full number. |
| source, source_ref, route | Which source answered (by label), its reference for the call, and every source tried with its timing. |
| cost | What this check was billed, in kobo. Pending and failed checks are never billed. |
| data, data_policy | Record fields, if any, and why they are or aren't there (below). |
data_policy
| Value | What it means |
|---|---|
| match_only | Your business gets match results only. data is null. |
| records | Your business is approved for records and the source allows it: data has the record fields. They're sent once and never stored. |
| source_match_only | You're approved for records, but the source that answered only allows match results. |
| not_stored | A replay of an earlier request (same Idempotency-Key). Record fields aren't kept, so only the match result comes back. |
Deciding what to do
- All match: the person’s details agree with the record.
- Partial: close but not exact. Common causes are typos, a middle name in the first-name field, or day and month swapped. Ask the person to check, or review it by hand.
- No match or not found: don’t onboard on this check alone. Ask for the details again, or send a link with a face check.
Every check also appears in the console under Customers, with a PDF certificate you can file. See Reading a check in the Verath Console.
