4xx and 500 response (except 429) is the same JSON object:
Errors every endpoint can return
These are raised at the boundary — authentication, request parsing, resource lookup — before or around the operation itself, so every endpoint can return them. Each reference page lists them alongside the endpoint’s own codes, grouped by status; this table is where they are explained once.Errors specific to an endpoint
Anything an operation itself can refuse — insufficient funds, a state that blocks a cancellation, a money-movement action that needs an IP allowlist — is listed first under that status on the endpoint’s reference page, with the code and the message you will see. For example, Create an ACH transfer listsinsufficient_funds next to conflict under 409, and
ip_allowlist_required next to forbidden under 403. An endpoint never returns a code it does not list.
Retry behavior
Retry
Retry idempotent reads after
429 or 500 responses with exponential
backoff and random jitter.Fix before retrying
Change the request or credentials before retrying
400, 401, 403, or
404 responses.500, do not
retry automatically. Its idempotency key may already be permanently consumed.
Follow the idempotency guidance and
reconcile through the resource’s list and retrieve endpoints before deciding
whether to make a new create attempt.