← Blog/Tutorial

How to Accept TON Payments in Your Telegram Mini App or Bot

May 16, 2026 · 8 min read

TON blockchain is natively integrated with Telegram's 900M+ user base. Here's how to add TON payment support to your Telegram Mini App or bot in under an hour.

The Open Network (TON) is Telegram's native blockchain. With Telegram reaching 900 million monthly active users and the explosive growth of Mini Apps, TON payments represent a massive opportunity for developers and merchants. Transactions confirm in ~5 seconds, fees are fractions of a cent, and your customers don't need to leave Telegram.

Why TON for Telegram Payments

  • ✓Native integration: Telegram Wallet supports TON natively in the app
  • ✓Speed: ~5 second finality — faster than any card authorization
  • ✓Near-zero fees: under $0.01 per transaction
  • ✓900M Telegram users are potential customers
  • ✓Growing ecosystem: major DeFi, gaming, and commerce apps

Architecture: Telegram Bot + Bekena API

The integration pattern is: user triggers a payment in Telegram → your bot calls Bekena API to create a TON invoice → bot sends the payment address to the user → user pays from Telegram Wallet → Bekena detects on-chain payment → webhook fires to your server → bot fulfills the order and messages the user.

Step 1: Create a Telegram Bot

If you don't have one, talk to @BotFather on Telegram, create a new bot, and save your bot token. Your bot will handle the payment flow conversation.

Step 2: Create a TON Invoice via Bekena API

javascript
const response = await fetch('https://api.bekena.com/v1/payments', { method: 'POST', headers: { 'Authorization': `Bearer ${process.env.BEKENA_API_KEY}`, 'Content-Type': 'application/json', }, body: JSON.stringify({ amount: '9.99', currency: 'TON', order_id: `tg_${userId}_${Date.now()}`, metadata: { telegram_user_id: userId }, webhook_url: 'https://yourapp.com/webhooks/bekena', }), }); const payment = await response.json(); // payment.address = TON wallet address // payment.amount = exact TON amount

Step 3: Send Payment Address to User

Your bot sends the payment address and amount to the Telegram user. Add a deep link to Telegram Wallet using the format: `ton://transfer/{address}?amount={nanotons}` — this opens the Telegram Wallet with pre-filled amount for one-tap payment.

Step 4: Handle the Webhook

javascript
app.post('/webhooks/bekena', (req, res) => { const sig = req.headers['x-bekena-signature']; // Verify HMAC-SHA256 signature if (!verifySignature(req.body, sig)) return res.status(401).end(); const { event, data } = req.body; if (event === 'payment.confirmed') { const telegramUserId = data.metadata.telegram_user_id; // Fulfill order await bot.sendMessage(telegramUserId, '✅ Payment confirmed! Enjoy your premium access.'); } res.status(200).end(); });

TON for Telegram Mini Apps

If you're building a Telegram Mini App (a web app embedded in Telegram), the same API flow applies. Use the Telegram WebApp SDK to get the user's Telegram ID, pass it to your server, create the Bekena invoice, and display the payment address in your Mini App UI. The Telegram Wallet integration makes the checkout experience seamless.

Settlement and Fees

TON payments settle in ~5 seconds with Bekena's standard 1% fee. At this speed, you can credit user accounts in near real-time — ideal for iGaming deposits, content unlocks, and in-app purchases where instant gratification matters.

Note: TON payments are available in the Bekena sandbox. Test the full flow with simulated TON transactions before going live.

Ready to accept crypto payments?

Start with a free sandbox account

Create Free Account →

Related articles

Developer

Building a Telegram Bot That Accepts Crypto Payments

Guide

Complete Guide to Accepting USDT Payments for Your Business

Guide

Best Crypto Payment Gateways in 2026: Bekena vs CoinGate vs BitPay vs Coinbase