Testing in sandbox
The sandbox runs the real platform wired to simulated backends for every third party — carrier, tax, payments. A dedicated Sandbox DX surface is available in the operator dashboard for driving state transitions that would otherwise require a real carrier: force-completing activations, seeding port scenarios, advancing the clock, and so on.
These controls live in the dashboard, not on the public API.
They're scoped to the dashboard's currently-selected environment
and only work when that environment is sandbox — there is no
programmatic test-mode surface for integration code, by design.
Driving state transitions
In the dashboard, open Sandbox → Triggers while your sandbox environment is selected. Pick a resource (SIM, port, subscription, carrier connection) and the trigger you want:
sim.force_activation_success— fast-forward a SIM frompending_activation→activeand firesim.activated.sim.force_activation_failure— forceactivation_failedand firesim.activation_failed.port.force_validation_failed— synthesize a port-in validation failure with a reason of your choice.port.force_completion— complete a port and activate the SIM.
The full trigger catalog is listed in the trigger panel and
documented inline per resource. Triggers are rejected outright in
live environments — they exist only for sandbox.
Clock control
The sandbox clock runs at wall-clock time by default. Pin or advance it from Sandbox → Time travel in the dashboard:
- Advance by — jump the sandbox clock forward by N seconds / minutes / hours / days.
- Reset — restore the environment to wall-clock time.
Advancing the clock fires scheduled jobs immediately — a 30-day subscription renewal happens the moment you advance past the renewal mark.
The clock offset is per-environment, so advancing sandbox never affects live (live always reads wall-clock) and operators don't interfere with each other.
Scenario seeds
Bootstrap a full scenario (operator + subscriber + SIM + active subscription, or mid-port happy path, etc.) in one click from Sandbox → Seed scenarios in the dashboard. The available scenarios are listed in the panel alongside a short description of what each one creates.