Test mode & the sandbox
Every ig_test_ key runs against the sandbox — a full-fidelity copy of the API backed by a mock
network. It behaves exactly like production (same endpoints, same async webhooks, same errors) but never
touches the real network and never spends money. Build and test your entire integration here, then swap the
key to go live.
What’s isolated
Section titled “What’s isolated”Sandbox and production are structurally isolated — separate data, reachable only by the matching key
prefix. There is no way for a ig_test_ key to read or change production data.
Test-plane tools
Section titled “Test-plane tools”The sandbox exposes extra /v1/test/* endpoints (sandbox keys only) so you can drive deterministic
scenarios instead of waiting for real-world events:
- Mint test eSIMs — create eSIMs in any state without a real order.
- Drive synthetic usage — inject data usage to trigger metering, thresholds, and depletion.
- Scenario triggers — an eSIM that auto-depletes, one that fails activation, one that fires
bundle.usage_threshold, one that goes to an error/fraud state. - Test clock — fast-forward validity, expiry, renewal, and reconciliation cycles without waiting.
See the API Reference for the exact /v1/test/* shapes.
Fire a disconnect before you go live
Section titled “Fire a disconnect before you go live”The point of a real sandbox is to exercise the scary paths safely: cap enforcement, disconnect, suspend, threshold webhooks, expiry. Trigger each one in the sandbox and confirm your webhook handlers react correctly — before a single real SIM is in a customer’s phone.