How USSD works: An explainer for everyone
The first use of USSD was for internal communications between a user’s mobile device and their mobile network operator’s computers.

Ever wondered how USSD transactions work even without network data? This article explains the why and how.
Picture this: You’ve just run out of mobile data while in the middle of an important WhatsApp conversation.
You can’t use your internet banking to reload your phone because your data has finished, and borrowing from local telcos sucks because of the ridiculous interest rates. So, you return to your ever trustworthy USSD code *XYZ*amount#.
A few minutes later, your account is debited, your phone is credited and you continue with your WhatsApp conversation like nothing happened.
Sound familiar?
For many people around Africa, USSD transactions have become a trusted resort. If all else fails, you can at least trust your USSD codes to work. Whether you’re using mPesa’s *334# or GTB’s *737#, the process is the same.
However, behind the instant, reliable access that USSD provides is more than 20 years of technology at work. USSD, a more than 20-year old technology still processes more than 90% of transactions on the African continent.
But how exactly does it work?
We break down the fine print of how USSD works in this article.
What is USSD?
More academically known as Unstructured Supplementary Service Data, USSD is a communication system used on mobile phones. It has been active since at least 1997 when the ETSI published a document titled GSM GSM 02.90. The document detailed the protocol for what would later become USSD.
The idea behind the protocol was simple: it allowed mobile phone users to communicate with the computers of their service providers in real-time through a mobile network. Through a combination of special codes on the user’s end, they could trigger the network to open a session and communicate with their service providers’ computers to get essential information.
The special codes always follow the pattern *XYZ# where XYZ are numerical characters on the mobile phone keyboard.
USSD 1.0 - Internal Network Communication
Because it has been present for more than 20 years, USSD has undergone some transformation. The first popular use of USSD was for internal communications between a user’s mobile device and their mobile network operator’s computers. In simpler words, USSD’s first use was to allow you to communicate with your telco provider e.g. MTN, Vodafone, Safaricom, etc.
This first and very old USSD method allowed you to do things like making a balance inquiry, recharging airtime, buying data, and more from your telco provider. It works in a rather simple way:
- You initiate the USSD session by dialing a special set of code with the format *XYZ#
- Your phone connects to a mobile network and communicates with your telco’s computers
- Your telco’s computers process the request and send you back a response on the network
- You see a USSD response on your phone.

This process flow works for just one action. So if your action in the USSD session requires multiple steps e.g. Press 1 for another option, your phone repeats parts of the process multiple times.
Interestingly, USSD sessions do not have to be initiated by the users. They are sometimes initiated by the Network Operators too. An example of a Network Operator-initiated USSD session is the call summary notification at the end of a phone call that some people receive.
Telcos also use it to target people with promotions and special offers.
Raise your hand if you’ve accidentally bought a ringback tune from your telco provider :(
USSD 2.0 - Layered services and external communication
USSD’s success with internal communication and the ubiquity of mobile phones in Africa meant that other players started to think of ways they could benefit. This led to the creation of an extra layer of services on USSD.
Today, banks, financial service providers, the government, and many other stakeholders use USSD to communicate and receive information from mobile phone users across the continent.
Since USSD is primarily a way for people to communicate with their telco providers, this kind of USSD transaction works differently. For the sake of this article, we’ll call it USSD 2.0.
USSD 2.0 works something like this:
- You initiate the USSD session by dialing a special set of code with the format *XYZ#
- Your phone connects to a mobile network and communicates with your telco’s computers
- Your telco’s computers connect to the internet and transfer your request to an external computer.
- The external computer processes your request and sends a response back to your telco’s computers on the internet.
- Your telco’s computers process the response and send it back to you on the mobile network
- You see a USSD response on your phone.

Again, this process represents only a step in a USSD session. If you need to do multiple steps, some parts of the process will be repeated multiple times.
This second type of USSD transaction allows users to do things like USSD banking where they can connect to their banks (an external computer) through a USSD channel.
Also, this kind of transaction doesn’t have to be initiated by the user. It can as well be initiated by the external organization if they have permission from your telco. This explains the random promotional notifications that sometimes pop up on your screen.
What makes USSD so efficient?
USSD is the most popular way to do transactions across Africa. Research shows that it is used in 9 out of 10 transactions across the continent, establishing its importance. One of the reasons is that it doesn’t require an internet connection.
You see, even though a mobile network is opened during a USSD session, that network is not an internet connection. Instead, it is an internal network connection between your telcos computers and your device. This network is very reliable as it relies on direct machine-to-machine communication.
Read: How a 20-year old mobile technology protocol is revolutionizing Africa
But you say “What of USSD 2.0? Didn’t you say it required an internet connection?” Well, yes. USSD 2.0 requires an internet connection, but not from your mobile device. The internet connection that happens in USSD 2.0 is between your mobile network provider and the external computer. Ultimately, your phone never connects to the internet.
In addition, the data packets sent in a USSD session are capped at 16 bits of data, which is so small that they can be sent at lightning speed.
The reliability of USSD is crucial for transactions across Africa where internet penetration is still below 50%.
With USSD, you know you can connect wherever you are, whenever you want to.