Запрос "телеграм бот с оплатой" обычно означает не одну кнопку, а весь платежный контур: оффер в сообщении, понятная сумма, ссылка или invoice, подтверждение от провайдера, запись заказа в CRM и сценарий после оплаты. Если пропустить хотя бы один слой, клиент может заплатить, но не получить доступ, а менеджер не увидит покупку в карточке контакта.

Короткий вывод: для простого цифрового сценария внутри Telegram смотрите Bot API и Stars, для курсов, консультаций, магазинов и российских платежек чаще нужен внешний checkout с вебхуком. В Strelo этот маршрут собирается как часть воронки: бот создает заказ, отправляет ссылку, ждет подтверждение, фиксирует покупку у контакта и запускает следующий шаг без ручного контроля.

Вердикт: в Telegram можно принимать оплату нативно через Bot API или через внешний checkout. Для бизнеса критичнее второе звено: заказ должен получить статус, контакт должен быть найден, покупка должна попасть в CRM, а вебхук не должен задвоить выручку.
Для кого

Кому нужен бот с оплатой

Онлайн-школа

Принимает оплату за курс, вебинар или тариф, выдает доступ после подтверждения и видит покупку в карточке ученика.

Эксперт и консультации

Продает консультации, диагностики и закрытые материалы без ручной переписки после каждого платежа.

Telegram-магазин

Показывает товар, собирает заказ, отправляет платежную ссылку и не теряет статус оплаты между ботом и менеджером.

Карта выбора

Какой платежный маршрут брать

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

КритерийStreloВнешняя ссылкаСвой Bot API слой
Когда подходитКурсы, услуги, консультации, магазины и Telegram-first воронки с CRMРазовый платеж без сложного сценария после оплатыКоманда готова поддерживать код, webhooks, ошибки и платежные статусы
Что происходит после оплатыПокупка пишется к контакту, дальше запускается нужная веткаЧаще нужен отдельный ручной или webhook-процессВсе зависит от качества реализации команды
Главный рискНужно заранее настроить товары, интеграцию и тексты поддержкиОплата прошла, а бот не понял статусДубли заказов, таймауты и спорные возвраты без мониторинга
Что проверять перед запускомWebhook, pending, paid, доступ, CRM, повторная попыткаСсылку, страницу успеха и ручную сверкуВсе edge cases Bot API и провайдера
Если задача коммерческая, начинайте не с кнопки оплаты, а с ответа: где будет жить заказ и кто автоматически сработает после подтверждения платежа.

Короткий ответ: два маршрута оплаты

Если вы продаете цифровой товар внутри Telegram-приложения, смотрите в сторону Telegram Stars и Bot API. Если продаете физические товары, услуги, консультации, курсы или работаете через свой эквайринг, чаще понадобится внешний checkout с вебхуком.

Оба маршрута могут выглядеть одинаково для клиента: он видит сообщение, сумму и кнопку. Разница начинается после клика. Нативный Telegram Payments требует обработать invoice, pre-checkout и successful payment внутри бота. Внешний checkout требует создать заказ, сохранить внешний ID, отправить ссылку, принять вебхук и аккуратно перевести заказ из ожидания в оплату.

Матрица выбора

Два маршрута оплаты в Telegram-боте

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

КритерийМаршрутЧто видит пользовательЧто нужно бизнесу
Telegram PaymentsInvoice внутри TelegramКнопка оплаты в сообщенииОбработка pre_checkout и successful_payment
Telegram StarsПлатеж в XTR для digital goodsОплата без ввода карты внутри TelegramСохранить charge id и выдать цифровой товар
Внешний checkoutСсылка на оплату из сообщенияПереход в платежную форму провайдераВебхук, статус заказа и запись в CRM
Если у вас уже есть эквайринг, юридические документы и внешний кабинет, внешний checkout обычно проще вписать в бизнес-процесс. Если строите чистый bot-native digital товар, изучайте Telegram Stars.

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

Сообщение в боте: оффер, сумма, кнопка
Платежный слой: invoice или payment_url
Событие: pre_checkout, successful_payment или webhook
CRM-слой: contact, order, purchase, status
Post-payment: доступ, тег, рассылка, оператор
Оплата в боте надежна только тогда, когда каждый слой знает свое состояние.

