Number Porting (LNP)
Bring numbers from another carrier onto Orbit. A port-in request moves through carrier review, a Letter of Authorization (LOA), and a Firm Order Commitment (FOC) date before the number lands on your account — this guide covers the full self-serve flow: submitting a request, attaching and signing the LOA, reading the structured status timeline, reacting to webhooks, and migrating a large DID estate in one CSV upload. Read operations (list, get, timeline, the check / pre-validate preflight lints) are available to any role on the organization. Writes (create, LOA upload/sign/submit, supplement, cancel) require the numbers:write scope and an owner, admin, or developer role.
Submit a Port-In Request
numbers accepts a single E.164 string or an array for a multi-line port under one account. Omit country to store the request without dispatching to a carrier — useful when your team wants to attach documents before Orbit forwards it. Before submitting, run a portability preflight to catch a non-portable number early:
pre-validate and check/bulk are rate-limited to 5 requests per minute per auth context.
Upload and Sign the LOA
The Letter of Authorization proves you’re authorized to move the number. Orbit exposes a dedicated upload → sign → submit lifecycle instead of accepting a bare file URL:loaSignatureStatus: upload sets it to draft, signing moves it to signed, and submit forwards it to the carrier. The state machine is one-directional — once a LOA is signed or submitted, re-uploading a replacement is refused; cancel the porting request and resubmit instead if the wrong document went out. Signing twice returns 422, not a silent merge.
If the losing carrier kicks back a supplement request (a minor data correction — usually an address line or suite number), respond within the 7-day amend window so the FOC clock doesn’t restart:
Track the Status Timeline
GET /porting/:id/timeline expands the flat porting status into a structured, per-stage view — submitted → validating_loa → carrier_review → foc_assigned → foc_scheduled → completed — so you can show operators exactly where a port is stuck without calling the losing carrier.
focDate is echoed on the timeline once the losing carrier assigns one. If the port is rejected, the response includes a rejection object that translates the carrier’s opaque reject code (Telnyx/DIDWW/Bandwidth vocabularies, including numeric NIIF codes) into a plain-English summary and recommendedAction, tagged with a severity of operator_fixable, needs_carrier, or fatal so you know whether to fix your own data or escalate. Unknown codes fall through with the raw carrier text preserved rather than being hidden.
Poll for a fresh carrier decision with POST /porting/:id/refresh, or cancel outright with DELETE /porting/:id.
React to Porting Webhooks
Subscribe to these events instead of pollingtimeline on a loop — see Webhook Events for the full catalog and Webhook Security for signature verification:
Bulk CSV Port-In (Enterprise Migration)
Migrating 50-500 DIDs from another carrier as a single handoff doesn’t fit the one-number-at-a-time form. Upload a CSV instead:status: submitted, stored for manual carrier dispatch) so your team can attach the LOA and country code per-row afterwards through the normal dashboard flow — bulk import does not attempt 50-500 sequential carrier calls inside one request. The response reports both sides of the batch:
Set Up a Ported Number
Once the port completes, provision the number’s regulated identity from the number’s detail page or API before you route traffic to it:- Emergency Address (E911) — register and validate the per-number dispatchable emergency address when the ported number carries voice.
- CNAM & Caller ID — register the branded caller name recipients see, dip the carrier’s CNAM database for the currently registered name, and remediate “Spam Likely” or “Scam Likely” labels.
See Also
- Number Lifecycle — what happens to porting-completed numbers afterward (auto-renew, release, reassignment).
- Numbers API Reference — full request/response schemas for every porting endpoint, including toll-free RespOrg porting and hosted messaging (no-port SMS enablement).
- Webhook Events — the complete Number / Porting event catalog.