# Accept TON Payments: TonConnect Checkout for Telegram Builders

> Accept TON and USDT-on-TON with one-tap TonConnect checkout. Built for Telegram bots, mini-apps, and the 900M+ wallets already inside Telegram.

Source: https://mutopay.com/blog/accept-ton-payments/
Language: en
Date: 2026-04-07

---

TON is the one chain most crypto payment gateways ignore. And the one most Telegram builders actually need. If you run a Telegram bot, a mini-app, or any product where your customers already live inside Telegram, asking them to leave the app to pay is where conversions die.

MutoPay now accepts TON natively. Buyers tap a button, TonConnect opens their Tonkeeper or MyTonWallet, they confirm, and you settle in TON or USDT-on-TON directly in your own wallet.

## Who this is for

- **Telegram bot and mini-app builders** who want in-chat checkout without redirecting users to an exchange
- **Gaming and tipping products** where micropayments and speed matter more than fee optimization
- **Merchants in regions where TON adoption outpaces EVM**: TON's footprint in Telegram-heavy markets is hard to match

## Why TON specifically

The buyer is already in Telegram. TonConnect is the native wallet protocol: no QR code dance, no "which RPC am I on?" confusion, no browser extension to install. One tap opens the wallet app they already use, they approve, and you're done.

On the merchant side, TON settlement gives you two native options:

- **USDT-on-TON**: the stablecoin path. No volatility, ~1 second finality, near-zero fees.
- **Native TON**: for merchants who want TON exposure, commonly because they pay TON-denominated costs themselves.

Both settle directly into your TON wallet. MutoPay never custodies funds.

## How the checkout looks

```
customer wallet  ─── TonConnect ──▶  MutoPay  ──▶  your TON wallet
   (Tonkeeper)                                     (USDT or TON)
```

Three boxes, one signature, one on-chain transaction. No bridges, no manual deposits, no KYC step for the buyer.

If a customer wants to pay from a different chain (say, USDC on Base), MutoPay handles the bridge into TON in the background. The buyer picks a token, the merchant still receives USDT-on-TON.

## Setup in five steps

1. **Create a merchant account** at [mutopay.com/dashboard/register](/dashboard/register).
2. **Set TON as your settlement chain.** In the dashboard, open **Settings → Settlement**, pick `TON` as the chain and `USDT` or `TON` as the token.
3. **Paste your TON wallet address.** This is where every payment will land. MutoPay validates the format on save.
4. **Create your first payment link** from the dashboard or via the API:
   ```bash
   curl -X POST https://mutopay.com/api/payments \
     -H "Authorization: Bearer sk_live_..." \
     -H "Content-Type: application/json" \
     -d '{
       "amount": 25,
       "currency": "USD",
       "metadata": { "order_id": "tg-bot-7421" }
     }'
   ```
   Your settlement chain and token come from your merchant settings. You don't pass them on every call.
5. **Send the returned `payment_url` to your customer.** On the payment page they'll see the TonConnect button first. One tap, one approval, done.

If you'd rather configure settlement via API, the equivalent is a single `PUT`:

```bash
curl -X PUT https://mutopay.com/api/dashboard/settlement \
  -H "Authorization: Bearer <merchant-jwt>" \
  -H "Content-Type: application/json" \
  -d '{
    "preferred_chain_id": "ton",
    "preferred_token": "USDT",
    "wallet_address": "EQ..."
  }'
```

## Webhooks

When the TonConnect transaction confirms, MutoPay fires a `payment.completed` webhook to the URL you configured. Signature header is `X-MutoPay-Signature: sha256=<hex>`. Verify it with HMAC-SHA256 and your webhook secret, then fulfil the order.

## FAQ

**Which TON wallets work?**
Any TonConnect-compatible wallet: Tonkeeper, MyTonWallet, Wallet inside Telegram, OpenMask, and anything else that speaks the TonConnect 2 protocol.

**How fast does a TON payment settle?**
Usually 1–3 seconds after the buyer approves in their wallet. Our monitor picks up the confirmation on the next cron tick and fires your webhook.

**What are the fees?**
MutoPay charges 0.5% per transaction. TON network fees are sub-cent and paid by the buyer.

**Can customers pay from non-TON chains?**
Yes. If a buyer picks USDC on Ethereum or USDT on BSC, MutoPay routes through Rubic and bridges into USDT-on-TON automatically. You still receive on TON.

**Is my wallet custodial?**
No. Every payment settles directly to the TON address you configured. MutoPay never holds funds.

## Also see

- [Accept Solana payments](/blog/accept-solana-payments): the creator-economy chain
- [Accept Tron USDT payments](/blog/accept-tron-usdt-payments): the remittance rail
- [How MutoPay works](/how-it-works/): full routing diagram
- [Pricing](/pricing/): flat 0.5%, no minimums

Ready to accept TON? [Create a merchant account](/dashboard/register). The first payment takes about ten minutes from signup.
