Migration guide

How to migrate from Telesign to Infobip

A developer-focused guide to migrating from Telesign to Infobip, covering channel and compliance differences, request-format changes, and a step-by-step cutover checklist.

Telesign is a US-based digital identity and programmable communications platform offering SMS, RCS, voice, WhatsApp, Viber and email APIs alongside phone verification and fraud-prevention services. Infobip is a Croatia-based omnichannel platform that covers the same channels plus several more. On the messaging.dev Score, Telesign rates 70/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

Every channel Telesign offers, Infobip also offers, so no channel is lost in the move. Both already support SMS, RCS, WhatsApp, Viber, voice and email. You gain four channels: MMS, Facebook Messenger, Telegram and Apple Messages for Business.

SDK coverage overlaps on Java, C#, Python, PHP and Node.js. Infobip adds Go but drops Ruby, so a Ruby integration built on Telesign has no official Infobip SDK — you would fall back to raw REST or a community library. Infobip also exposes a sandbox test environment (Telesign has none) and supports SMPP and SMTP alongside REST, where Telesign is REST-only.

On data handling, both run EU and US servers, but Infobip additionally offers data-residency choice and regions in APAC, Latin America, the Middle East and Africa. Compliance is identical: both hold GDPR, ISO 27001, SOC 2 and HIPAA. Both provide self-onboarding, free developer credit and high-quality docs, and both use quote/contract-led pricing with no published SMS rate. One trade-off: Telesign lists broader country coverage (230 vs 190).

How the request format differs

Telesign quickstart:

curl -X POST https://rest-ww.telesign.com/v1/messaging \
  -u "CUSTOMER_ID:API_KEY" \
  -H "Content-Type: application/x-www-form-urlencoded" \
  -d "phone_number=15551212&message=Your message here.&message_type=ARN"

Infobip quickstart:

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. Telesign posts to a single global host, https://rest-ww.telesign.com/v1/messaging. Infobip uses a per-account base URL, https://{base_url}.api.infobip.com/sms/2/text/advanced, where {base_url} is unique to your account — read it from the dashboard rather than hardcoding it.
  • Authentication. Telesign uses HTTP Basic auth, passing your Customer ID as the username and API key as the password (-u "CUSTOMER_ID:API_KEY"). Infobip uses an API-key header instead: Authorization: App {api_key}. There is no Customer ID.
  • Payload mapping. Telesign sends form-urlencoded fields; Infobip sends JSON. The recipient moves from a flat phone_number field to a nested destinations[].to array, so a single message can fan out to many numbers. The body moves from message to text. The sender is implicit on Telesign (which uses message_type=ARN), whereas Infobip takes an explicit from. Telesign’s message_type has no direct Infobip equivalent.

Migration checklist

  1. Create an Infobip account and generate an API key from the dashboard. Note your per-account base URL.
  2. Map the request fields: phone_numberdestinations[].to, messagetext, add an explicit from, drop message_type.
  3. Re-point your sending code: swap the endpoint, replace Basic auth with the Authorization: App header, and switch the body from form-urlencoded to JSON.
  4. Re-test in the sandbox. Infobip provides a test environment — validate your integration there before sending live traffic. See how to start with Infobip for the full quickstart.
  5. Update webhooks and delivery callbacks to point at your endpoints and parse Infobip’s delivery-report format.
  6. Run both in parallel for a short window, comparing delivery rates before shifting all volume.
  7. Cut over once parity looks good, then retire the Telesign credentials.

Watch out for

  • Fewer countries covered. Infobip lists 190 countries versus Telesign’s 230 — confirm your destination markets are supported before cutting over.
  • No official Ruby SDK. If your Telesign integration uses the Ruby SDK, you will need to move to raw REST or a community library.
  • Per-account base URL. The {base_url} host is account-specific; don’t reuse a generic Infobip hostname or Telesign’s global endpoint.
  • Quote-based pricing. Like Telesign, Infobip does not publish SMS rates — pricing is primarily contract/quote-led, so budget for a sales conversation.

For a full side-by-side, see the Infobip vs Telesign comparison.