# InfraS2Bridge

<span>Intégration de la solution de paiement Bridge pour </span>***Dolibarr***

# 1. PRÉSENTATION DU MODULE

# Présentation du module

[![Infras2bridge.png](https://wiki.infras.fr/uploads/images/gallery/2026-02/scaled-1680-/jZhL50hL1MySjSEA-infras2bridge.png)](https://wiki.infras.fr/uploads/images/gallery/2026-02/scaled-1680-/jZhL50hL1MySjSEA-infras2bridge.png)

***InfraS2Bridge** <span style="white-space: pre-wrap;">est un module développé par </span>**InfraS**<span style="white-space: pre-wrap;"> pour intégrer la solution de paiement </span>**Bridge**<span style="white-space: pre-wrap;"> dans </span>***Dolibarr***<span style="white-space: pre-wrap;"> ERP &amp; CRM. Il permet de générer automatiquement des liens de paiement sécurisés pour vos factures clients et de recevoir les paiements en ligne directement via votre compte Bridge.</span>

#### **1.FONCTIONNALITÉS PRINCIPALES**

- **Génération automatique de liens de paiement**<span style="white-space: pre-wrap;"> lors de la validation de factures</span>
- **Affichage d'un QR code**<span style="white-space: pre-wrap;"> scannable par smartphone</span>
- **Notifications automatiques**<span style="white-space: pre-wrap;"> via webhooks lors des paiements</span>
- **Synchronisation automatique**<span style="white-space: pre-wrap;"> des paiements avec les factures </span>***Dolibarr***
- **Gestion des liens**<span style="white-space: pre-wrap;"> : révocation, liste complète, filtres</span>
- **Variables de substitution**<span style="white-space: pre-wrap;"> pour inclure les liens dans vos documents et emails</span>
- **Tâche planifiée**<span style="white-space: pre-wrap;"> pour synchroniser les paiements en continu</span>
- **Sécurité renforcée**<span style="white-space: pre-wrap;"> : validation HMAC SHA-256, whitelist IP</span>

#### **2.AVANTAGES**

***Pour l'entreprise***

- - Réduction des délais de paiement
    - Automatisation complète
    - Suivi en temps réel
    - Sécurité maximale

***Pour vos clients***

- - Paiement rapide et simple
    - Plusieurs moyens de paiement
    - Interface intuitive
    - Paiement depuis smartphone (QR)

# 10. PERMISSIONS ET DROITS D'ACCÈS

# PERMISSIONS ET DROITS D'ACCÈS

<span style="white-space: pre-wrap;">Le module </span>***InfraS2Bridge*** <span style="white-space: pre-wrap;">utilise le système de permissions standard de </span>***Dolibarr***<span style="white-space: pre-wrap;"> pour contrôler l'accès aux différentes fonctionnalités. Chaque utilisateur peut se voir attribuer des permissions spécifiques selon son rôle dans l'organisation.</span>

#### **1.PERMISSIONS DISPONIBLES**

<table id="bkmrk-permissiondescriptio" style="width: 100%; border-collapse: collapse;"><colgroup><col style="width: 245px;"></col><col style="width: 494px;"></col><col style="width: 15%;"></col></colgroup><tbody><tr style="background-color: rgb(245, 245, 245);"><td style="padding: 10px; border: 1px solid rgb(221, 221, 221); font-weight: 600; color: rgb(51, 51, 51); width: 40%;">**Permission**

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221); font-weight: 600; color: rgb(51, 51, 51);">**Description**

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221); font-weight: 600; color: rgb(51, 51, 51); width: 15%;">**Par défaut**

</td></tr><tr style="background-color: white;"><td style="padding: 10px; border: 1px solid rgb(221, 221, 221); color: rgb(3, 169, 244); font-weight: 600;">Accès aux menus InfraS2Bridge

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221); color: rgb(102, 102, 102);">Permet de voir les menus du module dans Outils → InfraS-2

</td><td class="align-center" style="padding: 10px; border: 1px solid rgb(221, 221, 221); color: rgb(76, 175, 80); font-weight: 600; text-align: center;">Oui

</td></tr><tr style="background-color: rgb(249, 249, 249);"><td style="padding: 10px; border: 1px solid rgb(221, 221, 221); color: rgb(3, 169, 244); font-weight: 600;">Accès aux paramètres du module

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221); color: rgb(102, 102, 102);">Permet de modifier la configuration (Client ID, Secret, etc.)

</td><td class="align-center" style="padding: 10px; border: 1px solid rgb(221, 221, 221); color: rgb(244, 67, 54); font-weight: 600; text-align: center;">Non

</td></tr><tr style="background-color: white;"><td style="padding: 10px; border: 1px solid rgb(221, 221, 221); color: rgb(3, 169, 244); font-weight: 600;">Sauvegarder/Restaurer paramètres

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221); color: rgb(102, 102, 102);">Permet d'exporter et importer les paramètres du module

</td><td class="align-center" style="padding: 10px; border: 1px solid rgb(221, 221, 221); color: rgb(244, 67, 54); font-weight: 600; text-align: center;">Non

</td></tr><tr style="background-color: rgb(249, 249, 249);"><td style="padding: 10px; border: 1px solid rgb(221, 221, 221); color: rgb(3, 169, 244); font-weight: 600;">Voir les liens de paiement

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221); color: rgb(102, 102, 102);">Permet d'accéder à la liste des liens de paiement dans Banque → InfraS2Bridge

</td><td class="align-center" style="padding: 10px; border: 1px solid rgb(221, 221, 221); color: rgb(244, 67, 54); font-weight: 600; text-align: center;">Non

</td></tr><tr style="background-color: white;"><td style="padding: 10px; border: 1px solid rgb(221, 221, 221); color: rgb(3, 169, 244); font-weight: 600;">Voir les transactions

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221); color: rgb(102, 102, 102);">Permet de consulter le détail des transactions Bridge

</td><td class="align-center" style="padding: 10px; border: 1px solid rgb(221, 221, 221); color: rgb(244, 67, 54); font-weight: 600; text-align: center;">Non

</td></tr></tbody></table>

#### **2.ATTRIBUER DES PERMISSIONS**

***Pour un utilisateur***

1. <span style="white-space: pre-wrap;">Allez dans </span>**Accueil → Utilisateurs &amp; Groupes**
2. Sélectionnez l'utilisateur
3. <span style="white-space: pre-wrap;">Onglet </span>**"Permissions"**
4. <span style="white-space: pre-wrap;">Recherchez </span>**"*****InfraS2Bridge*****"**
5. Cochez les permissions souhaitées
6. <span style="white-space: pre-wrap;">Cliquez sur </span>**"Enregistrer"**

***Pour un groupe***

1. <span style="white-space: pre-wrap;">Allez dans </span>**Accueil → Utilisateurs &amp; Groupes → Groupes**
2. Sélectionnez le groupe
3. <span style="white-space: pre-wrap;">Onglet </span>**"Permissions"**
4. <span style="white-space: pre-wrap;">Recherchez </span>**"*****InfraS2Bridge*****"**
5. Cochez les permissions pour tout le groupe
6. Sauvegardez

#### **3.PROFILS TYPES**

**Administrateur**

**Rôle :**<span style="white-space: pre-wrap;"> Configuration et supervision complète du module</span>

**Permissions :**

- - - - [x] Accès aux menus InfraS2Bridge
            - [x] Accès aux paramètres du module
            - [x] Sauvegarder/Restaurer paramètres
            - [x] Voir les liens de paiement
            - [x] Voir les transactions

**Responsable commercial / Comptable**

**Rôle :**<span style="white-space: pre-wrap;"> Suivi des paiements et liens</span>

**Permissions :**

- - - - [x] Accès aux menus InfraS2Bridge
            - [ ] Accès aux paramètres du module
            - [ ] Sauvegarder/Restaurer paramètres
            - [x] Voir les liens de paiement
            - [x] Voir les transactions

**Utilisateur standard**

**Rôle :**<span style="white-space: pre-wrap;"> Création de factures uniquement</span>

**Permissions :**

- - - - [x] Accès aux menus InfraS2Bridge (pour voir changelog)
            - [ ] Accès aux paramètres du module
            - [ ] Sauvegarder/Restaurer paramètres
            - [ ] Voir les liens de paiement
            - [ ] Voir les transactions

<p class="callout info">Note : Les liens sont créés automatiquement lors de la validation des factures</p>

**Consultant / Lecture seule**

**Rôle :**<span style="white-space: pre-wrap;"> Consultation uniquement</span>

**Permissions :**

- - - - [ ] Accès aux menus InfraS2Bridge
            - [ ] Accès aux paramètres du module
            - [ ] Sauvegarder/Restaurer paramètres
            - [x] Voir les liens de paiement
            - [x] Voir les transactions

#### **4.SÉCURITÉ**

***Bonnes pratiques***

