Guide · Development

Mobile money integration for your website or app, done the East African way

How to accept MTN, Airtel and M-Pesa on your site, store or system: aggregators, collections versus payouts, USSD prompts, reconciliation, real costs and the failures nobody warns you about.

Updated 14 July 2026·8 min read·By Growth Informer Software Services

Mobile money integration for your website or app in East Africa means connecting your checkout to MTN MoMo, Airtel Money, M-Pesa or Tigo Pesa so a customer pays from their phone balance and your system knows the moment the money lands. In practice you do this through a payment aggregator like Pesapal or Flutterwave rather than wiring each telco directly, because one aggregator contract and one API give you every wallet in the countries you serve. The hard part is not taking the payment. It is matching that payment back to the right order and handling the times the confirmation never arrives.

How a Mobile Money payment actually flows

When a customer clicks pay, your app sends the amount and their phone number to the aggregator. The aggregator triggers a STK push (M-Pesa) or a USSD prompt (MTN, Airtel) to that phone. The customer sees a menu, enters their Mobile Money PIN, and approves. The telco moves the money into the aggregator's collection account, and the aggregator fires a callback (a webhook) to your server saying the transaction succeeded, with a reference number. Your code catches that callback, marks the order paid, and shows the customer a receipt.

Two things make this regional and awkward. First, the whole exchange happens over slow data on a mid-range Android, so your checkout must survive a customer who backgrounds the app to read the USSD prompt and comes back 40 seconds later. Second, some customers close the prompt too early or run out of airtime data mid-flow, so the callback arrives late or never. A checkout that assumes instant success will show "failed" while the customer's money has actually left. You need to poll transaction status as a backup to the callback, never rely on the callback alone.

Ready to make it happen?Message us on WhatsApp for a fixed quote and an honest timeline, usually the same day.

Getting MTN MoMo and Airtel Money business API access

Before you can take Mobile Money directly, both networks want you registered on their own developer programme, with your own approval and your own credentials. Here is what that involves.

MTN MoMo

Sign up on MTN's own MoMo developer portal, momodeveloper.mtn.com. MTN's Open API gives you three products: Collections (Request to Pay, for money coming in), Disbursements (paying out to a list of recipients) and Remittances. You start in a sandbox with API user keys and access tokens, wire up your callback URL, then apply to MTN Uganda to go live. Going live needs its own onboarding and approval before real money moves.

Airtel Money

Airtel Mobile Commerce Uganda Limited, working with the UN Capital Development Fund, runs an Airtel Money Open API for collections and disbursements, authenticated with OAuth 2.0 and its own sandbox.

MTN and Airtel each run separate onboarding, API keys and go-live approval, so a business that wants both networks either builds and maintains two integrations, or goes through an aggregator such as Pesapal or Flutterwave that has already done both (see the options table below). If you would rather we handle the whole process for you, see our Mobile Money integration service.

Collections versus payouts: two different problems

Collections are money coming in: a customer paying for goods, a subscription, a booking. Payouts (also called disbursements) are money going out: you paying a supplier, refunding a buyer, or sending earnings to a vendor on your marketplace. They use different API endpoints, often different pricing, and payouts usually need extra verification because you are pushing money to phone numbers. If you are building a marketplace or a wallet, you need both. Moyo Pay, one of our reference builds, runs dual-currency wallets on a double-entry ledger with Mobile Money and USSD precisely because collections and payouts have to reconcile against each other to the shilling. Lenders disbursing loans by Mobile Money and collecting repayments the same way should check the numbers first with our loan calculator.

Your integration options, compared

Ways to add Mobile Money, and when each fits
RouteBest forWallets coveredTrade-off
PesapalUganda and Kenya stores, bookingsMTN, Airtel, M-Pesa, cardsStrong regional support, hosted checkout is less customisable
FlutterwaveMulti-country, apps needing one APIMTN, Airtel, M-Pesa, Tigo, cardsBroad reach, KYC onboarding takes time
Direct telco API (MTN MoMo, Daraja for M-Pesa)High volume, full controlOne telco per integrationCheapest per transaction, most engineering and separate contracts
Manual (customer sends to a till, you confirm by SMS)Very early stage, tiny volumeWhatever you hold accounts forNo integration cost, but manual matching does not scale

For most clients building an ecommerce website in Uganda or a booking system, start with one aggregator. Go direct to a telco only once volume makes the per-transaction saving worth the extra maintenance.

Reconciliation and testing: where projects quietly break

