Как принимать USDT (TRC20) на сайте или в боте
USDT в сети TRON — самый распространённый способ платить криптой во многих регионах: переводы быстрые и дешёвые для плательщика. Ниже минимальная интеграция с ChainPay.
Модель
- Ваш бэкенд запрашивает у ChainPay адрес для депозита на каждый заказ (или каждого пользователя).
- Плательщик отправляет USDT на этот адрес.
- После подтверждения сетью ChainPay переводит средства на ваш кошелёк и вызывает ваш webhook.
Средства остаются у вас: получатель — ваш forwardAddress, мерчантский баланс ChainPay не хранит.
Адрес на заказ или на пользователя
- На заказ: новый
externalReferenceдля каждого заказа. Простая сверка, один платёж на адрес. - На пользователя: один и тот же
externalReferenceдля пользователя. Адрес постоянный и принимает много депозитов; подходит для пополнений и балансов.
Создание адреса
curl -X POST https://api.chainpay.site/deposit-address \
-H 'content-type: application/json' \
-d '{
"ticker": "trc20/usdt",
"callbackUrl": "https://shop.example.com/crypto-webhook?token=SECRET",
"forwardAddress": "TYourOwnTronWallet...",
"externalReference": "order-123"
}'
Обработка webhook
- Проверяйте значение
tokenв query. - Находите платёж по
externalReference. - Зачисляйте заказ только на
status: "confirmed". - Делайте обработчик идемпотентным: одно событие может прийти несколько раз.
Сколько платит клиент
Каждый TRC20-перевод требует TRON Energy, поэтому комиссия состоит из процентной части (1%) и flat-части по живой сетевой стоимости. В TRON flat сейчас около 4 USDT, поэтому совсем маленькие платежи невыгодны. Задайте разумный минимум суммы заказа. Актуальные цифры — на странице Цены.
Проверка
Чтобы видеть адрес в своём аккаунте, зарегистрируйтесь в кабинете, создайте API-ключ и отправьте тот же запрос с x-api-key.