WebEngine

0%
Боти й автоматизація

Оплати в Telegram-боті: як приймати гроші прямо в чаті

Telegram Payments, еквайринг, підписки й фіскалізація. Які схеми законні в Україні, скільки коштує кожна і де користувачі найчастіше зриваються з оплати.

Pavlo9 хв читання

Бот довів людину до кнопки «Оплатити» — і відправляє її на сайт, у форму або, найгірше, просить скинути скріншот квитанції в чат. Кожен такий перехід з’їдає покупців: зовнішня сторінка оплати в наших проєктах конвертує гірше за нативну на 15–30%, а на дрібних сумах різниця ще більша. Нижче — три робочі схеми прийому грошей просто в чаті, скільки кожна коштує в комісіях і в розробці, що робити з підписками та фіскальними чеками і де саме люди зриваються з оплати.

0%

бере Telegram з платежів карткою

2.5%

типова комісія еквайра

10 с

на відповідь у pre_checkout_query

21 д

витримка перед виведенням Stars

Три способи взяти гроші в боті

Життєздатних схем рівно три плюс одна тимчасова. Вибір між ними визначає не смак, а те, що ви продаєте: за фізичний товар і за цифровий доступ правила різні, і плутати їх дорого.

СхемаЩо бачить користувачКомісіяКоли обирати
Telegram PaymentsНативна форма оплати карткою в чатіТільки еквайр, 1,4–2,8%Товари, послуги, запис, доставка
Telegram Stars (XTR)Внутрішня валюта, куплена заздалегідьУтримання сторів плюс курс виведенняЦифрові товари й доступи
Mini App із чекаутомСторінка оплати без виходу з месенджераЕквайр плюс розробка інтерфейсуКошик, промокоди, складна логіка
Зовнішнє посиланняПерехід у браузер і повернення вручнуЕквайрТимчасове рішення, рахунки юрособам
Комісії еквайрингу залежать від обороту й категорії бізнесу — це типовий, а не гарантований діапазон.

Як насправді працює Telegram Payments

Telegram грошей не тримає й нічого не утримує: він показує форму, збирає дані картки й передає їх вашому платіжному провайдеру. Кошти йдуть на ваш рахунок в еквайра, а бот отримує лише події про статус. Звідси головне правило архітектури — джерело правди про оплату це конкретний апдейт, а не натиснута кнопка.

  1. 1

    Підключення провайдера

    У BotFather → /mybots → Payments ви обираєте провайдера, доступного у вашій країні. Одразу беріть і тестовий токен: без нього ви не перевірите сценарії відмови, не витрачаючи реальних грошей.

  2. 2

    Виставлення рахунку

    sendInvoice приймає назву, опис, payload із вашим ідентифікатором замовлення та ціну в мінімальних одиницях валюти. Класична помилка першого тижня — передати 149 замість 14900.

  3. 3

    Передперевірка

    Бот отримує pre_checkout_query і має рівно 10 секунд на відповідь: перевірити залишок, актуальність ціни й ліміти. Не встигли — Telegram скасовує платіж сам.

  4. 4

    Підтвердження й видача

    Успіх приходить окремим повідомленням із successful_payment і telegram_payment_charge_id. За цим ідентифікатором будують ідемпотентність: один charge_id — одна видача товару, скільки б разів апдейт не повторився.

// Ціна завжди в мінімальних одиницях: 149.00 UAH → 14900.
await api('sendInvoice', {
  chat_id: chatId,
  title: 'Курс «Основи»',
  description: 'Доступ до матеріалів на 12 місяців',
  payload: orderId,               // ваш ідентифікатор, повернеться назад
  provider_token: PROVIDER_TOKEN, // для Stars — порожній рядок
  currency: 'UAH',
  prices: [{ label: 'Курс', amount: 14900 }],
});

