Directual
Menu

Telegram Stars in 2026: How to Buy, Accept and Withdraw

Telegram Stars are Telegram’s currency for digital goods. How to buy Stars, accept them in a bot or Mini App via the Bot API (XTR) and withdraw via Fragment.

Telegram Stars in 2026: How to Buy, Accept and Withdraw

Telegram Stars are Telegram's built-in currency for digital goods and services: users buy them through Apple, Google, @PremiumBot or Fragment and spend them in bots, Mini Apps and channels. For developers, Stars are the only allowed way to sell digital goods inside Telegram; you accept them through the Bot API with the currency code XTR and withdraw earnings via Fragment at $0.013 per Star.

Below: what Stars are used for in 2026, how to buy them, what they are worth when you cash out, and how to accept Stars in a bot or Telegram Mini App, step by step, with and without code. Facts and limits were checked against Telegram's official docs in November 2026.

What are Telegram Stars?

Stars launched in June 2024 so that bots and Mini Apps could sell digital products (e-books, courses, game items, AI requests, subscriptions) in a way that complies with Apple and Google in-app purchase rules. Physical goods still go through regular Telegram Payments with third-party providers; digital goods must be paid in Stars, as stated in the Bot Platform Developer Terms.

Since launch the list of things you can pay for with Stars has grown well beyond bot invoices:

  • Digital goods in bots and Mini Apps: one-off purchases via invoices.
  • Subscriptions: recurring 30-day payments for bots, Mini Apps and paid channels.
  • Paid media: photos and videos in channels and bots unlocked for Stars.
  • Paid reactions: users tip channel posts by sending Stars as reactions.
  • Gifts: users send gifts bought with Stars; some can be upgraded to unique collectibles that can be transferred or resold.
  • Paid messages: users can charge Stars for messages sent to them; per the Stars Terms of Service, the recipient gets 85% of the Stars paid.

Try it out: @directual_stars_bot is where you can give some tips to the Directual team. Below we show how this bot works on our platform.

__wf_reserved_inherit

How to buy Telegram Stars

Users top up their Star balance in three ways:

  • In-app purchase on iOS or Android, billed by Apple or Google.
  • @PremiumBot inside Telegram.
  • Fragment, paying with TON. Telegram's API docs note that Fragment also allows larger purchases.

If a user doesn't have enough Stars when paying an invoice, Telegram offers to top up right in the payment screen. Prices depend on the platform and region, and Telegram can change them at any time; app stores add their own fees and conversion. Purchases of Stars are final: Telegram doesn't refund them, and Stars bought for personal use can't be sold or withdrawn. In some regions buying Stars is blocked.

Stars pricing at launch (June 2024):

__wf_reserved_inherit

Source: Telegram blog

How much is a Telegram Star worth, and how to withdraw

Stars that a bot, Mini App or channel earns can be converted into rewards. The numbers below are from the Bot Platform Developer Terms and Telegram's API docs as of November 2026:

