Migration guide

How to migrate from Mitto to Vonage

A developer's guide to moving an SMS integration from Mitto to Vonage: channel and compliance differences, request-format changes, and a step-by-step migration checklist.

Mitto is a Swiss omnichannel CPaaS provider offering SMS, RCS, WhatsApp, Viber, Telegram, Facebook Messenger and voice APIs. Vonage is a publicly traded communications-API platform (part of Ericsson) covering SMS, MMS, voice, video and messaging. On the messaging.dev Score, Mitto rates 48/100 and Vonage 89/100; this guide walks through what actually changes when you move an SMS integration from one to the other. For a side-by-side view, see the Mitto vs Vonage comparison.

What changes at a glance

Channels. Both platforms support SMS, RCS, WhatsApp, Viber, Facebook Messenger and voice. Moving to Vonage you gain MMS. You lose Telegram, which Mitto supports and Vonage does not. Neither supports Apple Messages for Business or email, so those are unaffected.

Compliance. Both are GDPR-compliant and ISO 27001 certified. Vonage additionally lists SOC 2 and HIPAA, neither of which Mitto claims, so you lose no certification by moving.

Data residency. Mitto publishes no EU or US data-residency option. Vonage offers both EU and US servers, a data-residency choice, plus APAC and Australia regions.

Pricing and credit. Both bill pay-as-you-go. Mitto does not publish a starting SMS price and offers no free developer credit. Vonage lists roughly $0.0072 per US SMS segment (plus carrier fees), volume discounts, and €2 free trial credit for new accounts.

SDKs, docs and sandbox. Mitto ships no official SDKs and exposes REST and SMPP APIs; its docs are rated medium. Vonage ships SDKs for Node.js, Python, PHP, Java, C#, Ruby and Kotlin over REST, with docs rated high. Both offer a sandbox and self-service onboarding.

How the request format differs

Source — Mitto:

curl -X POST 'https://rest.mittoapi.net/sms' \
  -H 'Content-Type: application/json' \
  -H 'X-Mitto-API-Key: YOUR_API_KEY' \
  -d '{
    "from": "Mitto SMS",
    "to": "41751231234",
    "text": "Hello, World!",
    "test": true
  }'

Target — Vonage:

curl -X POST 'https://rest.nexmo.com/sms/json' \
  -d 'api_key=YOUR_API_KEY' \
  -d 'api_secret=YOUR_API_SECRET' \
  -d 'from=Vonage' \
  -d 'to=15551234567' \
  -d 'text=Hello from Vonage'

Endpoint. The base URL changes from https://rest.mittoapi.net/sms to Vonage’s https://rest.nexmo.com/sms/json (legacy SMS API) or https://api.nexmo.com/v1/messages (Messages API).

Authentication. Mitto authenticates with an API key in the X-Mitto-API-Key header and additionally requires your source IP to be whitelisted. Vonage’s SMS API takes an API Key plus API Secret, sent as api_key and api_secret parameters in the request body, or JWT auth for the Messages API. Credentials therefore move out of a header and into the payload, and the IP-whitelist step goes away.

Payload mapping. The three core fields keep the same names — sender from, recipient to, body text — so mapping is largely one-to-one. The structure differs: Mitto sends a JSON body (Content-Type: application/json), whereas Vonage’s legacy SMS API takes form-encoded key/value pairs. Mitto’s test: true dry-run flag has no direct equivalent in the Vonage call; use Vonage’s sandbox instead.

Migration checklist

  1. Create a Vonage account — onboarding is self-service and new accounts include €2 free trial credit. Copy your API Key and API Secret from the dashboard. See how to start with Vonage for the full walkthrough.
  2. Decide which API to target: the legacy SMS API (rest.nexmo.com/sms/json) or the Messages API (api.nexmo.com/v1/messages).
  3. Map the request fields: keep from/to/text, switch the JSON body to form-encoded parameters, and move credentials from the X-Mitto-API-Key header into api_key/api_secret.
  4. Re-point your sending code to the new base URL and swap header auth for body or JWT auth. Consider one of Vonage’s official SDKs.
  5. Re-test in Vonage’s sandbox before sending live traffic.
  6. Update delivery and webhook callbacks to point at your endpoints and to parse Vonage’s status payloads.
  7. Run both providers in parallel, compare delivery, then cut over.

Watch out for

  • Telegram is gone. Mitto supports Telegram; Vonage does not. Re-route any Telegram traffic before cutover.
  • No SMPP. Mitto exposes both REST and SMPP; Vonage is REST only. If you bind over SMPP today, you must move to HTTP.
  • Two API surfaces. Vonage splits the legacy SMS API and the newer Messages API, each with different auth (API Key/Secret vs JWT) — pick deliberately and stay consistent.
  • Secret-based auth. Vonage relies on a shared secret (or JWT) rather than Mitto’s IP whitelist, so store the secret securely and rotate it if leaked.