Helium MVNEdocs

SIMs lifecycle

A SIM in Helium MVNE is a first-class resource with its own state machine. The carrier dictates the legal transitions; the platform enforces them and emits events.

State diagram

Ordering a SIM

POST /v1/sims
  subscriber_id, ship_to_address_id?, type=physical|esim

Physical SIMs trigger a fulfillment event; eSIMs return an activation code (LPA string) immediately.

Activation

POST /v1/sims/{id}/activate
  subscription_id, msisdn?  # omit msisdn to get a new one

Activation is async. The call returns 202 Accepted and moves the SIM to pending_activation. The carrier calls us back with either activation_success or activation_failed; we emit the matching event.

Suspension, swap, deactivation

All three accept an optional reason string that flows through to the carrier and the sim.* events.

Sandbox testing

In sandbox, use the dashboard's Sandbox → Triggers panel to fast-forward a SIM through the async transitions without waiting on the simulated carrier's delay — see Testing in sandbox.