- - - - **Limitez les administrateurs**<span style="white-space: pre-wrap;"> : seules 2-3 personnes de confiance</span>
            - **Révisez régulièrement**<span style="white-space: pre-wrap;"> les permissions des utilisateurs</span>
            - **Supprimez les permissions**<span style="white-space: pre-wrap;"> des utilisateurs qui quittent l'entreprise</span>
            - **Utilisez des groupes**<span style="white-space: pre-wrap;"> pour faciliter la gestion</span>
            - **Documentez**<span style="white-space: pre-wrap;"> qui a accès à quoi</span>

<p class="callout danger">**AVERTISSEMENT DE SÉCURITÉ**<span style="white-space: pre-wrap;"> : Ne donnez l'accès aux paramètres du module qu'aux personnes de confiance. Les secrets Bridge (Client Secret, Secret Webhook) sont des informations critiques.</span></p>

#### **5.AUDIT DES ACCÈS**

***Traçabilité***

<span style="white-space: pre-wrap;">Toutes les actions effectuées via le module sont tracées dans les logs </span>***Dolibarr***<span style="white-space: pre-wrap;"> :</span>

- - Modifications de configuration (avec nom de l'utilisateur)
    - Créations de liens de paiement
    - Révocations de liens
    - Accès aux pages de liste
    - Exports de données

# 11. DÉPANNAGE ET SUPPORT

# DÉPANNAGE ET SUPPORT

#### **1.PROBLÈMES COURANTS**

<table id="bkmrk-probl%C3%88mesolutionsle-"><colgroup><col></col><col></col></colgroup><tbody><tr style="background-color: rgb(131, 96, 93); color: rgb(255, 255, 255);"><td>**PROBLÈME**

</td><td>**SOLUTIONS**

</td></tr><tr><td>Le lien de paiement ne se crée pas automatiquement

</td><td>- Le module est-il activé ?
- Le montant est-il supérieur au minimum configuré ?
- Le mode de règlement correspond-il au mode configuré ?
- Les identifiants Bridge sont-ils corrects ?
- Consultez les logs Dolibarr pour les erreurs

</td></tr><tr><td>Problème : Le QR code ne s'affiche pas

</td><td>- L'option "Afficher le lien" est-elle activée ?
- L'option "Afficher le QR code" est-elle activée ?
- Le lien de paiement a-t-il bien été créé ?
- Actualisez la page (F5)

</td></tr><tr><td>Les webhooks ne fonctionnent pas

</td><td>- L'URL webhook est-elle accessible depuis Internet ?
- Le secret webhook est-il correctement configuré ?
- Le webhook est-il créé dans le tableau de bord Bridge ?
- Vérifiez les logs pour les erreurs de signature
- Testez le webhook depuis Bridge

</td></tr><tr><td>Erreur "Invalid credentials"

</td><td>- Vérifiez votre Client ID
- Vérifiez votre Client Secret
- Assurez-vous qu'ils sont actifs sur Bridge
- Regénérez-les si nécessaire depuis Bridge

</td></tr><tr><td>Le paiement est reçu mais la facture reste non payée

</td><td>- Vérifiez que l'option "Ne pas mettre à jour..." est DÉSACTIVÉE
- Vérifiez que le webhook fonctionne
- Exécutez manuellement la tâche planifiée
- Consultez les logs pour erreurs

</td></tr></tbody></table>

#### **2.ACTIVATION DES LOGS**

Pour un diagnostic approfondi :

1. Allez dans : C**onfiguration → Divers**
2. <span style="white-space: pre-wrap;">Activez les logs : Niveau </span>**"Debug"**
3. Reproduisez le problème
4. <span style="white-space: pre-wrap;">Consultez : </span>**Accueil → Configuration → Fichiers de log système**
5. <span style="white-space: pre-wrap;">Recherchez </span>**"*****Bridge*****"**<span style="white-space: pre-wrap;"> ou </span>**"*****infras2bridge*****"**
6. Analysez les messages d'erreur

#### **3.MESSAGES D'ERREUR COURANTS**

<table id="bkmrk-%22le-montant-minimum-" style="width: 100%; border-collapse: collapse;"><colgroup><col style="width: 50%;"></col><col></col></colgroup><tbody><tr style="background-color: white;"><td style="padding: 15px; border: 1px solid rgb(221, 221, 221); vertical-align: top; width: 50%;">**"Le montant minimum de paiement InfraS2Bridge autorisé est X €"**

</td><td style="padding: 15px; border: 1px solid rgb(221, 221, 221); vertical-align: top;"><span style="color: rgb(102, 102, 102);">Le montant de la facture est inférieur au minimum configuré</span>  
<span style="color: rgb(102, 102, 102);">→ Augmentez le montant ou réduisez le minimum</span>

</td></tr><tr style="background-color: rgb(249, 249, 249);"><td style="padding: 15px; border: 1px solid rgb(221, 221, 221); vertical-align: top;">**"Le mode de règlement de la facture est différent..."**

</td><td style="padding: 15px; border: 1px solid rgb(221, 221, 221); vertical-align: top;"><span style="color: rgb(102, 102, 102);">Le mode de règlement ne correspond pas au mode configuré</span>  
<span style="color: rgb(102, 102, 102);">→ Changez le mode sur la facture ou dans la configuration</span>

</td></tr><tr style="background-color: white;"><td style="padding: 15px; border: 1px solid rgb(221, 221, 221); vertical-align: top;">**"Bridge API error: 401"**

</td><td style="padding: 15px; border: 1px solid rgb(221, 221, 221); vertical-align: top;"><span style="color: rgb(102, 102, 102);">Identifiants invalides</span>  
<span style="color: rgb(102, 102, 102);">→ Vérifiez Client ID et Client Secret</span>

</td></tr><tr style="background-color: rgb(249, 249, 249);"><td style="padding: 15px; border: 1px solid rgb(221, 221, 221); vertical-align: top;">**"Bridge API error: 404"**

</td><td style="padding: 15px; border: 1px solid rgb(221, 221, 221); vertical-align: top;"><span style="color: rgb(102, 102, 102);">Ressource non trouvée</span>  
<span style="color: rgb(102, 102, 102);">→ Vérifiez l'ID du lien de paiement</span>

</td></tr><tr style="background-color: white;"><td style="padding: 15px; border: 1px solid rgb(221, 221, 221); vertical-align: top;">**"Missing signature header"**

</td><td style="padding: 15px; border: 1px solid rgb(221, 221, 221); vertical-align: top;"><span style="color: rgb(102, 102, 102);">Webhook sans signature</span>  
<span style="color: rgb(102, 102, 102);">→ Vérifiez la configuration du webhook dans Bridge</span>

</td></tr><tr style="background-color: rgb(249, 249, 249);"><td style="padding: 15px; border: 1px solid rgb(221, 221, 221); vertical-align: top;">**"Unauthorized IP"**

</td><td style="padding: 15px; border: 1px solid rgb(221, 221, 221); vertical-align: top;"><span style="color: rgb(102, 102, 102);">Le webhook provient d'une IP non autorisée</span>  
<span style="color: rgb(102, 102, 102);">→ Vérifiez que c'est bien Bridge qui envoie le webhook</span>

</td></tr></tbody></table>

#### **4.VÉRIFICATION DE L'INSTALLATION**

**Check-list de vérification complète :**

<table id="bkmrk-%E2%98%90-module-activ%C3%A9-dans" style="width: 100%; line-height: 2;"><colgroup><col></col></colgroup><tbody><tr><td style="padding: 5px; color: rgb(102, 102, 102);">☐ Module activé dans Dolibarr

</td></tr><tr><td style="padding: 5px; color: rgb(102, 102, 102);">☐ Extension PHP XML installée

</td></tr><tr><td style="padding: 5px; color: rgb(102, 102, 102);">☐ Client ID configuré

</td></tr><tr><td style="padding: 5px; color: rgb(102, 102, 102);">☐ Client Secret configuré

</td></tr><tr><td style="padding: 5px; color: rgb(102, 102, 102);">☐ URL webhook copiée dans Bridg

</td></tr><tr><td style="padding: 5px; color: rgb(102, 102, 102);">☐ Secret webhook configuré

</td></tr><tr><td style="padding: 5px; color: rgb(102, 102, 102);">☐ Montant minimum défini (&gt; 0)

</td></tr><tr><td style="padding: 5px; color: rgb(102, 102, 102);">☐ Délai de révocation défini (1-60 jours)

</td></tr><tr><td style="padding: 5px; color: rgb(102, 102, 102);">☐ Mode de règlement sélectionné

</td></tr><tr><td style="padding: 5px; color: rgb(102, 102, 102);">☐ Webhook créé dans Bridge

</td></tr><tr><td style="padding: 5px; color: rgb(102, 102, 102);">☐ Test webhook réussi depuis Bridge

</td></tr><tr><td style="padding: 5px; color: rgb(102, 102, 102);">☐ Attributs supplémentaires créés (bridge\_payment\_link, bridge\_payment\_qr)

</td></tr><tr><td style="padding: 5px; color: rgb(102, 102, 102);">☐ Tâche planifiée activée

</td></tr><tr><td style="padding: 5px; color: rgb(102, 102, 102);">☐ Permissions configurées pour les utilisateurs

</td></tr></tbody></table>

#### **5.INFORMATIONS DE SUPPORT**

- <span style="white-space: pre-wrap;">🌐 Site web : </span>[www.infras.fr](https://www.infras.fr/)
- <span style="white-space: pre-wrap;">📧 Email : </span>[support@infras.fr](https://infras.store/ticket/new?prefill=1&module=infras2bridge)

##### ***Informations à fournir lors d'une demande de support :***

- <span style="white-space: pre-wrap;">Version de </span>***Dolibarr***
- Version du module (visible dans Configuration)
- Description détaillée du problème
- Extraits des logs (sans informations sensibles)
- Captures d'écran si pertinent

# 12. CHANGELOG ET MISES À JOUR

# CHANGELOG ET MISES À JOUR

**Menu :**<span style="white-space: pre-wrap;"> </span>**Outils → InfraS-2 → InfraS2Bridge → Changelog / Support**

***Cette page affiche :***

- Version actuelle du module
- Historique des versions
- Liste des modifications par version
- Corrections de bugs
- Nouvelles fonctionnalités
- <span style="white-space: pre-wrap;">Version minimum de </span>***Dolibarr***<span style="color: rgb(2, 121, 145); white-space: pre-wrap;"> </span>requise

#### **1.MISE À JOUR DU MODULE**

**Processus de mise à jour :**

- **Sauvegardez vos paramètres :**<span style="white-space: pre-wrap;"> Utilisez la fonction Sauvegarder dans Configuration</span>
- **Téléchargez la nouvelle version :**<span style="white-space: pre-wrap;"> Depuis votre source habituelle</span>
- **Déployez le module :**<span style="white-space: pre-wrap;"> Utilisez l'outil de déploiement des modules externes</span>
- **IMPORTANT : Désactivez puis réactivez le module**
- **Vérifiez vos paramètres**<span style="white-space: pre-wrap;"> : Assurez-vous que vos paramètres sont conservés</span>
- **Restaurez** :**<span style="white-space: pre-wrap;"> Si nécessaire, restaurez vos paramètres depuis la sauvegarde</span>
- **Testez les fonctionnalités :**<span style="white-space: pre-wrap;"> Vérifiez que tout fonctionne correctement</span>

#### **2.VÉRIFICATION DES VERSIONS**

***Version du module***

- Visible dans le changelog
- Visible dans Accueil → Configuration → Modules/Applications

***Version de Dolibarr requise***

- Indiquée dans le changelog
- Le module se désactive si la version ne correspond pas
- Désactivation possible avec la constante : INFRAS2BRIDGE\_DISABLE\_CHECK\_VERSION\_MIN

***Version de PHP requise***

- Indiquée dans le changelog
- Extensions requises : XML

#### **3.HISTORIQUE DES FONCTIONNALITÉS**

**Consulter changelog.xml pour les détails complets**

***Version initiale***

- Intégration de base avec Bridge
- Création de liens de paiement sur factures
- Webhooks sécurisés

***Évolutions majeures***

- Support des devis (paiement d'acomptes)
- Variables de substitution
- Gestion des QR codes
- Révocation de liens
- Liste et filtres des paiements
- Tâche planifiée de synchronisation
- Gestion des permissions avancées

# 2. PRÉREQUIS ET INSTALLATION

# Prérequis et installation

#### **1.PRÉREQUIS TECHNIQUES**

***Côté serveur***

- - **Dolibarr :**<span style="white-space: pre-wrap;"> Version compatible (voir changelog)</span>
    - **PHP :**<span style="white-space: pre-wrap;"> Version compatible avec votre Dolibarr</span>
    - **Extension PHP XML :**<span style="white-space: pre-wrap;"> Obligatoire pour lire changelog.xml</span>
    - **Accès HTTPS depuis Internet :**<span style="white-space: pre-wrap;"> Pour recevoir les webhooks Bridge</span>
    - **URL publique :**<span style="white-space: pre-wrap;"> Votre Dolibarr doit être accessible depuis Internet</span>

***Compte Bridge***

- - Compte Bridge actif (https://bridgeapi.io/)
    - Client ID et Client Secret générés
    - Accès au tableau de bord Bridge

#### **2.INSTALLATION DU MODULE**

***Étape 1 : Déploiement des fichiers***

1. Téléchargez l'archive du module InfraS2Bridge
2. Décompressez l'archive
3. <span style="white-space: pre-wrap;">Placez le dossier </span>`<span class="editor-theme-code">infras2bridge</span>`<span style="white-space: pre-wrap;"> dans </span>`<span class="editor-theme-code">htdocs/custom/</span>`
4. Vérifiez les permissions : le serveur web doit pouvoir lire les fichiers

***Étape 2 : Activation du module***

1. <span style="white-space: pre-wrap;">Connectez-vous à </span>***Dolibarr***<span style="white-space: pre-wrap;"> en tant qu'administrateur</span>
2. <span style="white-space: pre-wrap;">Allez dans </span>**Accueil → Configuration → Modules/Applications**
3. <span style="white-space: pre-wrap;">Recherchez </span>**"*****InfraS2Bridge*****"**<span style="white-space: pre-wrap;"> ou </span>**"Bridge"**
4. <span style="white-space: pre-wrap;">Cliquez sur </span>**"Activer"**

-&gt; Le module créé automatiquement :

- - - - Les tables de base de données nécessaires
            - Les attributs supplémentaires sur les factures et devis
            - Les entrées de menu
            - La tâche planifiée

#### **3.VÉRIFICATION DE L'INSTALLATION**

<table id="bkmrk-%C3%89l%C3%A9mentcheminstatut-" style="width: 100%; border-collapse: collapse; margin-top: 15px;"><colgroup><col style="width: 202px;"></col><col style="width: 353px;"></col><col></col></colgroup><tbody><tr style="background-color: rgb(245, 245, 245);"><td style="padding: 10px; border: 1px solid rgb(221, 221, 221); font-weight: 600; color: rgb(51, 51, 51);">Élément

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221); font-weight: 600; color: rgb(51, 51, 51);">Chemin

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221); font-weight: 600; color: rgb(51, 51, 51);">Statut attendu

</td></tr><tr style="background-color: white;"><td style="padding: 10px; border: 1px solid rgb(221, 221, 221); color: rgb(102, 102, 102);">Module activé

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221); color: rgb(102, 102, 102);">**Configuration → Modules**

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221); color: rgb(76, 175, 80); font-weight: 600;"><span style="color: rgb(0, 0, 0);">Activé</span>

</td></tr><tr style="background-color: rgb(249, 249, 249);"><td style="padding: 10px; border: 1px solid rgb(221, 221, 221); color: rgb(102, 102, 102);">Extension XML

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221); color: rgb(102, 102, 102);">**Outil → InfraS-2 → InfraS2Bridge → Changelog**

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221); color: rgb(76, 175, 80); font-weight: 600;"><span style="color: rgb(0, 0, 0);">Version affichée</span>

