Levels with written rules
Six levels, each with clear requirements you can show an auditor. No hidden model decides.
Know that a customer's address is real, how sure you can be, and keep a signed record you can show later.
Status: AdresX is in closed beta. We are looking for pilot banks. Which level satisfies which KYC tier is your bank's decision and the regulator's rule, and we will map it with your compliance team.
Confirming where a customer lives usually means sending an agent or reviewing a utility bill. Visits are slow and cost money. Bills are often missing or belong to someone else. Both leave little evidence you can show a regulator.
A plain yes or no is not enough for a KYC decision you may need to defend later. Each AdresX result is a level decided by fixed, written rules, plus a score showing how strong the evidence is within that level, so you can see exactly why a customer landed where they did:
| Level | Name | What it takes |
|---|---|---|
| L0 | Declared | A text address only, or coordinates that are spoofed, worse than 100 m, or a pin claimed from far away |
| L1 | Located | Coordinates within 100 m of the device, with no fake-location signal |
| L2 | Corroborated | L1 plus a locality, national-code or repeated-presence match, on an integrity-checked device |
| L3 | Substantiated | L2 plus two independent attestations, or presence on 3 days including 2 evenings or nights |
| L4 | Field-verified | A trained agent on site with an authentic photo, fresh clock and intact device |
| L5 | Authoritative | L3 or higher plus a match to an authoritative record |
Six levels, each with clear requirements you can show an auditor. No hidden model decides.
A pin dropped from somewhere else stays at Level 0 until presence or an agent proves it.
With consent, check-ins from the AdresX app on different days and evenings raise the level. Browser check-ins are recorded but never raise it.
Every result carries a certificate with a digital signature. Anyone can check it, even offline.
Status-only notices that never contain a location or phone number, so your systems stay simple and safe.
Coarse and precise access are separate. A deletion endpoint removes everything held about an address.
Create a verification and get a link to send to the customer:
curl -X POST https://adresx.org/v1/verifications \
-H "X-API-Key: YOUR_KEY" -H "Content-Type: application/json" \
-d '{"country":"NG","reference":"cust-1042","msisdn":"08031234567",
"callback_url":"https://bank.example.com/hooks/adresx"}'
The response holds the link, its expiry and, once, the secret used to check webhook signatures:
{"id":"ver_3f9a1c07d2b4","url":"https://adresx.org/v/...","expires_at":"2026-10-01T12:00:00Z",
"sms_queued":true,"webhook_secret":"whsec_..."}
Read the outcome later with GET /v1/verifications/ver_3f9a1c07d2b4. See how it works for the levels.
Want the check inside your own app instead? The Integrate page shows the web widget and the planned mobile SDKs.
Write to enterprise@agxii.org.ng, or see all contact details. Access keys are issued under an agreement, and our terms of service apply.