Test your integration before going live
Create a test API key (qk_test_…) under Developers → API keys. Test keys only reach public testnets: real addresses, confirmations, webhooks, payouts and refunds behave exactly as in production, with free coins that have no value. When everything works, create a live key (qk_live_…) and switch your integration to the mainnet network ids (tron, bnb, bitcoin…).
1. Scenarios to try
Send less, more or later than requested to exercise underpaid, overpaid and late; send the same payment twice to see that a transaction is never credited twice; use "Send test event" on the Developers page to check your webhook endpoint. A local development install of Stablora can also simulate payments instantly with POST /api/v1/test/deposits; the public platform does not offer simulated networks.
2. Testnets — end-to-end with free coins
Create the invoice on a testnet network, open its checkout page and send testnet coins to the address shown. Stablora watches the chain, waits for confirmations, credits the payment and sends your webhooks. Payouts and refunds on testnets are real on-chain transactions.
| Network | API id | Assets | Where to get free coins |
|---|---|---|---|
| Ethereum Sepolia | sepolia | ETH, USDC | Google Cloud Web3 faucet (ETH) · faucet.circle.com (USDC) |
| Base Sepolia | base-sepolia | ETH, USDC | faucet.circle.com (USDC) · Coinbase developer faucet (ETH) |
| Arbitrum Sepolia | arbitrum-sepolia | ETH, USDC | faucet.circle.com (USDC) |
| OP Sepolia | op-sepolia | ETH, USDC | faucet.circle.com (USDC) · Superchain faucet (ETH) |
| Polygon Amoy | polygon-amoy | POL, USDC | faucet.circle.com (USDC) · Polygon faucet (POL) |
| Avalanche Fuji | avalanche-fuji | AVAX, USDC | faucet.circle.com (USDC) · Avalanche builder faucet (AVAX) |
| BNB Chain testnet | bnb-testnet | BNB | BNB Chain testnet faucet |
| Solana devnet | solana-devnet | SOL, USDC | faucet.solana.com (SOL) · faucet.circle.com (USDC) |
| TRON Nile | tron-nile | TRX, USDT | nileex.io → Get 1000 test coins |
| Bitcoin testnet | bitcoin-testnet | BTC | coinfaucet.eu (testnet) · bitcoinfaucet.uo1.net |
Faucets rate-limit requests (usually once per day or every few hours per address). Testnet coins have no value; never send real coins to a testnet address.
3. Go-live checklist
- Keep your secret API key on your server only; give each environment its own key and only the scopes it needs (
read,payments,payouts). - Verify every webhook signature (
Stablora-Signature, HMAC-SHA256, 5-minute tolerance) and store the event id before acting on it — deliveries can repeat. - Use “Send test event” on the Developers page to confirm your endpoint returns 2xx.
- Fulfil orders on
payment.completedonly. Handlepayment.discrepancy(underpaid, overpaid, late) explicitly, or configure an underpayment tolerance in Settings. - Never trust a “paid” status from the browser; confirm with
GET /api/v1/payments/:idor the webhook. - Send an
Idempotency-Keywith every payout and refund, and reuse it when retrying. - Store amounts as decimal strings, never floats.
- Enable two-factor authentication for everyone on your team, restrict API keys with an IP allowlist and review Security → activity.
- For casinos and platforms: decide your balance model (pooled or per-customer) and payout approval limits before launch.