Errors
Generated from packages/contracts-api/errors.ts's ERROR_CODES by scripts/openapi/normalize.mjs, as part of pnpm run api:contract — never hand-edited. Every error envelope's doc_url (see Conventions § Errors) points at this page, one anchor per code a /v1 caller can actually receive: https://docs.swaps.app/errors#code. A code, once shipped, is additive-only — never renamed or removed. The status shown per code is its type's canonical status, not always the literal status a legacy pre-/v1 handler answers for that same code today. A code registered only to satisfy an internal invariant but never returned to a caller is listed under its type's "Internal label, never returned" section instead.
type | HTTP | Agent recovery |
|---|---|---|
invalid_request | 400 / 405 / 413 / 422 | Fix the argument and retry. |
authentication_error | 401 | Re-authorize; do not retry as-is. |
permission_error | 403 | Wrong actor or scope — call as the right one. |
not_found | 404 | The id is not visible to this caller — also the cross-account answer. |
conflict | 409 | State moved — re-read, then decide. |
idempotency_error | 409 | Same key, different body. |
rate_limit_error | 429 | Back off; Retry-After is set. |
capability_unavailable | 409 | Do not retry — this corridor or product cannot serve it. |
temporarily_unavailable | 503 | A kill switch is thrown, or a dependency is out; retry after Retry-After. A kill switch says which one in error.details.reason: api_disabled (the whole API), resource_disabled (this resource) or feature_disabled (a feature inside it); an outage carries none of them. |
quota_exhausted | 402 | An allowance is spent — backing off does not restore it; upgrade or buy credits. |
provider_error | 502 / 503 | Upstream failed; retry only where stated. |
api_error | 500 | Ours — open a support ticket with the request id. |
Terms acceptance
No operation asks for a terms acceptance. People accept the Terms of Service when they sign up for Swaps, and Swaps does not ask them again (since 2026-10-20). 409 terms_acceptance_required and 503 legal_acceptance_unavailable are no longer returned; they stay listed below because a published code is never removed, so a client that still handles them keeps working.
Type invalid_request
account_holder_unavailable
400 / 405 / 413 / 422 — invalid_request's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1, wallet
address_invalid
400 / 405 / 413 / 422 — invalid_request's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1, wallet
address_required
400 / 405 / 413 / 422 — invalid_request's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1, wallet
allowed_rails_invalid_for_settlement
400 / 405 / 413 / 422 — invalid_request's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1, payment_links
amount_invalid
400 / 405 / 413 / 422 — invalid_request's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1, payment_links
attachment_filename_invalid
400 / 405 / 413 / 422 — invalid_request's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1
attachment_rejected
400 / 405 / 413 / 422 — invalid_request's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1
attachment_too_large
400 / 405 / 413 / 422 — invalid_request's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1
attachment_type_not_allowed
400 / 405 / 413 / 422 — invalid_request's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1
beneficiary_invalid
400 / 405 / 413 / 422 — invalid_request's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1, payouts, payroll
bridge_execute_rejected
400 / 405 / 413 / 422 — invalid_request's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1
confirmation_required
400 / 405 / 413 / 422 — invalid_request's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1, payroll
crypto_only_currency_not_usd
400 / 405 / 413 / 422 — invalid_request's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1, payment_links
deposit_amount_below_minimum
400 / 405 / 413 / 422 — invalid_request's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1, wallet
destination_invalid
400 / 405 / 413 / 422 — invalid_request's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1, payroll
destination_not_accepted
400 / 405 / 413 / 422 — invalid_request's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1, payment_links, payouts, payroll, wallet
destination_rail_indeterminate
400 / 405 / 413 / 422 — invalid_request's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1, payroll
destination_rail_keyless
400 / 405 / 413 / 422 — invalid_request's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1, payment_links, payouts, payroll, wallet
destination_swaps_deposit_address
400 / 405 / 413 / 422 — invalid_request's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1, wallet
destination_wallet_disabled
400 / 405 / 413 / 422 — invalid_request's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1, payment_links, payouts, payroll, wallet
destination_wallet_key_reported_lost
400 / 405 / 413 / 422 — invalid_request's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1, payment_links, payouts, payroll, wallet
destination_wallet_signer_at_risk
400 / 405 / 413 / 422 — invalid_request's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1, payment_links, payouts, payroll, wallet
destination_wallet_signer_unconfirmed
400 / 405 / 413 / 422 — invalid_request's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1, payment_links, payouts, payroll, wallet
fiat_rail_mismatch
400 / 405 / 413 / 422 — invalid_request's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1, payouts
funding_method_invalid
400 / 405 / 413 / 422 — invalid_request's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1, payroll
iban_invalid
400 / 405 / 413 / 422 — invalid_request's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1, payouts
idempotency_key_invalid
400 / 405 / 413 / 422 — invalid_request's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1
idempotency_key_required
400 / 405 / 413 / 422 — invalid_request's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1
individual_amount_above_limit
400 / 405 / 413 / 422 — invalid_request's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1, payment_links
individual_amount_unverifiable
400 / 405 / 413 / 422 — invalid_request's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1, payment_links
individual_rail_unavailable
400 / 405 / 413 / 422 — invalid_request's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1, payment_links
invalid_last_event_id
400 / 405 / 413 / 422 — invalid_request's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1
invalid_request
400 / 405 / 413 / 422 — invalid_request's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1
item_currency_mismatch
400 / 405 / 413 / 422 — invalid_request's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1, payment_links
item_invalid
400 / 405 / 413 / 422 — invalid_request's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1, payroll
items_required
400 / 405 / 413 / 422 — invalid_request's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1, payroll
items_too_many
400 / 405 / 413 / 422 — invalid_request's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1, payroll
link_expired
400 / 405 / 413 / 422 — invalid_request's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1, payment_links
link_not_payable
400 / 405 / 413 / 422 — invalid_request's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1, payment_links
livemode_boundary
400 / 405 / 413 / 422 — invalid_request's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1
method_not_allowed
400 / 405 / 413 / 422 — invalid_request's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: agent_api, api_v1
mixed_currency_not_supported
400 / 405 / 413 / 422 — invalid_request's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1, payroll
mode_mismatch
400 / 405 / 413 / 422 — invalid_request's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1
no_payable_rail
400 / 405 / 413 / 422 — invalid_request's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1, payment_links
owner_name_mismatch
400 / 405 / 413 / 422 — invalid_request's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1, wallet
p2p_amount_above_limit
400 / 405 / 413 / 422 — invalid_request's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1, payment_links
pay_period_invalid
400 / 405 / 413 / 422 — invalid_request's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1, payroll
payer_type_invalid
400 / 405 / 413 / 422 — invalid_request's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1, payment_links, payouts
payer_type_mismatch
400 / 405 / 413 / 422 — invalid_request's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1, payouts
payload_too_large
400 / 405 / 413 / 422 — invalid_request's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1
payout_refund_address_invalid
400 / 405 / 413 / 422 — invalid_request's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1, payouts
payout_refund_address_not_allowed
400 / 405 / 413 / 422 — invalid_request's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1, payouts
payout_refund_address_unsupported
400 / 405 / 413 / 422 — invalid_request's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1, payouts
payout_source_chain_missing
400 / 405 / 413 / 422 — invalid_request's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1, payouts
payroll_item_limit_exceeded
400 / 405 / 413 / 422 — invalid_request's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1, payroll
payroll_run_limit_exceeded
400 / 405 / 413 / 422 — invalid_request's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1, payroll
rail_not_allowed
400 / 405 / 413 / 422 — invalid_request's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1, payment_links
refund_address_invalid
400 / 405 / 413 / 422 — invalid_request's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1, payment_links
refund_address_required
400 / 405 / 413 / 422 — invalid_request's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1, payment_links
settlement_account_holder_missing
400 / 405 / 413 / 422 — invalid_request's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1, payment_links
settlement_conflicts_with_destination
400 / 405 / 413 / 422 — invalid_request's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1, payment_links
settlement_destination_provider_refused
400 / 405 / 413 / 422 — invalid_request's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1, payment_links
settlement_destination_required
400 / 405 / 413 / 422 — invalid_request's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1, payment_links
settlement_details_incomplete
400 / 405 / 413 / 422 — invalid_request's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1, payment_links
settlement_intent_conflict
400 / 405 / 413 / 422 — invalid_request's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1, payment_links
settlement_rail_unsupported
400 / 405 / 413 / 422 — invalid_request's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1, payment_links
source_tx_failed_onchain
400 / 405 / 413 / 422 — invalid_request's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1
source_tx_mismatch
400 / 405 / 413 / 422 — invalid_request's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1
source_tx_wrong_sender
400 / 405 / 413 / 422 — invalid_request's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1
stablecoin_invalid
400 / 405 / 413 / 422 — invalid_request's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1, payment_links
tempo_settlement_currency_not_usd
400 / 405 / 413 / 422 — invalid_request's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1, payment_links
tempo_via_bridge_not_enabled
400 / 405 / 413 / 422 — invalid_request's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1, payment_links
travel_rule_counterparty_required
400 / 405 / 413 / 422 — invalid_request's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1
travel_rule_originator_incomplete
400 / 405 / 413 / 422 — invalid_request's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1
travel_rule_proof_required
400 / 405 / 413 / 422 — invalid_request's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1
unsupported_route
400 / 405 / 413 / 422 — invalid_request's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1, wallet
unsupported_version
400 / 405 / 413 / 422 — invalid_request's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1
wallet_network_not_supported
400 / 405 / 413 / 422 — invalid_request's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1, payment_links
wallet_not_provisioned
400 / 405 / 413 / 422 — invalid_request's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1, payment_links
wallet_signer_at_risk
400 / 405 / 413 / 422 — invalid_request's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1, wallet
webhook_url_not_allowed
400 / 405 / 413 / 422 — invalid_request's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1
webhook_url_not_https
400 / 405 / 413 / 422 — invalid_request's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1
Type authentication_error
authentication_error
401 — authentication_error's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1
invalid_api_key
401 — authentication_error's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: agent_api, api_v1
Type permission_error
account_inactive
403 — permission_error's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1
bridge_customer_missing
403 — permission_error's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1, payroll
bridge_wallet_address_unavailable
403 — permission_error's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1, payroll
bridge_wallet_missing
403 — permission_error's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1, payroll
deposits_restricted
403 — permission_error's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1, wallet
destination_blocked
403 — permission_error's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1
eea_kyc_required
403 — permission_error's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1
endorsement_required
403 — permission_error's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1
ip_not_allowed
403 — permission_error's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: agent_api, api_v1
kyc_not_approved
403 — permission_error's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1, payroll
missing_address_data
403 — permission_error's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1, payroll
no_base_endorsement
403 — permission_error's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1, payroll
no_settlement_endorsement
403 — permission_error's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1, payroll
payer_bridge_customer_missing
403 — permission_error's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1, payouts
payer_customer_missing
403 — permission_error's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1, payroll
payroll_verified_customer_required
403 — permission_error's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1, payroll
permission_error
403 — permission_error's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1, core
requirements_outstanding
403 — permission_error's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1, payroll
role_denied
403 — permission_error's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1
scope_denied
403 — permission_error's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: agent_api, api_v1
tos_not_accepted
403 — permission_error's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1, payroll
Type not_found
not_found
404 — not_found's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1
Internal label, never returned
Registered to satisfy the "every thrown code is in the registry" invariant, but always remapped or folded to a different code before a /v1 response leaves the boundary — never appears on the wire as this code.
external_account_not_found
payout_receipt_not_ready
Type conflict
account_already_exists
409 — conflict's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1
allowed_rails_invalid_for_currency
409 — conflict's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1, payment_links
attachment_check_in_progress
409 — conflict's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1
attachment_expired
409 — conflict's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1
attachment_limit_reached
409 — conflict's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1
attachment_not_uploaded
409 — conflict's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1
attachment_unavailable
409 — conflict's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1
attachments_not_accepted
409 — conflict's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1
cancel_unavailable
409 — conflict's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1
checkout_expired
409 — conflict's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1
conflict
409 — conflict's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1, core
conversion_source_tx_already_recorded
409 — conflict's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1
customer_already_exists
409 — conflict's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1
customer_mapping_stale
409 — conflict's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1
customer_type_conflict
409 — conflict's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1
deposit_in_use
409 — conflict's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1, payouts, wallet
funding_method_locked
409 — conflict's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1, payroll
funding_not_verified
409 — conflict's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1, payroll
funding_pool_asset_unknown
409 — conflict's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1, payroll
funding_pool_insufficient
409 — conflict's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1, payroll
funding_realized_rate_unavailable
409 — conflict's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1, payroll
holder_selection_required
409 — conflict's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1, wallet
legacy_wallet_read_only
409 — conflict's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1, wallet
local_payout_below_minimum
409 — conflict's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1, payroll
no_pending_destination
409 — conflict's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1, payroll
order_already_open
409 — conflict's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1
payment_in_progress
409 — conflict's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1, payment_links
payment_link_pay_in
409 — conflict's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1
payout_funding_instructions_not_ready
409 — conflict's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1
payout_not_fundable
409 — conflict's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1, payouts
payout_preflight_rejected
409 — conflict's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1, payroll
payout_refund_address_locked
409 — conflict's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1, payouts
payout_source_chain_locked
409 — conflict's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1, payouts
payout_transfer_missing
409 — conflict's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1, payouts
payroll_run_funding_instructions_not_ready
409 — conflict's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1
pending_destination_changed
409 — conflict's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1, payroll
pool_asset_locked
409 — conflict's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1, payroll
provider_adapter_disabled
409 — conflict's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1, payroll
rail_not_ready
409 — conflict's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1, payroll
receipt_not_available
409 — conflict's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1, payment_links
recipient_destination_not_ready
409 — conflict's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1, payroll
requote_required
409 — conflict's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1
reusable_bridge_template
409 — conflict's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1
run_has_no_rows
409 — conflict's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1, payroll
run_mixed_pool
409 — conflict's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1, payroll
send_intent_payout_closed
409 — conflict's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1, wallet
source_tx_already_recorded
409 — conflict's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1, wallet
source_tx_not_yet_confirmed
409 — conflict's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1
wallet_already_exists
409 — conflict's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1, wallet
wallet_balance_short
409 — conflict's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1, payouts
wallet_funding_claimed
409 — conflict's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1, payouts, wallet
wallet_funding_in_flight
409 — conflict's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1, payouts
wallet_funding_pending
409 — conflict's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1, payouts
wallet_funding_unavailable
409 — conflict's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1, payouts
wallet_not_found
409 — conflict's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1
webhook_endpoint_disabled
409 — conflict's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1
webhook_endpoint_limit_exceeded
409 — conflict's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1
Type idempotency_error
idempotency_error
409 — idempotency_error's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1
idempotency_failed
409 — idempotency_error's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1
idempotency_in_progress
409 — idempotency_error's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1
Type rate_limit_error
rate_limit_exceeded
429 — rate_limit_error's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: agent_api, api_v1, payment_links
Type capability_unavailable
account_email_unavailable
409 — capability_unavailable's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1
accounts_not_enabled
409 — capability_unavailable's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1, wallet
asset_network_unsupported
409 — capability_unavailable's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1, payroll
bank_payout_fx_unsupported
409 — capability_unavailable's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1, payroll
capability_unavailable
409 — capability_unavailable's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1, core
conversion_no_liquidity
409 — capability_unavailable's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1
conversion_unavailable_single_token_network
409 — capability_unavailable's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1
crypto_funding_pool_unsupported
409 — capability_unavailable's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1, payroll
destination_rail_unsupported
409 — capability_unavailable's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1, wallet
external_account_currency_mismatch
409 — capability_unavailable's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1
external_account_rail_mismatch
409 — capability_unavailable's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1
network_not_supported
409 — capability_unavailable's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1, payment_links
offramp_quote_unpriceable
409 — capability_unavailable's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1
offramp_route_unavailable
409 — capability_unavailable's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1, wallet
provider_not_supported
409 — capability_unavailable's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1
provider_paused
409 — capability_unavailable's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1
terms_acceptance_required
409 — capability_unavailable's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · Retired 2026-10-20 — no longer returned; see Terms acceptance.
virtual_account_holder_not_verified
409 — capability_unavailable's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1, wallet
virtual_account_provider_refused
409 — capability_unavailable's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1, wallet
virtual_account_requirements_outstanding
409 — capability_unavailable's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1, wallet
Internal label, never returned
Registered to satisfy the "every thrown code is in the registry" invariant, but always remapped or folded to a different code before a /v1 response leaves the boundary — never appears on the wire as this code.
external_account_address_unavailable
Type temporarily_unavailable
beneficiary_commit_pending
503 — temporarily_unavailable's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1, payouts
crypto_relay_flag_read_failed
503 — temporarily_unavailable's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1, payment_links
customer_status_unavailable
503 — temporarily_unavailable's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1
destination_check_unavailable
503 — temporarily_unavailable's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1, payment_links, payouts, payroll, wallet
destination_risk_unverifiable
503 — temporarily_unavailable's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1, payment_links, payouts, payroll, wallet
eligibility_unavailable
503 — temporarily_unavailable's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1, payouts
legal_acceptance_unavailable
503 — temporarily_unavailable's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · Retired 2026-10-20 — no longer returned; see Terms acceptance.
mail_unavailable
503 — temporarily_unavailable's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1, payment_links
named_payout_config_commit_pending
503 — temporarily_unavailable's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1, payouts
payer_type_unverifiable
503 — temporarily_unavailable's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1, payouts
payout_cancel_commit_pending
503 — temporarily_unavailable's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1, payouts
payout_cancel_retryable
503 — temporarily_unavailable's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1, payouts
payout_funding_commit_pending
503 — temporarily_unavailable's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1, payouts
payout_fx_unavailable
503 — temporarily_unavailable's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1, payouts
payout_mark_sent_failed
503 — temporarily_unavailable's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1, payouts
payout_quote_refresh_failed
503 — temporarily_unavailable's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1, payouts
payout_replacement_failed
503 — temporarily_unavailable's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1, payouts
payout_source_quote_unavailable
503 — temporarily_unavailable's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1, payouts
payout_transfer_recovery_pending
503 — temporarily_unavailable's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1, payouts
rail_unavailable
503 — temporarily_unavailable's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1, payment_links
relay_route_unavailable
503 — temporarily_unavailable's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1, payment_links
source_tx_record_failed
503 — temporarily_unavailable's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1, wallet
summary_unavailable
503 — temporarily_unavailable's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1
temporarily_unavailable
503 — temporarily_unavailable's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1, core
wallet_funding_cancel_failed
503 — temporarily_unavailable's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1, payouts
wallet_signer_unreadable
503 — temporarily_unavailable's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1, wallet
wallet_state_unverifiable
503 — temporarily_unavailable's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1, payouts
Type quota_exhausted
quota_exhausted
402 — quota_exhausted's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1, core
Type provider_error
collection_va_payee_name_missing
502 / 503 — provider_error's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1
conversion_no_steps
502 / 503 — provider_error's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1
live_provider_blocked
502 / 503 — provider_error's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1
provider_handoff_invalid
502 / 503 — provider_error's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1
provider_instruction_invalid
502 / 503 — provider_error's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1, wallet
relay_quote_failed
502 / 503 — provider_error's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1, wallet
relay_quote_shortfall
502 / 503 — provider_error's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1, payment_links
send_intent_no_steps
502 / 503 — provider_error's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1
test_mode_unsupported
502 / 503 — provider_error's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: api_v1, wallet
Type api_error
internal_error
500 — api_error's canonical status (RESOURCE-MODEL §0.7, not always the literal status a pre-/v1 handler answers) · seen on: agent_api, api_v1
Internal label, never returned
Registered to satisfy the "every thrown code is in the registry" invariant, but always remapped or folded to a different code before a /v1 response leaves the boundary — never appears on the wire as this code.