USDT checkout without asking buyers for TRX

This is a settlement breakdown for a small TRC20 invoice, not a fabricated conversion study. The numbers match Pontoon's code: bridge fee max($0.08, invoice × 0.25%), Energy at the live quote.

What a $40 ticket pays

LineAmount
Customer pays40.00 USDT
Sweep Energy (order of magnitude)~0.40
Bridge fee 0.25%0.10
Treasury net39.50
A $20 invoice hits the $0.08 bridge floor. A $400 invoice pays $1.00. Small tickets are dominated by Energy; that cost has to be itemized instead of buried in a 0.5% headline rate.

Do buyers need TRX first?

  • Exchange withdrawal to your order address: the exchange pays network fees.
  • Wallet-to-address transfer: the sender's wallet pays send gas. Wallet-level GasFree only covers wallets that support it.
  • You pay Energy to sweep the deposit address. That is merchant-side, not buyer-side.

Integration

bash
curl -X POST https://pontoon.dev/api/v1/intents \
  -H "Authorization: Bearer <API-KEY>" \
  -H 'content-type: application/json' \
  -d '{
    "merchantOrderId": "order-2026-0001",
    "chainKey": "tron",
    "amountUsdt": "40.00",
    "treasuryAddress": "T…",
    "webhookUrl": "https://merchant.example/api/webhooks/pontoon",
    "expiresInSeconds": 1800
  }'

Show the returned address to the buyer. Fulfil only after a verified checkout.paid. Underpaid, expired, and wrong-chain are states, not support tickets. Full machine: hosted checkout.

Why a 0.5% headline is not the comparison

0.5% on $40 is $0.20. First-receive Energy on Tron is often larger. Gateways either reuse addresses or hide the sweep. Pontoon splits bridge fee and fuel. See NOWPayments alternative.