Direct checkout guide
Connect your own wallet: one static address + unique amounts for every asset except Monero (view key).
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 an address (or a Monero 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 |
|---|---|---|---|
| BTC, LTC, DOGE, BCH | static_amount | One Bitcoin (bc1…) / Litecoin (ltc1…) / Dogecoin (D…) / Bitcoin Cash (q…) address | Unique amounts per live invoice |
| XRP | static_amount | One XRP Ledger address (r…) | Unique amounts per live invoice |
| NEAR | static_amount | One NEAR account (name.near or 64-hex) | Unique amounts per live invoice |
| SOL, USDT/USDC (Solana) | static_amount | One Solana wallet address (base58) | Unique amounts per live invoice |
| ETH, USDT (Ethereum), USDT (BSC), BNB, USDT (Arbitrum), USDC, USDT (Polygon), USDC (Arbitrum) | static_amount | One EVM address from any wallet | Unique amounts per live invoice |
| USDT TRC-20, TRX | 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
Everyday wallets (and exchanges) don't export xPubs, so every asset except Monero uses 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; for stablecoin invoices ±0.0001–0.001 is a practical default — the console previews the resulting window step live. - Confirmations and rate rules are per-asset (assets table).
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 static → keys: yours. platform holds: the address itself
direct view key → keys: yours. platform holds: view secret (encrypted),
which can observe incoming, never spend
Billing 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, buyers pay straight to your address — that's the whole point.
Full setup walkthrough — from getting keys to the first confirmed payment: Integration guide.