Инвойсы через Bot API
Соберёшь Stars-инвойс через sendInvoice и createInvoiceLink, обработаешь pre_checkout и successful_payment без типичных ошибок.
Инвойсы Stars в Bot API
Инвойс — сообщение (или ссылка) с кнопкой Pay. Для цифровых товаров: currency: "XTR", пустой provider_token, в prices ровно один элемент. Дальше — тот же конвейер: pre_checkout_query → answerPreCheckoutQuery → successful_payment.
sendInvoice и createInvoiceLink
Как это работает
sendInvoice— инвойс как сообщение вchat_id(private / group / channel).createInvoiceLink— строка-ссылка; удобно для Mini App и шаринга.- Для Stars в
pricesдолжен быть ровно одинLabeledPrice. - Параметры вроде
need_name/need_shipping_addressдля Stars игнорируются: цифровые платежи без ПДн. - На multi-use инвойсах бот сам решает, принимать ли повторные оплаты — валидируй остаток/лимиты в
pre_checkout_query. provider_payment_charge_idдля Stars тоже приходит; для refund используйtelegram_payment_charge_id.
Частые ошибки
Не отвечаешь на pre-checkout за 10 секунд → Telegram отменяет платёж. Держи проверку быстрой (кэш стока, без тяжёлых HTTP).
Принимаешь любой total_amount → сверяй сумму и payload со своей записью заказа. Иначе multi-use ссылку можно «переплатить/недоплатить» логикой бота, если ты сам это разрешишь.
Доставляешь товар дважды при повторном webhook → ключ идемпотентности: telegram_payment_charge_id.
Что дальше
- Приём оплаты Stars в mini-app — открытие ссылки через
openInvoice - Подписки через Stars — периодические инвойсы на 30 дней
- Возврат платежа (refund) в Stars —
refundStarPayment
Материалы gramdocs.tech носят образовательный характер и не являются финансовой, юридической или инвестиционной рекомендацией. Работа с блокчейном TON и токеном Gram связана с рисками потери средств. Правовая информация