Errors
RFC 9457 problem details and how to handle them.
Errors are RFC 9457 application/problem+json:
{
"type": "https://api.banking.wirebloom.com/problems/validation-error",
"title": "Validation failed",
"status": 422,
"code": "validation_error",
"detail": "1 field is invalid.",
"requestId": "req_01J8Z6Q7R2",
"errors": [
{
"field": "/amount/amountMinor",
"code": "too_small",
"message": "Amount must be greater than zero."
}
]
}- Branch on
code(stable, snake_case; the last segment oftype). Every code is listed in the error catalogue with its status and whether a retry can succeed. errors[].fieldis a JSON Pointer into the body (orquery.<name>/header.<name>).- Quote
requestId(also theX-Request-Idresponse header) to support.
Common codes for integrators: invalid_api_key (401), insufficient_scope, ip_not_allowed, tenant_forbidden (403), not_found (404), insufficient_funds, idempotency_key_in_use (409), precondition_failed (412, stale If-Match), validation_error, idempotency_key_reused, limit_exceeded (422), rate_limited (429), provider_error / provider_timeout (502/504).
Retrying
Retry only what can succeed later: 409 idempotency-key-in-use, 429 rate-limited (after Retry-After) and 5xx with the same Idempotency-Key. Other 4xx need a change on your side first.