Why Your Tenant Said 'I Paid' But You Can't Find the Money

"I already paid!"
"Okay, but I don't see it in my records."
"Check your M-Pesa. I sent it last week."
I scroll through 87 M-Pesa messages. Nothing from this tenant.
"Are you sure you sent it to the right number?"
"Yes! Transaction code is NQR7X4PM2F."
I search for the code. Find it. But it's for KES 15,000, not KES 20,000. And it went to my personal number, not the Pay Bill.
This conversation happens every month with at least one tenant.
Table of Contents
- The "I Paid" Problem
- Why This Keeps Happening
- The Transaction Code Trick
- How I Stopped Having This Argument
- What About Partial Payments?
- The Caretaker Problem
- Payment Confirmations Save Relationships
- What to Do When There Actually Is a Problem
- The Record-Keeping Rule
- Bottom Line
The "I Paid" Problem
Every landlord has had this argument.
Tenant swears they paid. You can't find the payment. Both of you are frustrated.
Usually, it's one of these issues:
Wrong amount. Tenant sent KES 15,000 instead of KES 20,000. Thinks they're paid up. You're still waiting for KES 5,000.
Wrong account. You have multiple M-Pesa numbers. Tenant paid the wrong one. Money's there, but you weren't looking in that account.
Wrong month. Tenant paid February rent in January. You credited it to January. Now February rolls around and they say "I already paid."
Caretaker didn't forward. Tenant gave cash to the caretaker. Caretaker forgot to tell you (or pocketed it).

These disputes waste time. Damage tenant relationships. And sometimes you actually are wrong — the money's there, you just missed it.
Why This Keeps Happening
Lack of centralized tracking. You have M-Pesa on your phone. Bank transfers in your bank app. Cash receipts in a notebook. No single source of truth.
Manual matching. You're matching tenant names to transactions manually. Easy to miss things.
No payment confirmation system. Tenant pays. You don't confirm receipt. They assume you got it. You didn't.

I used to handle payments across three channels:
- M-Pesa Pay Bill (main)
- Personal M-Pesa (some tenants had this number)
- Cash through caretaker
Tracking everything? Nightmare. Disputes? Weekly.
The Transaction Code Trick
When a tenant says "I paid," ask for the transaction code.
Every M-Pesa payment has a unique code. NQR7X4PM2F format.
Search your messages for that exact code. Settles the dispute in 10 seconds.

But here's the problem: if you have 100+ M-Pesa messages and the payment went to a different number, good luck finding it.
Better solution: automatic transaction tracking.
How I Stopped Having This Argument
Step 1: One payment channel.
I stopped giving out my personal M-Pesa number. Everyone pays through one Pay Bill number. Period.
Makes tracking way simpler.
Step 2: Automatic matching.
I started using KodiSawa's rent tracking. It reads M-Pesa transactions and matches them to tenants automatically.
When Grace Wanjiku sends KES 20,000, KodiSawa sees her name, matches it to her unit, marks her as paid.
No manual searching.

Step 3: Instant confirmation.
When a payment comes in, I get a notification. I can immediately confirm: "Got your payment, Grace. Thanks."
Tenant has proof I received it. I have proof they paid. Dispute avoided.
What About Partial Payments?
These cause the most confusion.
Tenant owes KES 20,000. Sends KES 15,000. Thinks they're "mostly paid" so it's fine.
You're waiting for the full KES 20,000.
Month-end arrives. You send a reminder: "Your rent is overdue."
Tenant: "What? I paid!"

With automatic reconciliation, partial payments are tracked separately.
Dashboard shows:
- Due: KES 20,000
- Paid: KES 15,000
- Balance: KES 5,000
Tenant gets a note: "Received KES 15,000. Balance remaining: KES 5,000."
No surprises. No arguments.
The Caretaker Problem
Some tenants pay cash to the caretaker.
Caretaker should log it and give you a receipt. Should.
But sometimes caretakers "forget." Or they pocket the cash and tell you the tenant hasn't paid.

The fix: Require caretaker to log payments immediately in your system.
I gave my caretaker access to KodiSawa (view-only plus payment logging). When someone pays cash, he logs it on his phone. I see it instantly.
No more "I forgot to tell you" excuses.
Payment Confirmations Save Relationships
I used to think payment confirmations were overkill.
"Why should I confirm every payment? They sent it, I received it, done."
But tenants want acknowledgment. Especially when they're paying KES 20,000-50,000.
A simple "Payment received. Thank you." goes a long way.

Now when payments come in, KodiSawa auto-sends a confirmation SMS. Tenant knows I got it. I don't have to manually text everyone.
Disputes dropped by 80%.
What to Do When There Actually Is a Problem
Sometimes the payment genuinely didn't go through.
Tenant swears they sent it. You checked everywhere. Not there.
Ask to see their M-Pesa statement. Screenshot of the confirmation message.
If they sent it, they have proof. If they didn't, they can't produce it.

90% of the time, this reveals the truth:
- They sent it to the wrong number (neighbor's, old landlord's, etc.)
- They meant to send it but forgot
- They sent a different amount
If they actually did send it correctly and you still don't have it, contact Safaricom. Something's wrong on the M-Pesa side.
The Record-Keeping Rule
Every payment needs three things recorded:
- Who paid (tenant name)
- How much (exact amount)
- When (date and transaction code)
If you can produce these three things instantly, disputes disappear.
Excel can work for this. But it's manual. And manual = errors.

Automatic tracking is better. Payment comes in, system logs all three details. You just check the dashboard.
KodiSawa tracks this automatically. Every payment. Every tenant. Every property.
Bottom Line
"I paid" disputes are exhausting.
They happen because of poor record-keeping. Multiple payment channels. No confirmation system.
Fix those three things, and the arguments stop.
Use one payment channel. Easier to track.
Track payments automatically. No manual matching.
Send confirmations. Tenant knows you received it.
I haven't had an "I paid" argument in 4 months. My tenant relationships improved. My stress levels dropped.
Try KodiSawa free. See how automatic payment tracking eliminates disputes.
Your tenants (and your sanity) will thank you.
Start Tracking Rent Today
Track every unit, tenant and rent payment in one place. Start your 14-day free trial today.
Pay Bill and Buy Goods integration built in
Manage all your properties from one dashboard
Tax-ready reports for hassle-free filing