Mobile money, USSD & SMS
Most school fees in EduPrime’s markets are paid by phone. This page covers connecting the mobile-money rails, switching safely between test and live, what the parent actually does to pay, the USSD flow for non-smartphone families, SMS receipts, and how to handle failed or duplicate payments.

Connecting the rails
EduPrime ships connectors for M-Pesa, Airtel Money, Flutterwave and Pesapal. Configure each under Fees & Finance → Configuration → Payment Providers.
- Open the provider and enter the credentials from your aggregator portal – consumer key/secret, shortcode/paybill or till, and the passkey where required.
- Set the callback URL shown by EduPrime in your aggregator dashboard so payment confirmations reach the school.
- Choose the account/reference format – admission number is strongly recommended.
- Save and run the built-in Test connection check.
Test (sandbox) vs live
Every provider has an Environment toggle: Sandbox for testing, Production for real money.
| Mode | Use it for | Money moves? |
|---|---|---|
| Sandbox | Verifying setup, training bursars | No – uses test numbers |
| Production | Live collection from parents | Yes – real funds |
How a parent pays (smartphone)
- Parent opens the parent portal/app or receives an STK prompt after the school requests payment.
- They confirm the amount and enter their mobile-money PIN on their own phone.
- The aggregator confirms; EduPrime reconciles to the child’s invoice; an SMS/email receipt is sent.
USSD for non-smartphone families
Families without a smartphone pay over USSD using the school paybill.
- Dial the mobile-money menu (e.g. the M-Pesa or Airtel Money USSD code).
- Choose Pay Bill / Pay Merchant.
- Enter the school paybill/business number.
- Enter the child’s admission number as the account.
- Enter the amount and confirm with the PIN.
EduPrime treats a USSD paybill payment exactly like an app payment – it reconciles on the admission number and sends an SMS receipt to the number that paid.
SMS receipts
Every successful payment triggers an SMS receipt to the paying number: school name, child name, amount, new balance and a receipt number. This is the only confirmation many families keep, so ensure your SMS provider has credit and the sender ID is approved.
Failed & duplicate payments
Edge cases are inevitable at scale. Handle them here:
| Situation | What to do |
|---|---|
| STK push timed out | No money moved – ask parent to retry; no record is created |
| Money debited but invoice not cleared | Check the Unmatched tray; reference was likely wrong – match manually |
| Duplicate payment (paid twice) | Second payment becomes account credit; refund or carry to next term |
| Reversal from aggregator | EduPrime records the reversal and re-opens the invoice balance |

