Migration guide

How to migrate from Messente to Twilio

A developer-focused guide to migrating from Messente to Twilio, covering channel gains and losses, compliance, request-format changes, and a step-by-step checklist.

Messente is an Estonian omnichannel business messaging platform that exposes a single API for SMS, WhatsApp, Viber and (in select markets) RCS. Twilio is a US-based customer engagement platform whose communications APIs span SMS, MMS, voice, email and more. On the messaging.dev Score, Messente rates 54/100 and Twilio 88/100; this guide maps the concrete changes a developer hits when moving between them. For a full side-by-side, see the Messente vs Twilio comparison.

What changes when you move

Channels. You keep SMS, RCS and WhatsApp — both providers support all three. You gain MMS, voice and email, none of which Messente exposes. You lose Viber, which Messente supports and Twilio does not. Neither provider offers Facebook Messenger, Telegram or Apple Messages for Business.

Compliance. Both are GDPR-compliant and ISO 27001 certified. Twilio additionally carries SOC 2 and HIPAA, so you gain certifications and lose none in the move.

Data residency. Messente stores data in the EU only, with no region choice. Twilio runs both EU and US servers (plus Australia) and lets you choose your data residency region.

Pricing. Messente uses quote-based commitment plans plus an SMS-only pay-as-you-go tier with a 500 EUR monthly minimum, and does not publish per-message rates. Twilio is pay-as-you-go with volume and committed-use discounts and publishes a starting price of $0.0079 per US SMS segment (plus carrier fees). Both offer free developer credit — Messente gives free test credits on signup, Twilio a $15 trial credit.

SDKs and tooling. Both ship SDKs for Python, Node.js, PHP, Java, Ruby and C#; Twilio adds Go. Documentation quality is high on both. Twilio also provides a sandbox/test environment; Messente does not.

How the request format differs

Messente (source):

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

Twilio (target):

curl -X POST 'https://api.twilio.com/2010-04-01/Accounts/ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Messages.json' \
  --data-urlencode 'To=+15551234567' \
  --data-urlencode 'From=+15005550006' \
  --data-urlencode 'Body=Hello from Twilio' \
  -u ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:your_auth_token
  • Endpoint. Messente posts to a single omnichannel URL. Twilio’s endpoint is account-scoped — your Account SID sits in the URL path (/Accounts/{AccountSid}/Messages.json).
  • Authentication. Both use HTTP Basic auth. Messente pairs an API username and password created in its dashboard. Twilio uses your Account SID as the username and the Auth Token as the password, so the SID appears twice (in the URL and as the credential).
  • Payload and content type. Messente sends a JSON body; Twilio expects form-encoded fields (--data-urlencode). Field mapping: to becomes To; the message text moves from the messages[].text array element to a flat Body field; and you must add an explicit From sender, which Messente’s quickstart omits. Channel selection also shifts — Messente names it per message ("channel": "sms"), whereas Twilio’s Messages.json defaults to SMS.

Migration checklist

  1. Create a Twilio account and generate your Account SID and Auth Token (walk through the Twilio quickstart).
  2. Provision a sending number (or WhatsApp sender) in the Twilio console.
  3. Map the request fields: to to To, add a From sender, message text to Body, and switch the body from JSON to form-encoded.
  4. Re-point your sending code to the account-scoped Messages.json endpoint and swap in the SID/Auth Token credentials.
  5. Re-test using Twilio’s sandbox before sending live traffic — Messente had none, so this is a new safety net.
  6. Update delivery/webhook callbacks to Twilio’s status-callback format.
  7. Run both providers in parallel and reconcile delivery and reporting.
  8. Cut over once results match.

Watch out for

  • Viber goes away — it is the one channel you lose in this move.
  • No SMPP. Messente offers an SMPP binding; Twilio’s messaging API is REST-only (its second protocol, SMTP, is for email).
  • Country coverage. Messente lists 197 countries versus Twilio’s 180.
  • Residency defaults. Twilio adds a US region; if you require EU-only storage, explicitly configure the EU region rather than assuming it.