How to Reconcile M-Pesa School Fee Payments
By PayDesk · Updated
How do I reconcile M-Pesa school fee payments to the right student?
Ask parents to pay your Paybill using a reference your system can recognise, such as the invoice number or the student admission number. The system receives Safaricom's payment confirmation, matches the reference to a student, and updates the invoice balance without anyone typing it in. A payment whose reference matches nothing is not applied automatically; it is flagged for finance staff to resolve by hand.
Why manual reconciliation breaks down
Most schools reconcile by downloading the M-Pesa statement and matching each line to a student by hand. This works for a few dozen payments. At the start of a term, hundreds arrive in days, parents mistype account numbers, and the same payment can be recorded twice.
How automatic matching works
When a parent pays your school's Paybill, Safaricom sends a confirmation to your billing system (the Daraja C2B confirmation). It contains the transaction code, amount, payer phone number and the account reference the parent typed. PayDesk then tries to match that reference in order:
- First, as an invoice number for your school.
- If that fails, as a student admission number, applied to the student's oldest unpaid invoice.
- If neither matches, no payment is created. PayDesk logs the transaction (code, amount, payer and the reference typed) as an unreconciled M-Pesa payment on the Payment Operations page for finance staff to resolve.
Payments that are not applied automatically
Automatic matching only applies money to an invoice that is still open. A payment whose reference points to an invoice that is already paid or cancelled, or to a student with no open invoice, is not applied. PayDesk logs it as an unreconciled payment with the reason, so it appears on the Payment Operations page for finance staff to resolve.
Duplicates and retries
Safaricom can resend a confirmation. A safe system treats the M-Pesa transaction code as unique and ignores a second delivery of the same code. PayDesk does this, so a retried notification does not credit a student twice.
A reconciliation checklist for the bursar
- Print the account reference format (invoice number or admission number) on every fee statement and notice.
- Review unreconciled payments at least weekly during term opening. The Payment Operations page shows the last 30 days.
- Compare the system's total collected against the Paybill statement at month end.
- Keep the M-Pesa transaction code on every receipt so any dispute can be traced.
Frequently asked questions
- What account number should parents use when paying school fees by Paybill?
- Use whatever reference your system matches on. In PayDesk this is the invoice number or the student admission number. Tell parents exactly which one on every statement.
- Can the same M-Pesa payment be recorded twice?
- Not in PayDesk. Each M-Pesa transaction code is stored once, and a repeated confirmation with the same code is ignored.
- What happens if a parent types the wrong account number?
- The payment cannot be matched automatically. No payment is created; it is logged as an unreconciled M-Pesa payment so finance staff can allocate it manually.
See it work with your own Paybill
PayDesk matches M-Pesa payments to invoices automatically. Book a short demo and we will show it on a sample school.