POST to /v1/payment/white-label, get back an address + QR payload. You host the checkout surface. Your customers never leave your domain. The chain work, confirmations, webhooks, receipts — all OrbChain.
currency to BTC etc.).REQ// $50 USD invoice payable in USDT on Tron. Hosted by YOU, not us. curl https://orbchain.io/v1/payment/white-label \ -H "merchant_api_key: mk_live_…" \ -H "Content-Type: application/json" \ -d '{ "amount": 50, "currency": "USD", "pay_currency": "USDT_TRC20", "order_id": "order_7f92a1", "callback_url": "https://shop.example/webhooks/orbchain", "expires_in": 3600 }' // → 200 OK { "track_id": "pay_01JR3K9T…", "address": "TXN7…9qF", "pay_amount": "50.000000", "pay_currency": "USDT_TRC20", "qr_payload": "tron:TXN7…9qF?amount=50", "expires_at": "2026-04-20T19:45:00Z" }
pay_currency to BTC_LN — returns a BOLT11 invoice for you to render.LIVE/v1/payment/:track_id/receipt.LIVEGET /v1/payment/:track_id returns the current state.LIVEorder_id + merchant + coin returns the same invoice. No dupes, no races.LIVE/checkout route, call the endpoint above with the cart total + picked coin, render the returned address + QR.FRONTENDGET /v1/payment/:track_id every 5s OR listen for your own backend SSE fed by our webhook.FRONTENDwebhook_secret in constant time; mark the order paid.BACKENDNo. Your checkout page is on your domain; the API call is server-to-server. The only time our domain appears to the customer is if you choose to redirect them to /pay/:track_id — that's Invoice, not White Label.
Two options: your frontend polls GET /v1/payment/:track_id every few seconds, OR your backend receives our HMAC-signed webhook and pushes an update to the client via WebSocket/SSE. The polling approach is simpler; the webhook approach is instant.
Yes. pay_currency: "BTC_LN" returns a BOLT11 invoice string and a QR payload you render directly. Settlement is sub-second once the customer's wallet pays.
Yes — identical to the Invoice surface. GET /v1/payment/:track_id/receipt on any PAID payment returns the Ed25519-signed receipt. Verify against our public key from /v1/common/receipt-public-key.
Invoice hosts the payment page at /pay/:track_id on our domain; you just hand the URL to the customer. White Label returns the raw address + QR + amount; you render the surface yourself. Pick the one matching your stack's shape.
Email and password. The API surface above is the entire integration.