Home/Case Studies/Property Management
All case studies
Property Management CompaniesProperty Management

How PMCs Handle Unmatched M-Pesa Payments Without Sending Wrong Reminders

Who this is for

Tenants pay via your M-Pesa paybill — but not all of them use the correct account reference. Some use their own phone number, some type a reference incorrectly, and some simply send to the paybill without any reference at all. These unmatched payments sit in your M-Pesa balance but never get allocated to a tenant, so the tenant's Kokodi account still shows as unpaid and they receive a reminder.

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

  1. Step 1

    M-Pesa transaction received by Kokodi

    Automated

    Every incoming Daraja webhook is received and processed. Transactions with a valid tenant account reference are matched automatically.

  2. Step 2

    Unmatched transactions flagged to suspense

    Automated

    Transactions with missing or unrecognised references are routed to the Unmatched M-Pesa panel and held in suspense (Account 1090). No incorrect allocation occurs.

  3. Step 3

    Admin reviews unmatched panel

    Action

    The admin views each unmatched transaction: amount, timestamp, sender phone number, and any reference provided. This is typically a daily 5-minute review.

  4. Step 4

    Match transaction to correct tenant

    Action

    Select the tenant the payment belongs to (identified via phone number or amount cross-reference). Confirm the match.

  5. Step 5

    GL updated with correct allocation

    Automated

    On 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.

  6. Step 6

    Tenant balance corrected, reminders suppressed

    Automated

    The 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

M-Pesa Daraja API IntegrationUnmatched Payment PanelSuspense Account (1090)Manual Transaction MatchingGL EnginePayment Reminders

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

More in Property Management Companies