Direct checkout guide
Connect your own wallet: xPub for EVM and BTC, static address + unique amounts for TRON/TON, view key for Monero.
The direct checkout is fully non-custodial: buyers pay straight to your wallet, and ZeroKYC Pay only watches the chain and fires webhooks. Private keys never touch the platform — you connect a public pointer (xPub, address or view key) per asset. Pricing is the flat $29/$79 subscription + 0.5% overage.
Connection modes per asset
| Asset | Mode | What you provide | How matching works |
|---|---|---|---|
| USDC / USDT (Polygon, Arbitrum) | xpub | Account xPub (BIP44) | Fresh derived address per invoice, matched by address |
| BTC | btc_xpub | BIP84 xPub | Fresh BIP84 address per invoice, matched by address |
| USDT TRC-20 | static_amount | One TRON address | Unique amounts per live invoice |
| TON, USDT-TON | static_amount | One TON address | Unique amounts per live invoice |
| XMR | xmr_viewkey | Main address + private view key | Integrated address (payment id) per invoice |
Static address + unique amounts
TRON and TON wallets (and exchanges) don't export xPubs, so those chains use one static address and disambiguate invoices by amount: live invoices get amounts spaced by 2 × amount_tolerance + 1 unit. With a tolerance of ±0.1%, a $101.1 invoice gets $101.4, the next one $101.7 — payment windows never overlap.
Rules that make this safe:
- The address must be used exclusively through ZeroKYC Pay. A foreign transfer that happens to match a window produces a
payment.detectedwebhook for manual review, not an auto-confirm. - Tolerance
0(default) means exact match to the smallest unit. - Confirmations and rate rules are the same as transit (assets table).
xPub connection (EVM, BTC)
Paste the account xPub once — the platform derives m/44'/60'/0'/0/i (EVM) or BIP84 addresses atomically per invoice. An xPub can derive addresses but cannot spend, which is what makes this non-custodial. Optionally run a test derivation to validate before going live.
Monero view key
Provide your main XMR address and the private view key — a secret that can see incoming transfers but cannot spend them. We store it encrypted at rest, generate an integrated address (with an embedded payment id) per invoice and scan outputs with our own monerod plus a reserve node.
Custody cheat-sheet
direct xpub → keys: yours. platform holds: public key only
direct static → keys: yours. platform holds: the address itself
direct view key → keys: yours. platform holds: view secret (encrypted),
which can observe incoming, never spend
transit → platform holds: temporary hot key until sweepBilling and the cutoff
Your billing cycle runs every 30 days from registration (or from a plan change). The first 30 days are free — your Starter subscription starts on day 30, payable in USDT (TRC-20) via our hosted checkout. An unpaid platform invoice opens a 7-day grace period; after it, creating new invoices returns 402 account_suspended until settled. Live invoices, checkout and webhooks of your customers are never interrupted — and 30 days in suspension archives the account.
What your customer sees
The same hosted checkout with one difference: on direct, the payment address is derived from your wallet — that's the whole point.