ZonmPay API v2

USDT API (TRC20)

Activate, receive, and withdraw USDT on TRC20.

USDT · TRC20One permanent TRC20 address per merchant: receive USDT, then quote and confirm withdrawals.

Authentication

Every request is authenticated with your secret key in the apiToken header. There is one base URL and one key: your account behaves as a sandbox until go-live is approved, on the same URL. Keep the key server-side only, and note that rotating it expires the previous one immediately.

Required Headers

apiToken

sp_sk_prod_XXXXXXXXXXXX

Content-Type

application/json

Overview

Activate once to get a permanent TRC20 address, watch deposits arrive through the usdt.received webhook, and withdraw in two calls: quote to lock the fee, then confirm with the quote reference. Only TRC20 is supported. Every route needs the matching scope on your API key (usdt:create, usdt:read, usdt:withdraw); a key without it gets 403 insufficient_scope.

Step 1POST

Activate USDT wallet

Creates one permanent TRC20 address for your merchant account. Calling it again returns the same address. Requires scope usdt:create.

POST https://zonmpay.com/api/v1/usdt/activate

Use zonmpay.com specifically (without www the request is redirected and some HTTP clients drop the POST body — which causes a server error).

bash
curl -X POST https://zonmpay.com/api/v1/usdt/activate \
  -H "Authorization: Bearer SPP_live_YOUR_API_KEY"
Step 2GET

Get your USDT address

Returns your permanent TRC20 deposit address. Requires scope usdt:read.

GET https://zonmpay.com/api/v1/usdt/address

Use zonmpay.com specifically (without www the request is redirected and some HTTP clients drop the POST body — which causes a server error).

bash
curl https://zonmpay.com/api/v1/usdt/address \
  -H "Authorization: Bearer SPP_live_YOUR_API_KEY"
Step 3GET

List USDT transfers

Paginated deposits and withdrawals plus your internal USDT balance. Requires scope usdt:read.

GET https://zonmpay.com/api/v1/usdt/transfers?page=1&limit=20

Use zonmpay.com specifically (without www the request is redirected and some HTTP clients drop the POST body — which causes a server error).

Query Parameters

ParameterTypeRequiredDescription
pageintegerNoDefault 1.
limitintegerNoDefault 20, max 100.
bash
curl "https://zonmpay.com/api/v1/usdt/transfers?page=1&limit=20" \
  -H "Authorization: Bearer SPP_live_YOUR_API_KEY"
Step 4POST

Quote a USDT withdrawal

Locks the fee and total for a TRC20 withdrawal. The quote expires, so confirm it promptly. Requires scope usdt:withdraw.

POST https://zonmpay.com/api/v1/usdt/withdrawals/quote

Use zonmpay.com specifically (without www the request is redirected and some HTTP clients drop the POST body — which causes a server error).

Request Body (JSON)

ParameterTypeRequiredDescription
addressstringYesDestination TRC20 address.
amountdecimalYesUSDT amount to send.
bash
curl -X POST https://zonmpay.com/api/v1/usdt/withdrawals/quote \
  -H "Authorization: Bearer SPP_live_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"address":"TXk8...9fQ","amount":20}'
Step 5POST

Confirm a USDT withdrawal

Sends the withdrawal using a quote reference. Requires scope usdt:withdraw.

POST https://zonmpay.com/api/v1/usdt/withdrawals

Use zonmpay.com specifically (without www the request is redirected and some HTTP clients drop the POST body — which causes a server error).

Request Body (JSON)

ParameterTypeRequiredDescription
quote_referencestringYesReference from the quote call.
bash
curl -X POST https://zonmpay.com/api/v1/usdt/withdrawals \
  -H "Authorization: Bearer SPP_live_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"quote_reference":"usdtq_01H..."}'