Error codes
Every value of error an endpoint can send, read from the API source. Branch on error, never on message. What each status means and when to retry: Errors.
Some errors can come from any endpoint and are not repeated below: 500 internal; a 503 when a dependency of ours is unavailable; and, for a body that is not valid JSON at all, invalid_json, unsupported_media_type, payload_too_large or bad_request.
error |
Status |
Returned by |
ambiguous_home_wallet |
422 |
POST /transactions, POST /batches, POST /treasury/onramp, POST /treasury/withdrawals |
beneficiary_incomplete |
400 |
POST /transactions |
compliance_hold |
403 |
POST /transactions |
conflict |
409 |
POST /members/invitations, POST /wallets/:walletId/topup-eurc |
duplicate_item_ref |
400 |
POST /batches |
forbidden |
403 |
23 endpoints |
idempotency_key_conflict |
409 |
POST /batches, POST /treasury/onramp, POST /treasury/onramp/pix, POST /treasury/withdrawals, POST /treasury/offramp |
idempotency_key_reused |
409 |
POST /treasury/onramp, POST /treasury/onramp/pix, POST /treasury/withdrawals |
insufficient_funds |
422 |
POST /transactions |
invalid_cursor |
400 |
GET /transactions, GET /batches, GET /batches/:batchId, GET /treasury/onramps, GET /treasury/withdrawals, GET /treasury/offramps |
invalid_invite |
400 |
POST /invitations/accept |
invalid_period |
400 |
GET /statements |
invalid_query |
400 |
GET /statements |
invalid_send_amount |
400 |
POST /batches |
kyb_required |
403 |
POST /transactions, POST /batches, GET /treasury/deposit-instructions, POST /treasury/onramp, POST /treasury/onramp/pix, POST /treasury/withdrawals, POST /treasury/beneficiaries, POST /treasury/offramp, POST /treasury/onramps/simulate-wire, POST /wallets/:walletId/topup-eurc |
member_required |
409 |
POST /members/me/api-key, GET /notifications/preferences, PUT /notifications/preferences, POST /notifications/verify/send |
no_home_wallet |
422 |
POST /transactions, POST /batches, POST /treasury/onramp, GET /treasury/crypto-deposit, POST /treasury/withdrawals |
no_member_email |
409 |
POST /notifications/verify/send |
no_route_for_chain |
422 |
POST /quotes |
not_found |
404 |
16 endpoints |
not_home_chain |
422 |
POST /treasury/offramp |
not_home_wallet |
422 |
POST /quotes, POST /transactions, POST /batches |
not_implemented |
501 |
46 endpoints |
not_simulatable |
409 |
POST /treasury/onramp/:onRampId/simulate-payment |
pix_onramp_unavailable |
422 |
POST /treasury/onramp/pix |
quote_already_used |
422 |
POST /treasury/offramp |
quote_expired |
422 |
POST /transactions |
quote_mismatch |
422 |
POST /transactions, POST /treasury/offramp |
quote_not_found |
422 |
POST /transactions, POST /treasury/offramp |
quote_unavailable |
422 |
POST /quotes, GET /treasury/withdrawals/quote, POST /treasury/withdrawals |
rate_limited |
429 |
57 endpoints |
unauthorized |
401 |
57 endpoints |
unknown_currency |
400 |
POST /treasury/onramps/simulate-wire |
unknown_recipient |
400 |
POST /batches |
unsupported_network |
422 |
GET /treasury/withdrawals/quote, POST /treasury/withdrawals |
validation |
400 |
28 endpoints |
wallet_chain_unknown |
422 |
POST /transactions, POST /batches |