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:
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 page | Integrated M-Pesa checkout | |
|---|---|---|
| What the customer does | Leaves the site, opens the M-Pesa menu, types your Paybill and account reference, pays, then sends you proof | Taps Pay, gets a prompt on their phone, enters their PIN |
| Typing mistakes | Wrong account reference or amount, then a phone call to sort it out | Your site fills in the amount and reference |
| How you know they paid | A forwarded message or screenshot, checked by hand | Safaricom confirms it to your system directly |
| Order status | Updated by a person, when they get to it | Marked paid automatically, day or night |
| Reconciliation | Matching statements to orders at the end of the day | Each payment already linked to its order |
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
- They pay without leaving your site. No switching to the M-Pesa menu and back.
- Nothing to copy or type except their own PIN, on their own phone, the same way they approve payments every day.
- Instant confirmation. The page tells them it worked, and a receipt follows, instead of "we will confirm once we see your payment".
- More trust. A checkout that behaves like the payments they already make feels safer than instructions to send money to a number.
Who Needs It Most
Any website that takes payment online, and especially:
- Online shops, where the checkout is the whole point of the site
- Booking systems for hotels, salons, clinics and tours, collecting deposits at the moment of booking
- Schools and training providers collecting fees, course payments and exam registrations
- Subscription businesses billing monthly
- Churches and NGOs taking offerings and donations online
- Marketplaces and delivery businesses that also need to pay vendors and riders
When You Do Not Need It Yet
Integration is not a must for every website, and it would be misleading to say otherwise.
- Your site only collects enquiries. If every job is quoted after a conversation, a clear WhatsApp button and a Till number on the invoice may be all you need for now.
- Your customers pay by bank transfer against invoices, as many business-to-business suppliers are.
- You take very few online payments. If it is a handful a month, manual confirmation may not cost you enough to justify the work yet.
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
- M-Pesa is the first option for a Kenyan audience, not buried under a card form.
- The phone number field accepts how people type it, whether that starts 07, 01 or +254.
- It says what happens next: "Check your phone and enter your M-Pesa PIN".
- It handles a missed prompt with a clear "Try again" button, not an endless spinner.
- It offers a fallback, such as paying by Paybill, when the prompt does not arrive.
- 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.
| Item | Detail |
|---|---|
| Price | KES 5,000 one-time fee, all-inclusive |
| Covers | STK Push, Paybill and Till confirmations, B2C payouts, reconciliation and reporting, Daraja registration, live test transactions, ongoing support |
| Timeline | Most go live within 5 to 10 working days; complex setups take 2 to 4 weeks |
| Not included | Safaricom'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,000Related: E-commerce Websites · Safaricom Daraja · Safaricom FY26 results · WooCommerce