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

Lamoda использует OAuth 2.0 с типом гранта client_credentials. Для доступа к API необходимо получить токен и передавать его в заголовке каждого запроса.

Важно: единые credentials, единый TTL
  • Один набор client_id / client_secret для обоих API
  • Время жизни токена: 15 минут (900 секунд) для обоих API
  • Endpoints авторизации разные для каждого API

Endpoints авторизации

API Endpoint TTL токена
Seller API https://public-api-seller.lamoda.ru/jsonrpc
метод: v1.tokens.create
15 минут
B2B Platform API https://api-b2b.lamoda.ru/auth/token 15 минут

Получение токена

Seller API (JSON-RPC)

curl -X POST https://public-api-seller.lamoda.ru/jsonrpc \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": "550e8400-e29b-41d4-a716-446655440000",
    "method": "v1.tokens.create",
    "params": {
      "client_id": "your_client_id",
      "client_secret": "your_client_secret",
      "grant_type": "client_credentials"
    }
}'

Успешный ответ Seller API:

{
  "jsonrpc": "2.0",
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "result": {
    "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
    "token_type": "bearer",
    "expires_in": 900
  }
}

B2B Platform API (REST)

curl -X POST https://api-b2b.lamoda.ru/auth/token \
  -H "Content-Type: application/json" \
  -d '{
    "client_id": "your_client_id",
    "client_secret": "your_client_secret",
    "grant_type": "client_credentials"
}'

Успешный ответ B2B API:

{
  "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
  "token_type": "Bearer",
  "expires_in": 900
}
Поле Тип Описание
access_token string JWT-токен для авторизации запросов
token_type string Всегда Bearer
expires_in integer Время жизни в секундах (900 = 15 минут)
TTL = 15 минут!

Токен живёт только 15 минут. Если ваша интеграция выполняет длительные операции (загрузка большого каталога, batch-обновление цен), необходимо:
  • Обновлять токен заранее (за 1-2 минуты до истечения)
  • Или запрашивать новый токен при получении ошибки 401 Unauthorized

Использование токена

Передавайте токен в заголовке Authorization:

curl -X GET https://api-b2b.lamoda.ru/api/v1/orders \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..."

Стратегии обновления токена

Вариант 1: Проактивное обновление (рекомендуется)

Обновляйте токен за 1-2 минуты до истечения:

import time
import requests

class LamodaAPI:
    def __init__(self, client_id, client_secret, base_url):
        self.client_id = client_id
        self.client_secret = client_secret
        self.base_url = base_url
        self.token = None
        self.token_expires_at = 0
    
    def get_token(self):
        # Обновляем токен за 60 секунд до истечения
        if self.token and time.time() < self.token_expires_at - 60:
            return self.token
        
        response = requests.post(
            f"{self.base_url}/auth/token",
            json={
                "client_id": self.client_id,
                "client_secret": self.client_secret,
                "grant_type": "client_credentials"
            }
        )
        data = response.json()
        
        self.token = data["access_token"]
        self.token_expires_at = time.time() + data["expires_in"]
        
        return self.token
    
    def request(self, method, endpoint, **kwargs):
        headers = kwargs.pop("headers", {})
        headers["Authorization"] = f"Bearer {self.get_token()}"
        
        return requests.request(
            method,
            f"{self.base_url}{endpoint}",
            headers=headers,
            **kwargs
)

Вариант 2: Реактивное обновление

При получении 401 Unauthorized — запросите новый токен и повторите запрос:

def request_with_retry(api, method, endpoint, data=None):
    try:
        return api.request(method, endpoint, json=data)
    except requests.HTTPError as e:
        if e.response.status_code == 401:
            # Сбрасываем токен и пробуем снова
            api.token = None
            return api.request(method, endpoint, json=data)
raise

Ошибки авторизации

Код Сообщение Причина Решение
50401 Unauthorized Токен истёк или невалиден Запросите новый токен
50400 Партнер не найден / Partner not found Неверный client_id или client_secret Проверьте учётные данные у менеджера
50403 Forbidden Нет прав на ресурс Проверьте права доступа у менеджера

Полный список ошибок

Частые проблемы

 «Партнер не найден» (50400)

Причины:
  • Неверный client_id или client_secret
  • Партнер не активирован в системе
Решение: Уточните credentials у вашего менеджера Lamoda Токен перестает работать через 15 минут

Это нормальное поведение! TTL токена = 900 секунд = 15 минут.
Реализуйте автоматическое обновление токена (см. примеры выше).

См. также

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

Да Нет
0/1000 Отправить
Спросить у Lamoda Seller Assistant в Telegram