Test mode keys
Test keys are distinguished by prefix:Verification test data
Test mode supports deterministic verification outcomes so you can exercise approval, review, and failure paths without touching live users. Use the test profiles configured for your account rather than live customer data.Payment test data
When payments are enabled in test mode, use the designated test instruments for your account to simulate success, decline, and additional confirmation flows. Keep those values in internal runbooks rather than shipping them in production code.Replay events from the dashboard
The webhook delivery log under Developers → Webhooks → Deliveries lets you replay any past event with one click. Use this to iterate on your handler without needing to trigger real user actions.Local webhook development
Webhooks need a public URL. For local dev, tunnel your server with ngrok or Cloudflare Tunnel and register the tunnel URL as a test-mode webhook endpoint:Automated test patterns
Create a short-lived tenant per test run
Platform-tier accounts can create tenants programmatically. Use a per-suite tenant so tests don’t interfere with each other; tear it down in
afterAll.Record fixture events
Capture a real webhook payload once from test mode, then stub it as a POST in your unit tests. That way you don’t need the tunnel running in CI.
Use idempotency keys
Tests that re-run should produce the same state. Idempotency keys make retries safe and repeatable.
CI recipe
GitHub Actions