Запрос "телеграм бот с оплатой" обычно означает не одну кнопку, а весь платежный контур: оффер в сообщении, понятная сумма, ссылка или invoice, подтверждение от провайдера, запись заказа в CRM и сценарий после оплаты. Если пропустить хотя бы один слой, клиент может заплатить, но не получить доступ, а менеджер не увидит покупку в карточке контакта.
Короткий вывод: для простого цифрового сценария внутри Telegram смотрите Bot API и Stars, для курсов, консультаций, магазинов и российских платежек чаще нужен внешний checkout с вебхуком. В Strelo этот маршрут собирается как часть воронки: бот создает заказ, отправляет ссылку, ждет подтверждение, фиксирует покупку у контакта и запускает следующий шаг без ручного контроля.
Кому нужен бот с оплатой
Онлайн-школа
Принимает оплату за курс, вебинар или тариф, выдает доступ после подтверждения и видит покупку в карточке ученика.
Эксперт и консультации
Продает консультации, диагностики и закрытые материалы без ручной переписки после каждого платежа.
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 Payments | Invoice внутри Telegram | Кнопка оплаты в сообщении | Обработка pre_checkout и successful_payment |
| Telegram Stars | Платеж в XTR для digital goods | Оплата без ввода карты внутри Telegram | Сохранить charge id и выдать цифровой товар |
| Внешний checkout | Ссылка на оплату из сообщения | Переход в платежную форму провайдера | Вебхук, статус заказа и запись в CRM |
Не выбирайте способ оплаты только по тому, где кнопка выглядит красивее. Выбирайте по тому, где надежнее хранится состояние заказа. Если оплата прошла, а бот не выдал доступ или менеджер не увидел покупку в карточке контакта, пользователь считает, что сломался именно бот, даже если деньги принял внешний провайдер.
Telegram Payments: что реально дает Bot API
Telegram Bot API умеет отправлять invoice-сообщение методом sendInvoice. В таком сообщении есть описание товара, сумма и кнопка оплаты. Пользователь оплачивает внутри Telegram, а бот получает события, по которым должен подтвердить и завершить заказ.
Для физических товаров и услуг Telegram Payments работает через платежных провайдеров. Telegram в документации пишет, что не собирает платежные данные и не берет комиссию за Bot Payments для физических товаров и услуг. Но это не отменяет комиссии и правил самого провайдера, налоговой логики, чеков, возвратов и поддержки.
Какие события Telegram Payments нужно обработать
Invoice - это начало, а не вся платежная логика.
| Критерий | Сущность | Роль | Операционный риск |
|---|---|---|---|
| sendInvoice | Метод Bot API | Отправляет счет в чат | Неверная сумма или payload ломают учет |
| pre_checkout_query | Update перед списанием | Финальная проверка заказа | Без своевременного ответа платеж не завершится |
| successful_payment | Событие после оплаты | Момент записи покупки и выдачи доступа | Если не сохранить charge id, сложно разбирать возвраты |
Ключевая точка - pre_checkout_query. Telegram отправляет ее перед завершением оплаты, а бот должен ответить через answerPreCheckoutQuery. В этом месте проверяют, доступен ли товар, не изменилась ли цена, можно ли продать этот оффер конкретному пользователю. Если бот молчит или отвечает поздно, платеж не завершается.
После успешной оплаты приходит successful_payment. Это не просто красивое событие для статистики. В нем нужно сохранить сумму, валюту, payload, telegram_payment_charge_id и provider_payment_charge_id. Эти данные пригодятся для сверки, поддержки, возвратов и разбора спорных случаев.
Как проходит платеж через Telegram Bot API
Бот отправляет invoice
Сообщение содержит товар, сумму, валюту, payload и кнопку оплаты. Для Stars используется валюта XTR.
Telegram присылает pre_checkout_query
Бот подтверждает или отменяет платеж. Здесь проверяют цену, доступность товара и право пользователя купить.
Пользователь оплачивает
После оплаты бот получает successful_payment и сохраняет сумму, валюту, payload и charge id.
Система выдает товар
Только после подтверждения запускаются доступ, теги, онбординг, поддержка и аналитика выручки.
Telegram Stars: когда это отдельный маршрут
Digital goods and services внутри Telegram apps Telegram направляет в сторону Stars. Для таких платежей используется валюта XTR. В документации Telegram описан процесс: отправить invoice через sendInvoice, дождаться pre_checkout_query, подтвердить или отменить заказ, дождаться successful_payment, сохранить telegram_payment_charge_id и выдать товар или услугу.
Это удобно для цифровых товаров, но не заменяет весь учет продаж. Даже когда деньги проходят через 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 выигрывает не как native SDK для sendInvoice, а как слой учета и автоматизации вокруг платежа. Заказ попадает в CRM, имеет статус, сумму, валюту, продукт, внешний ID и связь с контактом. Для бизнеса это часто ценнее, чем просто отправить красивую кнопку.
Путь заказа со ссылкой на оплату
Сформировать продукт и сумму
Цена берется из продукта, тарифа или переменной. Сумма не должна зависеть от текста пользователя.
Создать заказ
Нода Заказ обращается к commerce-интеграции, создает заказ и сохраняет внешний ID.
Отправить payment_url
Пользователь получает ссылку в сообщении. Текст рядом объясняет, что произойдет после оплаты.
Принять подписанный вебхук
Провайдер возвращает статус. Strelo обновляет заказ, записывает покупку и запускает нужный триггер.
Как не потерять заказ между кликом и оплатой
Самая частая ошибка - считать заказ оплаченным сразу после клика по кнопке. Клик означает только интерес. Заказ становится оплаченной покупкой после подтверждения от платежного источника: successful_payment в Telegram Payments или подписанный вебхук во внешнем checkout.
Правильная модель статусов выглядит так: заказ создан в pending, ссылка отправлена, провайдер подтвердил оплату, запись стала completed, дальше запускается выдача доступа или follow-up. Возврат, ошибка или отмена не должны запускать ветку покупки.
- 1Заказ создан в pending
- 2Пользователь получил payment_url
- 3Провайдер прислал signed webhook
- 4Статус стал completed
- 5Запущены доступ, тег, рассылка, аналитика
В Strelo contact_purchases использует pending для заказа и completed для оплаченной покупки. Выручка считается только по оплатам. Это честная модель: заказ может быть создан, но человек еще не оплатил. Если смешать эти состояния, аналитика начнет показывать деньги, которых нет.
Что делать с разными статусами платежа
Каждый статус должен вести в свою операционную ветку.
| Критерий | Статус | Что означает | Действие |
|---|---|---|---|
| pending | Заказ создан | Оплаты еще нет | Можно напомнить, но не выдавать доступ |
| completed | Платеж подтвержден | Есть основание записать выручку | Выдать доступ и запустить покупательскую ветку |
| failed | Платеж не прошел | Денег нет | Показать поддержку или повторную оплату |
| refunded | Деньги возвращены | Это не новая покупка | Не запускать ветку благодарности |
Идемпотентность: почему один платеж не должен стать двумя
Платежные вебхуки часто приходят повторно. Провайдер может не получить ответ, сеть может оборваться, обработчик может вернуть 500, а система отправит событие еще раз. Это нормально. Ненормально, когда каждый повторный вебхук создает новую покупку, второй раз выдает доступ или дважды запускает серию сообщений.
Нужен стабильный external_order_id. Это ключ, по которому система понимает: событие относится к уже известному заказу. В Strelo повторный вебхук с тем же внешним ID не должен задваивать выручку. При смене статуса заказ обновляется, а пустой повтор не гоняет воронку заново.
Какие ключи подходят для идемпотентности
Стабильный внешний ID важнее красивого payload.
| Критерий | Ключ | Можно использовать | Риск |
|---|---|---|---|
| external_order_id | Да | Главный ключ заказа | Нужно сохранять с момента создания |
| payment_id | Да | Хорош для подтвержденного платежа | Может появиться только после оплаты |
| contact_id плюс amount | Нет как главный ключ | Похоже на заказ, но не уникально | Две одинаковые покупки сольются или задвоятся |
| timestamp | Нет | Меняется при каждом событии | Повторный вебхук станет новой покупкой |
Не используйте timestamp как главный ключ платежа. Два запроса по одному заказу получат разные timestamps и превратятся в две покупки. Не используйте связку "contact id плюс сумма" как единственный ключ: один человек может купить два одинаковых товара. Лучший ключ - внешний ID заказа или платежа, который стабилен у провайдера и сохраняется в вашей системе.
Как собрать платежный сценарий в Strelo
В Strelo платежный сценарий строится не вокруг отдельной кнопки, а вокруг цепочки: продукт, заказ, сообщение со ссылкой, вебхук, покупка, follow-up. Для большинства бизнесов это понятнее, чем писать собственный обработчик Telegram Payments.
Сначала создайте продукт или задайте сумму вручную. Затем добавьте ноду "Заказ", выберите commerce-интеграцию и укажите переменную, куда сохранить ссылку оплаты, например payment_url. После ноды добавьте сообщение: коротко повторите, что покупает человек, сумму, срок действия ссылки и что произойдет после оплаты.
Как собрать заказ со ссылкой на оплату
Выберите продукт или тариф
Цена и валюта подтянутся из каталога, либо сумму можно задать переменной сценария.
Выберите commerce-интеграцию
Для универсального подключения работает HTTP endpoint создания заказа и входящий вебхук.
Сохраните ссылку в переменную
Нода Заказ сохраняет payment_url, чтобы следующее сообщение отправило ее клиенту.
Отправьте короткое платежное сообщение
Повторите оффер, сумму, срок и действие после оплаты. Не заставляйте человека угадывать.
Если оплата прошла вне основного сценария, используйте "Учет покупки". Эта нода фиксирует покупку контакта вручную или по логике воронки. Если есть внешний ID заказа, его лучше передать, чтобы повторные события не создавали дубль.

