Error Reference
All errors follow a consistent JSON format.
Error format
{
"ok": false,
"error": {
"code": "rate_limited",
"message": "Too many requests"
},
"request_id": "01JXYZ..."
}Error codes
| Code | HTTP | Description |
|---|---|---|
| unauthorized | 401 | Authentication required but not provided |
| missing_api_key | 401 | Authorization header missing or malformed |
| api_key_not_found | 401 | API key does not exist |
| api_key_revoked | 401 | API key has been permanently revoked |
| api_key_disabled | 403 | API key is temporarily disabled |
| quota_exceeded | 403 | Pre-approval call limit (100) reached |
| ip_blocked | 403 | Client IP not in whitelist |
| invalid_signature | 401 | HMAC signature invalid or expired |
| rate_limited | 429 | Too many requests. See Retry-After header |
| validation_failed | 400 | Request body failed schema validation |
| not_found | 404 | Resource not found |
| conflict | 409 | State conflict (e.g., already approved) |
| merchant_suspended | 403 | Merchant account is suspended |
| chain_disabled | 400 | The requested chain is not enabled for your account |
| token_disabled | 400 | The requested token is not enabled for your account |
| insufficient_balance | 400 | Withdrawal amount exceeds available balance |
| address_not_whitelisted | 400 | Withdrawal destination not in approved address list |
| internal_error | 500 | Unexpected server error. Contact support if persistent |