Skip to content

SYSTEM Cited by 1 source

USSD (Unstructured Supplementary Service Data)

USSD (Unstructured Supplementary Service Data) is a real-time, stateful, session-based signalling protocol defined in the early-1990s GSM Technical Specification. It lets a feature phone exchange short text messages with an application server over the mobile operator's signalling channel — no data plan, no TCP/IP, 2G is sufficient, any $20 handset works.

Originally used in the West for SIM activation, balance checks, top-ups, and ringtone purchases, USSD has become the primary user interface for production-scale mobile money platforms in Sub-Saharan Africasystems/mpesa (4K TPS, >$100B/year), Moniepoint (5.2B txns / $150B in 2024), Mukuru, OPay — and the customer channel for IoT consumer platforms such as systems/koko-networks. See patterns/feature-phone-frontend for the architectural shape.

(Source: sources/2025-10-29-allthingsdistributed-what-is-ussd-and-who-cares)

Protocol shape

Feature phone  ──►  Mobile network  ──►  USSD gateway  ──►  App server
   dial *123#                            (route by           (stateful
                                          short code)         session)
         ◄─── menu text ◄────────────── ◄── response text ◄──
  • Initiation: user dials a short code (e.g. *123#) on any GSM handset.
  • Transport: the request traverses the mobile network's signalling plane to a carrier-hosted USSD gateway.
  • Routing: gateway inspects the short code and routes the session to the appropriate application server.
  • Session: application server maintains per-user stateful session for the duration of the dial; short server-enforced timeouts.
  • UI: text menu (classical limit ≈182 chars per message), user replies with a digit or short string, menu updates in the same session.

Distinct from SMS: SMS is store-and-forward and not session-oriented; USSD is synchronous, session-based. Analogous to a very short- lived telnet over the GSM signalling plane.

Properties

Property Value
Spec origin GSM Technical Specification (early 1990s)
Network generation 2G is sufficient (all subsequent generations carry it too)
Edge hardware Any GSM feature phone; < $20 USD
Data plan required No
Model Stateful, synchronous, session-based
Timeouts Short (server-enforced, carrier-dependent)
Payload Plaintext, small (~182 chars/message classical limit)
UI Text menus with numeric / short-string replies
Encryption Depends on GSM signalling layer; no app-level TLS

Why it matters in 2025

Per GSMA (cited in the post):

  • 27% mobile-internet penetration in Sub-Saharan Africa.
  • 55% of SSA users still on 3G.
  • ~1/3 of connections will still be 3G in 2030.

Feature phones remain dominant across hundreds of millions of users for at least the next decade. USSD is the only user-facing protocol that works universally across that install base without requiring a data plan. The economic case for it is not nostalgia; it is reach.

Deployed frontends built on USSD

  • systems/mpesa (Safaricom) — send money, pay bills, buy airtime; 4K TPS; backend on AWS with real-time ML fraud detection; >$100B processed in 2024.
  • Moniepoint — 5.2B transactions / $150B volume (2024).
  • Mukuru — cross-border remittances.
  • OPay — multi-service wallet.
  • systems/koko-networks — bioethanol cooking-fuel top-ups to KOKOpoint stations (>700 stations).

Limitations

  • Plaintext signalling plane — not suitable for carrying unencrypted arbitrary PII; payment systems use session-bounded PIN entry and reconcile through authenticated backend state, not through encrypted-in-transit payloads.
  • Carrier-gated — the USSD gateway sits inside the mobile operator; running a service requires a commercial agreement with each operator in each country. New-market expansion is an integration, not a deploy.
  • Short-code allocation is regulated — national telecom regulators allocate *NNN# codes; this is licensed capacity, not a free resource.
  • Session length — server-enforced short timeouts force flat, shallow menus rather than deep wizards.
  • No push — server-initiated interaction is limited; most flows are customer-dialed.

See also

Last updated · 200 distilled / 1,178 read