Для внешнего провайдера используйте "Интеграции продаж". Универсальная HTTP-интеграция может создавать заказ через ваш endpoint и принимать входящие вебхуки. Вебхук должен быть подписан: без подписи обработчик обязан отказать до любых действий. Это не формальность, а защита от чужих запросов на поддельную оплату.
Что обязательно хранить рядом с оплатой
Без этих полей платеж сложно связать с человеком и продуктом.
| Критерий | Поле | Зачем нужно | Если потерять |
|---|---|---|---|
| contact_id или telegram_id | Идентификация покупателя | Связь с карточкой контакта | Покупка повиснет без владельца |
| external_order_id | Идемпотентность | Не задваивает вебхуки | Повторы станут новыми покупками |
| amount и currency | Финансовая сверка | Выручка и средний чек | Нельзя доверять аналитике |
| product_id или title | Что купил человек | Выдача правильного доступа | Оператор ищет вручную |
UX сообщения с оплатой
Плохое сообщение выглядит так: "Оплатите здесь". Хорошее сообщение снимает тревогу до клика. Человек должен понять, что он покупает, сколько платит, куда попадет после оплаты и что делать, если ссылка не открылась.
В платежном сообщении не нужно много текста. Нужны четыре факта: название оффера, итоговая сумма, срок действия или условие оплаты, следующий шаг после платежа. Если есть операторская поддержка, напишите, куда обратиться. Это снижает число вопросов после списания.
Что должно быть рядом с кнопкой
Что покупает человек
Название продукта или тарифа без внутренних кодов. Пользователь должен узнать оффер из рекламы или переписки.
Итоговая сумма
Сумма и валюта до клика. Если есть скидка, покажите итог, а не заставляйте считать.
Срок или условие
Если ссылка ограничена по времени или оффер действует до конца дня, это должно быть в сообщении.
Куда писать при сбое
Один понятный fallback в поддержку снижает панику после списания и уменьшает чарджбэки.
Кнопка оплаты не должна быть единственным путем. Добавьте fallback: написать оператору, запросить счет, вернуться к выбору тарифа. Особенно это важно на мобильном трафике, где часть пользователей открывает ссылку во встроенном браузере, часть в системном, а часть теряет контекст и возвращается в чат с вопросом.
Какая ссылка на оплату подходит сценарию
Ссылка может быть одноразовой, универсальной или ручной. У каждой модели свой риск.
| Критерий | Тип ссылки | Плюс | Минус |
|---|---|---|---|
| Одноразовая ссылка заказа | Привязана к external_order_id | Лучше для учета и статусов | Нужно создавать заказ до отправки |
| Публичная ссылка тарифа | Быстро вставить в сообщение | Минимум настройки | Сложнее связать с конкретным контактом |
| Ручной счет менеджера | Подходит для B2B и нестандарта | Можно согласовать детали | Ломает автоматическую аналитику |
Что делать после оплаты
После оплаты начинается самая дорогая часть сценария. Пользователь уже заплатил и ждет мгновенного результата. Если доступ не выдан, письмо не пришло или бот молчит, нагрузка уходит в поддержку.
Минимальная post-payment цепочка: подтвердить оплату, выдать доступ или инструкцию, поставить тег покупателя, записать покупку в CRM, запустить серию онбординга, отправить вопрос о проблемах через несколько часов. Для курса это может быть ссылка на кабинет. Для консультации - выбор времени. Для магазина - статус доставки.
Пять действий, которые должны сработать автоматически
Подтвердить оплату
Отправить короткое сообщение, что платеж принят, и не заставлять пользователя ждать в тишине.
Выдать доступ или инструкцию
Ссылка, кабинет, группа, файл, слот консультации или следующий шаг должны прийти сразу.
Обновить сегмент
Контакт становится покупателем. Ему нельзя отправлять те же дожимные сообщения, что неоплатившим.
Запустить онбординг
Первые сутки после оплаты решают, будет ли возврат, вопрос в поддержку или повторная покупка.
Записать аналитику
Выручка, источник, продукт и статус должны быть доступны без ручного экспорта.

