2xx has an error object:
Types
Codes worth handling
What to retry
Retry429 and 5xx. Do not retry 4xx of any other kind, because the request will fail the same
way every time.
Idempotency-Key. A retried request carrying the same key will not
apply the change twice, which matters most for POST /v1/expense-transfers, where a duplicate would
move money twice.
A note on 5xx messages
api_error always returns a generic message. Internal failures can carry database or provider
detail, and none of that crosses the public boundary. The request_id is how we look up what
actually happened.