Sandbox & testing

Sandbox mode is isolated: a separate database, no on-chain broadcast, and pre-seeded test data. Enable it in one of two ways.

Header mode

Send x-sandbox: true on every payment-creation request with your sandbox API key. Equivalent to ?sandbox=true on the URL.

curl -X POST "https://api.zyndpay.io/v1/payments?sandbox=true" \
  -H "X-Api-Key: zyp_test_sk_..." \
  -H "x-sandbox: true"

Sandbox API key

Sandbox keys are prefixed zyp_test_sk_ (secret) or zyp_test_pk_ (publishable). The prefix alone does not auto-route β€” pair the key with ?sandbox=true or x-sandbox: true on payment-creation calls. Mixing a live key with the sandbox flag returns LIVE_KEY_SANDBOX_REQUEST; the reverse returns SANDBOX_KEY_LIVE_REQUEST.

Seeded test data

  • Test MoMo numbers that deterministically succeed, delay, or fail
  • Test USDT addresses that simulate instant settlement
  • A test customer email that bypasses KYC gating
  • A webhook echo endpoint at /v1/sandbox/echo for signature debugging
Was this helpful?