Add phone verification to your app with the managed eSMS Verify API. It generates the code, delivers it, handles retries and checks it - you call two endpoints.
curl -X POST https://api.esmsafrica.io/v1/verify/start \
-H "Authorization: Bearer $ESMS_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "to": "+254712345678", "app_id": "YOUR_APP_ID" }'Send the code to the user. eSMS generates and delivers a one-time code to the number.
curl -X POST https://api.esmsafrica.io/v1/verify/start \
-H "Authorization: Bearer $ESMS_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "to": "+254712345678", "app_id": "YOUR_APP_ID" }'When the user types the code they received, verify it.
curl -X POST https://api.esmsafrica.io/v1/verify/check \
-H "Authorization: Bearer $ESMS_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "to": "+254712345678", "code": "123456" }'The Verify API handles code generation, resend, expiry and rate-limiting for you, so you avoid building OTP fraud controls yourself. You can also send OTPs directly with the SMS API if you prefer full control.
OTPs route on priority paths to the local operators, so codes typically arrive within seconds across African markets.
Yes - register a sender ID so the one-time password comes from a name your users recognize.