Port-in / port-out
Mobile Number Portability (MNP) is the most subtle flow in the platform. The carrier drives timing; Helium MVNE brokers the handshake and emits events your app can act on.
Port-in state diagram
Port-in sequence
Port-out
Initiated by the gaining carrier, delivered to Helium MVNE as an
inbound webhook. Helium MVNE normalizes it and emits port_out.requested
to your registered endpoints. You have a carrier-imposed validation
window to respond (typically 24 hours).
Common rejection reasons
| Code | What it means |
|---|---|
wrong_account_number | Subscriber-supplied account on file with losing carrier didn't match |
wrong_pin | Port-out PIN / transfer PIN didn't match |
number_not_portable | Losing carrier doesn't support MNP for this line type |
name_mismatch | Account holder name didn't match |
pending_port | A port is already in flight for this number |
Surface the reason verbatim in your UI — it tells the subscriber
exactly what to fix with their losing carrier.