USSD

On this page 8

USSD, or Unstructured Supplementary Service Data, is a session-based protocol in mobile networks that lets a phone exchange short text messages in real time with an application in the operator’s network. In voice & messaging, it is the technology behind codes such as *123# that show a balance, open an interactive menu or activate a service, and it works on every GSM-compatible phone, including basic feature phones without internet access.

USSD was defined as part of the GSM standards and is maintained by 3GPP. Unlike SMS, it does not store messages and forward them later; it opens a live dialogue between the handset and a USSD application, which makes it suitable for menus, quick queries and transactions.

How a USSD session works

A USSD session starts when the user dials a code that begins with * or # and ends with #, then presses the call key. The phone sends the string over the signaling channel, not a voice or data channel, to the mobile switching center, which passes it to the home network’s USSD gateway. The gateway routes the request to the application responsible for that code.

  1. The user dials a service code such as *100#.
  2. The network forwards the request to the USSD gateway and the matching application server.
  3. The application returns a response or a numbered menu, which the phone displays as a pop-up.
  4. The user replies by entering a number, and the exchange repeats.
  5. The session ends when the application sends a final message, the user cancels or a timeout occurs.

Sessions can also be network-initiated, where the application pushes a prompt to the phone, for example to ask the user to confirm a payment. While a session is open, the dialogue state is kept in the network, so the phone needs no app and no stored data.

Key technical characteristics

USSD is deliberately simple and constrained. Its limits explain both its reliability on basic phones and its awkwardness for complex services.

ParameterTypical valuePractical consequence
Message lengthUp to 182 characters with the GSM alphabetMenus must be short and terse
Session timeoutOften tens of seconds to a few minutesUsers must respond quickly
TransportSignaling channel, circuit-switched domainWorks without mobile data
Character setsGSM 7-bit or UCS-2 for other scriptsNon-Latin scripts shorten messages
RoutingAlways to the home network applicationWorks while roaming if supported
Typical USSD parameters

Because messages are not stored, delivery is immediate or not at all. If the session times out or the signal drops, the transaction is lost and the user must start again. Well-designed USSD applications therefore keep menus shallow and idempotent, so a repeated request does not cause a double transaction.

USSD compared with SMS and app-based services

USSD is often confused with SMS because both carry short text. The decisive difference is that USSD is interactive and session-based, while SMS is store-and-forward and asynchronous.

FeatureUSSDSMSMobile app
Interaction modelLive session with menusSingle stored messagesRich interface
Device requirementAny mobile phoneAny mobile phoneSmartphone and data
Message storageNoneStored in inboxApp-dependent
Typical speedNear real timeSeconds to minutesDepends on data connection
SecurityNetwork signaling, limited encryptionWeak, can be interceptedStrong end-to-end possible
USSD, SMS and mobile apps compared

USSD codes should also be distinguished from MMI codes handled by the phone itself. Some codes, such as those for call forwarding or showing the device identifier, are interpreted locally or translated into standardized supplementary service operations rather than sent to an operator application.

Typical applications

USSD remains widely used because it reaches every subscriber regardless of handset. Operators and service providers use it for a broad range of services.

ApplicationTypical interactionWhy USSD fits
Balance and bundle queriesSingle request and responseInstant answer on any phone
Bundle purchases and top-upsShort numbered menuNo app or data needed
Mobile money and bankingMulti-step menu with PINReaches unbanked feature phone users
Public information servicesMenu of prices or forecastsLow cost for rural users
Surveys and registrationsSequence of short questionsWorks where smartphones are rare
Common USSD applications

Third parties usually access USSD through short codes leased from operators or through aggregators, which makes pricing and availability a commercial decision of each mobile network.

USSD in 4G and 5G networks

USSD was designed for the circuit-switched domain of 2G and 3G. On 4G and 5G, where voice runs over IMS as VoLTE or VoNR, operators have two options: fall back temporarily to a 2G or 3G layer, or support USSD over IMS, standardized as USSI, which carries the same dialogue using SIP signaling.

As operators shut down 2G and 3G networks, USSI support becomes essential; without it, USSD services can stop working on phones attached to 4G or 5G. Testing USSD after network changes is therefore a routine part of 2G and 3G sunset planning.

Limitations and security considerations

USSD’s simplicity brings weaknesses. Sessions are encrypted only over the radio link with the network’s cipher, not end to end, and PIN entry through USSD menus can be exposed to anyone with access to signaling systems. Malicious codes embedded in web pages or messages have historically triggered unwanted actions on some handsets.

Usability is another limit. Short timeouts, deep menu trees and the lack of visual design cause abandoned sessions. Good practice keeps menus to about five to seven options, confirms important actions explicitly and provides a confirmation by SMS for completed transactions.

The idea in brief

USSD is the system behind phone codes like *123#. When you dial one, a small text menu appears on the screen, and you answer by typing a number. It is a quick conversation between your phone and the mobile operator.

Unlike a text message, nothing is saved, and the conversation happens live, a bit like an automated phone menu in text form. Its big advantage is that it works on almost any mobile phone, even an old one without internet.

A practical scenario

A market vendor in a rural town uses a basic feature phone and has no mobile data. To pay a supplier, she dials her mobile money provider’s USSD code. A menu offers options such as send money, withdraw cash and check balance. She selects send money, enters the supplier’s number and the amount, and confirms with her PIN.

The whole exchange takes less than a minute over the signaling channel. Moments later, both she and the supplier receive an SMS confirmation. No smartphone, app or internet connection was needed, which is why USSD-based services have become a cornerstone of financial inclusion in regions where basic phones remain common.