Telegram Mini App для кафе и магазина: как устроено и зачем

Разбираю, что такое мини-приложение в Telegram, как оно технически устроено, что даёт кафе и магазину и о чём стоит подумать в 2026 году, когда Telegram в России работает с перебоями.

Содержание
  1. Чем Mini App отличается от бота и сайта
  2. Как Mini App открывается
  3. Как это устроено технически
  4. Оплата
  5. Зачем это кафе и магазину
  6. Что учесть в 2026 году
  7. Как это выглядит вживую
  8. Частые вопросы
  9. С чего начать

Mini App — это веб-приложение, которое открывается прямо внутри Telegram. Гость кафе нажимает кнопку в боте, видит меню с фотографиями, собирает заказ и выбирает время самовывоза. Ему не нужно ставить приложение, регистрироваться и вводить телефон — он уже в мессенджере.

Для бизнеса это способ сделать «своё приложение» без публикации в магазинах приложений. Ниже — как это устроено, зачем это кафе и магазину и где подводные камни.

Чем Mini App отличается от бота и сайта

Обычный бот общается сообщениями и кнопками. Для записи или анкеты этого достаточно, но меню на 40 позиций с модификаторами в чате превращается в бесконечную ленту.

Сайт даёт полную свободу, но гостя туда нужно привести, а потом ещё и вернуть: заказ, статус, повторная покупка — всё через почту или SMS.

Mini App — это сайт, который живёт внутри бота. Интерфейс как у приложения, а уведомления, статус заказа и повторные покупки — через чат с ботом, который у гостя уже есть.

Как Mini App открывается

Telegram поддерживает несколько способов запуска. Для кафе и магазина полезны четыре:

  • кнопка меню в чате с ботом — постоянная точка входа, например «Меню»;
  • кнопка под сообщением — «Открыть каталог» в приветствии или в рассылке;
  • главное мини-приложение — кнопка запуска в профиле бота и ссылка вида https://t.me/имя_бота?startapp;
  • прямая ссылка вида https://t.me/имя_бота/имя_приложения — её удобно ставить в QR-код на столике или кассе.

В ссылке можно передать параметр startapp, например номер стола или точки. Он придёт в мини-приложение, и оно сразу откроется в нужном состоянии.

Как это устроено технически

Фронтенд

Это обычная веб-страница на HTML, CSS и JavaScript — на чистом JS или на любом фреймворке. Чтобы связать её с Telegram, подключают скрипт telegram-web-app.js. После этого доступен объект Telegram.WebApp, через который приложение:

  • получает тему пользователя — светлую или тёмную и цвета — и подстраивается под неё;
  • управляет нативными кнопками: главной кнопкой внизу экрана (MainButton) и кнопкой «Назад» в шапке;
  • включает вибрацию при нажатиях (HapticFeedback);
  • учитывает безопасные зоны экрана в полноэкранном режиме;
  • получает данные пользователя в поле initData.

Бэкенд и проверка initData

Главное правило: данным из браузера доверять нельзя. В initData приходят идентификатор пользователя, имя и подпись. Сервер обязан проверить подпись, прежде чем принимать заказ. Документация Telegram описывает алгоритм: из токена бота и строки WebAppData получают секретный ключ, затем считают HMAC-SHA-256 от отсортированных полей и сравнивают с переданным hash.

На Python это выглядит примерно так:

import hmac, hashlib, time
from urllib.parse import parse_qsl

def check_init_data(init_data: str, bot_token: str, max_age: int = 3600) -> dict | None:
    fields = dict(parse_qsl(init_data, keep_blank_values=True))
    received_hash = fields.pop("hash", "")
    data_check_string = "\n".join(f"{k}={v}" for k, v in sorted(fields.items()))
    secret = hmac.new(b"WebAppData", bot_token.encode(), hashlib.sha256).digest()
    calc = hmac.new(secret, data_check_string.encode(), hashlib.sha256).hexdigest()
    if not hmac.compare_digest(calc, received_hash):
        return None                      # подпись не сошлась — запрос не от Telegram
    if time.time() - int(fields.get("auth_date", 0)) > max_age:
        return None                      # данные устарели
    return fields

Второе правило вытекает из первого: цену считает сервер. Фронтенд присылает только состав заказа — позиции и опции, — а сумму бэкенд считает по своему прайсу. Иначе кто-нибудь обязательно попробует купить капучино за рубль.

Связь с ботом

После оформления заказа бэкенд через Bot API отправляет гостю сообщение: «Заказ №… принят». Дальше бот присылает статусы — «готовится», «готов» — а сотрудникам уходит уведомление в рабочий чат с кнопками смены статуса. Мини-приложение и бот — две половины одной системы.

Оплата

Здесь два разных случая, и путать их нельзя.

  • Физические товары и услуги — кофе, еда, товары с доставкой — оплачиваются через сторонних платёжных провайдеров. В России это, например, ЮKassa: провайдер подключается через @BotFather, бот выставляет счёт, а мини-приложение может открыть его методом openInvoice.
  • Цифровые товары и услуги внутри Telegram — подписки, внутриигровые предметы, доступ к контенту — по правилам Telegram оплачиваются только в Telegram Stars.