Telegram Payments: что реально дает Bot API

Telegram Bot API умеет отправлять invoice-сообщение методом sendInvoice. В таком сообщении есть описание товара, сумма и кнопка оплаты. Пользователь оплачивает внутри Telegram, а бот получает события, по которым должен подтвердить и завершить заказ.

Для физических товаров и услуг Telegram Payments работает через платежных провайдеров. Telegram в документации пишет, что не собирает платежные данные и не берет комиссию за Bot Payments для физических товаров и услуг. Но это не отменяет комиссии и правил самого провайдера, налоговой логики, чеков, возвратов и поддержки.

Bot API

Какие события Telegram Payments нужно обработать

Invoice - это начало, а не вся платежная логика.

КритерийСущностьРольОперационный риск
sendInvoiceМетод Bot APIОтправляет счет в чатНеверная сумма или payload ломают учет
pre_checkout_queryUpdate перед списаниемФинальная проверка заказаБез своевременного ответа платеж не завершится
successful_paymentСобытие после оплатыМомент записи покупки и выдачи доступаЕсли не сохранить charge id, сложно разбирать возвраты
В статье мы объясняем Bot API, но не заявляем native sendInvoice как готовую функцию Strelo. Strelo закрывает учет, вебхуки и post-payment воронку.

Ключевая точка - pre_checkout_query. Telegram отправляет ее перед завершением оплаты, а бот должен ответить через answerPreCheckoutQuery. В этом месте проверяют, доступен ли товар, не изменилась ли цена, можно ли продать этот оффер конкретному пользователю. Если бот молчит или отвечает поздно, платеж не завершается.

После успешной оплаты приходит successful_payment. Это не просто красивое событие для статистики. В нем нужно сохранить сумму, валюту, payload, telegram_payment_charge_id и provider_payment_charge_id. Эти данные пригодятся для сверки, поддержки, возвратов и разбора спорных случаев.

Нативная оплата

Как проходит платеж через Telegram Bot API

  1. Бот отправляет invoice

    Сообщение содержит товар, сумму, валюту, payload и кнопку оплаты. Для Stars используется валюта XTR.

  2. Telegram присылает pre_checkout_query

    Бот подтверждает или отменяет платеж. Здесь проверяют цену, доступность товара и право пользователя купить.

  3. Пользователь оплачивает

    После оплаты бот получает successful_payment и сохраняет сумму, валюту, payload и charge id.

  4. Система выдает товар

    Только после подтверждения запускаются доступ, теги, онбординг, поддержка и аналитика выручки.

Telegram Stars: когда это отдельный маршрут

Digital goods and services внутри Telegram apps Telegram направляет в сторону Stars. Для таких платежей используется валюта XTR. В документации Telegram описан процесс: отправить invoice через sendInvoice, дождаться pre_checkout_query, подтвердить или отменить заказ, дождаться successful_payment, сохранить telegram_payment_charge_id и выдать товар или услугу.

Это удобно для цифровых товаров, но не заменяет весь учет продаж. Даже когда деньги проходят через Stars, вам все равно нужен ответ на операционные вопросы: что именно купил человек, какой доступ выдан, кому писать при споре, как увидеть выручку, как не выдать доступ дважды.

Telegram Stars

Когда Stars действительно уместны

Digital goods внутри Telegram

Файл, доступ, внутренняя услуга или цифровой контент, который покупают и получают внутри Telegram-среды.

Валюта XTR

Для digital goods and services Telegram описывает платежи через Stars с валютным тегом XTR.

Поддержка обязательна

Даже у цифровой покупки должны быть понятные правила поддержки, споров и возвратов.

CRM все равно нужна

Stars закрывают оплату, но не заменяют историю контакта, сегменты, выдачу доступа и аналитику.

Если вы продаете доступ к закрытому Telegram-каналу, цифровой файл или внутренний сервис в Telegram, Stars стоит изучать отдельно. Если продаете консультации, курсы с внешним кабинетом, физический товар или работаете с российским эквайрингом, чаще логичнее построить внешний платежный контур и вернуть результат в CRM вебхуком.

