Docs · Funnels and payments

How to accept payments right inside a Telegram funnel

The person reaches the "Payment" step, pays via SBP or by card, and the bot delivers access by itself. How to set it up in Craft with Lava — step by step, with the pitfalls.

Updated: October 17, 2026

How to accept payments right inside a Telegram funnel#

In short: Craft has a "Payment" funnel step. In Telegram the person gets "⚡️ Pay via SBP" and "💳 Pay by card" buttons, pays on the Lava page, and the bot continues the funnel by itself — sending a link to a channel, chat or file. The money goes straight to your Lava account; Craft takes no commission on sales.

Who this is for#

  • You sell a course, guide, access to a private channel or a consultation and want to take payments without manual work.
  • You're self-employed, a sole proprietor or a private individual — Lava works with all of these.
  • Your buyers pay from Russia (SBP and Russian cards) or from abroad (a separate button for foreign cards).

What you need#

  • A lava.top account with a verified payout method.
  • A ready funnel in Craft.
  • About 15 minutes.

Setup step by step#

Step 1. Create and publish a product in Lava#

In the Lava dashboard: Create → Digital product. Fill in the description, the "After payment" field (channel or chat links — Lava also emails them to the buyer) and the price. Then publish the product.

🔴 A draft doesn't count. Craft can't see an unpublished product — no invoice will be issued.

Step 2. Get the offerId#

The invoice needs an offerId — not the number from the product's address in your browser. The easiest way is in Craft: once Lava is connected, the settings page has a "Products and their ids" button.

🔴 The most common mistake is pasting the product id from the address bar. Payment then fails with "product not found".

Step 3. Connect Lava in Craft#

Settings → "Payments in funnels (Lava)". Paste your Lava API key (in Lava: Integrations → Public API) and click "Connect". Craft checks the key right away.

🔴 Never forward the key to anyone — not in messages, not in an AI chat, not in screenshots. It lets someone issue invoices in your name.

Step 4. Set up the webhook in Lava#

In Lava: Integrations → Public API → Add Webhook. URL — the address from the Craft settings page (https://craftopen.space/api/payments/webhook). Tick four events: Successful payment, Failed payment, Successful refund, Chargeback request received. Authentication — your service's API key; in the API key field, the secret from the Craft settings page.

🔴 The "API key" field takes the secret from Craft, not your Lava key. Without the webhook the bot never learns about the payment and won't deliver access.

Step 5. Collect the e-mail and add the "Payment" step#

Lava won't issue an invoice without the buyer's e-mail. So put a Question step before payment: "Which e-mail should we send access to?" — the answer is saved into a variable (email by default).

Then add a Payment block and fill in: Lava product (offerId), the display price and currency, the text with the payment button, and the E-mail variable.

The arrow from the Payment step leads where the funnel goes after a successful payment. That's where you deliver access.

💡 How to ask for the e-mail so people don't drop off. Not "your receipt will go there" — that sounds optional. Say what happens next: "I'll use it for your order and send the payment button right away, and access will come here, in this chat." And set a timeout with a reminder on the Question step.

If someone doesn't pay#

The Payment step has a "Follow-up if unpaid" field. Fill it in and a second output, "Not paid", appears. A sensible wait is 10–20 minutes. In that message offer the other payment method and a button that leads back to the Payment step: it issues a fresh invoice.

If the bank declines the payment, the bot explains the reason to the person, sends new buttons and tells you who tried to pay and how much.

Sales and timers: the funnel sets the price#

If you turn on "Price on request via API" for the product in Lava and tick "This funnel sets the price" in the step, the invoice amount comes from the step's "Price" field. One product — any price on any branch.

🔴 Grab the offerId first, then flip the toggle. Once it's on, the product disappears from Lava's list. And double-check the currency + amount pair: a typo is a real amount charged.

⚠️ The rouble minimum is 50 ₽. Lava doesn't accept less.

Buyers abroad#

The "💳 Pay by card" button doesn't process foreign cards. Fill in the step's "Price for foreign cards" field and a "🌍 Pay with a foreign card" button appears. Tick boxes add Apple Pay and PayPal too (PayPal must be enabled in your Lava dashboard). A foreign payment can take 5–10 minutes to confirm — mention that in the step's text.

How to test#

Lava has no test mode. First go through the funnel yourself up to the buttons — without paying. Then make one real payment of 50–100 ₽ and restore the real price right away.

🔴 Don't enter the e-mail of your own Lava account — you can't buy your own product with it.

🔴 Don't share a direct link to the Lava product. A purchase outside the funnel isn't tied to the person, and the bot won't deliver access.

The full guide with every pitfall — Accepting payments in a funnel with Lava.

Not available yet#

  • Subscriptions and recurring payments — one-time payments only.
  • Automatic access removal on refund — we'll tell you about the refund, but removing the person from the channel is manual.
  • Other payment providers in the Payment step — it currently works via Lava.

⚠️ Why Telegram specifically. In Instagram, access is delivered only if the person messaged you in Direct within the last 24 hours, and there's just one payment button. Selling from Instagram? Move people to Telegram.

FAQ#

Does Craft take a commission on sales?#

No. The money goes to your Lava account; only Lava keeps its fee — check it in your Lava plan.

They paid but access didn't arrive — what should I check?#

Nine times out of ten it's the webhook: is it set up, is the secret right, are all four events ticked. Next — did the person buy via the funnel button, and did the e-mail reach the payment step.

Can I do "the price goes up in 24 hours"?#

Yes: turn on "This funnel sets the price" and put a second Payment step with a different price on another branch.

Can I take payments from buyers abroad?#

Yes, via the "Price for foreign cards" field — Telegram only for now.

Are there subscriptions with automatic charges?#

Not yet, one-time payments only.

Didn't find an answer?Message us on Telegram or email [email protected] — we'll reply and extend the article.
Message on Telegram