How to migrate from Apifon to Infobip
A developer's guide to moving SMS and multichannel messaging from Apifon to Infobip, covering channel and compliance differences, request-format changes, and a step-by-step migration checklist.
Apifon is a Greek business-messaging platform offering SMS, RCS, WhatsApp, Viber, Facebook Messenger and email through a web console plus REST and SMPP APIs. Infobip is a global omnichannel communications platform that covers the same channels and adds MMS, Telegram, Apple Messages for Business and voice. On the messaging.dev Score, Apifon rates 52/100 and Infobip 96/100; this guide walks through what actually changes at the API level when you migrate.
What changes when you move
Channels. Every channel Apifon supports — SMS, RCS, WhatsApp, Viber, Facebook Messenger and email — is also available on Infobip, so you lose no channel by moving. You gain MMS, Telegram, Apple Messages for Business and voice.
Compliance. Both providers are GDPR- and ISO 27001-aligned. Infobip additionally holds SOC 2 and HIPAA, which Apifon does not list.
Data residency. Apifon hosts on EU servers only, with no region choice. Infobip offers both EU and US servers, a data-residency choice, and additional regions (APAC, Latin America, Middle East, Africa).
Pricing. Apifon is prepaid pay-as-you-go: you top up a euro balance by card, PayPal or bank transfer and messages draw it down, with per-message rates quoted per account. Infobip is primarily quote/contract-based (contact sales), with some pay-as-you-go options. Neither publishes a starting SMS price, and both offer free trial credit and self-service onboarding.
Tooling. SDK coverage overlaps on Java, C#, Python, PHP and Node.js; Infobip adds Go. Both document at a high quality. Infobip also provides a sandbox (Apifon has none) and an SMTP interface alongside REST and SMPP.
How the request format differs
Apifon quickstart:
curl -X POST "https://ars.apifon.com/services/api/v1/sms/send" \
-H "Content-Type: application/json" \
-H "X-ApifonWS-Date: $(date -u '+%a, %d %b %Y %H:%M:%S GMT')" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-d '{"message":{"text":"Hello There!","sender_id":"Apifon"},"subscribers":[{"number":"306999999999"}]}'
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. Apifon posts to a fixed host, https://ars.apifon.com/services/api/v1/sms/send. Infobip posts to an account-specific base URL, https://{base_url}.api.infobip.com/sms/2/text/advanced — you take your personal subdomain from the dashboard.
Authentication. Apifon accepts either HMAC-signed requests (Authorization: ApifonWS <api-key>:<signature> plus an X-ApifonWS-Date header) or an OAuth2 Bearer token (scope smsGateway); the quickstart above uses the Bearer token. Infobip uses a single API-key header, Authorization: App {api_key} — there is no date header or signature to compute.
Payload mapping. Apifon sends one message object plus a separate subscribers array. Infobip wraps everything in a messages array where each entry carries its own recipient, sender and body:
- Body:
message.text→messages[].text - Sender:
message.sender_id→messages[].from - Recipient:
subscribers[].number→messages[].destinations[].to
Migration checklist
- Create an Infobip account and generate an API key from the dashboard; note your personal base URL. See how to start with Infobip.
- Map the request fields as above (
text→text,sender_id→from,number→destinations[].to). - Re-point your sending code to
https://{base_url}.api.infobip.com/sms/2/text/advancedand swap the auth header toAuthorization: App {api_key}, dropping theX-ApifonWS-Dateheader. - Re-test in Infobip’s sandbox before sending live traffic — Apifon had none, so this is a new safety net.
- Update delivery/webhook callbacks to Infobip’s format so status reports keep flowing.
- Run both providers in parallel and compare delivery.
- Cut over once you are confident, arranging top-up or a contract as needed.
Watch out for
- Account-specific base URL. Unlike Apifon’s fixed host, Infobip’s endpoint includes your own subdomain — a hardcoded host will fail.
- Pricing model. Apifon’s self-serve prepaid balance gives way to Infobip’s primarily quote/contract-based model, so budget for a sales conversation to lock in rates.
- Payload shape. The move to
messages[]/destinations[]arrays is a structural change, not a field rename. - No published SMS price on either side, so validate rates against your own account before cutover.
For a full side-by-side, see the Apifon vs Infobip comparison.