Skip to main content

Error format

All errors follow a consistent envelope:
FieldDescription
codeMachine-readable error code. Use this for programmatic handling.
messageHuman-readable description. Intended for developers, not end users. Messages may change without notice.
requestIdUnique request identifier. Include this when contacting support.

HTTP status codes

StatusMeaning
400Bad request — invalid syntax, missing required fields, or validation failure.
401Unauthorized — missing or invalid API key.
403Forbidden — the API key is valid but lacks permission for this action.
404Not found — the requested resource does not exist, or does not belong to your organization.
409Conflict — the action conflicts with the resource’s current state (e.g., archiving an already-archived beneficiary, executing an expired quote).
422Unprocessable entity — the request body failed schema validation.
429Too many requests. Your organization exceeded its rate limit. See Idempotency and rate limits.
500Internal error — something went wrong on our end. Retry the request.
502Upstream error — a dependent service failed (e.g., blockchain node). Retry the request.

Error codes

Authentication

CodeHTTPDescription
missing_api_key401No Authorization header, or it doesn’t start with Bearer .
invalid_api_key401The key doesn’t exist or has been revoked.
authentication_failed401Key verification failed due to a server error. Retry.
forbidden403API key is valid but not authorized for this action.
acting_org_not_found403The Nxos-On-Behalf-Of header points to an organization that does not exist.
authorization_required403The Nxos-On-Behalf-Of target exists, but your organization holds no active authorization (LOA) on it. See Cross-org access.

Resource lookup

CodeHTTPDescription
not_found404Generic resource not found.
organization_not_found404Organization does not exist.
account_not_found404Account does not exist or does not belong to your organization.
quote_not_found404Quote does not exist.
beneficiary_not_found404Beneficiary does not exist or does not belong to the specified account.
transaction_not_found404Transaction does not exist or is not on one of your accounts.
funding_method_not_found404Funding method does not exist or does not belong to your organization.
authorization_not_found404The referenced authorization (LOA) grant does not exist.
nxosnet_handle_not_found404No NXOS organization matches the supplied nxosnet handle.

Business logic

CodeHTTPDescription
quote_expired409The quote has expired. Create a new one.
quote_already_used409The quote has already been executed.
beneficiary_already_archived409The beneficiary is already archived.
beneficiary_not_archived409The beneficiary is not archived, so it cannot be restored.
beneficiary_blocked409The beneficiary is blocked for compliance reasons and cannot be used.
nxosnet_not_enabled409The target organization has not enabled NXOS-to-NXOS transfers.
fee_schedule_drifted409The fee schedule changed since the quote was issued. Re-quote and retry.
idempotency_key_in_use409The supplied Idempotency-Key was previously used with a different request body. Use a unique key per logical operation.
idempotency_request_in_flight409A request with the same Idempotency-Key is currently being processed. Retry shortly.
insufficient_funds400The account does not have enough balance for this operation.

Validation and system

CodeHTTPDescription
validation_error422Request body failed schema validation. Check the message for details.
invalid_request400The request is malformed or contains invalid parameters.
share_token_invalid400The supplied verification share token is invalid or expired.
verification_import_unsupported400Verification import is not supported for the supplied provider or payload.
rate_limited429Your organization exceeded its request quota. Wait for the Retry-After header before retrying. See Idempotency and rate limits.
chain_send_failed502The on-chain transaction could not be submitted.
webhooks_unavailable502The webhooks service is temporarily unavailable. Retry the request.
internal_error500Unexpected server error. Retry the request.

Handling errors

Always include the requestId when reporting issues. It lets us trace the exact request through our systems.