Migration from Telnyx to Orbit
This guide walks you through migrating your SMS/MMS, voice, SIP, and fax integration from Telnyx to Orbit with a concept-by-concept code map.Only porting your account configuration — numbers, messaging profiles,
10DLC registrations, contacts? The assisted import wizard does that without
any code changes: see Assisted import wizard.
This guide is the manual, code-level path for teams rewriting the integration
itself, and you can run both in parallel.
Concept Mapping
Prefer not to do it by hand?
Two options port your Telnyx account’s configuration (numbers, messaging profiles, content templates, and contacts with recent history) onto Orbit for you — neither touches your live traffic, so your existing Telnyx integration keeps running until you decide to cut over:-
Dashboard wizard — Settings → Import → Telnyx walks you through
pasting a Telnyx V2 API key (starts with
KEY), a dry-run preview of what carries over, and a one-click commit with rollback. -
devotel migrate telnyxCLI — the same wizard, scriptable from your terminal or a CI pipeline:Install withnpm install -g @devotel-orbit/cli, thendevotel auth loginfirst. See the CLI README for the full flag reference.
Step 1: Create Your Orbit Account
- Sign up at orbit.devotel.io/signup
- Generate an API key at Settings > API Keys
- Note your key prefix:
dv_live_sk_xxxx
Step 2: Port Your Numbers
Porting moves your Telnyx numbers onto Orbit; the process takes 7–14 business days. Telnyx stays live until you cut over. A port request must carry a Letter of Authorization (LoA). Orbit only accepts an LoA URL it issued itself, so you upload the signed PDF to Orbit first and submit the returned URL — a link to your own bucket is rejected withLOA_URL_INVALID_ORIGIN.
Step 3: Port US 10DLC Registration
US carrier messaging requires a 10DLC brand and campaign before high-volume SMS goes through. The import wizard carries your Telnyx campaign registrations across as mapped reference config; finish the registration itself in Orbit’s guided 10DLC wizard, which walks brand details, EIN, sample messages, and the compliance attestation and submits to the carriers.Step 4: Replace Send + Receive
Telnyx (Before)
Orbit (After)
SMS Payload Swap (same message, both APIs)
Telnyx:Key Differences
Step 5: Map Webhooks
Telnyx POSTs delivery events as v2 webhook payloads withdata.type set to
message.finalized; Orbit emits one JSON event per lifecycle transition,
with the event type in the envelope:
Webhook Header Changes
Verify against
X-Orbit-Signature — it is the canonical header Orbit sends on
every webhook delivery. X-Devotel-Signature is still emitted for backward
compatibility only; treat it as legacy and do not build new verifiers against
it.
Payload Format Changes
Telnyx (v2 webhook):Update Signature Verification
Delivery Receipts Per Channel
Orbit emitsmessage.sent, message.delivered, and message.failed events
on SMS, MMS, and RCS with the same envelope shape and payload contract. Point
each channel’s wire-up at the DLR webhook guide
if your Telnyx logic branched per channel.
Step 6: Replace Voice Calls and SIP Trunks
Voice Calls
Telnyx Call Control (before):IVR Trees
Replace Call Control flows with Orbit’s IVR flow graph ({ nodes, edges },
the same shape the visual IVR builder
saves). See the Migrate from Twilio guide
for a worked graph example — the same API surface applies to Telnyx
migrations, with transfer targets limited to phone numbers or on-net
extensions (outbound calls exit only via the Devotel softswitch).
SIP Trunks
If you terminate SIP trunk traffic into Telnyx today, re-point inbound at your Orbit SIP trunk connection (see Connect a SIP trunk) and register the same numbers in Orbit. Outbound SIP routes onto the Devotel softswitch.Step 7: Fax
Telnyx fax migrates to Orbit’s fax workflow; inbound T.38 faxes land as PDFs and outbound faxes go through the fax send workflow. Port your fax-capable numbers in Step 2, and your last inbound fax webhook wires up like any other message webhook (Step 5).Migration Checklist
- Create Orbit account and generate API keys
- Port numbers or purchase new ones
- Complete US 10DLC registration (if applicable)
- Install Orbit SDK (
npm install @devotel-orbit/node) - Replace SMS/MMS send + receive calls
- Replace webhook endpoint handlers
- Update webhook signature verification
- Rewire delivery receipts per channel with the wire-DLR guide
- Replace Call Control voice calls and IVR trees
- Re-point SIP trunks (if applicable)
- Migrate fax workflow (if applicable)
- Run parallel testing (send via both Telnyx and Orbit)
- Decommission the Telnyx integration
- Cancel the Telnyx account
Parallel Running and Fallback
Run Telnyx and Orbit in parallel during cut-over:- Phase 1 (Week 1–2): Send 10% of traffic through Orbit, 90% through Telnyx. Compare delivery receipt latency and per-carrier DLR rates.
- Phase 2 (Week 3–4): Split 50/50. Watch delivery receipts for regressions per carrier.
- Phase 3 (Week 5): Route 100% through Orbit, keep Telnyx as fallback.
orbit.messages.send client back to telnyx.messages.send
with the original messaging_profile_id; no re-import is needed because the
numbered configuration and messaging services are idempotent records.
Decommission only after the rollback path has been exercised at least
once during the parallel window.