M-Pesa Reconciliation & Invoicing

M-Pesa reconciliation means matching each Till or Paybill receipt to the invoice it settles, so that your sales ledger, your M-Pesa statement and your tax records agree. Do it daily or weekly from the business statement, note part-payments, and resolve unidentified receipts before month end.

Why M-Pesa needs its own reconciliation

For many Kenyan businesses, M-Pesa carries most of the customer payments, so the M-Pesa statement is as important as the bank statement. Receipts arrive instantly but carry only a transaction code, a payer name or number and an optional reference, so identifying what each one pays for needs a process.

Without reconciliation, unpaid invoices look paid, paid invoices look overdue, and the cash position is wrong. Customers are then chased for money they already sent, which damages relationships, or the reverse happens and genuinely overdue accounts are forgotten.

There is also a tax angle. Revenue received through M-Pesa belongs in your sales records and, where you are VAT-registered, must be backed by tax invoices. A pile of payments with no invoices is exactly what KRA questions during a review.

Staff turnover makes this worse. When the person who knows which customer uses which phone number leaves, undocumented knowledge disappears with them. A shared customer list with the numbers each customer pays from lets anyone identify payers when the statement shows only a name.

Till, Paybill and what each statement shows

A Buy Goods Till records the payer's number and name, the amount and the transaction code. It suits quick retail payments, but it carries no invoice reference unless the customer tells you separately. Matching therefore relies on amount and time, which becomes ambiguous when two customers pay the same price.

A Paybill adds an account number field, which the customer types when paying. If you ask customers to enter the invoice number as the account number, the statement itself shows which invoice each payment belongs to. This is the single most useful change a growing business can make.

Authorised users can download statements from the M-Pesa business portal. Settle the question of who holds portal access and what role each user has, because a departing employee with live access is a control weakness that auditors will point out.

A practical matching routine

Download the statement for the period and sort receipts by date. For each line, find the open invoice with the same reference or amount, and record the M-Pesa transaction code against the invoice in your records. The code is the proof of payment you will quote in any dispute.

Treat three situations explicitly. Part-payments reduce the invoice balance but leave it open. Over-payments become a credit to refund or apply later. One payment covering several invoices needs a written allocation. Handling these on the spot prevents a growing list of mystery balances.

Place anything you cannot match on a suspense list with the date, amount and payer details, and follow up within days. Call the payer or ask the sales team who they were dealing with. Unmatched receipts older than a month are hard to resolve and risk being booked as revenue twice.

Time stamps help when references are missing. A payment arriving two minutes after a sales rep sent an invoice message is almost certainly for that invoice. Keep the delivery or invoice message log, since it can break ties between two similar amounts when the customer cannot be reached.

Receipts, refunds and disputes

Customers expect confirmation after paying. The M-Pesa confirmation message gives them proof of payment, but a business should still send its own acknowledgement or receipt that references the invoice number. That closes the loop and prevents repeat payments.

Refunds should go back the way the money came, with a note linking the refund to the original transaction code and the reason. Keep the approval of who authorised it, because refunds are a common route for fraud when no one checks them.

In disputes, the statement, transaction code, invoice and delivery proof together make the case. Keep them filed by month. Safaricom and the customer may both ask for the transaction code, and being able to quote it immediately resolves most disagreements.

Reversals deserve a clear rule. If a customer pays the wrong amount or the wrong Paybill, document the request, check the funds actually arrived, and follow Safaricom's reversal channel where the money did not belong to you, instead of improvising a refund from another account.

Linking receipts to tax records

For VAT-registered businesses, each sale needs a valid eTIMS tax invoice, whatever the payment method. Reconcile the M-Pesa statement to the eTIMS sales list at month end, and investigate any receipt without a corresponding invoice. Either an invoice is missing or the money is unrelated to sales.

Record M-Pesa charges as bank-type expenses and keep the statement as support. Transaction fees affect profit and, in some cases, VAT treatment, so ask your accountant how to book them.

Do not mix personal and business wallets. Using a personal number to collect business payments makes it impossible to prove which receipts are revenue, and it invites tax questions that a Till or Paybill in the company name would avoid.

When a customer asks for a tax invoice after paying on the Till, issue it from your eTIMS route and reference the M-Pesa code, so the payment, sale and tax record link up. Doing it at the time of sale is far easier than reconstructing hundreds of till payments for a VAT return.

What 4b2b can and cannot do

4b2b does not connect to M-Pesa Daraja and has no webhook integration, so payments are not matched automatically. The matching is a manual step, with the 4invoices.net archive acting as your list of open invoices.

You can send a receipt message yourself by SMS or e-mail from 4notify.net, quoting the invoice number and the M-Pesa code. Messages go out only when you send them, and there is no automatic receipt generation.

If your volume grows to the point where manual matching consumes days, speak to a provider that offers a Daraja integration and confirm what it covers. Evaluate it against your own reconciliation checklist, not just a demo.

01
Obstacle

M-Pesa receipts arrive as mobile notifications and are matched to invoices only at the end of the week, by which point some are missed.

Solution

4b2b does not connect to M-Pesa Daraja and has no M-Pesa webhook integration. Match each receipt to an invoice manually, using your invoice archive as the list of open items.

02
Obstacle

Customers expect an instant digital receipt after paying via M-Pesa, but generating one manually is impractical at volume.

Solution

You can send a receipt message yourself by SMS or e-mail from your 4notify.net account; receipts are not generated or sent automatically.

03
Obstacle

Two customers pay the same amount to a Till and nobody can tell which invoice each payment settles.

Solution

Ask customers to quote the invoice number as the Paybill account reference. 4b2b does not capture references automatically.

How do I match M-Pesa payments to invoices?

Download the business statement, sort receipts by date and match each to an open invoice by reference and amount. Record the M-Pesa transaction code against the invoice and mark it paid or part-paid. Anything you cannot identify goes on a suspense list that you clear within days by contacting the payer.

Should I use a Till or a Paybill to collect invoice payments?

A Paybill is usually better for invoices, since the customer enters an account number, which can be the invoice number. A Till suits over-the-counter retail sales. Safaricom or your bank can advise on eligibility and charges, so choose according to how your customers actually pay. If customers will not type references, a Till plus careful matching can still work.

What do I do with M-Pesa transaction fees?

Record them as an expense, keep the statement as support and ask your accountant how they are treated for tax and VAT. Do not net fees against sales in the ledger, because your sales should reflect the gross amount the customer paid and the cost should appear separately. Keep the monthly statement that shows the fee lines for your accountant.

Can I use a personal M-Pesa number to collect business payments?

It is risky. Personal and business money become mixed, receipts are hard to prove as revenue, and KRA reviews can raise questions about unexplained deposits. A Till or Paybill registered to the business gives a clean statement, which is better evidence for loans, audits and tax returns. It also complicates inheritance and disputes, since the number belongs to a private individual.

Does 4b2b reconcile M-Pesa automatically?

No. The 4b2b modules do not connect to M-Pesa Daraja or import statements. You match receipts yourself, using the 4invoices.net archive as your list of open invoices, and can send acknowledgements by SMS or e-mail from 4notify.net when you decide to. Neither module reads your M-Pesa statement, so every match is a manual decision by your staff.

Operations

Information page

This page is informational. Confirm requirements with the competent authority; 4b2b tools cover general invoicing and records only.