# Receive TRON USDT deposit webhooks

Updated: 2026-10-19. https://tronhooks.com/docs/use-cases/usdt-deposits/

Use tronhooks.com to receive a signed HTTP callback when a watched address receives finalized USDT on TRON mainnet. Your backend does not need a per-address polling loop. Free accounts can monitor three active watches with no daily event cap.

## From address to callback

Create an account, generate a mainnet API key and register an incoming USDT watch. Supply an address you want to monitor and a public receiver you control. An address alone is not a notification destination.

```sh
# Review the inputs first. Running this POST creates a real watch.
# Set TRONHOOKS_API_KEY in your local secret environment, never in a URL.
curl --disable --fail-with-body https://tronhooks.com/v1/watches \
  -H "Authorization: Bearer $TRONHOOKS_API_KEY" \
  -H 'Content-Type: application/json' \
  -d '{"address":"YOUR_TRON_ADDRESS","asset_filter":"USDT","direction":"incoming","webhook_url":"https://YOUR_RECEIVER.example/webhook"}'
```

Store the returned signing secret once, verify the raw body of each callback, durably deduplicate `event_id`, and return 2xx after accepting it. See the [tested integration path](/docs/ai/) and [offline receiver examples](/docs/ai/examples/).

## What “confirmed” means

Events are emitted from finalized solidity-node data. Broadcast-to-finality time comes before delivery processing. A busy receiver, rate limit or outage can add delay; this is not a sub-second-from-broadcast guarantee. New watches do not backfill earlier transfers.

## When a callback fails

The receiver must be publicly reachable. Private/reserved destinations are rejected, including on each delivery's DNS recheck. Inspect response codes and retries in the console. After retries are exhausted the delivery becomes DEAD; use the events API to reconcile rather than assuming the transfer disappeared.

## Fit and limits

This is a notification service, not a payment processor: it does not generate deposit addresses, custody funds, sweep wallets or send money. Only USDT and native TRX are supported. If you need current balances or threshold alerts, read the [balance distinction](/docs/use-cases/balance-alerts/).

Start in the [console](/app?intent=deposit-webhook) or use the [AI integration guide](/docs/ai/). Paid billing is currently closed.
