Verification
Send Verify

A confident start.
A verified customer.

One OTP API for sign-ups, account recovery and payments. Your app calls Send once; Send delivers the code over WhatsApp, SMS or email, in the order you choose.

Login code · +255 7•• ••• 678Example
WhatsAppCode 408 921 sent to WhatsApp
Unavailable
↓
SMS fallbackCode delivered by SMS after 20 seconds
Delivered
↓
VerifiedYour app receives one approved event
Approved

Time-bound codes

Set expiry and resend intervals that suit the risk of each action in your app.

Attempt limits

Attempt limits, rate controls and abuse monitoring protect every verification.

Clear outcomes

Requested, delivered, expired and approved are separate events you can report on.

Two calls

Start a check.
Confirm the code.

Your product never builds separate WhatsApp, SMS and email verification logic. Send stores the code securely, handles the channel order and tells you when the customer is verified.

  • WhatsApp first
  • SMS fallback
  • Email recovery
  • One status model
Start verificationPOST
POST /v1/verify{  "to": "+255700000000",  "channels": ["whatsapp", "sms", "email"],  "template": "login_code",  "expires_in": 300}
Check the codePOST
POST /v1/verify/check{  "verification_id": "vrf_01K7SA2B9T",  "code": "408921"}// 200 OK{ "status": "approved", "channel": "whatsapp" }

One verification journey.
Four clear steps.

01

Request

Your app starts a verification for a phone number or email.

02

Deliver

Send delivers the code on the first available channel.

03

Confirm

The customer enters the code in your app.

04

Verify

Send checks it once, before expiry, and returns the result.

Your next connection
starts with Send.

Create your account in a minute. Prepaid in shillings, no card needed, and our team is one message away.

Start free (opens in a new tab)

Larger volumes or a bank? Talk to sales