Quickstart
Register, create your first merchant, and receive your first webhook — under 15 minutes.
Goal: from a fresh signup to your first confirmed test invoice in about 15 minutes.
1. Register#
Open the dashboard and sign up with your email and a password. After login you land on an empty merchants list.
2. Create a merchant#
A merchant is your unit of integration. One account can have many (one per brand, region, or environment). For now, create one:
- Click Merchants → New merchant.
- Enter a display name.
- Enter a webhook URL — where we'll POST events. The URL must be a public
http(s)host (private and localhost destinations are rejected), so for local development use a tunnel like ngrok or cloudflared pointing at your dev server. - Save.
3. Copy your API key and webhook secret#
On your new merchant's detail page:
- API key — shown once. Store it in your secret manager. Send it as
Authorization: Bearer <api-key>on every API call. - Webhook secret — also shown once. Used to HMAC-sign every webhook we send you. See Verify webhook signatures.
Lost either one? Rotate — rotation invalidates the old value immediately.
4. Create your first invoice#
Easiest path is the dashboard's Test payment page — same API call your backend will make, wrapped in a form.
- Open Test payment in the sidebar.
- Pick a fiat currency + amount, a crypto currency, and a network.
- Submit. You're taken to an invoice page with a scannable QR for any wallet.
5. Receive your first webhook#
The moment the invoice is created, we POST invoice.created to your webhook URL. Check:
- Your server logs for the incoming POST.
- Your dashboard's Webhook events tab on the merchant page — every attempt is visible with the HTTP status your server returned.
If the attempt shows failed, either your URL was wrong, your server returned non-2xx, or signature verification failed on your side. Fix it — failed deliveries are retried automatically with backoff, or click Retry on the row to redeliver immediately.
6. Pay the invoice#
Send the exact crypto_amount to the deposit address. The platform only supports mainnet — there is no testnet today — so use a small real amount on a dedicated test merchant while you're verifying your integration.
You'll receive, in order:
invoice.pending— deposit seen on-chain.invoice.confirming— confirmations accumulating.invoice.confirmed— target reached. Fulfil the order.
What to read next#
- Make your integration production-safe with Idempotency and Verify signatures.
- Understand every event in the Webhooks reference.
- Run through the Production checklist before going live.