Mwezi Bank
USSD, WhatsApp and SMS for teams that move money
Nothing reaches a caller untested
Build the service on a canvas, prove every path on a phone in your browser, and put it live on your own short code. Roll back in one step.
AgriPredict's farmer line runs on luftflow Dial *404# on MTN and Zamtel, Zambia
- USSDGenerally available
- SMSEarly access
One canvas for USSD, WhatsApp and SMS
One set of tests and one approval process for all three.
-
SMS Early access
Receipts and passcodes sent from a flow exactly once, plus single and batch sends over our own operator links.
Built for services that can't afford a wrong screen
-
Merchants
Mobile money and payments
Wallet menus, merchant payments and agent services that survive retries and timeouts.
-
Accounts
Banks and microfinance
Balances, transfers and statements on any phone, with approvals and an audit trail.
-
Bills
Utilities and billers
Tokens, bill payments and account lookups for customers without data.
-
Services
NGOs and public programmes
Health, farming and public services in the caller's own language, on basic phones.
From canvas to caller
Build, prove, release and watch every change in one place.
Menus, inputs, API calls and endings, drawn on a canvas and published as versions.
- Menus and lists filled from your API, paged to fit the screen
- Every publish kept as a version, with what changed
- A phone simulator beside the canvas
Saved scenarios dial the flow against mocked APIs. One failure stops the publish.
- Record a scenario by tapping through the phone
- Mock the bank API down, slow or wrong
- Checks find screens nothing leads to, and remove a dead branch with Undo
- Publishing checks run on every version
Publish a frozen version, rehearse it on staging, then put it live.
- Staging on your aggregator's test code
- Optional second-person approval to go live
- Roll back in one step
Completion and drop-off are counted by screen and by label, and failing API calls alert your team.
- Sessions, completion and API failures by period
- Label screens to count what callers came for, and who called
- Any session opens into a waterfall of its steps and API calls
- Alerts by email or webhook
-
Retries answered once
A repeated aggregator request is answered from the session record, not a second call to your API.
-
PINs stay out of logs
What callers type reaches your API and the live session, never the logs. Numbers are masked.
-
Safe mid-call releases
New callers get the new version; callers already dialling finish on theirs.
-
Rehearse beside what runs today
A new flow can shadow your live service, with writes refused, while its replies are compared step by step.
-
Calls that don't hold the caller
A tracking or audit call is sent once the step is saved, and the caller moves on at once.
-
A maintenance switch
Put a place, or a whole box, on a message of your own while you work, and take it off again.
-
Build it with your assistant
Claude Code, Cursor or claude.ai connect over MCP and build, check and dial flows the way a teammate would.
-
Workflows Early access
Follow a session up by SMS or WhatsApp, ask a teammate a question, or run on a schedule, in plain sentences.
Keep sessions in the country
Run the luftflow runtime on your own servers. Sessions and what callers type stay on your network.
Outside the country
luftflow editor
Where your team designs, tests, publishes and approves flows.
Published versionsThe flows your team approved
Session logsScreens reached, menu choices, *******0001
Inside your country
luftflow runtime
Runs every session on your servers.
Session store on your network
PIN checks, balances
Your APIs
Core banking, wallets or billing, answering the runtime's calls.
Each keypress
Aggregator or operator
Your short code, such as *384#, and the operator connection.
Dials *384#
Your callers
On any phone, with no app or data bundle.
Stays in the country
- PINs and anything else callers type
- Full phone numbers
- Responses from your APIs
- Live session state
What crosses the border
- Published versions come in from the editor
- Session logs go out for traffic reports: screens, menu choices, masked numbers, and which API calls failed or were slow
- Two-person go-live
- The publisher can't also put it live.
- Audit log
- Every publish and deploy, exported for your risk team.
- Staging and live apart
- Own callback URL, keys and secrets each.
- Passkeys and SSO
- Require a passkey for your whole organisation.
Nigeria (Central Bank circular, from 2027) and Zambia (Data Protection Act 2021) require some data to stay in the country. Background, not legal advice.
Pay for sessions, not seats
Building is free for your whole team. You pay per live session, at a price agreed before launch.
Build
Free
As many flows and teammates as you like.
- Canvas, forms and phone simulator
- Scenarios and publishing checks
- Staging with your aggregator's test code
Live
Per live session
Take real calls on your short code.
- Versions, promotion and one-step rollback
- Optional second-person approval to go live
- Traffic by screen, label and caller, with alerts by email or webhook
- Usage, spend and invoices on one page
Self-hosted runtime
Per month
Sessions on your servers, with a monthly allowance, and the same editor, approvals and reports.
- Sessions and typed answers stay on your network
- A box per network, each with its own token
- Shared session store for several replicas
Your aggregator or operator bills separately for the short code and sessions. WhatsApp and SMS messages are priced before the first send. Nothing is charged until your service is answering.
Become a design partner
We work closely with a small group of teams, starting with those that have a launch date or live traffic.
Do we need a USSD short code first?
No. You can build and test a whole flow without one. Real calls need a code from an aggregator or operator.
How long until we are live?
Most teams build and test a flow in a day. Going live waits on your short code: a shared one is quickest, a dedicated one can take weeks.
Which aggregators and payment services does it work with?
Africa's Talking, and the MTN and Zamtel gateways, with a callback URL for each environment. MTN MoMo and Airtel Money payments inside a flow are in early access.
Can an AI assistant build our flow?
Yes. Claude Code, Cursor and claude.ai connect over MCP, by signing in or with a token, and act as you, at your role. An assistant can build, check and dial a flow, and it cannot put a version live unless you can.
Can we move a USSD service we already run?
Yes. We rebuild your menu, run it beside your live service on real calls, and switch the callback URL once the two agree.
What does it cost?
Building and testing are free. Live is priced per session, not per seat, and the self-hosted runtime is a monthly plan with sessions included. The price is agreed in writing before you go live.