// Рівно 10 секунд на відповідь, інакше платіж зривається.
onUpdate('pre_checkout_query', async (q) => {
  const ok = await isStillAvailable(q.invoice_payload);
  await api('answerPreCheckoutQuery', {
    pre_checkout_query_id: q.id,
    ok,
    error_message: ok ? undefined : 'Товар щойно закінчився',
  });
});

// Єдина подія, після якої гроші справді ваші.
onUpdate('message', async (msg) => {
  const p = msg.successful_payment;
  if (!p) return;
  await fulfilOnce(p.invoice_payload, p.telegram_payment_charge_id);
});

Stars, цифрові товари й повторні списання

Stars — внутрішня валюта Telegram, яку користувач купує заздалегідь. Для вас це той самий sendInvoice, тільки з валютою XTR, порожнім provider token і рівно однією позицією в цінах. Відмінності починаються далі, і знати про них варто до того, як ви побудуєте на цьому бізнес-модель.

  • Виведення не миттєве. Зароблені Stars виводяться через Fragment після витримки близько 21 дня — перші гроші від запуску ви побачите щонайменше через три тижні.
  • Курс виведення нижчий за ціну покупки. На момент написання це орієнтовно $0,013 за одну Star. Реальне утримання виходить ближче до 30%, і саме цю цифру треба закладати в модель.
  • Повернення обов’язкове. refundStarPayment має бути реалізований і доступний користувачу — інакше отримаєте потік скарг і ризик санкцій до бота.
  • Підписки в Stars працюють з коробки. Посилання на рахунок із періодом продовження на 30 днів — і Telegram сам списує щомісяця, а користувач бачить та скасовує підписку у своєму інтерфейсі.
  • Підписок за картку немає. Повторні списання фіатом можливі лише через токенізацію на боці еквайра, і запускати цей потік доводиться з Mini App або вебсторінки.

Де саме зриваються оплати

Технічно правильна інтеграція однаково втрачає гроші, якщо сценарій написаний недбало. Порядок проблем — за розміром збитку, за логами наших ботів у торгівлі та послугах.

  1. 1Ціну вперше видно на кроці оплати. Найбільший одиничний провал: людина йшла за консультацією, а отримала рахунок. Показуйте суму в повідомленні перед кнопкою.
  2. 2Повернення з 3-D Secure. Якщо оплата відкривається в зовнішньому браузері, частина людей після підтвердження банку просто не повертається в чат. Нативна форма знімає це повністю.
  3. 3Немає стану «обробляємо». Між натисканням і підтвердженням проходить 2–6 секунд, і без явного повідомлення користувач тисне ще раз. Далі — дубль замовлення й розбір із поверненням.
  4. 4Інвойс без строку життя. Рахунок можуть оплатити через тиждень, коли ціна вже інша, а товару немає. Прив’язуйте payload до замовлення зі строком і перевіряйте його в передперевірці.
  5. 5Немає запасного каналу. Для сум у кілька сотень доларів і для юросіб лишайте кнопку «виставити рахунок» — інакше ви відсікаєте найбільші чеки заради елегантності інтерфейсу.

Мінімальний чекліст перед запуском оплат

  • Ідемпотентність за telegram_payment_charge_id — повторний апдейт не створює друге замовлення
  • Вебхук на HTTPS із секретним токеном, а не відкритий ендпоінт
  • Лог кожного платіжного апдейту в базу, а не тільки в консоль
  • Сценарій відмови картки з людським текстом і кнопкою «спробувати ще раз»
  • Процедура повернення коштів, перевірена до першого продажу
  • Передача замовлення в CRM або таблицю одразу після успішної оплати
ОбсягЩо входитьРозробкаСтрок
Одна кнопка оплатиРахунок, передперевірка, підтвердження, логи$250–5003–5 днів
Каталог із кошикомТовари, знижки, доставка, статуси замовлення$900–2 0002–4 тижні
ПідпискаПовторні списання, нагадування, видача доступу$700–1 5002–3 тижні
Mini App із чекаутомКошик, оплата, кабінет, повернення коштів$2 000–4 5004–8 тижнів
Ціни на 2026 рік без вартості еквайрингу, хостингу й інтеграції з обліковою системою.

