M-Pesa reconciliation
A cron re-checks pending STK payments every few minutes; admins can re-run a single transaction from the Money dashboard.
Reconciliation covers one failure mode: an M-Pesa payment succeeded but the Daraja callback never reached us, leaving the wallet transaction pending.
What runs automatically
A cron job re-checks pending STK transactions against Daraja every 5 minutes. When a recheck finds the payment succeeded, it credits the wallet and confirms the transaction — the parent's balance simply appears a few minutes late.
What admins can do
On Admin → Money (financial tier), a pending transaction row can be reconciled manually — the same recheck, run on demand for that one transaction. Use it when a parent is on the phone and the 5-minute cadence feels long.
There is no reconciliation queue to triage, no category system, and no manual-transaction form — a payment that Daraja itself reports as failed stays failed, and the parent retries the top-up.
Common issues
- Parent paid, wallet still empty after ~10 minutes. Find the transaction on Money and reconcile it manually; if Daraja reports it failed, have the parent retry and email us the M-Pesa code if money left their account.
Related