What Value
Reward on withdrawal $0.013 per Star ($13 per 1,000 Stars)
Spent on Telegram Ads for your bot $0.02 of ad credit per Star
Hold period up to 21 days after Stars are received
Minimum withdrawal 1,000 Stars (per Telegram's client config)
Where Fragment, paid out to a TON wallet

The withdrawal flow: open your bot's or channel's balance in Telegram, start a withdrawal, and Telegram opens a Fragment page where you enter a TON wallet address. TON's native token, Toncoin, was renamed Gram in June 2026, so wallets and exchanges may show either name.

Note the gap between the purchase price and the payout: users pay noticeably more per Star than the $0.013 the developer receives, because the difference covers app store fees and Telegram's margin. Spending Stars on Telegram Ads is the better rate if you plan to promote your bot anyway.

If you'd rather receive crypto directly without Stars, see our lesson on integrating TON payments into a Directual app. Keep in mind that for digital goods sold inside Telegram, Stars are mandatory.

How to accept Telegram Stars in a bot: the Bot API

Payments in Stars go through the standard Bot API payment methods. Here's the flow, per Telegram's Stars payment guide and the Bot API reference.

To get started, you need a Telegram bot. Create one using @BotFather if you haven't yet (our Telegram bot lesson walks you through it).

  • Send an invoice with sendInvoice: currency = XTR, provider_token = empty string, and prices with exactly one item (the amount in Stars).
  • Wait for an Update with pre_checkout_query.
  • Approve or decline it with answerPreCheckoutQuery within 10 seconds, or the payment is cancelled.
  • Wait for the message with successful_payment.
  • Store the telegram_payment_charge_id from SuccessfulPayment: you need it for refunds.
  • Deliver the goods or service.

Deliver only after successful_payment arrives; answering the pre-checkout query doesn't mean the money has moved.

Invoice options

  1. Invoice in chat: sendInvoice posts an invoice with a photo, description and a Pay button. The start_parameter controls forwarding: with it, forwarded copies get a URL button back to the bot instead of a Pay button; without it, forwarded copies can be paid too.
  2. Invoice link: createInvoiceLink returns a URL you can share anywhere or open inside a Mini App.
  3. Inline invoice: if your bot supports inline mode, use InputInvoiceMessageContent so users can share invoices in their chats.

Stars in Mini Apps

A Mini App gets an invoice link from your backend (createInvoiceLink) and opens it with Telegram.WebApp.openInvoice(url, callback). The callback and the invoiceClosed event return a status: paid, cancelled, failed or pending (Mini Apps docs). The bot still receives successful_payment, and that remains the signal to deliver.

Subscriptions, refunds and balance

  • Subscriptions: pass subscription_period = 2592000 (30 days, currently the only allowed value) to createInvoiceLink; the price can't exceed 10,000 Stars. Cancel or resume renewal with editUserStarSubscription.
  • Refunds: refundStarPayment with the user ID and telegram_payment_charge_id returns the Stars in full.
  • Balance and history: getMyStarBalance and getStarTransactions, which also show Fragment withdrawals.
  • Testing: you can try Stars payments in Telegram's test environment before going live.

Live checklist

Before you launch a merchant bot:

  • Turn on 2-step verification for the Telegram account that owns the bot.
  • Disputes and chargebacks are on you, not Telegram.
  • Show your Terms and Conditions on /terms and make sure users accept them before buying.
  • Handle payment issues via /paysupport: the developer terms require every bot that takes payments to respond to it. Add a general /support too.
  • Keep backups of payment data, including charge IDs.
  • Read the Telegram Terms of Service and the Bot Platform Developer Terms.

Stars and AI bots

A common pattern in 2026 is an AI assistant or agent living in a Telegram bot: the model costs you money on every request, so you charge for usage. Stars fit this well: sell request packs with one-off invoices, or a monthly plan via a Stars subscription, and keep each user's balance in your database. The payment logic stays the same as above; the bot just checks the balance before calling the model.

Building a Telegram Stars bot on Directual

All of the above can be built without code on Directual. Assuming you've already created a bot and have its token (see the Telegram integration docs), here's how to connect it:

  • Go to the Plugins section in your Directual app, pick Telegram, paste the bot token and install the plugin.
  • Open the Database section and find the Integrations/Telegram folder (it's created automatically).
  • You'll see 5 data structures: Incoming Telegram messages, Outgoing Telegram messages, Users Telegram, Chats Telegram, and Keyboards Telegram (Legacy).
  • A webhook for incoming messages is set up, along with a system scenario called "Parse incoming telegram messages" (leave that one alone).
  • Send a text, picture, file or location to the bot and check what lands in TMessageIn: text goes into the "text" field, images, files and locations are stored as Telegram file IDs.
  • Create a scenario triggered by new objects in TMessageIn, add a Telegram step, configure it, then publish and run the scenario.

Configuring the workflow for Telegram Stars

Step 1. Sending an invoice

Use the Telegram step in "Professional mode" and call the method sendInvoice, specifying in the body: title, description, prices and currency = XTR (the code of Telegram Stars).

__wf_reserved_inherit

__wf_reserved_inherit

Step 2. Catching pre_checkout_query

When a user pays, Telegram sends an update with the pre_checkout_query parameter. Catch it and respond by calling answerPreCheckoutQuery to approve the transaction. Then handle the successful_payment message to deliver the purchase.

__wf_reserved_inherit

__wf_reserved_inherit

__wf_reserved_inherit

Integrating Telegram Mini Apps with Directual

Setup is described in the TMA plugin docs.

Step 1. Install the free TMA plugin from the Marketplace in your Directual app

The plugin has two settings:

__wf_reserved_inherit

Auto log in. True logs users in automatically when they open the Mini App. False makes them click "Log in with Telegram". Use False if you also allow other login methods like email or Google.

Disable registration. True means users can't log in unless a matching WebUser ID already exists. False creates a WebUser ID automatically on first login.

If someone registered via the Mini App later wants to log in from a web browser, they'll need a username and password. You can generate a one-time password and send it through your Telegram bot.

Step 2. Deploy your Directual app to Telegram

If you don't have a bot yet, start in BotFather with the /newbot command. Then attach your Directual app to the bot as a web app with the /newapp command and follow BotFather's instructions.

__wf_reserved_inherit

That's it. When testing, remember that login triggers automatically when the user reaches the login page. To take Stars inside the Mini App, generate an invoice link in a scenario with createInvoiceLink and open it on the front end with Telegram.WebApp.openInvoice (a few lines of custom JS).

Afterword

Want to talk about Telegram Stars, Mini Apps or bots on Directual? Join our communities; the links are below.

Cheers, happy building!

FAQ

How much is one Telegram Star worth?

When a bot or channel withdraws earned Stars, Telegram pays $0.013 per Star ($13 per 1,000 Stars) via Fragment. Users pay more per Star when buying, and the price depends on the platform and region.

Can I withdraw Telegram Stars I bought for myself?

No. Stars bought for personal use can’t be sold, transferred or withdrawn. Only Stars earned by bots, Mini Apps, channels and creators can be withdrawn through Fragment.

How long does it take before earned Stars can be withdrawn?

Stars can stay on hold for up to 21 days after they are received. A withdrawal requires at least 1,000 Stars on the balance and is paid out to a TON wallet via Fragment.

Do I need a payment provider token to accept Telegram Stars?

No. For payments in Stars you pass an empty provider_token, set the currency to XTR and put exactly one item in prices.

Can a Telegram Mini App accept payments in Stars?

Yes. Your backend creates an invoice link with createInvoiceLink, and the Mini App opens it with Telegram.WebApp.openInvoice. Deliver the purchase after the bot receives successful_payment.

Can I build a Telegram Stars bot without coding?

Yes. On Directual you connect the Telegram plugin, send invoices with the sendInvoice method and currency XTR, and handle pre_checkout_query in a visual scenario.
← Back to list