Developers
One API for crypto payments.
A REST API with idempotency, signed webhooks, a strict payment state machine and a full sandbox. Test keys are issued for sandbox evaluation.
curl -X POST https://api.zopay.io/v1/payments \
-H "Authorization: Bearer sk_test_xxx" \
-H "X-Idempotency-Key: order-10001" \
-H "Content-Type: application/json" \
-d '{
"order_id": "ORDER-10001",
"price_amount": "100.00",
"price_currency": "USD",
"pay_currency": "USDT_TRON",
"callback_url": "https://you.com/webhooks"
}'01
Create a payment
Call POST /v1/payments with the fiat price and the crypto method your customer chose.
02
Redirect to checkout
Send the customer to the hosted checkout_url, or render the address and QR yourself.
03
Receive webhooks
We POST signed events for every status change. Verify the HMAC signature and update your order.
04
Settle & reconcile
Funds accrue to your balance. Settle to your wallet manually or on a schedule, then export reports.
Predictable responses.
Amounts are always decimal strings — never floats. Every request carries a request id and every error a stable code.
{
"id": "pay_01K123456789",
"status": "waiting",
"price_amount": "100.00",
"pay_amount": "100.350000",
"pay_currency": "USDT_TRON",
"pay_address": "TYxxxxxxxxxxxxxxxxxxxx",
"checkout_url": "https://pay.zopay.io/pay_01K123456789",
"expires_at": "2026-07-15T20:30:00Z"
}POST /v1/payments Create a payment invoice
GET /v1/payments/:id Retrieve a payment
GET /v1/payments List payments
POST /v1/payments/:id/refund Refund a payment
GET /v1/currencies Supported currencies
GET /v1/estimates Estimate a crypto amount
GET /v1/balances Merchant balances
GET /v1/settlements List settlements
POST /v1/sandbox/payments/:id/simulate Simulate chain events