How to migrate from Messente to Infobip
A developer-focused guide to moving from Messente to Infobip: channel and compliance differences, request-format mapping, a step-by-step checklist, and gotchas.
Messente is an Estonian omnichannel messaging platform that exposes a single API for SMS, WhatsApp, and Viber (plus RCS in select markets), reaching 197+ countries. Infobip is a global omnichannel communications platform covering SMS, WhatsApp, voice, email, and more. On the messaging.dev Score, Messente rates 54/100 and Infobip 96/100; this guide covers what actually changes when you re-point your sending code from one to the other.
What you gain and lose
Channels. Both platforms carry SMS, RCS, WhatsApp, and Viber, so your existing traffic on those channels maps across directly. Moving to Infobip adds MMS, Facebook Messenger, Telegram, Apple Messages for Business, voice, and email. No channel is lost in the move.
Compliance. Both are GDPR and ISO 27001 aligned. Infobip additionally holds SOC 2 and HIPAA. No certification you had with Messente is dropped.
Data residency. Messente runs EU servers only, with no US region and no residency choice (data centres in Germany and Finland). Infobip offers EU and US servers plus explicit data-residency choice, with additional regions (APAC, Latin America, Middle East, Africa).
Pricing and credit. Both are primarily quote/contract-based and both include free developer credit for testing. Messente also offers an SMS-only pay-as-you-go option with a 500 EUR minimum monthly spend; Infobip lists some pay-as-you-go options alongside contracts.
Tooling. Both publish REST and SMPP APIs with high-quality docs. Infobip adds SMTP, a sandbox test environment (Messente has none), and a Go SDK. Both ship Python, Node.js, PHP, Java, and C# SDKs; note that Messente’s Ruby SDK has no Infobip equivalent.
How the request format differs
Messente quickstart:
curl -X POST 'https://api.messente.com/v1/omnimessage' \
-u YOUR_MESSENTE_API_USERNAME:YOUR_MESSENTE_API_PASSWORD \
-H 'Content-Type: application/json' \
-d '{"to": "+37251000000", "messages": [{"channel": "sms", "text": "hello sms"}]}'
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"}]}'
Endpoint / base URL. Messente posts to a single fixed omnichannel endpoint, https://api.messente.com/v1/omnimessage. Infobip uses a per-account base URL — https://{base_url}.api.infobip.com/... — and a channel-specific path; the quickstart targets the SMS endpoint /sms/2/text/advanced. Swap the fixed host for your account’s subdomain.
Authentication. Messente uses HTTP Basic auth with an API username and password (-u user:pass). Infobip uses an API key in a header: Authorization: App YOUR_API_KEY. Drop the -u flag and add the header.
Payload mapping. The recipient moves from a top-level "to" string (E.164 with a leading +) to a nested "destinations": [{"to": "..."}] array (the example uses a number without +). The sender is implicit in Messente’s SMS example but is a "from" field per message on Infobip. For the body, Messente wraps each message in a channel-tagged object ({"channel":"sms","text":...}) inside messages; Infobip’s messages array carries from, destinations, and text together, with the channel selected by the endpoint rather than a field.
Migration checklist
- Create an Infobip account (self-onboarding) and generate an API key in the dashboard; note your account base URL. See how to start with Infobip for the full walkthrough.
- Map the request fields:
to→destinations[].to, add afromsender, and move auth from Basic to theAuthorization: Appheader. - Re-point your sending code to the Infobip base URL and SMS path; if you use an SDK, switch to Infobip’s (Python, Node.js, PHP, Java, C#, or Go).
- Re-test in Infobip’s sandbox before sending live traffic — Messente had no sandbox, so this is a new safety net.
- Update delivery/webhook callbacks to Infobip’s format and re-register your callback URLs.
- Run both providers in parallel, compare delivery receipts, then cut over once Infobip’s results match.
Watch out for
- SDK gap. Messente’s Ruby SDK has no Infobip counterpart; Ruby users must call the REST API directly.
- Per-account base URL. Infobip’s host is not fixed — hardcoding
xxxxxx.api.infobip.comwill fail; always use your account’s base URL. - Channel-specific endpoints. Messente’s single omnichannel endpoint becomes channel-specific paths on Infobip; each channel you add needs its own endpoint and payload shape.
- Global data footprint. Infobip operates US servers as well as EU; if EU-only storage matters, select the EU region explicitly (Messente stored in the EU by default).
- Sender required. Infobip expects a
fromvalue per message, so have a registered/approved sender ID ready.
For a dimension-by-dimension breakdown, see the Infobip vs Messente comparison.