Payments via paybill feel automatic to customers. Behind the scenes, many finance teams still download statements and match receipts by hand. Here’s where it usually goes wrong.
Customers type the account reference however they like
“INV-418”, “inv418”, a phone number, or nothing at all. Matching rules need to normalise references and fall back to the payer’s phone number or name before giving up.
Callbacks arrive twice — or not at all
Duplicate confirmations happen, and so do missed ones when your server is briefly down. Every receipt number should be stored once, and a periodic status check should catch anything missed.
Posting fails quietly
A closed period or a missing customer can stop a payment from posting. Without a retry queue and an exceptions screen, those payments disappear into a log file.
What to automate first
- Store every callback before doing anything else with it.
- Match by reference, then phone, then flag for review.
- Retry failed postings automatically, with a limit.
- Show finance one screen of exceptions — not a log.
Still reconciling by hand? We connect M-Pesa Daraja straight to your ERP with matching rules, safe retries and an exceptions view for finance. M-Pesa integrations →