</td></tr><tr style="background-color: white;"><td style="padding: 10px; border: 1px solid rgb(221, 221, 221); color: rgb(102, 102, 102);">Menu visible

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221); color: rgb(102, 102, 102);">**Menu Outils → InfraS-2 → InfraS2Bridge**

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221); color: rgb(76, 175, 80); font-weight: 600;"><span style="color: rgb(0, 0, 0);">Menu présent</span>

</td></tr><tr style="background-color: rgb(249, 249, 249);"><td style="padding: 10px; border: 1px solid rgb(221, 221, 221); color: rgb(102, 102, 102);">Attributs factures

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221); color: rgb(102, 102, 102);">**Configuration → Attributs supplémentaires → Factures**

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221); color: rgb(76, 175, 80); font-weight: 600;"><span style="color: rgb(0, 0, 0);">bridge\_payment\_link, bridge\_payment\_qr</span>

</td></tr></tbody></table>

#### **4.ACCÈS AU MODULE**

Une fois installé, le module est accessible via :

- **Menu Outils → InfraS-2 → InfraS2Bridge**
    - Changelog / Support
    - Paramètres
- **Menu Banque → InfraS2Bridge**
    - Liste des liens de paiement
- **Onglets sur les factures**<span style="white-space: pre-wrap;"> (après configuration)</span>

# 3. CONFIGURATION INITIALE

# Configuration

#### **1.OBTENIR VOS IDENTIFIANTS BRIDGE**

***Étapes***

1. <span style="white-space: pre-wrap;">Connectez-vous à votre tableau de bord Bridge : </span>**https://dashboard.bridgeapi.io/**
2. <span style="white-space: pre-wrap;">Allez dans </span>**Settings → API**
3. Générez ou récupérez vos identifiants :
    - **Client ID**<span style="white-space: pre-wrap;"> (identifiant public)</span>
    - **Client Secret**<span style="white-space: pre-wrap;"> (clé secrète - </span>**à ne jamais partager**)
