luftflow
Everywhere
Start free

USSD menus that never break mid-call Any handset, no data. Draw the menu, test every path, put it live on your short code.

Harbour Bank / Balance line 12 tests passing Publish
main

Harbour Bank

  • 1 Balance
  • 2 Send money
  • 3 Help
pin

Enter your PIN

  • 4 digits, never logged
accounts

Fetch the balance

  • GET /accounts/{phone}
  • found
  • failed
show_balance

Your balance is 1,240.50. Thank you for banking with us.

Done here

On the caller's phone

Harbour Bank
1. Balance
2. Send money
3. Help

CancelSend

Your balance is 1,240.50. Thank you for banking with us.

OK

Menus, inputs, API calls, lists from your data, every language. Checked before it publishes.

Built for real networks. Sessions that survive retries, timeouts and releases.

Your gateway
Your aggregator or operator, on the short code you already have.
Hosted or yours
Sessions run on our servers or inside your own network.
PINs stay out of logs
What callers type reaches your API and never a log.
Safe releases
Callers mid-session finish on the version they started.
Retries answered once
A repeated request is answered from the session, not a second API call.
Rehearsed on real calls
Run beside your live service, writes refused, until the two agree.

Questions

Do we need a short code first?

No. Build and test a whole menu without one. Real calls need a code from an aggregator or operator.

How long until we are live?

A menu is built and tested in days. Going live waits on your short code: a shared one is quickest.

Which gateways does it work with?

Aggregators and operator gateways that call a URL per session, with a separate address for staging and live.

Bring us your menu. We rebuild a path of it and send you a code to dial.