AI полезен после оплаты, но не должен решать спорные платежные вопросы без ограничений. Его задача - отвечать по базе знаний: где доступ, как вернуть деньги, где чек, как связаться с оператором. Вопросы про возврат, чарджбэк, ошибочную оплату или персональные данные лучше отдавать человеку.
Что запускать после confirmed payment
Доступ
Ссылка в кабинет, группу или файл. Главное - сразу после подтверждения, а не после ручной проверки.
Поддержка
Если доступ не получен или пользователь не понял следующий шаг, диалог уходит оператору.
Онбординг
Для курса или консультации после оплаты нужен маршрут: как начать, где материалы, кто отвечает.
Сегмент
Покупатель получает другой тег, чтобы не попасть в дожим неоплативших.
Апселл
Не сразу в момент списания. Сначала доступ и спокойствие, потом дополнительное предложение.
Возврат
Возврат и ошибка оплаты должны идти в отдельную ветку, без повторной выдачи доступа.
Атрибуция: откуда пришла покупка
Оплата без источника трафика полезна бухгалтерии, но слаба для маркетинга. Если вы не знаете, из какого поста, рекламы или рассылки пришел покупатель, вы не понимаете, что масштабировать.
Связка "контакт плюс заказ плюс покупка плюс источник" дает нормальную картину: кто вошел в бота, где кликнул, что купил и какой follow-up сработал. Это особенно важно в Telegram, где один человек может сначала прийти из канала, потом вернуться из рассылки, а оплатить после ответа оператора.

