Getting started
i
Create invoices, receive crypto on unique deposit addresses, and get signed webhooks when status changes. Use TEST API keys in sandbox before going live.
1. Get credentials
- Open the dashboard → API keys and copy your merchant UUID + payment key.
- Prefer a TEST key first. Sandbox invoices settle with simulated deposits and never move mainnet funds.
- Read Request format for
merchant+signheaders.
2. Create an invoice
POST/api/v1/payment
curl /api/v1/payment \
-X POST \
-H 'merchant: YOUR_MERCHANT_UUID' \
-H 'sign: COMPUTED_SIGN' \
-H 'Content-Type: application/json' \
-d '{
"amount": "25.00",
"currency": "USDT",
"network": "TRC20",
"order_id": "order-1001",
"url_callback": "https://merchant.example/webhooks/ULX Pay",
"url_success": "https://merchant.example/orders/1001/thanks",
"is_payment_multiple": false
}'Duplicate order_id returns the existing invoice (idempotent create). Hosted checkout URL is returned as url / pay page path.
3. Send the payer to hosted checkout
Redirect the customer to the returned pay URL (canonical route /pay/{payment_id}). Legacy /checkout/{payment_id} links redirect there automatically.
4. Handle webhooks
Verify the webhook signature, then update your order when status becomes paid. See Payment webhooks.
5. PHP SDK (optional)
Prefer the PHP SDK for signing and typed helpers. Point base_uri at /api/v1.