Что продаете

Digital goods, услуги и физические товары

Тип товара влияет на платежный маршрут и на требования после оплаты.

КритерийТип продажиЧто выбиратьЧто не забыть
Цифровой товар внутри TelegramФайл, доступ, цифровая услугаTelegram Stars и Bot APIВыдача доступа и поддержка по платежу
Курс или консультацияЧасто есть внешний кабинетCheckout провайдера и вебхукСвязать оплату с контактом и онбордингом
Физический товарНужны доставка, статус и поддержкаПровайдер с нужной юр-логикойНе путать оплату с готовностью заказа
Платежный способ выбирают не по модности, а по тому, кто отвечает за товар, возврат, чек и поддержку.

Внешний checkout: ссылка на оплату и вебхук

Внешний checkout устроен иначе. Бот или платформа создает заказ во внешней системе, получает ссылку на оплату и отправляет ее пользователю. После оплаты провайдер присылает вебхук. Этот вебхук должен быть подписан, разобран и связан с конкретным контактом.

В Strelo этот маршрут описывается через слой коммерции: нода "Заказ" создает заказ через commerce-интеграцию, записывает его в статусе ожидания оплаты и сохраняет payment_url в переменную. Дальше сценарий отправляет эту ссылку человеку. Когда провайдер присылает вебхук, Strelo резолвит контакт, обновляет запись в contact_purchases и запускает событие покупки или заказа.

В Strelo платежный шаг находится внутри Telegram-воронки: заказ, контакт и последующее действие связаны в одном сценарии.
В Strelo платежный шаг находится внутри Telegram-воронки: заказ, контакт и последующее действие связаны в одном сценарии.

Здесь Strelo выигрывает не как native SDK для sendInvoice, а как слой учета и автоматизации вокруг платежа. Заказ попадает в CRM, имеет статус, сумму, валюту, продукт, внешний ID и связь с контактом. Для бизнеса это часто ценнее, чем просто отправить красивую кнопку.

Внешний checkout

Путь заказа со ссылкой на оплату

  1. Сформировать продукт и сумму

    Цена берется из продукта, тарифа или переменной. Сумма не должна зависеть от текста пользователя.

  2. Создать заказ

    Нода Заказ обращается к commerce-интеграции, создает заказ и сохраняет внешний ID.

  3. Отправить payment_url

    Пользователь получает ссылку в сообщении. Текст рядом объясняет, что произойдет после оплаты.

  4. Принять подписанный вебхук

    Провайдер возвращает статус. Strelo обновляет заказ, записывает покупку и запускает нужный триггер.

Как не потерять заказ между кликом и оплатой

Самая частая ошибка - считать заказ оплаченным сразу после клика по кнопке. Клик означает только интерес. Заказ становится оплаченной покупкой после подтверждения от платежного источника: successful_payment в Telegram Payments или подписанный вебхук во внешнем checkout.

Правильная модель статусов выглядит так: заказ создан в pending, ссылка отправлена, провайдер подтвердил оплату, запись стала completed, дальше запускается выдача доступа или follow-up. Возврат, ошибка или отмена не должны запускать ветку покупки.

Не считайте заказ оплаченным после клика по кнопке. Оплата подтверждена только после successful_payment в Bot API или после валидного подписанного вебхука от внешнего провайдера.
  1. 1
    Заказ создан в pending
  2. 2
    Пользователь получил payment_url
  3. 3
    Провайдер прислал signed webhook
  4. 4
    Статус стал completed
  5. 5
    Запущены доступ, тег, рассылка, аналитика
Правильная модель не прыгает сразу в completed. Сначала заказ ожидает подтверждения.

В Strelo contact_purchases использует pending для заказа и completed для оплаченной покупки. Выручка считается только по оплатам. Это честная модель: заказ может быть создан, но человек еще не оплатил. Если смешать эти состояния, аналитика начнет показывать деньги, которых нет.

Статусы

Что делать с разными статусами платежа

Каждый статус должен вести в свою операционную ветку.

