Comment tirer parti des interfaces de programmation (API) de Dolibarr afin de créer des flux de travail intégrés, collaboratifs et adaptés aux équipes hybrides.
1. Introduction
Dans un contexte où le travail à distance, le « work‑from‑anywhere » et les environnements mixtes (présentiel + numérique) sont devenus la norme, les entreprises recherchent des solutions ERP légères, modulables et facilement intégrables. Dolibarr se démarque comme un ERP/open‑source à la fois complet et simple à prendre en main, idéal pour les PME, les start‑ups ou les équipes de projet qui souhaitent éviter la complexité des solutions lourdes.
L’un des atouts majeurs de Dolibarr est son API RESTful (et SOAP dans les versions antérieures) permettant d’interconnecter l’outil avec d’autres logiciels (CRM, plateformes de facturation, outils de suivi de temps, systèmes de messagerie, etc.). Cette API ouvre la porte à la création de connecteurs personalisés et à l’automatisation de processus pour les équipes hybrides.
Cet article propose :
- Un rappel rapide des fonctionnalités clés de Dolibarr. 2. Une présentation détaillée de son API (architecture, endpoints, authentification).
- Les différents types de connecteurs possibles et les meilleures pratiques pour les développer.
- Une étude de cas illustrée par deux scénarios réalistes d’équipes hybrides. 5. Des conseils d’implémentation, de sécurité et d’optimisation. —
2. Dolibarr en bref : fonctionnalités majeures
| Module | Description | Utilité pour les équipes hybrides |
|---|---|---|
| Gestion commerciale | Devis, factures, devis, commandes, paiements | Centralise les échanges clients/fournisseurs, même à distance. |
| Gestion financière | Comptes bancaires, rapprochements, fiscalité | Garantit la traçabilité financière à travers plusieurs sites ou bureaux virtuels. |
| Gestion des ressources humaines | Contracts, temps de travail, absences | Facilite le suivi des collaborateurs répartis sur plusieurs fuseaux horaires. |
| Gestion de la logistique | Stocks, livraisons, entrepôts | Permet une visibilité en temps réel des ressources physiques et virtuelles. |
| CRM | Fiches clients, historiques d’interactions | Améliore la coordination entre équipes terrain et support client. |
| Gestion de projet | Tâches, Wang, planning | Outil de suivi de projet partagé entre collaborateurs sur site et en télétravail. |
Ces modules sont tous interconnectés via une base de données unique (MySQL/PostgreSQL) et exposés via des endpoints API normalisés, ce qui simplifie la création de connecteurs.
3. L’API de Dolibarr : architecture et accès
3.1. Modèle d’API
Dolibarr propose deux modes d’accès :
| Mode | Description | Avantages |
|---|---|---|
| REST (depuis Dolibarr 7) | Ressources exposées sous forme de JSON ou XML via des URLs en style /api/mlmodule/action/id |
Simplicité d’utilisation, compatibilité avec les frameworks modernes, cache facile. |
| SOAP (version 6) | Méthodes WSDL exposées, utiles pour les environnements legacy | Compatibilité avec des outils existants, support de l’échange de messages structurés. |
Endpoint générique (REST) :
https://votre-entreprise.org/dolibarr/api.php?app={module}&request={action}&{parameters}
- {module} :
customer,invoice,product,user, etc. – {action} :list,get,create,update,delete. - {parameters} : filtres, champs à renvoyer, options de pagination.
3.2. Authentification
L’API utilise l’authentification à base de token :
- Génération du token via
/api.php?login=login&pass={MD5(password)} - En-tête
Authorization: Bearer <token>ou paramètretoken=dans chaque appel.
Bon à savoir : Le token possède une durée de vie configurable (par défaut 30 jours) et peut être révoqué par le module Security.
3.3. Principaux endpoints et exemples d’appels
| Module | Action | Exemple d’appel GET | Résultat |
|---|---|---|---|
user |
list |
api.php?app=user&request=list&key=YOURTOKEN |
Liste des utilisateurs (JSON). |
product |
get |
api.php?app=product&request=get&mainid=12&key=YOURTOKEN |
Détails du produit 12. |
invoice |
create |
api.php?app=invoice&request=create&key=YOURTOKEN Corps : {"socid":"1","date":"2025-10-15","fk_user_author":"2","lines":[{"fk_product":"4","label":"Widget","qty":"5","price":"15.00"}]} |
Création d’une facture. |
customer |
search |
api.php?app=customer&request=search&search=Dupont&key=YOURTOKEN |
Recherche de clients contenant "Dupont". |
Ces appels sont stateless : chaque requête contient toutes les informations nécessaires, ce qui facilite le scaling horizontal et la mise en cache côté client.
4. Types de connecteurs possibles
Les équipes hybrides peuvent exploiter les connecteurs pour :
| Scénario | Type de connecteur | Points clés |
|---|---|---|
| Synchronisation CRM ↔️ Dolibarr | Connecteur bidirectionnel (webhooks + polling) | Gestion des champs supplémentaires, résolution des conflits (last‑write‑wins ou merge). |
| Facturation automatisée avec un service de paiement | Webhook de paiement + appel API createInvoice |
Gestion des statuts de paiement, notifications Slack ou Teams. |
| Suivi du temps de travail via Toggl ou Clockify | Sync de temps → timesheet ou hours |
Calcul du coût par projet, rapprochement comptable. |
| Gestion des assets (ordinateurs, périphériques) | Connecteur via QR‑code scanner ou intégration Odoo/ERP externe | Inventaire en temps réel, affectation dynamique. |
| Notifications multicanal | Connector personnalisé (Node JS/Python) | Envoi de mails, SMS, messages Teams ou Discord selon les actions Dolibarr (commande, facture émise). |
| Gestion des déploiements CI/CD | API de création de tache → task module |
Déclenchement d’une pipeline Jenkins lorsqu’un devellopeur crée une issue ou un pull request dans Dolibarr. |
4.1. Bonnes pratiques de développement de connecteurs | Pratique | Description |
|———-|————-|
| Versionner l’API | Utiliser le préfixe /v1/ ou les paramètres api_version pour éviter les ruptures rétrocompatibles. |
| Gestion des erreurs HTTP | Codifier les réponses selon la spec REST (200 OK, 201 Created, 400 Bad Request, 401 Unauthorized, 500 Server Error). |
| Limitations de taux (rate‑limit) | Implémenter des back‑off exponentiel pour éviter la surcharge du serveur. |
| Sécuriser les tokens | Stocker les tokens dans des coffres (HashiCorp Vault, AWS Secrets Manager) et les renouveler régulièrement. |
| Utiliser les webhooks | Préférer les webhooks pour les notifications en temps réel plutôt que le polling fréquent. |
| Tests automatisés | Intégrer des suites de tests (PHPUnit, Postman/Newman) pour valider chaque endpoint utilisé. |
| Documentation Swagger/OpenAPI | Produire une documentation auto‑générée pour faciliter l’onboarding des développeurs internes ou partenaires. |
5. Étude de cas : Deux scénarios d’équipes hybrides ### 5.1. Cas 1 – Start‑up SaaS « CloudDesk » (15 personnes, 3 pays)
5.1.1. Contexte
- Équipe produit (développeurs) basée à Berlin, équipe support client à Sofia, direction financière à Paris.
- Besoin de gérer les contrats, devis, factures, et suivi des tickets clients.
- Utiliser un CRM externe (HubSpot) pour la prospection et Dolibarr pour la facturation.
5.1.2. Architecture proposée
| Composant | Fonction | Connecteur |
|---|---|---|
| HubSpot | Gestion des leads et des opportunités | Connecteur REST : récupère les contacts créés → crée un customer Dolibarr via api.php?app=customer&request=create. |
| Stripe | Paiement en ligne | Webhook Stripe → appelle api.php?app=invoice&request=create pour générer une facture, puis request=update sur le paiement. |
| Slack | Notifications instantanées | Connecteur personnalisé (Node.js) qui écoute les webhooks Stripe et envoi un message à #finance. |
| Google Calendar | Planification des réunions clients | Sync bidirectionnelle via Google Apps Script qui met à jour les events Dolibarr (task module). |
5.1.3. Flux opérationnel
- Un lead crée dans HubSpot → webhook déclenche l’API Dolibarr pour créer un customer.
- Le client accepte l’offre → action “Convertir en contrat” dans HubSpot → API crée un invoice dans Dolibarr avec les lignes correspondantes.
- Le paiement via Stripe arrive → webhook ajoute la transaction à la facture (
amount_paid), marque la facture comme payée. - Slack reçoit l’événement “Facture payée” et publie un récapitulatif dans le canal
#accounting. - Le manager ajoute une réunion client via Google Calendar → script met à jour la tâche liée (
task_id) dans Dolibarr, visibles par toute l’équipe.
5.1.4. Bénéfices tangibles
- Réduction de 30 % du temps de facturation grâce à l’automatisation.
- Visibilité en temps réel du statut des paiements pour la direction (tableau de bord BI).
- Collaboration fluide entre les équipes réparties sur trois fuseaux horaires, aucune perte d’information.
5.2. Cas 2 – PME industrielle « MECH‑Tech » (80 personnes, 5 sites)
5.2.1. Contexte
- Production dans plusieurs ateliers (France, Allemagne, Pologne).
- Besoin de suivre les stocks, les interventions de maintenance et les factures fournisseurs.
- Équipes terrain utilisant des tablettes Android, bureau centralisé à Paris.
- Utilisation d’un système de suivi de tickets de maintenance externe (Grafikart).
5.2.2. Architecture proposée
| Source/Destination | Connecteur | Description |
|---|---|---|
| Tableau Android (scanner QRCode) | Connecteur API Mobile | Envoie le product_id scanné → met à jour le stock (product.stock). |
| Grafikart (maintenance) | Connector bidirectionnel | Une tâche de maintenance crée un invoice fournisseur automatiquement (via supplier module) et consigne le temps passé dans le timesheet Dolibarr. |
| Microsoft Teams | Webhook → Messages de service | Les changements de statut (ex. "En cours", "Terminé") sont postés dans le channel #maintenance. |
| ERP externe (SAP) | Connecteur périodique (ETL) | Extraction nightly des stocks (product.stock) → import dans SAP via fichier CSV généré par script Python. |
5.2.3. Flux opérationnel détaillé
- Un technicien scanne le QR‑code d’un équipement → l’app mobile envoie
POST /api.php?app=product&request=update&key=TOKENavec le nouveau nombre de pièces en stock. - La mise à jour est immédiatement visible sur le tableau de bord centralisé accessible depuis chaque site.
- Lorsqu’une panne est enregistrée dans Grafikart, un ticket est créé → le connecteur déclenche la création d’un bon de commande vers le fournisseur concerné.
- Le temps passé est récupéré via l’API
timesheetet ajouté à la facture interne du service maintenance. - À la clôture du ticket, le système envoie un message récapitulatif dans Teams, contenant le lien vers la fiche technique du produit.
- Chaque nuit, le script ETL récupère les mouvements de stock et les consigne dans SAP pour la comptabilité analytique.
5.2.4. Bénéfices mesurés
- Gain de 22 % sur le temps de gestion des stocks (plus besoin de saisie manuelle).
- Diminution de 15 % du nombre de litiges fournisseurs grâce à la traçabilité automatisée.
- Meilleure réactivité des équipes terrain (temps moyen de résolution de panne passé de 3 h à 1,8 h).
6. Guide de mise en œuvre pas à pas
Objectif : Déployer un connecteur simple qui synchronise les contacts d’un CRM externe (exemple : « CRM‑X ») avec le module customer de Dolibarr.
6.1. Prérequis
- Accès à l’API : Activer l’API dans la configuration de Dolibarr (
Administration → Settings → API). - Création d’un token : Via l’interface Administration → Parameters → API Keys.
- Environnement de développement : Node.js ≥ 18 ou Python ≥ 3.10, avec un framework léger (Express, FastAPI).
- Sécurité : Utiliser un secret stocké dans un gestionnaire (ex. AWS Secrets Manager).
6.2. Étape 1 – Récupération des contacts du CRM
// Exemple Node.js avec axios
const axios = require('axios');
const qs = require('querystring');
async function fetchContacts() {
const response = await axios.get('https://crm-x.example.com/api/v1/contacts', {
headers: { Authorization: `Bearer ${process.env.CRM_TOKEN}` },
params: { per_page: 100 }
});
return response.data; // tableau d'objets contact
}
6.3. Étape 2 – Mapping des champs vers Dolibarr
| Champ CRM | Champ Dolibarr | Transformation |
|---|---|---|
first_name |
firstname |
Direct |
last_name |
lastname |
Direct |
email |
email |
Direct |
company |
company |
Direct |
phone |
phone |
Direct |
address |
address |
Concaténation JSON (city, zip, country). |
6.4. Étape 3 – Envoi de la requête create à Dolibarr
``javascriptasync function createCustomer(customer) { const payload = { fields: { "socid": "0", // ID du client (0 = création) "name":${customer.first_name} ${customer.last_name}`,
"ref": customer.email,
"email": customer.email,
"phone": customer.phone,
"address": JSON.stringify(customer.address)
},
token: process.env.DOLIBARR_TOKEN // token API généré
};
const res = await axios.post(
${process.env.DOLIBARR_URL}/api.php?app=customer&request=create,
payload
);
return res.data;
}
### 6.5. Étape 4 – Gestion des réponses et retries
```javascript
async function syncAll() {
const contacts = await fetchContacts();
for (const c of contacts) {
try {
const result = await createCustomer(c);
console.log(`Créé : ${result.customer_id}`);
} catch (e) {
if (e.response && e.response.status === 409) {
console.warn(`Déjà existant : ${c.email}`);
} else {
console.error('Erreur :', e.message);
// back‑off exponentiel ici
}
}
}
}
6.6. Étape 5 – Planification et monitoring – Cron ou AWS EventBridge toutes les heures.
- Logs structurés (JSON) envoyés vers un agrégateur (ELK, Loki).
- Alertes sur les taux d’erreur > 5 % via Prometheus + Alertmanager.
6.7. Étape 6 – Sécurisation & conformité
- Masquer le token dans les logs (
***). – Limiter l’accès à l’API à des IP de confiance (firewall). - Conserver les appels d’API en conformité avec le RGPD (anonymisation des champs sensibles).
7. Bonnes pratiques pour les équipes hybrides
| Thème | Recommandation |
|---|---|
| Communication | Centraliser les alertes (ex. création facture) dans un canal dédié Teams/Slack pour éviter les silos. |
| Gestion de version | Versionner les connecteurs (Git) et taguer chaqueAPI release de Dolibarr (ex. v7.2). |
| Documentation | Générer automatiquement la spec OpenAPI à partir des appels et la publier sur un Wiki interne. |
| Formation | Organiser des ateliers « API Dolibarr pour les non‑développeurs » afin que les chefs de projet comprennent les possibilités d’automatisation. |
| Scalabilité | Déployer les connecteurs dans des containers (Docker/K8s) avec réplication horizontale pour supporter la charge pendant les pics (ex. fin de mois comptable). |
| Sécurité | Faire auditer les tokens et les secrets par un pentester tous les 6 mois ; activer le mod_security côté serveur. |
| Observabilité | Mettre en place des métriques (latence, taux d’erreur) via Prometheus et visualiser via Grafana. |
| Backup | Periodiquement exporter les bases de données et les tables API (ex. api_cache) vers un bucket S3 versionné. |
8. Perspectives d’évolution
- API GraphQL (en cours d’expérimentation dans Dolibarr Next) – permettrait de requêter uniquement les champs nécessaires, réduisant le trafic réseau.
- Webhooks natifs – amélioration du mécanisme de notifications en temps réel (déjà présent mais avec possibilités d’event filtering par type).
- Machine Learning pour la suggestion d’actions – le système pourrait proposer automatiquement la création d’une facture ou d’un devis en fonction des patterns de création.
- Intégration IA pour la génération de texte – génération automatique de descriptions de produits ou de rapports d’activité à partir de données structurées.
Ces évolutions renforceront la capacité de Dolibarr à devenir le cœur collaboratif d’une équipe hybride, où chaque application externe se « parle » naturellement grâce à une API moderne et ouverte.
9. Conclusion
L’API de Dolibarr constitue un véritable catalyseur d’automatisation pour les équipes hybrides. En combinant :
- Une architecture REST simple et token‑based,
- Des connecteurs modulaires capables de s’interfacer avec CRM, paiement, gestion de temps, ou outils de communication,
- Des scénarios réels – comme la synchronisation automatisée de leads ou le suivi d’inventaire en temps réel –
les organisations peuvent :
- Réduire les tâches manuelles et les risques d’erreur,
- Améliorer la visibilité de l’ensemble des processus (commerciaux, financiers, logistiques),
- Faciliter la collaboration entre parties prenantes réparties géographiquement,
- Adapter rapidement les flux aux évolutions métier grâce à une implémentation itérative et versionnée.
En suivant les bonnes pratiques exposées – sécurisation des tokens, versionnage des API, tests automatisés, monitoring – les équipes hybrides disposent d’une base solide pour exploiter pleinement le potentiel de Dolibarr.
En résumé : l’API de Dolibarr n’est pas seulement un outil de programmation ; c’est le pont qui relie les différentes îles digitales d’une organisation dispersée, permettant à chaque membre de l’équipe de travailler de façon fluide, transparente et synchronisée, où qu’il soit.
À votre disposition pour approfondir les exemples concrets, créer des connecteurs sur mesure, ou accompagner votre transition vers des processus totalement intégrés.