

You have a Telegram Mini App, you sell something through it, and you would rather take USDT than match bank transfers to orders by hand every evening. Whether you can depends on one thing: what the buyer gets for his money.
Sell him something he uses up inside Telegram, and the payment goes through Stars. Stars are the currency users buy from Telegram and spend inside bots and Mini Apps. Access to a closed channel, a subscription, lives in a game: all of that is Stars, and crypto there is against the rules. Sell him something he gets outside the messenger, like a parcel, a repair or a consultation, and you may take USDT.
For example, Artem runs one Mini App with two businesses inside it: a board-game shop that ships boxes to the door, and a paid club in a private channel. He can move the shop to USDT. The club stays on Stars.
Below: what a Star actually pays you, where the line for crypto runs, what a USDT payment costs on TON, and how to wire both. TON is the blockchain Telegram's apps are tied to, and inside a Mini App it is the only one you may touch. If the chain itself is new to you, here is how the TON network works and what its coin is called now.
Before you pick a wallet, a network or a payment service, sort your catalogue. For each item, ask what the buyer receives and where that thing lives afterwards. There are two answers.
You sort items, not businesses. One Mini App can hold both kinds: Artem's club falls in the first line, his shop in the second.

Digital goods and services consumed inside Telegram apps are paid for with Stars, and only with Stars. This covers bots and Mini Apps alike, and it is written into Telegram's terms for bot developers and into the documentation on paying with Stars.
So for a paid channel there is nothing to choose. Crypto there breaks the rules, and Telegram bans bots that break them — and with the bot goes the audience living inside it.
For the buyer the comfort is real: one tap, money he already keeps in Telegram, no leaving the chat. Its price is Telegram's rate, Telegram's schedule and Telegram's route out.
Stars have two prices: what a user pays Telegram to buy them, and what Telegram pays you after he spends them in your app. Only the second is your revenue.

Invoices, refunds and balances are documented in Telegram's payments documentation and in the Stars API reference.
For a developer this is the simpler of the two routes: no payment provider, no wallets, no network fee, nothing to switch on in BotFather.
For a delivered box of dice and cardboard, the payment need not go through Telegram at all. Telegram takes no commission on payments through outside providers; the provider charges its own fee. Telegram's payments documentation gives the example of a card processor at about 3% plus a fixed few dozen cents.
Crypto is usually cheaper. But the line below decides what your checkout may look like:
So, the straight answer: yes, a Mini App shop can take USDT — on the app's own screens as USDT on the TON network, and off those screens on any network your payment service supports.
A payment service always lives on that outside path: it gives you a link or a checkout page, watches the blockchain and tells your server when the money arrives. CryptumPay is one of them: it accepts BTC, ETH, USDT in several networks, TRX, BNB, SOL, XRP and the TON network's own coin, charges 1% per successful payment with rates from 0.5% at volume, and converts what arrives into USDT.
A fair question here: a Mini App is an ordinary web page in a Telegram window, so why not put such a service's widget straight inside it? Because what rules that out is not the code but section 7 of Telegram's terms for bot developers: a Mini App with any crypto functionality must be based only on the TON network, may connect wallets only through TON Connect, and may not promote coins or wallets of other networks, directly or indirectly. A payment widget offers the buyer a list of coins across several networks — exactly what that clause forbids inside the app. The place for a widget and for a payment link is your own website and the chat with the buyer.
Which network your customers actually use has a guide of its own on which USDT network to accept in a business. The wider picture is in a piece on taking crypto payments in Telegram.
Two of those three names are the same thing. The network's coin used to be called Toncoin, ticker TON. Since 15 June 2026 it is called Gram, ticker GRAM. The third name belongs to the blockchain, and the blockchain kept it: still The Open Network, still TON.
Nothing happened to anyone's money: no swap, no migration, 10 Toncoin simply became 10 Gram, addresses and balances unchanged. The name comes from Telegram's own 2018 coin project, stopped by the SEC in the United States; Telegram returned over 1.2 billion dollars to investors and paid an 18.5 million dollar penalty in 2020.
Say the naming once, plainly, to buyers and to support. Many wallets still show the old name, and a buyer who sees "Toncoin" in his wallet and "Gram" on your payment screen decides he is in the wrong place and leaves. The current naming sits on the network's site.
Worth one more line for customers: there was no swap, so there is nothing to claim. Any site offering to exchange old coins or to "claim GRAM" is a scam.
The transfer itself costs pennies. What surprises people is what the sender has to attach to that transfer.
USDT here is a jetton — a token that lives in its own small contract next to your wallet, not in the wallet itself. To move it, the wallet sends that contract a message and attaches about 0.1 Gram to cover the work along the way. Only a few cents' worth of that gets spent, and the rest comes straight back to the sender.
So a USDT payment costs a few cents, not 0.1 Gram. But the sender must still have that 0.1 Gram in his wallet when he presses send. The exact figure depends on his wallet and on whether your side already has a jetton wallet for USDT; the TON documentation on jetton transfers has the mechanics.
If you would rather see what senders actually spend than work it out from the mechanics, there is a measured answer. Every month we read real USDT transfers on TON and publish the median cost, separately for a recipient who already has a USDT jetton wallet and one who doesn't, next to the same figures for other networks: what a USDT transfer on TON costs in practice.
Here is the failure you will meet most often: a customer holds 50 USDT and no Gram, taps pay — and his wallet refuses to send, because there is nothing to attach to the transfer.

