API Reference — Overview
The gateway is the only public entry point; every endpoint lives under /v1.
- Production:
https://api.zaropay.com - Test:
https://api-test.zaropay.com
All requests authenticate with the X-Api-Key header.
Response envelope
Every successful response uses the same envelope:
{
"success": true,
"message": "Success",
"data": { },
"meta": { "page": 1, "limit": 20, "total": 0 }
}
dataholds the resource (object) or, for list endpoints, an array.metais present only on list endpoints (pagination).- Create endpoints return
201with"message": "Created"; reads return200.
Errors use a parallel envelope — see Errors.
Pagination
List endpoints accept:
| Param | Default | Notes |
|---|---|---|
page | 1 | min 1 |
limit | 20 | 1–100 |
The response meta carries { page, limit, total }.
Common enums
| Field | Values |
|---|---|
chain | tron |
currency | USDT, TRX |
deposit-address status | ACTIVE, EXPIRED, ARCHIVED |
deposit status | DETECTED, CONFIRMING, CONFIRMED, STUCK, REORG_PENDING, FAILED |
fee_mode | merchant, client |
Conventions
- Money values are decimal strings (e.g.
"100","100.000000000000000000"), never floats — preserve them as strings to avoid precision loss. - Correlation id: send an
x-correlation-idheader and it's echoed back in error responses ascorrelationId(useful for support). - No HTTP idempotency key. There is no
Idempotency-Keyheader. For safety, build charges keyed to your ownorderRef, and dedupe webhooks on the payloadid(deliveries are at-least-once).
Endpoints
| Resource | Endpoint |
|---|---|
| Create a charge / address / link | POST /v1/deposit-addresses |
| List addresses / links | GET /v1/deposit-addresses |
| Retrieve an address / order | GET /v1/deposit-addresses/:id |
| List deposits | GET /v1/deposits |
| Retrieve a deposit | GET /v1/deposits/:id |
| Manage webhook endpoints | /v1/webhooks/endpoints |