Accept Payments in Telegram: Stars and Card Providers

The Payment block sends a real Telegram invoice from inside a flow. How to price it in Stars or in cards, what each exit means, where the sale is recorded, and what the block will not do.

5 min read·Last updated: 2026-10-04

01Two ways to get paid: Stars and cards

The Payment block sends a real Telegram invoice from inside a flow. The person pays without leaving the chat, and the flow continues down one of the block's two exits: Paid or Not paid.

A Payment block on the canvas between the offer message and its two follow-ups: Paid leads to the delivery message, Not paid to a softer one

Each Payment block uses one of two payment methods:

  • Telegram Stars — Telegram's own in-app currency, currency code XTR. No provider and no keys. The price is a whole number of Stars. Telegram expects Stars for digital goods sold inside Telegram.
  • Card — a real-money charge through a payment provider such as Stripe, connected to your bot in @BotFather. One setup, then every card block on that bot uses it.

02Add the block

Press the + button on the canvas and pick Payment. The same menu appears if you drag a connection out of a block's exit and drop it on empty canvas — then the new block arrives already wired.

The canvas Add menu, with Payment listed among the node types

On the canvas the node shows the product title, a Stars or Card badge and the price, so a flow's price list is readable without opening anything.

03Telegram Stars need no setup

Click the block and the editor opens on the left. Payment method sits at the top — leave it on Telegram Stars.

The payment editor on the Stars rail: product title, description, price of 250 Stars, currency locked to XTR

Four fields matter:

  • Product title — up to 32 characters. It is the headline on the invoice.
  • Description — up to 255 characters. What the buyer gets.
  • Price (Stars) — a whole number, at least 1.
  • Wait for payment, seconds (optional) — you can leave it empty. It does not send anyone to Not paid when the time runs out (more on that below).

Currency is locked to XTR here; there is nothing to type.

One limit to plan around: title, description and price are literal text. Variables are not filled in inside them, so one block sells one thing at one price. Two prices means two blocks.

04Cards need a provider token

A provider token is a secret key that links your bot to a payment company. Switch Payment method to Card and the editor spells out the one-time setup.

The payment editor on the Card rail, showing the provider setup warning and the price in minor units

Price changes meaning for cards: it is the smallest unit of the currency, so 999 with Currency USD is $9.99.

The token belongs to the bot, not to the block. In Telegram: @BotFather → /mybots → your bot → Payments → connect a provider. Then, in FlowCastle, open Settings → Bots → your bot and paste it into Card payments (provider token).

The Card payments (provider token) field in bot settings, with the Not connected tag and the BotFather instructions underneath

The tag flips from Not connected to Connected once you save, and the bot restarts to pick the token up. Stars ignore all of this.

05Wire both exits

Paid is the happy path: send the file, hand over the link, add a tag, subscribe the buyer to a sequence.

Not paid runs when the person sends a message instead of paying. Tapping a button does not count as giving up — the flow keeps waiting for the invoice.

Time passing does nothing on its own. If the person simply goes quiet, the flow never moves to Not paid — not even when Wait for payment, seconds is filled in. So do not write "we'll remind you in 15 minutes" on that branch. Write it as a reply to the message the person just sent.

06Record the sale

The Payment block collects money. It does not write an order. To get the sale onto the Orders page and into the contact's card, put an Action block on the Paid exit with a Create Order action (amount and currency). That block is also the natural home for Add tag and a Notify by tag message to yourself.

07Test before you deploy

Press Test and walk the flow. Nobody is charged: the test chat shows a mock invoice headed Test mode — simulated payment with a Pay … (test) button. Tap it to walk the Paid branch; type a message instead to walk Not paid. Then publish it — Test and Deploy Your Bot covers the rest.

08What the block will not do

  • No subscriptions. One-time charges only. There is no recurring billing in the Payment block today, on either rail.
  • No refunds. FlowCastle has no refund action or button. Card refunds happen in your provider's dashboard.
  • Not in Operations. A scheduled operation has nobody to invoice, so payment blocks only run in chat flows.

09When to use Stripe or YooKassa instead

Charging someone inside the chat is this block's job — do not install a module for that. Reach for the Stripe or YooKassa modules when the money is collected somewhere else: a hosted checkout page, a card subscription, or a webhook (an automatic notice one service sends to another) telling your bot that an invoice raised outside Telegram was paid. Modules: Connect Sheets, AI, Payments and More covers installing them.

10Start from the template

Sell with Telegram Stars is this article as a working flow: a product card, a 100-Star invoice, delivery on payment, and a retry loop on the other exit. Install it, then change the price and the copy.

11Next up

Your bot can take money. Now let it answer in its own words: The AI Chat Agent Node: Answer Questions From Your Knowledge Base.

Try it in your own bot

Build it on the free plan while the steps are fresh. No card required.

Build Your First Bot Free