USSD payments in Nigeria, explained for builders
USSD payments reach 150m+ Nigerians on feature phones. Learn how to build with USSD, why it matters for rural markets, and which providers to use.
USSD payments in Nigeria, explained for builders
If you're building a fintech product in Nigeria and you're not thinking about USSD, you're building for less than half the market. USSD—Unstructured Supplementary Service Data—is the dial-up modem of mobile payments: it works on any phone that makes calls, requires no internet, and reaches an estimated 150 million Nigerians who either can't afford data or live in areas where 4G doesn't exist. For founders, that's not a limitation. That's an addressable market larger than the entire population of Japan.
The problem most builders face isn't understanding USSD technically—it's knowing when to use it, how to integrate it without destroying your product roadmap, and which providers won't leave you stranded mid-transaction. We've watched founders at LaunchPad spend months building elegant mobile apps only to realise they've locked out their actual customers. This article walks you through USSD as a payment rails builder should understand it: what it is, why it works in Nigeria specifically, how to integrate it, and where the real money is.
By the end, you'll know whether USSD is right for your product, which Nigerian USSD codes and providers to use, and how to structure your payment flow so it works for someone in Kano with a Nokia 3310 and someone in Lekki with an iPhone.
What USSD actually is, and why it works offline
USSD is a protocol that runs on the mobile network itself, not the internet. When you dial a code like *737# on any Nigerian phone, your phone sends that string to your network operator (MTN, Airtel, Glo, 9mobile) via the signalling layer of the cellular network. The operator routes it to a USSD gateway, which connects to a bank or fintech's server. That server processes your request—check balance, send money, buy airtime—and sends back a text menu. The whole transaction happens in the same channel your voice call uses. No data bundle required.
This is why USSD is so powerful in Nigeria. The CBN's 2024 financial inclusion report noted that mobile money transactions (largely USSD-based) accounted for over 40% of all digital payments by volume. More importantly: 80% of USSD users are on feature phones. In rural areas—Kano, Katsina, Sokoto, Osun—where network infrastructure is sparse and data is expensive, USSD is often the only digital payment method that works reliably.
For builders, this means USSD isn't a legacy channel you support "just in case." It's the primary channel for a majority of your potential users. If you're building a product that touches lending, bill payments, remittances, or commerce in Nigeria, USSD isn't optional.
The technical reason it works is elegantly simple. USSD operates on the GSM protocol layer that predates 3G. It was designed for menu-based services in the 1990s—think checking your balance or topping up airtime. Because it doesn't require an internet connection, it works in areas with spotty coverage. Because it runs on network infrastructure operators have maintained for decades, it's reliable. And because feature phones have supported it since 2000, it reaches everyone.
How Nigerian banks and fintechs use USSD codes
Every major Nigerian bank and most fintechs operate a USSD code. Here's what you need to know:
The main codes
| Provider | USSD Code | Use Case |
|---|---|---|
| Zenith Bank | *966# | Balance, transfer, airtime |
| GTBank | *737# | Balance, transfer, bills |
| Access Bank | *901# | Balance, transfer, loans |
| Guaranty Trust Bank | *737# | Balance, transfer, bills |
| UBA | *919# | Balance, transfer, airtime |
| Kuda | *546# | Balance, transfer, savings |
| Moniepoint | *997# | Balance, transfers, bill pay |
| Flutterwave | 9011# | Payment collection |
| Paystack | Uses bank codes | Merchant payments |
| OPay | *955# | Balance, transfer, airtime |
These codes are free to dial. The user doesn't pay to access the menu—they only pay when they initiate a transaction (transfer, bill payment, etc.), and the cost is the same as any other payment method. For your product, this means your users aren't being priced out of USSD because they can't afford data.
What's important for builders: each provider's USSD experience is different. GTBank's *737# is fast and reliable but limited to GTBank customers. Moniepoint's *997# works across networks and includes bill payments, but has different transaction limits. Flutterwave's code is designed for merchant payments, not peer-to-peer transfers. When you integrate, you're not just choosing a provider—you're choosing the user experience your customers will have.
Why USSD matters for your specific market
USSD adoption in Nigeria isn't uniform. It's concentrated in three areas:
1. Rural and semi-urban markets. In Kano, Katsina, Sokoto, and parts of Osun and Oyo, feature phones still dominate. The CBN's 2023 financial inclusion survey found that in rural areas, 65% of digital transactions happened via USSD. For products serving agricultural finance, rural commerce, or remittances, USSD isn't a nice-to-have. It's your main channel. Rural fintech in Nigeria: opportunities most founders are missing covers this in depth, but the short version is: if you're not serving rural Nigeria via USSD, you're not serving rural Nigeria.
2. Unbanked and underbanked users. About 40 million Nigerians have a mobile money account but no formal bank account. They use USSD because it's their only option. If your product is lending, savings, or bill payments, you're likely serving this segment. Ignoring USSD means ignoring your market.
3. Low-income urban users. In Lagos, Abuja, and Kano, plenty of users have smartphones but can't afford consistent data. They use USSD for critical transactions and app-based payments for others. Your product needs to support both.
The market data is clear. Statista reported that in 2024, USSD transactions in Nigeria exceeded 8 billion annually. That's not declining. It's growing, especially in tier-2 and tier-3 cities. If you're building a payment product and you're only thinking about card payments and app-based transfers, you're missing the largest payment channel by volume.
How to integrate USSD into your product
Integrating USSD is different from integrating card payments. You're not just adding another payment method. You're building a separate user flow that works on feature phones.
The basic flow
- User initiates payment from your app or website. They select USSD as their payment method.
- Your backend generates a unique reference code. This ties the transaction to the user's account.
- Your product displays the USSD code. Example: 9011*123456#
- User dials the code on any phone. They follow the menu prompts (confirm amount, enter PIN).
- The USSD provider processes the transaction. Money moves from their bank account.
- Your backend receives a webhook callback. This confirms the transaction and updates your database.
- User sees confirmation in your app or via SMS. Transaction complete.
The key difference from card payments: the user leaves your app to complete the transaction. They dial a code. This creates a UX challenge, but it's solvable.
Choosing a USSD provider
You have three options:
Option 1: Integrate directly with banks. You build USSD codes with GTBank, Access, UBA, etc. This gives you control but requires separate integrations for each bank. Most startups don't do this unless they're specifically building a bank transfer product. The overhead is high.
Option 2: Use a payment aggregator. Paystack, Flutterwave, and Moniepoint all offer USSD collection. You integrate once; they handle the bank connections. This is the most common approach. How to accept payments for a Nigerian product (cards, USSD, transfer) compares these in detail, but the short version: Flutterwave and Moniepoint have stronger USSD support than Paystack, though Paystack's integration is simpler if you're already using them for cards.
Option 3: Use a specialist USSD provider. Companies like Remita and Interswitch offer USSD-specific integrations. These are older, more established, and sometimes more reliable for high-volume transactions. They're also more expensive and have slower developer support than modern fintechs.
For most founders, Option 2 is the right choice. You get reliability, developer support, and the ability to add other payment methods later. Best Paystack alternatives for African SMEs in 2026 breaks down which aggregators make sense for different use cases.
Integration checklist
- Test on feature phones. Don't just test the API. Get a feature phone and dial the actual code. See what your users see.
- Handle timeouts. USSD is slower than cards. Your app should wait 30-60 seconds for confirmation, not 5.
- Implement webhook verification. Verify that callbacks from your provider are actually from them, not fraudsters.
- Build a fallback. If USSD fails, offer the user another payment method. Don't leave them stuck.
- Test with actual transactions. Use test codes first, but eventually, process real money. Test environments don't always match production.
- Monitor success rates. USSD success rates vary by provider and network. Track which combinations work best for your users.
Real examples: how Nigerian fintechs use USSD
/launch/okada, the motorcycle logistics startup, uses USSD for rider payouts. Most of their riders are in Lagos and Kano, and many use feature phones. By integrating USSD, they can pay riders instantly without requiring a smartphone or data connection. This is a competitive advantage—it reduces friction in their supply chain.
/launch/farmpay, which provides agricultural financing, built USSD as their primary payment method. Their customers are smallholder farmers in rural Nigeria. Most don't have smartphones. By making USSD the first option (not the last), they've built a product that actually reaches their market. Their transaction success rate is 15% higher than competitors who only offer app-based payments.
Both of these companies made the same decision: they didn't treat USSD as a legacy channel. They designed their products around it.
The limits of USSD and when to use alternatives
USSD is powerful, but it's not the answer for everything.
USSD works well for:
- Single transactions (send money, pay a bill, buy airtime)
- Users on feature phones
- Low-internet areas
- Users who don't have app storage space
- High-volume, low-value transactions
USSD doesn't work well for:
- Complex flows (comparing products, detailed reporting)
- Real-time inventory updates
- Rich media (images, videos)
- Recurring subscriptions (though some providers support this)
- Users who need detailed transaction history
The right approach is layered. Build USSD for transactions. Build an app for users who have smartphones and data. Build a web interface for users with computers. This way, you're serving every segment of your market.
Building for both USSD and apps
The challenge most founders face is that building for USSD and apps simultaneously feels like building two products. It's not. It's building one product with two interfaces.
Your backend should be agnostic to the interface. Whether a transaction comes from USSD, an app, or a web form, your database should treat it the same way. This means:
- Separate your business logic from your UI. Use APIs, not direct database calls.
- Build USSD as a thin client. It's just a way to initiate transactions. The real logic lives on your server.
- Design transactions to work in both flows. A payment should be a payment, whether it comes from an app or USSD.
- Test both flows with real users. A developer in Lekki with 4G will never catch the bugs a user in Kano on 2G will find.
This is why products like Kuda and Moniepoint have been successful. They built a core product (a digital wallet) and then added multiple interfaces: app, USSD, web, agent network. The product is the same. The interface changes based on the user.
USSD and regulatory compliance
One thing founders often miss: USSD is regulated. The CBN has specific rules about who can operate USSD services and what they can do.
Key points:
- You can't operate USSD directly. You must partner with a licensed bank or payment service provider.
- Your USSD provider must be registered with the CBN as a Payment Service Provider (PSP) or a bank.
- Transaction limits vary by provider and account type. A basic USSD user might have a daily limit of N500,000. This isn't arbitrary—it's CBN policy.
- KYC requirements apply. Even USSD transactions are subject to Know Your Customer rules.
- You must report USSD transactions to FIRS for tax purposes if you're a merchant.
When you choose a USSD provider, verify they're licensed. Paystack, Flutterwave, and Moniepoint are all licensed PSPs. Smaller providers may not be. Using an unlicensed provider puts your business at legal risk.
The future of USSD in Nigeria
USSD isn't going away. If anything, it's becoming more sophisticated. The CBN's 2024 directive on Open Banking includes provisions for USSD interoperability, which means you'll be able to use USSD to access services across multiple banks and providers more easily.
What's changing is integration complexity. Newer providers are building USSD APIs that are easier to use. Response times are getting faster. Success rates are improving. The ecosystem is maturing.
For builders in 2026, the question isn't whether to use USSD. It's how to use it well. The founders who will win are the ones who treat USSD not as a payment method for poor people, but as a payment method for a massive, growing market segment.
FAQ
Q: Do I need to integrate USSD if I'm only building for Lagos? A: Not necessarily. In Lagos, smartphone penetration is higher and data is cheaper. However, even in Lagos, 20-30% of transactions still happen via USSD, especially for lower-income users. If you want to capture that segment, USSD is worth it. If you're explicitly targeting high-income users, you can prioritise cards and app-based transfers.
Q: What's the difference between USSD and mobile money? A: USSD is a technology. Mobile money is a service. All mobile money in Nigeria uses USSD as one interface, but mobile money also includes apps, web, and agent networks. When you see "*997#" for Moniepoint, that's USSD. When you use the Moniepoint app, that's mobile money using a different interface.
Q: How long does a USSD transaction take? A: Typically 15-45 seconds from the time the user dials the code to confirmation. This is slower than a card payment (2-5 seconds) but faster than a bank transfer (which can take hours). For your UX, assume 60 seconds and build timeout handling.
Q: Can I charge users for USSD transactions? A: No. USSD is a free service provided by the network operator. You can't add a surcharge for using USSD. You can charge the same fee regardless of payment method (card, USSD, transfer), but you can't make USSD more expensive.
Q: What happens if a USSD transaction fails halfway through? A: This is rare but possible. If the user dials the code but doesn't complete the menu, or if the connection drops, the transaction is cancelled. Money doesn't move. Your backend should handle this by offering the user a retry option or an alternative payment method. Your provider should also send you a webhook notification of the failure.
What to do next
If you're building a payment product, start here: read How to accept payments for a Nigerian product (cards, USSD, transfer) to see how USSD fits into your overall payment strategy. Then, if you're targeting rural or underbanked markets, explore Rural fintech in Nigeria: opportunities most founders are missing to understand your actual addressable market. Finally, compare your payment aggregator options with Best Paystack alternatives for African SMEs in 2026 to find the provider that best supports USSD for your use case.
Start testing with real users on feature phones. That's where you'll learn what matters.
Frequently asked questions
Do I need to integrate USSD if I'm only building for Lagos?
What's the difference between USSD and mobile money?
How long does a USSD transaction take?
Can I charge users for USSD transactions?
What happens if a USSD transaction fails halfway through?
Mentioned in this article
Founder of LaunchPad. Building the home for Nigerian makers. Previously shipped Headhunter.ng and a handful of other things.