Errors & statuses

How the API reports failures and how to interpret transaction status.

Error response shape

Failed API calls typically return JSON like:

{ "status": false, "message": "…" }

Common HTTP codes

ParameterTypeDescription
200OKRequest succeeded (check status / data).
400Bad RequestInvalid input (e.g. amount below 0.01 or above 100,000).
401UnauthorizedMissing or invalid secret key.
402Payment RequiredSMS only — insufficient credits. Buy more under Dashboard → SMS → Credits.
404Not FoundTransaction or SMS message not found for your merchant.
500Server ErrorUnexpected failure — retry with backoff.
503UnavailableSMS sender temporarily unavailable.

Transaction statuses

ParameterTypeDescription
pendingstatusAwaiting Mobile Money payment.
partialstatusSome payment received; waiting for the remaining amount.
paidstatusPayment confirmed — safe to fulfill.
expiredstatusTTL elapsed without full payment. Create a new charge to try again.
cancelledstatusCharge was cancelled.

SMS message statuses

ParameterTypeDescription
pendingstatusAccepted; waiting on the phone to send.
sentstatusHanded to the network.
deliveredstatusDelivery report received (when available).
failedstatusCould not send — credits refunded when the queue fails.

Look up with GET /api/v1/sms/:id.