14
Стать партнером
14
{{ formatMonthYear(startMonth) }}
{{ d }}
{{ day.day }}
{{ formatMonthYear(endMonth) }}
{{ d }}
{{ day.day }}
Обновлено
20.03.2026
Содержание статьи

Обработка ошибок

Справочник ошибок API Lamoda. Формат ответа и коды ошибок различаются для Lamoda B2B Platform Partner API и Lamoda Seller Partner API. Убедитесь, что вы используете правильный раздел для вашего API.

Lamoda B2B Platform Partner API

REST API возвращает стандартные HTTP-коды состояния и структурированное тело ошибки с строковым кодом.

Структура ответа с ошибкой

{
  "error": {
    "code": "VALIDATION_FAILED",
    "message": "Проверьте переданные данные",
    "details": [
      {
        "field": "sellerId",
        "issue": "Обязательное поле"
      },
      {
        "field": "images[0].order",
        "issue": "Должно быть положительным числом"
      }
    ]
  }
}

Поля ответа:

  • error.code — строковый машиночитаемый код (см. таблицу ниже)
  • error.message — человекочитаемое описание ошибки
  • error.details — массив подробностей валидации (может отсутствовать). Каждый элемент содержит field (путь к полю) и issue (описание проблемы)

Коды ошибок REST API

HTTP-статус Код в error.code Описание Что делать
400 VALIDATION_FAILED Ошибка валидации данных Проверьте поля в details и исправьте запрос
401 UNAUTHORIZED Токен отсутствует, истёк или невалиден Обновите токен через POST /auth/token
403 FORBIDDEN Недостаточно прав для операции Проверьте scope токена у вашего менеджера
404 NOT_FOUND Запрашиваемый ресурс не найден Проверьте идентификатор ресурса
503 SERVICE_UNAVAILABLE Сервис временно недоступен Повторите запрос через 5–30 секунд с экспоненциальной задержкой

Примеры ответов REST API

400 — ошибка валидации:

{
  "error": {
    "code": "VALIDATION_FAILED",
    "message": "Invalid sellerId",
    "details": [
      { "field": "sellerId", "issue": "Обязательное поле" }
    ]
  }
}

401 — токен невалиден:

{
  "error": {
    "code": "UNAUTHORIZED",
    "message": "Токен отсутствует или невалиден"
  }
}

404 — ресурс не найден:

{
  "error": {
    "code": "NOT_FOUND",
    "message": "Not Found"
  }
}

503 — сервис недоступен:

{
  "error": {
    "code": "SERVICE_UNAVAILABLE",
    "message": "Сервис временно недоступен"
  }
}

Lamoda Seller Partner API (JSON-RPC 2.0)

Lamoda Seller Partner API всегда возвращает HTTP 200 и использует числовые коды ошибок в теле JSON-RPC ответа.

Структура ответа с ошибкой

{
  "jsonrpc": "2.0",
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "error": {
    "code": -32600,
    "message": "validation failure list: seller_id is required",
    "data": {
      "errors": [
        { "field": "seller_id", "message": "is required" }
      ]
    }
  }
}

Поля ответа:

  • error.code — числовой код ошибки (см. таблицу ниже)
  • error.message — человекочитаемое описание
  • error.data — дополнительные данные (может отсутствовать). Для ошибок валидации содержит массив errors с полями field и message

Коды ошибок JSON-RPC

Код Название Описание Что делать
-32600 Invalid Request Ошибка валидации параметров запроса Проверьте формат и обязательные поля
-32601 Method not found Указанный метод не существует Проверьте имя метода в OpenAPI-спецификации
-32602 Invalid params Параметры запроса не прошли валидацию Проверьте error.data.errors для деталей
-32603 Internal error Внутренняя ошибка сервера Повторите запрос через 5–30 секунд
-32000 Server error Серверная ошибка (общая) Повторите запрос через 5–30 секунд
-32001 Unauthorized Токен отсутствует, истёк или невалиден Обновите токен через POST /jsonrpc/v1/tokens.create
-32003 Forbidden Недостаточно прав для выполнения операции Проверьте scope токена у менеджера
-32004 Not found Запрашиваемый ресурс не найден Проверьте идентификатор ресурса
-32015...N Validation error Расширенные ошибки валидации бизнес-логики Проверьте error.data для деталей
50401 Invalid grant Невалидные учётные данные при получении токена Проверьте client_id и client_secret
50403 Access denied Доступ запрещён Проверьте scope и права партнёра

Маппинг JSON-RPC → REST

Если вы мигрируете с Lamoda Seller Partner API на Lamoda B2B Platform Partner API, используйте эту таблицу для сопоставления кодов:

JSON-RPC код REST HTTP-статус REST код (error.code)
-32600, -32602, -32015...N 400 VALIDATION_FAILED
-32001 401 UNAUTHORIZED
-32003 403 FORBIDDEN
-32004 404 NOT_FOUND
-32000, -32601, -32603 503 SERVICE_UNAVAILABLE
Остальные коды 503 SERVICE_UNAVAILABLE

