USSD menus run on every Safaricom, Airtel and Telkom handset — smartphone or not, signal or none. Dial a shortcode, navigate by keypad, branch on real-time API calls, end the session with the work done. Carrier-billed, zero data required.
You design the menu tree in the Sozuri dashboard. The session engine handles state, the carrier handles billing, your API handles the business logic.
Build the tree in the dashboard: prompts, options, input variables, conditional branches. Publish to Redis — new versions go live without breaking in-flight sessions.
At any node, call your backend with collected variables. Branch on success / error response. Keep external calls under 1.5s or the carrier will time the user out.
Session ends with CON (continue) or END (terminate). Carrier debits the subscriber, Sozuri logs the CDR with full path and revenue accrual.
Drag prompts, options, input nodes and HTTP calls in the dashboard. Publish from staging to production with one click.
Call your API for live data — balances, loan eligibility, OTPs. Branch the next prompt on the response.
The session engine runs on Node with Redis state. P99 below 200ms even under load — well within the carrier's session window.
New menu versions deploy to Redis. In-flight sessions complete on the old version; new sessions land on the new one. No disconnects.
Every session logs MSISDN, path, hop count, duration, subscriber charge and revenue accrual. Export to CSV or fetch via webhook.
Prepaid (free to dial, you absorb cost), postpaid (subscriber-billed) and zero-rated (carrier waives). Pick per shortcode at provisioning.
Balance checks, loan applications, mini-statements, member enrolment. Works on the cheapest Kabambe handset.
Citizen permit lookups, NHIF enquiries, voter status checks. Inclusive by design — reaches every voter.
Policy purchases, claim filing, weather alerts, market prices. Designed for rural areas with patchy data.
USSD is shared infrastructure with each carrier — provisioning involves KYC, content review and tariff negotiation. Sozuri runs that process for you.
The carrier-side session times out at around 180 seconds with no input. The Sozuri engine itself responds to every keypress in under 200ms, leaving ample room for HTTP nodes to call your backend.
If your external API takes longer than ~1.5 seconds, you risk the user seeing a timeout from the carrier. Treat USSD as a low-latency channel — use cached data, pre-computed values, or async work for anything slow.
The carrier bills the subscriber per session (prepaid model) or waives the charge (zero-rated). Sozuri receives the monthly reconciliation statement from each carrier and posts your revenue accrual.
Yes. Sozuri keeps the previous menu version in Redis for 24 hours after a publish. Sessions started on the old version finish on the old version; new sessions hit the new one.
If you need to reach the 100% — not just the smartphone 70% — USSD is the only channel that works on every handset, on every network, even without data. Apply for early access and we'll walk you through the carrier KYC.