M-PESA is how Kenya pays — but 'accepting M-PESA online' can mean three very different things, and the difference decides your workload, your fees and how much customers trust your checkout. Here's how each option works and how to pick the right one for your shop.
The three ways to take M-PESA
| Method | How it works | Verification | Effort |
|---|---|---|---|
| Manual Till/PayBill instructions | Your checkout shows customers your Till or PayBill number; they pay in their M-PESA app and forward the confirmation | You check the SMS/message yourself | Free — but manual per order |
| Automated STK push | Customer enters their phone number; a payment prompt pops up on their phone; they approve with their PIN | The platform confirms the payment automatically and marks the order paid | Built into your shop platform |
| Custom Daraja integration | You (or a developer) register a Safaricom Daraja app and wire STK push + callbacks into your own codebase | You build and maintain it | Highest control, highest cost |
For most small businesses the progression is natural: start with manual instructions (costs nothing, works today), upgrade to automated STK push once order volume makes manual verification a chore. Custom Daraja only makes sense if you're building your own platform.
Manual payments — the free starting point
On Shops.co.ke the Free plan (KSh 0, up to 30 products) already gives customers a working checkout: they pick items, see your M-PESA Till/PayBill/Pochi instructions, pay in their M-PESA app, and the order lands in your dashboard. You confirm payment from the M-PESA message and mark it paid. It's not automated — but it's a real shop, live in an afternoon, costing nothing.
- Works with any Safaricom business line — Till, PayBill or Pochi la Biashara.
- No gateway fees — just the standard Safaricom transaction charges.
- The trade-off: you verify each payment by hand, and a customer's screenshot isn't proof — check the actual M-PESA message.
Automated STK push — where paid plans earn their keep
From the Starter plan (KSh 299/month) Shops.co.ke connects to M-PESA directly: the customer enters their phone number at checkout, gets an STK prompt, approves with their PIN, and the order marks itself paid — with the confirmation coming from Safaricom, not the customer's browser. No screenshots, no midnight message-checking, and no fake 'payment sent' claims.
- Money settles to your own M-PESA — the platform never holds your funds.
- Card payments (Visa/Mastercard via Paystack) come with the same plan.
- Failed or cancelled payments never create false paid orders — the system only marks paid on a confirmed callback.
Before you pick a platform, test this checklist
- Does 'M-PESA support' mean STK push, or just a Till number displayed? Ask precisely.
- Where does money settle — your own Till/PayBill, or a platform wallet you withdraw from? Direct settlement is safer.
- What happens on failed, cancelled or duplicate payments? A good system handles all three automatically.
- Who pays the gateway fee — and what's the rate? Safaricom charges on every transaction.
- Can you do a real KSh 1 test transaction before going live? Always should.
What you need on the Safaricom side
- A Safaricom line receiving your business payments — Till or PayBill is ideal, though Pochi la Biashara works for smaller operations.
- For automated checkout on Shops.co.ke: nothing extra — the platform's Paystack-powered M-PESA rails handle the STK push to your configured number.
- For a custom Daraja build: a registered PayBill/Till, a Daraja app (consumer key + secret), a passkey for Lipa Na M-PESA Online, and a server that receives callbacks.
Common mistakes
- Marking orders paid from customer screenshots — wait for the M-PESA message or the platform callback.
- Quoting a personal number for business payments — get a Till/PayBill; it's free to apply and looks professional.
- Assuming 'supports M-PESA' means automatic — many international platforms only offer it via paid third-party apps.
The short version: start free with manual instructions, move to automated STK push when you're doing more than a handful of orders a day — at KSh 299/month the hours saved on verification pay for the plan in the first week.