4. Sauvegardez ces informations dans un lieu sûr (portefeuille sécurisée, coffre fort éléctronique, etc)

#### **2.ACCÉDER À LA CONFIGURATION DU MODULE**

**Menu :**<span style="white-space: pre-wrap;"> </span>**Outils → InfraS-2 → InfraS2Bridge → Paramètres**

[![Conf.png](https://wiki.infras.fr/uploads/images/gallery/2026-02/scaled-1680-/pfFKeSxQzue0lV2J-conf.png)](https://wiki.infras.fr/uploads/images/gallery/2026-02/scaled-1680-/pfFKeSxQzue0lV2J-conf.png)

**⚠ Permissions requises :** <span style="white-space: pre-wrap;">Vous devez avoir les permissions </span>**"Accès aux menus InfraS2Bridge"**<span style="white-space: pre-wrap;"> ET </span>**"Accès aux paramètres du module"**

#### **3.PARAMÈTRES BRIDGE (OBLIGATOIRES)**

<table id="bkmrk-client-id-bridgecoll" style="width: 100%; border-collapse: collapse; margin-top: 20px;"><colgroup><col style="width: 40%;"></col><col></col></colgroup><tbody><tr style="background-color: white;"><td style="padding: 15px; border: 1px solid rgb(221, 221, 221); vertical-align: top; width: 40%; font-weight: 600; color: rgb(3, 169, 244);"><span style="color: rgb(0, 0, 0); white-space: pre-wrap;">Client ID Bridge </span>**\[Ligne 1\]**

</td><td style="padding: 15px; border: 1px solid rgb(221, 221, 221); vertical-align: top; color: rgb(102, 102, 102);">Collez votre Client ID obtenu depuis le tableau de bord Bridge.

- **Format :**<span style="white-space: pre-wrap;"> Chaîne alphanumérique</span>
- **Exemple :**`<span class="editor-theme-code"> abc123def456</span>`

</td></tr><tr style="background-color: rgb(249, 249, 249);"><td style="padding: 15px; border: 1px solid rgb(221, 221, 221); vertical-align: top; font-weight: 600; color: rgb(3, 169, 244);"><span style="color: rgb(0, 0, 0); white-space: pre-wrap;">Client Secret Bridge </span>**\[Ligne 2\]**

</td><td style="padding: 15px; border: 1px solid rgb(221, 221, 221); vertical-align: top; color: rgb(102, 102, 102);">Collez votre Client Secret obtenu depuis le tableau de bord Bridge.

- **Sécurité :**<span style="white-space: pre-wrap;"> Cette valeur sera automatiquement chiffrée en base.</span>
- **Important :**<span style="color: rgb(224, 62, 45); white-space: pre-wrap;"> Ne partagez JAMAIS cette clé</span>.

</td></tr><tr style="background-color: white;"><td style="padding: 15px; border: 1px solid rgb(221, 221, 221); vertical-align: top; font-weight: 600; color: rgb(3, 169, 244);"><span style="color: rgb(0, 0, 0); white-space: pre-wrap;">Secret Webhook </span>**\[Ligne 4\]**

</td><td style="padding: 15px; border: 1px solid rgb(221, 221, 221); vertical-align: top; color: rgb(102, 102, 102);">Le secret utilisé pour signer les webhooks.

- **Où le trouver :**<span style="white-space: pre-wrap;"> Dans Bridge, lors de la création du webhook</span>
- **Sécurité :**<span style="white-space: pre-wrap;"> Valeur également chiffrée en base</span>

</td></tr><tr style="background-color: rgb(249, 249, 249);"><td style="padding: 15px; border: 1px solid rgb(221, 221, 221); vertical-align: top; font-weight: 600; color: rgb(3, 169, 244);"><span style="color: rgb(0, 0, 0); white-space: pre-wrap;">URL Webhook </span>**\[Ligne 3\]**

</td><td style="padding: 15px; border: 1px solid rgb(221, 221, 221); vertical-align: top; color: rgb(102, 102, 102);">**Générée automatiquement**<span style="white-space: pre-wrap;"> par le module. Copiez cette URL, vous en aurez besoin pour configurer Bridge.</span>

**Format :**

`<span class="editor-theme-code">https://votredomaine.com/custom/infras2bridge/public/ipn.php</span>`

</td></tr></tbody></table>

#### **4.PARAMÈTRES DE PAIEMENT**

<table id="bkmrk-optionobjectifrecomm" style="width: 100%; border-collapse: collapse; margin-top: 20px; font-family: Arial, sans-serif;"><colgroup><col></col><col></col><col style="width: 158px;"></col><col></col></colgroup><tbody><tr style="background-color: rgb(189, 196, 218); color: white; text-align: left;"><th style="padding: 12px; border: 1px solid rgb(221, 221, 221);">**Option**

</th><th style="padding: 12px; border: 1px solid rgb(221, 221, 221);">**Objectif**

</th><th style="padding: 12px; border: 1px solid rgb(221, 221, 221);">**Recommandation**

</th><th style="padding: 12px; border: 1px solid rgb(221, 221, 221);">**Comportement**

</th></tr><tr style="background-color: white;"><td style="padding: 15px; border: 1px solid rgb(221, 221, 221); font-weight: 600;"><span style="white-space: pre-wrap;">Montant minimum de paiement </span>**\[Ligne 5\]**

</td><td style="padding: 15px; border: 1px solid rgb(221, 221, 221);">Empêcher la création de liens pour des petits montants

</td><td style="padding: 15px; border: 1px solid rgb(221, 221, 221);">50 à 100 €

</td><td style="padding: 15px; border: 1px solid rgb(221, 221, 221);">Les factures d'un montant inférieur ne généreront pas de lien

</td></tr><tr style="background-color: rgb(249, 249, 249);"><td style="padding: 15px; border: 1px solid rgb(221, 221, 221); font-weight: 600;"><span style="white-space: pre-wrap;">Délai de révocation automatique </span>**\[Ligne 6\]**

</td><td style="padding: 15px; border: 1px solid rgb(221, 221, 221);">Supprimer automatiquement les liens non utilisés

</td><td style="padding: 15px; border: 1px solid rgb(221, 221, 221);">30 jours

</td><td style="padding: 15px; border: 1px solid rgb(221, 221, 221);">Un lien créé depuis X jours sans paiement sera révoqué automatiquement

</td></tr><tr style="background-color: white;"><td style="padding: 15px; border: 1px solid rgb(221, 221, 221); font-weight: 600;"><span style="white-space: pre-wrap;">Mode de règlement associé </span>

**\[Ligne 9\]**

</td><td style="padding: 15px; border: 1px solid rgb(221, 221, 221);">Seules les factures avec ce mode génèrent un lien

</td><td style="padding: 15px; border: 1px solid rgb(221, 221, 221);">"Virement Bancaire"

</td><td style="padding: 15px; border: 1px solid rgb(221, 221, 221);">Les factures sans ce mode de règlement ne génèrent pas de lien

</td></tr></tbody></table>

#### **5.OPTIONS D'AFFICHAGE**

<table id="bkmrk-optionvaleurobjectif" style="width: 100%; border-collapse: collapse; margin-top: 20px; font-family: Arial, sans-serif;"><colgroup><col style="width: 223px;"></col><col style="width: 97px;"></col><col style="width: 144px;"></col><col style="width: 144px;"></col><col></col></colgroup><tbody><tr style="height: 10px; background-color: rgb(189, 196, 218); color: white; text-align: left;"><th style="padding: 12px; border: 1px solid rgb(221, 221, 221);">**Option**

</th><th style="padding: 12px; border: 1px solid rgb(221, 221, 221);">**Valeur**

</th><th style="padding: 12px; border: 1px solid rgb(221, 221, 221);">**Objectif**

</th><th style="padding: 12px; border: 1px solid rgb(221, 221, 221);">**Recommandation**

</th><th style="padding: 12px; border: 1px solid rgb(221, 221, 221);">**Comportement**

</th></tr><tr style="height: 10px; background-color: white;"><td style="padding: 15px; border: 1px solid rgb(221, 221, 221); font-weight: 600;"><span style="white-space: pre-wrap;">Afficher le lien de paiement dans les factures </span>**\[Ligne 7\]**

</td><td style="padding: 15px; border: 1px solid rgb(221, 221, 221);">Oui / Non

</td><td style="padding: 15px; border: 1px solid rgb(221, 221, 221);">Afficher le lien cliquable sur la fiche facture

</td><td style="padding: 15px; border: 1px solid rgb(221, 221, 221);">Oui

</td><td style="padding: 15px; border: 1px solid rgb(221, 221, 221);">Si activé, le lien Bridge sera visible directement sur la facture

</td></tr><tr style="background-color: rgb(249, 249, 249);"><td style="padding: 15px; border: 1px solid rgb(221, 221, 221); font-weight: 600;"><span style="white-space: pre-wrap;">Afficher le QR code dans les factures </span>**\[Ligne 8\]**

</td><td style="padding: 15px; border: 1px solid rgb(221, 221, 221);">Oui / Non

</td><td style="padding: 15px; border: 1px solid rgb(221, 221, 221);">Afficher un QR code scannable

</td><td style="padding: 15px; border: 1px solid rgb(221, 221, 221);">Oui

</td><td style="padding: 15px; border: 1px solid rgb(221, 221, 221);">Permet aux clients de payer rapidement via un smartphone

</td></tr><tr style="background-color: white;"><td style="padding: 15px; border: 1px solid rgb(221, 221, 221); font-weight: 600;">Ne pas mettre à jour la facture lors du paiement

</td><td style="padding: 15px; border: 1px solid rgb(221, 221, 221);">Oui / Non

</td><td style="padding: 15px; border: 1px solid rgb(221, 221, 221);">Désactiver la création automatique de paiements

</td><td style="padding: 15px; border: 1px solid rgb(221, 221, 221);">Non

</td><td style="padding: 15px; border: 1px solid rgb(221, 221, 221);">Activez seulement si vous souhaitez gérer les paiements manuellement (ex: Banking4Dolibarr)

</td></tr></tbody></table>

#### **6.CONFIGURER LE WEBHOOK DANS BRIDGE**

***Étapes détaillées***

1. 1. Connectez-vous au tableau de bord Bridge
    2. <span style="white-space: pre-wrap;">Allez dans </span>**Settings → Webhooks**
    3. <span style="white-space: pre-wrap;">Cliquez sur </span>**"Add Webhook"**
    4. Renseignez :
        - - - **Events :**<span style="white-space: pre-wrap;"> Sélectionnez </span>`<span class="editor-theme-code">payment.completed</span>`
                - **URL :**<span style="white-space: pre-wrap;"> Collez l'URL générée par le module </span>***Dolibarr***
                - **Secret :**<span style="white-space: pre-wrap;"> Générez un secret (Bridge le fait automatiquement)</span>
    5. <span style="white-space: pre-wrap;">Cliquez sur </span>**"**Create**"**
    6. **IMPORTANT :**<span style="white-space: pre-wrap;"> Copiez le secret généré</span>
    7. <span style="white-space: pre-wrap;">Retournez dans </span>***Dolibarr***<span style="white-space: pre-wrap;"> et collez ce secret dans le champ </span>**"Secret Webhook"**
    8. Testez le webhook depuis Bridge (bouton "Test")

**✓ Test réussi :**<span style="white-space: pre-wrap;"> Si le test est réussi, Bridge affichera "200 OK". Votre configuration est correcte !</span>

#### **7.SAUVEGARDE ET RESTAURATION**

***Sauvegarder la configuration***

<span style="white-space: pre-wrap;">En haut de la page de configuration, cliquez sur </span>**"Sauvegarder"**. Un fichier JSON sera téléchargé contenant tous vos paramètres (sauf les secrets pour des raisons de sécurité).

***Restaurer une configuration***

<span style="white-space: pre-wrap;">En haut de la page, cliquez sur </span>**"Restaurer"**, sélectionnez votre fichier JSON et validez.

# 4. FONCTIONNALITÉS PRINCIPALES

# Fonctionnalités

#### **1.GÉNÉRATION AUTOMATIQUE DE LIENS**

***Sur les factures***

**Déclenchement :**<span style="white-space: pre-wrap;"> Lorsqu'une facture est validée</span>

**Conditions :**

- - - - - Le montant de la facture ≥ montant minimum configuré
                - Le mode de règlement = mode configuré dans le module
                - La facture n'a pas encore de lien Bridge

**Résultat :**<span style="white-space: pre-wrap;"> Un lien de paiement est créé automatiquement et enregistré dans les attributs de la facture</span>

***Sur les devis (propositions commerciales)***

**Usage :**<span style="white-space: pre-wrap;"> Paiement d'acomptes. Le fonctionnement est identique aux factures : mêmes conditions, même déclenchement sur validation.</span>

#### **2.AFFICHAGE DU LIEN ET DU QR CODE**

***Sur la fiche facture/devis***

Une fois le lien créé, vous verrez dans la zone "Autres informations" :

- - - - **Lien de paiement Bridge :**<span style="white-space: pre-wrap;"> URL cliquable</span>
            - **QR code Bridge :**<span style="white-space: pre-wrap;"> Image scannable avec un smartphone</span>

***Utilisation par le client***

- - **Depuis un ordinateur**<span style="white-space: pre-wrap;"> : Le client clique sur le lien → il est redirigé vers la page de paiement Bridge → il effectue le paiement</span>
    - **Depuis un smartphone :** Le client scanne le QR code avec son appareil photo → ouverture automatique du lien → paiement

#### **3.NOTIFICATIONS AUTOMATIQUES (WEBHOOKS)**

**Fonctionnement**

Lorsqu'un client effectue un paiement sur Bridge :

1. Bridge détecte le paiement
2. <span style="white-space: pre-wrap;">Bridge envoie une notification (webhook) à votre </span>***Dolibarr***
3. Le module vérifie l'authenticité (signature HMAC + IP)
4. Si valide, le paiement est enregistré automatiquement sur la facture
5. La facture passe au statut "Payée"

<p class="callout success">**Instantané** <span style="white-space: pre-wrap;">: Les webhooks sont quasi-instantanés : le paiement apparaît dans </span>***Dolibarr***<span style="white-space: pre-wrap;"> quelques secondes après sa réalisation.</span></p>

#### **4.SYNCHRONISATION AUTOMATIQUE**

***Travaux planifiée (Tâche Cron)***

En complément des webhooks, une tâche planifiée s'exécute régulièrement pour :

- - - - Vérifier les paiements non détectés par webhook
            - Synchroniser les transactions en attente
            - Révoquer automatiquement les liens expirés

**Fréquence recommandée :**<span style="white-space: pre-wrap;"> Toutes les 5 à 15 minutes</span>

#### **5.RÉVOCATION DE LIENS**

***Révocation manuelle***

- - **Où :**<span style="white-space: pre-wrap;"> Sur la fiche facture, cliquez sur le bouton "Révoquer le lien Bridge"</span>
    - **Effet :**<span style="white-space: pre-wrap;"> Le lien devient inutilisable, il est supprimé de Bridge et retiré de la facture</span>

***Révocation automatique***

- - **Déclenchement :**<span style="white-space: pre-wrap;"> Par la tâche planifiée</span>
    - **Condition :**<span style="white-space: pre-wrap;"> Lien créé depuis X jours (délai configuré) sans paiement</span>
    - **Objectif :**<span style="white-space: pre-wrap;"> Nettoyer automatiquement les liens obsolètes</span>

# 5. UTILISATION QUOTIDIENNE

# UTILISATION

#### **1.CAS D'USAGE : CRÉER UNE FACTURE AVEC LIEN DE PAIEMENT**

1. <span style="white-space: pre-wrap;">Créez une facture normalement dans </span>***Dolibarr***
2. <span style="white-space: pre-wrap;">Définissez le </span>**mode de règlement**<span style="white-space: pre-wrap;"> sur le mode configuré (ex : "Bridge")</span>
3. Assurez-vous que le montant ≥ montant minimum
4. <span style="white-space: pre-wrap;">Cliquez sur </span>**"Valider"**

-&gt; Le lien de paiement est créé automatiquement

<span style="white-space: pre-wrap;"> 5.Consultez la section "Autres informations" pour voir le lien et le QR code</span>

[![link.png](https://wiki.infras.fr/uploads/images/gallery/2026-02/scaled-1680-/IHeqgGbIo31WKsum-link.png)](https://wiki.infras.fr/uploads/images/gallery/2026-02/scaled-1680-/IHeqgGbIo31WKsum-link.png)

**✓ Automatique :** Aucune action supplémentaire n'est requise. Le lien est créé instantanément lors de la validation.

#### **2.ENVOYER LE LIEN AU CLIENT**

***Méthode 1 : Email manuel***

1. Copiez le lien de paiement depuis la facture
2. Collez-le dans un email au client
3. Le client clique et paie

***Méthode 2 : Variables de substitution dans les emails***

Utilisez les variables suivantes dans vos modèles d'email :

- `<span class="editor-theme-code">__BRIDGE_PAYMENT_LINK__</span>`<span style="white-space: pre-wrap;"> : URL du lien</span>
- `<span class="editor-theme-code">__BRIDGE_PAYMENT_QR__</span>`<span style="white-space: pre-wrap;"> : Image QR code</span>

Ces variables sont automatiquement remplacées par les vraies valeurs lors de l'envoi.

***Méthode 3 : PDF avec QR code***

1. Générez le PDF de la facture
2. Le QR code apparaît dans le PDF (si configuré dans le template)
3. Envoyez le PDF au client
4. Le client scanne le QR code depuis le PDF

#### **3.RÉCEPTION DU PAIEMENT**

***Processus automatique***

<span style="color: rgb(0, 0, 0);">1. Client paie via Bridge</span>  
<span style="color: rgb(0, 0, 0);">2. Webhook notifie Dolibarr (instantané)</span>  
<span style="color: rgb(0, 0, 0);">3. Paiement créé automatiquement sur la facture</span>  
<span style="color: rgb(0, 0, 0);">4. Facture marquée comme "Payée"</span>  
<span style="color: rgb(0, 0, 0);">5. (Optionnel) Email de confirmation envoyé au client</span>

**⚠ Aucune action manuelle requise** <span style="white-space: pre-wrap;">: Vous n'avez rien à faire. Le paiement apparaît automatiquement dans </span>***Dolibarr***.

#### **4.VÉRIFIER UN PAIEMENT**

***Sur la fiche facture***

1. Ouvrez la facture concernée
2. <span style="white-space: pre-wrap;">Consultez l'onglet </span>**"Paiements"**
3. Le paiement Bridge apparaît avec :
    - Date de paiement
    - Montant
    - Mode de règlement
    - Référence transaction Bridge

[![PL.png](https://wiki.infras.fr/uploads/images/gallery/2026-02/scaled-1680-/zhr77hF0ht2pko2j-pl.png)](https://wiki.infras.fr/uploads/images/gallery/2026-02/scaled-1680-/zhr77hF0ht2pko2j-pl.png)

***Dans la liste des liens***

**Menu :**<span style="white-space: pre-wrap;"> </span>**Banque → InfraS2Bridge → Liste des liens de paiement**

- <span style="white-space: pre-wrap;">Consultez le statut du lien : </span>**"Payé"**
- Cliquez sur la ligne pour voir les détails de la transaction

#### **5.GÉRER LES LIENS NON UTILISÉS**

Une facture a un lien de paiement, mais le client ne l'utilise pas et préfère payer autrement (chèque, virement, etc.).

***Solution 1 : Révocation manuelle***

1. Ouvrez la facture
2. <span style="white-space: pre-wrap;">Cliquez sur </span>**"Révoquer le lien Bridge"**
3. Le lien est supprimé
4. Enregistrez le paiement manuellement (chèque, virement...)

***Solution 2 : Révocation automatique***

Après le délai configuré (ex : 30 jours), la tâche planifiée révoque automatiquement le lien s'il n'a pas été utilisé.

#### **6.WORKFLOW COMPLET**

1. **Création facture :**<span style="color: rgb(0, 0, 0); white-space: pre-wrap;"> Créez la facture avec mode de règlement "Bridge"</span>
2. **Validation :**<span style="color: rgb(0, 0, 0); white-space: pre-wrap;"> Validez → lien créé automatiquement</span>
3. **Envoi au client :**<span style="color: rgb(0, 0, 0); white-space: pre-wrap;"> Envoyez le lien par email ou PDF avec QR code</span>
4. **Paiement client :**<span style="color: rgb(0, 0, 0); white-space: pre-wrap;"> Le client clique ou scanne le QR et paie sur Bridge</span>
5. **Synchronisation automatique :**<span style="color: rgb(0, 0, 0); white-space: pre-wrap;"> Paiement enregistré dans Dolibarr, facture payée ✓</span>

# 6. GESTION DES LIENS DE PAIEMENT

# Liens de paiement

#### **1.ACCÉDER À LA LISTE DES LIENS**

**Menu :**<span style="white-space: pre-wrap;"> </span>**Banque → InfraS2Bridge → Liste des liens de paiement**

[![ListPay.png](https://wiki.infras.fr/uploads/images/gallery/2026-02/scaled-1680-/rovCSMy6wTiWTNGg-listpay.png)](https://wiki.infras.fr/uploads/images/gallery/2026-02/scaled-1680-/rovCSMy6wTiWTNGg-listpay.png)

Cette page centralise tous les liens de paiement créés via le module.

#### **2.INFORMATIONS AFFICHÉES**

<table id="bkmrk-colonnedescriptionr%C3%A9" style="width: 100%; border-collapse: collapse;"><colgroup><col></col><col></col></colgroup><tbody><tr style="background-color: rgb(245, 245, 245);"><td style="padding: 10px; border: 1px solid rgb(221, 221, 221); font-weight: 600; color: rgb(51, 51, 51);">Colonne

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221); font-weight: 600; color: rgb(51, 51, 51);">Description

</td></tr><tr style="background-color: white;"><td style="padding: 10px; border: 1px solid rgb(221, 221, 221); color: rgb(102, 102, 102); font-weight: 600;">Référence

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221); color: rgb(102, 102, 102);">Numéro de la facture ou du devis

</td></tr><tr style="background-color: rgb(249, 249, 249);"><td style="padding: 10px; border: 1px solid rgb(221, 221, 221); color: rgb(102, 102, 102); font-weight: 600;">Tiers

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221); color: rgb(102, 102, 102);">Nom du client

</td></tr><tr style="background-color: white;"><td style="padding: 10px; border: 1px solid rgb(221, 221, 221); color: rgb(102, 102, 102); font-weight: 600;">Type

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221); color: rgb(102, 102, 102);">Facture ou Devis

</td></tr><tr style="background-color: rgb(249, 249, 249);"><td style="padding: 10px; border: 1px solid rgb(221, 221, 221); color: rgb(102, 102, 102); font-weight: 600;">Montant

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221); color: rgb(102, 102, 102);">Montant du paiement attendu

</td></tr><tr style="background-color: white;"><td style="padding: 10px; border: 1px solid rgb(221, 221, 221); color: rgb(102, 102, 102); font-weight: 600;">Date création

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221); color: rgb(102, 102, 102);">Date de création du lien

</td></tr><tr style="background-color: rgb(249, 249, 249);"><td style="padding: 10px; border: 1px solid rgb(221, 221, 221); color: rgb(102, 102, 102); font-weight: 600;">Statut lien

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221); color: rgb(102, 102, 102);">Valide, Complété, Révoqué, Expiré

</td></tr><tr style="background-color: white;"><td style="padding: 10px; border: 1px solid rgb(221, 221, 221); color: rgb(102, 102, 102); font-weight: 600;">Statut paiement

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221); color: rgb(102, 102, 102);">En cours, Payé, Non payé

