Skip to content
NaiForge
Directhello@naiforge.com

Replies within 24h · Karen, Nairobi

Payments12 min read

M-Pesa Checkout for Ecommerce: The Complete Kenyan Merchant Guide (2026)

M-Pesa is most of Kenyan ecommerce checkout. Here is how it actually works under the hood, the three practical ways to accept it on a website, and what changes when you stop renting your platform.

By the NaiForge team

Somewhere between seventy and eighty percent of Kenyan ecommerce transactions run through M-Pesa. If your checkout doesn't do it well, you're not running a Kenyan ecommerce business — you're running a foreign one that happens to ship to Nairobi. This is the honest survey of how M-Pesa actually gets onto a website in 2026, and what's worth caring about when you choose your stack.

Skip to: Why M-Pesa matters · Three ways to accept it · Real fees compared · The Shopify subscription tax · Red flags · The setup checklist

Why M-Pesa dominates Kenyan ecommerce checkout

A quick grounding for anyone reading this from outside Kenya (or from inside Kenya but new to ecommerce). As of early 2026:

  • M-Pesa has ~35 million active users in Kenya — roughly 70% of adults. It processes the vast majority of retail payments in the country.
  • Card penetration is low. Credit and debit cards exist, but cash flow culturally and mobile-money structurally dominate. A Kenyan consumer is far more likely to pay KES 3,500 via M-Pesa than tap a card.
  • Kenyans trust M-Pesa more than cards online. Card-not-present fraud experiences have made most shoppers wary. The M-Pesa pop-up flow feels familiar and safe.
  • Conversion difference is real. We've seen Kenyan ecommerce sites lift conversion 30-70% by adding a proper M-Pesa checkout vs only offering card payments.

If you're building for Kenyan customers, M-Pesa isn't "a nice-to-have payment option." It's the primary one. Everything else — Visa, Mastercard, PayPal, crypto — is secondary.

The three practical ways to accept M-Pesa on a website

Underneath all of them sits the same thing: Safaricom's Lipa Na M-Pesa Online API (commonly called Daraja), which actually pushes the PIN prompt to the customer's phone and credits your Till or Paybill. Almost no SMB integrates that API directly — you'd be running a small payments shop on the side. Instead, you pick from three practical routes:

1 — Payment gateway (the default for most Kenyan online shops)

