Refunds and Chargebacks in Telegram Payments: What You Actually Control
Refunds and Chargebacks in Telegram Payments: What You Actually Control
Sell digital goods with a card processor and you inherit a problem: chargebacks. A customer disputes a payment with their bank months later, the bank sides with them by default, you lose the revenue, the goods, and a fee on top. For digital products — non-returnable, instantly delivered, impossible to prove consumption — it is a structural weakness of the whole category.
Telegram Stars work differently, and the difference is the most underrated advantage of the payment method.
There are no chargebacks
Your customer has no card in this transaction. They spent Stars, a balance they topped up beforehand. There is no bank to appeal to and no acquirer to rule against you.
Every refund on Stars happens because you chose to issue it. No third party can reverse a payment against your objection.
That is genuinely rare in digital commerce, and it changes how you can operate. You can sell to regions typically written off as high-risk. You don't need chargeback-ratio monitoring. You don't need to price in a dispute allowance.
What that obligates you to do
The flip side is that Telegram holds you responsible for handling payment problems yourself, and this is not optional.
Your bot must implement /paysupport. Telegram's Bot Payments documentation states that bots must respond to this command and process user requests about payment issues. It is a stated requirement, not a suggestion, and it is the first thing to check if you are reviewing an existing bot.
Refunds go through refundStarPayment. The API lets you refund a Stars purchase directly. You need the user's ID and the transaction ID, both available from the successful payment object — so store them at the time of purchase. Reconstructing them later is unpleasant.
The design intent is clear: Telegram removed the dispute mechanism and handed you the responsibility that came with it.
Build these three things
1. A /paysupport handler that actually helps
Not a stub. It should tell the user what to do, what you need from them, and how long you take. A minimum viable version:
Payment problem? Send
/paysupportwith a short description of what went wrong. Include roughly when you paid and what you were buying. We reply within 24 hours. Refunds are issued within 7 days of purchase if the product hasn't been downloaded.
2. Transaction logging at the moment of purchase
Store the user ID, transaction ID, product, Star amount and timestamp on every successful payment. Without this you cannot refund anyone, and you will discover that at the worst moment.
3. A written refund policy the bot can show
Because you control refunds entirely, your policy is the actual rule — there is no processor's terms overriding it. Write it down and let the bot display it.
What a refund does to your balance
Two consequences people miss.
Refunds draw down your Stars balance, so a refund issued after you have withdrawn can put you in an awkward position. Keep a buffer rather than withdrawing to zero.
The 21-day hold interacts badly with refunds. Much of your balance may be locked at any time. If refunds land against a balance that is mostly held, your withdrawable figure falls faster than your total. Another reason not to run at zero.
A policy that works for digital goods
Refund policy for instantly-delivered digital products is genuinely hard: you cannot take the product back. Some principles that hold up:
Be more generous than you feel like being. Refunding an unhappy customer costs you one sale. Refusing them costs you a public complaint in a channel where your other customers are watching. On Telegram, where communities are visible and vocal, reputation is worth more than the disputed amount almost every time.
Set a clear window. Seven or fourteen days from purchase. Unlimited refunds invite abuse; no refunds invite anger.
Say what voids it, plainly. "Refundable unless the file has been downloaded" is enforceable if you track downloads, and understandable to a customer.
Handle duplicate purchases automatically. The most common legitimate refund request is an accidental double purchase. Detect it and refund without being asked — it costs nothing and buys real goodwill.
Track your refund rate. A rising rate is product feedback wearing a disguise: unclear description, oversold outcome, broken delivery. The number is telling you something before your reviews do.
Refund abuse, and why it's mostly not a problem
The obvious worry: with no chargeback system, does refund abuse run rampant?
In practice the structure works against it. Refunded Stars return to the user's Star balance, not to their bank — they cannot cash out through you. A serial refunder ends up with a large Star balance and nothing else, which is a poor scam. And you can simply stop serving a user who abuses the policy.
The realistic pattern is a small number of users refunding repeatedly. Track refunds per user, and if someone crosses a threshold, decline further sales. You have that power; a card processor never gave it to you.
The advantage worth pricing in
When you compare Stars against card processing on fees alone, Stars look expensive. Add the chargeback column and the comparison shifts.
No chargeback fees. No dispute ratio to protect. No account termination risk from a bad month. No fraud filters rejecting legitimate customers in regions your processor doesn't like. For digital goods specifically — the category card processors treat as high-risk almost by definition — that removes an entire class of business risk.
It rarely appears in comparison tables. It should.
Based on Telegram's Bot Payments documentation and platform behaviour as of September 2026. API methods and requirements change — check the official documentation before implementing.