</td></tr><tr style="background-color: rgb(249, 249, 249);"><td style="padding: 10px; border: 1px solid rgb(221, 221, 221); color: rgb(102, 102, 102); font-weight: 600;">Actions

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221); color: rgb(102, 102, 102);">Voir détails, Révoquer, Accéder à la facture

</td></tr></tbody></table>

#### **3.FILTRES DISPONIBLES**

***Par statut***

- - Tous
    - Actifs uniquement
    - Payés
    - En attente
    - Révoqués

***Par période***

- - Aujourd'hui
    - Cette semaine
    - Ce mois
    - Période personnalisée

***Par client***

- - Tous les clients
    - Client spécifique
    - Par catégorie

***Par montant***

- Tous les montants
- Montant minimum
- Montant maximum
- Plage personnalisée

#### **4.ACTIONS SUR UN LIEN**

***Voir les détails***

Cliquez sur une ligne pour afficher :

- URL complète du lien
- ID du lien Bridge
- Historique des tentatives de paiement
- Détails des transactions
- Logs d'événements

***Révoquer un lien***

1. Cliquez sur l'icône "Révoquer" dans la colonne Actions
2. Confirmez la révocation
3. Le lien est immédiatement désactivé sur Bridge
4. Le statut passe à "Révoqué"

