Skip to content

Paybill, Till, STK Push or C2B: Choosing the Right M-Pesa Setup

Most M-Pesa integration problems start with the wrong account type. Paybill, till, STK Push and C2B behave differently - here is how to choose before you build.

By Karani Geoffrey, Founder & CEO, Upeosoft
In short

Choose a paybill when you need an account number to identify each payer, a Buy Goods till for fast anonymous counter sales, STK Push when your software should trigger the payment, and C2B callbacks to capture payments customers start themselves. Most businesses combine a paybill or till with both STK Push and C2B.

Key takeaways
  • Paybill collects with an account number, which makes automatic reconciliation far easier than a till.
  • A Buy Goods till is simpler and faster at the counter but gives you no reference to match payments to invoices.
  • STK Push is a payment your system starts; C2B is a payment the customer starts on their own phone.
  • You usually need both STK Push and C2B so no payment is missed, whichever way it began.
  • The account type you register determines how clean your reconciliation will be for years, so decide deliberately.
  • Fees, settlement and daily limits differ by account type and tier - factor them in before committing.

Why the account type decision matters so much

People treat 'accept M-Pesa' as a single decision. It is not. Safaricom offers several products, and the one you register shapes how your money arrives, how you identify who paid, and how much manual work your team does forever after.

Get it right and payments reconcile themselves. Get it wrong and you spend every evening matching amounts to customers by guesswork, because the payments arrived with no reference at all. This choice is cheap to make well up front and expensive to change later, once thousands of customers know your number.

Paybill: when you need to know who paid

A paybill (a business number plus an account number) is built for identified payments. The customer enters your business number and an account reference - an invoice number, a member ID, a meter number, a phone number - and that reference travels with the money.

That single field is the foundation of automatic reconciliation. If your account numbers are meaningful and consistent, your system can match each payment to the right invoice or customer with no human involved. Paybills suit anyone who bills, runs accounts, or serves the same customers repeatedly: schools, SACCOs, landlords, utilities, wholesalers, subscription services.

Buy Goods till: speed at the counter

A Buy Goods till is the simplest option. The customer enters your till number and the amount, and pays. There is no account field, which is exactly why it is fast for a shop, kiosk or restaurant where the customer is standing in front of you and the sale is settled on the spot.

The trade-off is reconciliation. Without a reference, your system cannot tell which sale a payment belongs to - only the amount and the payer's number. For pure point-of-sale that is often fine, because the till payment happens at the moment of sale and your POS records it there. It becomes a problem the moment you try to use a till for invoices or remote payments.

STK Push vs C2B: who starts the payment

This is the axis people confuse most. It is about who initiates.

STK Push (Lipa na M-Pesa Online) is a payment your software starts. Your system sends the amount and the customer's number to Safaricom, and a PIN prompt pops up on their phone. The customer never types your number or the amount, so there is nothing to mistype - ideal for online checkout and in-app payments.

C2B is a payment the customer starts, by going into their own M-Pesa menu and paying your paybill or till. You capture it through validation and confirmation callbacks. You need C2B because plenty of customers will pay you directly whether or not your app prompted them, and those payments must still be recorded.

  • STK Push: your system initiates, customer just enters their PIN - best for checkout flows.
  • C2B: customer initiates from their phone, your callbacks capture it - best for walk-in and remote payers.
  • Most businesses need both, so no payment slips through whichever way it began.
  • STK Push can time out or be cancelled, so never treat a sent prompt as a completed payment.

The combination most businesses actually need

For the majority of Kenyan businesses that both sell and invoice, the right answer is a paybill (or till, if you are purely counter-based) with STK Push and C2B both integrated.

STK Push gives customers a clean, error-free checkout. C2B makes sure that a customer who pays you the old way - from their own menu, at midnight, from another town - is still captured. And a paybill's account number ties both back to the right invoice. This combination is what turns M-Pesa from a stream of unlabelled deposits into a reconciled, auditable payment channel.

Limits, settlement and the details people miss

