Xynex API v1

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.

Base URL https://api.xynex.app/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.

CoinAPI tickerNetwork
BitcoinbtcBitcoin
EthereumethERC-20
USDTusdttrc20TRC-20
USDTusdterc20ERC-20
USDTusdtbscBSC
USDCusdcERC-20
USDCusdctrc20TRC-20
BNBbnbbscBSC
TrontrxTron
SolanasolSolana
PolygonmaticPolygon
LitecoinltcLitecoin
Full list (350+) available via GET /v1/coins.

Fetch the live list programmatically:

GEThttps://api.xynex.app/v1/coins

Create a payment

POSThttps://api.xynex.app/v1/payments
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

POSThttps://api.xynex.app/v1/invoices

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

POSThttps://api.xynex.app/v1/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.

POSThttps://api.xynex.app/v1/subscriptions

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