Sign in

Errors

The API uses standard HTTP status codes. All error responses share a consistent JSON envelope.

Error response format

{
  "code": "VALIDATION_ERROR",
  "message": "Request validation failed",
  "details": {
    "amount": "must be greater than 0",
    "email": "must not be blank"
  }
}

Rate limit errors (429)

429 Too Many Requests responses do not use the standard {code, message, details} envelope. Instead they return an OAuth-style body with error and error_description fields:

{
  "error": "rate_limit_exceeded",
  "error_description": "Too many requests. Limit: 60 requests/minute. Retry after 1710500000"
}

See the Rate limits guide for per-environment limits and retry guidance.

HTTP status codes

StatusMeaning
200 OKSuccess
201 CreatedResource created
204 No ContentDeleted or no body
400 Bad RequestInvalid request body or parameters
401 UnauthorizedMissing or invalid Bearer token
403 ForbiddenValid token, insufficient scope or wrong org
404 Not FoundResource does not exist
422 Unprocessable EntityBusiness rule violation
429 Too Many RequestsRate limit exceeded
500 Internal Server ErrorUnexpected server error

Error codes

CodeDescription
VALIDATION_ERROROne or more fields failed validation
BUSINESS_RULE_VIOLATIONAllowed state transition violated (e.g. canceling a completed order)
RESOURCE_NOT_FOUNDThe requested resource does not exist in your organization
ORG_MISMATCHResource belongs to a different organization
INSUFFICIENT_SCOPEToken does not have the required scope
INTERNAL_ERRORUnexpected server error — include X-Request-Id when reporting