Invoice.
Collect.
Reconcile.
One ledger, wired to M-Pesa, Airtel, and card rails — with webhook-verified reconciliation that posts before the customer locks their phone. Every invoice links to the payment, the subscription, and the RADIUS session it covered.
| Item | Qty | Amount |
|---|---|---|
| Home 20M · PPPoE Monthly subscription · full cycle | 1 | 2,500.00 |
| Plan upgrade pro-ration 10M to 20M · 12 days | 1 | 450.00 |
| Subtotal | 2,950.00 | |
| VAT 16% | 472.00 | |
| Total · KES | 3,422.00 | |
A single ledger from sale to settlement.
Every payment flows through the same reconciliation pipeline — verified at the webhook, applied to the right invoice, attributed to the right RADIUS session.
Plans, FUP, throttle
Tiered plans with FUP triggers, daily and weekly quotas, time-bound cumulative limits. Plan changes apply at next session or immediately; proration handled.
Auto-invoicing + proration
Invoices generate at cycle close. Mid-cycle plan changes prorate; credit notes post automatically; recurring schedules survive month-length quirks.
M-Pesa, Airtel, card, bank
STK push, C2B paybill, B2C disbursement, Stripe / Pesapal / Flutterwave card rails, plus bank-deposit manual reconcile — all in one ledger.
Webhook-verified rails
Daraja STK callbacks come in over raw-body-verified webhooks. Reconciliation posts to the invoice and emits billing.paid in the same second.
Aging + dunning
Per-customer aging buckets (0-30, 31-60, 61-90, 90+) with templated SMS / email at each stage and an auto-suspend gate at the cutoff.
Quote pipeline + projects
Sales quotes flow into invoices on accept; project mode tracks billable time and materials per technician against the same invoice.
A receipt finds its invoice, automatically.
Daraja posts the callback. ISPStack reads the account reference, finds the open invoice, posts the payment, and emits the event RADIUS subscribes to. No CSV download, no end-of-day spreadsheet.
- Amount
- KSh 3,422.00
- From
- +254 7XX 123456
- Paybill
- 400 200
- Acct ref
- CUS-04812
- Time
- 25 May, 14:08
Where the receivables actually sit.
A snapshot of an operator's open AR across the dunning buckets. Each bucket has its own templated SMS / email cadence and a configurable suspend gate at the cutoff.
Reconcile your first M-Pesa payment within an hour.
Daraja wiring is a single config screen. Your first invoice closes itself the moment a customer pays — no end-of-day spreadsheet, no manual matching.