← Back to blog
API 2 min read·

USSD still matters: building menus that work on every handset

No data plan, no app store, no smartphone. A USSD menu reaches the people other channels miss. How sessions work, and how to design one people finish.

By AppLink Team

A large share of Banglalink subscribers use feature phones, or smartphones with no data balance on the day you need them. A USSD menu works on every one of those handsets. The subscriber dials a code, a menu appears, they press a number. Nothing to install, nothing to load, and the session stays open across every step.

How a session flows

  • The subscriber dials your code. AppLink posts an mo-init request to your receive URL, with a sessionId.
  • You reply through the USSD send endpoint with ussdOperation set to mt-cont and the menu text.
  • Each key press arrives as mo-cont with the same sessionId. Look up where that subscriber is and send the next screen.
  • When the journey is done, send the final screen with mt-fin to close the session.
POST /ussd/send
{
  "version": "1.0",
  "applicationId": "APP_000001",
  "password": "password",
  "sessionId": "1330929317043",
  "ussdOperation": "mt-cont",
  "destinationAddress": "tel:+8801959979376",
  "message": "Crop prices\n1. Rice\n2. Potato\n3. Onion\n0. Back",
  "encoding": "440"
}

Design menus people finish

  • Keep each screen to a handful of short lines. If it needs scrolling, it needs splitting.
  • Ask one thing per screen, and number every option.
  • Always offer 0 to go back, so a wrong press is not a dead end.
  • Menus are plain ASCII (encoding 440), so write them in English or romanised Bangla.
  • Key session state by sessionId, and expire it when the session ends so a new dial starts clean.

Where USSD shines

USSD is at its best when the answer is short and the need is immediate: crop prices and farming advice for rural subscribers, quick surveys and data collection in the field, and account or balance self-service for any business with customers on the move. Each menu request is charged at ৳2 to the subscriber, and you take your revenue share of every one.

Want to build this?

Launch your own service on AppLink today.

Get started