MAX официально перевёл публикацию ботов и мини-приложений в бизнес-режим
Павел

С августа MAX официально перевёл публикацию ботов и мини-приложений в бизнес-режим: подключаться к платформе, создавать и выводить в прод можно только через верифицированные организации — юрлица РФ. ИП, самозанятые, физлица и нерезиденты сейчас не допускаются. Параллельно API переехал на platform-api.max.ru, а токен теперь передаётся исключительно в заголовке Authorization.
В статье — что именно поменялось, как пройти модерацию и не завалиться на комплаенсе.
Доступ только для юрлиц РФ. «Подключение к платформе MAX для бизнеса, создание и настройка чат-ботов и мини-приложений пока доступны для ограниченного списка юридических лиц… организация должна быть зарегистрирована в РФ… ИП, самозанятые, физические лица и нерезиденты пока не могут авторизоваться или зарегистрироваться». Док: https://dev.max.ru/docs/maxbusiness/connection
Создать бота можно только из верифицированной организации. «Вы можете создать чат-бот, только если у вас есть верифицированный профиль организации, созданный для юридического лица, зарегистрированного в РФ». Док: https://dev.max.ru/docs/maxbusiness/connection
API: миграция и правила авторизации. «Передача токена через 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 для бизнеса (лучше с корпоративной почтой): 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
Ключевые изменения:
Базовый домен: 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 (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)'));
Подключаем 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
Профиль организации создан и верифицирован (юрлицо РФ).
Бот создан из профиля организации; карточка заполнена по требованиям.
API: используете https://platform-api.max.ru и заголовок Authorization.
Выбран один канал уведомлений (Webhook или Long Polling).
Мини-приложение на HTTPS, Bridge подключён; WebApp.ready() и BackButton работают.
Реализована валидация initData.
В интерфейсе видны: Соглашение, Политика, юр.сведения, контакты поддержки.
Самоаудит контента/безопасности (нет запрещённого; корректная обработка ошибок/разрешений).
Акции/конкурсы — только после отдельного согласования (см. Правила).
Можно ли физлицу создать бота? По текущей доке — нет: доступ только для верифицированных юрлиц РФ; ИП/самозанятые/физлица/нерезиденты сейчас не могут авторизоваться или зарегистрироваться. Док: 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