# Accept USDT on TRON (TRC20)

> Accept USDT on TRON (TRC20) with CryptoLike: the payer sees the amount, network and time left; funds reach your balance after confirmations, with a signed webhook.

Source: https://cryptolike.net/coins/usdt-trc20
Updated: 2026-09-25

CryptoLike credits a USDT (TRC20) payment to your balance after 19 confirmations of the TRON network and reports it to your server with a signed webhook. You create the payment; the payer sends USDT from their own wallet; CryptoLike watches the address, counts confirmations and moves the status from `pending` to `paid`.

## How a USDT (TRC20) payment works

A USDT (TRC20) payment in CryptoLike goes through four steps and three statuses: `new`, `pending` and `paid`. The payment page, the API and the webhooks show the same status string, so your order logic reads one field. The payer needs no account with CryptoLike, only a TRON wallet that holds USDT and some TRX.

1. **You create the payment** with `POST /v1/invoices`, the [WooCommerce plugin](https://cryptolike.net/integrations/woocommerce), the [OpenCart extension](https://cryptolike.net/integrations/opencart) or a [payment link](https://cryptolike.net/use-cases/payment-links). Status: `new`.
2. **The payer sees what to send:** the exact USDT amount, the network (TRON), the address with a QR code and the time left.
3. **The transfer is detected.** Status: `pending`, "Payment detected. Waiting for confirmation."
4. **The payment is confirmed.** After 19 confirmations the status is `paid`, the funds are on your balance and a signed `invoice.paid` [webhook](https://cryptolike.net/docs/webhooks) arrives.

## What the payer should know about TRON

CryptoLike accepts USDT on TRON only from the official Tether contract, sent to a TRON address that starts with `T`. The payer's wallet pays the TRON network fee in TRX, as energy and bandwidth, so the payer needs some TRX next to the USDT. The amount on the payment page must arrive in full, on the TRON network only.

- **Address.** 34 characters, starts with `T`. After pasting, compare the first and last characters with the page.
- **Network fee.** A TRC20 transfer consumes energy and bandwidth; without its own energy the account burns TRX for it. A wallet with USDT and zero TRX cannot send.
- **Contract.** Only USDT of the Tether contract `TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t` is credited.
- **Exact amount.** If an exchange deducts its withdrawal fee, the payment arrives short and becomes `underpaid`. Send the difference to the same address before the time runs out.
- **Network.** USDT sent on another network never reaches this payment and cannot be recovered.

## Create a USDT (TRC20) payment

To create a USDT (TRC20) payment in CryptoLike, take the `id` of the asset with `ticker` USDT and `network` tron from `GET /v1/currencies` and pass it as `coin_id` to `POST /v1/invoices`. Price it in USDT, or in USD: then CryptoLike converts at the current rate and locks the rate for the payment's time limit.

```bash
COIN_ID=$(curl -s https://api.cryptolike.net/v1/currencies \
  | jq -r '.currencies[] | select(.ticker=="USDT" and .network=="tron") | .id')

BODY='{"amount":"49.90","currency":"USD","coin_id":"'"$COIN_ID"'","order_id":"A-1001"}'
curl -s https://api.cryptolike.net/v1/invoices \
  -H "Content-Type: application/json" -H "Idempotency-Key: order-A-1001" \
  -H "X-API-Key: $KEY_ID" -H "X-Timestamp: $TS" -H "X-Signature: $SIG" -d "$BODY"
```

The response carries `address`, `payer_amount` and `checkout_url`: send the payer there. Signing: [API authentication](https://cryptolike.net/docs/auth); every field: [API reference](https://cryptolike.net/docs/api).

## FAQ

### How many confirmations does USDT TRC20 need?

CryptoLike credits USDT (TRC20) after 19 confirmations of the TRON network. The threshold is set per asset, returned in `GET /v1/currencies` and shown to the payer as progress. More on [confirmations](https://cryptolike.net/glossary/confirmations).

### What if the payer sends USDT on Ethereum (ERC20) instead?

The transfer does not reach this payment and cannot be recovered: a TRC20 payment watches a TRON address only. To let the payer choose, create the payment with `currency: "USDT"` and no `coin_id`, and the payer picks TRON or [Ethereum (ERC20)](https://cryptolike.net/coins/usdt-erc20) on the page.

### Can I price in USD?

Yes. Send `currency: "USD"` with the USDT `coin_id`: CryptoLike converts at the current rate and locks it for the payment's time limit. If no fresh rate is available, the API answers `503`: retry, or price the payment in USDT.

### Can a customer get a permanent USDT TRC20 address?

Yes. `POST /v1/addresses` with the USDT (TRC20) `coin_id` and your `customer_id` issues a [static address](https://cryptolike.net/glossary/static-address). Every transfer to it is credited after 19 confirmations and announced by `deposit.confirmed`; a transfer held for review sends `deposit.on_hold` instead.

### How do payouts in USDT TRC20 work?

`POST /v1/withdrawals` with `coin_id`, `amount`, `to_address` and your `payout_id`, or a CSV of up to 1,000 rows in the cabinet ([mass payouts](https://cryptolike.net/use-cases/mass-payouts)). `POST /v1/withdrawals/estimate` first shows the platform fee, the reserved network fee (in USDT, no TRX balance needed) and the total debit. Payouts require a verified account; fees are on the [pricing page](https://cryptolike.net/pricing).
