Errors
The Fraugster API uses conventional HTTP response codes to indicate the success
or failure of a request. Codes in the 2xx
range indicate success. Codes in the
4xx
range indicate a content error – the request failed given the information
provided (e.g., you used an invalid session token or your session token has
expired). Codes in the 5xx
range indicate an error on Fraugster's end.
HTTP status codes
Status code | Meaning |
---|---|
200 – OK | Everything worked as expected. |
400 – Bad request | The request is unacceptable, often due to a missing required parameter. |
401 – Unauthorized | No valid session token provided. |
429 – Too many requests | Your server sent too many requests (see Rate limits for more information). |
500 – Server error | Something went wrong on Fraugster's end. |
Rate limits
If you send normal rates of traffic to Fraugster, you should not get any error
messages suggesting too many requests. That said, Fraugster employs safeguards
against bursts of incoming traffic to help maximize the system stability. If you
suddenly start sending anomalously big amounts of traffic, Fraugster's rate
limiter kicks in. You may see error responses (429
), limiting incoming traffic
that appears to be abusive. The main rate limiter in our system limits the
number of new transaction requests received by the API per second, and over a
sliding window of 60 seconds.
Handling errors
Content errors return an HTTP response with a 4xx
error code. For example, the
API servers might return a 400 if a required datapoint was missing when a
transaction was sent. Integrations should correct the original request, and try
again.
A basic technique to handle rate limits is to watch for 429
status codes and
build a retry mechanism. We suggest that the retry mechanism follows an
exponential backoff schedule to reduce request volume when necessary. That is,
wait at least 10 seconds before retrying. If after the first retry the traffic
doesn't go through, wait for 20 seconds before retrying again.
Server errors (5xx
error code) are the result of a problem with Fraugster’s
servers. We work to make these errors as rare as possible. We have alerting on
our side that notifies us if something is not working. That said, integrations
should be able to handle these errors when they occur. You can also log the
response status code as well as the body and let us know.