Asynchronous API

Asynchronous API is an opt-in feature, if you wish to communicate asynchronously please contact us at

For sending replies asynchronously, the service providers server has to reply with status 200 and empty body to incoming MO-message request from Fortumo.

And for sending the reply the service provider has to make a HTTP GET request to our Asynchronous API endpoint with specified parameters.

Endpoint URL:

Example request: message_id=c2075e27f2320f12e2534fkd92e2b7fa&sig=a62090f262834d894b3c567e044e273c

Description of the flow

  1. End-user starts the payment flow on merchant site.
  2. Merchant contacts our smspush endpoint to send the first MT to the end-user. For example, the MT content could display instructions for the consumer on how to confirm the payment. End-user will not be charged yet.
  3. Service provider(Merchant) responds to the endpoint by sending an MO with keyword matching the one in service configuration.
  4. We forward the MO to the merchant service URL.
  5. Merchant server which has been configured to respond asynchronously, acknowledges our MO request. As a result, our server understands that the merchant will be sending the MT asynchronously later.
  6. Merchant performs an MT request to our smspush endpoint and we will process the request
  7. Consumer receives the second MT. For now, the consumer has been charged. The charge either took place during the MO in case of MO billing or during the delivery of the second MT in case of MT billing. Billing notification may apply depending on billing type.

Response parameters

Parameter Type Required Description
receiver String Mandatory End user phone number. Example: 4560123456
message String Mandatory Content of the message. Example: To complete the payment please reply with 235345
service_id String Mandatory Your Fortumo service id. Example: f7fa12b381d290e268f99e382578d64a
message_id String Mandatory Message_id that was used in incoming MO request. Example: f152f32c301c918fa125e03aabb18850
sig String Mandatory Read about calculating the signature here. Example: 2d7b58632d855bf031af5066761f25cd
test Boolean Optional If "test=1" is also applied, Fortumo will not send out the message or mark the MO message as replied. Example: 1

If everything goes well Fortumo server responds with simple OK, otherwise it will try to render the cause of failure.

Possible response codes

Code Error
200 OK
400 Missing request parameter: [parameter]
400 Invalid receiver
403 Invalid signature
403 Forbidden IP
404 Service not found
404 Message not found
500 Internal server error - reply_message not found for message [message_id]
500 Internal server error
500 Delivery failed
500 Reply has already been generated
Help us improve our Merchants Portal. Was this article helpful?