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 keyLive key
Messages are sent to phonesNoYes
Your wallet is chargedNoYes
Sender ID must be approvedNoYes
Starting statusdeliveredqueued
OTP code in the responseYesNo

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

  1. Get a sender ID approved.
  2. Top up your wallet.
  3. Replace your test key with a live key.

On this page