Bots for accepting payments in Telegram
Telegram offers a built-in Payment API that allows bot developers to accept payments directly within chats, supporting major providers like Stripe, YooMoney, and others. By integrating a payment bot into your channel or group, you can sell digital products, subscriptions, memberships, and even physical goods — all without redirecting users to external websites.
How Telegram Payment Bots Work
Telegram introduced its Bot Payments API in 2017 and has expanded it significantly since then. The system acts as an intermediary layer: your bot communicates with a payment provider (such as Stripe, Tranzzo, or YooMoney), while Telegram handles the user interface — showing product cards, collecting shipping details, and confirming transactions.
The Payment Flow
- Your bot sends an invoice to the user (with title, description, price, and optional photo)
- The user taps Pay and enters card details in Telegram's native payment form
- Telegram forwards the payment data to the connected payment provider
- The provider processes the charge and returns a confirmation
- Your bot receives a
successful_paymentupdate and delivers the product or access
Telegram never stores credit card details on its servers. All sensitive payment information goes directly to the payment provider.
Stars Payments vs. Provider Payments
Since 2024, Telegram offers two distinct payment methods:
- Telegram Stars — Telegram's internal currency. Users buy Stars through the App Store or Google Play, then spend them inside bots. This is mandatory for digital goods sold through bots on iOS and Android, as Apple and Google require in-app purchase mechanisms. The commission is roughly 30% (Apple/Google cut) minus Telegram's share.
- Direct Provider Payments — Traditional card payments via Stripe, YooMoney, or other supported providers. Best suited for physical goods, services, and web-based transactions where app store rules don't apply.
Popular Payment Bots and Platforms
1. Custom Bots via BotFather + Payment Provider
The most flexible approach. You create your own bot through @BotFather, connect a payment provider, and write custom logic.
Supported providers include:
- Stripe — Global, supports 135+ currencies, widely trusted
- YooMoney (formerly Yandex.Money) — Popular in Russia and CIS countries
- Tranzzo — Ukraine-focused provider
- Payme / Click — Uzbekistan payment systems
- LiqPay — Another Ukrainian option
- Sberbank — Russian banking provider
- Portmone — Ukraine
Setup steps:
1. Open @BotFather and select your bot
2. Choose /mybots → your bot → Payments
3. Select a payment provider from the list
4. Follow the provider's instructions to get API keys
5. Connect the keys back in BotFather
2. No-Code Bot Builders
If you don't write code, several platforms let you create payment-enabled bots visually:
- Paywall Bot (@PaywallRobot) — Specifically designed for selling access to private channels and groups. You set a price, and the bot automatically grants or revokes access based on payment status.
- InviteMember (@InviteMemberBot) — Subscription management for Telegram communities. Supports recurring payments, trial periods, and multiple tiers.
- Donate Bot (@DonateBot) — Focused on accepting donations and tips. Simple setup, supports one-time and recurring contributions.
- CryptoPay (@CryptoBot) — Accepts cryptocurrency payments (BTC, ETH, USDT, TON). Popular for international transactions where traditional providers aren't available.
3. TON-Based Payment Solutions
Telegram's integration with The Open Network (TON) blockchain has opened up decentralized payment options:
- @wallet — Telegram's built-in wallet for TON, USDT, and other tokens
- Tonkeeper / MyTonWallet — Third-party wallets that integrate with Telegram bots
- Custom smart contracts for automated subscription management
Setting Up Payments: Step-by-Step
Step 1: Define What You're Selling
Determine your product type, as this affects which payment method to use:
Product Type Recommended Method Channel subscription InviteMember / Paywall Bot Digital content (files, courses) Custom bot + Stripe / Stars Physical goods Custom bot + Stripe Donations / tips Donate Bot / CryptoPay One-time digital access Custom bot + StarsStep 2: Choose Your Technical Approach
For non-developers:
- Use @InviteMemberBot — connect it to your private channel, set pricing tiers (e.g., $5/month, $45/year), and share the payment link. The bot handles everything automatically.
For developers:
- Use the Telegram Bot API's sendInvoice method
- Libraries like python-telegram-bot, aiogram, telegram-bot-ruby, or node-telegram-bot-api all support payments natively
Example invoice parameters:
- title: "Premium Channel Access — March 2026"
- description: "Unlock all premium posts for 30 days"
- payload: unique identifier for the transaction
- provider_token: from BotFather setup
- currency: "USD"
- prices: [{"label": "Monthly access", "amount": 500}] (amount in cents)
Step 3: Test Before Going Live
Telegram provides test payment credentials for every supported provider. In BotFather, when connecting a payment provider, choose the Test option first. With Stripe test mode, use card number 4242 4242 4242 4242 with any future expiration date.
Step 4: Launch and Promote
Once tested, switch to production credentials. Post the payment link or command in your channel. Pin it for visibility.
Integrating Payments with Your Channel's Web Presence
If your Telegram channel has a web mirror — for instance, through platforms like tgchannel.space that convert channel content into SEO-optimized blogs — you can embed payment links directly in your web posts. This creates a dual funnel: readers discover your content through search engines and can subscribe or purchase through the same Telegram payment bot.
Tips & Best Practices
-
Always provide a clear refund policy. Telegram's Payment API supports the
refundStarPaymentand provider-side refunds. Communicate your policy upfront to build trust. -
Use pre-checkout queries wisely. The
pre_checkout_querycallback lets you validate orders before charging. Always respond within 10 seconds, or the payment will be cancelled automatically. - Offer multiple pricing tiers. Channels like @example_premium_news might offer $3/month, $8/quarter, and $25/year — the annual option typically converts best because users perceive greater value.
- Send receipts and confirmations. After a successful payment, immediately send a confirmation message with details of what was purchased and how to access it.
- Track metrics. Log every transaction, failed payment, and refund. This data helps optimize pricing and identify drop-off points.
- Consider regional payment preferences. If your audience is in Russia, YooMoney will convert better than Stripe. For global audiences, Stripe or crypto payments offer the widest reach.
Common Mistakes
Mistake 1: Not handling failed payments gracefully
Why it's wrong: Users get frustrated when they see a generic error with no explanation or retry option.
How to avoid: Catch pre_checkout_query failures and send a helpful message explaining the issue and offering alternatives.
Mistake 2: Using Stars for everything
Why it's wrong: Telegram Stars carry a ~30% commission through app stores. For high-ticket items or recurring subscriptions, this significantly eats into revenue.
How to avoid: Use Stars for small digital goods and in-app purchases. For subscriptions above $10/month, consider direct provider payments or web-based checkout flows.
Mistake 3: Forgetting to revoke access after subscription expires
Why it's wrong: If you sell access to a private channel but never remove expired members, you're giving away content for free.
How to avoid: Use bots like InviteMember that automatically kick users when their subscription lapses, or implement kick_chat_member / ban_chat_member logic in your custom bot on a scheduled check.
Mistake 4: Ignoring Telegram's Terms of Service
Why it's wrong: Selling prohibited items (weapons, drugs, counterfeit goods) or bypassing Stars requirements for digital goods on mobile will get your bot banned.
How to avoid: Read Telegram's Terms of Service for Bot Payments thoroughly before launching.
Mistake 5: No test phase before going live
Why it's wrong: Real users encountering broken payment flows will lose trust permanently.
How to avoid: Always run at least 10-20 test transactions covering edge cases — different currencies, declined cards, refunds, and subscription renewals.
Frequently Asked Questions
What commission does Telegram take on payments?
For direct provider payments (Stripe, YooMoney, etc.), Telegram takes 0% commission — you only pay your payment provider's standard fees (typically 2.9% + $0.30 for Stripe). For Telegram Stars, the effective commission is higher due to Apple/Google's 30% cut on Star purchases.
Can I accept payments without writing any code?
Yes. Bots like @InviteMemberBot, @PaywallRobot, and @DonateBot offer fully no-code solutions. You configure pricing, connect a payment provider, and the bot handles the rest.
Is it safe to enter credit card details in Telegram?
Telegram's payment form is designed so that card data goes directly to the payment provider (e.g., Stripe) without passing through Telegram's servers. The security level is comparable to entering card details on any reputable website.
Can I accept cryptocurrency in my Telegram channel?
Yes. @CryptoBot by the TON Foundation supports BTC, ETH, USDT, and TON. You can also integrate with the TON blockchain directly for smart-contract-based payments and subscriptions.
Do I need a business license to accept payments via Telegram bots?
This depends on your country's regulations, not on Telegram itself. Most payment providers (especially Stripe) require you to register as a business or sole proprietor. For small-scale donations, some providers allow individual accounts with limits.