Get started

From sign-up to first payment
in seven steps

The dashboard's setup wizard does most of the work. Your developer writes about 50 lines of server code.

  1. 2 minutes

    Sign up

    In the dashboard, click “Sign up” and enter your business name, email and password. Then confirm your email using the link we send you.

  2. 1 minute

    Turn on two-factor authentication

    Required for everyone: an authenticator app (TOTP). The setup wizard starts once it's enabled. You can add passkeys later.

  3. 10 minutes

    Add receiving wallets

    This is where payments land. We only need public data: never enter your seed phrase or private keys, here or anywhere else.

    • Bitcoin, Litecoin, TRON: your account xpub/zpub from Ledger Live, Sparrow, Trust Wallet and similar. We'll show the first few addresses so you can check them against your wallet.
    • Ethereum, BSC, Polygon, Base, Arbitrum: a collection wallet (ideally a Safe multisig).
    • Solana: a receiving address.
  4. 1 minute

    Choose assets

    Pick which coins and networks to offer customers. Stablecoins USDT and USDC are the easiest place to start: pegged 1:1 to the dollar, no exchange-rate risk.

  5. 2 minutes

    Create an API key and webhook

    Under “Keys & webhooks,” the key secret and webhook secret are shown only once. Store them right away in a secrets manager or your server's environment variables.

  6. 1 evening

    Integrate and test in the sandbox

    Invoice creation, a redirect and a webhook handler. The sandbox has its own dashboard and keys, with no real money involved. Run through the scenarios: exact payment, underpayment plus top-up, overpayment, expired invoice, webhook retry.

    • Quickstart: code for Node.js, PHP, Python and Go
    • Sandbox: test payments at the click of a button
  7. after review

    Submit for approval and go live

    The wizard submits your application for review. Once approved, issue a separate production key and work through the go-live checklist.

What you'll need

  • Wallets you controlA hardware wallet or multisig is safer for a business than a mobile wallet.
  • A server with HTTPSWebhooks are delivered only to https:// on port 443 (plus localhost in the sandbox).
  • A synced clockRequest signatures are valid for ±5 minutes, so enable NTP.
  • A place for secretsA secrets manager or environment variables. Not git, not the browser, not a mobile app.
No developer on hand?Send them the quickstart link. It has everything they need, with ready-to-use code.
Minimal integration

All the code in one sketch

pseudocode
# 1. The customer clicked “Pay”
invoice = client.createInvoice({order_id, price_amount: "49.99", price_currency: "USD",
                                return_url}, idempotencyKey = "order-" + order_id)
redirect(invoice.checkout_url)

# 2. Coinetic sent a webhook (raw body!)
event = verifyWebhook(WEBHOOK_SECRET, headers, rawBody)     # otherwise 400/401
if seen(event.id): return 200                               # duplicate delivery
inv = client.getInvoice(event.data.invoice_id)              # status from the API only
if inv.status in ["paid", "overpaid"]: grantOnce(inv.order_id)
return 200

Ready to start?

Sign-up is free, and so is the sandbox.