See Error concepts for how to handle errors idiomatically. This page is the complete code table.

Error envelope

{
  "error": {
    "type": "validation_error",
    "code": "email_invalid",
    "message": "...",
    "param": "email",
    "requestId": "req_01HX3ZE..."
  }
}

By status code

400 validation_error

codeMeaning
field_requiredRequired field missing. See param.
field_too_longparam exceeded max length.
field_too_shortparam below min length.
enum_invalidparam isn’t an allowed value.
email_invalidNot a valid email.
phone_invalidNot a valid E.164 phone.
url_invalidNot a valid URL.
currency_invalidUnsupported currency code.
amount_too_smallBelow minimum charge amount.
amount_too_largeAbove maximum allowed for this tier.
idempotency_key_reuseKey used with a different body.
idempotency_key_conflictKey in use by a concurrent request.
cursor_expiredPagination cursor older than 24 hours.

401 authentication_error

codeMeaning
key_missingMissing x-api-key or x-api-secret.
key_invalidKey pair not recognized.
key_revokedKey pair was revoked.
signature_invalidWebhook signature check failed.

403 permission_error

codeMeaning
key_forbiddenKey lacks the required scope.
tenant_suspendedTenant has been suspended.
feature_not_enabledFeature isn’t enabled on this tenant.

404 not_found

codeMeaning
resource_not_foundNo object with that ID visible to this tenant.

409 conflict

codeMeaning
duplicate_emailUser with this email already exists.
kyc_already_completedKYC is finalized.
transaction_not_pendingTransaction is past the point of this action.
invite_already_acceptedInvite token has been consumed.

429 rate_limit_error

codeMeaning
rate_limit_exceededHonor Retry-After.

5xx api_error

codeMeaning
internal_errorUnexpected Zquence-side error. Retry with backoff.
upstream_errorA dependent service is degraded. Retry with backoff.
service_unavailableBrief outage. Retry with backoff.

Account endpoint codes

Create an account and Retrieve an account return these codes in the top-level code field of the response body, next to statusCode, message, path, correlationId, and timestamp.
StatuscodeMeaning
400invalid_idempotency_keyIdempotency-Key missing, not 8–255 characters, or contains spaces or non-ASCII characters.
400unknown_request_fieldsBody contains unsupported fields, listed in fields.
400invalid_participantsparticipants isn’t one customer or one buyer plus one seller.
400invalid_account_idAccount ID in the path isn’t valid.
400invalid_external_read_contextAPI key isn’t bound to an environment (retrieve).
401api_key_requiredEndpoint accepts API-key authentication only.
403environment_binding_requiredAPI key isn’t bound to an environment (create).
404account_not_foundNo account with that ID in the key’s tenant and environment.
409idempotency_key_reusedIdempotency-Key already used with a different body.
409external_reference_existsAnother account already has this externalReference.
When filing a support ticket, include the x-request-id header value from the failing response - it uniquely identifies the request across all our logs.