# Accept USDT payments on Ethereum, BNB Smart Chain, Polygon, Arbitrum, Tron and more

> Price the order in dollars, let the customer pay in USDT on the network they already use, and get a webhook the moment it confirms. One integration covers every network we support.

Updated 2026-09-30 · Payaries · https://www.payaries.com/usdt-payment-gateway

## USDT and USDC networks

| Asset | Network | Standard | Asset ID in the API |
|---|---|---|---|
| USDT | Ethereum | ERC-20 | `USDT_ERC20` |
| USDT | BNB Smart Chain | BEP-20 | `USDT_BEP20` |
| USDT | Tron | TRC-20 | `USDT_TRC20` |
| USDC | Ethereum | ERC-20 | `USDC_ERC20` |
| USDC | BNB Smart Chain | BEP-20 | `USDC_BEP20` |
| USDT | Polygon | ERC-20 compatible | `USDT_POLYGON` |
| USDC | Polygon | ERC-20 compatible | `USDC_POLYGON` |
| USDT | Arbitrum | ERC-20 | `USDT_ARBITRUM` |
| USDC | Arbitrum | ERC-20 | `USDC_ARBITRUM` |

Each of these is a separate asset on a separate network, and the table grows as networks are added — `GET /v1/chains` has the live list. You choose the one an invoice accepts when you create it, and the deposit address you return to the customer is valid for that network only.

> **Tell the customer which network to use.** A deposit address on Tron is not an address on Ethereum. Show the network beside the address at checkout so the customer sends USDT on the network the invoice was created for.

## How a USDT payment works

1. Your backend calls `POST /v1/invoices` with a fiat amount, for example 49.99 USD, and `crypto: { asset: "USDT_TRC20", chainId: "tron-mainnet" }`.
2. Payaries returns a one-time deposit address and locks the conversion rate for that invoice.
3. The customer sends USDT to the address. The invoice moves `pending` → `detected` → `confirming`.
4. When the required number of confirmations is reached the invoice becomes `confirmed`, your ledger is credited, and an `invoice.status_changed` webhook fires.
5. Payaries sweeps the deposit to your own wallet on that network; once it settles, the amount is withdrawable.

The mechanics are described step by step in [how a crypto payment gateway works](https://www.payaries.com/guides/how-a-crypto-payment-gateway-works).

## Gas: what to budget for

A token transfer needs the network's native currency for gas. Sweeping a USDT deposit and withdrawing USDT both pay that gas from your own wallet on the network, so keep a little of the network's native currency (ETH, BNB, POL or TRX) there alongside your stablecoin balance — unless Payaries's [gas station](https://www.payaries.com/blog/gas-station-network-fees) covers that network, in which case the gas is recovered as a network fee inside the transaction and you hold none. Payaries doesn't top it up for you, and a withdrawal that can't pay its gas is retried and then fails, releasing the reserved balance.

Your dashboard shows each wallet's native balance and warns when it is empty.

## Wrong amounts and late payments

A short payment is flagged `underpaid` with the shortfall shown, so you can refund or ask for the balance. A payment mined after the invoice expires is held for review and either refunded or settled, rather than credited automatically. Money that doesn't fit an invoice is recorded as an unclaimed deposit rather than dropped. See [handling underpaid and late payments](https://www.payaries.com/guides/handle-underpaid-and-late-crypto-payments).

## Good to know

- Each merchant has a dedicated wallet per network, never pooled with other merchants, and you can check its live on-chain balance on a block explorer. Payaries holds the wallet for you.
- You can withdraw to any address on demand. Bitcoin withdrawals aren't supported yet, but every USDT network we support is.
- Fees are configured per merchant, optionally by network, asset or amount — ask sales@payaries.com for a quote.
- Crypto transactions are irreversible once confirmed, and the network's own fees are separate from Payaries's.

## Questions

**Which USDT networks can I accept with Payaries?**
USDT on Ethereum (ERC-20), BNB Smart Chain (BEP-20), Polygon, Arbitrum and Tron (TRC-20), with more networks being added. USDC is supported on Ethereum, BNB Smart Chain, Polygon and Arbitrum. Call GET /v1/chains for the live list.

**Can I price an order in dollars and be paid in USDT?**
Yes. You create the invoice with a fiat amount and a currency; Payaries converts it at creation and locks the rate for that invoice, so the amount due doesn't move while the customer pays.

**Do I need ETH, BNB, POL or TRX to accept or withdraw USDT?**
Where Payaries's gas station doesn't cover the network, you need a small balance of its native currency in your own wallet to pay gas for sweeping and withdrawing tokens; it isn't topped up automatically. Where the station covers it, gas is recovered as a network fee inside the transaction and you hold none.

**Can I withdraw USDT to any address?**
Yes. Withdrawals on every supported network except Bitcoin go to any valid address for that network, on demand.

## Try it

Accept your first USDT payment: [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-api — A crypto payment API that behaves like the rest of your stack
- https://www.payaries.com/custom-token-payments — Custom token payments: bring your own ERC-20, BEP-20 or TRC-20 token
- https://www.payaries.com/guides/crypto-payment-confirmations — Crypto payment confirmations, explained for merchants
- https://www.payaries.com/guides/custodial-vs-non-custodial-payment-gateway — Managed vs self-held crypto payment gateways
- https://www.payaries.com/guides/how-a-crypto-payment-gateway-works — How a crypto payment gateway works, from invoice to settlement
- https://www.payaries.com/solutions/forex — A crypto payment gateway for forex brokers and trading firms
- https://www.payaries.com/solutions/web3 — A crypto payment gateway for Web3 companies