***Accéder à la facture/devis***

Cliquez sur la référence pour ouvrir directement la fiche de la facture ou du devis associé.

#### **5.EXPORT DES DONNÉES**

Vous pouvez exporter la liste des liens en plusieurs formats :

- **CSV :**<span style="white-space: pre-wrap;"> Pour exploitation dans Excel/LibreOffice</span>
- **PDF :**<span style="white-space: pre-wrap;"> Pour impression ou archivage</span>
- **JSON :**<span style="white-space: pre-wrap;"> Pour intégration avec d'autres systèmes</span>

#### **6.SUIVI DES TRANSACTIONS**

***Visualiser les transactions d'un lien***

Pour chaque lien, vous pouvez consulter :

- Liste des paiements
- Statut de chaque transaction (En cours, Payé, Non payé)
- Date et heure de chaque tentative
- Montants
- Codes erreurs éventuels

<p class="callout info">**Information** : Les transactions échouées sont conservées pour analyse. Elles permettent de comprendre pourquoi un paiement n'a pas abouti.</p>

# 7. WEBHOOKS ET SÉCURITÉ

# Webhooks et sécurité

#### **1.QU'EST-CE QU'UN WEBHOOK ?**

<span style="white-space: pre-wrap;">Un </span>**webhook**<span style="white-space: pre-wrap;"> est une notification HTTP envoyée automatiquement par Bridge vers votre </span>***Dolibarr***<span style="white-space: pre-wrap;"> lorsqu'un événement se produit (ex : paiement effectué). C'est le mécanisme qui permet à </span>***Dolibarr***<span style="white-space: pre-wrap;"> d'être informé instantanément des paiements, sans avoir à interroger constamment l'API Bridge.</span>

