Skip to main content

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 telnyx CLI — the same wizard, scriptable from your terminal or a CI pipeline:
    Install with npm install -g @devotel-orbit/cli, then devotel auth login first. See the CLI README for the full flag reference.
The rest of this guide covers the manual, code-level migration for teams who want full control over each step.

Step 1: Create Your Orbit Account

  1. Sign up at orbit.devotel.io/signup
  2. Generate an API key at Settings > API Keys
  3. 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 with LOA_URL_INVALID_ORIGIN.
Alternative: Buy new numbers from Orbit and update your systems gradually.

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:
Orbit:
MMS payload swap: Telnyx:
Orbit:

Key Differences


Step 5: Map Webhooks

Telnyx POSTs delivery events as v2 webhook payloads with data.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):
Orbit (same delivery, one event per transition):

Update Signature Verification

Delivery Receipts Per Channel

Orbit emits message.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):
Orbit (after):
Call payload swap: Telnyx:
Orbit:
Outbound voice on Orbit terminates through the Devotel wholesale softswitch, never through Telnyx — the telnyx connection/Call Control account you are migrating from is inbound-only once cut over.

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:
  1. Phase 1 (Week 1–2): Send 10% of traffic through Orbit, 90% through Telnyx. Compare delivery receipt latency and per-carrier DLR rates.
  2. Phase 2 (Week 3–4): Split 50/50. Watch delivery receipts for regressions per carrier.
  3. Phase 3 (Week 5): Route 100% through Orbit, keep Telnyx as fallback.
Rollback: The import wizard’s rollback (Settings → Migrations) removes the contacts the imported job created. For live traffic, keep Telnyx credentials in your secret store until parallel checks finish green — fall back by switching your 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.
Need help with your migration? Our solutions team offers free migration support for customers moving from Telnyx. Contact migrate@devotel.io.