Accept payments in a Telegram bot
Telegram’s own payments need a provider like Stripe, and a provider needs a company. Norpo needs a wallet. Drop a small library into the bot you already run and take cards and crypto — no merchant account, no business verification, no API key.
Download the libraryHow it works.
Open an order
One call with the amount and your wallet. You get back a checkout link and an order id to store against the customer.
Show it as a URL button
The customer pays in their real browser, not Telegram’s in-app webview — 3-D Secure fails there for some banks, and a payment that cannot complete costs more than a tidier flow is worth.
Deliver on the answer, not the arrival
A deep link brings the customer back to the chat, and a background sweep catches the ones who close the browser instead. Either way the library confirms the payment with the API before your bot hands anything over.
Questions people ask first.
Because `sendInvoice` needs a provider token, and those are issued to payment providers connected to Telegram directly — in practice, licensed PSPs that will ask you for a company and documents. That is the door this closes.
No. The customer returns through a deep link and the library asks our API about the order, so nothing has to reach your bot from outside. Long polling from any machine works.
The library sweeps your pending orders in the background and delivers when the payment settles, whether or not the customer ever returns to the chat. Keep those orders in storage that survives a restart — the sweep can only settle orders it is told about.
They can replay the link — it sits in their own URL bar. They cannot fake the answer: delivery waits on the order status from the API, never on the arrival.
Both, on the same checkout — one order accepts a card or a coin, and the customer picks. Either way you are paid in USDC on your own wallet.
Telegram requires digital goods and services sold inside bots to go through Telegram Stars, and bots have been banned for taking outside payments for them. Physical goods and real-world services are not covered by that rule. Settle which side your product is on before your first payment — the risk lands on your bot.
