USSD stands for Unstructured Supplementary Service Data. It is the technology behind the short codes you dial on a phone, like *144# to check your Safaricom balance or *334# to open the M-PESA menu. You dial a code that starts with * and ends with #, and a menu appears on your screen. You reply with a number, and the menu responds instantly.
USSD meaning in simple terms
USSD is a way for your phone to hold a short, live conversation with a service over the mobile network. Unlike an SMS, nothing is saved in your inbox: the session stays open while you choose options, then closes. Because it runs on the basic GSM network, it works on every phone, from a basic feature phone to the latest smartphone, and it needs no internet or data bundle.
- Full form: Unstructured Supplementary Service Data.
- Also called: USSD codes, quick codes, star codes or feature codes.
- Format: starts with
*and ends with#, for example*483*57#.
How USSD works
- The user dials a code such as
*384*1#. - The mobile network recognises the code and forwards the request to a USSD gateway.
- The gateway passes it to the business’s application server, usually over HTTP, with the caller’s phone number and what they typed.
- The application replies with the next menu screen, and the gateway sends it back to the phone.
- This repeats until the user finishes or the session times out.
Each screen holds roughly 160–182 characters, and networks close idle sessions after a short time, often a couple of minutes. That is why good USSD menus are short and numbered. See USSD menu design best practices.
Common USSD codes in Kenya
Kenyans use USSD every day, often without knowing the name for it:
*144#: check your Safaricom airtime balance.*334#: the M-PESA menu for sending money, paying bills and buying airtime.*544#: buy Safaricom data, SMS and minute bundles.- Bank, SACCO and insurance codes for mobile banking without an app.
- Government and NGO codes for registration, surveys and service information.
Networks sometimes change codes, so confirm with the operator.
What businesses use USSD for
- Mobile banking and SACCOs: balances, mini-statements, loan applications and repayments.
- Payments and collections: pay bills, fees or rent from a menu. See SMS and USSD banking.
- Surveys and polls: collect feedback from people without smartphones. See SMS and USSD surveys.
- Agriculture: market prices, weather and input orders for farmers. See mFarming.
- Registration and self-service: sign-ups, account look-ups, ticket checks and customer support menus.
USSD vs SMS: what is the difference?
| USSD | SMS | |
|---|---|---|
| Connection | Live session, real time | Store-and-forward message |
| Saved on the phone | No, it disappears when the session ends | Yes, in the inbox |
| Best for | Menus, choices, transactions | Alerts, receipts, reminders, marketing |
| Who starts it | Usually the user dials the code | Usually the business sends it |
| Needs internet | No | No |
The best services combine both: a USSD menu for the transaction, then an SMS with the receipt or reference number the customer can keep. Learn more about bulk SMS.
Advantages and limitations
Advantages: works on every phone and network, needs no app or data, is instant and interactive, is familiar to Kenyan users, and keeps nothing stored on the handset after the session.
Limitations: short screens, session time-outs, text only, and users must know the code. Codes also have to be set up with each network. For richer experiences, compare USSD vs a mobile app.
USSD technical definition: how the standard describes it
In telecom standards, USSD is a supplementary service defined by 3GPP (formerly GSM) in TS 22.090, 23.090 and 24.090, with the GSMA also describing it as a session-based channel between a handset and a network application. It travels over the mobile network’s signalling channel, not the data connection, which is why it is fast and needs no internet. A session can be mobile-initiated (the user dials a code, called pull) or network-initiated (the service pushes a menu to the phone, called push).
Types of USSD codes
- Service codes run by a business or operator, such as
*334#for M-PESA or a bank’s*483*57#. These connect to an application through a USSD gateway. - Handset and network codes handled by the phone or network itself, such as
*#06#to show your IMEI or**21*number#to forward calls. - Shared and dedicated codes: a shared code carries many services under one root, while a dedicated code belongs to a single business.
USSD banking and mobile money
USSD banking lets customers check balances, request mini-statements, transfer money, buy airtime, pay bills and apply for loans from a code like *483#, with no app, no data and no smartphone. It is why mobile banking reaches feature-phone users in Kenya and across developing countries. Read more in 10 ways USSD is revolutionizing mobile banking in developing countries.
USSD gateways, aggregators and integration in Kenya
A business does not connect to each network separately. A USSD gateway provider (an aggregator) holds the network connections and your code, and sends each user’s input to your application over an HTTP API, so your developers build the menu logic while the provider handles the telecom side. Pricing usually depends on code type (shared or dedicated), expected sessions and set-up fees, so it is quoted per project. Ask Connect Media for a USSD integration quote.
Is USSD secure?
USSD is protected by the network’s own encryption, but a session is not end-to-end encrypted, and the biggest practical risk is SIM swap fraud. Good services use a PIN for sensitive actions, never display full account numbers, time out idle sessions and check for recent SIM changes before approving transfers.
Common USSD errors and what they mean
- “Connection problem or invalid MMI code”: the code was mistyped, the service is down or the network cannot reach it. Check the code and try again.
- “USSD code running”: a session is still open. Wait for it to end, then redial.
- Session expired: you took too long to reply, so dial the code again.
How to get a USSD code for your business
You can launch on a shared code, where your service sits under a provider’s code (for example *384*123#) and is quick and affordable to start, or apply for a dedicated code of your own, which costs more and takes longer to approve. Connect Media handles the application, network setup and hosting, so you only design your menu. Read how to get a USSD code in Kenya or see our USSD service.
Prefer Swahili? Soma kuhusu USSD kwa Kiswahili.
Launch your USSD service
Talk to us about a USSD code or create a Connect Media account for bulk SMS from KES 1.0, with one account for Safaricom, Airtel and Telkom. Call +254 707 339 945 or email info@connectmedia.co.ke.