USSD is a much smaller field than SMS — far fewer providers actually run their own carrier connections, and the ones who don't will show it in delivery reliability and support quality. This guide is a framework for evaluating a USSD provider properly, not just a feature checklist, plus what Sendexa specifically offers.
Unlike SMS, where a failed message just needs a retry, a broken USSD integration means a user's transaction session drops mid-flow — potentially after they've already confirmed a payment. Get provider selection wrong and the failure mode isn't "delayed," it's "a customer thinks they sent money and isn't sure it worked." That's a support-ticket-and-trust problem, not just a technical one.
Ask specifically which carriers a provider has direct connections to versus which are routed through aggregators. Direct connections mean lower latency and fewer failure points — critical for a live session with a hard timeout.
Getting a dedicated short code involves carrier approval, which can take days. Ask upfront: how long does provisioning actually take, and does the provider handle the carrier paperwork or leave it to you?
A provider that just forwards webhooks leaves session-state tracking entirely to you. One that offers session management (state tracking, timeout handling) reduces the amount of infrastructure you have to build and operate yourself.
If your use case touches payments — and most USSD use cases in Africa do — check whether the provider has existing integration paths into mobile money services (MTN Mobile Money, Vodafone Cash, Airtel Money, etc.) rather than leaving you to build that integration from scratch.
If you're serving users across multiple countries or language groups, confirm the provider's menu system supports the languages you need, not just English.
USSD is typically billed per session rather than per message. Look for clear per-session pricing with visible volume tiers, rather than pricing that only appears after a sales call.
Session completion rates, drop-off points in your menu, and average session duration are the metrics that tell you whether your menu design is actually working — a provider with no analytics leaves you flying blind on your own product.
Sendexa provides USSD gateway access built specifically for African markets:
Sendexa's USSD pricing is usage-based and scales with volume:
| Plan | Price | Included |
|---|---|---|
| Starter | $0.02/session | Up to 1,000 sessions/month, basic menus, single language |
| Business | $0.015/session | Up to 10,000 sessions/month, multi-language, mobile money integration, analytics dashboard |
| Enterprise | Custom | Unlimited sessions, 99.99% SLA, dedicated support |
The integration itself is a plain webhook — here's the actual request/response pattern:
app.post("/ussd", (req, res) => {
const { sessionId, phoneNumber, text } = req.body;
const response =
text === ""
? `CON Welcome to Sendexa Demo
1. Check Balance
2. Send Money`
: text === "1"
? `END Your balance is GHS 500.00`
: `END Invalid option.`;
res.set("Content-Type", "text/plain");
res.status(200).send(response);
});
For a full walkthrough with proper multi-step session state, see How to Build a USSD Application. For the underlying protocol, see What is USSD?
Choosing a USSD provider is less about a feature checklist and more about carrier depth, provisioning speed, and how much of the session-management burden they take off your plate. Test the sandbox, walk through your actual menu flow end-to-end, and confirm mobile money integration works the way you need before committing to a production short code — a broken USSD session is a much more visible failure than a delayed SMS.
Sign up for a free Sendexa sandbox to test USSD sessions before committing to a short code.