КритерийСтатусЧто означаетДействие
pendingЗаказ созданОплаты еще нетМожно напомнить, но не выдавать доступ
completedПлатеж подтвержденЕсть основание записать выручкуВыдать доступ и запустить покупательскую ветку
failedПлатеж не прошелДенег нетПоказать поддержку или повторную оплату
refundedДеньги возвращеныЭто не новая покупкаНе запускать ветку благодарности
Главная ошибка - смешать pending и completed. Тогда аналитика показывает выручку раньше денег.

Идемпотентность: почему один платеж не должен стать двумя

Платежные вебхуки часто приходят повторно. Провайдер может не получить ответ, сеть может оборваться, обработчик может вернуть 500, а система отправит событие еще раз. Это нормально. Ненормально, когда каждый повторный вебхук создает новую покупку, второй раз выдает доступ или дважды запускает серию сообщений.

Нужен стабильный external_order_id. Это ключ, по которому система понимает: событие относится к уже известному заказу. В Strelo повторный вебхук с тем же внешним ID не должен задваивать выручку. При смене статуса заказ обновляется, а пустой повтор не гоняет воронку заново.

signed webhook
,
external_order_id
,
status check
,
one purchase
,
one post-payment flow
Повторная доставка вебхука должна обновить известный заказ, а не создать новую продажу.
Антидубли

Какие ключи подходят для идемпотентности

Стабильный внешний ID важнее красивого payload.

КритерийКлючМожно использоватьРиск
external_order_idДаГлавный ключ заказаНужно сохранять с момента создания
payment_idДаХорош для подтвержденного платежаМожет появиться только после оплаты
contact_id плюс amountНет как главный ключПохоже на заказ, но не уникальноДве одинаковые покупки сольются или задвоятся
timestampНетМеняется при каждом событииПовторный вебхук станет новой покупкой
Если провайдер не дает стабильный ID, создайте свой внешний ID до выдачи ссылки оплаты.

Не используйте timestamp как главный ключ платежа. Два запроса по одному заказу получат разные timestamps и превратятся в две покупки. Не используйте связку "contact id плюс сумма" как единственный ключ: один человек может купить два одинаковых товара. Лучший ключ - внешний ID заказа или платежа, который стабилен у провайдера и сохраняется в вашей системе.

Идемпотентность нужна не только для бухгалтерии. Без нее повторный вебхук может второй раз отправить доступ, скидку, письмо, тег и серию сообщений.

Как собрать платежный сценарий в Strelo

В Strelo платежный сценарий строится не вокруг отдельной кнопки, а вокруг цепочки: продукт, заказ, сообщение со ссылкой, вебхук, покупка, follow-up. Для большинства бизнесов это понятнее, чем писать собственный обработчик Telegram Payments.

Сначала создайте продукт или задайте сумму вручную. Затем добавьте ноду "Заказ", выберите commerce-интеграцию и укажите переменную, куда сохранить ссылку оплаты, например payment_url. После ноды добавьте сообщение: коротко повторите, что покупает человек, сумму, срок действия ссылки и что произойдет после оплаты.

Сборка в Strelo

Как собрать заказ со ссылкой на оплату

  1. Выберите продукт или тариф

    Цена и валюта подтянутся из каталога, либо сумму можно задать переменной сценария.

  2. Выберите commerce-интеграцию

    Для универсального подключения работает HTTP endpoint создания заказа и входящий вебхук.

  3. Сохраните ссылку в переменную

    Нода Заказ сохраняет payment_url, чтобы следующее сообщение отправило ее клиенту.

  4. Отправьте короткое платежное сообщение

    Повторите оффер, сумму, срок и действие после оплаты. Не заставляйте человека угадывать.

Если оплата прошла вне основного сценария, используйте "Учет покупки". Эта нода фиксирует покупку контакта вручную или по логике воронки. Если есть внешний ID заказа, его лучше передать, чтобы повторные события не создавали дубль.

Платеж в Strelo связан с рассылками, сегментами и дальнейшими касаниями, а не живет отдельной ссылкой.
Платеж в Strelo связан с рассылками, сегментами и дальнейшими касаниями, а не живет отдельной ссылкой.