Beyond the account type, a few practical details decide whether your setup holds up at volume. Transaction and daily limits vary by product and KYC tier, and hitting a ceiling mid-day stops payments cold. Settlement timing - when money moves from your M-Pesa account to your bank - affects your cash flow. Tariffs differ by product and change periodically. And going live requires Safaricom's approval process, not just working sandbox code.

None of these show up in a quick test. They show up on your busiest day, which is exactly why they belong in the decision, not the post-mortem.

How Upeosoft helps you choose and build it

We start by looking at how your customers actually pay - counter, invoice, online, or all three - and recommend the account type and integration that will reconcile cleanly rather than the one that is quickest to switch on. Then we build it: STK Push, C2B callbacks, an account-number scheme that maps to your invoices, and reconciliation into your accounting or ERP system.

If you already have an M-Pesa setup that never reconciles properly, we can often fix it without changing your number. Talk to Upeosoft and we will get your M-Pesa foundation right.

Frequently asked questions

What is the difference between a paybill and a Buy Goods till?

A paybill asks the customer for a business number and an account number, so every payment carries a reference you can match to an invoice, member or meter. A Buy Goods till only asks for the till number and an amount, which is faster at a busy counter but gives you nothing to reconcile against automatically. If you invoice customers or run accounts, a paybill almost always wins.

Do I need STK Push if I already have a paybill?

They solve different problems. A paybill with C2B captures customers who pay you directly from their M-Pesa menu. STK Push lets your software push a payment prompt to the customer's phone at checkout, so they never type your number or the amount. Most businesses want both: STK Push for a smooth in-app or online checkout, and C2B so walk-in and remote payers are still recorded.

Can I use one M-Pesa account for several branches or products?

Yes, and the account number field is how you separate them. With a paybill you can encode a branch code, invoice number or product reference in the account number, then split the money in your system automatically. A single till cannot do this cleanly, which is why multi-branch and multi-product businesses lean towards paybills with a disciplined account-number scheme.

How are the fees different between till and paybill?

M-Pesa applies tariffs that differ by product and transaction band, and who bears the charge can differ too. Buy Goods and paybill have their own pricing, and B2C payouts add a separate per-transaction cost. The exact bands change over time, so confirm current tariffs with Safaricom before you decide - a few shillings per transaction adds up quickly at volume.

Which setup makes reconciliation easiest?

A paybill with STK Push and C2B both wired in. STK Push lets you attach your own reference to each request, and paybill C2B carries the customer's account number. Together they give every payment an identifier your system can match automatically. A bare till with no references is the setup that forces staff to reconcile by hand every evening.

Karani Geoffrey
Karani Geoffrey
Founder & CEO, Upeosoft

Karani Geoffrey is the Founder & CEO of Upeosoft, a software and automation company rooted in Kenya. He builds custom software, AI systems, and production-grade ERPNext for businesses across East Africa, and writes about the Kenyan realities - eTIMS, M-Pesa, SHIF, unreliable internet and power - that make or break real systems.

Next step

Want this working in your business?

Upeosoft builds and hardens the systems behind this article - for real Kenyan operations, with eTIMS, M-Pesa and offline realities handled.

Keep reading

Kenyan Compliance and Integrations

How to Integrate the M-Pesa Daraja API Into Your System

The Daraja API is Safaricom's official gateway to M-Pesa. This is the practical path from developer credentials to a live, reconciling integration - and the pitfalls along the way.

6 min readRead article →
Kenyan Compliance and Integrations

How M-Pesa Integration Actually Works (And Why It Goes Wrong)

M-Pesa integration is not a plugin you switch on. It is a conversation between Safaricom's Daraja API and your system, and most failures happen at the callback and reconciliation stage.

7 min readRead article →
Customer Growth and Messaging

How to Automatically Match M-Pesa Payments to Invoices

Matching M-Pesa payments to invoices by hand is slow and error-prone. With a clean account reference and the right setup, your system can do it automatically.

7 min readRead article →