Reconciliation is matching every shilling the aggregator says it collected against every order in your database. It sounds trivial until you have a few hundred transactions a day. The failure modes are specific:

  • Failed callbacks. The customer paid, the webhook never reached your server (their data dropped, your endpoint timed out). The order sits as unpaid while the money is in your aggregator account. Fix: a scheduled job that queries the aggregator for any pending order older than two minutes and updates it.
  • Duplicate payments. A customer taps pay twice because the first prompt looked stuck. You must make your payment reference idempotent so the second callback does not create a second order or a second payout.
  • Manual matching. Teams that skip proper integration end up reading SMS confirmations and ticking orders off a spreadsheet. This is the single biggest hidden cost in East African commerce, and it breaks the moment one person goes on leave.
  • Amount mismatches. A customer sends 49,000 for a 50,000 order. Your system needs a rule for underpayment, not a crash.

Good reconciliation belongs inside your own admin, not a spreadsheet. Our own live platform, Growth Informer Business, is a cloud POS and inventory system built around exactly this: every Mobile Money collection lands against a specific sale automatically, whether that is a restaurant app taking payment at the table or a POS system ringing up sales on the floor. That same reconciliation engine is what we bring to a custom business management system.

Test in the sandbox before you go live

Every aggregator and telco gives you a sandbox with test credentials, and it is worth using properly rather than rushing to production. Before launch, test the happy path (a successful payment and callback), a delayed callback (confirm your polling job catches it), a failed or cancelled payment (the customer closes the prompt), a duplicate submission, and an underpayment. Test on an actual phone over ordinary mobile data, not only over office Wi-Fi, because that is where the timing problems show up. Only move to production once every one of those cases behaves the way your checkout expects.

What Mobile Money integration costs

There are two costs, and honest builders separate them. The transaction fee is charged by the aggregator or telco on every payment, typically in the region of 1.5% to 3.5% depending on wallet, country and volume, deducted from each collection. That is ongoing and it is not ours to keep. The build cost is what you pay us to integrate it into your site, store or system, and it folds into the project rather than being a separate line for a simple checkout.

A straightforward Mobile Money checkout on a standard store sits inside our standard business website price . Wallets, marketplaces with payouts, and multi-country systems are custom-quoted, because the reconciliation and payout logic is where the real engineering lives. Every project runs on our 50/25/25 plan: 50% to start, 25% at review, 25% at completion, and you own everything shipped. Full-scale custom software development in Uganda follows the same terms.

Getting it right the first time

Adding Mobile Money is not just dropping in a button. It is choosing the right aggregator for your countries, handling the callback that fails, polling as a backup, making references idempotent, and building reconciliation your finance person can actually read. We have shipped payment-heavy platforms including Moyo Pay's ledger and our own Growth Informer Business POS, plus commerce builds like White Gorilla Electronics. That is the capability we bring. Tell us your countries, your wallets and whether you need payouts, and we will scope it against a fixed price.

Frequently asked questions

Can I accept MTN, Airtel and M-Pesa through one integration?

Yes. An aggregator like Pesapal or Flutterwave gives you MTN MoMo, Airtel Money and M-Pesa (and Tigo Pesa in Tanzania) behind a single API and one contract, so you do not integrate each telco separately. You go direct to a telco only when volume makes the lower per-transaction fee worth the extra engineering and separate agreements.

What happens if the payment confirmation never reaches my site?

That is a failed callback, and it is common on slow data. The customer's money still moves, but your order stays marked unpaid. The fix is a scheduled job that queries the aggregator for the status of any pending order after a minute or two and updates it, so you never depend on the webhook alone. We build this into every payment integration.

How much does Mobile Money integration cost in Uganda?

Two costs. The aggregator or telco charges a per-transaction fee, roughly 1.5% to 3.5% depending on wallet and volume, deducted from each payment. The build cost is folded into your project: a simple checkout on a standard store sits inside our standard business website price . Wallets and payout-heavy systems are custom-quoted.

What is the difference between collections and payouts?

Collections are money coming in, such as a customer paying for an order. Payouts, or disbursements, are money going out, such as paying a supplier, refunding a buyer, or sending earnings to a marketplace vendor. They use different API endpoints and payouts need extra verification. Marketplaces and wallets need both, and the two must reconcile against each other.

Do customers need a smartphone or app to pay by Mobile Money?

No. The payment is confirmed through a USSD prompt or STK push sent to the phone number, and the customer approves it by entering their Mobile Money PIN. It works on any phone that holds the wallet, including basic handsets, which matters for reaching customers who are not on smartphones or fast data.

Six questions, about a minute

Get a fixed quote for your payment integration

Tell us what you need and where you are. We reply on WhatsApp with questions or a fixed quote, usually the same working day.

Ready to accept
Mobile Money the right way?

Tell us your countries, your wallets and whether you need payouts. We scope MTN, Airtel and M-Pesa integration against a fixed price, on our 50/25/25 plan, and you own everything we ship. Message us on WhatsApp to start.

Talk on WhatsApp