Accept Bitcoin in a Telegram bot

Your bot creates a payment via the API and sends the user a payment link. Once the funds arrive, your server receives a webhook and the bot delivers the product or access.

How well Bitcoin fits a Telegram bot

As an extra option · Fit 0%

Enable it for customers who hold this coin, but pick another one as the main method.

Pros

    Keep in mind

    • Confirmation takes longer than on fast networks; the checkout page shows the status itself, the customer need not keep it open.
    • Telegram users often pay from the built-in wallet: add TON or USDT on TON as an option.
    • The network fee is noticeable: for small orders add a cheaper network to the checkout, such as BEP-20, TON or Solana.
    • The coin’s price moves: set the price in USD and the amount is converted at the rate fixed when the invoice is created.
    Network
    Bitcoin
    Coin
    BTC
    Addresses
    a separate one for each payment
    Rate
    locked for the payment window

    One payment link

    paymentUrl opens in Telegram’s browser, so the customer isn’t away from the messenger for long.

    TON and USDT

    Telegram wallet, TRC-20 and other networks — the customer chooses.

    Invoice in fiat

    A USD price is converted to BTC at the rate locked when the invoice is created.

    The bot flow is simple: the user taps “Buy”, the bot calls POST /v1/payments with orderId = user and product id, and sends a button with paymentUrl. The payment.confirmed webhook is the signal to grant access or deliver a key or file.

    Bitcoin transfers take longer to confirm than stablecoins, so for digital goods it helps to show the customer the payment status in real time. The Moonvex payment page updates on its own — the customer doesn’t need to reload it.

    Recommended coin set in a Telegram bot

    To cover most customers, enable on the checkout page: USDT on TON, Toncoin (TON), USDT TRC-20. The customer picks the network, and every payment lands on one project balance.

    One request to create a payment

    The response contains the address, the exact amount and a link to a ready-made payment page. Status updates arrive via HMAC-signed webhooks.

    curl https://api.moonvex.org/v1/payments \
      -H "Authorization: Bearer $MOONVEX_SECRET_KEY" \
      -H "Idempotency-Key: $(uuidgen)" \
      -d '{"orderId":"tg-52817734-vip","amount":"10","currency":"USD","asset":"BTC","network":"BITCOIN"}'

    FAQ

    Which currency should the price be in when customers pay in Bitcoin?

    Set the price in USD with Bitcoin as the payment coin: Moonvex converts the amount and fixes the rate when the invoice is created.

    Do I need a website to accept payments in a bot?

    No. You only need the bot’s server, which receives webhooks over https.

    Do you accept Lightning?

    For now, only the Bitcoin main network.

    Can I do it without coding?

    Yes: issue invoices in the Moonvex Telegram bot and forward the link to your customer.

    Can I send a BTC invoice without a website?

    Yes, from the dashboard or the Telegram bot — the customer gets a link to the payment page.

    Other coins in a Telegram bot

    Bitcoin for other use cases

    Compare Bitcoin with others

    Start accepting payments today

    An account and your first project in a minute, no monthly fee.

    Create account