Address verification for banks

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.

The problem

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.

How a bank uses AdresX

  1. Create a verificationOne API call. Add your own customer reference, the customer's phone number if you want us to text the link, and a webhook address.
  2. The customer confirms on siteThey open the link in a browser, or in the AdresX app for a stronger check. The phone's location is read once, with their consent.
  3. AdresX weighs the evidenceWritten rules turn the evidence into a level from 0 to 5 and a score. Fake locations and pins dropped from far away are caught.
  4. You read the resultPoll the API or receive a signed webhook. Each result comes with a certificate you can open, print or verify offline.

Read it as an Address Confidence Score

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:

L2
Corroborated · 40 / 100 GPS accuracy 9 m · locality matched · integrity-checked device · no attestations yet

A worked example from the live AdresX engine, not a specific customer's result. The level is fixed by rule; the score is illustrative today and will be calibrated once real pilot data exists. Which level satisfies which of your own KYC tiers is your compliance team's decision, not ours to set for you.

LevelNameWhat it takes
L0DeclaredA text address only, or coordinates that are spoofed, worse than 100 m, or a pin claimed from far away
L1LocatedCoordinates within 100 m of the device, with no fake-location signal
L2CorroboratedL1 plus a locality, national-code or repeated-presence match, on an integrity-checked device
L3SubstantiatedL2 plus two independent attestations, or presence on 3 days including 2 evenings or nights
L4Field-verifiedA trained agent on site with an authentic photo, fresh clock and intact device
L5AuthoritativeL3 or higher plus a match to an authoritative record

What you get

Levels with written rules

Six levels, each with clear requirements you can show an auditor. No hidden model decides.

Fake-location and remote-pin checks

A pin dropped from somewhere else stays at Level 0 until presence or an agent proves it.

Presence over time

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.

Signed certificates

Every result carries a certificate with a digital signature. Anyone can check it, even offline.

Signed webhooks

Status-only notices that never contain a location or phone number, so your systems stay simple and safe.

Privacy controls

Coarse and precise access are separate. A deletion endpoint removes everything held about an address.

Try the API

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.

Start a pilot

Write to enterprise@agxii.org.ng, or see all contact details. Access keys are issued under an agreement, and our terms of service apply.