3 min de lecture

Formatage SMS au Maroc : Sauts de ligne, Encodage GSM-7 vs UCS-2 et Optimisation des Coûts

Guide ultime du formatage SMS pour le marché marocain. Apprenez à gérer les sauts de ligne, maîtriser les limites d'encodage GSM-7/UCS-2 et éviter les surcoûts liés aux caractères spéciaux.

1. L'importance de la lisibilité : la gestion des sauts de ligne (\n)

Dans le cadre de notifications professionnelles (statuts de livraison, reçus de paiement, codes d'authentification), la structure visuelle de votre message détermine l'impact de votre communication. Un message compact et dense est souvent ignoré ou mal compris. L'utilisation de sauts de ligne réels (\n) permet d'aérer le texte et de hiérarchiser les informations. L'API EnvoiSMS.ma préserve nativement et de manière déterministe les sauts de ligne insérés dans vos chaînes JSON (envoyés sous la forme \n). Contrairement à d'autres passerelles qui concatènent le texte de force ou le corrompent, notre passerelle achemine le format exact défini par vos développeurs vers Maroc Telecom, Inwi et Orange.

2. Encodage SMS : GSM-7 vs UCS-2 (La règle d'or des segments)

Le réseau cellulaire utilise deux types d'encodages pour acheminer les SMS, ce qui impacte directement le coût de vos campagnes :

  • GSM-7 (Standard) : Permet d'utiliser jusqu'à 160 caractères par segment de SMS. Ce jeu prend en charge les lettres latines de base (A-Z, a-z), les chiffres (0-9) et certains symboles communs. Si votre message dépasse 160 caractères, il est divisé en segments de 153 caractères (7 octets étant réservés pour l'en-tête de liaison UDH).
  • UCS-2 (Unicode) : Dès qu'un seul caractère non inclus dans la table GSM-7 est détecté (lettre arabe, emoji, accent non standard comme le "ç" ou le "ê"), tout le message bascule en UCS-2. Dans cet encodage, la taille limite d'un segment tombe à 70 caractères (et 67 caractères par segment pour les messages longs multi-segments). Un seul emoji peut donc instantanément doubler ou tripler le coût d'envoi de votre message.

3. Les pièges du formatage enrichi et des caractères invisibles

Le standard SMS traditionnel ne supporte absolument pas le formatage enrichi en ligne comme le gras ou l'italique (par exemple, pas d'utilisation possible de balises HTML ou markdown). Tenter d'injecter des polices stylisées issues de générateurs en ligne (caractères Unicode modifiés) convertira instantanément votre message en UCS-2, limitant drastiquement le nombre de caractères autorisés par segment. Pour attirer l'attention sur un élément important en SMS, utilisez les majuscules (ex: "IMPORTANT :") ou entourez le mot de symboles neutres de la table GSM-7 comme des crochets ou des étoiles simples.

4. Optimiser la délivrabilité et éviter les rejets d'opérateurs au Maroc

Les opérateurs télécoms marocains IAM, Inwi et Orange appliquent des filtres stricts sur les expéditeurs (Sender IDs). Pour garantir une délivrabilité maximale, évitez d'inclure des caractères accentués ou des ponctuations non autorisées dans le corps de vos messages à proximité de liens. De plus, assurez-vous de toujours valider et assainir vos numéros de téléphone au format E.164 (+212XXXXXXXXX) pour empêcher les rejets immédiats au niveau de la passerelle API.

Architecture technique et intégration API haute performance

Pour garantir la délivrabilité des messages critiques sur le territoire marocain, EnvoiSMS s'appuie sur des routes locales vers Maroc Telecom (IAM), Orange et inwi, avec bascule automatique entre routes en cas d'indisponibilité ou d'encombrement.

Chaque requête envoyée à l'API https://api.envoisms.ma/v1/messages fait l'objet d'une validation E.164 déterministe (formatage automatique des préfixes 06, 07 et +212) et retourne un identifiant unique permettant de corréler les accusés de réception (DLR) reçus par webhook avec signature HMAC-SHA256.

Conformité légale CNDP (Loi 09-08) et protection des données

Tout traitement de données personnelles et envoi de communications professionnelles au Maroc doit respecter la loi n° 09-08 régie par la CNDP. Les envois transactionnels s'inscrivent dans le cadre contractuel (art. 4-b), tandis que les campagnes promotionnelles intègrent obligatoirement la mention "STOP" pour l'exercice du droit d'opposition (art. 9).

Nos serveurs et bases de données appliquent un chiffrement strict en transit (TLS 1.3) et au repos (AES-256), assurant la conformité et la souveraineté totale de vos informations financières et privées.

Questions fréquentes

Comment puis-je envoyer un saut de ligne via l'API REST ?

Dans le payload JSON de votre requête vers /v1/messages, insérez simplement la séquence "\n" à l'endroit désiré (ex: "Ligne 1\nLigne 2"). L'API la décodera et la transmettra fidèlement.

Pourquoi mon message de 100 caractères a-t-il été facturé 2 segments ?

Il y a de fortes chances que votre message contienne un caractère non-GSM7 (comme un emoji, un caractère en langue arabe ou un accent particulier). Cela a forcé le message à basculer en encodage UCS-2, réduisant la limite du premier segment de 160 à 70 caractères.

Existe-t-il une table de caractères GSM-7 autorisés ?

Oui. Elle inclut tous les caractères alphanumériques de base, les espaces, ainsi que des caractères comme @, _, $, %, &, *, +, -, =, ?, !, et les accents courants français é, è, à, ù.