Error Reference

The closed set of error_reason values, the error categories they map to, and the response shape.

Every failing call returns the same envelope. This page lists the values that can appear in it.

Error Response Format

{
  "error_reason": "ErrorInvalidField",
  "error_description": "Human-readable message",
  "error_category": {
    "category": "CategoryValidationFailure",
    "http_status_code": 400
  },
  "error_details": [
    { "key": "field", "details": "email" },
    { "key": "issue", "details": "invalid_format" }
  ]
}
FieldDescription
error_reasonMachine-readable reason. Branch on this
error_descriptionHuman-readable message. Do not parse it
error_category.categoryCategory the reason resolved to for this call
error_category.http_status_codeHTTP status returned
error_detailsKey/value pairs naming the offending field and the issue. Present on most validation failures

Error Reasons

The closed set of error_reason values. Any endpoint can return any of them; the ones an integration
handles explicitly are marked.

Error ReasonMeaning
ErrorMissingFieldA required field was not sent
ErrorInvalidFieldA field failed validation or carried an unrecognised value
ErrorInvalidStatusThe entity's status does not permit the action
ErrorNotFoundThe referenced entity does not exist, or is not visible to this corporation
ErrorAlreadyExistsThe entity already exists
ErrorPermissionDeniedThe caller's role does not grant the required permission
ErrorNotSupportedThe operation is not available — wrong company type, unsupported flow, or no configuration
ErrorExpiredA token or estimate has expired
ErrorTooManyRequestsRate limit reached
ErrorInsufficientFundsThe wallet does not hold enough of the token
ErrorLimitExceededA configured limit was exceeded
ErrorConfigurationInvalidA platform configuration problem. Contact Wirex
ErrorGeneralAn unclassified failure
ErrorUnknownAn unmapped failure
ErrorResponseInvalidA downstream response could not be parsed
ErrorInvalidMethodThe HTTP method is not supported on that path
ErrorTimeoutA downstream call timed out
ErrorInitFailedA component failed to initialise
ErrorNotImplementedThe operation is not implemented
ErrorDeadlinesExceededA deadline was exceeded
ErrorCanceledThe operation was cancelled
ErrorRevertedAn on-chain call reverted
ErrorNotYetValidThe operation is not valid yet — a time-locked withdrawal before valid_after

Error Categories

CategoryHTTPMeaning
CategoryValidationFailure400The request was rejected
CategoryUnauthorized401Authentication failed
CategoryForbidden403Authenticated, but the role lacks the permission
CategoryTransientFailure429Transient rejection
CategoryInternalFailure500Server-side failure
CategoryTransportFailure503A downstream service was unreachable

The rate limiter on POST /api/v1/token returns ErrorTooManyRequests under
CategoryInternalFailure — HTTP 500, not 429. Branch on error_reason.


Did this page help you?