
Crypto Payment Gateway for Telegram Bots 2026: Accept USDT in Chat (Full Setup)
Step-by-step guide to accepting crypto payments inside a Telegram bot in 2026. NOWPayments, Paymento, Cryptomus compared with real integration code.
Key Takeaways
- Best all-rounder: NOWPayments [Gold tier], official Telegram bot, REST API, 300+ coins, 0.5% fee, USDT-TRC20 included
- Best for paid groups and subscriptions: Paymento [Silver tier], auto-kicks lapsed members, auto-adds new payers, no-code setup in 10 minutes
- Cheapest fee: Cryptomus [Silver tier] at 0.4%, 20+ coins, native Telegram tooling
- Built-in option: Telegram Wallet Pay, TON/BTC/USDT only, in-app only, not a real merchant gateway
- 900M+ Telegram users in 2026 and a booming bot economy mean crypto-paid bots route around app store cuts and card processor fees entirely
Table of Contents
Why Telegram is the new commerce front-end
Telegram crossed 900 million monthly active users in 2026 and the bot economy on top of it has quietly become one of the largest pieces of consumer software nobody talks about. Paid signal groups, automated trading bots, AI assistants, NSFW gating, content drops, micro-SaaS, even full e-commerce storefronts now run inside chat. The reason is simple: a Telegram bot is a checkout page that ships in 200ms, runs anywhere, and pays no app store tax.
For builders, the three numbers that matter are: zero distribution friction (a t.me link is the install), zero platform cut (Apple and Google take 15-30% on equivalent iOS/Android purchases), and zero card processor fees if you accept crypto. A $20/month paid group on iOS gives Apple six dollars and Stripe sixty cents. The same group as a Telegram bot accepting USDT through NOWPayments gives NOWPayments ten cents. That is the economics that has pulled thousands of operators onto the platform.
The friction is that Telegram itself has no real merchant payment system for outside-of-Telegram money. You have to wire it up. The question is which gateway makes that easiest, and which one fits your model (one-off purchase, recurring subscription, marketplace, AI metered usage). The rest of this guide answers that, with real code for the recommended stack.
The 3 ways to accept crypto in a Telegram bot
Before you pick a gateway you need to pick an integration model. There are three, and they correspond to roughly three levels of effort and three levels of flexibility.
Option 1, Telegram Wallet Pay (built-in, in-Telegram only)
Telegram's native payment rail. Customers tap a button, pay from their Telegram Wallet, your bot gets a callback. Supports TON, BTC, and USDT. Works only inside Telegram. The customer must have a verified Telegram Wallet (a KYC-light step that not every user wants). Fine for tipping and small in-chat purchases, bad for serious merchant use because you cannot withdraw to a bank and you are locked into three coins.
Option 2, third-party gateway bot (no-code, fastest)
Most gateways now ship an official Telegram bot you add as an admin to your channel. NOWPayments runs @NOWPaymentsBot, Paymento runs @PaymentoBot, Cryptomus has its own. You configure pricing in the gateway dashboard, the bot handles invoice generation and member management. No code at all. Good for paid groups and single-product bots, limited for anything custom.
Option 3, custom bot + gateway REST API (most flexible)
You write the bot in Python, Node, or Go using python-telegram-bot or grammY, and you call the gateway's REST API to mint invoices and verify payments via webhook. This is the model for AI bots, multi-tier SaaS, metered usage, and anything where pricing is dynamic. Total integration time is 10-30 minutes if you have a webhook endpoint ready. NOWPayments, Paymento, and Cryptomus all expose clean REST APIs documented in our crypto payment API guide.
Gateway shortlist, ranked
Three gateways are credible 2026 picks for Telegram bot commerce. Each wins a different segment, the ranking below uses payyd's tier system plus the Telegram-specific tooling depth.
| Gateway | Tier | Fee | Coins | Telegram tooling |
|---|---|---|---|---|
| NOWPayments | Gold | 0.5% | 300+ | Official bot + REST API |
| Paymento | Silver | 0.5% | USDT, BTC, ETH + 15 | Auto-kick/auto-add |
| Cryptomus | Silver | 0.4% | 20+ | Bot + REST API |
Telegram Wallet Pay is excluded from the tier ranking because it is not a third-party gateway, it is Telegram's first-party rail with very different constraints. See the dedicated section below.
Ship a paying Telegram bot today
NOWPayments, 0.5% fee, 300+ coins, official Telegram bot, REST API, free signup
Start with NOWPayments →NOWPayments + Telegram, 10-minute setup
NOWPayments [Gold tier] is our pick for the default Telegram bot stack because the API is clean, the fee is low, and the coin coverage is the broadest in the industry (300+ including USDT-TRC20 with near-zero network cost). Here is the actual integration, end to end.
Step 1. Sign up at nowpayments.io, verify your email, and add the wallet address where you want settlement (your USDT-TRC20 address, for example). Generate an API key from the Store Settings page.
Step 2. Create a Telegram bot by messaging @BotFather, grab the bot token. Install python-telegram-bot and requests.
Step 3. Wire up the payment invoice creation. The code block below is the exact pattern, a /buy command that creates a NOWPayments invoice and returns the payment URL as an inline button.
import os, requests
from telegram import InlineKeyboardButton, InlineKeyboardMarkup, Update
from telegram.ext import ApplicationBuilder, CommandHandler, ContextTypes
NP_KEY = os.environ["NOWPAYMENTS_API_KEY"]
BOT_TOKEN = os.environ["TELEGRAM_BOT_TOKEN"]
async def buy(update: Update, ctx: ContextTypes.DEFAULT_TYPE):
user_id = update.effective_user.id
payload = {
"price_amount": 20,
"price_currency": "usd",
"pay_currency": "usdttrc20",
"order_id": f"tg_{user_id}",
"order_description": "Pro membership, 30 days",
"ipn_callback_url": "https://yourbot.com/webhook/nowpayments",
}
r = requests.post(
"https://api.nowpayments.io/v1/invoice",
headers={"x-api-key": NP_KEY, "Content-Type": "application/json"},
json=payload, timeout=10,
)
invoice_url = r.json()["invoice_url"]
kb = InlineKeyboardMarkup([[InlineKeyboardButton("Pay 20 USDT", url=invoice_url)]])
await update.message.reply_text("Tap below to pay:", reply_markup=kb)
app = ApplicationBuilder().token(BOT_TOKEN).build()
app.add_handler(CommandHandler("buy", buy))
app.run_polling()
Step 4. Expose a webhook endpoint at /webhook/nowpayments on your server. NOWPayments POSTs payment status updates (waiting, confirming, finished). When status is "finished", look up the order_id, grant the user access (add them to your paid group via bot.unban_chat_member followed by an invite link, or unlock the bot's paid features in your database).
That is the whole flow. End-to-end test on testnet takes about ten minutes. Walk-through of the webhook verification signature is in our NOWPayments review. For deeper API patterns see the crypto payment API guide.
Recurring subscriptions: auto-manage members with Paymento
If your business is a paid Telegram group, the hardest part is not collecting the payment, it is kicking people when their month is up and adding them back when they renew. NOWPayments can do this if you write the logic, but Paymento [Silver tier] does it out of the box, which is why we recommend it for this specific use case even though it sits at Silver overall.
Paymento's Telegram tooling does three things automatically:
- Auto-add on payment. When a user pays the recurring invoice, Paymento generates a one-time invite link and sends it via DM. The user joins, your group fills up without you touching anything.
- Auto-kick on lapse. Three days before the period ends, Paymento DMs a renewal reminder with a fresh invoice. If the user does not pay by the renewal date, Paymento calls Telegram's
banChatMemberfollowed byunbanChatMember(the clean way to remove someone without permanently banning them). - Auto re-add on resubscribe. A lapsed user who pays later in the same month is re-invited automatically and rejoins without you noticing.
The setup is no-code: add @PaymentoBot to your group as admin, pick a price and currency, paste the invite link Paymento gives you into your channel description. Done in 10 minutes. The trade-off vs NOWPayments is fewer coins (about 15 supported, USDT/BTC/ETH and the big EVM stablecoins) and slightly less polished UX. For a single paid group it is the right tool. For multi-product bots it is too narrow, use NOWPayments + your own kick logic instead. Full provider page: Paymento review. For a broader subscription comparison see recurring crypto payments.
Telegram Wallet Pay: when it makes sense
Telegram Wallet Pay is the built-in payment rail. It is not a third-party gateway, so it does not appear in our tier system. It does have a place, but a narrow one.
It is good for: in-Telegram tipping, low-friction one-tap purchases of digital goods to users who already have Telegram Wallet, anything where the customer is already deep in the Telegram ecosystem.
It is bad for: serious merchant flows. You are limited to TON, BTC, and USDT. You cannot withdraw to a bank. Your customer must verify a Telegram Wallet account, which is a friction point that maybe 20% of Telegram users have crossed. You do not get the standard webhook patterns that work the same across NOWPayments, Cryptomus, etc., so any future migration off Wallet Pay is painful.
If you are debating Wallet Pay vs a real gateway, the rule of thumb is: if your bot serves crypto-native users buying small things inside Telegram, Wallet Pay is fine. Anything else, use NOWPayments. The fee is identical (Wallet Pay is around 0.4-1.5% depending on coin), but flexibility is night and day.
Fees on a 100 USDT payment
Concrete numbers matter more than percentages. Here is the all-in cost when a Telegram bot user pays 100 USDT on TRC-20 (the most common Telegram bot flow because TRC-20 network fees are near zero).
| Gateway | Merchant fee | Network fee | You receive |
|---|---|---|---|
| NOWPayments [Gold] | 0.50 USDT | ~1 USDT (TRC-20) | 98.50 USDT |
| Paymento [Silver] | 0.50 USDT | ~1 USDT (TRC-20) | 98.50 USDT |
| Cryptomus [Silver] | 0.40 USDT | ~1 USDT (TRC-20) | 98.60 USDT |
| Telegram Wallet Pay | ~0.9 USDT | Bundled | 99.10 USDT (in-wallet only) |
Wallet Pay looks cheap until you remember you cannot move that USDT off Telegram without sending it through the regular blockchain anyway. Treat the 99.10 as 98.10 once you withdraw to your own wallet. Full all-in math for every gateway is in our fees compared deep-dive.
Ten minutes to a paying Telegram bot
Sign up free, generate API key, paste 30 lines of Python, ship.
Get NOWPayments API Key →FAQ
Can a Telegram bot accept crypto payments?
Yes, three ways: Telegram Wallet Pay (built-in, TON/BTC/USDT only), a gateway's official Telegram bot (no-code, e.g. @NOWPaymentsBot or @PaymentoBot), or a custom integration via REST API (most flexible, 10-30 minutes of setup).
What is the best crypto gateway for a Telegram bot?
NOWPayments for general bot commerce (Gold tier, 0.5%, 300+ coins, official Telegram bot, REST API). Paymento for recurring paid-group subscriptions (Silver tier, auto-kick lapsed members). Cryptomus for the lowest fee at 0.4% (Silver tier, 20+ coins).
How do I accept USDT in a Telegram bot?
Sign up for NOWPayments, generate an API key, then call POST /v1/invoice with currency set to usdttrc20. The API returns an invoice URL you wrap in an inline keyboard button. Webhook fires when the payment confirms. See the code block above for the exact 25-line Python implementation.
Can I run a paid Telegram group with auto-kick?
Yes. Paymento does it out of the box, no code required. NOWPayments supports it but you have to wire the kick logic yourself using Telegram's banChatMember endpoint when the subscription period expires.
Does Telegram Wallet Pay replace a real gateway?
No. It is good for in-Telegram tipping and small in-chat purchases to users who already have Telegram Wallet. It is limited to TON, BTC, and USDT, you cannot withdraw to a bank, and your customer must verify a Telegram Wallet account. Use it as a complement, not a replacement.
Do my bot users need to do KYC?
No. End users pay from their own wallet directly to the invoice address, they never see KYC. At the bot operator level, NOWPayments, Paymento, and Cryptomus all start with email-only signup; KYB only kicks in above 30,000-50,000 USD per month in volume. See our no-KYC gateways guide for the full breakdown.
Affiliate disclosure: payyd.co earns a commission when readers sign up to NOWPayments, Paymento, or Cryptomus through the /go/ links above. We rank gateways by independent merit (tier system, real fee math, Telegram-specific tooling). Paymento is recommended for subscription bots despite being Silver because it is genuinely the best tool for that job, commissions do not change the ranking.