Error Handling

In addition to including logic to handle the different actions returned from Ravelin during scoring, it is also crucial that your system can handle any non-2xx HTTP response codes from Ravelin. Failure to do so could result in customers being unable to complete their orders on your platform, translating any Ravelin downtime into downtime for your system as well.

In the scenario Ravelin returns a non-2xx HTTP status code, we recommend allowing the payment to complete. Ravelin attempts to retry all 429 and 5xx requests to ensure the data provided in the unsuccessful request is considered for all future scores – however this is done on a best-effort basis and cannot be guaranteed. In case of a 429, we recommend that the requests are retried once the rate of 429 responses returned by Ravelin has returned to normal. If you have configured HTTP callbacks, notifications of fraud status changes will be sent for these retried events. Logging and metrics are necessary as well to provide observability into how your Ravelin integration is behaving, alerting you to any issues originating from either your integration or from our platform as quickly as possible.

Depending on your risk appetite, you could also consider issuing a challenge such as a 3DS check for scenarios in which Ravelin is unable to respond with a score. Be wary when considering this option, as these verification set-ups can correspond to increases of customer drop-outs and basket abandonments, so issuing these checks for all customers across your platform can hold a greater cost than that of potentially letting a small portion of fraud through.

In addition to considering non-2xx responses from Ravelin, it is also vital to configure sensible timeouts for scenarios in which Ravelin may be slower to respond than usual. We suggest configuring 750ms timeouts, as persistent responses at those latencies suggest degraded performance of our services. Lowering this threshold will result in more unscored individuals placing orders through your system, while increasing it can cause shoppers to notice increased latencies on your platform or cause an oversaturation of connections in your system.

In addition, we strongly recommend subscribing to our statuspage to receive realtime notifications of any disruptions to our service.