Sell with Telegram Stars

The user wants to sell a digital product, guide, file, or access link directly in Telegram for Telegram Stars (XTR) without connecting Stripe, a card provider token, or any webhook.

Flow Preview

Overview

Sell a digital product for Telegram Stars (XTR) with zero external setup: no Stripe keys, no provider token, no webhooks — payment happens inside Telegram.

Who It's For

The user wants to sell a digital product, guide, file, or access link directly in Telegram for Telegram Stars (XTR) without connecting Stripe, a card provider token, or any webhook.

Setup Requirements

  • What digital product are you selling and how would you pitch it?
  • What link should buyers receive right after payment?
  • How many Stars should the product cost (the template ships with ⭐ 100)?
  • Who should be alerted about each sale?
  • Telegram Stars (XTR) may only be used for digital goods and services — that is Telegram's policy. Do not sell physical products with this template.
  • No payment provider token is needed for Stars: connect your Telegram bot and the payment block works as is.
  • To change the price: open the "Accept Stars Payment" block and edit the amount (a whole number of Stars), then update the ⭐ 100 price label in the product card message and on the Buy button. The setup wizard cannot change the price for you.
  • Test with a real Telegram account: send /start, tap Buy, and complete a Stars payment (Stars can be bought right inside Telegram). Also test the not-paid path by sending any text message instead of paying.
  • To receive sale alerts, press /start in your bot once, then tag your own contact with the alert tag you chose during setup (default "owner") on the Contacts page.

Node Breakdown

  • Start with /start in one sales flow
  • Show a product card with name, pitch, and the ⭐ 100 price
  • Buy button opens a native Telegram Stars (XTR) invoice from the ACCEPT_PAYMENT block
  • Paid branch: tag the buyer as customer, alert the owner by tag, deliver the product link
  • Not-paid branch: reassure that nothing was charged and offer a retry button that loops back to the same payment block

Details

Good to know

  • Telegram Stars need no payment provider setup: the ACCEPT_PAYMENT block with rail STARS and currency XTR charges Stars natively — a connected Telegram bot is the only requirement.
  • For XTR the amount is a whole number of Stars (100 = ⭐ 100); there are no cents/minor units.
  • ACCEPT_PAYMENT wires like a condition: the TRUE branch link runs after successful payment, the FALSE branch when payment does not complete (the buyer sends a message instead of paying, or the invoice cannot be sent).
  • The payment block's title, description, and amount are literal block config — {{var|...}} placeholders are NOT interpolated there, and briefing bindings cannot reach block-level payment config. Keep them generic literals and put product specifics into the surrounding messages.
  • Keep the retry button pointing back at the same ACCEPT_PAYMENT block instead of duplicating payment blocks.
  • timeoutSeconds on the payment block only expires the pending-payment wait; nothing fires automatically at timeout, so do not promise a reminder at expiry.

Keep in mind

  • Do not use this template for physical goods — Telegram Stars are for digital goods and services only (Telegram policy).
  • Do not turn this into a subscription: it is a one-time purchase. Recurring Stars billing is a different setup (recurring + subscriptionPeriod on the payment block).
  • Do not ask the user for a Stripe key or payment provider token — Stars payments need none.
  • Do not put {{var|...}} placeholders into the payment block's title or description — they are sent to Telegram literally, without variable interpolation.
  • Do not duplicate the payment block for retry; loop the retry button back to the same block.
  • Do not connect both payment outcomes to the same message.