features

Everything you need
to bill on mobile money.

From the SDK to the dashboard, Chia handles every piece of subscription billing over African mobile money rails. Here is what ships out of the box.

01

Unified provider SDK

One TypeScript package wraps every provider. Initialize once, collect from any mobile money network. Type-safe from config to callback.

  • Type-safe API
  • Singleton pattern
  • Published on npm
  • Custom provider adapter
setup.ts
1import { ChiaSDK } from "chia-sdk"
2
3ChiaSDK.initialize({
4 provider: "paychangu",
5 secretKey: process.env.SECRET_KEY,
6})
7
8const sdk = ChiaSDK.getInstance()
9const payment = await sdk.collections.create({
10 amount: 4500,
11 currency: "MWK",
12})
Happy path
incompleteactiverenewal_pendingactive
Customer action
incompleteawaiting_actionactive
Failed
renewal_pendingpast_duecancelled
02

Subscription state machine

Seven states cover every lifecycle scenario - from first payment through renewal, retry, and cancellation. Each transition is deterministic and auditable.

  • 7 subscription states
  • Deterministic transitions
  • Automatic retry on failure
  • Full audit trail
03

Admin dashboard

A real-time dashboard gives you full visibility into subscribers, payments, and billing jobs. No third-party analytics needed.

  • Real-time metrics
  • Subscriber management
  • Payment history
  • Billing job monitor
Active subs
847
MRR
4.2M
Success rate
94.2%
Churn
3.1%
Queued
24
Failed
0
PayChangupayment.successsuccess
PawaPaypayment.failedfailed
PayChangusubscription.renewedsuccess
PayChangupayment.successduplicate
PawaPaypayment.successsuccess
04

Webhook processing

Provider callbacks are normalized into a common format, deduplicated, and matched to subscribers automatically. Duplicates are detected and logged.

  • Automatic deduplication
  • Normalized payloads
  • Provider-agnostic events
  • Full event audit log
05

Automated billing engine

A cron-driven engine handles renewals, retries, and reconciliation. Jobs run on schedule and report status back to the dashboard.

  • Scheduled renewals
  • Automatic retries
  • Payment reconciliation
  • Job status tracking
renewal84 subscriptions processedsuccess06:00
retry12 failed payments retriedprocessing06:15
reconcileSynced 3 pending paymentssuccess06:30
renewal92 subscriptions processedsuccess12:00
1Select plan
2Enter phone
3Confirm
4Active
06

Mobile-first checkout

A four-step flow takes subscribers from plan selection to active subscription. Supports USSD prompts, TAN entry, and PIN confirmation depending on the provider.

  • USSD and TAN prompts
  • Provider-specific flows
  • Real-time status updates
  • Automatic activation

Ready to ship
subscriptions?

Get from zero to collecting recurring mobile money payments in under an hour.