РелизРазбор · На радарHabr AI→ оригинал

Разработчик запустил платного ИИ-бота в MAX и решил проблему минуса через холд на баланс

Цена запроса к нейросети заранее неизвестна, и наивная схема «проверил баланс — отправил — списал» уводит кошелёк в минус при двух параллельных запросах. Автор бота «Спроси ИИ» в MAX решил это резервом средств до вызова модели и списанием по факту. Заодно пришлось разобраться с чеками самозанятого, налоговыми нюансами и уведомлением Роскомнадзора.

AI-обработка оригинала Habr AI; редакция Hamidun News
Разработчик запустил платного ИИ-бота в MAX и решил проблему минуса через холд на баланс
Источник: Habr AI. Коллаж: Hamidun News.
Слушать статью
Паспорт материала и цифры
ПараметрДанные
ПервоисточникHabr AI ↗
Главный редактор
Ключевой факт #1Холд в одном UPDATE с проверкой баланса исключает гонки
Ключевой факт #2Робочеки СМЗ сами отправляют чеки в «Мой налог»
Ключевой факт #3Вебхук MAX нужно отвечать за 30 секунд, остальное в очередь

Код платного ИИ-бота в мессенджере — самая простая часть работы. Так считает автор бота «Спроси ИИ» в MAX, где можно задать вопрос ChatGPT или Gemini и нарисовать картинку в Nano Banana. Платить можно российской картой или по СБП. Сложности начались с денег, чеков и законов, и именно о них стоит знать каждому, кто задумал платного бота.

Почему MAX и что проверить до кода

MAX предустановлен на смартфонах, которые продаются в России, а ИИ-ботов в нём пока мало, так что ниша не перегрета, как в Telegram. С июня 2026 года у мессенджера есть партнёрская платформа для самозанятых: регистрация на business.max.ru, подтверждение через Госуслуги, до двух ботов на человека, модерация карточки до 48 часов. Боты доступны только резидентам РФ — самозанятым, ИП и юрлицам. Это стоит проверить раньше, чем писать код.

У Bot API есть особенности, о которых лучше знать заранее. Встроенных платежей вроде Telegram Stars нет, деньги принимают по ссылке на внешнюю платёжку. Сертификат API выпущен на корневом сертификате Минцифры, его нужно добавить в доверенные на сервере. Токен передаётся в заголовке Authorization без префикса Bearer. Вебхук работает только по HTTPS на порту 443 и должен ответить 200 за 30 секунд, поэтому запрос к нейросети уходит в фоновую очередь. Если вебхук восемь часов подряд отвечает с ошибкой, MAX отписывает бота сам, так что без мониторинга можно проснуться с мёртвым ботом.

Биллинг: резерв вместо надежды

Главная инженерная задача — не уйти в минус. Сколько токенов модель напишет в ответ, не знает никто. Схема «проверил баланс, отправил запрос, списал» ломается сразу: у пользователя 100 кредитов, он шлёт два тяжёлых запроса с телефона и ноутбука, оба проходят проверку, и баланс уходит в минус. Платит за него владелец бота.

Поэтому каждый запрос проходит четыре шага:

  1. Оценка сверху. Входные токены считаются через API вендоров (у OpenAI есть эндпоинт подсчёта, у Gemini — countTokens), выход ограничен параметром max_output_tokens. Рассуждения модели входят в тот же лимит. Получается верхняя граница цены, которую пользователь видит до отправки.
  2. Холд. Сумма резервируется одной транзакцией в PostgreSQL, а условие баланса стоит прямо в UPDATE. База блокирует строку кошелька, и второй запрос перепроверяет условие уже с учётом первого холда. Ключ идемпотентности — ID апдейта от MAX, поэтому повторная доставка вебхука второй холд не создаст. Число одновременных запросов ограничено двумя.
  3. Списание по факту. После ответа берётся реальный расход из usage, списывается меньшее из факта и холда, остаток возвращается.
  4. Уборка. Если процесс упал, холд освобождает фоновая задача по TTL. Таймаут запроса к вендору должен быть короче TTL, иначе холд снимется, пока модель ещё отвечает.