Тепер про частину, яку люблять відкладати. Якщо ви продаєте товари чи послуги кінцевому споживачу за безготівковий розрахунок, фіскальний чек потрібен так само, як у звичайному магазині — бот не є винятком. Практично це інтеграція з ПРРО на кшталт Checkbox або Vchasno.Kasa і додаткові $200–400 у кошторисі. Чек формується після успішної оплати й іде тим самим повідомленням, що й підтвердження замовлення.

Оплата в боті — не кнопка, а машина станів. Кнопку робиш за день, стани — за два тижні, і саме вони визначають, скільки грошей ви фактично отримаєте.

Правило кошторису: сама інтеграція — це приблизно 20% робіт, решта припадає на сценарії помилок, повернення, чеки й передачу замовлень в облік. Якщо підрядник називає ціну лише за «підключення оплати», попросіть окремо оцінити ті 80% — структуру бюджету ми розбирали в матеріалі про вартість розробки Telegram-бота.

Часті питання про оплати в Telegram-ботах

Скільки Telegram бере комісії за платежі в боті?

За платежі банківською карткою Telegram не бере нічого — ви платите тільки комісію свого платіжного провайдера, зазвичай 1,4–2,8% від суми. З Telegram Stars інакше: утримання магазину застосунків і курс виведення разом дають ефективну втрату, близьку до 30%. Тому фізичні товари вигідніше продавати карткою, а цифрові доступи доводиться продавати в Stars за правилами платформ.

Чи можна зробити щомісячну підписку в Telegram-боті?

Так, двома різними шляхами. Для цифрового доступу підписка робиться в Stars через посилання на рахунок із періодом продовження: Telegram списує кошти щомісяця сам, а користувач бачить і скасовує підписку у своєму інтерфейсі. Для оплати карткою вбудованих повторних списань немає, тому потрібна токенізація на боці еквайра, а потік запускається з вебсторінки або Mini App.

Потрібен фіскальний чек, якщо продаж відбувся в боті?

Так, канал продажу не змінює податкових обов’язків. Продаж товару або послуги кінцевому споживачу за безготівковий розрахунок вимагає чека так само, як продаж у фізичній точці. Технічно це вирішується інтеграцією з сервісом програмного РРО, який має API: чек формується автоматично після оплати й надсилається користувачу прямо в чат.

Що робити, якщо гроші списалися, а бот не видав товар?

Це майже завжди означає, що обробник події успішної оплати впав або не був ідемпотентним. Правильна архітектура пише кожен платіжний апдейт у базу до будь-якої бізнес-логіки, тож видачу можна повторити вручну за ідентифікатором платежу. Без логів лишається тільки повернення коштів — саме тому логування платежів закладають з першого дня.

Коли краще винести оплату в Mini App замість чату?

Коли покупка складніша за одну позицію: кошик на кілька товарів, вибір варіантів, промокоди, розрахунок доставки або графік запису. Нативний рахунок у чаті чудово працює для одного товару з фіксованою ціною, але погано тримає багатокрокові сценарії. Практичний поріг простий: якщо до оплати треба зробити більше трьох виборів, інтерфейс варто винести в Mini App.

Коротко

  • Фізичні товари й послуги — карткою через Telegram Payments; цифрові доступи всередині Telegram — тільки в Stars, інакше ризикуєте ботом.
  • Джерело правди про оплату — подія successful_payment і її charge_id, а не натиснута кнопка. Ідемпотентність обов’язкова.
  • Найбільші втрати конверсії дає не комісія, а ціна, показана надто пізно, і повернення із зовнішньої сторінки оплати.
  • Сама інтеграція — близько 20% робіт; решта бюджету йде на помилки, повернення, чеки й передачу замовлень в облік.
  • Фіскальний чек у боті потрібен так само, як у магазині: закладайте $200–400 і окремий тиждень робіт.
Поділитися
  • оплати
  • Telegram
  • боти

Схожі матеріали