02 51 76 0 34

Accès client :  mot de passe oublié   inscription

       (oubli)
AccueilDéveloppeurs / API › Dolibarr

Module SMS pour Dolibarr ERP/CRM

Mis à jour le 31 juillet 2026

Dolibarr gère vos clients, vos factures et vos rendez-vous : ce module y ajoute le SMS — à la main, en masse, automatiquement sur les événements de votre ERP, et en une ligne de code dans vos triggers grâce à la classe Sms123Api. Rappel de rendez-vous, relance de facture impayée, commande prête : le canal lu en quelques minutes, là où l'e-mail attend.

  • À la main : menu Outils › SMS 123-SMS, avec le solde du compte, l'historique des envois et le compteur de caractères en direct.
  • Automatiquement, sans code : commande validée, facture validée, facture payée, expédition, devis — il suffit de cocher l'événement et d'écrire le message.
  • Depuis les fiches : un bouton « Envoyer un SMS » sur les fiches tiers, contact, devis, commande, facture et expédition, numéro et message pré-remplis.
  • En masse : depuis la liste des tiers ou des contacts, filtrez, cochez, rédigez — une mini-campagne SMS sans quitter Dolibarr.
  • Tout seul : rappels de rendez-vous, relances des factures échues et alerte de solde bas, par tâches planifiées.

1Les envois qui partent tout seuls

Trois tâches planifiées font le travail sans que personne y pense. Elles sont fournies avec le module, désactivées par défaut : vous choisissez celles que vous voulez.

Rappels de rendez-vous

Un SMS part avant les événements de l'agenda, avec le délai que vous fixez (24 h par défaut). Vous choisissez les types d'événements concernés — « Rendez-vous » uniquement, par exemple — ou cochez « tous les types ». Le numéro est cherché d'abord sur le contact lié à l'événement (mobile, personnel, professionnel), à défaut sur le tiers (mobile, téléphone). Un seul rappel par événement, quelle que soit la fréquence de la tâche.

Chaque fiche d'événement porte une case « Rappel SMS », cochée d'office quand son type est concerné : décochez-la pour écarter ce rendez-vous précis, cochez-la pour en inclure un dont le type ne l'est pas. Tant que personne n'y touche, la fiche suit le réglage général.

Variables du message : {date} {heure} {label} {societe} {masociete}.

Relances des factures impayées

Balayage quotidien des factures validées, non payées et échues depuis le nombre de jours de votre choix. Un intervalle minimum évite de relancer deux fois la même facture. Variables : {ref} {total} {date} {societe} {masociete}.

Alerte de solde bas

Dès que le crédit passe sous le seuil que vous fixez, un e-mail part vers l'adresse de votre choix — et un SMS sur votre mobile si vous le souhaitez. L'alerte ne se répète pas plus d'une fois tous les X jours.

Chaque envoi automatique est tracé dans l'historique avec son origine (rappel-rdv#123, relance-facture#456) : vous savez toujours d'où vient un SMS.

2Suivre ce qui part, comprendre ce qui ne part pas

Un SMS qui ne parte pas sans explication, c'est une heure perdue. Le module a été construit pour que la réponse soit toujours à l'écran.

  • Accusés de réception : le statut de remise remonte dans l'historique (remis, non remis, en attente). Le module conserve la référence d'envoi renvoyée par la passerelle, si bien que le rapprochement reste exact même avec plusieurs SMS vers le même numéro.
  • Trace dans l'agenda du client : chaque SMS lié à un tiers crée un événement sur sa fiche, avec le texte complet en note. L'historique client devient réellement complet.
  • Widget sur l'accueil : solde du compte et derniers envois dès la connexion.
  • Test de connexion : un envoi à blanc (rien n'est envoyé, rien n'est débité) qui vérifie identifiants, extension cURL, proxy, jointure de la passerelle, validité du compte, solde — et affiche la réponse brute de l'API.
  • Aperçu des rappels : la liste exacte des rendez-vous qui seront traités, le numéro trouvé pour chacun et le champ d'où il vient. S'il n'y en a aucun, la page dit pourquoi (hors fenêtre, type non retenu, aucun numéro).
  • Exécution à la demande : « Simuler » ou « Exécuter » la tâche depuis la configuration, avec un journal détaillé étape par étape.
  • État des tâches planifiées : activée ou non, dernière exécution, dernier compte rendu. Si une tâche active affiche « jamais exécutée », c'est le cron de Dolibarr qui n'est pas en service — et non le module.
  • Codes de retour en clair : les 23 codes de l'API (80 à 102) sont traduits dans l'historique et les journaux. Un envoi bloqué avant la passerelle (réseau, pare-feu) est lui aussi enregistré, avec sa raison.

