USSD API
Unstructured Supplementary Service Data application.
The Ideamart platform facilitates to initiate USSD and continue sessions using a HTTP-based API.
With this API, USSD can be used to either directly provide a service by menu navigation or use the menus to support the main service by working with other APIs.
Send Service
To send USSD messages to a mobile phone from an application. This service lets the user send USSD to one or more terminals from the application.
URL
https://api.ideamart.io/ussd/send
Content Type
application/JSON
Method
POST
Request
Following is a sample request for send service.
{
"applicationId": "APP_000001",
"password": "password",
"message":
"1. Press One
2.Press two
3. Press three
4. Exit",
"sessionId": "1330929317043",
"ussdOperation": "mt-cont",
"destinationAddress": "tel: 5C74B588F97"
}
Following are the Request parameters of send service.
Parameter Name | Description | Type | Mandatory / Optional |
---|---|---|---|
applicationId | Application ID as given when provisioned. | String | Mandatory |
password | Password given when provisioned | String | Mandatory |
version | API version (shall be numbered as 1.0 etc). If not specified shall be validated against the latest version. | Optional | |
message | Message sent from the application. | String | Mandatory |
sessionId | Unique number that USSD Gateway assigns to the application for the duration of the session. This number will be maintained in all messages throughout a single session. | String | Mandatory |
ussdOperation | USSD operation mo-init: Ideamart to assign when a USSD session is initiated by subscriber mo-cont: Ideamart to assign for any USSD message originated from subscriber, that comes after a init. mt-init: App to assign when a USSD session is initiated by an application mt-cont: App to assign for any USSD message originated from application, that comes after a init mt-fin: App to assign when session ends in final message |
EnumeratorData type will be string where the operation name itself will be used in the parameter value. | Mandatory |
destinationAddress | Destination address should be a Hash Code. tel – for MSISDN tel: 5C74B588F97 Note: tel might be a masked number depending on the type of application |
String | Mandatory |
encoding | Encoding scheme used in the message440 – Plain ASCII characters | Enumerated | Optional |
Comprehensive sample request:
{
"applicationId": "APP_000001",
"password": "password",
"version": "1.0",
"message": "1. Press One
2. Press two
3. Press three
4. Exit",
"sessionId": "1330929317043",
"ussdOperation": "mt-cont",
"destinationAddress": "tel: 5C74B588F97",
"encoding": "440"
}
Response
USSD-Send-Response is a response from the Ideamart to the application, which will be sent as a response to the USSD-Send-Request message.
Following are the response parameters of send service.
Parameter Name | Description | Type | Mandatory / Optional |
---|---|---|---|
version | API version(shall be numbered as 1.0 etc) | String | Mandatory |
requestId | MessageID to uniquely identify the request within the Ideamart | String | Mandatory |
timeStamp | Processed timestamp | Mandatory | |
statusCode | The status code for the entire request | String | Mandatory |
statusDetail | The status detail for the entire request | String | Mandatory |
Comprehensive sample response:
{
"statusCode": "S1000",
"timeStamp": "1203051205",
"statusDetail": "Success",
"requestId": "1330929317059",
"version": "1.0"
}
Receive Service
USSD service allows Ideamart to deliver MO messages to the application using HTTP – based API.
The flow of messages is initiated by a MO request sent to an application, the Ideamart will deliver the message to the application as an acknowledgement.
Hence it could be either request-response exchange or a request-exception exchange.
Receive USSD request is a MO message which will be sent to the application through the Ideamart as a delivery request.
Request
Following is a sample request for receive service.
{
"message": "*141#",
"ussdOperation": "mt-cont",
"requestId": "1330933229901",
"sessionId": "1330929317043",
"encoding": "440",
"sourceAddress": "tel: 5C74B588F97",
"applicationId": "APP_000001",
"version": "1.0"
}
Following are the request parameters of deliver service.
Parameter Name | Description | Type | Mandatory/Optional |
---|---|---|---|
version | API version (shall be numbered as 1.0 etc) | String | Mandatory |
applicationId | Application ID as given when provisioned | String | Mandatory |
sessionId | Unique number that USSD Gateway assigns to the application for the duration of the session. | String | Mandatory |
ussdOperation | USSD operation mo-init: IdeaMart to assign when a USSD session is initiated by subscriber mo-cont: IdeaMart to assign for any USSD message originated from subscriber, that comes after a init mt-init: App to assign when a USSD session is initiated by an application mt-cont: App to assign for any USSD message originated from application, that comes after a init mt-fin: App to assign when session ends in final message |
EnumeratorData type will be string where the operation name itself will be used in the parameter value. | Mandatory |
sourceAddress | sender addresssourceAddress: tel: 5C74B588F97 | String | Mandatory |
vlrAddress | VLR address of the sender | String | Optional |
message | Message as sent from the user | String | Mandatory |
encoding | Encoding scheme used in the message440 – Plain ASCII characters | Enumerated | Mandatory |
requestId | Request ID to uniquely identify the request within the Ideamart | String | Mandatory |
Comprehensive sample request:
{
"message": "*141#",
"ussdOperation": "mo-init",
"requestId": "1330933229901",
"vlrAddress": "some vlr address",
"sessionId": "1330929317043",
"encoding": "440",
"sourceAddress": "tel: 5C74B588F97",
"applicationId": "APP_000001",
"version": "1.0"
}
Response
Deliver-USSD-Response should be the response given by the Application to the Ideamart as an acknowledgement on the receipt of a MO message submitted by Ideamart.
Following are the response parameters of deliver service.
Parameter Name | Description | Type | Mandatory/Optional |
---|---|---|---|
statusCode | The status code for the entire request | String | Mandatory |
statusDetail | The status detail for the entire request | String | Mandatory |
Comprehensive sample response:
{
"statusCode": "S1000",
"statusDetail": "Success"
}