Migration guide

How to migrate from Mitto to Infobip

A developer-focused guide to moving your messaging integration from Mitto to Infobip, covering channel and compliance differences, request-format changes, and a step-by-step cutover checklist.

Mitto is a Swiss omnichannel CPaaS provider offering SMS, RCS, WhatsApp, Viber, Telegram, Facebook Messenger, and voice APIs. Infobip is a global omnichannel communications platform that covers those same channels plus MMS, Apple Messages for Business, and email. On the messaging.dev Score, Mitto rates 48/100 and Infobip 96/100 — this guide covers what actually changes at the API level when you move between them.

What you gain and what you lose

Channels: You lose nothing. Every channel Mitto supports — SMS, RCS, WhatsApp, Viber, Facebook Messenger, Telegram, and voice — is also available on Infobip. You gain three: MMS, Apple Messages for Business, and email.

Compliance: Both hold GDPR and ISO 27001. Infobip additionally lists SOC 2 and HIPAA, so no certification is lost in the move.

Data residency: Mitto publishes no EU or US data residency. Infobip offers both EU and US servers, a data-residency choice, and additional regions (APAC, Latin America, Middle East, Africa).

Developer experience: Infobip ships official SDKs (Java, C#, Python, PHP, Go, Node.js) where Mitto ships none; docs quality is rated high vs. medium; and Infobip includes free developer credit where Mitto does not. Both provide a sandbox, and both expose REST and SMPP — Infobip adds SMTP.

Pricing: Mitto is pay-as-you-go. Infobip is primarily quote/contract-based with some pay-as-you-go options, so expect a sales step for production pricing.

For a fuller side-by-side, see Infobip vs Mitto.

How the request format differs

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
  }'

Infobip:

curl -X POST 'https://xxxxxx.api.infobip.com/sms/2/text/advanced' \
  -H 'Authorization: App YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -d '{"messages":[{"from":"InfoSMS","destinations":[{"to":"15551234567"}],"text":"Hello from Infobip"}]}'

Three things change:

  • Endpoint / base URL: Mitto posts to a single fixed host, https://rest.mittoapi.net/sms. Infobip posts to an account-specific, versioned path, https://{base_url}.api.infobip.com/sms/2/text/advanced, where {base_url} is unique to your account.
  • Authentication: Mitto uses X-Mitto-API-Key: YOUR_API_KEY and additionally requires your source IP to be whitelisted. Infobip uses Authorization: App YOUR_API_KEY — a standard Authorization header, with no IP allowlist in the quickstart.
  • Payload shape: Mitto sends one flat object — from, to (a string), text, and an optional test flag. Infobip wraps everything in a messages array; each message keeps from and text, but the recipient moves into a destinations array of { "to": "..." } objects. Mitto’s top-level test flag has no direct equivalent in Infobip’s advanced-text payload.

Migration checklist

  1. Create an Infobip account, self-onboard, and generate an API key; note your account-specific {base_url}.
  2. Map the fields: from → per-message from, todestinations[].to, texttext; drop Mitto’s test flag.
  3. Re-point your sending code to the new base URL and swap the X-Mitto-API-Key header for Authorization: App.
  4. Re-test in Infobip’s sandbox before sending live traffic.
  5. Update your delivery/webhook callbacks to Infobip’s format so status handling keeps working.
  6. Run both providers in parallel and compare delivery on real traffic.
  7. Cut over, then decommission the Mitto integration once volumes look right.

For the from-scratch walkthrough, see How to start with Infobip.

Watch out for

  • Pricing needs a quote. Unlike Mitto’s straightforward pay-as-you-go, Infobip is primarily quote/contract-based, so production pricing may require contacting sales.
  • Fewer listed countries. Infobip lists 190 countries covered vs. Mitto’s 230; verify your specific destination routes are still supported.
  • Per-account base URL. Hard-coding rest.mittoapi.net won’t translate — you must send to your own {base_url} host.
  • No IP allowlist to rely on. Mitto’s source-IP whitelist adds a network-layer guard; Infobip’s quickstart authenticates by API key alone, so protect that key accordingly.