Build crypto payments in an afternoon.
Accept 360+ cryptocurrencies, send mass payouts, run subscriptions, and reconcile every cent — over a single REST API. Sandbox is free; live keys ship the moment KYB approves.
Overview
Xynex is a REST API for accepting cryptocurrency payments, sending payouts, managing subscriptions, and reconciling balances. All endpoints are versioned under /v1.
Responses are JSON. Times are ISO-8601 UTC. Amounts are returned in both fiat (price) and crypto (pay) representations. Test keys (xnx_test_…) hit the sandbox; live keys (xnx_live_…) hit production.
Authentication
Every request needs a Bearer API key in the Authorization header. Create keys in Developers → API Keys.
Authorization: Bearer xnx_live_xxxxxxxxxxxxxxxx Content-Type: application/json Idempotency-Key: <uuid> # POST only — recommended
Use a fresh Idempotency-Key per logical action; retries with the same key return the same result without double-charging or double-paying out.
Supported coins & network codes
The coin / pay_currency field must be the exact lowercase ticker. The ticker encodes the network — e.g. usdttrc20 is USDT on TRC-20, usdterc20 is USDT on ERC-20.
| Coin | API ticker | Network |
|---|---|---|
| Bitcoin | btc | Bitcoin |
| Ethereum | eth | ERC-20 |
| USDT | usdttrc20 | TRC-20 |
| USDT | usdterc20 | ERC-20 |
| USDT | usdtbsc | BSC |
| USDC | usdc | ERC-20 |
| USDC | usdctrc20 | TRC-20 |
| BNB | bnbbsc | BSC |
| Tron | trx | Tron |
| Solana | sol | Solana |
| Polygon | matic | Polygon |
| Litecoin | ltc | Litecoin |
GET /v1/coins.Fetch the live list programmatically:
Create a payment
curl -X POST https://api.xynex.app/v1/payments \
-H "Authorization: Bearer xnx_live_..." \
-H "Idempotency-Key: 7f1c..." \
-H "Content-Type: application/json" \
-d '{
"price_amount": 49.90,
"price_currency": "USD",
"pay_currency": "usdttrc20",
"order_id": "ORDER-1042",
"order_description": "Pro plan — monthly",
"ipn_callback_url": "https://yourapp.com/ipn"
}'Response includes a pay_address, pay_amount, and payment_id. Display the address and amount to your customer, or redirect them to the hosted checkout_url.
Invoices & hosted checkout
Create an invoice if you want Xynex to host the entire checkout (coin picker, QR, expiry, retries). The response includes invoice_url — redirect or share it with your customer.
Payouts
{
"withdrawals": [
{ "address": "TGv...", "currency": "usdttrc20", "amount": 25.00 }
]
}Beneficiary addresses must be added & verified in the dashboard before they can receive funds. Network fee is fetched live and shown in the payout preview.
Subscriptions
Define a recurring plan and email customers a subscribe link. Xynex handles renewal reminders, dunning, retries, and cancellation. Webhooks are emitted for every state change.
Webhooks (IPN)
Configure callback URLs per merchant or per payment. We send POST requests with a JSON body and an HMAC-SHA512 signature header.
X-Xynex-Signature: <hmac-sha512-of-raw-body> X-Xynex-Event: payment.confirmed X-Xynex-Delivery: 4f9b... Content-Type: application/json
Verify the signature with your IPN secret (Developers → Webhooks). Respond with 2xx within 10 seconds; non-2xx responses are retried with exponential backoff for up to 24 hours.
Errors
Errors return a JSON envelope with an HTTP status:
{ "error": "validation_error", "issues": [ { "path": "price_amount", "message": "Required" } ] }- 400 / 422 — validation
- 401 — missing or invalid API key
- 403 — capability disabled / merchant frozen
- 404 — resource not found
- 409 — idempotency conflict
- 429 — rate limited
- 5xx — retry with the same idempotency key
SDKs & libraries
The API is plain REST + JSON, so any HTTP client works. Official SDKs are on the roadmap; in the meantime see the curl recipes above and the full reference inside your merchant dashboard.
Create your account