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 |
|
✔ |
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 |
|
✖ |
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 |
|
✔ |
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 ( |
|
✔ |
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.
Example
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:
reply=1&id=123456&number=447445566731&network=ORANGE16UK&value=1.00¤cy=gbp&cc=marc&ekey=97e1e59c0375e0f55c10d4314db20466&message=Thank+you
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:
reply=0&id=R-123456&number=447445566731&network=ORANGE16UK&value=1.00¤cy=gbp&cc=marc&ekey=97e1e59c0375e0f55c10d4314db20466&message=Thank+you
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 to10.00
. Message reported asNO_CREDIT
. - Second attempt:
price
set to5.00
. Message still reported asNO_CREDIT
. - Third attempt:
price
set to4.50
. Message now reported asDELIVERED
.
Next: Stop Requests