Why these disputes happen
Most "I paid but it did not arrive" situations are honest. A customer pays a personal number instead of your Buy Goods till, mistypes a digit, pays an old till you stopped using, or has a delayed transaction. The money left their phone, so they are certain they paid; it just did not reach you. A smaller number are genuine attempts to walk away with goods using a screenshot or a payment to someone else.
The trap is that both look identical in the moment: a confident customer, a confirmation message on their screen, and no money on your side. Your defence is not suspicion, it is verification. You decide based on whether the money is in your account, not on how sure the customer sounds.
How to handle the dispute
Stay calm and follow the same steps every time, so it is procedure, not personal.
- 1
Step 1: Check your own account first
Before anything else, check your till statement or business app for the payment. Often it has simply not arrived yet or is not there at all. Do not act on the customer screen alone.
- 2
Step 2: Ask to see the confirmation message
Look at the recipient name and number on their M-Pesa confirmation. If it is not your business till name and number, they paid the wrong place. Show them, politely.
- 3
Step 3: Check the amount and time
Confirm the amount matches the sale and the time is now, not a payment from days ago being reused. A mismatched amount or an old timestamp is a red flag.
- 4
Step 4: If they paid the wrong number, guide them
If the money went to a wrong or old number, the fix is a reversal request through M-Pesa, not your problem to absorb. Help them start it, but do not release goods until your account is paid.
- 5
Step 5: Wait for genuine delays, hold the goods
If the network is slow, a real payment usually lands within minutes. Hold the goods, not refuse them, until it arrives. A real customer will wait; a scam will leave.
- 6
Step 6: Record the outcome
Note disputes that resolve and those that do not. A pattern, the same customer, the same staff member, the same till, tells you whether this is bad luck or something to watch.
Mistakes that cost you
Releasing goods on a screenshot
A screenshot proves nothing. Money in your account proves payment. Never hand over goods until you have seen the funds on your side.
Accusing a genuine customer
Most disputes are honest wrong-number errors. Treating every dispute as theft loses good customers. Verify calmly instead of accusing.
Not checking the recipient name
The confirmation message names who was paid. Skipping this check is how wrong-number payments turn into arguments instead of quick fixes.
Keeping old till numbers active
If customers can still pay a till you no longer watch, you will get disputes for money that did arrive, just not where you are looking. Deactivate old tills.
No record of disputes
Without a record you cannot tell an unlucky day from a staff member who creates disputes. Write them down.
A calm check saves the sale and the customer
A customer at an electronics shop in Nairobi insists she paid KES 12,000 for a phone, showing a confirmation on her screen, while a queue builds behind her. The cashier checks the shop till: nothing. Instead of arguing, he asks to see the message and reads the recipient line. The money went to a number one digit off from the shop till.
He shows her calmly, explains the digit was wrong, and helps her start an M-Pesa reversal so she can recover the misdirected money, then re-pay correctly. She is embarrassed, not angry, because nobody accused her. Five minutes later the correct payment lands and she leaves with the phone.
Had the cashier released the phone on the screenshot, the shop would have lost KES 12,000 to an honest mistake that was never going to reach them. Had he accused her, he would have lost a customer who did nothing wrong.
When M-Pesa payments are not matched to sales, a missing payment, a staff shortfall or a double charge can slip past you until the money is already gone.
Veira reconciles M-Pesa Till and Paybill against every sale, so a mismatch surfaces the same day instead of at month end.
How Veira automates this
Veira confirms the M-Pesa payment against the specific sale in real time, so the cashier sees a clear paid or not-paid status on the sale itself, not a guess based on the customer screen. That removes the judgement call at the counter: the goods release when the system shows the money against the sale.
Because every sale and its payment are recorded together, genuine delays, wrong-number payments and disputed sales are all visible afterward, with the time and staff login attached. Patterns that need watching surface on their own instead of being lost in the rush.
Frequently asked questions
A customer shows me a payment message but I have no money. What do I do?
Is a screenshot proof of payment?
Most of my disputes are honest, right?
The customer paid the wrong number. Is that my problem to fix?
What if the payment is just delayed by a slow network?
How do old till numbers cause disputes?
How can a POS reduce these disputes?
When a customer says they paid but the money is not there, verify rather than accuse: check your account, read the recipient on their confirmation, and hold the goods until the funds land. Most disputes are honest wrong-number errors. Veira shows a clear paid status against each sale so the call is made for you. See how Veira works and book a free demo.