Billing & Payments

Invoices, M-Pesa and dunning — reconciled while you sleep

Per-block subscriber pricing, CM-numbered invoices, STK Push and offline payments, automated dunning and subscriber statements — one billing engine wired straight into your CRM and client portal.

The billing engine

Every shilling tracked, zero manual entries

  • Per-block pricing. $40 per block of 100 subscribers — flat, predictable, no revenue share.
  • CM-numbered invoices. Sequential CM-2026-0042 numbering with PDFs generated and delivered automatically.
  • M-Pesa + offline payments. STK Push and Paybill callbacks credit accounts in seconds; cash and bank transfers record against the same invoice.
  • Dunning that runs itself. Reminders before due date, configurable grace periods, automatic suspend and reactivate on payment.
  • Subscriber statements. Balance, invoices and payment history on every subscriber's client portal.
  • Approval workflow. Record payment → invoice issued → approve or reject, with a full audit trail.
wanfiber · billing-engine — live
$ mycellium billing run --tenant wanfiber
invoice_run    done · 312 invoices · CM-2026-0301…0612
mpesa_stk     confirmed · 2547•••678 · KES 2,500 · 2.1s
offline_pay   posted · cash · CM-2026-0488 settled
dunning      queued · 3 reminders · grace 5d
statements  synced · client portal balances current
Collections

Get paid the way your subscribers actually pay

A subscriber pays by STK Push from their couch, or hands cash to your field agent — both land on the same ledger. Invoices approve or reject with a reason, balances update everywhere, and the PPPoE session follows the account status automatically.

When an invoice goes past its grace period, dunning takes over: reminders, suspension, and reactivation the moment payment clears — no spreadsheets, no phone calls, no forgotten reconnections.

$40/block
per 100 subscribers
<3s
STK push → credited
2
payment rails, one ledger
100%
audit-trailed approvals
Billing & Payments

Ready to automate collections?

Spin up a tenant, load your subscriber blocks and watch the first invoice run reconcile itself — M-Pesa included from day one.