Expertise technical

Migrer de Twilio vers un fournisseur SMS marocain : guide étape par étape

Migrer twilio fournisseur sms marocain : guide technique avec exemples de code pour les développeurs au Maroc.

sms marocapi smsotp maroc
Migrer de Twilio vers un fournisseur SMS marocain : guide étape par étape

De nombreuses startups marocaines (Yassir, Glovo, Chari) commencent leur aventure en utilisant Twilio pour l'envoi de leurs [SMS transactionnels (OTP)](/fr/guides/otp-authentication-maroc/). C'est le réflexe standard : la documentation est excellente et l'API est mondialement connue.

Cependant, lorsqu'une entreprise marocaine scale et atteint des volumes critiques (plus de 50 000 SMS par mois), Twilio pose trois problèmes majeurs : 1. **Le prix (Facturation en USD) :** [Le SMS Twilio vers le Maroc (+212) est structurellement très cher](/fr/blog/envoisms-vs-twilio-au-maroc-comparatif-complet-pour-les/) (souvent plus de 0.80 MAD) et vous expose au risque de change. 2. **La délivrabilité :** Twilio n'a pas de connexion directe (SS7) avec IAM, Orange ou inwi, ce qui cause de nombreux filtres anti-spam. 3. **La CNDP :** Envoyer des données de citoyens marocains vers des serveurs américains pose des problèmes de conformité légale. Voici le plan d'ingénierie (Runbook) pour migrer vos flux vers une API locale souveraine (comme EnvoiSMS) sans aucune coupure de service.

1. La préparation : Mapping des fonctionnalités

Avant de toucher au code, assurez-vous que le nouveau fournisseur supporte vos flux critiques. - **Sender ID :** Twilio permet d'utiliser un Sender ID Alphanumérique sans grande vérification. Au Maroc, vous devrez [enregistrer officiellement votre Sender ID](/fr/blog/comment-obtenir-un-sender-id-alphanumerique-au-maroc-en-2026/) auprès du fournisseur local avant de migrer, sous peine de voir vos SMS bloqués par les opérateurs. (Délai : 24h à 48h). - **Webhooks de DLR (Delivery Reports) :** Si votre application écoute les statuts `Delivered` ou `Failed` de Twilio pour mettre à jour une base de données, vous devrez mapper le nouveau format JSON renvoyé par l'API locale. - **Concaténation (Long SMS) :** Vérifiez que l'API cible gère automatiquement la concaténation des SMS > 160 caractères comme le fait Twilio.

2. Le développement (Adapter le payload API)

L'avantage du SMS, c'est que le protocole HTTP est universel. La migration d'un code Twilio vers une [API REST standard (EnvoiSMS)](/fr/api/) est souvent l'affaire de quelques lignes. **Exemple Twilio (Node.js) :** ```javascript const client = require('twilio')(accountSid, authToken); client.messages.create({ body: 'Votre code OTP est 1234', from: 'MA_MARQUE', to: '+2126XXXXXXXX' }) .then(message => console.log(message.sid)); ``` **Exemple EnvoiSMS (Node.js - Fetch) :** ```javascript const response = await fetch('https://api.envoisms.ma/v1/sms/send', { method: 'POST', headers: { 'Authorization': `Bearer ${API_KEY}`, 'Content-Type': 'application/json' }, body: JSON.stringify({ recipient: '+2126XXXXXXXX', sender_id: 'MA_MARQUE', message: 'Votre code OTP est 1234' }) }); const data = await response.json(); ``` *Le travail consiste principalement à changer le Endpoint, l'authentification (Bearer Token au lieu de Basic Auth), et le nom des variables JSON.*

3. Le déploiement progressif (Canary Release / Double Run)

La pire erreur d'un CTO est de faire une "Bascule Big Bang" (éteindre Twilio et allumer le nouveau fournisseur instantanément en production). Si le nouveau Sender ID n'est pas bien propagé chez inwi, vous perdez des ventes. Utilisez une approche de **Rollout Progressif** : 1. **Jour 1 (10% du trafic) :** Configurez votre backend pour router 10% des requêtes SMS (par exemple uniquement les clients dont l'ID finit par 1) vers l'API marocaine. Laissez 90% sur Twilio. 2. **Jour 2 (Observation) :** Analysez les logs. Le taux de conversion OTP est-il identique ? Les DLR (Delivery Reports) remontent-ils correctement de `Pending` à `Delivered` ? 3. **Jour 3 (50%) :** Basculez la moitié du trafic. 4. **Jour 7 (100%) :** Twilio est désactivé et gardé uniquement comme solution de secours (Fallback).

4. Gérer le Fallback (La haute disponibilité)

Même si un opérateur local comme EnvoiSMS offre une [route directe (Tier 1)](/fr/blog/panorama-des-fournisseurs-sms-au-maroc-en-2026-qui-fait-quoi-sur/), l'écosystème télécom peut subir des pannes (coupure fibre, maintenance IAM). Gardez votre compte Twilio ouvert (sans abonnement, en Pay As You Go). Codez une logique de **Retry Automatique** : Si la requête vers l'API EnvoiSMS échoue avec un code `500 HTTP` ou un timeout > 5 secondes, votre système attrape l'erreur (`catch`) et renvoie le même SMS via l'API Twilio. Vous garantissez ainsi une disponibilité de 99.99% à vos utilisateurs marocains, tout en divisant votre facture annuelle par deux.

💡 Pourquoi choisir EnvoiSMS pour votre entreprise ?

Délivrabilité Critique

Moins de 4 secondes pour vos OTP via des canaux directs opérateurs IAM, Inwi et Orange Maroc.

💰

Optimisation du Budget

WhatsApp Business API à 0,13 MAD seulement par session. Le meilleur ROI conversationnel.

🛡️

Données Souveraines (CNDP)

Hébergement conforme aux réglementations de protection des données personnelles locales.