Для внешнего провайдера используйте "Интеграции продаж". Универсальная HTTP-интеграция может создавать заказ через ваш endpoint и принимать входящие вебхуки. Вебхук должен быть подписан: без подписи обработчик обязан отказать до любых действий. Это не формальность, а защита от чужих запросов на поддельную оплату.

Поля заказа

Что обязательно хранить рядом с оплатой

Без этих полей платеж сложно связать с человеком и продуктом.

КритерийПолеЗачем нужноЕсли потерять
contact_id или telegram_idИдентификация покупателяСвязь с карточкой контактаПокупка повиснет без владельца
external_order_idИдемпотентностьНе задваивает вебхукиПовторы станут новыми покупками
amount и currencyФинансовая сверкаВыручка и средний чекНельзя доверять аналитике
product_id или titleЧто купил человекВыдача правильного доступаОператор ищет вручную
Платеж без контекста заказа экономит минуту на старте, но забирает часы в поддержке.

UX сообщения с оплатой

Плохое сообщение выглядит так: "Оплатите здесь". Хорошее сообщение снимает тревогу до клика. Человек должен понять, что он покупает, сколько платит, куда попадет после оплаты и что делать, если ссылка не открылась.

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

UX оплаты

Что должно быть рядом с кнопкой

Что покупает человек

Название продукта или тарифа без внутренних кодов. Пользователь должен узнать оффер из рекламы или переписки.

Итоговая сумма

Сумма и валюта до клика. Если есть скидка, покажите итог, а не заставляйте считать.

Срок или условие

Если ссылка ограничена по времени или оффер действует до конца дня, это должно быть в сообщении.

Куда писать при сбое

Один понятный fallback в поддержку снижает панику после списания и уменьшает чарджбэки.

Кнопка оплаты не должна быть единственным путем. Добавьте fallback: написать оператору, запросить счет, вернуться к выбору тарифа. Особенно это важно на мобильном трафике, где часть пользователей открывает ссылку во встроенном браузере, часть в системном, а часть теряет контекст и возвращается в чат с вопросом.

Payment URL

Какая ссылка на оплату подходит сценарию

Ссылка может быть одноразовой, универсальной или ручной. У каждой модели свой риск.

КритерийТип ссылкиПлюсМинус
Одноразовая ссылка заказаПривязана к external_order_idЛучше для учета и статусовНужно создавать заказ до отправки
Публичная ссылка тарифаБыстро вставить в сообщениеМинимум настройкиСложнее связать с конкретным контактом
Ручной счет менеджераПодходит для B2B и нестандартаМожно согласовать деталиЛомает автоматическую аналитику
Для автоматической Telegram-воронки лучше одноразовая ссылка заказа, потому что она связывает оплату с CRM.

Что делать после оплаты

После оплаты начинается самая дорогая часть сценария. Пользователь уже заплатил и ждет мгновенного результата. Если доступ не выдан, письмо не пришло или бот молчит, нагрузка уходит в поддержку.

Минимальная post-payment цепочка: подтвердить оплату, выдать доступ или инструкцию, поставить тег покупателя, записать покупку в CRM, запустить серию онбординга, отправить вопрос о проблемах через несколько часов. Для курса это может быть ссылка на кабинет. Для консультации - выбор времени. Для магазина - статус доставки.

После оплаты

Пять действий, которые должны сработать автоматически

  1. Подтвердить оплату

    Отправить короткое сообщение, что платеж принят, и не заставлять пользователя ждать в тишине.

  2. Выдать доступ или инструкцию

    Ссылка, кабинет, группа, файл, слот консультации или следующий шаг должны прийти сразу.

  3. Обновить сегмент

    Контакт становится покупателем. Ему нельзя отправлять те же дожимные сообщения, что неоплатившим.

  4. Запустить онбординг

    Первые сутки после оплаты решают, будет ли возврат, вопрос в поддержку или повторная покупка.

  5. Записать аналитику

    Выручка, источник, продукт и статус должны быть доступны без ручного экспорта.

AI в Strelo помогает отвечать на типовые вопросы после оплаты, но спорные кейсы лучше переводить оператору.
AI в Strelo помогает отвечать на типовые вопросы после оплаты, но спорные кейсы лучше переводить оператору.

