Работа с токенами для партнёрских сервисов

Проверка токена продавца, сервисный секрет и обработка ошибок

content

Эта статья предназначена для разработчиков партнёрских сервисов, работающих с WB API, — как из Каталога решений, так и подключённых через business-solutions@rwb.ru. Если вы продавец — вам достаточно статьи «Декодирование и проверка токенов WB API».


Проверка типа токена продавца

Когда продавец подключает ваш сервис, он передаёт токен для доступа к данным через API. Не каждый токен подойдёт — важно проверить его тип и параметры.

Почему важна проверка

Персональный токен работает только в собственных интеграциях продавца, Сервисный привязан к конкретному сервису, а Базовый имеет ограниченный набор прав. Если продавец по ошибке передаст неподходящий токен, интеграция может работать некорректно.

Подробнее о типах токенов — в статье «Способы подключения к WB API: токен и OAuth 2.0»

Алгоритм проверки

Декодируйте токен и определите его тип по полям JWT. Подробнее о структуре JWT-токенов WB API, полях и битовой маске категорий — в статье «Декодирование и проверка токенов WB API».

Тип токенаaccfort
Базовый1Поле отсутствуетfalse
Тестовый2Поле отсутствуетtrue
Персональный3selffalse
Сервисный4asid:{ID сервиса}false

Для Сервисного токена (acc=4) убедитесь, что ID сервиса в поле for (формат asid:{ID}) совпадает с вашим asid. Если не совпадает — токен выпущен для другого сервиса.

Для вашего сервиса подходит Сервисный токен с asid, совпадающим с ID вашего сервиса. Если продавец передал другой тип — объясните, какой токен нужен, и предоставьте ссылку для создания (см. ниже).

Персональные токены (acc=3) и Сервисные токены других сервисов запрещено принимать для подключения облачных версий продуктов. Запросы с такими токенами не будут проходить через WB API.


Сервисный секрет

Что это и зачем нужен

Сервисный секрет — уникальный токен вашего сервиса, который подтверждает его подлинность при каждом обращении к API. Все сервисы, получившие сервисный секрет, обязаны подписывать им запросы. Это позволяет системе идентифицировать, какой сервис обращается к данным продавца.

Секрет выдаётся один раз для всего сервиса и используется для всех продавцов — это не то же самое, что токен каждого отдельного продавца.

Как получить

Есть два способа получить сервисный секрет:

  • Через Каталог решений — секрет генерируется автоматически при добавлении сервиса в Каталог решений.
  • Через business-solutions@rwb.ru — если ваш сервис ещё не готов к подаче заявки в Каталог, напишите на business-solutions@rwb.ru. Команда WB API выдаст сервисный секрет и настроит лимиты.

Для перевыпуска (например, при компрометации) — также обращайтесь на business-solutions@rwb.ru.

Срок действия и ротация

Срок жизни сервисного секрета составляет 180 дней. Новый секрет генерируется за 30 дней до истечения срока старого. Оба секрета валидны одновременно до окончания срока жизни старого — это позволяет плавно перейти на новый секрет без прерывания работы.

Как использовать

Добавьте секрет во все запросы к API через заголовок X-Client-Secret — в дополнение к токену продавца:

curl -H "Authorization: Bearer ${SELLER_TOKEN}" \
     -H "X-Client-Secret: ${YOUR_SERVICE_SECRET}" \
     https://marketplace-api.wildberries.ru/api/v3/orders/new

Оба заголовка обязательны. Секрет передаётся в дополнение к токену продавца, а не вместо него.

Сервисный секрет обязателен для всех обращений через Сервисные и Базовые токены. Использование Базовых токенов без сервисного секрета не допускается.

Структура секрета

Сервисный секрет — это тоже JWT-токен:

{
  "exp": 1715840770,
  "id": "31ee022e-0663-4c75-bc78-a976a1fdd3bb",
  "asid": "0191c6da-597f-731d-bfc4-3f20cbe0a864",
  "typ": 2
}
ПолеОписание
expСрок действия секрета
idУникальный идентификатор секрета
asidID вашего сервиса в системе
typТип токена (2 — сервисный секрет)

Специальная ссылка для создания токена

Чтобы продавцам было проще подключать ваш сервис, Wildberries предоставляет специальную ссылку, которая автоматически настраивает параметры токена:

  1. Получите ссылку при регистрации в Каталоге решений или по запросу на business-solutions@rwb.ru
  2. Добавьте её в инструкции по подключению вашего сервиса
  3. При переходе по ссылке продавец увидит форму создания токена с предустановленными настройками (категории, уровень доступа)
  4. Продавцу останется только подтвердить создание и скопировать токен

Это значительно снижает вероятность ошибок при настройке интеграции.


Программная проверка статуса токена

Помимо базового декодирования JWT, WB API предоставляет метод для программной проверки актуального статуса токена продавца:

GET /api/v1/open-utils/tokens/introspect-v2

Метод доступен с сервисным секретом и возвращает не только информацию из JWT, но и текущий статус токена в системе — включая возможные ограничения и блокировки, которые нельзя получить из самого токена.

Рекомендация: проверяйте статус токена при первом подключении продавца и периодически — для отслеживания отзыва или истечения.

Подробнее — в документации на портале разработчиков.


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

Ошибки 401 (Unauthorized) — проблемы с токенами

СообщениеПричинаРешение
secret token expiredИстёк срок действия сервисного секретаОбратитесь на business-solutions@rwb.ru для перевыпуска
secret token withdrawnСекрет был отозванОбратитесь на business-solutions@rwb.ru для перевыпуска
token expiredИстёк токен продавцаПродавец должен создать новый токен

Ошибки 403 (Forbidden) — проблемы с правами доступа

СообщениеПричинаРешение
X-Client-Secret is missing for this token typeЗапрос не подписан сервисным секретом, либо содержит Сервисный токен другого сервисаДобавьте заголовок X-Client-Secret с вашим секретом
access token and X-Client-Secret are for different authorized servicesТокен продавца выпущен для другого сервисаПродавцу нужно создать токен именно для вашего сервиса
X-Client-Secret is not allowed with private tokenПопытка использования сервисного секрета с Персональным токеномПродавцу нужно создать Сервисный токен вместо Персонального

Подробнее обо всех кодах ошибок — в статье «Ошибки авторизации WB API и их решение»


Рекомендации

  • Проверяйте тип токена при первом подключении продавца — это предотвращает большинство ошибок
  • Используйте специальную ссылку для создания токена в инструкциях по подключению
  • Храните сервисный секрет так же надёжно, как пароли — в переменных окружения или менеджере секретов
  • При ошибках авторизации — давайте продавцу понятную обратную связь с описанием, какой именно токен нужен

Поддержка

  • Получение и перевыпуск сервисного секретаbusiness-solutions@rwb.ru или через Каталог решений
  • Получение ссылки для создания токенов — при регистрации в Каталоге или по запросу на business-solutions@rwb.ru
  • Общие вопросы по интеграции — чат вашего сервиса с командой WB API