When the Gateway is not contactable due to a communication error, or problem with the internet connection, you may receive an HTTP status code in the 500 to 599 range. In this situation you may want to retry the transaction. If you do choose to retry a transaction, then we recommend you perform a limited number of attempts with an increasing delay between each attempt.
If the Gateway is unavailable during a scheduled maintenance period, you will receive a HTTP status code of 503 ‘Service Temporarily Unavailable’. In this situation you should retry the transaction after the scheduled maintenance period has expired. You will be notified of the times and duration of any such scheduled maintenance periods in advance, by email, and given a time when transactions can be reattempted.
The Gateway recommends considering the following steps if you are experiencing these errors:
- Ensure the request is being sent to HTTPS and not HTTP. HTTP is not supported and is not redirected.
- Send transactions sequentially rather than in concurrently.
- Configure your integration code with try/catch loops around individual transactions to determine if they were successful or not and retry if required based on the return code or HTTP status returned.
- Configure the integration so that if one transaction does fail, the entire batch does not stop at that point– i.e., log the failure to be checked and then skip to the next transaction rather than stopping entirely.
The following table describes the error codes:
|500||Internal Server Error – An unexpected error has occurred from the Gateway that has prevented the transaction from being received.|
|501||Not implemented – The Gateway does not support the functionality needed to process the request.|
|502||Bad Gateway – A server acting as a Gateway or proxy did not receive a valid response from an upstream server.|
|503||Service Unavailable – The Gateway is temporarily unavailable.|
|504||Gateway Timeout – A server acting as a Gateway or proxy did not receive a valid response from an upstream server during the time it was prepared to wait.|