If you rent out 5 to 30 units in Kenya, most of your rent arrives by M-Pesa. That is good for collection and bad for record keeping. The statement tells you money came in. It does not tell you which unit it was for, or which month.
This is a method to reconcile M-Pesa rent by hand, with a spreadsheet or a counter book. Once you have done it twice, a small block takes one sitting.
What you need
- The list of units, the tenant in each, and the phone numbers you hold for them.
- What each unit was billed for the month, split by line: rent, water, service charge, garbage.
- The M-Pesa statement for your paybill or till, for the same dates.
- A sheet with these columns: transaction code, date, paid by, phone, amount, unit, month, status.
Step 1: Start from what you billed
Write down what every unit owes for the month before you open the statement. If you start from the statement, you only see who paid. You miss the unit that paid nothing, and that is the one that matters.
Step 2: Export the statement, not the SMS list
Download the paybill or till statement for the period from your M-Pesa business account, as a spreadsheet or PDF. Do not work from the messages on your phone. Messages get deleted, and a phone shared with a caretaker does not show everything.
Copy only the incoming payments onto your sheet. Keep the transaction code for every line. It is the one value that never repeats, and it settles every later argument.
Step 3: Match in a fixed order
For each statement line, try these in order and stop at the first that works:
- Account reference. If tenants type their unit number as the account (A3, B2), match on that first.
- Phone number. Match against the number you hold for each tenant.
- Amount. If the amount is exactly one unit's invoice and nothing else fits, match it, but mark it "matched by amount" so you can confirm it later.
If none of the three works, do not guess. Mark the line "unmatched" and move on.
Step 4: Handle the awkward payments
Most of the work is in a few payment types that come back every month.
Partial payments. A tenant owing KES 18,500 sends KES 10,000 now and KES 8,500 next week. Record two receipts against the same unit and month. The balance for the unit is what is left after both.
Double payments. One payment of KES 37,000 from a tenant whose rent is KES 18,500. It is either two months, or a mistake. Ask the tenant before you split it. Once they confirm, record one line per month, oldest month first.
Paid from another number. A spouse, a relative or an employer pays. Once the tenant confirms, write the extra number next to the tenant on your unit list, so next month it matches in Step 3.
Wrong unit or wrong reference. The tenant in A3 types "A2", or types "rent". Ask before you move it. If you already recorded it against A2, do not delete the line. Add a correcting line that moves the amount to A3, so the history shows what happened.
Rent and water in one amount. Split it against the invoice lines, rent first or in the order your lease says. Write the split down. If you do not, you will argue about the water bill in three months.
Step 5: Work the unmatched list
Message each unknown payer with the transaction code and amount: "Hi, we received KES 10,000 on 3 Oct, code ex-03. Which unit and month is this for?" Move each answered line from unmatched to a receipt.
Anything still unmatched at month end stays on the list. It is not income for any unit yet.
Step 6: Prove the total
Here is a sheet for one small block. The figures are invented to show the method, not from a real property.
| Code | Paid by | Amount (KES) | Unit | Month | Status |
|---|---|---|---|---|---|
| ex-01 | Tenant's number | 18,500 | B2 | Oct | Matched by phone |
| ex-02 | Spouse's number | 25,000 | A3 | Oct | Matched after a message |
| ex-03 | Unknown name | 10,000 | ? | ? | Unmatched, ask |
| ex-04 | Tenant's number | 37,000 | C1 | Sep + Oct? | Unmatched, confirm split |
Matched: 18,500 + 25,000 = 43,500. Unmatched: 10,000 + 37,000 = 47,000. Together: 90,500.
That 90,500 must equal the total of incoming payments on the statement for the period. If it does not, a line is missing or counted twice. Find it before you go on. This one check catches most mistakes.
Step 7: Month-end tally
For every unit, write one number: billed minus received. Then sort:
- Zero: paid in full.
- Positive: owes money. Goes on the arrears list with the amount and the month.
- Negative: paid ahead. Carry it to next month as a credit, do not refund it by accident.
Check cash and caretaker collections separately. Anything a caretaker says they received should be confirmed by someone else against cash in hand or a bank deposit before it counts.
Keep each month's sheet. When a tenant says "I paid in August", you want the code in front of you, not a search through old messages.
Where it breaks
The hand method works for one block and one person. It strains when payments come from many numbers, when a caretaker collects too, or when you manage for several landlords and each wants a statement. The sign is an unmatched list that is still long on the 10th.
We wrote the longer version, with the problems that make M-Pesa rent hard to match and a short FAQ.
If you get to that point, this is what we build. Strukchad Property Management is property management software for Kenyan landlords, letting agents and property managers, its own app at property.strukchad.com. M-Pesa, bank, cash and cheque payments are recorded as receipts against each tenant's invoices, and unmatched money waits in a queue until it is allocated. It does not import your paybill statement, so the matching habits above still count.
Top comments (0)