There are two ways to accept payment in a Telegram bot, and the type of product decides which one applies. Physical goods and services consumed outside the messenger are paid by card through a payment provider — in Uzbekistan that means Payme and CLICK. Digital goods and subscriptions inside Telegram are sold only for Telegram Stars.
Key takeaways
A bot never charges the card itself: it issues an invoice, and the payment provider moves the money. Telegram acts as the interface in between — it collects no payment data and charges no commission for the Payments API, while the provider processes and stores the card details.
The chain is the same for a bot and for a Mini App:
Store the charge identifier straight away: it is what you use later to find the transaction in a dispute and to issue a refund.
Important For every currency Telegram sets a minimum and a maximum invoice amount: as a rule of thumb they sit around the equivalent of $1 to $10,000, and the exact figure for each currency is published in the Payments API reference. Large orders are either split into parts or moved to the provider's own payment page.
The line runs through where the customer receives what they bought. A physical product, delivery, a clinic visit, a place at an offline event — those are card payments through a provider. Access to a course, a subscription to a content channel, lifting a limit inside a service — those are digital goods.
Digital goods and services are sold inside Telegram exclusively for Telegram Stars. That is not a Telegram recommendation but a consequence of App Store and Google Play rules, and it applies even when the company runs its own website with card payments. Telegram documentation states plainly that bot developers are not allowed to accept payments for digital goods and virtual services from iOS users.
| What we compare | Payment through a provider | Telegram Stars |
|---|---|---|
| What you may sell | Physical goods, delivery, offline services | Digital goods and services, content access |
| How the customer pays | By card inside Telegram | With Stars bought in Telegram |
| What the company needs | A provider contract and a till or terminal | Only a bot, no contract required |
| Customer data | Delivery address, phone and email can be requested | No personal details are requested |
| Refunds | Under the provider's and the bank's rules | Through the Stars refund method in the Bot API |
| Money reaching the company | Paid out by the provider under the contract | Stars are converted under Telegram's rules |
For most tasks of an Uzbek business — bookings, orders, delivery, event tickets — the first column applies. Stars become mandatory when a company sells training, a subscription or gated content right inside Telegram.
The provider is chosen in the bot settings in @BotFather, and the set of available systems depends on the country. For Uzbekistan the list includes Payme and CLICK; both are connected the same way — a contract and a till on the provider's side, then a token in the bot settings.
The practical difference for a project is small — it lies in the contract terms and in what your audience already uses. More often both systems are connected: the customer pays with whatever app is already on their phone.
Tip Sign the provider contract before development starts. A test terminal is enough to debug the flow, but a live token is issued only to an active business with a bank account, and that is usually the longest step in the project.
If payments are needed not only in the bot but also on the website, in the customer account and in the app, the payment layer is designed separately from the bot — see billing and payments on a web platform.
An invoice in a bot is not only "buy this item". The same mechanism covers bookings, agreed instalments and subscription renewals; what differs is the logic on the bot's side.
| Scenario | When it is needed | What the system does |
|---|---|---|
| Full payment for an order | Goods in stock, a ready service | Charges the amount, marks the order paid, starts fulfilment |
| Deposit or booking | Appointments, reservations, events | Charges part of the sum, holds the slot, reminds about the balance |
| Payment by link | An invoice from a manager, a sale in chat | Creates an invoice link that can be sent to any chat |
| Subscription | Access to a service or gated content | Charges per period and warns before renewal |
| Partial payment | An expensive order paid in parts | Tracks the balance and reminds about the next payment |
| Refund | Cancellation, defect, unavailable service | Issues the refund and updates the status in the CRM |
Recurring card charges are not always possible: they depend on whether the provider supports saving a card and issuing a token. For Telegram Stars subscriptions the period is fixed at 30 days, and the Bot API offers no other interval.
The value of a payment integration appears not at the moment of the charge but in the seconds that follow. If nothing changes after payment except a thank-you message, a manager still sorts orders by hand.
How to connect a bot to a CRM technically, which fields to pass and what to do when the CRM is unavailable at that moment is covered in connecting a Telegram bot to a CRM.
After paying, a customer does not need a newsletter but answers to three questions: did the money arrive, what did I get, what happens next. Anything else is added only when the message has a measurable purpose.
A bot writes only to people who started it themselves, so the audience for such messages is built from customers rather than bought. The metrics for the notifications — delivery, taps, repeat payments — are counted the same way as in mobile apps: see push notifications in an app.
Card data is stored and processed by the payment provider. The bot receives only the transaction status and the charge identifier — enough to find the operation, issue a refund and reconcile the books.
Support is a separate requirement. Bots that sell for Telegram Stars must answer the payment support command and handle customer requests, otherwise they breach the platform's terms.
Most losses come not from the technology but from gaps in the flow: the system can take money but does not know how to behave when something goes wrong.
These places have to be checked before launch, on the test terminal: run a successful payment, a cancelled one, a repeat attempt and a refund.
There is no separate price for a "pay button": the connection is counted inside the bot project. A bot that takes requests, books appointments and issues QR tickets starts at $1,200, and payments are one of its scenarios.
The price is driven by the number of payment scenarios, the number of providers, refunds and subscriptions, and by which systems receive the data after payment. The scope of work is listed on the AI and automation service page. The provider's commission is paid separately by the company under its own contract.
Syntra Systems starts with the customer journey: where they choose, where they accept the price and at which moment paying is convenient. Only then do we pick the provider and the invoice type.
Next we build the whole flow, unhappy paths included: cancelled payment, retry, refund, unavailable CRM. We verify everything on the test terminal, then switch to the live one and watch the first real payments. What a bot can do beyond payments is covered in Telegram bot development for business.
Let’s discuss your project
Tell us what you need, and we will estimate the timeline and cost and suggest a solution.
The mechanism is identical: the bot issues the invoice and the Mini App opens the payment interface. The difference is convenience — a Mini App can show the catalogue, the basket and delivery costs on one screen. The rule about digital goods applies equally to both.
A bot can't accept payment without a contract with the provider, and only an active business with a bank account can connect one. For Payme that means registering with Payme Business and a separate till for the bot; for CLICK it means a live terminal. While the paperwork is being arranged, the payment flow can be tested on a sandbox connection — both providers offer one.
Find the transaction by the charge identifier the bot stored, and deliver manually. Then find the cause: usually it is a failure in the step after payment. To stop it happening again, delivery is built as a separate step with a retry.
Only if the provider supports saving a card and charging against a token — that is a matter of the contract, not of Telegram. Without that option, the subscription runs on reminders: the bot issues an invoice before each period and the customer confirms the payment.
A card refund is processed by the payment provider under its own rules and the bank's rules — the bot sends the request and updates the order status. If the client paid with Telegram Stars, the bot refunds them itself, using the payment ID it saved at the time of payment.
The currency is set on the invoice, and one bot can issue invoices in different currencies if the provider contract allows it. In practice, invoices for the local audience are issued in soums, while a separate provider is connected for customers abroad.
A bot must not trust the customer's claim that they paid. The sources of truth are Telegram's service message about a successful payment and the provider's callback with a verified signature. The amount is recalculated on the server from the order data rather than taken from the request.