Skip to content

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.

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.

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.

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.