3Installation

Étape à ne pas sauter : Dolibarr n'affiche aucun module du dossier custom/ tant que ce répertoire n'est pas déclaré dans sa configuration. Ouvrez htdocs/conf/conf.php et vérifiez que ces deux lignes existent et ne sont pas commentées (pas de // devant) :
$dolibarr_main_url_root_alt = '/custom';
$dolibarr_main_document_root_alt = '/chemin/vers/dolibarr/htdocs/custom';
Sur beaucoup d'installations, ces lignes existent déjà mais sont commentées : il suffit de retirer les //. Adaptez le chemin à votre installation (par exemple /var/www/dolibarr/htdocs/custom), créez le dossier custom/ s'il n'existe pas, enregistrez, puis rechargez la page des modules.
  • 1. Activez le répertoire custom/ dans conf.php (encadré ci-dessus).
  • 2. Décompressez l'archive sur votre poste puis envoyez le dossier sms123 dans htdocs/custom/ (ou envoyez le zip et décompressez-le sur le serveur) : vous devez obtenir htdocs/custom/sms123/core/modules/modSms123.class.php (si vous obtenez htdocs/custom/sms123/sms123/…, remontez d'un niveau).
  • 3. Accueil › Configuration › Modules/Applications : activez « SMS 123-SMS.net » (famille Interfaces).
  • 4. Configurez le module, onglet Compte : identifiant et clé API (transmis à l'inscription), Sender-ID optionnel. Le bouton Tester la connexion valide le tout sans rien débiter.
  • 5. Donnez la permission « Envoyer des SMS via 123-SMS » aux utilisateurs concernés.
  • 6. Menu Outils › SMS 123-SMS : envoyez un SMS de test — la réponse s'affiche en clair (80 = envoyé).
Mise à jour depuis une version précédente : remplacez les fichiers, puis désactivez et réactivez le module. C'est à l'activation que Dolibarr enregistre les menus, les tâches planifiées, le widget et les colonnes de l'historique. Vos réglages et vos envois passés sont conservés.

4Faire tourner les tâches automatiquement

Dolibarr n'exécute ses tâches planifiées que si quelque chose vient les déclencher. La configuration du module affiche les trois moyens possibles, la commande et l'URL étant déjà remplies avec vos propres chemins et votre clé :

  • Le cron du serveur (recommandé) : une ligne dans la crontab, appelant scripts/cron/cron_run_jobs.php.
  • Une URL appelée par un service externe : pratique en hébergement mutualisé (planificateur de votre hébergeur, service de cron en ligne).
  • Le déclencheur de secours du module : si aucun cron n'est possible, le module lance ses propres tâches pendant l'affichage d'une page, au plus une fois par intervalle. C'est un dépannage : rien ne part tant que personne ne se connecte. Il s'efface de lui-même dès qu'un vrai cron tourne.

5Pour les développeurs : la classe Sms123Api

Le module expose une classe utilisable partout dans Dolibarr — trigger maison, tâche planifiée, script en ligne de commande. Licence MIT : reprenez-la, adaptez-la.

<?php
// Dans n'importe quel trigger, cron ou script Dolibarr :
dol_include_once('/sms123/class/sms123api.class.php');

$code = Sms123Api::envoyer('0601020304', 'Votre commande est prete.');

if (Sms123Api::estSucces($code)) {
    // 80 = envoye, 81 = enregistre pour un envoi differe
} else {
    dol_syslog('SMS non parti : '.Sms123Api::libelle($code), LOG_WARNING);
}

// Envoi a blanc : rien n'est envoye, rien n'est debite (reponse 92)
$code = Sms123Api::envoyer('0601020304', 'Essai', 1);

// Rattacher l'envoi a un tiers : il apparait alors dans son agenda
$code = Sms123Api::envoyer($numero, $message, 0, 'ma-source', $socid);

// Solde du compte, en credits SMS
$solde = Sms123Api::solde();

Les numéros français sont normalisés automatiquement (0601020304 devient 33601020304), plusieurs destinataires se séparent par des tirets, et chaque appel est enregistré dans l'historique avec l'origine que vous indiquez.

Le code source complet est public sur GitHub (dossier integrations/dolibarr). Les codes réponse et le retour des accusés de réception par HTTP sont détaillés dans la documentation technique.

Questions fréquentes

Comment vérifier que la connexion à l'API fonctionne ?

L'écran de configuration comporte un bouton Tester la connexion : il réalise un envoi à blanc (aucun SMS envoyé, aucun crédit débité) et affiche un diagnostic complet : identifiants renseignés, extension cURL de PHP, proxy Dolibarr éventuel, jointure de www.123-sms.net avec le code HTTP et le temps de réponse, validité des identifiants, solde du compte, réponse brute de l'API et verdict. C'est le premier réflexe en cas de problème d'envoi. La réponse attendue d'un envoi à blanc est le code 92, qui signifie « test d'envoi concluant ».

Les rappels de rendez-vous ne partent pas : par où commencer ?

Dans l'ordre, l'onglet Rappels et relances de la configuration répond aux trois questions possibles. Le tableau État des tâches planifiées indique si la tâche est activée et quand elle a tourné pour la dernière fois : si elle est active mais « jamais exécutée », c'est le cron de Dolibarr qui n'est pas en service côté serveur. Le bouton Tester la sélection montre les rendez-vous qui seraient traités maintenant, le numéro trouvé pour chacun et, s'il n'y en a aucun, la raison (hors fenêtre, type non retenu, aucun numéro). Enfin Simuler maintenant joue la tâche et affiche son journal complet, sans envoyer ni débiter quoi que ce soit.

Je ne vois pas le type d'événement dans Dolibarr : pourquoi ?

Dolibarr n'affiche le champ Type sur les fiches d'événement que si l'option « Utiliser les types d'événements » du module Agenda est activée. Tant qu'elle ne l'est pas, tous vos événements sont du type « Autre » et un filtre par type ne peut rien sélectionner. Deux solutions : activer cette option dans la configuration du module Agenda, ou cocher « Tous les types d'événements » dans le module 123-SMS. La configuration détecte le cas et propose un lien direct vers le réglage concerné.

Comment écarter un rendez-vous précis, ou en inclure un ?

Chaque fiche d'événement porte une case Rappel SMS. Elle est cochée d'office lorsque le type de l'événement est concerné par les rappels : la décocher écarte ce rendez-vous précis. À l'inverse, la cocher sur un événement dont le type n'est pas retenu envoie quand même le rappel. Tant que personne ne la modifie, la fiche suit le réglage général : si vous ajoutez plus tard un type à la configuration, tous les événements de ce type suivront.

Comment envoyer un SMS à toute une liste de clients ?

Sur la liste des tiers ou des contacts, filtrez comme d'habitude, cochez les lignes voulues, puis choisissez l'action de masse « Envoyer un SMS (123-SMS) ». La page d'envoi en masse récapitule les destinataires joignables, signale ceux qui n'ont pas de numéro, accepte des numéros libres en complément et propose un envoi à blanc pour vérifier avant de débiter. Les variables {societe}, {contact} et {masociete} personnalisent chaque message ; sans variable, les numéros sont regroupés par paquets pour accélérer l'envoi. La limite est de 500 destinataires par envoi.

Peut-on savoir si le SMS a bien été reçu ?

Oui. Cochez « Demander les accusés de réception » dans les options avancées du module : chaque SMS part alors avec l'option refaccuse et la passerelle rappelle votre Dolibarr pour indiquer si le message a été remis. Le statut (Remis, Non remis, En attente) apparaît dans une colonne supplémentaire de l'historique. Deux conditions : cocher l'option, et communiquer à 123-SMS l'URL de retour affichée juste en dessous. Un bouton vérifie cette URL depuis votre serveur avant que vous ne la transmettiez. Elle n'accepte que la mise à jour d'un envoi déjà enregistré, ne crée jamais de donnée et peut être protégée par une clé.

Que signifient les codes de retour 80, 92 ou 101 ?

Les 23 codes de l'API 123-SMS sont traduits en clair par le module, dans l'historique comme dans les journaux, et listés dans l'onglet Aide de la configuration. Trois valent succès : 80 le message a été envoyé, 81 il est enregistré pour un envoi en différé, 92 le test d'envoi est concluant (réponse normale d'un envoi à blanc). Les plus utiles ensuite : 82 identifiants invalides, 83 crédit insuffisant, 84 numéro invalide, 91 doublon sous 24 h, 96 adresse IP non autorisée, 97 Sender-ID non déclaré, 101 numéro blacklisté après un STOP.

Le module n'apparaît pas dans la liste des modules : pourquoi ?

Dans 9 cas sur 10, le répertoire custom/ n'est pas activé dans htdocs/conf/conf.php : les lignes $dolibarr_main_url_root_alt et $dolibarr_main_document_root_alt doivent exister sans // devant, avec le bon chemin. Ensuite : vérifiez que le fichier htdocs/custom/sms123/core/modules/modSms123.class.php existe bien à cet emplacement exact, que le serveur web a les droits de lecture sur le dossier, puis purgez le cache de Dolibarr (Accueil › Configuration › Divers) et rechargez la page.

La roue crantée de configuration renvoie une erreur 404 : que faire ?

L'URL affichée est /sms123/admin/setup.php au lieu de /custom/sms123/admin/setup.php. Dans la quasi-totalité des cas, la racine URL des modules externes est vide dans conf.php alors que la racine fichiers est correcte : Dolibarr trouve donc le module (il s'active) mais ne sait pas construire son adresse. Vérifiez que $dolibarr_main_url_root_alt = '/custom'; et $dolibarr_main_document_root_alt sont bien renseignés, et surtout qu'aucun des deux n'est redéfini plus bas dans le fichier (certaines installations automatisées ajoutent un second bloc qui écrase le premier avec une valeur vide). En attendant, la page de configuration reste accessible en direct à l'adresse /custom/sms123/admin/setup.php.

Le menu « Outils › SMS 123-SMS » n'apparaît pas : que faire ?

Les entrées de menu sont enregistrées en base au moment de l'activation du module. Si vous avez mis à jour le module après l'avoir activé, désactivez-le puis réactivez-le dans Configuration › Modules (vos identifiant et clé API sont conservés). Vérifiez aussi que l'utilisateur dispose de la permission « Envoyer des SMS via 123-SMS » (un administrateur l'a d'office). Le menu se trouve dans le menu du haut Outils, colonne de gauche : il n'apparaît qu'après avoir cliqué sur Outils. La page reste accessible en direct à /custom/sms123/sms123index.php.

Avec quelles versions de Dolibarr le module est-il compatible ?

Le module suit le squelette standard des modules Dolibarr et est développé pour Dolibarr 16 et plus, en PHP 7.0 à 8.4. Le multi-entités est supporté (configuration par entité) et l'interface est disponible en français et en anglais. Comme pour tout module, testez d'abord sur votre instance de pré-production.

Comment envoyer des SMS automatiques (relance de facture, commande prête) ?

Sans écrire une ligne de code : dans la configuration du module, cochez les événements de Dolibarr qui doivent déclencher un SMS (commande validée, facture validée, facture payée, expédition validée, devis validé), choisissez le destinataire (le client ou votre numéro interne) et rédigez le message avec les variables {ref}, {societe}, {total}, {date} et {masociete}. Pour un besoin sur mesure, la classe Sms123Api s'appelle en une ligne depuis vos propres triggers, crons ou scripts : Sms123Api::envoyer($numero, $message). Et si vous préférez déléguer, 123-SMS développe gratuitement des adaptations spécifiques — contactez-nous.

Où trouver l'identifiant et la clé API ?

Ils sont transmis par e-mail à l'inscription sur 123-SMS.net, et lors de chaque régénération de la clé (espace client › API). La clé se régénère en un clic en cas de doute.

Les numéros doivent-ils être au format international ?

Non : le module normalise automatiquement les numéros français (0601020304 devient 33601020304) et accepte plusieurs destinataires séparés par des tirets. Espaces et points sont retirés. Pour les envois automatiques, le numéro est cherché sur la fiche : contact lié à l'événement (mobile, personnel, professionnel) puis tiers (mobile, téléphone), le premier champ renseigné l'emportant.

Combien coûte le module ?

Le module est gratuit (licence MIT, code source ouvert). Seuls les SMS envoyés sont débités de vos crédits 123-SMS prépayés — sans abonnement ni date d'expiration, prix dégressifs de 0,23 à 0,075 € HT.

Testez avec votre propre besoin

5 SMS offerts pour votre essai, sur simple demande : dites-nous que vous voulez tester le module Dolibarr, et nous créditons votre compte professionnel le temps de valider votre intégration en conditions réelles. Offre réservée aux professionnels : entreprises, associations et collectivités.

Demander 5 SMS de test Inscription gratuite Contacter l'équipe

Téléchargement

Module Dolibarr (.zip)

Version 2.5.1 — Dolibarr 16+, PHP 7.0 à 8.4.
Licence MIT — libre et gratuit.
Même archive que celle publiée sur le Dolistore.

L'essentiel

  • API HTTPS en un appel : identifiant, clé API, numéro, message.
  • Code réponse immédiat + accusés de réception par HTTP.
  • Crédits prépayés sans abonnement ni expiration.
  • Adaptations spécifiques développées gratuitement.