Compte, sécurité et intégrationsAutres guides de cette rubrique
- Se connecter, régler son profil et son mot de passe
- Se connecter avec Microsoft ou Google, imposer le SSO
- Activer la double authentification
- Exiger la double authentification et consulter le journal d'activité
- La corbeille : restaurer un dossier, une pièce, un contact ou une note supprimés
- Exporter les données de son espace
- Sous-traitants et contrat de sous-traitance
- L'API publique : relier un outil du cabinet
- Les webhooks : prévenir un outil du cabinet
Un webhook prévient un outil du cabinet (comptabilité, CRM, automatisation) dès qu'un événement a lieu dans un espace : Diligence envoie une requête POST à l'adresse que vous avez déclarée. Les webhooks s'ouvrent espace par espace : tant qu'ils ne sont pas ouverts pour le vôtre, la carte « Webhooks » n'apparaît pas.
Déclarer une destination
- Dans Réglages, ouvrez l'espace puis l'onglet « Sécurité et données ». Seul un associé voit la carte « Webhooks ».
- Cliquez sur « Ajouter une destination », collez l'adresse fournie par l'outil (https:// obligatoire, sans identifiant ni port particulier) et cochez les événements : dossier créé, facture émise, paiement reçu.
- Copiez le secret de signature affiché (whsec_…) et collez-le dans l'outil : il ne sera plus jamais affiché. Perdu, il se remplace en supprimant la destination et en la recréant.
Chaque envoi contient des données de l'espace (nom et référence du dossier, numéro et montants de la facture, montant du paiement). Ne déclarez qu'une adresse d'un outil de confiance. Cinq destinations au plus par espace ; une adresse qui mène à un réseau privé est refusée.
Ce que reçoit l'outil
- un corps JSON { "id", "type", "cree_le", "espace_id", "donnees" } ; type vaut dossier.cree, facture.emise ou paiement.recu ;
- dossier.cree : id, ref, nom, matiere, ouvert_le, created_at ;
- facture.emise : id, numero, dossier_id, date_emission, total_ht, total_ttc ;
- paiement.recu : id, facture_id, montant, recu_le, mode ;
- les dates en ISO 8601 (UTC), les montants en texte ("1210.00"), jamais en nombre à virgule ;
- les en-têtes Diligence-Evenement (le type), Diligence-Evenement-Id (l'identifiant de l'événement) et Diligence-Signature.
Vérifier la signature
L'en-tête Diligence-Signature vaut « t=<horodatage Unix>,v1=<signature> ». La signature est le HMAC-SHA256, en hexadécimal, de « <t>.<corps brut> » avec le secret. Refusez un envoi dont la signature diffère ou dont l'horodatage a plus de 5 minutes.
Exemple en Node : const [t, v1] = entete.split(",").map((p) => p.split("=")[1]); const attendu = crypto.createHmac("sha256", secret).update(`${t}.${corpsBrut}`).digest("hex"); const valide = crypto.timingSafeEqual(Buffer.from(v1, "hex"), Buffer.from(attendu, "hex")) && Math.abs(Date.now() / 1000 - Number(t)) < 300;
Réponses, rejeux et doublons
- répondez par un code 2xx en moins de 10 secondes : l'envoi est livré ;
- toute autre réponse, une redirection ou un délai dépassé est un échec : l'envoi est rejoué 1 minute, 5 minutes, 30 minutes, 2 heures puis 12 heures après, soit 6 essais au plus, puis il passe « En échec » ;
- la livraison est « au moins une fois » : un même événement peut arriver deux fois. Dédoublonnez avec Diligence-Evenement-Id, identique pour tous les essais et pour « Renvoyer » ;
- une destination désactivée ne reçoit plus rien ; la supprimer efface aussi son journal.
Le journal des envois, sous la liste des destinations, montre les 50 derniers envois avec leur statut, le nombre d'essais et la dernière erreur. « Renvoyer » remet un envoi livré ou en échec dans la file : il part au prochain passage, dans 5 minutes au plus.