Mctaba Labs logo
BootcampData ScienceThe WhiteboardProjectsEventsMasterclassesWebinarsLearn
Book CallApply

500+ developers already in the community

Get answers, find accountability partners, and stay ahead

Join Discord →
Mctaba Labs logo

Educating 1 million students in tech by 2030.

Programs

  • Coding Bootcamp in Nairobi
  • Data Science to AI Engineering
  • HighSchool Graduates Launchpad
  • AI & Business Automation
  • Corporate Training
  • Kids & Teens
  • McTaba Story & Mission
  • Full-Stack Curriculum
  • Course Pricing & Plans
  • Frequently Asked Questions

Resources

  • Join Discord Community
  • Tech Events in Nairobi
  • Masterclasses
  • Free Resources
  • Learn
  • Data Science Guides
  • African Payments Reference
  • Campus
  • Africa Tech Talent Report
  • Partner With Us
  • Start a Project
  • Software & AI Studio
  • Our Work
  • Outcomes

Contact Us

  • 124 Manyani East Road, Lavington, Nairobi
  • +254727795603
  • Book a Discovery Call

Office Hours:

Mon-Fri: 9am - 2pm EAT

Sat: 10am - 12pm EAT

© 2026 Mctaba Labs - A product of Edtech Industries. All rights reserved.

Privacy PolicyTerms of ServiceRefund Policy
  1. Learn
  2. Guides for Business Owners Who Need Software Built
  3. One Checkout for M-Pesa, MoMo and Cards Across East and West Africa
Bonaventure OgetoBy Bonaventure Ogeto|Updated November 3, 2026

Last checked 3 November 2026

One Checkout for M-Pesa, MoMo and Cards Across East and West Africa

Use an aggregator when you sell in several countries and want one integration. Use direct rails where one market carries most of your volume and fees matter. Whatever you pick, check the provider page for each country today, keep one payment record in your own database and plan for late, duplicate and failed payments.

In this article

  1. 1. The problem: one buyer, five phones, four currencies
  2. 2. Aggregator or direct rails
  3. 3. Which provider covers which country
  4. 4. Currency and settlement: where the money lands
  5. 5. Failure handling: what happens when the phone prompt goes unanswered
  6. 6. Checkout design for mixed rails
  7. 7. How to start without overbuilding
  8. 8. Plan your multi-country checkout

The problem: one buyer, five phones, four currencies

Picture a ticketing site with buyers in Nairobi, Kampala, Accra and Lagos. A Nairobi buyer pays with M-Pesa. An Accra buyer expects mobile money from her network. A Lagos buyer may pay by card or bank transfer. One checkout page has to feel the same to all of them.

Behind the page, each payment type has its own provider, its own rules and its own way of saying "it worked".

This guide explains the two ways to build that page and how to pick. It sits inside our series for buyers: the total budget is in how much it costs to build an app in Kenya.

Aggregator or direct rails

An aggregator is one company you integrate with, which then talks to many payment methods. A direct rail means you integrate with the mobile money operator or bank yourself.

AggregatorDirect rails
Build effortOne integrationOne integration per operator and country
FeesA percentage, set by the aggregatorOperator tariffs, often lower at high volume
Time to launchWeeksMonths, with approvals per market
ControlLess: you follow their roadmapMore: you set the flow
ReconciliationOne dashboard and one report formatOne statement per operator
Best forStarting out, many countries, small volumesOne large market, high volumes, special flows such as payouts

If your plan covers several countries and you want one partner to scope it, you can ask Mctaba Labs about a multi-rail payments integration.

Most teams start with an aggregator and add a direct rail in the one country where fees begin to hurt. The code should treat payments as a plug-in, so swapping one provider costs a week, not a rebuild.

Get weekly developer tips

Join 25,000+ developers. Practical guides, job tips, and new content — straight to your inbox.

No spam. Unsubscribe anytime.

Which provider covers which country

Coverage changes, and a list copied from a blog goes stale in months. Read the provider's own page on the day you decide.

Today, Paystack's countries page lists Côte d'Ivoire, Egypt, Ghana, Kenya, Nigeria, Rwanda and South Africa, and links to an Others page for further markets. It names cards, mobile money (M-Pesa) and Apple Pay as channels but does not say which channel works in which country (Paystack supported countries, checked on 3 November 2026). So confirm the channel for each country with Paystack before you promise it on your site.

For Kenya, M-Pesa through Paystack is priced at 1.5 percent per transaction, with local cards at 2.9 percent and international cards at 3.8 percent (Paystack Kenya pricing, checked on 3 November 2026).

For direct rails, the operator developer portals are the source: Safaricom Daraja for M-Pesa, MTN MoMo Developer portal and Airtel Africa developer portal. The MTN portal's front page lists its collection products (Request Payment, Refund, Notify, Payment Status, Account Balance) but does not list countries, so we do not claim a country list for MTN or Airtel here (checked on 3 November 2026). Ask each operator which markets your business can be onboarded in.

Our own work covers M-Pesa through Daraja and Paystack in Kenya. The marketing line on our work page is "Paystack, M-Pesa and Airtel Money in one checkout, currency-aware and mobile-first". For any other country, we would verify the official page first, as above.

Currency and settlement: where the money lands

Selling in Ghana cedis and getting paid in Kenya shillings sounds simple. It has three moving parts.

  • Display currency. What the buyer sees on the page. Show the local currency, rounded the way local shops round.
  • Charge currency. What the provider charges. This should match what the buyer's wallet or card can pay.
  • Settlement currency. What lands in your account, and when. Paystack's Kenya page states settlement two working days after payment, to a bank account or M-Pesa wallet (Paystack Kenya pricing, checked on 3 November 2026). Other markets can differ, so ask.

