How PMCs Handle Unmatched M-Pesa Payments Without Sending Wrong Reminders
Who this is for
The problem
Every active M-Pesa paybill receives some unmatched payments. It's not a system failure — it's a human behaviour problem. Tenants make mistakes. The consequence, without a suspense management workflow, is serious: the tenant who paid gets a late reminder and calls in frustration. Your staff spend time investigating. The payment may be sitting in a Safaricom float report, but there's no streamlined way to identify which tenant it belongs to and allocate it correctly.
In high-volume portfolios with hundreds of transactions per month, even a 3% mismatch rate creates 6–9 unmatched payments to investigate. Done manually every month, it's a significant overhead — and every day delayed is a day a paying tenant feels wrongly chased.
What you can achieve
- Unmatched payments held safely in suspense — never silently lost or misallocated
- Daily 5-minute review replaces ad-hoc investigation across M-Pesa statements and Excel
- Tenants who paid correctly never receive wrong reminders — a common source of disputes
- Full GL audit trail for every match decision — who matched it, when, and to which tenant
- Suspense balance visible on the balance sheet — no hidden float that's not in the books
- Scales cleanly to 500+ transactions per month without requiring extra staff
The Kokodi workflow
- 1Step 1
M-Pesa transaction received by Kokodi
AutomatedEvery incoming Daraja webhook is received and processed. Transactions with a valid tenant account reference are matched automatically.
- 2Step 2
Unmatched transactions flagged to suspense
AutomatedTransactions with missing or unrecognised references are routed to the Unmatched M-Pesa panel and held in suspense (Account 1090). No incorrect allocation occurs.
- 3Step 3
Admin reviews unmatched panel
ActionThe admin views each unmatched transaction: amount, timestamp, sender phone number, and any reference provided. This is typically a daily 5-minute review.
- 4Step 4
Match transaction to correct tenant
ActionSelect the tenant the payment belongs to (identified via phone number or amount cross-reference). Confirm the match.
- 5Step 5
GL updated with correct allocation
AutomatedOn match confirmation, the suspense posting is reversed and the payment is correctly allocated: DR Bank 1040 / CR AR 1050 against the tenant's outstanding invoice.
- 6Step 6
Tenant balance corrected, reminders suppressed
AutomatedThe tenant's account now shows the payment correctly. Any reminder that would have been sent for that invoice is suppressed — no wrong messages go out.
Kokodi features used
Ready to set this up for your portfolio?
Talk to the Kokodi team and get a personalised walkthrough of this exact workflow for your buildings.
Get started
