Table of Contents
- Why M-Pesa reconciliation is the #1 admin headache
- Paybill vs Till Number vs Pochi — which to use for rent
- How M-Pesa C2B callbacks actually flow
- The four common reconciliation failures and how to fix them
- Manual reconciliation vs automated
- How Pangoni automates the whole thing
- Frequently Asked Questions
If you manage more than about five rental units in Kenya, M-Pesa reconciliation is probably your single biggest admin task. Payments arrive from different phone numbers, some with the right account number and some without, some in full and some in instalments — and at month-end you're matching them to tenants across a spreadsheet the long way round.
This guide covers how M-Pesa payments actually flow, why the account-number field matters more than any other detail, the four failure modes that cost landlords the most time, and how to shift the whole process from manual to automatic. For the product view, see the Automated Payment Reconciliation feature page.
Why M-Pesa reconciliation is the #1 admin headache
Unlike a bank transfer, an M-Pesa payment arrives with a limited set of fields: the sender's phone number, the amount, a timestamp, and — crucially — an account number that the sender typed in at payment time. That last field is the difference between instant reconciliation and a 30-minute detective session.
When you've got 20, 50, or 200 tenants paying through the same Paybill on different days of the month, the only thing that tells you which tenant paid is the account number they typed. If they typed it right, everything matches. If they typed it wrong, you're looking things up manually.
Paybill vs Till Number vs Pochi — which to use for rent
Three M-Pesa collection products, three different stories for reconciliation:
- Paybill. Designed for businesses that need to identify who is paying. The "Enter Account Number" field is the whole point — it's where you put the tenant's reference (usually the unit number or a tenant ID). Paybill is the best collection option for rent.
- Till Number. Built for retail — the customer isn't identified because in a till transaction it usually doesn't matter. For rent, a till means you have to reconcile by phone number (works until a spouse or parent pays on behalf), by amount, or by asking the sender for a reference.
- Pochi la Biashara. Personal till-style product often used by small informal landlords. Same identification limitations as a Till Number — no account number field.
If you can choose, use Paybill. If you already have a Till, you can still reconcile — just with more care.
How M-Pesa C2B callbacks actually flow
When a tenant pays your Paybill:
- The tenant enters your Paybill number, the account number (ideally their unit or tenant ID), the amount, and their M-Pesa PIN.
- Safaricom completes the transfer and — if your Paybill is set up for it — fires a C2B confirmation callback to your server (or, if you use Pangoni, to ours).
- The callback contains: amount, sender phone number, sender name, account number, transaction ID, and timestamp.
- Your reconciliation system reads the account number, looks up the matching tenant and invoice, and posts the payment.
This happens in seconds. The only place it breaks is step 4 — which is where the four common failures show up.
The four common reconciliation failures and how to fix them
1. Wrong or missing account number
The tenant types the wrong reference or skips it entirely. The callback arrives with no usable account number. The payment lands in an unmatched queue until someone figures out whose it is. Fix: a reconciliation system that offers one- click matching based on amount, sender phone number, and timing — not a spreadsheet.
2. Partial payments
The tenant pays half the rent now and half on payday next week. The callback arrives with the partial amount. A spreadsheet-based process either records it wrong, records it twice, or misses the second half. Fix: post the partial amount against the open invoice and leave the balance open; the next payment from the same tenant continues against the same invoice.
3. Duplicate payments
The tenant pays twice — often because they didn't get a receipt the first time and thought the payment failed. The second callback arrives and gets posted against the same invoice, overpaying. Fix: detect the duplicate by transaction ID and flag rather than auto-post; refund or credit the next month's rent.
4. Payments from a third party
The tenant's spouse, parent, or employer pays the rent. The sender phone number on the callback doesn't match the tenant. The account number usually saves you — if the sender typed it correctly, reconciliation still works. If they didn't, it's a manual match. Fix: tell tenants (at signing, and again in the reminder) that whoever pays needs to use the tenant's account number. See our rent reminders guide for how to bake this into the reminder template.
Manual reconciliation vs automated
The qualitative picture:
- Manual. Export M-Pesa statement at month-end, sort by date, match each line to a tenant by phone number and account reference, post to a spreadsheet ledger, email statements out. For 20 tenants, a careful landlord spends two to four hours. Error rate is non-trivial.
- Automated. Payment arrives, callback is ingested, tenant and invoice matched, receipt sent, ledger updated — all in the 10 seconds after the tenant taps send. At month-end, there's nothing to reconcile that wasn't already reconciled during the month.
The bigger wins aren't the time saved — they're the disputes avoided. Tenants who get an automated receipt within seconds don't call you later asking whether you received their rent.
How Pangoni automates the whole thing
Pangoni handles all four failure modes on the same pipeline:
- Ingests every M-Pesa C2B callback for your Paybill or Till in real time.
- Matches the account number to the right tenant and open invoice.
- Posts partial payments against the open invoice and carries the balance.
- Detects duplicate transaction IDs and asks you to confirm instead of silently double-posting.
- Flags unmatched payments with ranked "most likely tenant" suggestions for one-click resolution.
- Sends the tenant an automated receipt and stops the reminder ladder for that lease for the month.
Stop reconciling M-Pesa by hand →
Frequently Asked Questions
If you haven't started collecting rent by M-Pesa yet, read our M-Pesa rent collection guide first. If late rent is your bigger problem than reconciliation, read how to set up automated rent reminders for tenants.