The pipeline
How a sale runs
Five stops between a till payment and a delivered bundle — each one recorded, none of them manual.
- 1:PAYA customer pays the till
The M-PESA C2B confirmation lands on the API with the amount and the payer’s number. No app, no link — the till they already use.
- 2:MATCHThe amount picks the plan
Plans match by exact price: KSh 20 is 1GB for an hour, or it is nothing. No ranges, no nearest-fit guessing with someone’s money.
- 3:DISPATCHA phone takes the job
The job goes to an online device on the plan’s network — least-loaded first, across every phone registered to your account.
- 4:DIALThe menu is walked, key by key
The phone drives the real *100# dialog. Every keypress checks the screen first; if the carrier moved the menu, it types nothing and reports the mismatch.
- 5:SETTLEThe carrier calls it
“You have gifted 1GB…” settles the sale. Anything ambiguous is parked for review with the full transcript — never guessed.
The money path
Careful where it counts
A USSD menu has no dry run and no undo. The engine is built around that fact.
USSD menus answer by position — yesterday’s “1” can mean something else today. Every step carries an expected screen; on a mismatch the engine sends nothing, cancels, and returns the transcript.
Only provably-undelivered attempts retry, three at most. An ambiguous ending goes to failed orders for a human decision — one tap to retry once you’ve seen why it stopped.
Every session keeps the network’s own words, screen by screen. Outcomes are classified from the final message, and the raw transcript is always the authority.
Register as many devices as you need — jobs spread across whichever are online. Airtime top-ups are dial jobs too, sent from a funding phone and settled into a durable ledger.
The console
The whole rack on one screen
Sign in and watch money move: revenue and success rate up top, every order matched to its dial, every device with its heartbeat. When something needs you — a failed order, an offline phone — the console says so. Otherwise it stays out of your way.
Getting started
Live in three steps
The pipeline above runs itself. Getting there is a one-time setup — and the first tier is free.
- 01Create your operator account
Sign up and you’re on the Free tier the same minute — one phone, one plan, no card. Upgrade later, only when a busier week asks for it.
- 02Enrol your phones
Install the Android agent and tap once per handset. Each phone long-polls the console for work, so there are no inbound ports to open — a phone sells from anywhere it has signal.
- 03Point your till, publish your plans
Set your Daraja C2B URL to the console and price each plan to the shilling. From then on every matching payment dials itself — you just watch the money move.
Pricing
Pay for the rack you run
Start free, upgrade when a busy week asks for it. Every tier bills straight from M-PESA — no card, no contract, renewing every 30 days until you let it lapse.
Kick the tyres — one phone, one plan.
- 1 phone on the rack
- 1 sellable plan
- 1 concurrent dial
A small shop: a few lines, a handful of plans.
- 3 phones on the rack
- 5 sellable plans
- 2 concurrent dials
A busy operator with a rack of phones.
- 10 phones on the rack
- 20 sellable plans
- 5 concurrent dials
Need more sellable plans than your tier includes? Buy plan slots one at a time from the in-console marketplace — each add-on stacks one extra slot on top of your tier, no upgrade required.