ZaroPay API
ZaroPay lets you accept USDT on the TRON network from your CRM, store, or app — without touching private keys or running a node. You create a charge, your customer pays on-chain, and ZaroPay notifies you with a signed webhook the moment the payment confirms.
How an integration works
1. Create a charge 2. Customer pays 3. You get a signed webhook
───────────────── ────────────── ───────────────────────────
POST /v1/deposit-addresses Customer sends USDT to ZaroPay POSTs deposit.confirmed
→ address + checkout_url the address (hosted to your URL, HMAC-signed.
checkout page or direct). You verify + fulfil the order.
- Create a charge — call
POST /v1/deposit-addresseswith the order amount. You get back a unique depositaddressand a hostedcheckout_url. - Customer pays — send them to the
checkout_url(a branded payment page with a QR code), or show the address yourself. - Get notified — when the payment reaches the required confirmations, ZaroPay sends a
deposit.confirmedwebhook signed with HMAC-SHA256. You verify the signature, then mark the order paid.
Always trust the webhook, not the redirect
The customer's browser redirect back to your site is convenient for UX, but it is
customer-controllable. Treat the signed deposit.confirmed webhook as the source of truth for
fulfilment.
What you can build
- Checkout / payment links — a hosted page per order (no front-end work).
- In-app payments — generate an address, show your own UI, react to the webhook.
- Reusable receive addresses — a stable "deposit USDT" address per customer or wallet.
Next steps
- Quickstart — first payment in a few minutes.
- Authentication — API keys, test vs live, IP allowlisting.
- API Reference — every endpoint and field.
- Webhooks + Signature verification — the part that matters for getting paid safely.
Base URLs
| Environment | Base URL |
|---|---|
| Production (mainnet) | https://api.zaropay.com |
| Test (testnet) | https://staging-rest.zaropay.com |
Every endpoint is under the /v1 prefix.