From his chair that reads as "this shop is broken". He will write to support, or just leave.
The fix is timing, not technology: tell him before he opens his wallet. On the payment screen, next to the amount, say that a USDT transfer here needs about 0.1 Gram sitting in the wallet, and that most of that Gram comes straight back. Every network with a separate fee coin has this trap; the ways out are in a piece on a transfer that will not leave without coin for the fee.
One decision comes before any code: who watches the blockchain for you.
The steps that follow are the in-app build; with a service, the middle ones are its job.
The buyer taps confirm, sees a checkmark and considers the deal done. For your shop that checkmark means one thing: a transaction was signed and sent. It still has to reach the network, get confirmed and match a specific order for the right amount.
A screenshot proves nothing either. It can show an unconfirmed transaction, a transfer on another network or a payment for someone else's order — and it can itself be a picture edited in two minutes. Until your backend has seen the money, the box stays on the shelf.
In practice this is a status model — one status per state, one rule for each. A payment service hands you the same over a webhook: CryptumPay sends one on every status change, and the statuses run created, pending, crediting, finished. Ship on the last one.
Support needs the same map: when a customer writes "I paid", the answer depends on the status of his order. That lookup is in a guide on how to verify a crypto payment.
For access sold inside Telegram there is no choice: it is Stars, and the only decision left is your price, worked back from the payout rate above.
For goods and services delivered outside, Stars drop out of the picture — they are the required way to pay for digital goods, not a universal one — and two real routes are left:
Plenty of Mini Apps end up doing both at once, the way Artem does: the club on Stars, the delivery orders on crypto.
What you sell decides how you may be paid, item by item.
Anything the buyer consumes inside Telegram is Stars: quick to wire, about 1.3 cents per Star to you, up to 21 days before you can move the money.
Anything delivered outside the messenger may be paid in crypto — on the app's own screens that means the TON network.
A USDT transfer there costs a few cents, but the buyer needs about 0.1 Gram in his wallet, so warn him before he opens it.
And never treat a signature as settlement: ship when your backend has seen the money.
Do I need Gram in my own wallet to receive USDT?
No. The fee coin is spent by the sender, who attaches about 0.1 Gram to the transfer. Part of that sets up a jetton wallet on your side if you have never held USDT here; the rest goes back to him.
Can I show a USDT address on TRON inside the Mini App?
No. A Mini App that works with a blockchain may work with the TON network only, and may connect wallets only through TON Connect. A payment page outside the app is another matter: the restriction ends where the app does.
What if the buyer sends 99 USDT instead of 100?
Treat that order as unpaid until a human decides otherwise. A short payment usually happens because an exchange took its withdrawal fee out of the amount sent. Decide the rule in advance — accept small shortfalls up to a limit, or ask for the difference — and put it in the support script, because the transfer cannot be reversed.
Can I take Stars for shipped goods too?
No. Stars are the required way to pay for digital goods used inside Telegram, and a parcel is not one of those. It goes an outside route instead: a payment provider you connect yourself, priced in Telegram's documentation as a card processor at about 3% plus a fixed few dozen cents, or a crypto checkout, normally the cheaper of the two.
Create an account and connect the checkout yourself, or talk to sales and we will plan the integration with you.