Skip to content
← All articles
8 min read

Accepting payments in a Telegram bot with Payme and Click

In-bot payment removes the biggest gap in the funnel: the moment a customer leaves to 'pay later' and never returns.

What you need before integrating

A registered company or sole trader, a bank account, and a contract with Payme, Click or both. Many connect both, since users have firm preferences and an extra method removes refusals.

After signing you get a merchant dashboard and test credentials. Development always starts in the test environment; live keys go in last.

How the payment flow works

The bot builds the order and creates an invoice with an amount and identifier. The customer gets a payment button leading to the provider page or app. After payment the provider calls your handler and the bot confirms.

The key principle: an order is paid only after server-side confirmation from the provider. Never confirm because the user returned to the chat — returning is not payment.

Amounts must be sent in tiyin or the provider's required format. A wrong multiplier is the most common reason test payments come out a hundred times off.

Handling failures

Closed payment page, hanging transaction, insufficient funds, expired invoice — each must produce a clear message and a retry button rather than silence.

Expire unpaid invoices after 15–30 minutes and release the reserved goods or booking slot, or abandoned carts will block your stock.

Refunds, reconciliation and security

Decide refund mechanics before launch: who initiates, within what window, and how it appears in the bot. A refund in the provider dashboard must also change the order status in your database.

Reconcile provider payments against your orders daily, keep provider keys server-side only, and verify signatures on incoming callbacks — otherwise anyone can confirm someone else's order by calling your handler.

Need a website or ads? Let’s discuss your project.