Migration guide

How to migrate from Smstools to Sinch

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

Smstools is a Belgian business-messaging platform offering an SMS gateway API, WhatsApp Business API, voice messages and email-to-SMS with EU-only hosting. Sinch is a cloud communications platform covering messaging, voice and email APIs across multiple regions. On the messaging.dev Score, Smstools rates 56/100 and Sinch 92/100 — this guide covers what actually changes at the API and integration level when you move.

What you gain and what you lose

Channels. Both platforms send SMS, WhatsApp and voice, so traffic on those channels carries over unchanged. Moving to Sinch adds MMS, RCS, Viber, Facebook Messenger, Telegram, Apple Messages for Business and email — seven channels Smstools does not offer. No channel is lost in the move.

Compliance. Both are GDPR-aligned. Sinch additionally holds ISO 27001, SOC 2 and HIPAA certifications, none of which Smstools lists.

Data residency. Smstools hosts in the EU only, with no region choice. Sinch runs both EU and US servers plus APAC, Australia and Brazil, and lets you choose your data-residency region.

Pricing. Both use pay-as-you-go per-message pricing with volume discounts. Smstools charges no subscription, setup fee or monthly minimum; Sinch adds committed-use pricing on top of pay-as-you-go. Both include free developer credit to start, though Sinch does not publish a fixed amount.

SDKs, sandbox, docs. Both rate high on documentation and both provide a sandbox for pre-live testing. SDK coverage overlaps on PHP, Node.js and Python. Sinch adds Java and C# but does not ship the Ruby or PowerShell SDKs that Smstools provides. Sinch also supports SMPP alongside REST and SMTP.

How the request format differs

Smstools quickstart:

curl -X POST "https://api.smsgatewayapi.com/v1/message/send" \
  -H "X-Client-Id: YOUR_CLIENT_ID" \
  -H "X-Client-Secret: YOUR_CLIENT_SECRET" \
  -H "Content-Type: application/json" \
  -d '{"message": "Hello World", "to": "11231231234", "sender": "YourName"}'

Sinch quickstart:

curl -X POST 'https://us.sms.api.sinch.com/xms/v1/YOUR_SERVICE_PLAN_ID/batches' \
  -H 'Authorization: Bearer YOUR_API_TOKEN' \
  -H 'Content-Type: application/json' \
  -d '{"from":"+15005550006","to":["+15551234567"],"body":"Hello from Sinch"}'

Three things change:

  • Endpoint. Smstools posts to a single fixed URL, https://api.smsgatewayapi.com/v1/message/send. Sinch posts to a region-specific host with your service plan ID in the path and a batches resource: https://us.sms.api.sinch.com/xms/v1/{service_plan_id}/batches.
  • Authentication. Smstools uses two headers, X-Client-Id and X-Client-Secret. Sinch uses a single Bearer token in the Authorization header.
  • Payload. The message body field message becomes body. The recipient to changes from a plain digit string ("11231231234") to a JSON array of E.164 numbers (["+15551234567"]). The sender field is renamed from sender to from, and its value shifts from an alphanumeric name ("YourName") to a number ("+15005550006").

Migration checklist

  1. Create a Sinch account, complete self-onboarding, and generate an API token and service plan ID.
  2. Map the request fields: messagebody, toto (as an array, E.164 with +), senderfrom.
  3. Swap authentication from the X-Client-Id/X-Client-Secret headers to a single Authorization: Bearer header.
  4. Re-point your sending code at the batches endpoint, inserting your service plan ID and choosing the correct regional host.
  5. Re-test in Sinch’s sandbox before sending live traffic.
  6. Update delivery-status webhooks and callbacks to Sinch’s format.
  7. Run both providers in parallel and compare delivery.
  8. Cut over once results match.

For a from-scratch walkthrough, see how to start with Sinch. For a full side-by-side, see Sinch vs Smstools.

Watch out for

  • Endpoint region. The quickstart host is US-based (us.sms.api.sinch.com). If EU residency matters, select Sinch’s EU region rather than the default.
  • Country coverage. Smstools lists 200 countries covered versus Sinch’s 150 — verify your key destinations before cutting over.
  • SDK gaps. Sinch ships no Ruby or PowerShell SDK; rewrite those integrations against REST or a supported SDK.
  • Published uptime SLA. Sinch lists 99.95% versus Smstools’ 99.99%.
  • Free credit. Sinch offers free developer credit but does not publish a fixed amount.