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.

POST https://api-public-2.mtarget.fr/messages HEADERS
Content-Typeapplication/x-www-form-urlencoded


BODY
usernameUSERNAME

Votre username, transmis Ă  l'inscription

passwordPASSWORD

Votre password, transmis Ă  l'inscription

msisdnMSISDN

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

msgMessage simple

Contenu 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).

POST https://api-public-2.mtarget.fr/messages HEADERS
Content-Typeapplication/x-www-form-urlencoded


BODY
usernameUSERNAME

Votre username, transmis Ă  l'inscription

passwordPASSWORD

Votre password, transmis Ă  l'inscription

msisdnMSISDN

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

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.

allowunicodetrue

Permet 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".

POST https://api-public-2.mtarget.fr/messages HEADERS
Content-Typeapplication/x-www-form-urlencoded


BODY
usernameUSERNAME

Votre username, transmis Ă  l'inscription

passwordPASSWORD

Votre password, transmis Ă  l'inscription

msisdnMSISDN

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

msgMessage simple

Contenu 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:08

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 ê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.

senderTest01

Personnalisation 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.

POST https://api-public-2.mtarget.fr/messages HEADERS
Content-Typeapplication/x-www-form-urlencoded


BODY
usernameUSERNAME

Votre username, transmis Ă  l'inscription

passwordPASSWORD

Votre password, transmis à l'inscription


msisdn+33600000000

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


msgMessage đź‘Ť

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.


allowunicodetrue

Permet l'utilisation de l'Unicode.


Sans ce paramètre, votre message sera converti pour être envoyé en utilisant l'alphabet GSM


serviceid12345

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).

senderTest01

Personnalisation 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)


timetosend2038-01-19 04:14:08

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-32

L'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.

remoteidabcdef4567

Champ 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.

uniqueidghij0123

Avec 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.

subserviceid67890

Concernant l’implémentation très particulière de ce champ, contactez nous.

dcs240

Data 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.

pid65

Protocol 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.

udh0605040B8423F0

User 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 :

POST https://your.url.example/dlr HEADERS
Content-Typeapplication/x-www-form-urlencoded


BODY
MsgIdeda25190-c02d-11e9-89e2-00000a0a6447

Identifiant unique d'un message, envoyé dans la réponse synchrone sous le nom de ticket

Status3

Représente, avec StatusText, l'état du SMS


StatusTextdelivered

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+33612345678

Le numéro du destinataire avec indicatif (+33...)

OriginatedAddress00000

Soit 00000, soit l'émetteur précisé dans sender

CreateDateTime2019-02-18 12:54:23

Heure de création (formaté yyyy-MM-dd HH:mm:ss)

SendDateTime2019-02-18 12:54:23

Heure de l'acquittement opérateur (formaté yyyy-MM-dd HH:mm:ss)

DeliveryDateTime2019-02-18 12:54:25

Heure de réception de l'acquittement mobile (formaté yyyy-MM-dd HH:mm:ss)

ReasonOK

Retour spécifique à l'opérateur

RSN0

Code de résultat de l'envoi du message

SmsCount1

Nombre de SMS envoyés

remoteidabcdef4567

Champ 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.

POST https://your.url.example/mo HEADERS
Content-Typeapplication/x-www-form-urlencoded


BODY
MsgIdc8120070-bff0-11e9-ad94-00000a0a820a

Identifiant unique d'un message (identifie le MO)

Status5

Status est toujours 5 pour les réponses

StatusTextSMSMO-received

StatusText est toujours SMSMO-received pour les réponses

Msisdn+33612345678

Le numéro de l'expéditeur avec indicatif (+33...)

ShortCode36180

Le numéro court sur lequel nous avons reçu le message

SendDateTime2019-02-18 17:31:06

Heure à laquelle nous avons reçu le message (formaté yyyy-MM-dd HH:mm:ss)

ServiceId12345

Le ServiceId correspondant à l'échange – par défaut vous n'en aurez qu'un

SubServiceId0

Le SubServiceId correspondant, par défaut, ce sera 0

OriginMsgIdeda25190-c02d-11e9-89e2-00000a0a6447

Le ticket auquel ce message répond

ContentSTOP

Le 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.

RemoteIdabcdef1234

Permet 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.

POST https://api-public-2.mtarget.fr/balance HEADERS
Content-Typeapplication/x-www-form-urlencoded


BODY
usernameUSERNAME

Votre username, transmis Ă  l'inscription.

passwordPASSWORD

Votre 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