Короткий ответ
Ключ API Wildberries хранится в базе зашифрованным (AES-256-GCM). Ключ шифрования лежит на сервере отдельно от базы и в её копии не попадает. В кабинете и в боте виден только хвост — последние четыре символа. В журналы сервиса ключ не пишется никогда. Мы делаем им только запросы на чтение: ничего в вашем кабинете WB Меджик не меняет, а с ключом «только на чтение» и не может изменить. Отозвать ключ можно в любой момент в кабинете WB — сайт продолжит работать на уже загруженной копии каталога.
Что храним, где и кто видит
| Что | Где | Кто видит |
|---|---|---|
| Ключ API WB | в базе — шифротекст AES-256-GCM, свой случайный nonce на каждое значение; ключ шифрования — переменная окружения сервера, в базе и её бэкапах его нет | никто. Расшифровывается только процессом сервера в момент запроса к WB. Ни в кабинете, ни в админке, ни у основателя ключ прочитать нельзя — интерфейса для этого не существует |
| Маска ключа | отдельная колонка: «…» + 4 последних символа | вы, в кабинете — чтобы понять, какой ключ подключён |
| Карточки, фото, характеристики, цены, остатки | наша база и файловое хранилище на серверах в России | все — это и есть ваша витрина |
| Отзывы и вопросы с WB | наша база | покупатели на витрине, если блок включён |
| Ключи кассы ЮKassa | так же, как ключ WB: шифротекст в базе, наружу маска | никто |
| Пароль от аккаунта Меджик | только необратимый хеш | никто, включая нас |
| Логин и пароль от кабинета WB | не храним и не спрашиваем | — |
| Данные банковских карт покупателей | не храним: карту вводят на странице платёжного провайдера | — |
Какие права нужны ключу
При создании ключа в кабинете WB («Настройки → Доступ к API») отметьте категории «Контент», «Цены и скидки» и «Вопросы и отзывы» и оставьте галочку «Только на чтение». Больше нам не нужно. Остатки сервис читает из отчётов по складам WB и складам продавца; если в ключе нет нужной категории, остаток помечается как «неизвестен», а не как ноль, и сайт всё равно собирается.
Что сервис делает с ключом
- Один раз проверяет, что ключ живой — запрашивает одну карточку. Если WB отвечает отказом, вы видите причину в кабинете; сам ключ при этом в поле сервиса не оседает.
- Загружает каталог: карточки, фото, характеристики, цены, остатки.
- Загружает отзывы и вопросы покупателей — для блока отзывов на витрине.
- Обновляет цены и остатки — по кнопке в кабинете или по расписанию. Расписание построено с уважением к лимитам WB: не чаще раза в час на магазин, запросы разнесены по времени.
- В Telegram-боте сообщение с ключом удаляется из чата первым же действием — до проверки и до ответа; в ответ бот показывает только маску.
Чего сервис не делает
- Не меняет ничего в WB: цены, скидки, остатки, карточки, рекламу. Все запросы — на чтение.
- Не передаёт ключ третьим лицам, не использует для других магазинов, не «анализирует ваш бизнес» за пределами сборки и обновления сайта.
- Не пишет ключ в логи, тексты ошибок и письма. Даже ошибка от WB приходит в кабинет без него.
- Не показывает ключ поддержке. У нас нет способа его прочитать.
- Не хранит ничего из кабинета WB, кроме каталога и отзывов: ни финансовые отчёты, ни рекламные кампании, ни данные покупателей WB (их API и не отдаёт).
Про предупреждение WB — честно
Wildberries при выпуске ключа предупреждает, что его не стоит передавать сторонним сервисам. Меджик — сторонний сервис. Мы не можем обещать, что WB никогда не изменит правила, и не делаем вид, что предупреждения нет. Что мы можем — сделать ключ бесполезным для чужого и легко отзываемым:
- выпустите отдельный ключ с понятным именем («Мой сайт»), только на чтение и только с нужными категориями;
- удалите его, как только каталог загружен, если не планируете обновлять цены и остатки автоматически. Нам он больше не нужен — сайт работает на сохранённой копии;
- когда понадобится обновить каталог — выпустите новый и вставьте его в кабинете.
Как отозвать ключ
- В кабинете WB: «Настройки → Доступ к API» → удалить ключ. С этого момента ни один запрос от Меджика не проходит; при следующем обращении подключение в кабинете Меджика получит статус «недействителен» с причиной от WB.
- Заменить ключ в Меджике: вставьте новый на экране импорта — старый перезаписывается.
- Удалить зашифрованную копию у нас без замены: отдельной кнопки в кабинете пока нет — напишите на hello@get-magic.ru, удалим вручную и подтвердим письмом.
Частые вопросы
Увидит ли WB, что ключом пользуется сторонний сервис?
Запросы идут с нашего сервера; для WB это выглядит как любая интеграция. Ключ с именем «Мой сайт» вы всегда узнаете в списке.
Что будет, если у вас утечёт база?
В копии базы ключи лежат шифротекстом. Без ключа шифрования, который в базе не хранится, они бесполезны — схема хранения проектировалась ровно под этот сценарий.
Кто из вашей команды может прочитать мой ключ?
Никто. Интерфейса для этого нет, и внутреннее правило запрещает его делать.
Нужен ли ключ, чтобы сайт работал?
Нет. Он нужен, чтобы загрузить каталог и обновлять цены и остатки. Без ключа сайт работает на последней копии; обновить каталог можно и таблицей.
Я поменял цены на WB — что делать?
Нажать «Обновить цены и остатки» в кабинете или дождаться обновления по расписанию. Поля, которые вы правили руками на сайте, обновление не трогает.