Рефсейлс API

Ошибки

Коды ответов и формат тела ошибки.

Ошибка всегда приходит в одном формате:

{
  "error": {
    "code": "validation_error",
    "message": "Request validation failed.",
    "details": { "issues": [] },
    "requestId": "8f0c…"
  }
}

requestId дублируется в заголовке X-Request-Id. Присылайте его в поддержку: по нему мы найдём запрос в логах.

HTTPcodeКогда
400bad_requestтело не парсится как JSON; или магазин не принял запись, причина в details.reason, если она есть
400validation_errorполя не прошли проверку, список в details.issues; неизвестный код статуса в PATCH
401unauthorizedключа нет, он неверный, отозван или истёк
402forbiddenтариф магазина не включает API, магазин или его владелец отключены
403forbiddenу ключа нет нужного права
404not_foundобъекта нет в этом магазине
409conflictexternalId занят заказом из другого источника
413bad_requestтело запроса больше 1 МБ
429rate_limitedпревышен лимит, ждите Retry-After секунд
500internal_errorсбой на нашей стороне

Ответы 400, 404 и 409 повторять бесполезно: исправьте запрос. 429 и 500 повторяйте с паузой. Создание заказа идемпотентно по externalId, поэтому повтор POST после 500 не создаст дубль.

Лимиты

7 запросов в секунду на ключ и 20 на все ключи магазина вместе. Успешные ответы несут X-RateLimit-Limit, X-RateLimit-Remaining и X-RateLimit-Reset (unix-время сброса). Ответ 401 их не содержит: лимит считается после проверки ключа.

В заказе не больше 200 позиций, количество в позиции до 100 000, сумма заказа до 2 000 000 000 копеек.

На странице