Sandbox environment
The sandbox exposes the same API endpoints as production with identical request/response formats. Your integration code should work in both environments with only a base URL and API key change.
Getting sandbox access
Sandbox credentials are issued during Stage 3 (Technical integration) of onboarding:- Sandbox API key — Separate from your production key; no rotation required during testing
- Partner ID — The same UUID used in both sandbox and production
- Webhook secret — A separate sandbox secret for testing callback delivery
Test scenarios
The sandbox supports configurable test scenarios for edge case testing.Normal operation
Normal operation
Default state. All corridors active, oracle feeds fresh, pools healthy. Use this for happy-path testing — verifying the full quote → execute → settle → confirm flow for each corridor you intend to support.
State transitions
State transitions
Simulate system state changes to test how your integration handles protective states and trading halts. Verify that your UI degrades gracefully when corridors are paused or the system enters a protective state.
Oracle failures
Oracle failures
Simulate stale oracle data or source divergence. Verify that your error handling correctly processes
ORACLE_STALE and ORACLE_DEVIATION errors and presents appropriate messaging to downstream users.Quote expiry
Quote expiry
Request a firm quote and wait for it to expire before attempting execution. Verify that your flow handles the
QUOTE_EXPIRED error and re-requests a fresh quote without requiring manual intervention.Volume limits
Volume limits
Submit transactions that exceed configured daily or monthly limits. Verify that rejections are handled gracefully and that your system does not retry automatically in a way that could cause duplicate submissions.
Webhook delivery
Webhook delivery
Verify that your webhook endpoint receives all event types, validates HMAC signatures correctly, and handles duplicate delivery idempotently. Ratio may deliver the same event more than once; your handler must be safe to call multiple times with the same payload.