EMISMSDéveloppeurs API v1

Documentation API · v1

Envoyez des SMS depuis votre application

L'API HTTP EMISMS permet à votre site, votre logiciel ou votre application mobile (côté serveur) d'envoyer des SMS unitaires ou en masse, de programmer des envois, de suivre votre solde et d'alimenter vos listes de contacts.

Démarrage rapide

  1. Créez votre compte EMISMS et rechargez votre crédit SMS.
  2. Récupérez votre clé API dans l'espace client, menu API développeur.
  3. Faites approuver votre Sender ID (le nom d'expéditeur affiché sur le téléphone), menu Demandes de Sender ID.
  4. Envoyez votre premier SMS avec la requête ci-contre : la réponse "code": "ok" confirme l'envoi.

Testez d'abord avec votre propre numéro. Chaque SMS envoyé, même de test, est décompté de votre crédit.

Authentification

Chaque requête est authentifiée par le paramètre api_key, propre à votre compte. Il n'y a ni jeton à renouveler ni en-tête particulier.

Votre clé donne accès à votre crédit SMS. Utilisez-la uniquement côté serveur : jamais dans le code d'une page web, d'une application mobile ou d'un dépôt public. En cas de doute, changez votre clé depuis l'espace client (menu API développeur) : l'ancienne cesse immédiatement de fonctionner.

L'accès API doit être activé sur votre compte. Sinon, toutes les requêtes renvoient le code 102.

Requêtes et réponses

  • Protocole : HTTPS uniquement.
  • Méthodes : GET ou POST. Préférez POST pour l'envoi : le texte du message ne figure pas dans l'URL ni dans les journaux des serveurs.
  • Paramètres : action et api_key dans l'URL ; les autres en URL ou dans le corps application/x-www-form-urlencoded.
  • Encodage : UTF-8.
  • Réponse : JSON. Le statut HTTP est toujours 200 : testez le champ code, qui vaut "ok" en cas de succès ou un code d'erreur accompagné d'un message.
POST/sms/api?action=send-sms

Envoyer un SMS

Envoie immédiatement un message à un ou plusieurs destinataires. Le crédit est débité à l'acceptation de la requête, selon le nombre de SMS et le tarif du pays de destination.

Paramètres

api_keyobligatoireVotre clé API.
toobligatoireNuméro au format international sans « + », par exemple 2250707070707. Plusieurs numéros séparés par des virgules, 100 au maximum.
fromobligatoireVotre Sender ID approuvé (11 caractères maximum), par exemple EMISMS.
smsobligatoireTexte du message. Les accents font passer le message en Unicode.
unicodefacultatif1 pour forcer l'Unicode. Inutile en pratique : la détection est automatique.
schedulefacultatifEnvoi différé, voir Programmer un envoi.

Réponse

code"ok" si le message est accepté pour envoi.
message"Successfully Send", ou la description de l'erreur.
balanceMontant restant sur le compte après l'envoi, en currency (XOF).
smsNombre de SMS encore disponibles (montant ÷ prix d'un SMS, 24 XOF).
userNom du compte.

« ok » signifie que le message est accepté et transmis à l'opérateur. Le statut de chaque message se suit ensuite avec l'historique ou dans l'espace client.

POST/sms/api?action=send-sms

Envoi en masse

Le même message peut être envoyé à 100 numéros par requête, séparés par des virgules. Au-delà, découpez votre liste en lots de 100, comme dans l'exemple.

  • Si un seul numéro du lot est invalide, tout le lot est refusé (code 103) : validez vos numéros en amont.
  • Les numéros présents dans la liste noire sont retirés automatiquement du lot.
  • Le crédit nécessaire pour tout le lot est vérifié avant l'envoi (code 105 s'il est insuffisant).
  • Pour des campagnes de plusieurs milliers de contacts avec suivi détaillé, l'espace client propose aussi l'envoi par fichier Excel et les campagnes.
POST/sms/api?action=send-sms

Programmer un envoi

Ajoutez le paramètre schedule pour que le message parte à une date précise : rappels de rendez-vous, échéances, relances.

scheduleFormat MM/JJ/AAAA HH:MM AM|PM (mois en premier, horloge 12 h), à l'heure d'Abidjan (GMT). Exemple : 10/20/2026 09:30 AM pour le 20 octobre 2026 à 9 h 30, 10/20/2026 02:15 PM pour 14 h 15.

La réponse vaut alors "message": "SMS Scheduled successfully.". Le crédit est réservé dès la programmation. Les envois programmés apparaissent dans l'espace client, où vous pouvez les consulter.

Un format de date différent renvoie le code 109. Attention à l'inversion jour / mois : 05/10/2026 correspond au 10 mai.

GET/sms/api?action=get-inbox

Historique des SMS

Renvoie les SMS envoyés avec votre clé API, du plus récent au plus ancien, avec leur statut et les éventuelles réponses reçues.

limitrecommandéNombre de messages par page, de 1 à 500. Sans limit, tout l'historique est renvoyé, ce qui peut être très long sur un compte actif.
pagefacultatifNuméro de page, à partir de 1 (avec limit).

Champs de chaque message

idIdentifiant du message.
from / phoneSender ID utilisé / numéro du destinataire.
smsTexte envoyé.
segmentsNombre de SMS facturés.
statusStatut renvoyé par l'opérateur (par exemple Success).
typeplain (texte simple) ou unicode.
dateDate d'envoi (AAAA-MM-JJ HH:MM:SS).
inboxRéponses et événements liés au message.
GET/sms/api?action=check-balance

Consulter le solde

Renvoie le crédit SMS disponible. Idéal pour afficher le solde dans votre logiciel ou déclencher une alerte avant qu'il ne soit épuisé.

balanceMontant disponible sur le compte, en currency (XOF).
smsNombre de SMS disponibles : montant ÷ prix d'un SMS (24 XOF vers la Côte d'Ivoire).
currencyDevise du montant.
userNom du compte.
countryPays du compte.

