Home/Case Studies/Residential Apartments
All case studies
Residential LandlordsResidential Apartments

How a Private Landlord Eliminated Rent-Chasing with M-Pesa Auto-Matching

Who this is for

You own between 5 and 30 residential units across one or two buildings in Nairobi, Mombasa, or another Kenyan city. You collect rent through an M-Pesa paybill but manually check the M-Pesa statement each month, chase tenants on WhatsApp, and keep records in a notebook or Excel. You've had instances where a tenant claimed to have paid but you couldn't locate the transaction.

The problem

M-Pesa paybill transactions arrive as a flat list with phone numbers and amounts — no automatic link to which unit or tenant they belong to. Every first week of the month becomes a painful exercise of cross-referencing a downloaded statement against a handwritten register, calling tenants who haven't paid, and sometimes missing payments that came in late under a different number.

The deeper problem is that there's no running balance per tenant. You don't know who is 1.5 months behind vs 3 months behind without doing the maths yourself. When a tenant moves out, working out their exact balance — including partial payments, arrears, and deposit — can take days and still lead to disputes.

What you can achieve

  • Zero manual M-Pesa statement cross-referencing — every transaction auto-matched to the correct tenant
  • Real-time arrears view for all tenants in a single dashboard, bucketed by days overdue
  • Tenant self-service portal reduces 'did you receive my payment?' calls to zero
  • Automated reminders via WhatsApp/SMS replace manual chasing, improving on-time payment rates
  • Complete GL audit trail means any payment dispute is resolved in under 60 seconds
  • Partial payments tracked and allocated automatically — no more confusion on tenant balances

The Kokodi workflow

  1. Step 1

    Add buildings and units

    Setup

    Create your building and add each unit with its rent amount and billing cycle (monthly, quarterly, etc.).

  2. Step 2

    Invite tenants to the portal

    Action

    Send each tenant an email invitation. They accept and get their own portal to view invoices, balances, and payment history.

  3. Step 3

    Link M-Pesa paybill to building

    Setup

    Connect your M-Pesa paybill or till number to the building. Kokodi registers a webhook with Safaricom's Daraja API.

  4. Step 4

    Monthly invoices auto-generated

    Automated

    On the billing date, Kokodi automatically creates a rent invoice for every active tenant and notifies them by email.

  5. Step 5

    Tenant pays via M-Pesa STK push

    Automated

    Tenants can pay directly from their portal. Kokodi triggers an STK push to their phone — they enter their PIN and it's done.

  6. Step 6

    Payment auto-matched and GL posted

    Automated

    Incoming M-Pesa transactions are matched to the tenant's account number. The GL posts: DR Bank 1040 / CR AR 1050.

  7. Step 7

    Arrears dashboard reviewed

    Report

    Check the defaults report and aged receivables to see exactly who is overdue by how many days and the exact amount.

  8. Step 8

    Automated reminders sent

    Automated

    Kokodi sends configurable payment reminders via email, SMS, or WhatsApp on days you specify (e.g., 3 days before, 5 days after due).

Kokodi features used

M-Pesa Daraja API IntegrationSTK PushAutomated Invoice GenerationTenant PortalAged Receivables ReportAutomated Payment RemindersGL Engine

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 Residential Landlords