Error Handling
Error Response Format
All errors follow a consistent structure:requestId for debugging — include it when contacting support.
Error Types
| Type | HTTP Status | Description |
|---|---|---|
invalid_request | 400 / 422 | Validation error or missing fields |
authentication_error | 401 | Invalid or missing API key |
authorization_error | 403 | Valid key but insufficient permissions |
not_found | 404 | Resource doesn’t exist |
conflict | 409 | Resource already exists or state conflict |
rate_limit | 429 | Too many requests |
internal_error | 500 | Server-side error |
Validation Errors
Request body validation returns all errors at once (not just the first):Common Error Codes
| Code | Description |
|---|---|
missing_fields | Required fields not provided |
invalid_chain | Chain not supported |
no_funded_token | No token balance found on deposit address |
session_expired | Session has expired |
session_not_open | Session is not in open status |
insufficient_balance | Vault balance too low |
account_not_found | Account does not exist |
deposit_address_not_found | No deposit address for this account/chain |
Idempotency
POST endpoints that create resources support the Idempotency-Key header: