Sign-up and login
Confirm a new user's phone number before you create the account.
One call to send a code, one call to check it. Local Nigerian numbers work exactly as your users type them.
You call one endpoint and we generate a code and send it by SMS. You call a second endpoint with whatever your user typed and get a yes or no. A local 0803 number is turned into +234 for you, and you control the wording of the message. You are charged when the message actually goes out and refunded in full if delivery fails, and checking the code is free.
Confirm a new user's phone number before you create the account.
Ask for a code before a withdrawal, a password change or a new device.
Confirm the right phone number before dispatching a rider or booking a visit.
Filter out fake numbers so your sales team calls real people.
Create a free account and get a test key. Test keys return the exact response without sending a real SMS.
Call start with a phone number, then check with the code your user typed.
Switch to a live key when you are ready.
Create a free account and send a code to your own phone from the dashboard to see exactly what your users will get.
Checking the code is free, and the send is refunded in full if delivery fails. Test keys are free and return realistic responses without charging you, so you can build the whole flow before you pay for a single live use.
POST /v1/phone/verify/start, authenticated with your X-IdentifyOrg-Key header.
{
"phone": "08031234567",
"template": "Your {site} code is {code}. Expires in {minutes} minutes.", // optional
"reference": "signup-8842" // optional, your own id, echoed back
}{
"id": "phv_01hxyz...",
"phone": "+2348031234567",
"status": "pending",
"expires_at": "2026-09-08T10:35:00Z",
"reference": "signup-8842",
"cost": 6.0,
"is_test": false
}When the test convinces you, the developer section shows exactly how to connect it: the endpoint, the request and response, SDKs for your language and webhooks.
No. A local Nigerian number such as 0803… is normalised to +234803… for you.
Yes. Pass your own template. It must contain {code}.
The charge is refunded in full.
No. Codes expire, and repeated wrong attempts stop the attempt being usable.
Yes. Test keys return the same response shape without messaging anyone.