Актуальность: 24 сентября 2025.
С августа MAX официально перевёл публикацию ботов и мини-приложений в бизнес-режим: подключаться к платформе, создавать и выводить в прод можно только через верифицированные организации — юрлица РФ. ИП, самозанятые, физлица и нерезиденты сейчас не допускаются. Узнали мы об этом совсем недавно, после уведомления о деактивации наших ботов и отправке запросов в поддержку MAX по email. Параллельно API переехал на platform-api.max.ru
, а токен теперь передаётся исключительно в заголовке Authorization
.
В статье — что именно поменялось, как пройти модерацию и не завалиться на комплаенсе.
Что именно изменилось: официальные формулировки
Доступ только для юрлиц РФ. «Подключение к платформе MAX для бизнеса, создание и настройка чат-ботов и мини-приложений пока доступны для ограниченного списка юридических лиц… организация должна быть зарегистрирована в РФ… ИП, самозанятые, физические лица и нерезиденты пока не могут авторизоваться или зарегистрироваться».
Док: https://dev.max.ru/docs/maxbusiness/connectionСоздать бота можно только из верифицированной организации. «Вы можете создать чат-бот, только если у вас есть верифицированный профиль организации, созданный для юридического лица, зарегистрированного в РФ».
Док: https://dev.max.ru/docs/maxbusiness/connectionAPI: миграция и правила авторизации. «Передача токена через query-параметры больше не поддерживается — используйте заголовок
Authorization: <token>
… Если вы отправляете запросы на доменbotapi.max.ru
, перейдите на новый доменplatform-api.max.ru
до 1 октября».
Док: https://dev.max.ru/docs/chatbots/bots-coding/prepareПравила и Требования (договор, модерация, ограничения по контенту/функциональности) — без них размещения не будет.
Док: https://dev.max.ru/docs/legal/rules • https://dev.max.ru/docs/legal/requirements
Онбординг: как теперь запустить бота (пошагово)
Вход в MAX для бизнеса (лучше с корпоративной почтой, пока что не работает для обычных пользователей, дальнейшие шаги можно повторить написав на официальную почту max: partner@max.ru): https://dev.max.ru/docs/maxbusiness/connection
Профиль организации (юрлицо РФ) и верификация. Если профиля нет — вводите ИНН или пишите на business_support@max.ru. Верификацию может пройти руководитель или представитель с правом первой/единственной подписи. Срок — до 48 часов по рабочим дням.
Док: https://dev.max.ru/docs/maxbusiness/connectionСоздание чат-бота в верифицированной организации → заполнение карточки → модерация. После одобрения бот появляется в поиске MAX, а платформа генерирует токен.
Док: https://dev.max.ru/docs/maxbusiness/connectionПодключение мини-приложения (HTTPS-URL) в кабинете организации.
Доки: обзор — https://dev.max.ru/docs/webapps/introduction • Bridge — https://dev.max.ru/docs/webapps/bridge • валидация — https://dev.max.ru/docs/webapps/validation
Карточка бота: требования к полям (что чаще всего «падает» на модерации)
Название — 1–59 символов; латиница/кириллица/цифры; эмодзи запрещены.
Ник — 11–60 символов; начинается со строчной буквы; допустимы латиница, цифры и ; обязательно заканчивается на
bot
илиbot
; изменить нельзя (если не указать окончание — система добавит_bot
).Сайт — обязателен;
https://
; ≤1024 символов; допустимы латиница, цифры, точка, дефис; без пробелов.Логотип — 500×500 px; ≤5 МБ; JPG/PNG; соотношение 1:1.
Описание — до 200 символов.
Док: https://dev.max.ru/docs/maxbusiness/connection
Статусы модерации: «На модерации» → «Готов к публикации» → «Требует исправлений» (в карточке покажут причину). Срок проверки — до 48 часов по рабочим дням.
Док: https://dev.max.ru/docs/maxbusiness/connection
Что поменялось в API и как мигрировать за вечер
Ключевые изменения:
Базовый домен:
https://platform-api.max.ru
(вместоbotapi.max.ru
).Токен: только в заголовке
Authorization: <token>
(query больше не работает).Одновременно активен один тип уведомлений: Webhook или Long Polling.
«Кто я?» (минимальный чекап)
GET /me HTTP/1.1
Host: platform-api.max.ru
Authorization: <token>
Подписки на события (Webhook / Long Polling)
Подключить Webhook:
POST /subscriptions
(укажите HTTPS-URL вебхука).Проверить Webhook:
GET /subscriptions
.Получать события через LP:
GET /updates
.
Док: https://dev.max.ru/docs/chatbots/bots-coding/prepare • https://dev.max.ru/docs-api
Примеры кода (JS/TS и Python)
JS/TS (Fetch API) — базовый вызов и отправка сообщения
const API = 'https://platform-api.max.ru';
const TOKEN = process.env.MAX_BOT_TOKEN!;
async function whoAmI() {
const res = await fetch(`${API}/me`, { headers: { Authorization: TOKEN } });
if (!res.ok) throw new Error(`ME ${res.status}`);
return res.json();
}
async function sendMessage(chatId: string, text: string) {
const res = await fetch(`${API}/messages`, {
method: 'POST',
headers: {
Authorization: TOKEN,
'Content-Type': 'application/json',
},
body: JSON.stringify({ chat_id: chatId, text }),
});
if (!res.ok) throw new Error(`MSG ${res.status}`);
return res.json();
}
Python (requests) — подписка на Webhook
import os, requests
API = "https://platform-api.max.ru"
TOKEN = os.environ["MAX_BOT_TOKEN"]
WEBHOOK_URL = "https://example.com/max-webhook"
r = requests.post(f"{API}/subscriptions",
headers={"Authorization": TOKEN, "Content-Type": "application/json"},
json={"url": WEBHOOK_URL})
r.raise_for_status()
print("Webhook set:", r.json())
Node.js — обработчик Webhook
import express from 'express';
const app = express();
app.use(express.json());
app.post('/max-webhook', (req, res) => {
const update = req.body; // события MAX в JSON
// TODO: обработайте тип (message_new, callback и т.д.)
console.log('MAX update:', update);
res.sendStatus(200);
});
app.listen(3000, () => console.log('Webhook on :3000 (HTTPS in prod)'));
Мини-приложения: UX-паттерны и безопасный старт
Подключаем Bridge и базовые сценарии
<script src="https://st.max.ru/js/max-web-app.js"></script>
<script>
WebApp.ready(); // экран отрисован — убирает «скелетон»
WebApp.BackButton.show(); // системная «Назад»
WebApp.BackButton.onClick(() => WebApp.close());
// WebApp.openLink('https://your-site.tld'); // внешняя ссылка
</script>
Док: https://dev.max.ru/docs/webapps/bridge
Валидация initData (must-have)
Алгоритм (из доков):
URL-decode исходной строки;
собрать пары
{key}={value}
(кромеhash
), отсортировать по ключам, склеить\n
;secret = HMAC_SHA256("WebAppData" + BotToken)
;signature = HMAC_SHA256(secret, data_check_string)
и сравнить сhash
.
Док: https://dev.max.ru/docs/webapps/validation
Комплаенс и модерация: что проверяют
Правовой статус и договор. Размещение — только по лицензионному договору; разработчик — юридическое лицо.
Док: https://dev.max.ru/docs/legal/rulesКонтент и функциональность. Запреты: насилие, наркотики, обман/злоупотребление доверием, вредоносный код, запрещённые товары/услуги и т.п. Требуется реакция на жалобы, удаление незаконного UGC, безопасность.
Док: https://dev.max.ru/docs/legal/requirementsЮридические страницы — в интерфейсе. В самом боте/мини-приложении должны быть: «Пользовательское соглашение», «Политика конфиденциальности», сведения о правообладателе/операторе (название, адрес, реквизиты, контакты) и канал поддержки. Шаблоны:
• Соглашение — https://dev.max.ru/docs/legal/agreement
• Политика — https://dev.max.ru/docs/legal/privacy
Причины отказов и как их чинить
Частая причина | Как исправить |
---|---|
Ник короче 11 символов / нет суффикса | Переименуйте до отправки: 11–60 символов, |
В названии эмодзи | Уберите эмодзи, оставьте 1–59 символов (латиница/кириллица/цифры) |
Нет сайта или не | Добавьте валидный |
Нет юридических страниц в интерфейсе | Вынесите «Соглашение», «Политику», реквизиты и контакты в видимое место |
Токен передаётся в query / используется | Перейдите на заголовок |
В мини-приложении нет валидации | Реализуйте HMAC-валидацию по докам |
Источники требований к карточке/модерации: https://dev.max.ru/docs/maxbusiness/connection
API-часть: https://dev.max.ru/docs/chatbots/bots-coding/prepare • https://dev.max.ru/docs-api
Чек-лист перед модерацией
Профиль организации создан и верифицирован (юрлицо РФ).
Бот создан из профиля организации либо доступ предоставлен через официальную почту partner@max.ru; карточка заполнена по требованиям.
API: используете
https://platform-api.max.ru
и заголовокAuthorization
.Выбран один канал уведомлений (Webhook или Long Polling).
Мини-приложение на HTTPS, Bridge подключён;
WebApp.ready()
и BackButton работают.Реализована валидация initData.
В интерфейсе видны: Соглашение, Политика, юр.сведения, контакты поддержки.
Самоаудит контента/безопасности (нет запрещённого; корректная обработка ошибок/разрешений).
Акции/конкурсы — только после отдельного согласования (см. Правила).
FAQ (коротко)
Можно ли физлицу создать бота?
По текущей доке — нет: доступ только для верифицированных юрлиц РФ; ИП/самозанятые/физлица/нерезиденты сейчас не могут авторизоваться или зарегистрироваться.
Док: https://dev.max.ru/docs/maxbusiness/connection
Когда появляется токен?
После успешной модерации бота (статус «Готов к публикации»).
Док: https://dev.max.ru/docs/maxbusiness/connection
Где включать мини-приложение?
В кабинете организации: «Чат-бот и мини-приложение → Настроить → URL». Требуется https://
, ≤1024 символов, валидный URL.
Док: https://dev.max.ru/docs/webapps/introduction