Все движения денег пишутся в append-only журнал, баланс можно пересобрать. Гонки автор проверял на настоящем PostgreSQL, а не на моках.

Отдельно про модели: у каждого семейства три уровня, потому что старшая модель OpenAI дороже младшей в 20 раз. Если дать всем флагман, простое «переведи абзац» будет стоить как разбор договора.

Чеки и закон

Самозанятых ждёт сюрприз: с 29 декабря 2025 года ЮKassa перестала отправлять их чеки в «Мой налог». Пробивать вручную нельзя, чек нужен в момент расчёта по закону о НПД. Автор выбрал Robokassa с сервисом «Робочеки СМЗ»: чеки уходят сами и бесплатно, есть оплата по ссылке и серверное уведомление ResultURL. Комиссия на тарифе «Стартовый» — 3,9% за карту и 2,7% за СБП. Обработчик ResultURL должен быть идемпотентным по номеру счёта, иначе повторное уведомление зачислит платёж дважды. Возврат остатка автоматизирован через API Robokassa с аннулированием чека.

По закону прямого запрета на такой сервис нет, но обязательных условий много. Автор оговаривается, что не юрист. Часто пропускают уведомление в Роскомнадзор: с 30 мая 2025 года гражданину грозит штраф 5–10 тысяч рублей. В оферте стоит запретить загружать чужие фото без согласия, потому что их принесут в первый же день.

Что делать

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

Сюжет

Вопросы и ответы по материалу

Что известно по теме: почему MAX и что проверить до кода?

MAX предустановлен на смартфонах, которые продаются в России, а ИИ-ботов в нём пока мало, так что ниша не перегрета, как в Telegram. С июня 2026 года у мессенджера есть партнёрская платформа для самозанятых: регистрация на business.max.ru, подтверждение через Госуслуги, до двух ботов на человека, модерация карточки до 48 часов. Боты доступны только резидентам РФ — самозанятым, ИП и юрлицам. Это стоит проверить раньше, чем писать код. У Bot API есть особенности, о которых лучше знать заранее.

Что известно по теме: биллинг: резерв вместо надежды?

Главная инженерная задача — не уйти в минус. Сколько токенов модель напишет в ответ, не знает никто. Схема «проверил баланс, отправил запрос, списал» ломается сразу: у пользователя 100 кредитов, он шлёт два тяжёлых запроса с телефона и ноутбука, оба проходят проверку, и баланс уходит в минус. Платит за него владелец бота. Поэтому каждый запрос проходит четыре шага: Оценка сверху.

Что известно по теме: чеки и закон?

Самозанятых ждёт сюрприз: с 29 декабря 2025 года ЮKassa перестала отправлять их чеки в «Мой налог». Пробивать вручную нельзя, чек нужен в момент расчёта по закону о НПД. Автор выбрал Robokassa с сервисом «Робочеки СМЗ»: чеки уходят сами и бесплатно, есть оплата по ссылке и серверное уведомление ResultURL. Комиссия на тарифе «Стартовый» — 3,9% за карту и 2,7% за СБП. Обработчик ResultURL должен быть идемпотентным по номеру счёта, иначе повторное уведомление зачислит платёж дважды.

ЖХ
Жемал Хамидун — CPO Alpina Digital, продакт-менеджер AlpinaGPT. Делает AI-продукты с 2019 года. Hamidun News — pet project, который вырос в production-агрегатор с 6000+ читателей.
✦ Единое AI-пространство · Nomad

Протестируйте новые LLM и мультимодальные модели в одном окне

Платформа Nomad AI (nomadnet.ai) даёт прямой доступ к Claude Opus 5.5, GPT-6, Gemini 3.1, DeepSeek и автономным агентам без VPN, зарубежных карт и зоопарка подписок.

Открыть Nomad AI →Автономный Nomad Agent
Что вы думаете?
Загружаем комментарии…