Где обычно теряется оплата
Примерная структура этапов для проверки. Подставляйте свои измеренные проценты после запуска.
Все, кто дошел до платежного сообщения
Нажали кнопку или выбрали тариф
Перешли в checkout или invoice
Получен successful_payment или webhook
Нет ручного разрыва после платежа
Воронка оплаты должна считаться по этапам, а не только по финальным платежам. Смотрите созданные заказы, клики по ссылке, успешные оплаты, брошенные заказы, обращения в поддержку и возвраты. Один высокий общий процент ничего не объясняет, если половина людей падает на переходе в checkout.
Что смотреть до и после оплаты
Показывает, насколько понятен оффер и сумма в сообщении.
Заказ создан, но еще не оплачен. Этот статус нельзя смешивать с покупкой.
Только confirmed payment должен попадать в сумму продаж.
Резкий рост вопросов обычно означает, что доступ или инструкция неочевидны.
Возвраты, ошибки и поддержка
Возврат не должен запускать ветку "Спасибо за покупку". Ошибка оплаты не должна попадать в выручку. Повторный вебхук не должен заново выдавать доступ. Эти правила нужно зашить до запуска, а не после первого конфликта с клиентом.
Юридическая часть тоже влияет на сценарий. В боте должны быть понятные условия покупки, контакты поддержки, политика возврата и информация о том, что человек получит после оплаты. Это не делает статью юридической консультацией, но снижает число спорных ситуаций.
Что должно быть понятно до списания
Оферта
Что продается, кто продавец, когда услуга считается оказанной, где условия доступа.
Возвраты
Куда писать, в какие сроки рассматривается запрос и какие данные нужны для сверки.
Персональные данные
Если собираете email, телефон или адрес, опишите, зачем они нужны и где хранятся.
Поддержка
Команда должна видеть заказ и статус, а не искать платеж по скриншоту клиента.
Документы и тексты, которые снижают споры
Это не юридическая консультация, а практический список для платежного сценария.
| Критерий | Элемент | Где показывать | Зачем |
|---|---|---|---|
| Условия покупки | В сообщении или по ссылке | До оплаты | Снижает вопросы после списания |
| Политика возврата | В checkout и боте | До оплаты и в поддержке | Ускоряет разбор спорных случаев |
| Контакты поддержки | В сообщении после оплаты | Сразу после confirmed payment | Уменьшает панику при задержке доступа |
Если пользователь пишет "деньги списались, доступа нет", оператор должен видеть не только переписку, но и заказ, статус, сумму, внешний ID и время события. Иначе поддержка превращается в ручной поиск по платежному кабинету.
Сигналы, что платежный контур требует правки
Провайдер ретраит, если не получает нормальный ответ от обработчика.
Провайдер не передает идентификатор, по которому можно найти покупателя.
Рост возвратов часто связан с неясным обещанием до оплаты.
Если люди пишут после оплаты, автоматическая выдача или инструкция слабая.
Где чаще всего возникают вопросы после платежа
Схема для планирования контроля. После запуска замените значения своими данными из поддержки и CRM.
Когда нужен самописный платежный бэкенд
Самописный бэкенд нужен, если вы строите сложный marketplace, подписки с собственным биллингом, несколько юридических лиц, кастомный риск-скоринг или глубокую интеграцию с ERP. В остальных случаях часто достаточно no-code слоя, который умеет создать заказ, отправить ссылку, принять вебхук, не задвоить покупку и показать ее в CRM.
Strelo уместен там, где Telegram - главный канал продаж, а бизнесу важен быстрый запуск без отдельной команды backend-разработки. Если задача - написать собственную платежную платформу, Strelo не заменяет архитектуру. Если задача - продавать из Telegram и видеть оплату в карточке контакта, это его зона.
Strelo против самописного платежного слоя
Самопис нужен не всегда. Часто бизнесу достаточно надежного учета и вебхуков.
| Критерий | Критерий | Strelo | Самописный backend |
|---|---|---|---|
| Скорость запуска | Быстрее для типовой Telegram-воронки | Дольше, нужна разработка | - |
| Контакт и CRM | Контакт, заказ и покупка в одном месте | Нужно проектировать отдельно | - |
| Сложный биллинг | Подходит не для всех кастомных схем | Максимальная гибкость | - |
| Поддержка и аналитика | Есть операционный слой вокруг платежа | Нужно строить интерфейсы | - |
Плюсы и минусы оплаты вне Telegram
- Можно использовать уже подключенный эквайринг и юридическую схему.
- Проще показать оферту, реквизиты, чекбокс согласия и детали заказа.
- Удобно для дорогих услуг, B2B и сложных тарифов.
- Пользователь выходит из чата и может не вернуться.
- Без вебхука CRM не узнает, что заказ оплачен.
- Если ссылка универсальная, сложнее связать платеж с конкретным контактом.
Чеклист перед запуском оплаты в боте
Перед запуском проверьте не только счастливый путь. Создайте тестовый заказ, оплатите его, убедитесь, что контакт найден, покупка записана, доступ выдан, аналитика увидела выручку. Потом повторите вебхук с тем же ID и проверьте, что дубля нет. Отмените оплату и убедитесь, что покупка не попала в completed.
Проверьте плохие сценарии: неверная подпись вебхука, пустой контакт, сумма 0, другой product id, возврат, повторная доставка события, отключенная интеграция. Если эти кейсы не проверены, первый настоящий трафик проверит их за вас, но дороже.
Тесты платежей, которые нельзя пропускать
Неверная подпись
Вебхук должен отклоняться до записи покупки.
Дубль вебхука
Повтор с тем же external_order_id не создает вторую покупку.
Отмена оплаты
Отмена не попадает в выручку и не выдает доступ.
Контакт не найден
Система не должна записать покупку чужому контакту.
Сумма 0
Заказ без цены не должен уходить в оплату.
Спор после оплаты
Оператор видит заказ, статус, сумму и внешний ID.
Итог
Telegram оплата в боте - это не одна кнопка. Это цепочка состояния: счет или ссылка, проверка, подтверждение, запись заказа, выдача доступа, поддержка, аналитика. Нативный Telegram Payments хорош, когда вы готовы обрабатывать invoice-события Bot API. Внешний checkout хорош, когда у вас уже есть провайдер или нужен гибкий платежный контур.
Strelo в этой схеме закрывает слой операционной воронки: контакт, заказ, payment_url, вебхук, покупка, сегмент, post-payment сценарий и аналитика. Это не обещание native sendInvoice. Это практичный способ не потерять деньги и клиента после того, как он нажал оплату.
Соберите оплату как часть 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 и идемпотентную запись. Повторный вебхук должен обновить известный заказ, а не создать новую покупку и не запустить ветку повторно.
