School fees are recurring, but they rarely behave like a simple monthly subscription. Kenyan schools often collect by term, allow instalments, accept payments from parents or guardians, and use admission numbers or student references to identify payments.
Treat each term or instalment as a clear obligation
A learner may have tuition, transport, meals or other approved charges. Keep those amounts identifiable instead of treating every M-PESA receipt as a complete fee record.
Use the student account, not the payer phone number, as identity
A parent, guardian, employer or relative may pay. The payer number is useful evidence but should not replace the student's admission/account reference.
Sibling payments need explicit allocation
One parent may pay for two or more children. A single lump-sum payment should not be guessed across sibling accounts. Either collect against explicit references or place the payment in an allocation workflow.
Bank PayBills and school references can coexist with structured billing
Many schools already use bank or mobile-money PayBills with admission numbers. A billing system can preserve that familiar payment route while improving due-state, matching, reminders and reconciliation.
Do not automate punitive action from one missing payment event
School policy may allow agreed instalments, extensions or manual review. The billing system should surface balances and payment evidence; the school should own the commercial and learner-access decision.
Kenyan school billing is usually term-led
Many schools organize fees around three academic terms rather than twelve equal monthly renewals. Within a term, a parent may pay once, follow an agreed installment plan or make several partial payments before the balance is cleared.
That means the ledger needs both a term obligation and payment allocation. A single M-PESA receipt should not be assumed to mean the whole term has been settled.
Handle partial payments explicitly
If the term balance is KES 45,000 and the parent pays KES 20,000, record KES 20,000 paid and KES 25,000 remaining. Keep the same student/term record instead of opening a new invoice for the balance unless the school's accounting policy specifically requires separate installments.
Design for parent support
- Show the learner name or masked student identifier in confirmations.
- State the remaining balance after a partial payment.
- Let finance reallocate a payment with an incorrect sibling reference without losing the original provider evidence.
- Stop generic overdue reminders for accounts under an approved payment arrangement.
The goal is not to make school fees behave like a SaaS subscription. It is to give each term and installment a traceable state while preserving the school's existing payment policy.
Keep the parent view simple
A parent-facing statement should show each learner, term, amount billed, payments allocated and remaining balance. That is more useful than a raw list of M-PESA transaction IDs, especially when one household pays for several learners.