#### **2.FONCTIONNEMENT DU WEBHOOK**

***Flux de données***

**1.**<span style="white-space: pre-wrap;"> Client effectue un paiement sur Bridge</span>  
**2.**<span style="white-space: pre-wrap;"> Bridge détecte le paiement (statut : complété)</span>  
**3.**<span style="color: rgb(0, 0, 0); white-space: pre-wrap;"> </span>Bridge envoie une requête POST à votre URL webhook  
**4.**<span style="color: rgb(0, 0, 0); white-space: pre-wrap;"> </span>Le module reçoit la notification  
**5.**<span style="white-space: pre-wrap;"> Le module valide l'authenticité (signature + IP)</span>  
**6.**<span style="white-space: pre-wrap;"> Le module enregistre le paiement dans </span>***Dolibarr***  
**7.**<span style="white-space: pre-wrap;"> Le module répond "200 OK" à Bridge</span>

***URL du webhook***

**Format :**<span style="white-space: pre-wrap;"> https://\[votredomaine.com\]/custom/infras2bridge/public/ipn.php</span>

<span style="white-space: pre-wrap;">Cette URL est générée automatiquement par le module et accessible publiquement (pas d'authentification </span>***Dolibarr***<span style="white-space: pre-wrap;"> requise).</span>

#### **3.SÉCURITÉ DES WEBHOOKS**

***Validation par signature HMAC SHA-256***

<span style="white-space: pre-wrap;">Chaque webhook envoyé par Bridge contient une </span>**signature cryptographique**<span style="white-space: pre-wrap;"> dans le header HTTP : X-Webhook-Signature: abc123def456...</span>

Le module recalcule cette signature avec le secret webhook et compare :

- - - - - **Signatures identiques**<span style="white-space: pre-wrap;"> → Webhook authentique, traitement OK</span>
                - **Signatures différentes**<span style="white-space: pre-wrap;"> → Webhook rejeté, erreur 401</span>

***Whitelist IP***

Le module vérifie que le webhook provient bien d'une IP autorisée de Bridge. **Adresses IP Bridge :**<span style="white-space: pre-wrap;"> Consultez la documentation Bridge pour la liste à jour des IPs à autoriser dans votre firewall.</span>

***Protection contre les doublons***

Le module vérifie qu'une transaction n'a pas déjà été traitée pour éviter les doublons de paiements.

#### **4.PROBLÈMES COURANTS ET SOLUTIONS**

<table id="bkmrk-probl%C3%88mecauses-possi"><colgroup><col style="width: 177px;"></col><col></col><col></col></colgroup><tbody><tr style="background-color: rgb(74, 177, 211); color: rgb(255, 255, 255);"><td>**PROBLÈME**

</td><td>**CAUSES POSSIBLES**

</td><td>**SOLUTION**

</td></tr><tr><td>Webhook non reçu

</td><td>- URL webhook incorrecte dans Bridge
- Firewall bloque les requêtes de Bridge
- Dolibarr non accessible depuis Internet
- Certificat SSL invalide

</td><td>Testez le webhook depuis le tableau de bord Bridge.

</td></tr><tr><td>Erreur "Invalid signature"

</td><td>Le secret webhook configuré dans Dolibarr ne correspond pas à celui défini dans Bridge.

</td><td>Vérifiez et corrigez le secret webhook dans la configuration du module.

</td></tr><tr><td>Erreur "Unauthorized IP"

</td><td>L'IP source du webhook n'est pas dans la whitelist Bridge.

</td><td>Vérifiez que c'est bien Bridge qui envoie le webhook, pas un tiers malveillant.

</td></tr></tbody></table>

#### **5.TESTER LE WEBHOOK**

***Depuis Bridge Dashboard***

1. 1. 1. Connectez-vous au tableau de bord Bridge
        2. <span style="white-space: pre-wrap;">Allez dans </span>**Settings → Webhooks**
        3. Sélectionnez votre webhook
        4. <span style="white-space: pre-wrap;">Cliquez sur </span>**"Test"**
        5. Bridge envoie un webhook de test
        6. Vérifiez la réponse :
        7. **200 OK**<span style="white-space: pre-wrap;"> → Tout fonctionne ✓</span>
            1. **4xx/5xx**<span style="white-space: pre-wrap;"> → Problème à résoudre</span>

**Astuce** <span style="white-space: pre-wrap;">: Activez les logs </span>***Dolibarr***<span style="white-space: pre-wrap;"> en mode Debug pour voir les détails de réception et traitement des webhooks.</span>

#### **6.LOGS ET SURVEILLANCE**

***Consulter les logs***

**Menu :**<span style="white-space: pre-wrap;"> Accueil → Configuration → Fichiers de log système</span>

<span style="white-space: pre-wrap;">Recherchez </span>**"Bridge"**<span style="white-space: pre-wrap;"> ou </span>**"webhook"**<span style="white-space: pre-wrap;"> pour filtrer les événements liés au module.</span>

***Informations loguées***

- - Réception de webhooks
    - Validation des signatures
    - Création de paiements
    - Erreurs de traitement
    - Appels API Bridge

# 8. TÂCHES PLANIFIÉES

# Tâches Cron

#### **1.RÔLE DE LA TÂCHE PLANIFIÉE**

La tâche planifiée (cron job) complète le système de webhooks en effectuant régulièrement les opérations suivantes :

- **Synchronisation des paiements**<span style="white-space: pre-wrap;"> : vérifie les paiements qui n'auraient pas été détectés par webhook</span>
- **Révocation automatique**<span style="white-space: pre-wrap;"> : supprime les liens expirés selon le délai configuré</span>
- **Mise à jour des statuts**<span style="white-space: pre-wrap;"> : actualise les informations depuis Bridge</span>
- **Nettoyage**<span style="white-space: pre-wrap;"> : archive les anciennes données</span>

La tâche planifiée est un filet de sécurité. Les webhooks sont instantanés, mais en cas de problème réseau ou de défaillance, la tâche planifiée assure que rien n'est perdu.

#### **2.CONFIGURATION DE LA TÂCHE**

**Menu :** **Accueil → Outils Administrations → Travaux planifiées**

### Paramètres

<table id="bkmrk-param%C3%A8trevaleur-reco" style="width: 100%; border-collapse: collapse; margin-top: 15px;"><colgroup><col style="width: 30%;"></col><col></col></colgroup><tbody><tr style="background-color: rgb(245, 245, 245);"><td style="padding: 10px; border: 1px solid rgb(221, 221, 221); font-weight: 600; color: rgb(51, 51, 51); width: 30%;">Paramètre

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221); font-weight: 600; color: rgb(51, 51, 51);">Valeur recommandée

</td></tr><tr style="background-color: white;"><td style="padding: 10px; border: 1px solid rgb(221, 221, 221); color: rgb(102, 102, 102); font-weight: 600;">Nom

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221); color: rgb(102, 102, 102);">Récupération des paiements Bridge

</td></tr><tr style="background-color: rgb(249, 249, 249);"><td style="padding: 10px; border: 1px solid rgb(221, 221, 221); color: rgb(102, 102, 102); font-weight: 600;">Fréquence

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221); color: rgb(102, 102, 102);">Toutes les jours

</td></tr><tr style="background-color: white;"><td style="padding: 10px; border: 1px solid rgb(221, 221, 221); color: rgb(102, 102, 102); font-weight: 600;">Statut

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221); color: rgb(76, 175, 80); font-weight: 600;">Activé

</td></tr><tr style="background-color: rgb(249, 249, 249);"><td style="padding: 10px; border: 1px solid rgb(221, 221, 221); color: rgb(102, 102, 102); font-weight: 600;">Priorité

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221); color: rgb(102, 102, 102);">55 (par défaut)

</td></tr></tbody></table>

#### **3.ACTIVATION DE LA TÂCHE**

1. <span style="white-space: pre-wrap;">Allez dans </span>**Accueil → Outils Administrations → Travaux planifiées**
2. <span style="white-space: pre-wrap;">Recherchez </span>**"Récupération des paiements Bridge"**
3. Cliquez sur l'icône pour activer la tâche (elle passe en vert)
4. <span style="white-space: pre-wrap;">Définissez la fréquence : recommandé </span>**300 secondes (5 minutes)**
5. Sauvegardez

La tâche s'exécutera automatiquement selon la fréquence définie. Vous pouvez aussi l'exécuter manuellement en cliquant sur "Exécuter maintenant".

#### **4.SURVEILLANCE DE L'EXÉCUTION**

