Migration guide

How to migrate from Messente to Vonage

A developer-focused guide to moving your messaging integration from Messente to Vonage, covering channel and compliance differences, request-format changes, and a step-by-step cutover checklist.

Messente is an Estonian omnichannel business messaging platform offering a single API for SMS, WhatsApp, Viber, and RCS across 197+ countries. Vonage is a US-headquartered communications-API provider (part of Ericsson) covering SMS, MMS, voice, and messaging channels across roughly 200 countries. On the messaging.dev Score, Messente rates 54/100 and Vonage 89/100; this guide covers what actually changes at the account and code level when you move between them.

What you gain, keep, and lose

Channels. Both platforms send SMS, RCS, WhatsApp, and Viber, so your existing channel mix carries over unchanged. Vonage adds MMS, Facebook Messenger, and Voice. Neither supports Telegram, Apple Messages for Business, or email, so no channel is lost in the move.

Compliance and data residency. Both are GDPR-compliant and ISO 27001 certified. Vonage additionally holds SOC 2 and HIPAA. On residency, Messente stores data only in EU data centers with no US option and no region choice; Vonage offers EU and US servers plus APAC and Australia, and lets you choose the region. If EU-only, EU-owned processing was a hard requirement, note that Vonage is a US-headquartered company where EU residency is a configurable choice rather than the default.

Pricing and onboarding. Messente uses quote-based commitment plans (a monthly fee plus per-country pricing for 25K+ monthly volumes), alongside an SMS-only pay-as-you-go tier with a €500/month minimum spend. Vonage is pure pay-as-you-go per message with volume discounts and a published starting price (approximately $0.0072 per US SMS segment), which is usually simpler for low or variable volume. Both offer self-onboarding and free developer credit (Messente: free test credits on signup; Vonage: €2 trial credit).

Tooling. SDK coverage is nearly identical (Python, Node.js, PHP, Java, Ruby, C#); Vonage adds Kotlin. Both rate high on documentation quality. Vonage provides a sandbox for pre-production testing and publishes a 99.95% uptime SLA; Messente does neither. One trade-off: Messente exposes both REST and SMPP, while Vonage’s dataset lists REST only.

How the request format differs

Source (Messente):

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

Target (Vonage):

curl -X POST 'https://rest.nexmo.com/sms/json' \
  -d 'api_key=YOUR_API_KEY' \
  -d 'api_secret=YOUR_API_SECRET' \
  -d 'from=Vonage' \
  -d 'to=15551234567' \
  -d 'text=Hello from Vonage'

What changes:

  • Endpoint. The base URL moves from https://api.messente.com/v1/omnimessage to Vonage’s legacy SMS API at https://rest.nexmo.com/sms/json (or the newer Messages API at https://api.nexmo.com/v1/messages).
  • Authentication. Messente uses HTTP Basic auth via -u username:password. The Vonage SMS API instead takes api_key and api_secret as request parameters; the Messages API uses JWT auth.
  • Content type. Messente posts a JSON body; the Vonage SMS API posts URL-encoded form fields, so you drop the Content-Type: application/json header and the JSON envelope.
  • Field mapping. The recipient stays to but moves from a JSON field to a form field. Messente’s example has no sender; Vonage requires an explicit from (sender ID). The message body moves from the nested messages: [{channel, text}] array to a flat top-level text, and the channel selector disappears because the endpoint itself determines the channel.

Migration checklist

  1. Create a Vonage account, complete self-onboarding, and generate your API Key + API Secret (or set up a JWT application for the Messages API).
  2. Map request fields: toto, add from, and flatten messages[].texttext; switch the body from JSON to form-encoded.
  3. Swap authentication from HTTP Basic (-u) to api_key/api_secret params (or JWT).
  4. Re-point your sending code to the new base URL, ideally through an official SDK.
  5. Re-test in Vonage’s sandbox before sending live traffic.
  6. Update your delivery-receipt and webhook callbacks to Vonage’s payload format.
  7. Run both providers in parallel, compare delivery, then cut over once Vonage’s numbers hold.

For a from-scratch setup, see how to start with Vonage; for a full side-by-side, see Messente vs Vonage.

Watch out for

  • SMPP. If you bind over SMPP with Messente, Vonage’s dataset lists REST only, so plan to move that traffic to HTTP.
  • Data sovereignty. Messente keeps data exclusively in EU data centers; with Vonage, EU residency is a choice you configure on a US-headquartered platform.
  • Payload shape. The JSON-to-form and nested-to-flat change is easy to miss; the SMS API won’t accept Messente’s JSON body.
  • Two APIs. Vonage offers both a legacy SMS API (key/secret) and a newer Messages API (JWT) with different auth; pick one deliberately.