# 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