Для кафе актуален первый вариант. Можно обойтись и без оплаты в приложении — «оплата при получении» для самовывоза часто проще и для гостя, и для кассы. И отдельно не забудьте про онлайн-кассу и чеки по 54-ФЗ, если деньги принимаются онлайн: это вопрос к вашей кассе и платёжному сервису, а не к Telegram.

Зачем это кафе и магазину

Предзаказ и самовывоз. Гость заказывает по дороге и выбирает время, бариста видит заказ заранее. Меньше очереди у кассы в часы пик.

Меню, которое легко обновлять. Стоп-лист, сезонные напитки, цены — всё меняется в админке без перепечатки и правок в агрегаторах.

Своя программа лояльности. Карта «каждый шестой кофе бесплатно» живёт в том же приложении, а не в отдельной картонке, которая теряется.

Повторные покупки. У гостя остаётся чат с ботом. Через него можно напомнить о себе — аккуратно и по делу, а не спамом.

Свой канал продаж. В отличие от агрегаторов, база клиентов и история заказов остаются у вас.

Чего Mini App не даст сам по себе: трафика. Его всё равно нужно приводить — QR-кодами в зале, ссылкой в соцсетях, на сайте и в картах.

Что учесть в 2026 году

Это нельзя обойти стороной. С августа 2025 года Роскомнадзор ограничивает звонки в Telegram, а с февраля 2026 года объявил о «последовательных ограничениях» работы мессенджера. Пользователи по всей стране жалуются на медленную загрузку медиа и перебои с сообщениями. На момент публикации, в начале ноября 2026 года, официального решения о полной блокировке с конкретной датой нет, но работа мессенджера в России нестабильна.

Что это значит для бизнеса: строить продажи только на Telegram рискованно. Хорошая новость в том, что Mini App — это веб-приложение, и его можно сделать независимым от одной платформы:

  • общий бэкенд — меню, заказы, лояльность и админка не привязаны к мессенджеру;
  • тот же интерфейс в MAX. В MAX тоже есть мини-приложения, которые открываются из бота кнопкой open_app. Отличаются способ запуска и проверка данных пользователя, а меню, корзина и заказы остаются общими;
  • версия в обычном браузере — та же страница по прямой ссылке для гостей без мессенджера.

Как подключить бота в MAX, я подробно разобрал в отдельной статье — «Бот в MAX для бизнеса».

Как это выглядит вживую

Я сделал демо-проект «Зерно и Пар» — Telegram-бота кофейни с мини-приложением. Кофейня вымышлена, оплата ненастоящая, заказ никто не готовит, но всё работает, и заказ можно оформить самому:

  • меню из 16 позиций в четырёх разделах, светлая и тёмная тема;
  • настройка напитка — объём, молоко, сиропы, дополнительный шот — с пересчётом цены на лету;
  • корзина, слоты самовывоза каждые 10 минут и комментарий к заказу;
  • нативные кнопки Telegram и вибрация;
  • проверка подписи initData на сервере, цену считает бэкенд;
  • статусы заказа в чат, чек заказа в PDF и карта лояльности.

Мини-приложение открывается и в обычном браузере — именно так, как описано выше: интерфейс один, а точки входа разные.

Частые вопросы

Сколько стоит Mini App?

Зависит от объёма. По открытым прайсам студий и разработчиков простое мини-приложение начинается примерно от 100 тысяч рублей, а сложные проекты с каталогом на сотни товаров, личным кабинетом и интеграциями с учётной системой стоят в разы дороже. Подробнее о том, что влияет на цену, — в статье про стоимость ботов: логика расчёта для Telegram и MAX одна и та же.

Нужно ли гостю что-то устанавливать?

Нет. Mini App открывается внутри Telegram, как вкладка. Гостю нужен только сам мессенджер, а для браузерной версии — даже он не нужен.

Можно ли подключить кассу или учётную систему?

Да, через бэкенд. Заказ из мини-приложения можно передавать в учётную систему, CRM или таблицу так же, как заказы с сайта. Всё зависит от того, есть ли у системы API.

Чем Mini App лучше обычного сайта с корзиной?

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

С чего начать

  1. Опишите, что гость должен сделать за минуту: выбрать, настроить, указать время, подтвердить.
  2. Решите, где хранится меню и кто его обновляет.
  3. Определитесь с оплатой: онлайн через провайдера или при получении.
  4. Продумайте уведомления для персонала: куда приходит заказ и как меняется статус.
  5. Сразу закладывайте второй канал — MAX или браузерную версию, — чтобы не зависеть от одной платформы.

Если хотите обсудить мини-приложение для своего кафе или магазина, напишите мне — покажу демо и прикину объём работ под вашу задачу.

Посмотреть вживую

Мои демо-проекты по теме статьи. Они работают, их можно открыть и потрогать. Это демонстрации, а не работы для клиентов.