Almost every Kenyan business says it accepts M-Pesa. On most business websites, what that actually means is a line of text at checkout: "Pay to Paybill 123456, account number your name, then send us the confirmation message."

That is not accepting M-Pesa online. It is asking a customer who was ready to pay to leave your site, open another menu, type two numbers without a mistake, and then prove to you that they did it. Some will. Some will get distracted halfway. And somebody on your team will spend the evening matching messages to orders.

This post is about why a proper integration is worth having, what it changes for you and your customers, and, honestly, when you do not need one yet. If you want the technical how-to instead, go to how to add M-Pesa payments to your website.

The Numbers Behind It

These are Safaricom's own figures for Kenya, for the year ended 31 March 2026:

40.99 millionone-month active M-PESA customers, up 14.5%
1.04 millionactive Lipa Na M-PESA merchants, up 54.2%
KShs 41.68 trillionmoved through M-PESA in the year, up 8.9%

Source: Safaricom PLC results booklet, audited results for the year ended 31 March 2026.

Put simply, M-Pesa is how most of your Kenyan customers already pay for things, every month. The question for a business website is not whether customers use M-Pesa. It is whether paying you with it is easy or awkward.

Displaying a Paybill vs Integrating M-Pesa

Paybill shown on the pageIntegrated M-Pesa checkout
What the customer doesLeaves the site, opens the M-Pesa menu, types your Paybill and account reference, pays, then sends you proofTaps Pay, gets a prompt on their phone, enters their PIN
Typing mistakesWrong account reference or amount, then a phone call to sort it outYour site fills in the amount and reference
How you know they paidA forwarded message or screenshot, checked by handSafaricom confirms it to your system directly
Order statusUpdated by a person, when they get to itMarked paid automatically, day or night
ReconciliationMatching statements to orders at the end of the dayEach payment already linked to its order
Screenshots are not proof of payment. Forged M-Pesa confirmation messages are a well-known trick. An integrated checkout does not rely on anything the customer sends you; it waits for Safaricom's own confirmation before marking the order paid.

What Integration Changes for Your Business

No manual confirmation

Orders are marked paid the moment Safaricom confirms, including at 11pm on a Sunday, with nobody on duty.

No evening reconciliation

Every payment is already matched to its order, invoice or customer, with reports you can pull whenever you need them.

Automatic follow-up

A successful payment can trigger the receipt email, the stock update and the alert to your team in one go.

Money going out, too

The same integration can send refunds, supplier payments or marketplace payouts through M-Pesa (B2C).

For businesses that bill every month, such as schools, gyms and software subscriptions, it also means charging customers by M-Pesa without insisting on a card they may not have.

What It Changes for Your Customer

Who Needs It Most

Any website that takes payment online, and especially:

When You Do Not Need It Yet

Integration is not a must for every website, and it would be misleading to say otherwise.

The honest test: count how often customers pay you through the website, and how much time your team spends confirming and matching those payments. When either number starts to hurt, integrate.

Also remember M-Pesa does not cover everyone. A customer abroad, or a company paying on a corporate card, may not be able to pay by M-Pesa at all. If you sell to them, add cards alongside it. Our payment gateway guide covers the options.

What a Good M-Pesa Checkout Looks Like

  1. M-Pesa is the first option for a Kenyan audience, not buried under a card form.
  2. The phone number field accepts how people type it, whether that starts 07, 01 or +254.
  3. It says what happens next: "Check your phone and enter your M-Pesa PIN".
  4. It handles a missed prompt with a clear "Try again" button, not an endless spinner.
  5. It offers a fallback, such as paying by Paybill, when the prompt does not arrive.
  6. It confirms clearly on screen and by email or SMS once Safaricom confirms the payment.

Get these wrong and even a working integration loses customers at the last step. The interface matters as much as the plumbing; we wrote more about that in the impact of user interface design.

What It Takes and What It Costs

You need a Paybill or Till Number, or a Daraja API merchant account from Safaricom, and a website on HTTPS. If you do not have a Daraja account, we register one for you and request go-live. It works on WordPress and WooCommerce, custom PHP, Laravel, Node.js, and mobile apps, because the integration happens at the payment layer.

ItemDetail
PriceKES 5,000 one-time fee, all-inclusive
CoversSTK Push, Paybill and Till confirmations, B2C payouts, reconciliation and reporting, Daraja registration, live test transactions, ongoing support
TimelineMost go live within 5 to 10 working days; complex setups take 2 to 4 weeks
Not includedSafaricom's own transaction charges on your Paybill or Till, which Safaricom sets

It is a flat one-time fee, not a cut of every transaction. Before launch we run real KES 1 transactions through your live Paybill, because Safaricom's test environment does not behave exactly like the real one. Full details are on the M-Pesa integration page, and the technical walkthrough for WooCommerce stores is in our WooCommerce M-Pesa guide.

Frequently Asked Questions

How many people use M-Pesa in Kenya?

Safaricom reported 40.99 million one-month active M-PESA customers in Kenya for the year ended 31 March 2026, up 14.5% on the year before, and 1.04 million active Lipa Na M-PESA merchants.

Is showing my Paybill number on my website the same as M-Pesa integration?

No. Showing a Paybill asks the customer to leave your site, type your number and account reference correctly, then prove they paid. Integration sends a payment prompt to their phone from your checkout and confirms the payment with Safaricom directly, so the order is marked paid automatically.

Does every Kenyan website need M-Pesa integration?

No. It matters for sites that take payment online: shops, bookings, fees, subscriptions and donations. A site that only collects enquiries and quotes later, or a business paid mainly by bank transfer against invoices, may not need it yet.

Can a customer outside Kenya pay with M-Pesa?

An STK Push prompt needs an M-Pesa line on the customer's phone, so many diaspora and international customers will not be able to use it. If you sell to them, add card payments alongside M-Pesa.

How much does M-Pesa integration cost with WPfoss?

A one-time fee of KES 5,000, all-inclusive. It covers STK Push, Paybill and Till confirmations, B2C payouts, reconciliation and reporting, Daraja registration with Safaricom, live test transactions and ongoing support. It is not a cut of your transactions; Safaricom's own charges apply separately.

How long does M-Pesa integration take?

Most integrations go live within 5 to 10 working days. More complex setups with custom reconciliation, B2C payouts or multi-account routing take 2 to 4 weeks.

Let customers pay you the way they already pay

Tell us what your website or system runs on and how customers pay you today. We will wire M-Pesa in properly and test it with real money before any customer uses it, for a one-time fee of KES 5,000. Talk to us on WhatsApp at +254 722 334 188, email hello@wpfoss.ke, or call +254 709 384 200.

Add M-Pesa for a One-Time KES 5,000

Related: E-commerce Websites · Safaricom Daraja · Safaricom FY26 results · WooCommerce