A Kenyan payment gateway — Paystack, IntaSend, Pesapal, or Flutterwave — wraps Safaricom's M-Pesa API (plus cards, bank transfer, and so on) into a single merchant account and a drop-in checkout. Your developer embeds their widget, hosted page, or server-side API. The gateway handles the M-Pesa pop-up, takes their cut, and settles to your bank or M-Pesa account on a schedule.

  • Who offers this: Paystack, IntaSend, Pesapal, Flutterwave, DPO Group
  • Total merchant fee: ~2.5-4% on M-Pesa; ~3-3.8% on cards. Comparable across providers; differences live in settlement speed, dashboard, support, and currency support
  • Setup time: Hours to days. KYC required (business docs, directors' IDs)
  • Technical complexity: Low — a widget, hosted redirect, or simple API call
  • Best for: Almost every Kenyan SMB with its own website. This is the realistic default. NaiForge wires Paystack by default and IntaSend, Pesapal, or Flutterwave on request

2 — SaaS platform plugin (Shopify, Wix)

You're on Shopify or Wix and install their Pesapal/IntaSend/Flutterwave plugin. Functionally, the customer's M-Pesa pop-up is the same flow as option 1 — your money still goes through one of the same gateways. But you're now also paying the platform: Shopify's monthly subscription, plus Shopify's 2% alternative-payment surcharge that kicks in because Shopify Payments isn't available in Kenya. See the subscription tax section.

  • Who offers this: Shopify apps, Wix integrations
  • Total per-transaction fee: Gateway's 2.5-4% + Shopify's 2% surcharge on Shopify; gateway only on Wix. Plus the monthly subscription on top of every sale, regardless of volume
  • Setup time: 30 minutes to 2 hours
  • Technical complexity: Minimal
  • Best for: Merchants already committed to Shopify or Wix for non-M-Pesa reasons (specific apps, international fulfilment) and willing to pay the subscription

3 — Manual Till/Paybill (the "WhatsApp method")

No checkout integration at all. Customer sees your product somewhere (social, DM), asks to buy, you send your Till number, they pay, they screenshot, you verify on your M-Pesa app, you dispatch.

  • Who offers this: Every Kenyan merchant at some point
  • Total merchant fee: Just Safaricom's Lipa Na M-Pesa rate
  • Setup time: Zero
  • Technical complexity: None — and that's the problem at scale
  • Best for: Under 20 orders/day, warm-audience businesses still finding product-market fit. See our full Instagram vs website guide for when to graduate

A note on "direct Daraja." You'll see "native Daraja integration" listed as a separate option in older guides. In practice it's not — Daraja is the underlying Safaricom API every gateway above wraps. A non-payments-focused SMB integrating it directly takes on KYC, certificate management, settlement, reconciliation, chargebacks, and ongoing compliance work that a gateway exists to handle. For an ecommerce shop, the realistic question is which gateway, not whether to skip them.

Real fees compared — what each option actually costs

Below is the typical merchant cost per M-Pesa transaction at a KES 3,500 order, by approach:

MethodPer-transaction feeOn a KES 3,500 orderPlus monthly subscription?
Paystack (M-Pesa)~2.9-3.5%~KES 115None
IntaSend~2.5-3.0%~KES 100None
Pesapal~3.0-3.5%~KES 120None
Flutterwave~3.0-3.8%~KES 125None
Shopify + gateway pluginGateway rate + 2% Shopify surcharge~KES 185USD 29-299/month, in USD
Wix + gateway pluginGateway rate (no platform surcharge)~KES 100-130USD 17+/month, in USD

Rates are typical 2026 ranges; larger merchants can negotiate. Specific gateway fees change — always verify with the provider before signing.

The honest read of the table: per-transaction gateway fees are roughly comparable across providers. They're not where the moat is. The real lever is the layer above: a Shopify subscription billed in USD plus a 2% alternative-payment surcharge stacks on every single sale, every single month, whether you sell or not. A standalone site on the same gateway pays the gateway and stops there.

The Shopify subscription tax — what nobody tells Kenyan merchants

If you're on Shopify selling to Kenyan customers, you pay for the platform on top of M-Pesa in three ways:

  1. Shopify's monthly subscription — USD 29-299/month. Billed in USD, so you're also exposed to the KES/USD rate every month. A merchant on Shopify Basic for three years has paid USD 1,044 (~KES 137,000) in subscription alone before a single product sells.
  2. Shopify's 2% alternative-payment surcharge. Shopify charges this whenever you use any payment processor that isn't Shopify Payments. Shopify Payments is not available in Kenya, so Kenyan merchants have no way to avoid it. It's effectively a tax on being Kenyan on Shopify.
  3. The gateway's own M-Pesa fee. Same as you'd pay on a standalone site — the gateway doesn't care which platform sits in front.

Wix is similar on the recurring-fee axis (lower monthly, no platform surcharge), but the same fundamental shape: your storefront is rented monthly, in USD, on someone else's terms.

The replacement isn't "skip the gateway." It's own the storefront so you only pay per transaction, not per month. The gateway fee is the same; the platform tax goes to zero.

Choosing between gateways

Since fees are close, the differences worth checking before you commit:

  • Settlement speed. Some settle T+1, others T+2 or T+3. If your working capital is tight, this matters more than 0.3% on the rate card.
  • Cards and international currency. If 20%+ of your revenue is USD or EUR, Paystack and Flutterwave have stronger international coverage; DPO and Pesapal are deeper on Kenya/East Africa.
  • Dashboard and reconciliation. The cost of a clunky payouts screen at month-end is real. Try the actual dashboard before signing.
  • Support responsiveness. Ask current merchants — not the sales rep — how fast tickets get answered when checkout breaks at 9pm on a Saturday.
  • What your developer already supports. If you're going productized, the gateway your builder already has wired up costs less to ship and is easier to support.

Red flags — spot a bad M-Pesa integration before you pay for it

Things to walk away from:

Flag 1 — "We'll set up M-Pesa for you" without specifying which gateway

A developer who can't name the gateway they'll wire (Paystack, IntaSend, Pesapal, Flutterwave) is either using whichever one's easiest for them or doesn't actually know. Ask which gateway and whether you'll own that merchant account directly.

Flag 2 — KES 20,000-50,000 standalone "M-Pesa integration fee"

Wiring a gateway widget into a checkout is not a multi-day job. It should be included in any competent Kenyan developer's website package, not bolted on as a separate line item. If someone's charging an extra KES 30,000 specifically to "add M-Pesa" on top of a base site fee, they're padding the bill.

Flag 3 — They want to own your gateway merchant account

The gateway merchant account belongs to your business, in your business's name, with your bank or M-Pesa settlement details. If a developer wants to route your sales through their account and pay you out, that's a major red flag — your money, your KYC, your account.

Flag 4 — No callback/webhook handling

Lipa Na M-Pesa Online requires your server to receive a confirmation callback before marking the order paid. Without it, you're trusting the client-side response, which can be faked. Ask: "How do you verify the payment actually completed before fulfilling the order?" Correct answer: "Via the gateway's confirmation webhook on our server." Wrong answer: "The customer sees a success page."

Flag 5 — No error handling for timeouts

The M-Pesa pop-up times out if the customer doesn't enter their PIN within 30-60 seconds. A good integration handles this gracefully (shows "payment taking longer than expected, we'll confirm when complete"). A bad one shows a 500 error and leaves the customer unsure whether they were charged.

Flag 6 — "I'll give you the source code later"

If you're paying for your own site, you own the code. Get repo access on day one. This is also a good proxy for whether the developer knows what they're doing — opaque black-box builds usually hide brittle plumbing.

The setup checklist — what to do this week

If you're launching or migrating a Kenyan ecommerce site right now, the sequence is:

  1. Register your Till or Paybill with Safaricom (if you haven't). You need a KRA PIN and business registration docs. Takes 1-3 working days; costs KES 1,000-3,000 depending on tier.
  2. Pick a gateway. Paystack, IntaSend, Pesapal, or Flutterwave. Fees are close; choose on settlement speed, dashboard, support, and currency coverage. If you're using a productized developer, ask which they default to — friction matters.
  3. Open the merchant account in your business's name. Submit KYC docs (business reg, KRA PIN, directors' IDs, settlement details). Review takes 1-5 working days. The account is yours, not your developer's.
  4. Embed the gateway checkout in your site, wire success and failure callbacks, and test the full flow end-to-end in the sandbox.
  5. Test live with a KES 10 transaction through your own checkout via your own phone. Check the receipt, the callback, the order status, the confirmation email. Kenyan merchants get burned when the first real customer is the first real test.
  6. Have a fallback. Display your Till/Paybill number somewhere on the site (footer or order-confirmation email) so customers can pay manually if the pop-up fails. This is a 0.1% edge case in healthy setups, but the customer who needs it will remember you forever if you handle it well.

How NaiForge handles M-Pesa

Honest version, since this is a NaiForge blog. Every NaiForge package — Starter (KES 25,000), Standard (KES 45,000), and Premium (KES 80,000+) — ships with M-Pesa checkout wired through Paystack by default, or your preferred gateway (IntaSend, Pesapal, Flutterwave) on request. Per-transaction gateway fees are roughly the same wherever you go; that is not where we save you money.

Where the money actually compounds: one-time payment, no recurring fees. No Shopify monthly subscription billed in USD. No 2% alternative-payment surcharge stacked on every Kenyan sale. You own the code, you own the merchant account, and the only ongoing cost on the site itself is hosting (typically free-to-very-cheap at SMB volume) and your domain.

On the integration itself we handle: M-Pesa pop-up trigger, customer-side error handling, timeout UX, webhook verification, order status updates, payment reconciliation, admin dashboard view, and fallback Till-number display for the rare case the gateway is down.

See the full package breakdowns at NaiForge pricing, or if you're comparing against a specific SaaS option: NaiForge vs Shopify walks through the recurring-fee math in more detail.

If you're earlier in the journey and don't have a site yet at all, start with the ecommerce pricing guide or the Instagram-to-website graduation piece.

Ready to build yours?

One-time KES pricing, M-Pesa checkout, 5-7 days. No quotes, no surprises.