What Is USSD and Why Do Kenyan Businesses Still Pay for It?
USSD (Unstructured Supplementary Service Data) is a communication protocol built into every GSM phone. It works without internet, runs on feature phones and smartphones alike, and powers services like M-Pesa, mobile banking, and airtime top-ups. Kenyan businesses pay for USSD because it reaches every person with a SIM card, including the millions who cannot afford data bundles or do not own smartphones.
What USSD Actually Is
USSD stands for Unstructured Supplementary Service Data. The name is a mouthful, but you already know what it looks like. Open your phone dialer, type *144#, and press call. That text menu that pops up asking you to choose between Send Money, Withdraw Cash, or Buy Airtime? That is USSD.
The protocol is part of the GSM standard, the same standard that makes voice calls and SMS work. When you dial a USSD code, your phone sends a signal through the cell tower to the mobile network operator (Safaricom, Airtel, Telkom). The operator routes that signal to a server, which sends back a text menu. You reply by pressing a number. The server processes your choice and sends the next screen. This back-and-forth continues until the session ends.
Two things make USSD different from everything else you use on your phone:
- It does not use internet. USSD travels on the GSM signaling channel, the same channel that carries your voice calls. No data bundle needed. No Wi-Fi needed. No smartphone needed. If your phone can make a call, it can run USSD.
- It is session-based. A USSD session opens when you dial the code and closes after a period of inactivity (usually 30 to 180 seconds depending on the carrier). During the session, your phone and the server are in a live conversation. This is different from HTTP requests, where each interaction is independent.
That second point matters. When you load a website, your browser sends a request, gets a response, and the connection is done. If you click another link, it is a brand new request. USSD maintains a continuous connection for the duration of the session. The server remembers who you are and where you are in the menu.
Why M-Pesa Still Runs on USSD
M-Pesa launched in 2007. Smartphones barely existed in Kenya. The iPhone had just been announced. Android did not exist yet. Safaricom needed a technology that worked on the phones people actually had, which were basic Nokia and Motorola handsets.
USSD was the obvious choice. It worked on every phone. It needed no app installation. It needed no internet. A farmer in Nyeri could send money to a relative in Mombasa using the same technology as a banker in Westlands. That universal access is what made M-Pesa explode.
Fast forward to 2026. Safaricom has a full M-Pesa app with a slick interface, fingerprint login, and a mini-app ecosystem. Yet the USSD menu at *334# is still there. Still working. Still processing massive volumes daily. Why?
- Feature phones are still common. Walk through any open-air market in Kitale, Garissa, or Migori. You will see Nokia feature phones and cheap Itel handsets that cannot install apps. These users can only access M-Pesa through USSD.
- Data costs money. A smartphone owner in Kibera might have a phone but no data bundle this week. USSD does not care. It works regardless.
- Habit. Millions of Kenyans have been dialing
*334#for nearly 20 years. Muscle memory is powerful. Many smartphone users who could use the app still prefer USSD because it is what they know. - Reliability during congestion. When network traffic is heavy (think New Year's Eve or during a major event), data connections slow down or fail. Voice and USSD channels are more resilient because they use separate network infrastructure.
M-Pesa is proof that USSD is not a legacy technology waiting to die. It is critical infrastructure. And if the most successful financial product in African history still depends on it, there is a lesson there for every developer building for this market.
Who Else Uses USSD in Kenya (And What For)
M-Pesa is the headline act, but USSD runs across dozens of industries in Kenya. Here are the ones you interact with regularly, whether you realize it or not:
Banking. KCB, Equity, Co-op, and nearly every bank in Kenya offers USSD banking. Equity's Eazzy Banking lets customers check balances, transfer funds, and pay bills through *247#. KCB M-Pesa runs on *844#. These services handle millions of transactions from customers who never visit a branch or download an app.
Airtime and bundles. Dialing *544# on Safaricom to buy data bundles is USSD. *141# for Bonga Points. *100# to check airtime. Every telecom operator in Kenya runs their customer-facing services on USSD menus.
Government services. eCitizen notifications, NHIF status checks, and KRA PIN retrieval have all been accessible via USSD at various points. When the government needs to reach citizens who do not have smartphones, USSD is the channel.
Agriculture. Organizations like One Acre Fund use USSD to communicate with smallholder farmers. Farmers can check input prices, confirm orders, and receive payment notifications without needing internet. In areas where mobile data coverage is spotty, this is not a convenience. It is the only option.
Microfinance and SACCOs. Small lending operations and savings cooperatives use USSD to let members check their balances, apply for loans, and make repayments. Building a mobile app for a SACCO with 500 members does not make financial sense. A USSD menu does.
Surveys and data collection. NGOs and research organizations use USSD to collect data from populations that are offline. A health survey in Turkana. A voter feedback system in Bungoma. USSD reaches respondents that web surveys and apps cannot.
What Businesses Actually Pay for USSD
USSD is not free for the business running it. The end user might not pay anything (or might pay a few shillings per session depending on the arrangement), but the business behind the shortcode is definitely paying. Here is how the money works.
Shortcode fees. To get a USSD shortcode (the *XXX# number users dial), you negotiate with telecom carriers or go through a gateway like Africa's Talking. A dedicated shortcode, one that belongs only to your business, costs more and takes longer to provision because each carrier (Safaricom, Airtel, Telkom) must approve it separately. A shared shortcode, where your service sits under someone else's code (like *384*123#), is cheaper and faster.
Per-session charges. Every time a user dials your code and a session opens, you pay. Rates vary by provider and volume, but expect something in the range of KES 1 to KES 5 per session through Africa's Talking. Direct agreements with Safaricom can be cheaper at high volumes but involve more paperwork and longer setup times.
Server hosting. Your USSD application runs on a server that receives requests from the telecom network and sends back text responses. The server costs are modest since USSD traffic is lightweight compared to web or mobile traffic. A basic VPS can handle thousands of concurrent sessions.
So why do businesses pay these fees when they could just build an app? Because the math is simple. If your target users include feature phone owners, people without data, or customers in rural areas, an app reaches only a fraction of them. USSD reaches all of them. The per-session cost is the price of universal access.
Consider a microfinance company in Machakos with 10,000 customers. If 3,000 of those customers use feature phones, an app-only strategy loses 30% of the customer base. At KES 3 per USSD session and an average of 4 sessions per customer per month, the USSD cost is about KES 36,000 monthly. That is cheaper than the monthly salary of one additional customer service agent handling phone calls from those 3,000 customers.
Where USSD Falls Short
USSD is powerful for what it does, but it is not the right tool for everything. Understanding its limits helps you decide when to use it and when to reach for something else.
Character limits. Each USSD screen can display roughly 182 characters. That is about two short sentences. You cannot show product images, detailed descriptions, or long lists. Everything must be compressed into numbered menu options and brief text.
Session timeouts. USSD sessions expire after 30 to 180 seconds of inactivity. If a user gets distracted, needs to check something, or is just slow at typing on a feature phone keypad, the session dies. They have to start over from the beginning. For any interaction that requires thought or multiple inputs, this timeout creates frustration.
No push capability. You cannot send a USSD message to a user. The user must initiate every session by dialing the code. If you need to send payment reminders, delivery updates, or promotional messages, you need SMS, WhatsApp, or push notifications from an app. USSD is strictly pull, not push.
No rich media. Text only. No images, no colors, no formatting beyond line breaks. The user experience is functional but bare. For products where visual presentation matters (e-commerce, food delivery, social media), USSD is the wrong channel.
Error recovery is painful. If a user presses the wrong number at step 3 of a 5-step flow, they often have to hang up and start over. Some applications implement "0 for Go Back" menus, but the experience is still clunky compared to tapping a back button in an app.
These limitations are real, but they are also why USSD works so well for what it is designed for. Quick, transactional interactions on any phone. The constraint forces simplicity, and simplicity is exactly what a farmer in Nandi or a mama mboga in Eastlands needs when checking a balance or making a payment.
USSD vs SMS vs Apps vs WhatsApp: Quick Comparison
Every channel has a sweet spot. Here is how USSD compares to the other ways you can reach Kenyan users:
USSD vs SMS. SMS is one-directional (for most business uses) and asynchronous. You send a message, the user reads it later. USSD is real-time and interactive. The user dials, the menu appears, they respond, and the transaction happens immediately. SMS is better for notifications and alerts. USSD is better for interactive transactions. Many services use both: USSD for the interaction, SMS for the confirmation.
USSD vs mobile apps. Apps offer a richer experience (graphics, offline storage, push notifications, camera access) but require a smartphone, a data connection, and a willingness to download and install. USSD works instantly on any phone. For daily-use products with complex interfaces, build an app. For occasional, quick transactions, USSD gets the job done without asking the user to install anything.
USSD vs WhatsApp. WhatsApp offers rich media, conversational interfaces, and two-way messaging, but it requires a smartphone and internet. USSD reaches feature phone users that WhatsApp cannot. For businesses targeting both urban smartphone users and rural feature phone users, the combination of WhatsApp and USSD covers the widest possible audience.
The takeaway is not that one channel is better. It is that each serves a different population and a different use case. The most successful Kenyan tech products (M-Pesa, major banks, insurance companies) use multiple channels. They meet each user segment where that segment already is.
If you want to build products that work across these channels, our Full-Stack Software and AI Engineering course (KES 120,000) covers M-Pesa Daraja API, USSD concepts, and WhatsApp Business API as part of the African Stack module. You build real projects that integrate real payment and communication systems.
Will USSD Disappear?
People have been predicting USSD's death since 2015. Smartphone adoption is growing. Data is getting cheaper. Apps are getting better. So USSD must be on its way out, right?
Not anytime soon. Here is why.
Kenya's smartphone penetration is growing, but it is not uniform. Urban areas are approaching saturation. Rural and peri-urban areas are years behind. And even in Nairobi, economic downturns push people back to cheaper feature phones. A construction worker whose smartphone screen cracked is back on a KES 1,500 Itel feature phone, and back on USSD for everything.
Data affordability is improving, but slowly relative to income. A KES 99 daily bundle feels cheap until your monthly salary is KES 12,000. USSD costs nothing to use (for the consumer) and works with zero balance.
Telecoms continue to invest in USSD infrastructure because it makes them money. Safaricom earns revenue from every USSD session. They have no incentive to kill the channel. If anything, they are modernizing it, improving session timeouts, increasing character limits on some services, and building better routing.
The realistic future is not USSD dying. It is USSD coexisting with apps and WhatsApp, each serving different segments. Eventually, in maybe 10 to 15 years, when every Kenyan has a smartphone and affordable data, USSD might become niche. But "might" and "in 15 years" is not a reason to ignore a channel that works right now for millions of people.
For developers, knowing how USSD works makes you more valuable. You understand the full range of channels available in this market. You can advise clients and employers on which channel fits their audience. And you can build solutions that actually reach the people they are meant to serve.
Key Takeaways
- ✓USSD runs over the GSM signaling channel, not mobile data. A user with zero airtime and no data bundle can still dial a USSD code as long as they have cell signal.
- ✓M-Pesa, KCB M-Pesa, and Equity's Eazzy Banking all run on USSD. The protocol handles trillions of shillings in transactions every year across Kenya alone.
- ✓USSD sessions are temporary. They last 30 to 180 seconds, then close. This makes the protocol suited for quick tasks like balance checks and payments, not browsing or long forms.
- ✓Businesses pay KES 1 to KES 5 per USSD session through telecom carriers or gateways like Africa's Talking. They pay because no other channel reaches 100% of phone owners.
- ✓USSD is not competing with apps. It serves a different population and a different use case. Smart companies use both.
Frequently Asked Questions
- Does the user pay to use USSD?
- It depends on the arrangement between the business and the telecom carrier. Some USSD services are free for the end user (the business absorbs the per-session cost). Others charge the user a small fee, typically KES 1 to KES 5 per session. M-Pesa USSD sessions are free for the user. The specific arrangement is set when the shortcode is provisioned.
- Can USSD work without airtime?
- Yes. USSD runs on the GSM signaling channel, not the voice or data channel. In most cases, a user can dial a USSD code even with zero airtime balance, as long as their SIM is active and they have cell signal. This is one of the reasons M-Pesa works for users who have no credit on their phone.
- Why do USSD sessions time out so quickly?
- USSD sessions use network resources (signaling channels) that are shared across all users on that cell tower. Keeping a session open for a long time blocks resources for other users. Carriers enforce timeouts (30 to 180 seconds of inactivity) to free up these resources. This is a technical constraint of the GSM network, not something the application developer can change.
- Can I build a USSD app as a beginner developer?
- Yes. A USSD application is one of the simplest backend projects you can build. Your server receives a POST request with the user's input and returns plain text. If you can build a basic web server in Node.js, Python, or PHP, you can build a USSD app. Africa's Talking provides a free sandbox for testing. The harder part is menu design, not coding.
- Is USSD secure for financial transactions?
- USSD sessions are encrypted between the phone and the cell tower using GSM encryption. The session is tied to the SIM card, which provides a layer of identity verification. For sensitive transactions, services add PIN verification (like M-Pesa's 4-digit PIN). USSD is not bulletproof, but the combination of SIM-based identity and PIN verification is considered adequate for mobile financial services across Africa.
Ready to build real-world apps?
Join the McTaba Labs full-stack marathon (4 months full-time · 6 months part-time). Learn M-Pesa, USSD, and WhatsApp engineering while shipping 8 production apps.
Apply to the McTaba Marathon