USSD portal

Purpose

USSD (Unstructured Supplementary Service Data) is a standard mobile service that allows high-speed interactive communication between subscribers and applications. Dialogue is conducted within a USSD session by instant messaging. The delivery speed is higher than that of SMS.


The most common use of USSD is to check the account balance of a mobile phone (example: short code *100#). However, the use of USSD is not limited to just checking account balance.

Some areas of application

  • Delivery of one-time passwords: USSD appears on the screen and is not saved in the device's memory.
  • Confirmation of various operations: the subscriber replies to a received USSD confirming the operation.
  • Running self-service portals for subscribers: connecting/disconnecting services, changing tariffs, checking balance.
  • Quick blocking of a credit card or topping up a mobile phone balance: USSD works without the Internet; the service is free of charge for subscribers while roaming.
  • Remote banking (USSD banking).
  • Provision of VAS services.
  • Building USSD portals for payment systems: money transfers, payments to providers, etc. using USSD.

USSD types

Network Initiated USSD / USSD Push
Bulk sending by users through their personal dashboard.
Automated sending of single and bulk USSD via API.
Incoming USSD
Each short code (for example, *100#) has its own USSD menu. Processing of complex USSD queries like *100*123*000000# is supported.

Unlimited USSD menus and numbers to handle user requests.

Operator protocols

For USSD, the standard SMPP protocol, MAP over SIGTRAN, and various proprietary protocols from USSD gateway vendors are supported.


MAP protocol support is in demand in cases where the mobile operator doesn’t have a USSD gateway or there are restrictions on the number of USSD gateway connections.

USSD menu

To launch a USSD messaging service or organize a service for processing incoming requests from subscribers, you need to create a USSD menu. USSD menu behavior is described in the XML-based SCXML (State Chart XML) language. SCXML features are enhanced using Groovy language. A similar format is used to configure the IVR menu used in calls. The main elements of the SCXML language are:

  • states,
  • transitions between states,
  • events initiating transitions between states
  • actions that are executed during transition from one state to another.
A visual editor (alpha version) is available for building USSD menus in SCXML.

Main features of the USSD menu

  • Display of text messages.
  • Initiation of SMS sending from the USSD menu.
  • Processing of any user's text commands for navigation or entering data (e.g. account number, payment amount).
  • Execution of HTTP or SQL queries to external systems, keeping track of response in further behavior. For example, checking and displaying the current balance.
  • Keeping track of subscriber interaction history in USSD menu behavior, formation of dynamic USSD menus.
  • Automated splitting of "long" USSD response messages into several parts with navigation between the parts.
  • Creation of multilingual portals, remembering the selected language.