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.

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.

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: 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. That same reconciliation engine is what we bring to a custom business management system.

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.

Our business websites start at UGX 1,000,000 (about KES 35,000, TZS 700,000, RWF 400,000 or 1,500 USD), and a straightforward Mobile Money checkout on a standard store sits inside that range. 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.

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