Hosted messaging: SMS enablement without porting
Hosted messaging (also called “Hosted SMS” or “text-enabling”) makes an existing landline, toll-free, or mobile number SMS-capable without porting it to Orbit. The carrier of record keeps the number and voice service stays exactly where it is; Orbit gets a hosting arrangement with the carrier that lets inbound SMS on the number deliver into your account. This page is the concept model; the request-shape detail lives in the Hosted messaging endpoints, and the step-by-step walkthrough is in Text-enable a number with hosted messaging.Four attachment models
A number can come onto Orbit four ways, and they aren’t interchangeable. Hosted messaging is the model that never moves the number — it adds SMS routing on top of the number’s current carrier instead of replacing that carrier.
One capability follows a different attachment model: attaching your own
upstream SMS carrier for termination preference (covered in the BYO
carrier lifecycle). That model steers
which connector outbound SMS rides on; hosted messaging, buy, and port are
about which numbers your traffic is addressed to. A hosted number and a BYO
carrier are orthogonal — you can use them together, and neither blocks the
other.
Because a port supersedes a hosted order on the same number, the port-in row
and the hosted-messaging row can’t be in flight at once for one DID. Compare
the rows above before you open either; if you will eventually bring voice
too, skip hosting and go straight to a port.
Lifecycle: order → LOA → approval → active → cancel
A hosted-messaging order moves through a deliberate two-step human commitment (you sign, you submit) and a carrier-side verification wait, then either activates or terminates:
This vocabulary mirrors the wider number lifecycle —
statuses having a defined next step until they reach a terminal state. The
hosted messaging surface names
the verbs driving it:
POST /api/v1/numbers/hosted-messaging— open the order indraft.POST /api/v1/numbers/hosted-messaging/:id/loa/sign— record the signature.POST /api/v1/numbers/hosted-messaging/:id/submit— forward to the carrier.PATCH /api/v1/numbers/hosted-messaging/:id/route— adjust the route (pre-active).GET /api/v1/numbers/hosted-messaging(+/:id) — list / fetch the order.DELETE /api/v1/numbers/hosted-messaging/:id— cancel before carrier dispatch.
submitted, every transition is
yours and takes seconds; submitted → active is carrier time, measured in
the voice carrier’s response speed rather than any Orbit SLA.
LOA matching: what the signature authorizes
The LOA authorizes the hosting carrier to overlay SMS routing on the number — nothing more. Signing is deliberately decoupled from submitting so you can record authorization and revoke (cancel) before the carrier is ever told, the same deliberate break the porting flow gives you. The signer must be authorized on the carrier-of-record account; capture the verbatim acknowledgement so the record holds up in a dispute.Route lock at activation
TheinboundRoute object (webhook / inbox / messaging_service) can be
changed until the order is active. Once active the route locks — the
carrier-side hosting config and your delivery target must stay in lock-step,
so changing live routing means a new order, not an in-place edit.
Cancellation restores voice-only
Canceling an order before carrier dispatch returns the number to voice-only exactly as it was — nothing about its voice service was ever touched. A cancel in flight (submitted but not yet active) is the safe revocation
point; once active, removal is a separate operation and the carrier holds
the overlay until a replacement order or decommission.
What inbound and outbound SMS does on a hosted number
The two directions split across the carrier boundary:- Inbound (MO). The carrier of record forwards inbound SMS on the hosted
number to Orbit at activation. From there the message is identical to any
other Orbit inbound SMS — it follows your
inboundRoute(a webhook POST, an inbox landing, or a messaging service), and it carries the same event shape your existing receivers already consume, per the MO pipeline model. No special handling is needed at the receiver; the hosted number is a new source address, not a new message plane. - Outbound (MT) + DLRs. Outbound SMS on Orbit exits exclusively over the Devotel wholesale softswitch — hosting never creates an outbound path, and it never makes the carrier the sender. Delivery receipts for those sends run through Orbit’s normal DLR planes (DLR lifecycle), unaffected by whether the sending number happens also to be SMS-hosted. A hosted number that you also use as a sender ID behaves exactly like any other number in your inventory: MO lands via the overlay, MT exits via the softswitch, and both reconcile in the one send-side DLR ledger.
Choose hosted messaging over a full port when
Hosting is the right model when the constraint is “voice can’t move”:- Voice must stay with the losing carrier — a PBX contract, an enterprise telephony platform, a bundled plan, or a country that gates voice portability.
- The number is not voice-portable — some rate centers and country rules block ports while still allowing SMS-only hosting.
- The number is a landline or toll-free you only need for messaging — common for support hotlines and reply-to lines that also receive calls.
Failure modes
- Incomplete LOA. A missing signature block, a signer not authorized on
the carrier-of-record account, or a missing
businessNamemakes the carrier reject on contact. ReadrejectionReason, cancel the dead order, and open a fresh one with corrected data — retries on the same blocked order do not recover. - Carrier rejection. The hosting carrier can refuse on eligibility
(number class not one of
landline/tollfree/mobile, a carrier that does not accept hosting for that DID) or on ownership mismatch (the bill’s account-holder name doesn’t match the LOA). Fix the cause and open a new order; arejectedorder is terminal. - Duplicate order conflict. A second in-flight order for the same number
returns
409— the carrier accepts only one order per DID. Resolve the existing one (let it complete, or cancel it) before reopening. - Cancellation restores voice-only. If the number suddenly stops
receiving inbound SMS after an order
cancelled, that is by design — the overlay is what was delivering inbound to Orbit; the number’s voice service was never touched. - Route locked after activation. A
409on a route update means the order isactive— open a new order to change live routing; this is the lock-step invariant above enforcing itself, not an error.
See also
- Text-enable a number with hosted messaging — the end-to-end walkthrough this page defined.
- Hosted messaging endpoints — request/response shapes for every verb in the lifecycle.
- Number portability model — the full port model a hosted order supersedes when both are in flight.
- BYO carrier lifecycle — the outbound termination-preference model that pairs orthogonally with hosting.
- Number lifecycle — status vocabulary across all attachment models.