Helium MVNEdocs

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

CodeWhat it means
wrong_account_numberSubscriber-supplied account on file with losing carrier didn't match
wrong_pinPort-out PIN / transfer PIN didn't match
number_not_portableLosing carrier doesn't support MNP for this line type
name_mismatchAccount holder name didn't match
pending_portA 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.