API SMS
Cette documentation vous présente une façon simple et efficace d'envoyer des SMS via nos APIs.
Notre API vous permettre d'intégrer la fonctionnalité d'envoi de SMS directement depuis vos applications métier. MTarget vous propose avec un seul compte d'acheminer vos SMS en France et à l'international. Il faudra simplement nous préciser les destinations additionnelles souhaitées.
Attention, vous avez l'obligation de prendre en compte la volonté des destinataires de ne plus recevoir de SMS. En fonction des pays de destination (déterminés par le préfixe téléphonique de leur numéro de mobile), différents canaux peuvent leur être proposés pour exercer ce droit (réponse "STOP" sur un Shortcode ou d'un numéro long indiqué dans le message envoyé, utilisation d'un lien vers une page de désabonnement, etc.) et des lois et règlements différents peuvent en encadrer les modalités.
Si vous souhaitez tester nos API, une collection Postman est disponible ici .
Inscription
Nous vous proposons l’ouverture d’un compte pour tester gratuitement notre service. La création d'un compte est sans engagement. Pour ouvrir un compte envoyez un mail à  support@mtarget.fr en précisant :
- Vos coordonnées :
- email du compte
- nom
- prénom
- nom de la société
- Siret
- numéro de téléphone
- Les adresses IP fixes des serveurs depuis lesquelles seront émis les messages si vous désirez un contrôle par IP.
- En retour, nous vous fournissons les identifiants nécessaires à l'utilisation de l'API.
Le compte d'envoi que nous vous ouvrons peut supporter plusieurs offres et tarifs différents en fonction des destinations et des opérateurs, n’hésitez pas à nous préciser les destinations que vous souhaitez tester.
Sécurité
Afin de sécuriser votre compte, nous proposons une restriction par IP sur votre compte. Vous devez alors nous fournir la ou les IP de vos serveurs au moment de la création de votre compte ou avant vos tests. N'oubliez pas de nous fournir les IP des PC ou serveurs de test, si vous en avez.
Nous pouvons vous fournir nos IP d'envoi afin que vous puissiez mettre en place des restrictions équivalentes de votre côté.
L'utilisation conjointe de la protection par IP, de la protection de l'API par mot de passe et du protocole TLS pour sécuriser les échanges est de nature à garantir un haut niveau de sécurité, compatible avec la plupart des besoins. Cependant, nos équipes techniques se tiennent à votre disposition pour étudier avec vous la mise en place de mécanismes de sécurité complémentaires susceptibles de répondre aux besoins de votre Politique de Sécurité des Systèmes d'Information.
Envoyer des SMS
Nos temps de réponse, à vos requêtes, sont en principe bien inférieur à la seconde. Toutefois, nous vous conseillons de mettre en place un délai avant timeout de 45s de votre côté. Une non-réponse de notre part ne doit pas être considérée comme un comportement normal et ne doit pas justifier le renvoi de la requête.
Authentification
A l'ouverture de votre compte 3 paramètres vous seront transmis :
username : nom d'utilisateur
password : mot de passe utilisateur
serviceid : votre identifiant de routage optionnel (permet d'avoir plusieurs routes d'envoi, une seule vous sera assignée au départ)
Votre username et votre password vous seront nécessaires afin de vous authentifier pour chaque envoi.
Accès au service
L'API est disponible via deux URL. Si votre compte est configuré avec un accès restreint limité à certaines IP,
l'URL que vous devez utiliser est  : https://api-2.mtarget.fr/
Dans le cas contraire, l'URL à utiliser sans contrôle IP est : https://api-public-2.mtarget.fr/.
Cette URL vous retournera systématiquement un message d'erreur si votre compte est un compte avec contrôle IP.
Si lors de vos tests, notre service ne répond et tombe en timeout c'est que vous avez un compte avec restriction par IP et que l'IP que vous utilisez n'est pas autorisée.
Pour des raisons de rétrocompatibilité, ces URLs répondent aussi en HTTP, mais ce comportement n'est pas garanti sur le long terme et nous vous recommandons fortement d'utiliser le protocole sécurisé HTTPS pour vos requêtes.
Envoyer un sms en quelques minutes
Cet exemple est la manière la plus simple d'envoyer un SMS : l'authentification, le message et le numéro suffisent dans la majorité des cas d'utilisations.
Content-Typeapplication/x-www-form-urlencoded
usernameUSERNAME
Votre username, transmis Ă l'inscription
passwordPASSWORDVotre password, transmis Ă l'inscription
msisdnMSISDNNuméro du destinataire avec indicatif (+33...) ou au format international (0033...). Vous pouvez ajouter jusqu'à 500 msisdn séparés d'une virgule : +336xxxx1,+336xxxx2,+336xxxx3
msgMessage simpleContenu du message.
Le contenu du message est limité à 160 caractères pour un SMS standard (qui utilise l'alphabet GSM – attention aux caractères comptant double, comme €). Nous autorisons avec l'option "messages longs" un envoi de 7 SMS de 153 caractères (la concaténation des SMS utilise 7 caractères par message). Si vos besoins impliquent une taille de message supérieure à 7 x 153 caractères, merci de contacter le support pour demander une analyse du besoin et un paramétrage spécifique. Des limitations imposées par l'opérateur peuvent s'imposer.
SMS Unicode
Il est possible d'envoyer des messages en Unicode et donc de ne pas être limité à l'alphabet GSM.
Toutefois, dans ce mode chaque caractère est encodé sur 16 bits, et un message sera limité à 70 caractères (contre 160 habituellement) - avec la possibilité d'envoyer jusqu'à 7 messages longs (de 67 caractères chacun).
Content-Typeapplication/x-www-form-urlencoded
usernameUSERNAME
Votre username, transmis Ă l'inscription
passwordPASSWORDVotre password, transmis Ă l'inscription
msisdnMSISDNNuméro du destinataire avec indicatif (+33...) ou au format international (0033...). Vous pouvez ajouter jusqu'à 500 msisdn séparés d'une virgule : +336xxxx1,+336xxxx2,+336xxxx3
msgMessage unicode ‼ 🥳📱Contenu du message.
Le contenu du message est ici limité à 70 caractères - l'encoding utilisé en "messages Unicode" est l'UCS-2. Nous autorisons avec l'option "messages longs" un envoi de 7 SMS de 67 caractères (la concaténation des SMS utilise 3 caractères par message). Si vos besoins impliquent une taille de message supérieure à 7 x 67 caractères, merci de contacter le support pour demander une analyse du besoin et un paramétrage spécifique. Des limitations imposées par l'opérateur peuvent s'imposer.
allowunicodetruePermet l'utilisation de l'Unicode.
Si le contenu du SMS l'impose (présence de caractères NON GSM 03.38) alors le SMS est envoyé en unicode.
Sans ce paramètre, votre message sera converti pour être envoyé au format alphabet GSM (GSM 03.38 ) après transformation des caractères dans des équivalents proches.
SMS programmé en avance, expéditeur personnalisé
L'utilisation des envois différés doit concerner des volumes faibles et des utilisations ponctuelles. Il n'est pas recommandé d'utiliser cette fonctionnalité au-delà de quelques centaines de messages à programmer. La priorité est donnée aux envois immédiats et pas aux messages programmés, il est donc fortement déconseillé d'utiliser cette fonction pour programmer des envois massifs (bulk) dans le futur.
Envoi d'un sms programmé pour 04h18 le 19 janvier 2038[1], avec comme expéditeur "Test01".
Content-Typeapplication/x-www-form-urlencoded
usernameUSERNAME
Votre username, transmis Ă l'inscription
passwordPASSWORDVotre password, transmis Ă l'inscription
msisdnMSISDNNuméro du destinataire avec indicatif (+33...) ou au format international (0033...). Vous pouvez ajouter jusqu'à 500 msisdn séparés d'une virgule : +336xxxx1,+336xxxx2,+336xxxx3
msgMessage simpleContenu du message.
Le contenu du message est limité à 160 caractères pour un SMS standard (qui utilise l'alphabet GSM – attention aux caractères comptant double, comme €). Nous autorisons avec l'option "messages longs" un envoi de 7 SMS de 153 caractères (la concaténation des SMS utilise 7 caractères par message). Si vos besoins impliquent une taille de message supérieure à 7 x 153 caractères, merci de contacter le support pour demander une analyse du besoin et un paramétrage spécifique. Des limitations imposées par l'opérateur peuvent s'imposer.
timetosend2038-01-19 04:14:08Date et heure de l'émission du message (format : yyyy-MM-dd HH:mm:ss ex : 2038-01-19 04:14:08). Le timetosend ne peut pas être utilisé pour un envoi différé de plus de 24h dans le futur, des délais plus importants doivent être gérés dans votre application. Même programmé en avance, il est impossible d'annuler un message. Le fuseau horaire est celui de la France. Si entre-temps un destinataire fait part de sa volonté de ne plus recevoir de SMS (STOP), vous ne pourrez pas agir sur un envoi préprogrammé.
Les SMS programmés dans le passé partent immédiatement.
senderTest01Personnalisation de l'émetteur : 11 caractères alphanumériques, par exemple "Magasin" (la valeur par défaut diffère selon les pays et opérateurs). Certains opérateurs refuseront la personnalisation de l'émetteur (par exemple en France NRJ Mobile ou Transatel).
Dans certains pays, l'émetteur devra être autorisé par les opérateurs. Contactez-nous pour plus de précisions.
Notion de sous comptes
Si vous avez besoin d'effectuer une différenciation entre vos envois ou votre facturation (plusieurs magasins connectés directement à l'API par exemple), nous pouvons vous créer des sous-comptes permettant de gérer cette éventualité. Contactez-nous pour plus de précisions.
Plages et horaires de routage France
En France, l'envoi de SMS est soumis à des régulations horaires strictes (d'autres pays peuvent disposer de régulations horaires, consulter le support). On distingue deux types de SMS et nous vous proposons donc plusieurs offres :
1. Le SMS Marketing
Les SMS marketing sont des messages de type publicitaire à caractère promotionnel lors de communication de masse (promotions, soldes... etc).
Ces envois sont autorisés en France du lundi au samedi, de 8h à 22h. Ils sont interdits les dimanches et jours fériés.
De plus, les messages marketing doivent contenir la mention "STOP 36180", permettant aux clients de demander Ă ne plus recevoir de messages.
Si vous nous envoyez du contenu sur une offre Marketing entre 22h00 et 08h00, les SMS seront mis en attentes et envoyés à 08h. Les SMS envoyés les jours fériés et dimanches seront refusés.
2. Le SMS Alerting
Les SMS alerting concernent les messages de notifications destinés à une communication individuelle du type prise de rendez-vous, livraisons de colis, alertes domotiques, etc
Les messages alerting ne sont pas concernés par les restrictions horaires du SMS Marketing. Le contenu marketing est évidemment formellement interdit sur cette offre. Tout abus pourra entraîner la fermeture du compte, ainsi que des pénalités contractuelles.
Tous les paramètres
Cet exemple regroupe tous les paramètres possibles. Dans la majorité des cas, seuls les 4 premiers seront utiles.
Ils ne sont pas forcément compatibles, merci de lire les précisions pour chaque paramètre.
Content-Typeapplication/x-www-form-urlencoded
usernameUSERNAME
Votre username, transmis Ă l'inscription
passwordPASSWORDVotre password, transmis à l'inscription
Numéro du destinataire avec indicatif (+33...) ou au format international (0033...). Vous pouvez ajouter jusqu'à 500 msisdn séparés d'une virgule : +336xxxx1,+336xxxx2,+336xxxx3
Contenu du message.
Limité à 160 caractères de l'alphabet GSM si les paramètres allowunicode et dcs ne sont pas utilisés. Nous autorisons avec l'option "messages longs" un envoi de 7 SMS de 153 caractères (la concaténation des SMS utilise 7 caractères par message). Si vos besoins impliquent une taille de message supérieure à 7 x 153 caractères, merci de contacter le support pour demander une analyse du besoin et un paramétrage spécifique. Des limitations imposées par l'opérateur peuvent s'imposer.
Permet l'utilisation de l'Unicode.
Sans ce paramètre, votre message sera converti pour être envoyé en utilisant l'alphabet GSM
Permet de gérer plusieurs offres différentes sur un compte unique (par exemple : une offre pour des messages Alerting et une offre pour des messages Marketing en France).
senderTest01Personnalisation de l'émetteur : 11 caractères alphanumériques, par exemple "Magasin" (la valeur par défaut diffère selon les pays et opérateurs). Certains opérateurs refuseront la personnalisation de l'émetteur (par exemple en France NRJ Mobile ou Transatel)
Date et heure de l'émission du message (format : yyyy-MM-dd HH:mm:ss ex : 2038-01-19 04:14:08). Le timetosend ne peut pas à plus de 24h dans le futur, des délais plus grands doivent être gérés de votre côté. Même programmé en avance, il n'est pas possible d'annuler un message. Le fuseau horaire est celui de la France. Si entre-temps un destinataire fait part de sa volonté de ne plus recevoir de SMS (STOP), vous n'êtes plus en capacité de le gérer sur ces envois préprogrammés.
encodingUTF-32L'encoding que vous utilisez pour nous envoyer le message (de vos serveurs à nos serveurs). Si ce champ n’est pas renseigné, nous regarderons les headers http, et s’ils ne sont pas renseignés, nous considérerons que le message est encodé en UTF-8.
remoteidabcdef4567Champ libre limité à 250 caractères alphanumériques, vous permet de nous donner un identifiant métier que nous vous renverrons dans les accusés de réception et réponses. Pour les envois multiples, vous pouvez envoyer soit un remoteid pour tout le push, soit un remoteid par msisdn.
uniqueidghij0123Avec le msisdn, crée un couple unique qui permettra de garantir que le même message n'est pas envoyé plusieurs fois, même en cas de réitération d'un envoi (par exemple consécutif à une non-réponse). Attention, compte tenu du mécanisme mis en place, un impact négatif sur les performances est possible. Lors de la réception d’un doublon, nous vous renverrons le même ticket correspondant à l’envoi correspondant (et le smscount en réponse sera de 0 étant donné que nous n’enverrons pas de message supplémentaire). Etant donné que l’unicité est garantie par le couple uniqueid-msisdn, vous avez ici aussi le choix pour les envois multiples d’envoyer un seul uniqueid ou un uniqueid par msisdn. Contrairement au remoteid, nous ne vous renverrons pas cet uniqueid lors des notifications. Il est limité à 35 caractères. Nous vérifions l'unicité du code sur le mois courant.
subserviceid67890Concernant l’implémentation très particulière de ce champ, contactez nous.
dcs240Data Coding Scheme, permet de changer la classe du message. Cette option est destinée à un usage averti et n'est pas applicable dans tous les contextes. Merci de contacter le support si vous avez besoin de l'utiliser.
pid65Protocol Identifier, permet entre autre de remplacer des SMS envoyés précédemment. Cette option est destinée à un usage averti et n'est pas applicable dans tous les contextes. Merci de contacter le support si vous avez besoin de l'utiliser.
udh0605040B8423F0User Data Header, permet de créer, par exemple des SMS enrichis. Vous n’avez pas à le gérer pour les SMS longs. Cette option est destinée à un usage averti et n'est pas applicable dans tous les contextes. Merci de contacter le support si vous avez besoin de l'utiliser.
Accusés de réception (DLR)
Les accusés de réception vous permettent de suivre votre message et d'en connaitre l'état : envoyé à l'opérateur, reçu sur le téléphone, refusé, ou non délivré. Ils seront transmis sur une URL définie sur votre serveur et qui devra être accessible depuis notre plateforme en continu. Si vous souhaitez protéger ces URL, nous pouvons vous transmettre les adresses IP de nos infrastructures, qu'il conviendra d'autoriser sur les vôtres.
Les requêtes envoyées sont encodées en UTF-8.
Vous devez nous fournir l'url de traitement de la réception des accusés sur votre serveur :
Ex : https://www.mondomaine.com/api-sms-receive.php
Votre serveur devra acquitter la réception de notre notification en nous répondant avec un statut 200 - OK. Toutefois, si des traitements lents ont lieu de votre côté, nous vous invitons à nous répondre avant de les effectuer de manière asynchrone, sous peine de voir une partie des notifications retardées.
Cette URL sera appelée pour chaque accusé de réception de vos messages. Ainsi plusieurs états peuvent être envoyés pour le même message (2 : envoyé opérateur puis 3 : délivré mobile). Il est conseillé de sauvegarder le statut le plus élevé car les événements peuvent arriver dans le désordre.
Voici la requête qui sera envoyée à votre serveur :
Content-Typeapplication/x-www-form-urlencoded
MsgIdeda25190-c02d-11e9-89e2-00000a0a6447
Identifiant unique d'un message, envoyé dans la réponse synchrone sous le nom de ticket
Status3Représente, avec StatusText, l'état du SMS
Représente, avec Status, l'état du SMS.
Les Ă©tats possibles sont :
0 – waiting     : En attente
1 – in progress : En cours d'envoi
2 – sent        : Envoyé à l'opérateur
3 – delivered   : DĂ©livrĂ©Â
4 – refused     : RefusĂ© par l'opĂ©rateur Â
6 – not delivered : Non délivré
DestinationAdress+33612345678Le numéro du destinataire avec indicatif (+33...)
OriginatedAddress00000Soit 00000, soit l'émetteur précisé dans sender
CreateDateTime2019-02-18 12:54:23Heure de création (formaté yyyy-MM-dd HH:mm:ss)
SendDateTime2019-02-18 12:54:23Heure de l'acquittement opérateur (formaté yyyy-MM-dd HH:mm:ss)
DeliveryDateTime2019-02-18 12:54:25Heure de réception de l'acquittement mobile (formaté yyyy-MM-dd HH:mm:ss)
ReasonOKRetour spécifique à l'opérateur
RSN0Code de résultat de l'envoi du message
SmsCount1Nombre de SMS envoyés
remoteidabcdef4567Champ libre limité à 250 caractères alphanumériques, identifiant métier que vous nous fournissez lors de la soumission d'un SMS et qui est retourné dans les accusés de réception pour un suivi interne au client.
Gestion des réponses (MO)
Si l'opérateur gère les réponses de l'utilisateur final - les "MO" (Mobile Originated) - celles-ci sont remontées sur une deuxième URL vous appartenant (les préconisations proposées dans le cadre de la section "Accusés de réception" s'appliquent également à cette URL.).
Ex : https://your.url.example/mo
Pour la France cette URL sera appelée pour chaque réponse envoyée. En Italie pour le service de réception contacter commercial@mtarget.it. Dans la très grande majorité des cas, les MO à l'étranger ne sont pas remontés.
Content-Typeapplication/x-www-form-urlencoded
MsgIdc8120070-bff0-11e9-ad94-00000a0a820a
Identifiant unique d'un message (identifie le MO)
Status5Status est toujours 5 pour les réponses
StatusTextSMSMO-receivedStatusText est toujours SMSMO-received pour les réponses
Msisdn+33612345678Le numéro de l'expéditeur avec indicatif (+33...)
ShortCode36180Le numéro court sur lequel nous avons reçu le message
SendDateTime2019-02-18 17:31:06Heure à laquelle nous avons reçu le message (formaté yyyy-MM-dd HH:mm:ss)
ServiceId12345Le ServiceId correspondant à l'échange – par défaut vous n'en aurez qu'un
SubServiceId0Le SubServiceId correspondant, par défaut, ce sera 0
OriginMsgIdeda25190-c02d-11e9-89e2-00000a0a6447Le ticket auquel ce message répond
ContentSTOPLe contenu du message reçu
KeywordStopÉventuellement un mot clé, sera Default par défaut. Sera Stop si le MO a été identifié de notre côté comme une demande d'opt-out. Attention, la responsabilité de la qualification du MO comme une demande d'opt-out reste du ressort du client. Le champ Keyword est donné à titre purement indicatif.
RemoteIdabcdef1234Permet de récupérer la valeur du champ remoteid présent lors de l'envoi du MT. Attention à la casse de ce champ qui est différente entre les deux fonctions.
Consulter le crédit
Cette requête permets de vérifier votre crédit. Il peut y avoir un délai avant l'affichage des opérations sur cette requête. A cause des traitements asynchrones effectués, votre crédit peut être légèrement négatif.
Si votre compte est de type postpaid, les champs amount et currency ne seront pas présents.
Content-Typeapplication/x-www-form-urlencoded
usernameUSERNAME
Votre username, transmis Ă l'inscription.
passwordPASSWORDVotre password, transmis Ă l'inscription.
Codes d'erreur
Vous pouvez retrouvez ci-dessous une liste exhaustive des codes d'erreur de l'API :
- -1 : Authentification failed
- -2 : Invalid destination address. Champ msisdn mal formaté.
- -3 : Invalid operator
- -4 : No route defined. Si vous recevez cette erreur, vous essayez probablement d'envoyer dans un pays dont l'offre n'est pas câblée. Si vous souhaitez rajouter cette offre, veuillez contacter support@mtarget.fr.
- -5 : No transaction found
- -6 : Parameter "method" not found. Check parameters
- -7 : Time to send not allowed
- -8 : Datacoding scheme invalid
- -9 : Serviceid not found
- -10 : Message too long
- -11 : Not enough credit
- -12 : Invalid parameter
- -13 : PushAction not foundÂ
- -14 : Maximum message limit
- -15 : PID invalid
Changelog
- 2019-10 : Première version de la documentation en ligne.
- 2020-02 : Ajout section codes d'erreur