Unstructured Supplementary Service Data (USSD) requests allow mobile phone users to request information or perform various actions by dialing short codes. For example, a user can dial *136# to check the current balance or *136*4# to change their package.
The advantage of the USSD services is that they require neither Internet access nor a smartphone. With USSD requests, MVNOs can provide services that are easily accessible from any mobile phone, making them particularly popular in African countries.
Mobile operators provide USSD services through USSD gateways, which communicate with external systems such as billing platforms like PortaBilling, to manage USSD requests and responses. The gateway can utilize PortaBilling API to query balances, check remaining monthly quotas, change products, and more.
Here’s how USSD operations work:
- The mobile operator configures the service menu on a third-party USSD gateway.
- The mobile operator provides service codes to subscribers upon signup.
- A subscriber dials a USSD code *123# to check their account balance.
- The USSD gateway receives the USSD request and queries PortaBilling for the subscriber account balance via the PortaBilling API.
- PortaBilling identifies the subscriber’s account and returns their balance amount in the API response to the USSD gateway.
- The USSD gateway sends the information to the subscriber.
- The subscriber receives a USSD message displaying their balance, "Your current balance is $45."
Any third-party USSD gateway can be integrated into the PortaBilling. Currently, PortaBilling is integrated with the Pharos Charging Interworking Gateway (Pharos CIG) to support USSD services.