To reconcile M-Pesa payments with your invoices, match each receipt on your M-Pesa statement to an open invoice using three details. These are the M-Pesa transaction code, the amount and the customer name or account number the payer entered. When all three line up, you record the receipt against that invoice, and it stops showing as unpaid.
Bank payments follow the same logic, with the bank reference taking the place of the M-Pesa code. The rest of the work is dealing with the payments that do not match neatly.
How do you reconcile M-Pesa collections?
To reconcile M-Pesa payments, work from the statement to your books, one receipt at a time.
- Download your M-Pesa business statement for the period in Excel or CSV format.
- Filter it to show only money received.
- Note the transaction code, date, amount, payer name and account number for each receipt.
- Search your open invoices for the same customer and amount.
- Record the receipt against the matching invoice.
- Type the transaction code into the narration of the receipt entry.
- Record the transaction charges in a separate M-Pesa charges ledger.
- Compare the closing statement balance with the M-Pesa ledger balance in your books.
Here is how it works in practice. Wanjiru Hardware raises invoice INV-1045 for KES 18,500 to Baraka Builders on 2 September. Three days later, the M-Pesa statement shows KES 18,500 received under code TIF4K7PQ2L, with account number 1045 and payer name John Otieno. The books still show INV-1045 as outstanding because nobody recorded the receipt.
The amount matches the invoice exactly. The account number matches the invoice number, and a quick call confirms that John is Baraka's site manager. Wanjiru's accountant records a receipt of KES 18,500 against INV-1045 with TIF4K7PQ2L in the narration, and the invoice closes.
How do you reconcile bank payments?
Bank reconciliation compares your bank statement with the bank ledger in your books and explains every difference between the two balances. For bank reconciliation in Kenya, the usual items are EFT, RTGS and PesaLink receipts, cheques, bank charges and transfers in from M-Pesa.
- Get the bank statement for the same period as your books.
- Tick off each deposit and withdrawal that appears in both.
- List cheques you issued that the bank has not yet paid.
- List deposits in your books that the bank has not yet credited.
- Record bank charges and interest that appear only on the statement.
- Record M-Pesa to bank transfers as a transfer between the M-Pesa and bank accounts, not as a sales transaction.
- Check that the adjusted book balance equals the statement balance.
If the balances still differ, look for amounts entered with swapped digits (KES 4,850 typed as KES 4,580) or entries posted to the wrong bank account.
How do you match payments with invoices?
Matching is where most reconciliation errors start, because not every customer pays exactly one invoice in one go. Treat each payment type differently.
|
Payment type |
How to record it |
|
Full payment |
Record the receipt against the invoice. The invoice closes. |
|
Partial payment |
Record the amount against the invoice. The balance stays open and shows in the customer's statement. |
|
One payment for several invoices |
Split the receipt across the invoices it covers. |
|
Several payments for one invoice |
Record each receipt against the same invoice until the balance reaches zero. |
|
Overpayment |
Record the extra as an advance on the customer's account and adjust it against the next invoice or refund it. |
The simplest way to cut matching work is to print your Paybill number on every invoice and ask customers to use the invoice number as the account number. Most invoicing software lets you add this line to the invoice template.
What should you do with unidentified payments?
An unidentified payment is money on your statement that you cannot link to any customer or invoice. Record it straight away so your M-Pesa or bank balance stays correct, then trace it.
An unidentified payment is money on your statement that you cannot link to any customer or invoice. Record it straight away so your M-Pesa or bank balance stays correct, then trace it.
- Post the amount to a suspense account called unidentified receipts.
- Search your customer list for the payer name or phone number on the statement.
- Search your open invoices for the same amount.
- Ask your sales team whether they expected a payment of that amount.
- Contact the payer to confirm what the payment was for.
- Move the amount from suspense to the right customer once you know who paid.
Review the suspense account every week and aim to clear each item within 30 days. Be careful with callers who say they sent money by mistake and ask for a refund. Refund only after you find the exact transaction code on your own statement, since fake M-Pesa messages are a common fraud.
How do you find duplicate and missing transactions?
The M-Pesa transaction code is unique, which makes it the easiest check for duplicates. If the same code appears twice in your books, one entry is a duplicate and should be reversed. Two receipts with the same amount on the same day are not always duplicates, so compare the codes before deleting anything.
Missing transactions come in two forms:
- A receipt on the statement but not in your books usually means a sale that was never recorded.
- A receipt in your books but not on the statement can mean a typing error, a payment still in transit or a sale accepted on the strength of a fake message.
A few basic controls prevent most of these problems:
- Let different people collect payments and reconcile them.
- Accept payments only into the business Paybill or Till, never a staff member's personal number.
- Confirm payments on the statement or the business app, not on the customer's phone.
- Record the transaction code with every receipt.
- Have the owner review the reconciliation and suspense account every month.
How can accounting software make reconciliation easier?
Manual matching in a spreadsheet works for a handful of receipts a day but breaks down as volumes grow. Accounting software takes over the repetitive parts in three ways:
- Import: You load the bank or M-Pesa statement as an Excel or CSV file instead of typing each line.
- Matching: The software pairs statement lines with book entries by amount, date and reference, and suggests likely matches for the rest.
- Reporting: You get a list of unreconciled items, a reconciled balance and an up-to-date receivables report.
Automation still needs a person to review it. Two customers paying the same amount on the same day can be matched to the wrong invoices, and an edited or PDF-converted statement file may fail to import correctly. When you compare accounting software in Kenya, check that it handles M-Pesa statements as well as bank statements and tracks receipts against individual invoices.
How often should you reconcile M-Pesa and bank payments?
A fixed routine keeps the backlog small and makes errors easier to trace while the details are fresh.
|
Frequency |
What to do |
|
Daily |
Match the day's M-Pesa receipts with invoices and cash sales. Record charges. |
|
Weekly |
Work through the suspense account. Follow up on partial payments. Match M-Pesa to bank transfers. |
|
Monthly |
Reconcile the full M-Pesa and bank statements. Review aged receivables. Get the owner's sign-off. |
A business with only a few large payments a week can drop the daily step. The monthly step should never be skipped.
Capture the transaction code with every receipt you record. With the code in your books, duplicates show up at once, missing payments are easy to trace, and a customer dispute takes minutes to settle. Add a suspense account that you clear every week and a monthly sign-off, and your receivables will show what customers actually owe.
If manual matching is taking up too much of your week, TallyPrime lets you import bank statements in Excel or CSV format, auto-reconcile entries that match and track receipts bill-wise against each invoice.
FAQs
- Why does my M-Pesa balance not match my accounting records?
The usual causes are transaction charges missing from the books, receipts entered twice or not at all, and M-Pesa-to-bank transfers booked as sales. Timing also plays a part, as a payment made late on the last day of the month can land in different periods. Compare the two records line by line using transaction codes, and the difference usually traces back to one of these.
- How should I record an M-Pesa payment received without an invoice reference?
If you know who paid, record it as an advance on that customer's account and apply it once they confirm which invoice it covers. If you do not know the payer, post it to suspense and trace it. Either way, the M-Pesa ledger balance stays correct while you find out.
- How do I handle one M-Pesa payment against several invoices?
Record one receipt for the full amount and split it across the invoices it covers, quoting the same transaction code on each part. If the customer does not say which invoices they are paying, apply it to the oldest invoices first. Send them a statement so they can see how the money was applied.
- Can M-Pesa transactions be imported into accounting software?
Yes, in most cases. You can download the M-Pesa business statement as a spreadsheet and import it into software that accepts Excel or CSV statements, sometimes after arranging the columns in the format it expects. Check the imported total against the original statement before you start matching.
- How often should an SME reconcile M-Pesa transactions?
It depends on volume. A shop with many small daily receipts should match them every day, while a business with a few large payments can do it weekly. A full reconciliation at month-end and before filing tax returns is the minimum for any business.
- What should I do with M-Pesa transaction fees in my accounts?
Record them as an expense in a separate ledger such as M-Pesa charges. Do not reduce the customer's receipt by the fee, because the customer paid the full invoice amount and the invoice should close in full.
- Can bank and M-Pesa reconciliation be managed from the same accounting system?
Yes. Set up your M-Pesa account as its own bank-type ledger next to your bank accounts, so each has its own balance and reconciliation. Transfers between them are recorded as contra entries and do not affect income.