IoneShop Developers

Error handling

Envelope

All 4xx/5xx JSON errors:

{
  "error": {
    "code": "INVALID_PARAMETER",
    "message": "limit must be between 1 and 250",
    "request_id": "req_01JABCDEF...",
    "param": "limit",
    "docs_url": "https://developers.ioneshop.eu/errors/INVALID_PARAMETER"
  }
}

HTTP status map

StatusCategoryExample codes
400ValidationINVALID_PARAMETER, INVALID_JSON
401AuthenticationUNAUTHORIZED, KEY_REVOKED, TOKEN_EXPIRED
403AuthorizationFORBIDDEN, INSUFFICIENT_SCOPE, TENANT_SUSPENDED, TENANT_MISMATCH
404Not foundNOT_FOUND
409ConflictCONFLICT, INVALID_STATE_TRANSITION, IDEMPOTENCY_KEY_REUSED
422Semantic validationUNPROCESSABLE_ENTITY
429Rate limitRATE_LIMITED
500ServerINTERNAL_ERROR
502 / 503Upstream / capacityBAD_GATEWAY, SERVICE_UNAVAILABLE

Client handling

CodeAction
UNAUTHORIZEDRefresh token / check key; do not retry blindly
INSUFFICIENT_SCOPERequest new key/scopes
RATE_LIMITEDHonor Retry-After
INVALID_PARAMETERFix request; do not retry same body
CONFLICT / IDEMPOTENCY_KEY_REUSEDRe-fetch resource; reuse prior result or new Idempotency-Key
INTERNAL_ERRORRetry with backoff + jitter; include request_id in ticket

Logging

Log request_id, error.code, HTTP status — never Authorization headers or webhook secrets.