August 13, 2026
STK Push, PayBill, or Till: Which M-Pesa Checkout Is Right for Your Business?
Most guides to adding M-Pesa to a Kenyan website walk through the Safaricom Daraja API — authentication, callbacks, sandbox testing. That's useful, but it skips the question that actually matters first: which M-Pesa integration should you even be building?
There are three, and they solve different problems.
STK Push (Lipa na M-Pesa Online)
This is the "enter your phone number, get a prompt, type your PIN" flow you've seen on most Kenyan e-commerce checkouts. Your site triggers a payment prompt directly on the customer's phone via the Daraja API, and you get a callback confirming success or failure — usually within seconds.
Best for: e-commerce checkouts, one-off payments, any flow where the customer is actively on your site and needs to pay right now. It's the closest thing to a "normal" card checkout experience, which is exactly why it converts well for online stores.
Trade-off: it requires a paid Daraja API go-live (not just sandbox), and the customer has to be present to approve the prompt — it doesn't work for asynchronous or delayed payments.
PayBill
A PayBill number is built for structured payments where you need to know what the payment is for — an account number, invoice number, or membership ID entered alongside the payment. Think utility bills, school fees, rent, or subscription invoices.
Best for: businesses that invoice customers or need payments reconciled against a specific account — SaaS subscriptions, property management, membership organizations, B2B invoicing.
Trade-off: it's a manual-entry flow unless paired with an STK Push or Daraja integration that pre-fills the account number — on its own, it relies on the customer typing the right reference correctly.
Till (Buy Goods and Services)
A Till number is the simplest of the three — designed for in-person, point-of-sale-style payments where there's no account number to track, just "pay this business this amount." No reference number, no invoice matching.
Best for: retail, restaurants, and service businesses where each transaction stands alone and you don't need to reconcile payments against customer accounts.
Trade-off: weakest fit for e-commerce or anything that needs automated reconciliation — there's no structured data coming back to match a payment to an order.
Which one should you actually build?
- Running an online store? STK Push, integrated through Daraja, so payment and order confirmation happen in the same flow.
- Invoicing clients or collecting recurring payments? PayBill, ideally with the account number pre-filled by your system rather than typed manually.
- Mostly in-person or simple one-off payments? A Till is often enough on its own — you may not need a website integration at all.
Many businesses actually end up needing more than one — a Till for walk-in customers and an STK Push flow for the website, for example. The integration should follow how money actually moves through your business, not the other way around.
If you're scoping an M-Pesa integration and aren't sure which flow fits, our e-commerce team can walk through it — or see what a fully integrated checkout costs as part of a build.