When am I charged?+
Only when a record is found. Not-found lookups, registry outages and face matches that couldn’t run are refunded to your wallet automatically, and every refund appears in your wallet history. A liveness session is refunded if the person never completes it.
Is there a sandbox?+
Yes. Every account gets a free sandbox key at sign-up. The last two digits of the ID number choose the outcome (found, not found, registry error, face mismatch), and liveness sessions can be completed with a single simulate call, so you can test every path in CI.
How does liveness work?+
Create a session with one API call and send your customer to the link it returns. In any phone browser they move closer to the camera, watch a few screen colours and follow two quick prompts, in about 20 seconds. The check speaks English, Nigerian Pidgin, Hausa, Yorùbá and Igbo, and starts in the phone’s own language. Then pass the session to a face-match check and the response says liveness: "passed".
What does liveness stop?+
Printed photos, photos or videos shown on another screen, pre-recorded videos and still images. It runs in the browser and isn’t certified to ISO/IEC 30107-3, so for very high-risk onboarding combine it with your other checks.
Can I verify customers without an integration?+
Yes. Create a verification link in the dashboard and send it to your customer. They enter their ID number and do the face check on a page we host, and the result appears in your dashboard. It works in sandbox too, so you can try it first.
Can you read ID documents?+
Yes. Send a photo of a NIN slip or card, driver’s licence, voter’s card or international passport to POST /documents/verify, or ask for one in a verification link. It’s read, checked for expiry and visible tampering, its number is looked up in the registry, and its photo can be matched to the customer’s live face. Photos aren’t stored, and an unreadable photo is refunded.
How do address checks work?+
Two ways. A digital address check finds the address on the map and confirms it’s in the LGA and state given, instantly. A location link goes further: your customer opens it at home and shares their phone’s location once, and we measure how far it is from the address. A phone’s location can be faked with special apps, so it’s strong evidence rather than proof. For more, ask for a proof of address too: a recent utility bill, bank statement or tenancy agreement, checked for their name, the address and its date. Physical agent visits are not offered yet.
Which sanctions lists do you screen?+
The UN Security Council Consolidated List, the US OFAC SDN list, the UK Sanctions List, the EU Consolidated Financial Sanctions List and the Nigeria Sanctions List, each refreshed daily. A potential match is a lead for your team to review, not a verdict. Screening doesn’t yet cover politically exposed persons (PEPs) or adverse media.
Do you have SDKs?+
Yes, all open source: @uverifyng/node for Node.js, uverify for Python and uverify/uverify-php for PHP, to call every check from your server, plus @uverifyng/react-native-liveness and uverify_liveness for Flutter to run the face check inside your own app. Your API key stays on your server; the app only opens the session link.
Can I keep screening customers after onboarding?+
Yes. Turn on monitoring for a name and it’s re-screened after every daily list update. If a new potential match appears, you get an aml.match_found webhook and an email, and it’s billed monthly per name. You can also screen automatically with every verification by adding aml_screening: true.
How do I go live?+
Verify your email, submit your CAC number and documents from the dashboard, and our team reviews them, usually within one business day. Then create a live key and fund your wallet. Your code stays the same.
How is identity data protected?+
Records are encrypted at rest with AES-256-GCM, ID numbers are stored masked and hashed, ID photos are never stored, liveness captures are encrypted and removed once used, and every view of identity data in the dashboard is audit-logged.