{"id":8569,"date":"2026-08-04T21:51:47","date_gmt":"2026-08-04T21:51:47","guid":{"rendered":"https:\/\/dextora.agency\/?post_type=insight&#038;p=8569"},"modified":"2026-08-04T21:51:47","modified_gmt":"2026-08-04T21:51:47","slug":"telegram-stars-digital-goods-payment-rules","status":"publish","type":"insight","link":"https:\/\/dextora.agency\/en\/insights\/telegram-stars-digital-goods-payment-rules\/","title":{"rendered":"Telegram Stars: Why You Cannot Sell a Course for a Card Payment"},"content":{"rendered":"<p>The request arrives in almost identical wording every few months. A client has a Telegram audience, a course or a paid community to sell, and a developer who has already been told to just add a card form to the bot. Sometimes there is a payment provider account sitting ready. The answer is that this cannot be built the way they imagine, and the reason is not a Telegram quirk that a clever workaround gets around. It is app store policy, passed straight through to you.<\/p>\n<p>This piece sets out what the rule actually says, why it exists, what a compliant bot has to implement, who carries the chargeback, and what the Stars conversion rate does to your pricing before you ever quote a number.<\/p>\n<h2>The rule, stated exactly<\/h2>\n<p>Telegram splits its payments documentation into two halves, and the split is the whole story. The <a href=\"https:\/\/core.telegram.org\/bots\/payments\" target=\"_blank\" rel=\"noopener\">page on physical goods and services<\/a> covers ordinary currencies and third-party payment providers. The <a href=\"https:\/\/core.telegram.org\/bots\/payments-stars\" target=\"_blank\" rel=\"noopener\">page on digital goods and services<\/a> covers everything else, and it is unambiguous:<\/p>\n<blockquote><p>All payments via bots and mini apps for digital goods and services inside Telegram apps must exclusively use Telegram Stars, in order to comply with the guidelines of the App Store and Play Store.<\/p><\/blockquote>\n<p>Mechanically that means the currency field of your invoice carries the tag XTR, the <strong>provider_token<\/strong> parameter is left empty because there is no third party in the loop, and the user pays with Stars they acquired from Telegram beforehand. Stars arrived in Bot API 7.4 in May 2024, with transaction listing following in 7.5 and recurring Star subscriptions in 8.0 that November. The <a href=\"https:\/\/core.telegram.org\/bots\/api-changelog\" target=\"_blank\" rel=\"noopener\">Bot API changelog<\/a> is the only place worth checking for what the current method surface looks like, because it moves several times a year.<\/p>\n<h2>Why the restriction exists, and why that matters<\/h2>\n<p>A rule you understand is a rule you can plan around. Telegram states the reason in its own FAQ rather than leaving it to interpretation: to remain in compliance with Google&#8217;s payment policies and with Apple&#8217;s review guidelines 3.1.1, 3.1.1(a) and 3.1.3(b), a bot or mini app must use Stars for digital goods sold inside Telegram apps, regardless of any other web portals or payment providers you may have set up outside the Telegram ecosystem.<\/p>\n<p>The logic is short. Telegram is an application distributed through the <a href=\"https:\/\/developer.apple.com\/app-store\/review\/guidelines\/\" target=\"_blank\" rel=\"noopener\">App Store<\/a> and <a href=\"https:\/\/support.google.com\/googleplay\/android-developer\/answer\/10281818\" target=\"_blank\" rel=\"noopener\">Google Play<\/a>. Both stores require that digital content consumed inside an app be sold through their own in-app purchase systems. Telegram Stars are that in-app purchase, wrapped so that thousands of independent bots can share one compliant rail. Your bot lives inside Telegram, so your bot inherits the obligation.<\/p>\n<p>The <a href=\"https:\/\/telegram.org\/tos\/bot-developers\" target=\"_blank\" rel=\"noopener\">Bot Platform Developer Terms of Service<\/a> add a clause that deserves more attention than it usually gets: Telegram must follow Apple and Google&#8217;s definitions of digital goods and services, those definitions may change over time, and developers are told to reference the store documentation directly. In other words the boundary between digital and physical is not drawn by Telegram and is not permanently fixed. If you are close to the line, check the stores, not the messenger.<\/p>\n<h2>What you are selling, what you are allowed to use, what you must build<\/h2>\n<table>\n<thead>\n<tr>\n<th>What you are selling<\/th>\n<th>Allowed payment path inside Telegram<\/th>\n<th>What you must implement<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Online course, recorded lessons, PDF or file downloads<\/td>\n<td>Telegram Stars only, currency tag XTR<\/td>\n<td>sendInvoice with XTR and empty provider_token, \/terms, \/paysupport, refundStarPayment<\/td>\n<\/tr>\n<tr>\n<td>Access to a private channel or paid community, renewed monthly<\/td>\n<td>Stars, using Star subscriptions<\/td>\n<td>createInvoiceLink with subscription_period, editUserStarSubscription, renewal notices<\/td>\n<\/tr>\n<tr>\n<td>Software licence, unlocked features, in-app items in a mini app<\/td>\n<td>Stars only<\/td>\n<td>Same Stars flow, plus a durable record of entitlements outside Telegram<\/td>\n<\/tr>\n<tr>\n<td>Physical goods shipped to an address<\/td>\n<td>Ordinary currency through a third-party payment provider<\/td>\n<td>provider_token, shipping address and options, the provider&#8217;s own dispute process<\/td>\n<\/tr>\n<tr>\n<td>Services performed in the physical world, such as an on-site repair<\/td>\n<td>Ordinary currency through a provider<\/td>\n<td>provider_token, terms, customer support, VAT handling in your own accounting<\/td>\n<\/tr>\n<tr>\n<td>Anything sold through your own website checkout, outside Telegram<\/td>\n<td>Whatever your payment provider supports<\/td>\n<td>Normal web commerce compliance, and no payment step inside the bot<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>The awkward cases sit between rows five and six. A live one-to-one consultation delivered over video is not obviously a physical service, and Telegram will not adjudicate it for you. Treat the store guidelines as the authority and, when the classification is genuinely unclear, design so that the payment happens on your own site rather than in the chat.<\/p>\n<h2>The compliance surface of a bot that takes money<\/h2>\n<p>The go-live checklist is short but non-negotiable, and it is the part most rushed builds skip.<\/p>\n<ul>\n<li><strong>\/terms<\/strong> or an equally easy route to your terms and conditions, which the buyer must confirm before purchase.<\/li>\n<li><strong>\/support<\/strong> or another clearly communicated support channel, with a stated commitment that Telegram support cannot help with purchases made through your bot.<\/li>\n<li><strong>\/paysupport<\/strong>, required by the developer terms specifically for payment issues. This is separate from general support and is the one people forget.<\/li>\n<li><strong>answerPreCheckoutQuery within ten seconds<\/strong>, or the transaction is cancelled. That is a real constraint on any synchronous stock or entitlement check.<\/li>\n<li><strong>Store the telegram_payment_charge_id<\/strong> from the successful payment update. Without it you cannot issue a refund later.<\/li>\n<li><strong>Deliver only after successful_payment.<\/strong> Answering the pre-checkout query is not a guarantee of payment, and treating it as one is a well-known way to give product away.<\/li>\n<\/ul>\n<p>None of this is heavy engineering. It is roughly a day of work that decides whether the bot survives its first dispute. The same discipline applies to the rest of the bot: we set out where conversational automation genuinely replaces a person, and where it does not, in our piece on <a href=\"https:\/\/dextora.agency\/en\/insights\/telegram-bot-instead-of-manager-when-automation-works\/\">using a Telegram bot instead of a manager<\/a>.<\/p>\n<h2>Refunds, disputes and who actually pays<\/h2>\n<p>Refunds are issued through <strong>refundStarPayment<\/strong>, and they return the full amount to the buyer with no penalty from Telegram. That is the easy half. The hard half is in the developer terms, which place the entire risk on the merchant: you are solely responsible for processing legitimate disputes, Telegram has no obligation to mediate, and if a dispute results in a refund the funds come out of your balance.<\/p>\n<p>Telegram goes further and explicitly discourages the real-time sale of digital products and virtual items that hold inherent value and cannot be reclaimed after a successful chargeback by the purchaser. Read that as written. If your product is instantly consumable and cannot be revoked, you are the one absorbing fraud. Failure to handle legitimate disputes can lead to Stars being debited from the balance, removal from the platform, a public scam label on the bot, and termination of the owner&#8217;s Telegram account.<\/p>\n<p>Practically this means an entitlement ledger you control, outside Telegram, so access can be withdrawn when money is returned. That is an integration question rather than a bot question, and it is the same architecture problem covered in our guide to <a href=\"https:\/\/dextora.agency\/en\/insights\/integrations-connecting-website-crm-warehouse\/\">connecting a site to a CRM and back office<\/a>.<\/p>\n<h2>The economics, stated honestly<\/h2>\n<p>Stars are not a currency you hold. Telegram&#8217;s terms are blunt about it: Stars on a bot balance are owned by Telegram and have no inherent value beyond a good-faith commitment to advertising credits and rewards. Two published rates matter.<\/p>\n<ul>\n<li><strong>Rewards: 0.013 USD per Star.<\/strong> This is what a developer can convert Stars into, processed through Fragment and paid outside Telegram.<\/li>\n<li><strong>Advertising credit: 0.02 USD per Star.<\/strong> Stars spent on Telegram Ads for your own bot are worth noticeably more than Stars taken as a reward.<\/li>\n<\/ul>\n<p>There is also a delay: Stars may not become available for rewards or ad credit for up to twenty-one days after receipt. And Telegram states directly that the reward value has no connection, direct or implied, to what a user paid to acquire the Star in any given region. Users buy Stars through Apple and Google in-app purchase, so the retail price they see already carries store commission and local VAT.<\/p>\n<table>\n<thead>\n<tr>\n<th>Your price in Stars<\/th>\n<th>Reward value at 0.013 USD per Star<\/th>\n<th>Advertising credit at 0.02 USD per Star<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>500<\/td>\n<td>6.50 USD<\/td>\n<td>10.00 USD<\/td>\n<\/tr>\n<tr>\n<td>2 500<\/td>\n<td>32.50 USD<\/td>\n<td>50.00 USD<\/td>\n<\/tr>\n<tr>\n<td>10 000<\/td>\n<td>130.00 USD<\/td>\n<td>200.00 USD<\/td>\n<\/tr>\n<tr>\n<td>50 000<\/td>\n<td>650.00 USD<\/td>\n<td>1 000.00 USD<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>That table is arithmetic on Telegram&#8217;s own published rate on the date of writing, not a forecast. Telegram states it sets the value at its sole discretion and that the figure may move. Two conclusions follow. First, price your product in Stars and then convert at the reward rate to see the revenue floor, rather than setting a euro price and dividing. Second, if you are already buying Telegram Ads, spending earned Stars on advertising is worth more per Star than cashing out, which is a genuine strategic option rather than a rounding difference.<\/p>\n<h2>Three architectures that work<\/h2>\n<p><strong>Full Stars checkout in the bot.<\/strong> Best for low-ticket, high-volume digital items where the friction of leaving the chat would kill the sale. Accept the reward rate as the cost of that convenience.<\/p>\n<p><strong>Bot as the funnel, website as the checkout.<\/strong> The bot qualifies, answers, and hands off to a page where an ordinary payment provider takes the money. Nothing is sold inside Telegram, so the Stars requirement does not apply. This is the standard answer for anything with a serious price tag, and it keeps your customer data, invoicing and refunds in systems you own. The trade-off is a drop-off at the handoff, which is measurable and usually smaller than the spread.<\/p>\n<p><strong>Split by product.<\/strong> Physical items and on-site services through a payment provider, digital add-ons in Stars, one bot, two flows. More code, but it matches how many businesses actually sell. Our work on <a href=\"https:\/\/dextora.agency\/en\/cases\/simple-study\/\">an education platform<\/a> and our <a href=\"https:\/\/dextora.agency\/en\/services\/telegram-bots\/\">Telegram bot development<\/a> practice both sit on this pattern, and it composes cleanly with the broader automation stack described in our guide to <a href=\"https:\/\/dextora.agency\/en\/insights\/marketing-automation-small-business-where-to-start\/\">where to start with marketing automation<\/a>.<\/p>\n<h2>Decisions to make before anyone writes code<\/h2>\n<ul>\n<li><strong>Classify every item you sell<\/strong> against the store definitions, not against intuition. The classification determines the payment rail, and the rail determines the build.<\/li>\n<li><strong>Decide where the money lands<\/strong> before designing the funnel. Retrofitting a checkout is far more expensive than choosing one.<\/li>\n<li><strong>Price against the reward rate<\/strong>, not against the sticker price a buyer sees. The gap between the two is not a fee you can negotiate.<\/li>\n<li><strong>Build the revocation path<\/strong> at the same time as the delivery path. Refunds are a first-class flow, not an edge case.<\/li>\n<li><strong>Ship \/paysupport and \/terms in version one.<\/strong> They are cheap now and expensive after a complaint.<\/li>\n<\/ul>\n<h2>The short version<\/h2>\n<p>Digital goods sold inside Telegram must be paid for in Stars, currency tag XTR, because Apple and Google require in-app purchase for digital content and Telegram passes that requirement through. Physical goods and real-world services can still use ordinary currencies and third-party providers. Any bot taking money owes \/terms, \/support and \/paysupport, and owes them before launch. Refunds run through refundStarPayment and the merchant carries the entire dispute and chargeback exposure, including a formal warning from Telegram against selling instantly consumable items that cannot be reclaimed. And the reward rate of 0.013 USD per Star, against an advertising credit of 0.02 USD per Star and a hold of up to twenty-one days, is a pricing input rather than an accounting detail.<\/p>\n<p>None of that makes selling in Telegram a bad idea. It makes it a design constraint you can either plan for at the start or discover at the worst possible moment.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Why digital goods in Telegram bots must be paid in Stars, what the App Store and Play rules have to do with it, which commands a paying bot owes, how refunds work and what the reward rate does to price.<\/p>\n","protected":false},"author":1,"featured_media":8557,"template":"","insight_category":[154],"insight_tag":[180,168,188],"class_list":["post-8569","insight","type-insight","status-publish","has-post-thumbnail","hentry","insight_category-guides","insight_tag-automation","insight_tag-business-process","insight_tag-pricing"],"acf":[],"_links":{"self":[{"href":"https:\/\/dextora.agency\/en\/wp-json\/wp\/v2\/insight\/8569","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dextora.agency\/en\/wp-json\/wp\/v2\/insight"}],"about":[{"href":"https:\/\/dextora.agency\/en\/wp-json\/wp\/v2\/types\/insight"}],"author":[{"embeddable":true,"href":"https:\/\/dextora.agency\/en\/wp-json\/wp\/v2\/users\/1"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/dextora.agency\/en\/wp-json\/wp\/v2\/media\/8557"}],"wp:attachment":[{"href":"https:\/\/dextora.agency\/en\/wp-json\/wp\/v2\/media?parent=8569"}],"wp:term":[{"taxonomy":"insight_category","embeddable":true,"href":"https:\/\/dextora.agency\/en\/wp-json\/wp\/v2\/insight_category?post=8569"},{"taxonomy":"insight_tag","embeddable":true,"href":"https:\/\/dextora.agency\/en\/wp-json\/wp\/v2\/insight_tag?post=8569"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}