How does a USDT payment on TRON work?

There is no deposit address: the buyer's wallet pays your TRON treasury wallet directly. Checkout opens inside TronLink and the buyer approves the transfer.

The buyer chooses TRON and USDT on the hosted checkout, so there is no per-network code on your side. Your server learns the outcome from a signed webhook (payment.settled), which is the authoritative signal to fulfil an order.

What does it cost to accept USDT on TRON?

There is no setup fee, no monthly minimum and no charge on failed, expired or cancelled payments. A platform fee applies only when a payment settles, and it is recalculated automatically from your settled volume over the last 30 days: 0.5% under $50,000, 0.4% from $50,000 to $250,000, and 0.3% from $250,000.

For example, on a $1,000 payment the fee is $5 at 0.5%, $4 at 0.4%, $3 at 0.3%. Above the public floor, custom rates are available by contact.

How do I set it up?

  1. Create a merchant account. Sign up at app.infraio.xyz and verify your email.
  2. Connect a TRON treasury wallet. Add a TRON treasury wallet in the dashboard (one wallet per network family).
  3. Enable TRON. Turn on TRON in Settings → Networks of the merchant dashboard so buyers can choose it at checkout.
  4. Create a payment link or checkout session. Issue a no-code payment link from the dashboard, or create a session from your server and open it with the SDK.
  5. Fulfil on the webhook. Verify the HMAC signature on the payment.settled webhook, then release the goods or service.

Open a hosted checkout where buyers can pay USDT on TRON

import { loadInfraIo } from "@lartech/infraio-checkout-js";

// 1. On your server: POST /b2b/v1/checkout-sessions/quick (HMAC-signed with
//    your secret key) returns { session_key, checkout_url }.
// 2. In the browser, open the hosted checkout with those two values:
const sdk = await loadInfraIo("pk_live_yourkeyhere");

sdk.checkout({
  sessionId: session_key,
  checkoutUrl: checkout_url,
  mode: "popup", // or "redirect" / "embed"
  onSuccess: () => showThanks(), // UX only: fulfil from the webhook
});