Errors
Response envelope and error codes.
Every response uses the same envelope: code (0 = success), msg, and data. Errors keep meaningful HTTP status codes.
error example
{
"code": 40000,
"msg": "no receiving address configured for chain \"base\"; set it in the Boss console first"
}| code | HTTP | Meaning |
|---|---|---|
| 0 | 200 | Success |
| 40000 | 400 | Validation failed — unsupported chain/asset, invalid address, amount out of range, missing receiving address… |
| 40100 | 401 | Missing or invalid credentials (JWT, API key or Privy token) |
| 40300 | 403 | Authenticated but not allowed |
| 40400 | 404 | Order or resource not found (or owned by another account) |
| 42900 | 429 | Rate limited — slow down |
| 50000 | 500 | Internal error — safe to retry with the same external_id |
- Quote failures surface as 400 with the upstream reason in msg (e.g. amount below the route minimum).
- Order creation is idempotent per external_id — retries never double-charge.