error.status (and error.details[].reason) values returned by the BlooBank Transactions Engine API. Branch on these in your client code; they are stable and additive.
For the envelope structure, see Errors overview. For the full normative contract, see the Errors reference.
Authentication (HTTP 400/401)
These fire before any business logic runs — fix the request signing.Authorization (HTTP 403)
The credential is valid but lacks permission for this action on this resource.Validation (HTTP 400)
The request payload, query, or path violates input constraints.Resource state (HTTP 404 / 409 / 422)
The request is well-formed but conflicts with the state of the target resource.Rate limiting (HTTP 429)
Server errors (HTTP 500 / 503)
Authentication detail reasons
Somedetails[].reason codes are only meaningful inside the details[] array (not as a top-level error.status).
How this catalog evolves
- Reasons are additive: new ones may appear; existing ones do not change meaning.
- Domain reasons follow the
{AGGREGATE}_{CONDITION}convention (e.g.,WALLET_NOT_FOUND,PAYMENT_ORDER_INVALID_STATE). - Cross-cutting reasons follow
{CONDITION}(e.g.,INVALID_FIELD,INTERNAL,RESOURCE_EXHAUSTED). - Treat any reason not in this catalog as opaque — fall back to handling by
error.statusalone.
Next
Handling errors
Branching patterns in code.
Retry strategy
When to retry and how.