Messagerie
Envoyer des SMS
Un seul endpoint envoie des SMS à un numéro ou à des milliers, tout de suite ou à l’heure prévue, avec un rapport de remise pour chacun.
Envoyer un message
POST/sms/3/messages
Une requête contient un tableau messages. Chaque message a un expéditeur, une ou plusieurs destinations et un contenu.
Chaque destination reçoit son propre messageId et démarre en PENDING_ACCEPTED. details.messageCount est le nombre de segments SMS nécessaires au texte, c’est ce qui est facturé.
Corps de la requête
messages[]
senderstring- L’expéditeur affiché : un nom alphanumérique de 11 caractères maximum (
YourBrand) ou l’un de vos numéros. Ce qui est autorisé dépend du pays. destinations[].tostringObligatoire- Le destinataire, au format international sans
+. destinations[].messageIdstring- Votre propre identifiant pour ce message. Il est renvoyé dans les rapports : vous les retrouvez sans stocker le nôtre.
content.textstringObligatoire- Le texte du message. Les textes longs sont découpés en segments puis réassemblés sur le téléphone.
content.transliterationstring- Remplace les caractères hors alphabet GSM par des équivalents proches pour garder des messages courts, par exemple
TURKISH,GREEK,CENTRAL_EUROPEAN,NON_UNICODE. options.validityPeriodobject- Durée pendant laquelle la remise est tentée, sous la forme
{ amount, timeUnit }avecSECONDS,MINUTESouHOURS. 48 heures maximum. options.deliveryTimeWindowobject- Jours et heures (UTC) pendant lesquels le message peut être remis.
options.campaignReferenceIdstring- Une étiquette pour regrouper les messages par campagne dans les logs et les rapports.
options.flashboolean- Affiche le message à l’écran sans l’enregistrer dans la boîte de réception.
webhooks.delivery.urlstring- Où envoyer le rapport de remise. Voir Rapports de remise.
webhooks.callbackDatastring- Texte libre renvoyé tel quel dans chaque rapport de ce message.
options (niveau racine)
schedule.sendAtstring- Quand envoyer, en date-heure ISO 8601 comme
2026-10-20T07:00:00.000+0000. schedule.bulkIdstring- Votre identifiant pour toute la requête. Il sert à récupérer les rapports de tous ses messages.
schedule.sendingSpeedLimitobject- Étale un gros envoi dans le temps, sous la forme
{ amount, timeUnit }avecMINUTE,HOURouDAY. includeSmsCountInResponseboolean- Renvoie dans la réponse le nombre de segments de chaque message.
Envoyer à beaucoup de monde
Ajoutez des destinations pour envoyer le même texte à plusieurs numéros, et des messages pour envoyer des textes différents dans une même requête. Définissez votre propre messageId sur chaque destination pour relier les rapports à vos données.
Programmer et encadrer la remise
options.schedule.sendAt retient la requête jusqu’à l’heure donnée. validityPeriod arrête les tentatives quand le message n’a plus d’intérêt, et deliveryTimeWindow évite les envois de nuit.
Longueur et encodage
Un segment SMS contient 160 caractères de l’alphabet GSM-7, ou 70 si le texte contient d’autres caractères comme des emoji ou la plupart des accents hors langues d’Europe de l’Ouest. Les textes plus longs sont découpés en segments de 153 ou 67 caractères et affichés comme un seul message. Chaque segment est facturé.