Skip to content

Errors

All errors return a consistent JSON structure.

Error response format

{
  "error": {
    "code": "error_code",
    "message": "Human-readable description",
    "field": "field_name"
  },
  "request_id": "req_xxxxx"
}

Note

The field property is only present for validation errors.

HTTP status codes

Status Description
200 Success
201 Created
400 Bad Request — invalid parameters
401 Unauthorized — invalid or missing authentication
404 Not Found — resource does not exist
409 Conflict — resource state conflict
410 Gone — quote expired
429 Too Many Requests — rate limit exceeded
500 Internal Server Error

Error codes

Code HTTP status Description
invalid_request 400 Request body is malformed or missing required fields.
invalid_signature 401 Signature verification failed.
unauthorized 401 Invalid or missing API key.
timestamp_expired 401 Request timestamp outside the 5-minute window.
not_found 404 Transaction ID not found.
unsupported_pair 400 Currency pair not supported.
unsupported_chain 400 Blockchain network not supported.
invalid_wallet_address 400 Wallet address invalid for specified chain.
amount_below_minimum 400 Amount below minimum threshold.
amount_above_maximum 400 Amount above maximum threshold.
quote_expired 410 Quote has expired.
already_confirmed 409 Settlement already confirmed.
already_cancelled 409 Settlement already cancelled.
cannot_cancel 409 Settlement not in a cancellable state.
rate_limit_exceeded 429 Too many requests.
internal_error 500 Unexpected server error.