Test mode
Build and test your integration without sending or paying.
Every request made with a test key (sk_test_) runs in test mode. Test mode behaves like the live API, with a few differences:
| Test key | Live key | |
|---|---|---|
| Messages are sent to phones | No | Yes |
| Your wallet is charged | No | Yes |
| Sender ID must be approved | No | Yes |
| Starting status | delivered | queued |
| OTP code in the response | Yes | No |
Test messages are marked "test": true in responses and when you list messages.
Testing OTP
With a test key, POST /otp/send returns the code it generated, so you can test the whole verification flow:
{
"id": "otp_01M6MJSBXRZS9JGB57380Y48E5",
"to": "+233241234567",
"status": "pending",
"expiresAt": "2026-11-05T00:52:20.504Z",
"messageId": "msg_01M6MJSBXYJ0RDQ393W5N1HGE0",
"cost": { "amount": "0.04", "currency": "GHS" },
"test": true,
"code": "102028"
}Going live
- Get a sender ID approved.
- Top up your wallet.
- Replace your test key with a live key.