En cas de succès, cette réponse ne contient pas de champ code. Une clé invalide renvoie le code 102.

POST/contacts/api?action=subscribe-us

Ajouter un contact

Inscrit un numéro dans l'une de vos listes de contacts, par exemple depuis le formulaire d'inscription à la newsletter de votre site. La liste doit exister dans votre espace client.

phone_bookobligatoireNom exact de la liste de contacts.
phone_numberobligatoireNuméro au format international sans « + ».
first_name, last_namePrénom et nom (facultatifs).
email, company, user_nameInformations complémentaires (facultatives).

Codes spécifiques

ok« Subscription successfully done » : contact ajouté.
103Numéro invalide.
104Liste introuvable : vérifiez le nom exact.
105Ce numéro est déjà dans la liste.

Numéros et Sender ID

Format des numéros

Indicatif du pays suivi du numéro complet, sans le « + » ni le « 00 ». Pour la Côte d'Ivoire, l'indicatif 225 est suivi des 10 chiffres du numéro (avec le 0 initial).

2250707070707 Correct
+225 07 07 07 07 07 Accepté : espaces, « + », tirets et parenthèses sont retirés
0707070707 Refusé : indicatif pays manquant
002250707070707 Refusé : « 00 » en trop

Sender ID

Le Sender ID est le nom affiché comme expéditeur (11 caractères maximum, sans espace de préférence). Il doit être approuvé pour votre compte par les opérateurs avant utilisation ; sinon l'API renvoie le code 106. Faites votre demande dans l'espace client, menu Demandes de Sender ID : vous suivez la validation opérateur par opérateur.

Encodage et nombre de SMS

Un message long est découpé en plusieurs SMS, réassemblés sur le téléphone. Chaque partie est facturée.

1 SMSMessage long, par SMS
Texte simple (sans accent)160 caractères157 caractères
Unicode (accents, emojis, arabe…)70 caractères67 caractères

Un seul caractère accentué (é, è, à, ç, ô…) ou un emoji fait passer tout le message en Unicode, soit 70 caractères par SMS au lieu de 160. Pour réduire vos coûts, écrivez sans accents lorsque c'est possible : « Votre commande est prete » au lieu de « prête ». Les espaces multiples sont comptés comme un seul.

Codes de réponse

Le champ code de chaque réponse indique le résultat. Le champ message donne une description en anglais, destinée à vos journaux.

CodeSignificationQue faire
ok Succès La requête a été acceptée (SMS envoyé, programmé ou contact ajouté).
100 Requête incomplète Paramètre obligatoire manquant (action, api_key, to, from ou sms).
101 Action inconnue La valeur du paramètre action n'existe pas.
102 Authentification refusée Clé API invalide, ou accès API non activé sur le compte.
103 Numéro invalide Au moins un numéro est invalide ; le message indique combien. Aucun SMS n'est envoyé.
104 Liste introuvable La liste de contacts (phone_book) n'existe pas sur le compte.
105 Solde insuffisant Crédit SMS insuffisant, ou pays de destination non couvert. Pour contacts/api : contact déjà inscrit.
106 Sender ID non autorisé L'expéditeur (from) n'est pas approuvé pour votre compte.
107 Type de SMS invalide Le type de message demandé n'est pas pris en charge.
108 Passerelle indisponible La passerelle d'envoi associée au compte est inactive. Contactez le support.
109 Date de programmation invalide Le paramètre schedule ne respecte pas le format MM/JJ/AAAA HH:MM AM|PM.
111 Contenu refusé Le message contient un mot interdit par le filtre anti-spam.
112 Envoi refusé Compte inactif, accès API refusé, ou tous les destinataires sont en liste noire.
113 Trop de destinataires Plus de 100 numéros dans une même requête.

Bonnes pratiques

Protégez votre clé

Stockez-la dans une variable d'environnement côté serveur, jamais dans le navigateur ni dans une application mobile.

Ne renvoyez pas à l'aveugle

En cas d'expiration du délai réseau, le SMS a pu partir : consultez l'historique avant de renvoyer pour éviter les doublons.

Validez les numéros

Un numéro invalide bloque tout le lot. Normalisez au format international dès la saisie dans vos formulaires.

Surveillez votre solde

Interrogez check-balance régulièrement et rechargez avant épuisement pour ne jamais bloquer vos envois.

Optimisez vos messages

Évitez les accents dans les campagnes et restez sous 160 caractères : un SMS au lieu de trois.

Respectez vos destinataires

Envoyez entre 8 h et 20 h et proposez un moyen de se désinscrire (STOP) dans les messages promotionnels.

Historique des versions

  • Solde en SMS

    check-balance et send-sms renvoient le nombre de SMS disponibles (sms) et la devise (currency). balance reste le montant en XOF.

  • Historique paginé

    get-inbox accepte limit et page et renvoie la date d'envoi (date). Sans ces paramètres, le comportement est inchangé.

  • Nouvelle documentation

    Exemples en cinq langages, calculateur de SMS et collection Postman.

Besoin d'aide pour votre intégration ?

Notre équipe technique vous accompagne : choix du Sender ID, volumes importants, intégration à votre logiciel.