Crypto payments for Telegram bots and mini apps

Your users are already inside Telegram with a TON balance in Tonkeeper or the built-in wallet, so asking them for a card is asking them to leave. Paysell issues an invoice your bot can send as a message and confirms the payment about a minute after the user signs it.

  • TON and USDT on the TON network
  • Payment link works in bots and mini apps
  • Webhook about a minute after the transfer
  • 0.2% per payment, nothing to pay upfront

What usually goes wrong

Card checkouts break the flow

A user who was two taps from buying is bounced to a browser, a bank page and a one-time code, then comes back to a chat that has scrolled away. Conversion is lost not to price but to the number of screens between the button and the confirmation.

Bot audiences are global by default

A bot with users in thirty countries meets thirty different card realities, and a provider that refuses half of them quietly caps your revenue. The one thing those users do share is a wallet in the same messenger.

Manual payment handling does not survive scale

Posting a wallet address in a chat and checking transfers yourself works for the first hundred users. After that, someone is matching amounts to comments in an explorer while the bot keeps promising access it has not verified.

Small-ticket bot products cannot carry fixed fees

Access for a couple of dollars, a report, one generation credit — the classic bot product is cheap by design. A fixed per-transaction fee makes those SKUs pointless, so they never get built.

How Paysell helps

The invoice is just a message

Your bot calls one endpoint and sends the returned link as a button. The hosted page shows the amount and a QR code and opens Tonkeeper or MyTonWallet directly, so the user confirms in their own wallet and returns to the chat.

Unlock the feature on a signed webhook

`payment.credited` carries the order id you supplied — the Telegram user id, the plan, the credit pack. Verify the HMAC signature and unlock. Retries continue for up to 24 hours, so a bot redeploy never leaves a paying user without access.

One integration for bot, mini app, and site

The same store and the same invoice endpoint serve a chat bot, a mini app and a landing page — there is no separate SDK per channel. Run several products from one account, each store with its own API key, webhook and statistics.

Economics that fit a two-dollar product

0.2% of the received payment, fixed when you register the store, with no setup fee, no monthly fee and network fees on incoming payments paid by Paysell. Invoices start at 0.1 TON or 3 USDT and you can create up to 60 per hour.

Where it fits

Paid access to a bot's premium featuresCredit packs for generation and lookup botsMini app purchases and in-app currencyPaid subscriptions to a private channelDigital goods sold straight from a chatDonations and tips to bot authors

Integration in minutes

One endpoint, one message, one webhook

Create a store in the dashboard and take its API key. When a user taps buy, your bot calls the invoice endpoint with the Telegram user id as the order id and replies with the payment link as an inline button. When the signed webhook arrives, unlock the feature and edit the message to confirm. A mini app uses the identical call — only the way you present the link changes.

Full API reference
Create an invoice for a bot subscription
curl -X POST https://paysell.me/api/merchant/v1/invoices \
  -H "Authorization: Bearer sk_live_..." \
  -H "Content-Type: application/json" \
  -d '{"asset":"USDT_TON","amount":"25","order_id":"order-1042"}'
返回结果
{
  "invoice_id": "12c22c1a-a496-4c1e-abe3-72661ef8706e",
  "payment_url": "https://paysell.me/pay/12c22c1a-a496-4c1e-abe3-72661ef8706e",
  "asset": "USDT_TON",
  "amount": "25",
  "status": "pending",
  "expires_at": "2026-09-06T17:20:55Z"
}

Pricing at a glance

One rate for every payment, whatever you sell and wherever your customer is.

0.2%
per payment
0
setup and monthly fee
0.7 USDT / 0.52 TON
withdrawal fee
25 USDT / 19 TON
minimum withdrawal

Withdraw to any TON wallet in a couple of clicks from the dashboard.

Questions

Can I accept TON payments inside a Telegram bot?

Yes, and it is the most natural fit for the network: Paysell settles in TON and USDT on the TON network, which is what Telegram users already hold in Tonkeeper or the built-in wallet. Your bot sends the payment link as a button and unlocks the feature when the webhook confirms the transfer.

Does the user have to leave Telegram to pay?

They open the hosted payment page and confirm the transaction in their own wallet — the signature always happens in the wallet, never in your bot. The page shows a QR code and opens Tonkeeper or MyTonWallet directly, so the round trip is short and the user comes back to the same chat.

How do I know a user actually paid?

Wait for the signed `payment.credited` webhook, which arrives about a minute after the transfer and carries the order id you supplied — normally the Telegram user id. Verify the HMAC signature before unlocking anything, and never grant access on a screenshot or a forwarded transaction hash.

Can I sell subscriptions through a bot?

Yes, using an invoice per period rather than an automatic charge: nobody can debit a self-custody wallet on a schedule. Your bot issues an invoice for the next term, sends a reminder before the period ends and extends access when the payment webhook arrives.

What does it cost to monetise a bot?

0.2% of each received payment, with the rate fixed when your store is registered, no setup fee and no monthly fee. Paysell pays the network fees on incoming payments, and withdrawing to your own wallet carries its own flat fee of 0.7 USDT or 0.52 TON taken from the amount, with a minimum of 25 USDT or 19 TON.

How small can a payment be?

From 0.1 TON or 3 USDT per invoice, up to 7,000 TON or 10,000 USDT, with a limit of 60 invoices per hour per store. Since the fee is purely percentage-based, cheap SKUs like a single credit pack remain worth selling.

Do I need a separate integration for a mini app?

No. A mini app calls the same invoice endpoint and opens the same payment page as a chat bot, so one store covers both. If you run several bots, give each one its own store with its own API key and webhook endpoint, all under a single account with 2FA and role-based access.

Related solutions

Ready to take your first crypto payment?

Create an account, connect a store and issue your first invoice today — no setup fee, no waiting for approval.

Create an account