Back to Blog
Integration Guides

How to Migrate from Vonage to Twilio: Step-by-Step Guide

Vonage is shutting down its legacy APIs. Here is the complete migration path to Twilio covering number porting, code changes, and zero-downtime cutover.

DA
Danial A
Senior Twilio Consultant, Telphi Consulting
June 22, 2026
7 min read
Twilio
Migration
Integration
How to Migrate from Vonage to Twilio: Step-by-Step Guide

Migrating from Vonage to Twilio requires porting your existing phone numbers to Twilio, updating your application code to use the Twilio REST API instead of the Vonage SDK, reconfiguring webhooks to point to your existing endpoints under new URL formats, and completing Twilio's A2P 10DLC registration before enabling US SMS on ported numbers. This migration is driven by Vonage's sunset of several legacy API products including Vonage Business Communications and the Nexmo SMS API brand restructure, forcing businesses to either re-platform onto Vonage's new APIs or migrate to Twilio's more widely documented and developer-supported platform. The migration is achievable with zero production downtime by running Twilio and Vonage in parallel for a test period before cutting over DNS and webhook URLs.

What You Need Before You Start

Create a Twilio account and complete identity verification by providing your business name, address, and a valid phone number for account verification in the Twilio Console, as Twilio requires business verification before activating phone number porting and high-volume SMS capabilities. Export your Vonage number list by logging into the Vonage Dashboard at dashboard.nexmo.com, navigating to Numbers, then Your Numbers, and downloading the list of numbers currently in your Vonage account, noting the country code, number type (local, toll-free, or short code), and any active voice or SMS configuration on each number. Complete Twilio's A2P 10DLC Brand and Campaign registration before initiating number porting, as ported US numbers must have a registered 10DLC campaign before they can send outbound SMS to US recipients, and the 10DLC registration process takes 1 to 5 business days for brand approval and an additional 1 to 3 days for campaign approval. Audit all code in your application that uses the Vonage Node.js, Python, PHP, Java, or Ruby SDK and document each API call type including SMS send, voice call initiation, DTMF gathering, and webhook receipt, as each requires a specific code change to the equivalent Twilio API call.

Step-by-Step Integration Guide

Initiate a Twilio number port request by navigating to the Twilio Console under Phone Numbers, then Port and Host, clicking Port a Number, entering each Vonage number in E.164 format, and submitting a Letter of Authorization signed by the business account holder, which authorizes Twilio to request the number from Vonage as the losing carrier. The porting process for US local numbers takes 3 to 7 business days after the LOA is accepted, during which the number remains active on Vonage so no service interruption occurs. Update your SMS sending code by replacing the Vonage SDK call from nexmoClient.message.sendSms(from, to, text) to the Twilio equivalent: const client = new twilio(accountSid, authToken); client.messages.create({ from: fromNumber, to: toNumber, body: text }), noting that Twilio uses the to/from/body parameter names while Vonage used from/to/text. Update inbound webhook handling by changing your webhook URL registrations from Vonage's format to Twilio's, as Twilio delivers SMS webhooks as HTTP POST with fields named From, To, Body, and MessageSid, while Vonage delivered fields named msisdn, to, text, and messageId. Run Twilio and Vonage in parallel by provisioning a new Twilio number for testing, updating your application to dispatch outbound SMS through Twilio for a subset of traffic, and verifying delivery rates and latency before initiating the port for production numbers.

Common Issues and How to Fix Them

Vonage number port requests are rejected with a port denial when the account name or address on the LOA does not exactly match the account name on the Vonage billing account, which can happen when a company name changed, was shortened, or uses a DBA name on the Vonage account rather than the full legal entity name. Contact Vonage support to retrieve the exact billing account name as it appears in their system, use that exact string on the LOA even if it differs from your preferred business name, and resubmit the port request with the corrected LOA. Vonage short code SMS campaigns cannot be ported to Twilio because short codes are leased from the carrier and not owned by the customer, meaning a Vonage short code must be returned to the carrier pool and a new Twilio short code must be applied for separately through the Twilio short code request process which takes 8 to 12 weeks for US approval. Begin the Twilio short code application immediately when you decide to migrate, run the Vonage short code and the new Twilio short code in parallel for the overlap period, and update your opt-in materials and campaigns to reflect the new Twilio short code number before decommissioning the Vonage short code. Vonage Verify API calls using the nexmoClient.verify.request method must be replaced with Twilio Verify Service calls at POST https://verify.twilio.com/v2/Services/{ServiceSid}/Verifications and POST https://verify.twilio.com/v2/Services/{ServiceSid}/VerificationChecks, and any existing Vonage verify request_ids that are in flight during the cutover window will fail because Vonage verify tokens cannot be checked via the Twilio Verify API. Plan the verify API migration cutover for a low-traffic period and accept that any OTP verification sessions in progress at the exact moment of cutover must be re-requested from Twilio.

How to Get More from This Integration

Build a parallel validation period by deploying your Twilio-updated application code alongside your existing Vonage code using a feature flag, routing 5% of outbound SMS through Twilio while 95% continues through Vonage, and comparing delivery rates from both carriers using the Twilio Console message logs and Vonage Dashboard delivery reports over 48 hours before expanding the Twilio share to 100%. Add Twilio Messaging Services after migration to improve deliverability beyond Vonage's single-number sending by creating a Messaging Service in the Twilio Console under Messaging, then Services, adding your ported numbers as senders, and using the MessagingServiceSid parameter instead of the From number in your outbound API calls, enabling Twilio's intelligent routing to select the optimal sender number. Implement Twilio Lookup API validation on all phone numbers currently in your customer database that were validated against the Vonage Number Insight API, by calling GET https://lookups.twilio.com/v2/PhoneNumbers/{number}?Fields=line_type_intelligence and updating any records where the line type has changed to voip or landline, ensuring your migrated SMS campaigns are sending only to valid mobile numbers. Migrate Vonage voice calls to Twilio Programmable Voice by updating your inbound call webhook to return TwiML XML instead of Vonage NCCO JSON, converting each NCCO action to its TwiML verb equivalent such as talk to Say, connect to Dial, and input to Gather, and testing each call flow path through Twilio before porting voice-capable numbers.

Conclusion

Migrating from Vonage to Twilio is straightforward with a structured parallel-run approach that eliminates downtime and validates delivery quality before full cutover. Contact Telphi Consulting to plan and execute your Vonage to Twilio migration with zero production disruption.

Share this article:
0 views

Ready to Transform Your Business Communications?

Get a free consultation with our VoIP experts and discover how we can help you save costs, improve efficiency, and scale your business.

Comments (0)

Join the discussion and share your thoughts (AI-moderated for quality)

Protected by AI moderation

Be the first to comment

No comments yet. Share your thoughts below.