m-pesa · payments · retail

How to Accept M-Pesa Payments in Your Shop Without the Reconciliation Headache

Till number or Paybill? How customers pay, where reconciliation goes wrong, and how automatic M-Pesa confirmation stops fake messages and end-of-day cash-up arguments.

FaidaPOS Team · 14 October 2026 · 5 min read

For most Kenyan shops, M-Pesa is no longer an extra payment option. It's how the majority of customers pay. But taking a payment is only half the job. The harder half is knowing, for certain, that the money arrived and matches the sale.

This guide covers the main ways to accept M-Pesa, where things usually go wrong, and how to set up your counter so that every shilling is accounted for.

Till number vs Paybill: which one do you need?

Safaricom's Lipa na M-Pesa comes in two main forms.

Buy Goods (Till number)

The customer selects Lipa na M-Pesa → Buy Goods and Services, enters your till number and the amount, then their PIN.

  • Best for over-the-counter retail: dukas, supermarkets, boutiques, pharmacies, bars.
  • There's no account number for the customer to get wrong.
  • The money goes into your till account, and you withdraw or move it to your bank.

Paybill

The customer selects Lipa na M-Pesa → Pay Bill, enters your business number, an account number, and the amount.

  • Best when you need to know what a payment is for: customer accounts, invoices, school fees, utilities.
  • The account number field lets you match payments to customers or orders.
  • It's common for businesses that sell on credit or take orders before delivery.

The rule of thumb: if customers pay at the counter for what they're buying right now, use a till. If you need to match payments to accounts or invoices, use a Paybill. Some businesses use both.

Where M-Pesa reconciliation goes wrong

Ask any shop owner about M-Pesa and you'll hear the same problems.

1. Fake or edited confirmation messages

A customer shows an SMS that looks like an M-Pesa confirmation, but it was forwarded, edited, or is from an earlier payment. A busy cashier glances at it and hands over the goods.

2. Payments that "haven't come through"

The customer insists they paid, but the cashier's phone shows nothing. Usually it's a network delay, but sometimes it's a typo in the till number, and sometimes the customer never paid.

3. One phone, many cashiers

Confirmations go to a single phone, often the owner's. Cashiers have to shout across the shop or call to check whether a payment arrived, and queues grow.

4. The end-of-day gap

At closing time, the M-Pesa statement doesn't match what the cashier wrote down. Was a payment entered twice? Was a sale recorded as M-Pesa when it was cash? With nothing linking each payment to a specific sale, there's no easy way to find out.

The root cause of all four problems is the same: the payment and the sale are recorded in two separate places, and a person has to match them by hand.

Fix it by linking the payment to the sale

The fix is to have the M-Pesa payment confirmed inside the same system that rings up the sale. There are two ways this works.

Customer-initiated payment with automatic matching

The customer pays your till as usual. Your POS receives the confirmation directly from the payment provider, not from an SMS, and shows it next to the sale. The cashier selects the matching payment and the sale closes.

STK push (payment prompt to the customer's phone)

The cashier enters the customer's phone number at the till. The customer's phone shows an official M-Pesa prompt with the amount already filled in. They enter their PIN, and the confirmation goes straight back to the POS. There's no till number to type, no amount to get wrong, and no SMS to inspect.

Either way:

  • Fake messages stop working, because the cashier never relies on an SMS.
  • Every cashier sees confirmations on their own screen, not just the owner's phone.
  • Every payment is tied to a sale, so the end-of-day report already matches your M-Pesa statement.

FaidaPOS supports both till numbers and Paybills, sends STK push prompts from the till, and confirms payments automatically through our M-Pesa partner, KopoKopo.

Setting up your counter: a checklist

  1. Pick your M-Pesa product. Use a till for counter sales and a Paybill if you need account matching.
  2. Display your till number clearly, at eye level near the counter, so customers aren't asking for it or squinting.
  3. Never accept a forwarded or screenshot confirmation as proof of payment. Make this a written rule for all staff.
  4. Record the payment method on every sale, including cash, M-Pesa, and card. "Mixed" days are where gaps hide.
  5. Cash up M-Pesa and cash separately at the end of each shift, not just at the end of the day. A gap found the same shift is easier to trace. For more on running the counter with several staff, see our guide to managing a minimart.
  6. Move money to the bank on a schedule. Leaving large balances in the till account adds risk and makes your records harder to read.

What about M-Pesa charges?

Safaricom charges merchants a fee on Lipa na M-Pesa transactions, and the rates differ between till and Paybill and change from time to time. Check the current tariff on Safaricom's website and include it in your pricing, especially if you run on thin margins.

The bottom line

M-Pesa makes it easy for customers to pay you. Making sure you've actually been paid is up to your counter setup. Once each payment is confirmed in your POS and attached to a sale, fake messages, missing payments, and end-of-day arguments mostly go away.

M-Pesa support is the first of our 10 questions to ask before you buy a POS system. And if customers pay you later by M-Pesa, see how to keep track of customers who buy on credit.

Run your shop on FaidaPOS

Sell faster, track every item, and get paid by M-Pesa.

Checkout that keeps working offline, live stock levels, and automatic M-Pesa confirmation. Priced in KES.

Keep reading

FaidaPOS

FaidaPOS

The point of sale built for Kenyan retail. Made in Nairobi, designed for shopkeepers everywhere.

Copyright 2026 FaidaPOS. Registered in Kenya.