Dolibarr +Stripe : Réussir la migration de paiement pour les équipes hybrides
Guide pratique pour une transition fluide, sécurisée et collaborative
1. Introduction – Pourquoi associer Dolibarr à Stripe ?
Dolibarr est un ERP/CRM open‑source très apprécié des PME et des associations pour sa simplicité d’administration et son extensibilité via modules. Stripe, quant à lui, est l’un des gateways de paiement les plus utilisés pour les transactions en ligne, grâce à sa facilité d’intégration, ses API riches et son support multi‑devise.
Pour les équipes hybrides (télétravailleurs, salariés en agence et travailleurs sur site), la dissociación entre la gestion des factures/abonnements dans Dolibarr et le traitement des paiements peut devenir une source de frictions : délais de suivi, erreurs de réconciliation, perte de visibilité financière.
Intégrer Stripe à Dolibarr crée un fil conducteur numérique : chaque vente, abonnement ou devis passe par un même système centralisé, ce qui réduit les tâches manuelles et renforce la confiance des équipes distribuées.
2. Architecture de la solution
+-------------------+ +-------------------+ +-------------------+
| Front‑office | <---> | API Stripe | <---> | Dolibarr |
| (site web, app) | | (REST) | | (CRM/ERP) |
+-------------------+ +-------------------+ +-------------------+
^ ^ ^
| | |
Paiement en ligne Webhooks Module Stripe
- Front‑office : interface de paiement hébergée par Stripe (Checkout, Payment Pages) ou bouton “payer en ligne” intégré à Dolibarr via le module dédié.
- API Stripe : communication sécurisée (HTTPS, authentification OAuth) pour créer des customers, des payment-intents, récupérer les webhooks.
- Dolibarr : module stripe qui expose un mapping des paiements, des factures, des abonnements et synchronise les États (payé, en attente, échoué).
3. Prerequisites (avant le démarrage)
| Élément | Détail | Pourquoi |
|---|---|---|
| Version Dolibarr | ≥ 12.0 (support natif des modules PHP) | Garantit la compatibilité du module Stripe |
| Compte Stripe | Pro (ou test) avec accès aux API | Nécessaire pour créer des comptes, des payment‑intent, etc. |
| Clé API | Publishable + Secret (test + live) | Séparer dev / prod évite les mauvaises configurations |
| Serveur HTTPS | Certificat valide (Let’s Encrypt) | Obligatoire pour les webhooks Stripe |
| Accès administrateur | Droits d’édition de modules et de paramètres | L’installation du module nécessite des droits d’administration |
| Sauvegarde | Export complet de la base + fichiers | Retour arrière en cas d’erreur de migration |
4. Phase 1 – Installation du module « stripe »
-
Téléchargement
- Rendez‑vous sur le Marketplace Dolibarr ou récupérez le module depuis le repository officiel :
https://github.com/Dolibarr/dolibarr-modules-contrib/stripe.
- Rendez‑vous sur le Marketplace Dolibarr ou récupérez le module depuis le repository officiel :
-
Déploiement
- Copiez le répertoire
stripedans/dolibarr/custom/modules/. - Activez le module via Administration → Modules → Gestion des modules.
- Copiez le répertoire
-
Configuration des clés
- Administration → Paiement → Stripe
Publishable Key→ clé publique (livrable)Secret Key→ clé secrète (livrable)Mode→ Test ou Live selon votre environnement.
- Administration → Paiement → Stripe
- Paramétrage avancé
- Devise par défaut : alignez sur la devise principale de Dolibarr (ex. : EUR, USD).
- Webhook URL :
https://votre-domaine.com/stripe_webhook(à enregistrer dans le Dashboard Stripe).
5. Phase 2 – Cartographie des processus hybrides
| Processus | Flux actuel | Rôle de Stripe | Rôle de Dolibarr |
|---|---|---|---|
| Vente directe (B2C) | Création de devis → facture PDF → paiement manuel | Créer un payment‑intent à la validation du devis | Enregistre la facture, passe l’état à payé via webhook |
| Abonnement mensuel | Facturation récurrente → paiement automatisé | Subscription Stripe + renewal automatique | Gestion du cycle de facturation, rappel de renouvellement |
| Paiement sur site physique | Terminal de paiement hors‑ligne → saisie manuelle | N/A (pas utilisé) | Enregistrement manuel, mais idéalement on évite ce scénario |
Analyse clé : identifiez quels scénarios sont déjà couverts par Stripe et lesquels requièrent des adaptions (ex. : paiement hors‑ligne, devises multiples). Priorisez la migration qui impacte le plus les équipes hybrides (ex. : création de devis depuis le terrain).
6. Phase 3 – Migration des données (sans pertes)
-
Export des devis/factures existants
- Utilisez l’outil Export CSV de Dolibarr pour récupérer les lignes, montants, dates.
- Tip :andez un champ
stripe_customer_idvide afin de le peupler lors du passage en production.
-
Création des customers Stripe en lot
« `php foreach ($dolibarr_customers as $c) {
$customer = \Stripe\Customer::create([
’email’ => $c->email,
‘name’ => $c->name,
‘metadata’ => [‘dolibarr_id’ => $c->id],
]);
// Sauvegarde de l’ID Stripe dans un champ custom de Dolibarr
$c->stripe_customer_id = $customer->id;
$c->update(‘stripe_customer_id’);
}
- **Bonnes pratiques** : conservez un journal (log) de chaque appel API pour pouvoir retrouver les erreurs. -
Mappage des produits/Services
- Dans Stripe, créez un Product pour chaque ligne de prix Dolibarr (ex. : ‘Consulting 2025’, ‘Licence logiciel’).
- Ajoutez le
dolibarr_product_iddans les métadonnées du produit pour faciliter la remontée inverse.
-
Synchronisation des factures
- Créez une lettre de crédit (Invoice) via l’API Stripe ou via le module Dolibarr :
POST /v1/invoiceitems→ ajoute les lignes de prix.POST /v1/invoices→ génère la facture aveccustomeretitems.
- Exportez l’ID de la facture (
invoice.id) et stockez‑le dans le champstripe_invoice_idde Dolibarr.
- Créez une lettre de crédit (Invoice) via l’API Stripe ou via le module Dolibarr :
- Gestion des abonnements (si applicable)
- Décidez du billing cycle (periodic vs. one‑time).
- Utilisez l’endpoint
POST /v1/subscriptionavec les métadonnéesdolibarr_subscription_id. - Activez les webhooks
invoice.payment_failed,customer.subscription.updatedpour mettre à jour les statuts dans Dolibarr.
7. Phase 4 – Mise en place des webhooks sécurisés (hybrides)
Les webhooks sont le mécanisme clé pour que Dolibarr reste à jour lorsqu’un paiement est effectué hors‑interface Dolibarr (ex. : paiement depuis un téléphone ou un terminal de paiement sur site).
Étapes de configuration
-
Création du endpoint
/stripe_webhook.php(dans le répertoire du module).- Autorise uniquement les IP du serveur Stripe (facultatif) et vérifie la signature :
$payload = @file_get_contents('php://input');
$sig_header = $_SERVER['HTTP_STRIPE_SIGNATURE'];
$event = \Stripe\Webhook::constructEvent(
$payload, $sig_header, $stripe_secret_key );
-
Gestion des différents événements
checkout.session.completed→ crée/actualise la facture.payment_intent.succeeded→ marque la ligne de facture comme payée.customer.subscription.created→ ajoute le champstripe_subscription_id.invoice.payment_failed→ met à jour le statut d’échec dans Dolibarr et envoie un mail d’avertissement.
-
Déploiement HTTPS
- Utilisez un certificat Let’s Encrypt.
- Testez localement avec le CLI
stripe listen --forward-to localhost/stripe_webhook.
- Réplication sur les environnements Hybrides
- Pour les équipes qui utilisent un serveur de test distant, créez un tunnel Ngrok ou Cloudflare Tunnel qui expose le point d’entrée
/stripe_webhook. - La même URL doit être utilisée en production ; seules les clés API changent (test → live).
- Pour les équipes qui utilisent un serveur de test distant, créez un tunnel Ngrok ou Cloudflare Tunnel qui expose le point d’entrée
8. Phase 5 – Validation et tests de bout en bout
| Test | Description | Résultat attendu |
|---|---|---|
| Création d’un client | Via Dolibarr + API Stripe | stripe_customer_id sauvegardé et visible côté Stripe |
| Création d’un paiement | Depuis la page de facturation | Webhook déclenché, facture passe en payée |
| Abonnement | Facturation récurrente | Souscription créée, prospectif de factures suivantes |
| Échec de paiement | Simuler un payment_intent.declined |
Statut « échoué » mis à jour, alerte email envoyée |
| Scénario hors‑ligne | Paiement via QR code (Stripe Terminal) puis vérification dans Dolibarr | Transaction visible dans le tableau de bord Payments |
Automatisation : ajoutez ces scénarios dans votre pipeline CI (Docker + PHPUnit) pour détecter toute régression lors des mises à jour de Dolibarr ou de l’API Stripe.
9. Gestion des équipes hybrides : bonnes pratiques de gouvernance
- Documentation partagée (Confluence, Notion)
- Sections : Installation, FAQ, Glossaire des webhooks, Guide de dépannage.
- Formation snella (Webinars de 30 min)
- “Comment créer un devis et le transformer en facture Stripe”.
- “Interpréter les logs Stripe dans Dolibarr”.
- Suivi centralisé (Dashboard Grafana ou Kibana)
- Métriques : volume de paiements, taux d’échec, latence webhook, montant en attente.
- Rôles & permissions
- Équipe technique : droits d’administration sur le module Stripe.
- Force commerciale : lecture seule du CRM avec affichage des statuts de paiement. – Support client : accès aux logs de transaction pour gérer les litiges.
- Gestion des changements
- Branchez un feature flag (ex. :
STRIPE_ENABLED) dans le .env pour activer/désactiver le module sans toucher à la base de données. - Utilisez GitFlow :
feature/stripe-integration→release/v2.3→master.
- Branchez un feature flag (ex. :
10. Sécurité & conformité
| Risque | Mesure d’atténuation |
|---|---|
| Exposition des clés API | Stocker STRIPE_SECRET_KEY dans le .env en dehors du dépôt git ; mettre les permissions à 640. |
| Injection de données via les webhooks | Valider stripe_signature et accepter uniquement les événements stripe-webhook. |
| Non‑conformité PCI‑DSS | Ne collectez jamais les données de carte directement ; laissez Stripe gérer le tokenisation via Checkout/Payment Pages. |
| Contrôle du GDPR | Utilisez les champs metadata de Stripe pour stocker uniquement les identifiants Dolibarr; ne conservez pas d’informations personnelles sensibles. |
| Mise à jour de sécurité | Planifiez une revue trimestrielle des dépendances (PHP, Stripe SDK) et appliquez les patches rapidement. |
11. Retour sur investissement (ROI) pour les équipes hybrides
| Indicateur | Avant migration | Après migration (6 mois) | Gain |
|---|---|---|---|
| Temps moyen de réconciliation | 2 h / jour | 20 min / jour | -83 % |
| Erreur de facturation | 3 % des factures | <0,2 % | -95 % |
| Coût de traitement des paiements | 1,8 % du panier | 1,2 % du panier | -33 % |
| Satisfaction des équipes (internal survey) | 65 % | 88 % | +23 pts |
Conclusion rapide : la migration réduit les tâches administratives répétitives, diminue les risques d’erreur financière et permet une visibilité temps réel sur les flux de trésorerie, un atout décisif pour les équipes dispersées.
12. Étapes de déploiement résumées (check‑list)
- Pré‑préparation → sauvegarde, versionnement, comptes Stripe.
- Installation du module →
/custom/modules/stripe. - Configuration → clés API, webhook URL, devises.
- Cartographie des processus → identifier les scénarios à migrer.
- Migration des données → customers, produits, factures.
- Mise en place des webhooks → endpoint sécurisé, tests locaux.
- Validation end‑to‑end → jeux de test automatisés.
- Formation & documentation → équipes commerciales, support, développeurs.
- Passage en production → bascule progressive (mode Test → Live).
- Suivi continu → dashboard, alertes, revue mensuelle des logs.
13. Conclusion
L’association Dolibarr + Stripe représente le pont idéal entre la gestion administrative des équipes hybrides et leurs besoins de paiement en ligne moderne. En suivant le processus détaillé ci‑dessus — installation, cartographie, migration, webhook sécurisé, testing rigoureux et gouvernance partagée—vous évitez les pièges classiques (doublons de données, perte de visibilité, failles de sécurité) tout en bénéficiant d’un système financier unifié, automatisé et évolutif.
Que votre équipe travaille depuis un bureau, un coworking ou un véhicule, la solution garantit que chaque devis, facture ou abonnement passe par le même canal de paiement, ce qui simplifie la vie de vos collaborateurs et renforce la confiance de vos clients.
À vous de jouer : commencez par le pilotage d’un seul produit (ex. : abonnement mensuel) dans votre environnement de test, validez le flux complet, puis étendez progressivement à l’ensemble de votre catalogue. Vous serez alors prêts à offrir une expérience de paiement fluide à chaque membre de votre équipe, où qu’ils se trouvent.
Article rédigé par [Votre Nom] – consultant ERP/CRM & expert Stripe, 2025
Pour toute question technique ou assistance à l’intégration, n’hésitez pas à nous contacter via : support@votre‑entreprise.com