Бизнес-ошибки

Помимо системных кодов, API возвращает бизнес-ошибки в поле message. Ниже — наиболее частые.

Авторизация и партнёры

Сообщение (EN) Сообщение (RU) Причина
Partner not found Партнер не найден Неверные credentials или партнёр не активирован
Country is not enabled for partner Страна недоступна для партнера Попытка работать со страной, не включённой для партнёра

Товары (номенклатура)

Сообщение (EN) Сообщение (RU) Причина
Nomenclature was not found Товар не найден SKU не существует в системе
Nomenclature sell value in processing Изменения в процессе обработки, попробуйте позже Предыдущее изменение ещё обрабатывается

Цены

Сообщение (EN) Сообщение (RU) Причина
Price is required if country is enabled Введите цену Не указана цена для активной страны
Price must be rounded up to tens Цена должна быть кратна 10 Для России цена должна быть кратна 10 (без копеек)
The sale price value is greater 20% or less 95% of price Недопустимая цена с учётом скидки Скидочная цена (sale_price) должна составлять от 20% до 95% от основной цены (price), то есть скидка — от 5% до 80%
Missed RU nomenclature sell value Не установлена цена для страны RU Для работы с BY/KZ сначала нужно установить цену для России
Auto conversion not enabled for country Автоконвертация недоступна для страны Автоматическая конвертация валюты не включена

Скидки и акции

Сообщение (EN) Сообщение (RU) Причина
Sale date is required when sale price is present Необходимо указать период скидки При установке скидочной цены обязательны даты начала и окончания
Sale start date is greater then sale end date Период скидки указан неверно Дата начала скидки позже даты окончания

Валидации полей

Правила валидации цен

Правило Значение Пример
Кратность для RU Кратна 10 1990, 1995
Минимум ≥ 10 5
Максимум ≤ 99 999 990
Скидочная цена (sale_price) От 20% до 95% от price (скидка от 5% до 80%) price=1000, sale_price=100 (скидка 90%)

Формула скидки: sale_price ≥ price × 0.20 и sale_price ≤ price × 0.95. Например, для цены 1000 ₽ допустимая скидочная цена — от 200 до 950 ₽.

Форматы идентификаторов

Поле Формат Пример
seller_sku Буквы, цифры, _-/. SHOE-001-BLK
lamoda_sku Генерируется Lamoda MP002XM0ABCD01
barcode EAN-13 4607001234567

Доступные страны

Код Страна Статус
RU Россия Активна
BY Беларусь Активна
KZ Казахстан Активна
UA Украина Deprecated

Как обрабатывать ошибки

Lamoda B2B Platform Partner API

def handle_rest_error(response):
    """Обработка ошибок Lamoda B2B Platform Partner API"""
    
    if response.status_code == 200:
        return response.json()  # Успех
    
    error = response.json().get("error", {})
    code = error.get("code", "")      # Строка: "VALIDATION_FAILED", "UNAUTHORIZED", ...
    message = error.get("message", "")
    details = error.get("details", [])  # Массив {field, issue}
    
    if code == "UNAUTHORIZED":
        # Токен истёк — обновляем
        refresh_token()
        return retry_request()
    
    elif code == "VALIDATION_FAILED":
        for detail in details:
            print(f"Поле {detail['field']}: {detail['issue']}")
        raise ValidationError(message)
    
    elif code == "NOT_FOUND":
        raise NotFoundError(message)
    
    elif code == "SERVICE_UNAVAILABLE":
        # Внутренняя ошибка — повторяем с задержкой
        time.sleep(5)
        return retry_request()
    
    raise APIError(f"Ошибка {code}: {message}")

Lamoda Seller Partner API

def handle_jsonrpc_error(response):
    """Обработка ошибок Lamoda Seller Partner API"""
    
    data = response.json()  # HTTP всегда 200
    error = data.get("error")
    
    if error is None:
        return data.get("result")  # Успех
    
    code = error.get("code")       # Число: -32600, -32001, ...
    message = error.get("message", "")
    error_data = error.get("data")  # Объект с errors[]
    
    if code == -32001:
        # Unauthorized — обновляем токен
        refresh_token()
        return retry_request()
    
    elif code in (-32600, -32602) or (-32015 - 1000 <= code <= -32015):
        # Ошибка валидации — смотрим детали
        if error_data and "errors" in error_data:
            for err in error_data["errors"]:
                print(f"Поле {err['field']}: {err['message']}")
        raise ValidationError(message)
    
    elif code in (-32000, -32603):
        # Серверная ошибка — повторяем с задержкой
        time.sleep(5)
        return retry_request()
    
    raise APIError(f"Ошибка {code}: {message}")

См. также

Помогла эта информация?

Да Нет
0/1000 Отправить
Версии API
Построение надежной интеграции с Lamoda API
Спросить у Lamoda Seller Assistant в Telegram