On transmission of a forward request, we set a 10 second timeout. If the remote server does not respond, or returns anything other than HTTP status 200 (OK) we will enter a retry cycle.
On receipt of a submission it's worth testing that it hasn’t already been received and handled, as you may have received it before and dealt with it but failed to respond in a timely fashion or there have been other issues preventing us from receiving the OK response and thus assuming failure.
To enable this with each request we supply a unique identifier (for example an integer message ID) which will be constant over the retry cycle, we recommend you keep a record of these for 24 hours and test against this list on receipt of a request to ensure no repetition of submissions.
The retry strategy is simply adding the square of the retry number in minutes to the last attempted submission time. We attempt nine retries before abandoning the message, spread over 4 hours 45 minutes, after that time we will abandon attempts to submit the request.
|Attempt||Minutes after previous attempt|
|Total (from first submission)||285|