***Consulter l'historique***

Dans la liste des tâches planifiées, cliquez sur la tâche pour voir :

- Date et heure de la dernière exécution
- Date de la prochaine exécution
- Nombre d'exécutions
- Durée d'exécution moyenne
- Statut de la dernière exécution (succès/erreur)

***Indicateurs de bon fonctionnement***

<table id="bkmrk-%E2%9C%93-normalla-t%C3%A2che-s%27e" style="width: 100%; border-collapse: collapse; margin-top: 15px;"><colgroup><col style="width: 30%;"></col><col></col></colgroup><tbody><tr style="background-color: white;"><td style="padding: 10px; border: 1px solid rgb(221, 221, 221); vertical-align: top; width: 30%; font-weight: 600; color: rgb(76, 175, 80);">✓ Normal

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221); vertical-align: top; color: rgb(102, 102, 102);">La tâche s'exécute régulièrement, statut "Succès", durée stable

</td></tr><tr style="background-color: rgb(255, 243, 224);"><td style="padding: 10px; border: 1px solid rgb(221, 221, 221); vertical-align: top; font-weight: 600; color: rgb(255, 152, 0);">⚠ Attention

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221); vertical-align: top; color: rgb(102, 102, 102);">Durée d'exécution anormalement longue → vérifiez les logs

</td></tr><tr style="background-color: rgb(255, 235, 238);"><td style="padding: 10px; border: 1px solid rgb(221, 221, 221); vertical-align: top; font-weight: 600; color: rgb(244, 67, 54);">✗ Problème

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221); vertical-align: top; color: rgb(102, 102, 102);">Statut "Erreur" ou pas d'exécution depuis longtemps → consultez les logs

</td></tr></tbody></table>

#### **5.EXÉCUTION MANUELLE**

***Quand l'utiliser ?***

- Pour tester le bon fonctionnement de la tâche
- Après une configuration ou mise à jour
- Pour forcer une synchronisation immédiate
- En cas de problème détecté

***Procédure***

1. Allez dans la liste des tâches planifiées
2. Trouvez la tâche InfraS2Bridge
3. <span style="white-space: pre-wrap;">Cliquez sur </span>**"Exécuter maintenant"**
4. La tâche s'exécute immédiatement
5. Consultez le résultat dans l'historique

# 9. VARIABLES DE SUBSTITUTION

# VARIABLES DE SUBSTITUTION

#### **1.QU'EST-CE QU'UNE VARIABLE DE SUBSTITUTION ?**

<span style="white-space: pre-wrap;">Les </span>**variables de substitution**<span style="white-space: pre-wrap;"> sont des balises spéciales que vous pouvez insérer dans vos documents (PDF, emails, modèles) et qui seront automatiquement remplacées par les vraies valeurs lors de la génération.</span>

=&gt; Le module InfraS2Bridge ajoute des variables spécifiques pour inclure les liens de paiement et QR codes dans vos communications.

#### **2.VARIABLES DISPONIBLES**

<table id="bkmrk-variabledescriptionr" style="width: 100%; border-collapse: collapse;"><colgroup><col style="width: 35%;"></col><col style="width: 316px;"></col><col style="width: 20%;"></col></colgroup><tbody><tr style="background-color: rgb(245, 245, 245);"><td style="padding: 10px; border: 1px solid rgb(221, 221, 221); font-weight: 600; color: rgb(51, 51, 51); width: 35%;">**Variable**

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221); font-weight: 600; color: rgb(51, 51, 51);">**Description**

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221); font-weight: 600; color: rgb(51, 51, 51); width: 20%;">**Résultat**

</td></tr><tr style="background-color: white;"><td style="padding: 10px; border: 1px solid rgb(221, 221, 221); color: rgb(3, 169, 244); font-family: monospace; font-weight: 600;">\_\_BRIDGE\_PAYMENT\_LINK\_\_

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221); color: rgb(102, 102, 102);">URL complète du lien de paiement Bridge

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221); color: rgb(102, 102, 102); font-size: 0.85em;">https://pay.bridge...

</td></tr><tr style="background-color: rgb(249, 249, 249);"><td style="padding: 10px; border: 1px solid rgb(221, 221, 221); color: rgb(3, 169, 244); font-family: monospace; font-weight: 600;">\_\_BRIDGE\_PAYMENT\_QR\_\_

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221); color: rgb(102, 102, 102);">Image QR code encodée en base64

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221); color: rgb(102, 102, 102); font-size: 0.85em;">Image QR intégrée

</td></tr></tbody></table>

**⚠ Respect de la casse**<span style="white-space: pre-wrap;"> : Les variables doivent être écrites exactement comme indiqué, avec les doubles underscores et en MAJUSCULES.</span>

#### **3.UTILISATION DANS LES EMAILS**

***Configuration***

**Menu :**<span style="white-space: pre-wrap;"> Accueil → Configuration → Emails → Modèles</span>

1. Sélectionnez le modèle d'email pour les factures
2. Modifiez le contenu
3. Ajoutez les variables dans le corps du message
4. Sauvegardez

***Exemple d'email***

**Objet :**<span style="white-space: pre-wrap;"> Facture </span>**\_\_REF\_\_**<span style="white-space: pre-wrap;"> - Montant </span>**\_\_TOTAL\_TTC\_\_**

<span style="white-space: pre-wrap;">Bonjour </span>**\_\_THIRDPARTY\_NAME\_\_**,

Veuillez trouver ci-joint votre facture n° **\_\_REF\_\_**<span style="white-space: pre-wrap;"> d'un montant de </span>**\_\_TOTAL\_TTC\_\_**.

**Pour régler cette facture en ligne, cliquez sur le lien suivant : \_\_BRIDGE\_PAYMENT\_LINK\_\_**<span style="white-space: pre-wrap;"> Ou scannez ce QR code avec votre smartphone :</span> **\_\_BRIDGE\_PAYMENT\_QR\_\_**

Cordialement,  
**\_\_MYCOMPANY\_NAME\_\_**

#### **4.UTILISATION DANS LES MODÈLES PDF**

***Modèles ODT***

Si vous utilisez des modèles ODT pour vos factures :

1. Ouvrez votre modèle ODT avec LibreOffice
2. Insérez les variables dans le document
3. <span style="white-space: pre-wrap;">Pour le lien : écrivez simplement </span>`<span class="editor-theme-code">__BRIDGE_PAYMENT_LINK__</span>`
4. <span style="white-space: pre-wrap;">Pour le QR : insérez </span>`<span class="editor-theme-code">__BRIDGE_PAYMENT_QR__</span>`
5. Sauvegardez le modèle ODT
6. <span style="white-space: pre-wrap;">Placez-le dans </span>`<span class="editor-theme-code">htdocs/install/doctemplates/</span>`

***Modèles PHP personnalisés***

Si vous développez un modèle PDF personnalisé :

```php
$substitutionarray = getCommonSubstitutionArray($langs, 0, null, $object);
complete_substitutions_array($substitutionarray, $langs, $object);

// Les variables Bridge sont automatiquement disponibles
$paymentLink = $substitutionarray['__BRIDGE_PAYMENT_LINK__'];
$qrCode = $substitutionarray['__BRIDGE_PAYMENT_QR__'];
```

#### **5.CAS PARTICULIERS**

***Facture sans lien Bridge***

**Situation :**<span style="white-space: pre-wrap;"> La facture n'a pas de lien de paiement (montant trop faible, mode différent, etc.)</span>

**Comportement :**<span style="white-space: pre-wrap;"> Les variables sont remplacées par une chaîne vide (rien n'apparaît)</span>

***Lien révoqué***

**Situation :**<span style="white-space: pre-wrap;"> Le lien a été révoqué après l'envoi de l'email</span>

**Comportement :**<span style="white-space: pre-wrap;"> Le lien reste affiché mais redirige vers une page "Lien expiré" sur Bridge</span>

***Facture déjà payée***

**Situation :**<span style="white-space: pre-wrap;"> La facture est payée mais le lien existe encore</span>

**Comportement :**<span style="white-space: pre-wrap;"> Le lien s'affiche mais Bridge affiche "Déjà payé" si l'option est utilisée</span>

#### **6.BONNES PRATIQUES**

- **Testez vos modèles**<span style="white-space: pre-wrap;"> avec une facture test avant envoi massif</span>
- **Ajoutez un texte explicatif**<span style="white-space: pre-wrap;"> autour des variables pour guider le client</span>
- **Proposez plusieurs options**<span style="white-space: pre-wrap;"> : lien cliquable ET QR code</span>
- **Indiquez les moyens alternatifs**<span style="white-space: pre-wrap;"> (virement, chèque)</span>
- **Vérifiez l'affichage**<span style="white-space: pre-wrap;"> des QR codes dans les PDFs générés</span>
- **N'oubliez pas**<span style="white-space: pre-wrap;"> que les variables ne fonctionnent que si un lien existe</span>