AI полезен после оплаты, но не должен решать спорные платежные вопросы без ограничений. Его задача - отвечать по базе знаний: где доступ, как вернуть деньги, где чек, как связаться с оператором. Вопросы про возврат, чарджбэк, ошибочную оплату или персональные данные лучше отдавать человеку.

Ветки после оплаты

Что запускать после confirmed payment

Доступ

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

Поддержка

Если доступ не получен или пользователь не понял следующий шаг, диалог уходит оператору.

Онбординг

Для курса или консультации после оплаты нужен маршрут: как начать, где материалы, кто отвечает.

Сегмент

Покупатель получает другой тег, чтобы не попасть в дожим неоплативших.

Апселл

Не сразу в момент списания. Сначала доступ и спокойствие, потом дополнительное предложение.

Возврат

Возврат и ошибка оплаты должны идти в отдельную ветку, без повторной выдачи доступа.

Атрибуция: откуда пришла покупка

Оплата без источника трафика полезна бухгалтерии, но слаба для маркетинга. Если вы не знаете, из какого поста, рекламы или рассылки пришел покупатель, вы не понимаете, что масштабировать.

Связка "контакт плюс заказ плюс покупка плюс источник" дает нормальную картину: кто вошел в бота, где кликнул, что купил и какой follow-up сработал. Это особенно важно в Telegram, где один человек может сначала прийти из канала, потом вернуться из рассылки, а оплатить после ответа оператора.

Атрибуция нужна, чтобы понимать, какой источник привел к покупке, а не только сколько денег пришло.
Атрибуция нужна, чтобы понимать, какой источник привел к покупке, а не только сколько денег пришло.
Мини-воронка

Где обычно теряется оплата

Примерная структура этапов для проверки. Подставляйте свои измеренные проценты после запуска.

Увидели оффер100%

Все, кто дошел до платежного сообщения

Создали заказ72%

Нажали кнопку или выбрали тариф

Открыли оплату55%

Перешли в checkout или invoice

Оплатили31%

Получен successful_payment или webhook

Получили доступ29%

Нет ручного разрыва после платежа

Это не отраслевой benchmark, а иллюстрация того, какие этапы нужно считать отдельно.

Воронка оплаты должна считаться по этапам, а не только по финальным платежам. Смотрите созданные заказы, клики по ссылке, успешные оплаты, брошенные заказы, обращения в поддержку и возвраты. Один высокий общий процент ничего не объясняет, если половина людей падает на переходе в checkout.

Метрики

Что смотреть до и после оплаты

Клики оплатыдо checkout
CTR кнопки

Показывает, насколько понятен оффер и сумма в сообщении.

Созданные заказыне выручка
pending

Заказ создан, но еще не оплачен. Этот статус нельзя смешивать с покупкой.

Оплаченные покупкивыручка
completed

Только confirmed payment должен попадать в сумму продаж.

Обращения после оплатыкачество UX
support

Резкий рост вопросов обычно означает, что доступ или инструкция неочевидны.

Возвраты, ошибки и поддержка

Возврат не должен запускать ветку "Спасибо за покупку". Ошибка оплаты не должна попадать в выручку. Повторный вебхук не должен заново выдавать доступ. Эти правила нужно зашить до запуска, а не после первого конфликта с клиентом.

Юридическая часть тоже влияет на сценарий. В боте должны быть понятные условия покупки, контакты поддержки, политика возврата и информация о том, что человек получит после оплаты. Это не делает статью юридической консультацией, но снижает число спорных ситуаций.

Возврат, ошибка и отмена оплаты не должны запускать ветку покупки. Они должны обновить статус, снять доступ при необходимости и отправить оператора в поддержку, а не повторять благодарственное сообщение.
Риски

Что должно быть понятно до списания

Оферта

Что продается, кто продавец, когда услуга считается оказанной, где условия доступа.

Возвраты

Куда писать, в какие сроки рассматривается запрос и какие данные нужны для сверки.

Персональные данные

Если собираете email, телефон или адрес, опишите, зачем они нужны и где хранятся.

Поддержка

Команда должна видеть заказ и статус, а не искать платеж по скриншоту клиента.

