Template

Product Sales with Stripe Checkout

Sell a product in Telegram with a real Stripe checkout. The bot shows your products, asks for the buyer's email, sends a secure payment link and confirms the payment. Your team gets an alert for every sale.

Who it's for: For anyone selling a digital product, course or paid consultation who wants buyers to pay without leaving the chat. Stripe is the default; Telegram Payments or YooKassa can be chosen at setup.

  1. /start
  2. πŸ›οΈ Welcome to Bright Academy! Short practical courses for small business owners. Pick a product below and I'll set up your secure checkout in seconds. πŸ‘‡
    πŸš€ Starter Kit β€” $29⭐ Pro Bundle β€” $79
  3. πŸš€ Starter Kit β€” $29
  4. πŸ“§ Almost there! What email should we send your receipt to?
  5. anna@example.com
  6. πŸ”’ Your secure checkout is ready! Tap below to pay safely with Stripe. πŸ‘‡ 🧾 Order reference: cs_a1B2c3D4
    πŸ”’ Open checkout
    πŸ›οΈ Back to catalog
  7. πŸŽ‰ Payment confirmed β€” thank you for your order! 🧾 Order reference: cs_a1B2c3D4 We'll send your purchase here shortly.
A buyer picks a product and pays with Stripe

How it works

  • Someone opens your bot and sees your product catalog with a button for each item
  • They pick a product and see a detail card with the price
  • The bot asks for their email, so you (and Stripe) have a receipt address on file
  • It creates a secure Stripe Checkout session and sends a "Pay now" button with the real payment link β€” nothing to copy or paste
  • The buyer pays on Stripe's own hosted page; card details never touch Telegram or your bot
  • A separate webhook flow listens for Stripe's payment confirmation and only reacts to events actually marked paid, so nobody gets a "thanks for your order" message for a payment that never went through

Setup requirements

  • Connect your Telegram bot: Settings β†’ Bots β†’ paste the token from @BotFather.
  • Stripe (default): keep the Stripe module installed, add your STRIPE_SECRET_KEY in the module's own setup form, and check the amount, currency, success URL, and cancel URL on the checkout step. Get your keys at https://docs.stripe.com/keys.
  • Stripe fulfillment: open the "Stripe Payment Fulfillment" flow, copy the Full Webhook URL from its Start block, and paste it into Stripe Dashboard β†’ Developers β†’ Webhooks β€” that's what tells the bot a sale actually happened.
  • Telegram Payments instead: connect a provider in @BotFather β†’ Payments, paste the provider token in FlowCastle under Bot Settings β†’ Card payments, and set your real price on the payment block.
  • YooKassa instead: install the YooKassa module, add your shopId and secretKey in its own setup form, and point the YooKassa webhook at the "Stripe Payment Fulfillment" flow's start block.
  • Replace the two sample products β€” names, descriptions, and prices β€” with your real offer before publishing.
  • Press Deploy, then run one real test purchase before sharing the bot with buyers.
  • Want sale alerts? Tag your team's contacts "staff" on the Contacts page β€” the fulfillment flow already notifies everyone carrying that tag.

Details

Good to know

  • Stripe is the default rail: it's wired in through the installed Stripe module, so there's no card form to build and no raw checkout link to paste β€” buyers get a tappable "Pay now" button instead.
  • During setup you can pick Telegram Payments (cards via a provider you connect in @BotFather, or Telegram Stars) or YooKassa instead β€” the payment step gets rebuilt around whichever rail you choose.
  • Your Stripe secret key lives in the Stripe module's own setup form, never in the chat or in a variable a visitor could see.
  • The two sample products (with sample prices) ship ready to test β€” swap in your real product names, descriptions, and prices before going live.
  • The confirmation message and the staff alert only fire for Stripe events whose payment status is actually "paid" β€” a cancelled or still-pending checkout never triggers a false "thank you".
  • Everything β€” product cards, prices, the email prompt, and the checkout copy β€” is editable afterwards in the visual editor.
  • Out of the box, delivery is by hand: the buyer gets a thank-you and your staff get a sale alert. For instant delivery, put the download link, file, invite, or course access into the payment-confirmed message before launch.

Common questions

  • Decide which payment rail to use: Stripe, Telegram Payments, or YooKassa.
  • Decide what you're selling, and at what price and currency.
  • Decide what buyers should get right after paying β€” a file, an invite link, course access, or a personal follow-up.
  • Decide whether collecting an email before checkout matters for your business (receipts, marketing, support).

Keep in mind

  • Don't leave the two sample products live β€” replace their names and prices with your real offer before sharing the bot.
  • Don't skip the Stripe webhook step β€” without it, the bot never finds out a payment succeeded, so buyers won't get their confirmation or their product.
  • Keep your Stripe secret key in the module setup, never in a chat variable or message.
  • If you switch payment providers later, double-check the payment step still matches β€” Stripe, Telegram Payments, and YooKassa aren't interchangeable without re-wiring that step.

The flow behind this bot

This is the whole flow you get. Once you add the template, you can change any message, button or step.

Read-only preview Β· 2 flowsOpen full-screen preview β†—

Ready to build on this?

Clone the template into your workspace and edit every message, button and action β€” nothing is locked.