How to migrate from CM.com to Infobip
A developer's guide to moving SMS and messaging traffic from CM.com to Infobip: channel and compliance differences, request-format mapping, and a step-by-step migration checklist.
CM.com is a conversational commerce and customer engagement platform, and Infobip is a global omnichannel communications platform; both send SMS, RCS, WhatsApp, voice, email and more over a REST API. On the messaging.dev Score, CM.com rates 58/100 and Infobip 96/100. This guide covers, as data, what actually changes when you move your sending code from one to the other.
What you gain and what you lose
Channels. Both platforms cover the same channels — SMS, RCS, WhatsApp, Viber, Facebook Messenger, Telegram, Apple Messages for Business, voice and email — with one addition: Infobip also supports MMS, which CM.com does not. You lose no channels in the move.
Compliance. Both hold GDPR and ISO 27001. Infobip additionally lists SOC 2 and HIPAA, neither of which CM.com carries.
Data residency. CM.com hosts in the EU only, with no US option and no region choice. Infobip offers both EU and US hosting, lets you choose your data region, and also runs in APAC, Latin America, the Middle East and Africa.
Pricing and credit. This is the biggest operational change. CM.com is pay-per-use with one published fixed price per destination country and volume discounts above ~50,000 messages/month. Infobip is primarily quote/contract-based (contact sales), with some pay-as-you-go options, but includes free trial credit for new accounts — CM.com offers no free developer credit.
SDKs, sandbox, docs, reliability. Both ship official SDKs, provide a sandbox, and rate high on docs quality. Common SDKs are Java, Python, PHP and Node.js; Infobip adds C# and Go, while CM.com lists .NET. Both expose REST and SMPP; Infobip also offers SMTP. Infobip publishes a 99.99% uptime SLA where CM.com publishes none.
How the request format differs
CM.com quickstart:
curl -X POST https://gw.messaging.cm.com/v1.0/message \
-H 'accept: application/json' \
-H 'content-type: application/json' \
-H 'X-CM-PRODUCTTOKEN: <YOUR_PRODUCT_TOKEN>' \
--data-raw '{
"messages": {
"msg": [{
"from": "Sender",
"to": [{"number": "00447911123456"}],
"body": {"type": "auto", "content": "My first CM.com message"},
"reference": "my_reference_123"
}]
}
}'
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. CM.com posts to a single fixed gateway,
https://gw.messaging.cm.com/v1.0/message. Infobip posts to an account-specific base URL,https://{base_url}.api.infobip.com/sms/2/text/advanced, where{base_url}is the subdomain shown in your Infobip dashboard. - Authentication. CM.com uses a product token in the custom
X-CM-PRODUCTTOKENheader. Infobip uses the standardAuthorization: App {api_key}header. - Payload. CM.com wraps messages in
messages.msg[]; Infobip uses a flatmessages[]array. The sender keyfromis identical. The recipient changes: CM.com’sto: [{"number": "..."}]becomes Infobip’sdestinations: [{"to": "..."}]. The body changes too: CM.com’sbody: {"type":"auto","content":"..."}object becomes Infobip’s plaintextstring. CM.com’s optionalreferencehas no direct equivalent in the minimal Infobip call. The number formats also differ in the examples (00447911123456vs15551234567), so confirm what your Infobip account expects.
Migration checklist
- Create an Infobip account, generate an API key from the dashboard, and note your account base URL.
- Map each request field:
to→destinations,number→to,body.content→text, and drop themessages.msgwrapper for a flatmessagesarray. - Swap authentication: replace the
X-CM-PRODUCTTOKENheader withAuthorization: App {api_key}. - Re-point your sending code to the new base URL, optionally adopting one of Infobip’s SDKs (Java, C#, Python, PHP, Go, Node.js).
- Re-test in Infobip’s sandbox before sending live traffic — Infobip provides one.
- Update your delivery/webhook callbacks to Infobip’s delivery-report format.
- Run both providers in parallel and compare delivery.
- Cut over once delivery and reporting match.
For a fuller walkthrough of the target, see how to start with Infobip and the side-by-side CM.com vs Infobip comparison.
Watch out for
- Pricing transparency. You move from CM.com’s published per-country pay-per-use to Infobip’s mostly quote/contract-based model, so confirming rates may require a sales conversation.
- Payload restructuring is mandatory. The nested-vs-flat message shape and the
destinations/textrenames will break a copy-pasted CM.com request. - SDK label difference. CM.com lists a .NET SDK; Infobip lists C# instead — verify your language is covered before switching.