Перед запуском

Документы и тексты, которые снижают споры

Это не юридическая консультация, а практический список для платежного сценария.

КритерийЭлементГде показыватьЗачем
Условия покупкиВ сообщении или по ссылкеДо оплатыСнижает вопросы после списания
Политика возвратаВ checkout и ботеДо оплаты и в поддержкеУскоряет разбор спорных случаев
Контакты поддержкиВ сообщении после оплатыСразу после confirmed paymentУменьшает панику при задержке доступа
Чем дороже оффер, тем меньше права на платежное сообщение без условий и поддержки.

Если пользователь пишет "деньги списались, доступа нет", оператор должен видеть не только переписку, но и заказ, статус, сумму, внешний ID и время события. Иначе поддержка превращается в ручной поиск по платежному кабинету.

Операционный контроль

Сигналы, что платежный контур требует правки

Повторные вебхукипроверить ответы
много дублей

Провайдер ретраит, если не получает нормальный ответ от обработчика.

Оплата без контактапотеря CRM
contact_not_resolved

Провайдер не передает идентификатор, по которому можно найти покупателя.

Возвратыкачество оффера
refund rate

Рост возвратов часто связан с неясным обещанием до оплаты.

Тикеты доступаUX
after pay

Если люди пишут после оплаты, автоматическая выдача или инструкция слабая.

Поддержка

Где чаще всего возникают вопросы после платежа

Схема для планирования контроля. После запуска замените значения своими данными из поддержки и CRM.

Не понял, что купил18%

Проблема в оффере или платежном сообщении

Не открылся checkout14%

Проверить мобильный браузер, fallback и повторную ссылку

Деньги списались, доступа нет31%

Критичный сигнал: post-payment ветка или webhook работает с разрывом

Нужен возврат12%

Нужны правила возврата и понятный операторский маршрут

Нет вопроса25%

Оплата и выдача прошли без обращения

График не является отраслевым benchmark. Это шаблон, какие категории обращений стоит считать отдельно.
ОплаченЖдет доступОшибка оплатыОператорЗакрыто
Поддержке нужны состояния платежа, а не только свободная переписка.

Когда нужен самописный платежный бэкенд

Самописный бэкенд нужен, если вы строите сложный marketplace, подписки с собственным биллингом, несколько юридических лиц, кастомный риск-скоринг или глубокую интеграцию с ERP. В остальных случаях часто достаточно no-code слоя, который умеет создать заказ, отправить ссылку, принять вебхук, не задвоить покупку и показать ее в CRM.

Strelo уместен там, где Telegram - главный канал продаж, а бизнесу важен быстрый запуск без отдельной команды backend-разработки. Если задача - написать собственную платежную платформу, Strelo не заменяет архитектуру. Если задача - продавать из Telegram и видеть оплату в карточке контакта, это его зона.

Платформа или код

Strelo против самописного платежного слоя

Самопис нужен не всегда. Часто бизнесу достаточно надежного учета и вебхуков.

КритерийКритерийStreloСамописный backend
Скорость запускаБыстрее для типовой Telegram-воронкиДольше, нужна разработка-
Контакт и CRMКонтакт, заказ и покупка в одном местеНужно проектировать отдельно-
Сложный биллингПодходит не для всех кастомных схемМаксимальная гибкость-
Поддержка и аналитикаЕсть операционный слой вокруг платежаНужно строить интерфейсы-
Если вы продаете через Telegram и хотите видеть покупку в карточке контакта, начинайте с платформы. Если строите платежный продукт, нужен backend.
Внешняя страница

Плюсы и минусы оплаты вне Telegram

Когда это удобно
  • Можно использовать уже подключенный эквайринг и юридическую схему.
  • Проще показать оферту, реквизиты, чекбокс согласия и детали заказа.
  • Удобно для дорогих услуг, B2B и сложных тарифов.
Где теряется конверсия
  • Пользователь выходит из чата и может не вернуться.
  • Без вебхука CRM не узнает, что заказ оплачен.
  • Если ссылка универсальная, сложнее связать платеж с конкретным контактом.
