Полный список кодов ошибок API с описаниями на русском и английском языках.
Системные коды ошибок
|
Код
|
Название
|
Описание
|
|
50400
|
Bad Request
|
Неверный формат запроса или данные не прошли валидацию
|
|
50401
|
Unauthorized
|
Требуется авторизация. Токен отсутствует, истек или невалиден
|
|
50403
|
Forbidden
|
Недостаточно прав для выполнения операции
|
|
50422
|
Unprocessable Entity
|
Ошибка валидации бизнес-логики
|
|
50500
|
Internal Server Error
|
Внутренняя ошибка сервера. Попробуйте повторить запрос позже
|
|
-32000
|
JSON-RPC Validation Error
|
Ошибка валидации параметров JSON-RPC запроса
|
Структура ответа с ошибкой
REST API (B2B Platform)
{
"error": {
"code": 50400,
"message": "Bad Request",
"description": "Описание ошибки"
}
}
JSON-RPC (Seller API)
{
"jsonrpc": "2.0",
"id": "550e8400-e29b-41d4-a716-446655440000",
"error": {
"code": 50401,
"message": "Unauthorized"
}
}
JSON-RPC с деталями валидации
{
"jsonrpc": "2.0",
"id": "550e8400-e29b-41d4-a716-446655440000",
"error": {
"code": -32000,
"message": "validation failure list: seller_id is required",
"errors": [
{
"field": "seller_id",
"message": "is required"
}
]
}
}
Бизнес-ошибки
Авторизация и партнеры
|
Сообщение (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
|
Недопустимая цена с учетом скидки. Скидка может составлять от 5% до 80% от цены
|
Скидка должна быть в диапазоне 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
|
Период скидки указан неверно
|
Дата начала скидки позже даты окончания
|
Валидации полей
Цены (price)
Правила валидации цен
|
Правило
|
Значение
|
Пример ошибки
|
|
Кратность для RU
|
Кратна 10
|
1990 , 1995
|
|
Минимум
|
≥ 10
|
5
|
|
Максимум
|
≤ 99 999 990
|
—
|
|
Скидка
|
5% — 80%
|
Скидка 90%
|
SKU и идентификаторы
Форматы идентификаторов
|
Поле
|
Формат
|
Пример
|
seller_sku
|
Буквы, цифры, _-/.
|
SHOE-001-BLK
|
lamoda_sku
|
Генерируется Lamoda
|
MP002XM0ABCD01
|
barcode
|
8-14 цифр (EAN/GTIN)
|
4607001234567
|
JSON-RPC id
|
UUID v4 (36 символов)
|
550e8400-e29b-41d4-a716-446655440000
|
Типы отгрузок (shipment_types)
Расшифровка значений
В некоторых методах используется поле
required_for_shipment_types с числовыми значениями:
|
Значение
|
Тип
|
Описание
|
"1"
|
FBO
|
Fulfillment by Operator — фулфилмент Lamoda
|
"2"
|
FBS
|
Fulfillment by Seller — фулфилмент продавца
|
"3"
|
Crossdock
|
Кросс-докинг
|
Страны (country)
|
Код
|
Страна
|
Статус
|
RU
|
Россия
|
Активна
|
BY
|
Беларусь
|
Активна
|
KZ
|
Казахстан
|
Активна
|
UA
|
Украина
|
Deprecated
|
Как обрабатывать ошибки
def handle_lamoda_error(response):
"""Обработка ошибок Lamoda API"""
if response.status_code == 401:
# Токен истёк — обновляем
refresh_token()
return retry_request()
error = response.json().get("error", {})
code = error.get("code")
message = error.get("message", "")
if code == 50400:
if "Partner not found" in message:
raise AuthError("Проверьте client_id и client_secret")
elif "Price must be rounded" in message:
raise ValidationError("Цена должна быть кратна 10")
elif code == 50422:
# Ошибка валидации — смотрим детали
errors = error.get("errors", [])
for err in errors:
print(f"Поле {err['field']}: {err['message']}")
elif code == 50500:
# Внутренняя ошибка — повторяем с задержкой
time.sleep(5)
return retry_request()
raise APIError(f"Ошибка {code}: {message}")
См. также