# TRC-20 USDT payment gateway

> USDT on Tron is the network many customers reach for when they want to send a stablecoin with low network fees. Payaries gives each invoice its own Tron deposit address and tells your backend when it's confirmed.

Updated 2026-10-05 · Payaries · https://www.payaries.com/crypto-payment-gateway/trc20

## How to integrate

Create an invoice with the asset `USDT_TRC20` on `tron-mainnet`. The response carries a one-time Tron deposit address, the amount due and the confirmations required.

**Request**

```
POST /v1/invoices

{
  "referenceId": "order_10231",
  "fiat": { "amount": "49.99", "currency": "USD" },
  "crypto": { "asset": "USDT_TRC20", "chainId": "tron-mainnet" }
}
```

Requests are signed with [HMAC](https://www.payaries.com/guides/sign-crypto-payment-api-requests)-SHA256; the Node SDK does it for you. See the [crypto payment API](https://www.payaries.com/crypto-payment-api).

## Detection and confirmation

Payaries watches the address. When the transfer appears the invoice moves to `detected`, then `confirming` while confirmations accrue, and to `confirmed` when the required number is reached — your ledger is credited at that point and an `invoice.status_changed` webhook fires. The required number is returned on each invoice (`confirmations.required`). [Why confirmations matter](https://www.payaries.com/guides/crypto-payment-confirmations).

## Settlement, gas and withdrawals

- Payaries sweeps the deposit to your own Tron wallet; once that confirms, the amount is withdrawable.
- Moving a TRC-20 token costs TRX. Where Payaries's gas station covers Tron you hold none — the cost is recovered as a network fee inside the transaction. Otherwise keep a little TRX in your Tron wallet. Read `gasSponsored` on the wallet rather than assuming; see [network fees and the gas station](https://www.payaries.com/blog/gas-station-network-fees).
- Withdraw to any Tron address on demand, from the dashboard or the API.

## Tell customers which network

> **A Tron address is not an Ethereum address.** Show "TRC-20 (Tron)" beside the address. USDT sent on a different network to this address won't arrive. Compare the options in [USDT on TRC-20, ERC-20 and BEP-20](https://www.payaries.com/blog/usdt-trc20-vs-erc20-vs-bep20).

## Questions

**Which assets can I accept on Tron?**
TRX and USDT (TRC-20). Deposits and withdrawals are both supported on Tron. The live list is always available from GET /v1/chains.

**Do I need TRX to withdraw USDT?**
Only where Payaries's gas station doesn't cover Tron: then your own Tron wallet needs a little TRX for the network fee. Where the station covers it, the fee is recovered inside the transaction and you hold none.

**Which asset ID do I use?**
USDT_TRC20 with chainId tron-mainnet.

## Try it

Run a real invoice before you commit: [Payaries — www.payaries.com](https://www.payaries.com/signup). Payaries is a multi-chain crypto payment gateway — https://www.payaries.com

## Keep reading

- https://www.payaries.com/crypto-payment-gateway/bep20 — BEP-20 USDT and USDC payment gateway
- https://www.payaries.com/crypto-payment-gateway/erc20 — ERC-20 USDT and USDC payment gateway
- https://www.payaries.com/usdt-payment-gateway — Accept USDT payments on Ethereum, BNB Smart Chain, Polygon, Arbitrum, Tron and more
- https://www.payaries.com/blog/usdt-trc20-vs-erc20-vs-bep20 — USDT on TRC-20, ERC-20 and BEP-20: what changes for a merchant
- https://www.payaries.com/blog/gas-station-network-fees — Gas station: how network fees work on token payments
- https://www.payaries.com/custom-token-payments — Custom token payments: bring your own ERC-20, BEP-20 or TRC-20 token