Внешний checkout работает нормально, когда вебхук возвращает статус в Telegram-воронку. Без вебхука это просто ссылка, а не автоматизация.

Чеклист перед запуском оплаты в боте

Перед запуском проверьте не только счастливый путь. Создайте тестовый заказ, оплатите его, убедитесь, что контакт найден, покупка записана, доступ выдан, аналитика увидела выручку. Потом повторите вебхук с тем же ID и проверьте, что дубля нет. Отмените оплату и убедитесь, что покупка не попала в completed.

Проверьте плохие сценарии: неверная подпись вебхука, пустой контакт, сумма 0, другой product id, возврат, повторная доставка события, отключенная интеграция. Если эти кейсы не проверены, первый настоящий трафик проверит их за вас, но дороже.

QA перед продом

Тесты платежей, которые нельзя пропускать

Неверная подпись

Вебхук должен отклоняться до записи покупки.

Дубль вебхука

Повтор с тем же external_order_id не создает вторую покупку.

Отмена оплаты

Отмена не попадает в выручку и не выдает доступ.

Контакт не найден

Система не должна записать покупку чужому контакту.

Сумма 0

Заказ без цены не должен уходить в оплату.

Спор после оплаты

Оператор видит заказ, статус, сумму и внешний ID.

Демо рабочего кабинета Strelo: платежный шаг должен быть частью сценария, CRM и аналитики.

Итог

Telegram оплата в боте - это не одна кнопка. Это цепочка состояния: счет или ссылка, проверка, подтверждение, запись заказа, выдача доступа, поддержка, аналитика. Нативный Telegram Payments хорош, когда вы готовы обрабатывать invoice-события Bot API. Внешний checkout хорош, когда у вас уже есть провайдер или нужен гибкий платежный контур.

Strelo в этой схеме закрывает слой операционной воронки: контакт, заказ, payment_url, вебхук, покупка, сегмент, post-payment сценарий и аналитика. Это не обещание native sendInvoice. Это практичный способ не потерять деньги и клиента после того, как он нажал оплату.

Strelo для Telegram-продаж

Соберите оплату как часть Telegram-воронки, а не отдельную ссылку

В Strelo заказ, payment_url, контакт, покупка, сегмент, поддержка и аналитика живут в одном сценарии. Это помогает не потерять клиента после клика по оплате.

Собрать платежный сценарий

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

Чем телеграм бот с оплатой отличается от обычной платежной ссылки?

Обычная ссылка ведет пользователя на оплату, но сама по себе не знает, кто купил, какой заказ создан и что делать после платежа. Бот с оплатой должен хранить заказ, принять подтверждение провайдера, записать покупку в CRM и выдать следующий шаг.

Можно ли принимать оплату прямо в Telegram-боте?

Да. Нативный путь - invoice через Telegram Bot API. Альтернативный путь - payment_url на внешний checkout, после которого провайдер присылает вебхук. Для CRM важнее, чтобы после оплаты заказ получил статус и привязался к контакту.

Поддерживает ли Strelo native sendInvoice?

В этой статье Strelo не заявляется как native sendInvoice SDK. Strelo закрывает другой слой: нода Заказ, payment_url, commerce webhook, contact_purchases, Учет покупки и post-payment сценарии.

Когда нужны Telegram Stars?

Stars нужны для digital goods and services внутри Telegram apps. В таком сценарии invoice обычно использует валюту XTR, а бот сохраняет telegram_payment_charge_id для поддержки и возможных возвратов.

Чем Telegram Payments отличается от внешнего checkout?

Telegram Payments показывает invoice внутри Telegram и присылает события Bot API. Внешний checkout обычно дает платежную ссылку, а результат возвращает вебхуком. В обоих случаях нужно сохранить статус заказа.

Что делать после successful_payment?

Сохранить сумму, валюту, payload, charge id, отметить заказ оплаченным, выдать доступ, поставить тег покупателя, остановить дожим неоплативших и запустить онбординг.

Как не задвоить покупку при повторном вебхуке?

Используйте стабильный external_order_id или payment_id и идемпотентную запись. Повторный вебхук должен обновить известный заказ, а не создать новую покупку и не запустить ветку повторно.