Error Response Structure
All error responses contain a single top-levelerror object with the following fields:
string
required
A stable, machine-readable string identifying the error type. Use this field in your error-handling logic — do not parse the
message string, as its wording may change.string
required
A human-readable explanation of what went wrong. Useful for logging and debugging, but not intended for display to end users.
string
A direct link to the relevant documentation page for this error type. Not present on all error responses.
string
required
A unique identifier for the specific request that failed. Always include this value when contacting FraudEG support — it allows the support team to locate the exact request in internal logs.
Save the
request_id from any error response before filing a support ticket at support.fraudeg.com. Without it, diagnosing intermittent or environment-specific issues takes significantly longer.HTTP Status Codes
FraudEG uses standard HTTP status codes. The table below describes every code you may encounter.Error Code Reference
The following error codes appear in theerror.code field of error responses. Expand each entry for a description and resolution steps.
invalid_api_key
invalid_api_key
What it means: Your API key is missing from the request, is malformed, or has been revoked.How to resolve:
- Confirm you are passing the key in the
Authorization: Bearer <API_KEY>header. - Verify the key is copied in full with no leading or trailing whitespace.
- Check the FraudEG dashboard under Settings → API Keys to confirm the key is active and has not been revoked.
- Generate a new key if the original has been revoked or lost.
insufficient_permissions
insufficient_permissions
What it means: Your API key does not have the required scope to call this endpoint.How to resolve:
- Review the scopes assigned to your key in Settings → API Keys.
- Create a new key with the appropriate scopes, or ask your account administrator to update the existing key’s permissions.
- Refer to the individual endpoint documentation to see which scope it requires.
missing_required_field
missing_required_field
What it means: A required field is absent from the request body. The error object will include a
param field identifying which field is missing.How to resolve:- Read the
paramvalue to identify the missing field. - Consult the endpoint’s request body documentation to confirm all required fields are present and correctly named (field names are case-sensitive).
- Ensure your
Content-Type: application/jsonheader is set, as omitting it prevents FraudEG from parsing the request body.
invalid_field_value
invalid_field_value
What it means: A field in the request body has a value that is out of the allowed range, is the wrong data type, or does not match an expected enum value.How to resolve:
- Check the
paramfield in the error response to identify which field is invalid. - Review the allowed values, types, and ranges documented for that field on the relevant endpoint page.
- Common examples: passing a string where an integer is expected, sending a negative
amount, or using an unsupportedcurrencycode.
resource_not_found
resource_not_found
What it means: No resource exists for the ID provided in the request path or body.How to resolve:
- Confirm the resource ID is correct and belongs to your account.
- Check that you are targeting the correct environment — IDs from the sandbox do not exist in production, and vice versa.
- Verify the resource has not been deleted.
rate_limit_exceeded
rate_limit_exceeded
What it means: Your integration has sent too many requests to this endpoint within the current rate limit window.How to resolve:
- Read the
Retry-Afterresponse header to determine how many seconds to wait before retrying. - Implement exponential backoff in your retry logic.
- See the Rate Limits page for per-endpoint limits and best practices for staying within them.
idempotency_conflict
idempotency_conflict
What it means: You submitted a request with an
Idempotency-Key that was previously used, but the request body in the current request does not match the original request body.How to resolve:- Do not reuse idempotency keys across logically different operations. Each unique operation should have its own key, typically a UUID v4.
- If you are retrying a failed request, make sure the request body is byte-for-byte identical to the original.
- Idempotency keys expire after 24 hours; after that, the same key can be reused safely.