USSDNew

Reach users
without internet.
On any phone.

Build interactive session menus that work on 2G feature phones and smartphones alike — no app, no data, no friction. Just dial a short code.

Works on 2G
10+ African networks
No app required
<200ms responses

99.9%

Session uptime

<200ms

Response time

10+

African networks

2G+

Works on

Menu depth

< 5 min

Integration time

Why USSD?

Africa still runs
on feature phones.

Over 60% of mobile users in Sub-Saharan Africa use basic handsets with no internet access. USSD lets you serve them with the same quality experience you give smartphone users — no app download, no data, no barrier.

Works on every GSM phone made since 1993

No internet connection required — works on 2G voice networks

Instant — sessions respond in under 200ms

Familiar — users already know how to dial *codes#

Secure — sessions are encrypted end-to-end at the network level

60%+

Feature phone users in Sub-Saharan Africa

400M+

Mobile money users relying on USSD

10+

African networks with direct USSD access

$1T+

Mobile money transactions enabled by USSD

What's included

Everything to build
great USSD apps.

Short Code Registration

We handle the MNO registration process for your dedicated or shared short code across Ghana, Nigeria, Kenya, and more.

Dedicated codesShared codesMNO registration

Session Management

Every USSD session gets a unique session ID. We maintain state between menu navigations and expose it via webhook so your backend stays stateless.

Session stateTimeout handlingMulti-step flows

Dynamic Menus

Build menus that pull live data — account balances, order statuses, schedules — from your API at session time. No static content required.

Live dataPersonalised menusVariable injection

Multi-Language Support

Serve menu text in English, French, Twi, Hausa, Swahili, Pidgin, and more. Detect the user's preferred language from SIM card metadata.

8+ languagesSIM detectionFallback logic

Analytics Dashboard

Track sessions, completion rates, drop-off points, and user paths. Identify which menu options users struggle with and optimise in real time.

Session analyticsFunnel trackingDrop-off analysis

Webhook Callbacks

Receive a POST to your endpoint on every user input. Return CON to continue the session or END to close it. Your backend drives the entire flow.

CON / END protocolSigned payloadsRetry with backoff

Developer experience

Your USSD app
is just a webhook.

No proprietary SDK needed. Sendexa calls your HTTP endpoint on every user input. Return CON to continue or END to close. Your backend stays stateless.

01

Register your short code with Sendexa

02

Point your USSD webhook to your HTTP endpoint

03

Parse the text field, return CON or END

import express from "express";
const app = express();
app.use(express.urlencoded({ extended: true }));

// Sendexa sends a POST to this endpoint on every user input
app.post("/ussd", (req, res) => {
  const { sessionId, msisdn, text } = req.body;
  const parts = text.split("*");
  const level = parts.length;

  let response = "";

  if (text === "") {
    // First request — show main menu
    response = "CON Welcome to MyBank\n";
    response += "1. Check Balance\n";
    response += "2. Send Money\n";
    response += "3. Buy Airtime";
  } else if (text === "1") {
    // Fetch balance from your DB
    const balance = await getBalance(msisdn);
    response = `END Your balance is GHS ${balance}`;
  } else if (text === "2") {
    response = "CON Enter recipient number:";
  } else if (level === 2 && parts[0] === "2") {
    response = "CON Enter amount (GHS):";
  } else if (level === 3 && parts[0] === "2") {
    const [, to, amount] = parts;
    response = `CON Confirm: send GHS ${amount} to ${to}?\n1. Yes\n2. No`;
  } else if (level === 4 && parts[3] === "1") {
    await sendMoney(msisdn, parts[1], parts[2]);
    response = "END Transfer successful!";
  }

  res.set("Content-Type", "text/plain");
  res.send(response);
});

Use cases

Every industry,
every user.

🏦

Mobile Banking

  • Balance enquiry
  • Fund transfers
  • Mini statements
  • Airtime top-up
🌾

AgriTech

  • Market price checks
  • Weather alerts
  • Loan applications
  • Input orders
🏥

Healthcare

  • Appointment booking
  • Medication reminders
  • Health surveys
  • Lab result alerts
🗳️

Government

  • Voter registration
  • Tax filing
  • Utility bills
  • Citizen surveys

Coverage

Direct network
connections.

We connect directly with MNOs — not through third-party aggregators — giving you lower latency, higher reliability, and better rates.

🇬🇭Ghana

MTN, Vodafone, AirtelTigo

*889#

🇳🇬Nigeria

MTN, Airtel, Glo, 9mobile

*737#

🇰🇪Kenya

Safaricom, Airtel, Telkom

*234#

🇸🇳Senegal

Orange, Free, Expresso

*144#

Start building today — it's free

Reach users who don't
have smartphones.

Register a short code, set your webhook URL, and handle your first USSD session in under 5 minutes. No credit card required.

No credit card requiredWorks on 2G phones10+ African networksCancel anytime