Error response format
Every error response contains anerrors array with one or more error objects:
| Field | Type | Required | Description |
|---|---|---|---|
code | string | Yes | Machine-readable error code (e.g., INSUFFICIENT_BALANCE) |
detail | string | Yes | Human-readable error message |
status | integer | Yes | HTTP status code |
meta | object | No | Additional context for recovery |
When meta is included
- Amounts/limits involved —
wallet_id,requested_amount,available_amount,currency - Field validation errors —
field,constraint - Retry logic —
retry_after,window - Request tracing —
supportId
When meta is omitted
- Generic 500 errors (no additional context available)
- Security errors (to avoid leaking internal details)
- Simple not-found errors (detail message is sufficient)