Two decisions follow. First, who carries the exchange-rate risk: you or the buyer. Second, whether you hold balances in several currencies or convert at once. A small company usually converts at once and accepts the spread.

Store money as whole minor units, such as cents, and keep the currency code beside every amount. Our note on handling money in code shows why a floating-point number is a bad place to keep shillings.

Failure handling: what happens when the phone prompt goes unanswered

Mobile money is not a card form. The buyer gets a prompt on a handset and may ignore it, mistype a PIN, run out of balance or lose signal. Your checkout has to cope with each.

  1. Pending. Show "Check your phone" with a timer, and a clear way to retry.
  2. Failed. Show the reason in plain words: wrong PIN, not enough balance, request cancelled.
  3. Late success. The buyer closes the page, then pays. Your server must still mark the order paid when the result arrives.
  4. Duplicate result. The provider can send the same notice twice. Handling it twice must not ship two orders.
  5. Never arrived. If no result comes, your system should ask the provider for the status after a set time.

The pattern behind this is one payment record in your own database with a status, updated only by verified notices from the provider. Never trust the browser to say a payment worked. Read securing payment webhooks and M-Pesa callback URLs for the mechanics.

Refunds need the same care. Some mobile-money rails refund differently from cards, and some do not refund at all in the same way. Ask each provider how a refund is made before you put "money back guarantee" on the page.

Checkout design for mixed rails

  • Put the buyer's most likely method first, based on their country, and let them change it.
  • Ask for a phone number only when the method needs one, and show the expected format.
  • Show the total in the local currency before the buyer pays.
  • Send a receipt by email or WhatsApp straight after the success notice.
  • Give a support route inside the page: a WhatsApp number works well across East and West Africa.

Receipts raise a tax question in Kenya. Our guide to eTIMS integration for restaurants and shops covers what a Kenyan seller must issue after a sale.

How to start without overbuilding

Start with the one country that carries most of your sales. Launch there on an aggregator. Measure what share of buyers pay by mobile money and by card. Add the second country only when you have real orders waiting for it.

Ask any team you hire for a short design note that names, for each country: the provider, the methods, the currency, the settlement time and the refund route. If the note has gaps, the quote has risks. Our list of 12 questions to ask before you hire a software studio helps you press on those gaps.

Test with real small payments in each country before launch. Pay from a local SIM, cancel a prompt, pay twice, and check the order status each time. A checkout that passes only the happy path will fail on a Friday evening, when the most buyers pay.

Cost for the Kenyan leg alone is covered in what it costs a business to integrate M-Pesa.

Plan your multi-country checkout

Write down your top three countries, the payment methods your buyers use there and your monthly volume. With that list, a payments team can say which provider fits each market and what to verify first.

To work through it with us, ask Mctaba Labs about a multi-rail payments integration.

Key Takeaways

  • ✓Aggregators trade fees for speed; direct rails trade effort for control.
  • ✓Check each provider page for each country on the day you decide, because coverage changes.
  • ✓Keep one payment record in your own database, updated only by verified provider notices.
  • ✓Plan for pending, failed, late and duplicate payments from the first design note.

Frequently Asked Questions

Can one integration take M-Pesa, MoMo and cards?
An aggregator can offer several methods through one integration, but coverage differs by country. Check the provider page for each market and ask which method works where before you promise it on your site.
Is an aggregator or a direct integration better?
Aggregators suit several countries and low to moderate volume because they save build time. Direct rails suit one large market where fees are a big monthly cost. Many teams start with an aggregator and add a direct link later.
How do I handle a customer who paid but the page showed failed?
Keep your own payment record and update it only from verified provider notices, not from the browser. A late success notice then marks the order paid even if the buyer closed the page.
Which currency should my checkout charge in?
Charge in the currency the buyer can pay with, show it before payment and store each amount with its currency code. Settlement currency and timing come from the provider, so ask for it in writing.

Need payments live, not a tutorial?

Our studio integrates M-Pesa, Airtel Money, MTN MoMo and Paystack into your product, with reconciliation that holds up on busy days.

Book a scoping call

Want your own team to run it? See corporate training

Related guides

  • Paystack Mobile Money Provider Codes: mtn, atl, vod, mpesa, orange and wave by Country

Keep reading

How Much Does It Cost to Build an App in Kenya (2026)?

An app quote is the sum of seven choices you make before anyone writes code. Here is each one, the team options, and how to get quotes you can compare.

Read more

What It Costs a Business to Integrate M-Pesa, Start to Live

M-Pesa integration has four costs: the shortcode, the developer time, the fee on each sale and the upkeep. Here is each, and the Paystack shortcut.

Read more

M-Pesa Daraja API Integration Guide for Developers (2027)

A technical guide to integrating M-Pesa payments using the Daraja API, from sandbox setup to production deployment, with working code examples.

Read more

Explore related topics

The African Stack: Skills for This Market

The skills that make Kenyan developers hard to replace: M-Pesa, USSD, WhatsApp, fintech, and building for the African market.

M-Pesa & African Stack

M-Pesa Daraja API tutorials, USSD development, and WhatsApp Business API guides. The African Stack that global bootcamps do not teach.

Paystack for African Developers

Complete Paystack engineering resource. 653 articles covering every API, every error, and every integration pattern African developers actually need.

Bonaventure Ogeto

Bonaventure Ogeto

Founder and CEO, Mctaba Labs

Software engineer for 8+ years. He runs a Nairobi studio that ships products on M-Pesa, WhatsApp and AI, and teaches what the studio ships.

More about the author