SMS
SMS built for African delivery, with the compliance engine built in.
Carrier-grade delivery through licensed local partners in every country we serve, least-cost routing for marketing, the most reliable route for OTPs, and failover in under a minute. Consent, STOP handling, do-not-contact lists and send windows are enforced by the API.
import { Sendbaze } from "@sendbaze/sdk";
const sendbaze = new Sendbaze({ apiKey: process.env.SENDBAZE_API_KEY! });
const sms = await sendbaze.sms.send({
to: "+27821234567",
body: "Your OTP is 482 913. It expires in 5 minutes.",
class: "transactional", // marketing requires consent
});
// sms.segments === 1, sms.credits === 1Coverage
Every country we serve, with a backup route
South Africa
+27
Licensed local delivery · least-cost for marketing · primary for OTP
Botswana
+267
Licensed local delivery · least-cost for marketing · primary for OTP
Namibia
+264
Licensed local delivery · least-cost for marketing · primary for OTP
Lesotho
+266
Licensed local delivery · least-cost for marketing · primary for OTP
Eswatini
+268
Licensed local delivery · least-cost for marketing · primary for OTP
More East and West African countries open as each partner route goes live. Before a country opens we run a delivery test on it and publish the result: target 97% delivered with a p95 under 10 seconds.
What it does
Sending, routing and receipts
- Segment count before you pay
- The API detects GSM-7 versus UCS-2, applies concatenation rules and returns the segment count and credit cost in the response. No surprise on the invoice.
- Primary and backup route, automatic failover
- A rolling failure rate or timeouts on one route disable it for ten minutes and move traffic to the backup. Route health is visible in the dashboard.
- Transactional and marketing classes
- Every SMS carries a class. Transactional and OTP traffic always takes the primary route and ignores quiet hours; marketing takes the cheapest route and obeys the legal window.
- Delivery receipts, unified
- Delivery receipts from every route map to queued, sent, delivered, failed, expired and rejected. Each message shows which route delivered it and how long it took.
- Sender IDs
- Shared numeric sender by default. Request a dedicated number or a branded alphanumeric sender from the dashboard; approval is manual and the caveats for each country are documented.
- Batch and schedule
- Up to 1,000 messages a call with per-item results. Scheduled send and CSV upload-and-send in the dashboard arrive in the release after launch.
Compliance engine
The rules a raw SMS gateway leaves to you
Each rule is enforced in the request path. You get a clear error code, not a regulator complaint three weeks later.
| Rule | What the API does |
|---|---|
| Message class | Required on every SMS. Marketing without a consent record returns 403 consent_missing. |
| Consent | Contacts and consents with source, evidence and timestamp, or a logged attestation of an existing-customer relationship. |
| Opt-out | Inbound STOP, END, CANCEL, UNSUBSCRIBE or QUIT, in any case and with punctuation, flags the contact, fires sms.opted_out and blocks future marketing. |
| Opt-out footer | A reply-STOP line is appended to marketing SMS unless already present, and the segment count is recalculated. |
| Do-not-contact lists | Weekly sync of the destination's do-not-contact list, such as WASPA's. Marketing to a listed number returns 403 dnc_listed; transactional is unaffected. |
| Time windows | Marketing outside the destination's legal window (08:00 to 20:00 local time, no Sundays or public holidays in South Africa) is held and sent at the next legal window. |
| Evidence | Export every consent record for a number or an organisation as CSV in under a minute. |
Sender IDs
Shared by default, branded on request
Every organisation starts on a shared numeric sender. Request a dedicated number or an alphanumeric sender such as YOURSHOP from the dashboard. Approval is manual, and we document which countries replace alphanumeric senders with a number.

Send your first OTP in ten minutes
Free plan includes 50 SMS credits after a quick card check. Test keys let you integrate without sending.
Free tier · No card for email · 10-min setup