Test your integration before going live
Every Stablora account starts in test mode. There are two ways to test, and you should use both: sandbox networks for instant, repeatable scenarios in automated tests, and real testnets to see real addresses, confirmations, webhooks and payouts exactly as they will behave in production — with free coins that have no value.
1. Sandbox networks — instant simulation
Networks without the “testnet” label (e.g. tron, bitcoin) use simulated qtest_… identifiers. Create an invoice, then simulate the customer paying it:
POST /api/v1/test/deposits
Authorization: Bearer qk_test_…
{ "paymentId": "pay_…", "amount": "25", "transactionHash": "sim_order_1042" }Send less, more or later than requested to exercise underpaid, overpaid and late. The same transactionHash is never credited twice — replay it to test your idempotency handling.
2. Real 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.