Transactional SMS API

Transactional SMS API for Africa

Send alerts, receipts, and notifications across Nigeria, Kenya, Ghana, South Africa, the UK, Benin, Ivory Coast, and the US with multi-provider failover, per-country routing, and delivery webhooks — on the same API and prepaid credits as OTP.

A transactional SMS API lets your application send the text messages users actually expect — an order confirmation, a payment receipt, a shipping update, a security alert — with a single HTTP request. Unlike bulk promotional blasts, transactional messages are triggered by a user action and carry information the recipient is waiting for, which is why they are expected messages, not a promo blast.

Robase is built for transactional traffic across Africa. One endpoint, POST /v1/sms/send, reaches Nigeria, Kenya, Ghana, South Africa, the UK, Benin, Ivory Coast, and the US. NG/KE/GH/ZA retry a fallback upstream if the primary fails. You pay per message from ₦6 with prepaid credits and no monthly fee.

Send your first message in minutes

Authenticate with a Bearer token, POST a phone number and message, and you are live.

Request

curl -X POST https://api.robase.dev/v1/sms/send \
  -H "Authorization: Bearer robe_xxx" \
  -H "Content-Type: application/json" \
  -d '{
    "phone_number": "+2348012345678",
    "message": "Your order #12345 has shipped."
  }'

Response

{
  "id": "sms_8f3c...",
  "status": "queued",
  "credit_cost": 1
}

The same call in your language

Node

import { Robase } from "@robasedev/sdk";

const robase = new Robase({ apiKey: "robe_xxx" });
await robase.sms.send({
  phone_number: "+2348012345678",
  message: "Your order #12345 has shipped.",
});

PHP

$robase = new Robase\Client("robe_xxx");

$robase->sms->send(
    phoneNumber: "+2348012345678",
    message: "Your order #12345 has shipped.",
);

Go

client, err := robase.New("robe_xxx")
msg, err := client.SMS.Send(ctx, robase.SendSMSParams{
    PhoneNumber: "+2348012345678",
    Message:     "Your order #12345 has shipped.",
})

Why build on the Robase transactional SMS API

Multi-provider failover

Nigeria, Kenya, Ghana, and South Africa fail over to a second upstream if the primary fails. UK and US are single-provider today. You never manage carriers yourself.

Per-country routing

Each destination is sent over the route that performs best for that market, so a message to Lagos and a message to Nairobi each take the fastest path.

Delivery webhooks & status

Track every message with sms.sent, sms.delivered, and sms.failed events, or poll GET /v1/sms/{id} for real-time status and credit cost.

Prepaid credits from ₦6

Pay only for what you send. No monthly fee, no minimum, no contract. Credits never expire and cover both OTP and transactional SMS.

Rate limiting & idempotency

Per-API-key rate limits and idempotent send semantics keep retries safe and protect you from accidental duplicate sends.

One API for OTP + SMS

The same credentials, routing, and credits power both the transactional SMS API and the SMS OTP API. Integrate once.

Coverage & pricing

One prepaid credit = ₦6. Each message costs credits based on the destination country. Credits never expire and cover both OTP and transactional SMS.

CountryCodeCredits / messageExample price
NigeriaNG1₦6
KenyaKE3₦18
GhanaGH3₦18
South AfricaZA4₦24
United KingdomGB8₦48
BeninBJ56₦336
Ivory CoastCI79₦474
United StatesUS50₦300

See the full pricing breakdown or browse coverage by country.

Track every message

Know exactly what happened to each SMS. Poll for status on demand, or let webhooks push delivery events to your backend the moment they occur.

Check delivery status

GET /v1/sms/{id}

{ "status": "delivered", "credit_cost": 1 }

Subscribe to webhooks

  • sms.sent — accepted by the carrier
  • sms.delivered — confirmed on the handset
  • sms.failed — could not be delivered

Configure endpoints in the dashboard.

Deliverability & compliance

Transactional messages are delivered on high-priority routes and, unlike promotional traffic, are generally not restricted to marketing time windows in African markets — so a receipt or security alert reaches the handset even at night. Robase keeps that traffic compliant on your behalf.

Register alphanumeric sender IDs per market so messages arrive branded rather than from a random short code. Robase respects carrier-level do-not-disturb (DND) and opt-out rules, and its per-country routing selects the compliant path for each destination. You focus on the message; Robase handles carrier registration, failover, and delivery.

Built for notifications

Order & shipping updates

Tell customers the moment an order is confirmed, shipped, or delivered.

Payment receipts

Send a confirmation the instant a payment succeeds.

Account & security alerts

Warn users about logins, low balances, or security events.

Appointment reminders

Cut no-shows with a timely SMS reminder before the booking.

Delivery & dispatch alerts

Notify riders and customers as a delivery moves through each stage.

Booking confirmations

Confirm reservations, tickets, and bookings with an instant text.

Transactional SMS API FAQ

What is a transactional SMS API?

A transactional SMS API is a REST endpoint your application calls to send non-promotional text messages — order updates, receipts, alerts, and reminders — triggered by a user action. Robase gives you one endpoint, POST /v1/sms/send, that delivers across Nigeria, Kenya, Ghana, South Africa, the UK, Benin, Ivory Coast, and the US with automatic provider failover and per-country routing.

How is transactional SMS billed?

With the same prepaid credits as OTP. 1 credit = ₦6, and each message costs a number of credits based on the destination country — from 1 credit (₦6) in Nigeria. There is no monthly fee, no minimum, and credits never expire.

How fast can I integrate?

Most teams send their first transactional SMS in minutes. Get an API key from the dashboard, POST a phone number and message to /v1/sms/send with a Bearer token, and you are live. Official SDKs are available for Node, PHP, and Go.

Can I track delivery?

Yes. Poll GET /v1/sms/{id} for the current status, or subscribe to the sms.sent, sms.delivered, and sms.failed webhooks to receive real-time delivery events without polling.

What is the difference between transactional and promotional SMS?

Transactional SMS is triggered by a user action and delivers information they expect — a receipt, a shipping update, a security alert. Promotional SMS is marketing sent in bulk. Robase is built for transactional traffic and is not sold as a promo blaster; Nigeria OTP traffic is routed on transactional paths so NCC DND is not treated as a promo filter.

Is it the same API as OTP?

Yes. One integration, one set of credentials, and one credit balance cover both the transactional SMS API and the SMS OTP API — sharing the same routing, failover, and billing.

Which countries are supported?

Robase delivers to the eight published priced markets: Nigeria, Kenya, Ghana, South Africa, the UK, Benin, Ivory Coast, and the US. NG/KE/GH/ZA/BJ/CI have a fallback route; GB and US are currently single-route.

Do you handle sender IDs and opt-outs?

Yes. You can register alphanumeric sender IDs per market, and Robase respects carrier-level do-not-disturb and opt-out rules so your transactional traffic stays compliant.

Keep reading