Retrying Failed Messages

Retrying Failed Messages

Premium SMS Only

This page is only relevant to premium SMS.

Fees may be applicable

Be aware that some mobile networks charge a fee per retry when your failure rates cross a predefined threshold. If in doubt, please contact our support team.

Although this feature is not available on all networks it can be very useful to implement retry logic to ensure consumers always receive the content they've requested. For example, if a consumer could not pay immediately due to a lack of credit you may want to retry again after a couple of days.

The following table of delivery reports detail which statuses can be retried.

Report Retries Possible? Why?


If a message has already been delivered to the consumer then there is no need to send it again.


If the consumer did not have sufficient credit to receive the message then you could, for example, retry the message after a couple of days. This gives some time for the consumer to add more credit to their account.


If a message is marked as FAILED then it could not be sent to the consumer for a non-specific reason. These messages can be safely be retried.


When we send a message to the mobile network, each message has a time limit for delivery. By default, this is about 2 days. If the time limit expires then the message is dropped by the network and a VALIDITY_EXPIRED delivery report is assigned to your message. If this happens then it can be retried safely.


This report should not be retried. Typically, it can occur when the consumer has barred premium SMS services on their mobile account or the consumer is identified as a minor attempting to make a purchase of adult content.


If the mobile number did not exist or was not formatted correctly then there is little point in sending the message again as the result of another send is unlikely to be different.


These messages should not be retried as the delivery of the message could still be pending on the network side. Retrying these messages could result in double charging a consumer so you should wait until a final status, like DELIVERED or FAILED is issued for the message.


Sometimes the delivery report from a mobile network is not recognised by our platform, like when new statuses are added or when existing status codes are changed. These delivery reports can be retried as the key statuses ( DELIVERED, REJECTED, etc) do not change.


If the network operator experiences problems then you can retry the message safely.

Sending a Retry Message

Your retried premium SMS messages are always posted to us using the reply parameter set to 0. The rest of the parameters, like network and price, should match the original attempt you made at sending the message. For reporting purposes within your own system, you may choose to append the id parameter with a character implying that this message is a retry. Alternatively, you could stick with the original id for the message if you wish.


A consumer has requested one of your products or services and now you need to send them a premium SMS to charge them. As an example, you could send the following:


After submitting this request, you receive an ACKNOWLEDGED delivery report but then, a few moments later, you receive a NO_CREDIT report. The consumer didn't have sufficient credit to complete the transaction. You inform the consumer of their credit issue and give them a couple of days to top up their account.

Two days later you want to retry the premium SMS. You could then send the following:


As you can see, there are only two small differences between these two requests: reply and id. Only the reply change is mandatory.

Retry Fees

Please refer to our Retry fee FAQ for more information and examples of how retry fees are calculated.

Drop Down Billing

Drop down billing refers to the technique of slowly reducing the amount of money you are charging for a product after delivery of a premium SMS fails due to NO_CREDIT report. This can be useful in some business models.

You can achieve this by reducing the price parameter of your request to the next available lower price point. For example:

  • Initial attempt: price set to 10.00. Message reported as NO_CREDIT.
  • Second attempt: price set to 5.00. Message still reported as NO_CREDIT.
  • Third attempt: price set to 4.50. Message now reported as DELIVERED.

Next:  Stop Requests