Skip to main content

How sandbox works

  • Use pk_test_... keys. Same base URL, same paths.
  • Orders are tagged sandbox=1 server-side. They never hit live providers and never appear in your payout calculations.
  • Provider responses are mocked deterministically. Network confirmations are simulated; nothing is ever broadcast.

Driving lifecycle with sandbox_scenario

Pass sandbox_scenario on /order/create (only honoured for pk_test_ keys): Optional sandbox_ttl=<seconds> shortens lifecycle for fast CI runs.

Webhook delivery in sandbox

Webhooks fire normally with "sandbox": true at the top level. Use a separate sandbox webhook URL in the dashboard so you don’t pollute production logs.

Sandbox SSE concurrency

Same headers and resume semantics as production, but the per-partner cap is fixed at 50 concurrent regardless of tier.

When to leave sandbox

Before you can flip to pk_live_:
  1. KYB form submitted in the dashboard.
  2. Webhook URL whitelist passes our SSRF guard (HTTPS + public IP).
  3. At least one successful sandbox round-trip on each pair class you support.
  4. Payout address verified (we send a $1 test transaction; you confirm receipt).