Webhooks sortants
Envoyez les événements FreeMaint vers vos systèmes externes en temps réel
5 min de lecture
Les webhooks permettent à FreeMaint d'envoyer un POST vers une URL que vous contrôlez dès qu'un événement se produit, pour qu'un autre système (ERP, facturation, stock, comptabilité, canal de discussion) reste à jour sans ressaisie. Configuration dans /company-settings/webhooks. Starter est plafonné à 100 livraisons/jour ; Business et au-delà sont illimités. Pour la référence complète des charges utiles, voir API & GraphQL > Webhooks.
Événements disponibles
- work_order.created — un ordre de travail a été créé
- work_order.completed — un ordre de travail est passé à Terminé
- work_order.status_changed — un ordre de travail a changé de statut, quel qu'il soit ; work_order.completed se déclenche toujours en plus
- request.created — une demande de maintenance a été soumise
- request.status_changed — une demande a été approuvée, refusée ou annulée
- part.low_stock — une pièce est descendue à son point de commande ou en dessous
- part.out_of_stock — une pièce est tombée à zéro
- part.low_stock_summary — une fois par jour, les pièces à leur point de commande ou en dessous, y compris celles qui n'ont jamais bougé
- part.out_of_stock_summary — une fois par jour, les pièces à zéro
- part.consumed — consommée sur un ordre de travail, ou rendue
- compliance.chain_divergence — la chaîne de hachage d'audit est rompue (Enterprise)
- asset.downtime_started — un arrêt machine a été ouvert
- asset.downtime_ended — un arrêt machine a été clos
- report.daily_summary — les travaux terminés de la journée, une fois par jour à l'heure que vous choisissez
- purchase_order.created — un bon de commande a été créé
- purchase_order.status_changed — un bon de commande a changé de statut (approuvé, commandé, annulé…)
- purchase_order.received — une livraison a été réceptionnée sur un bon de commande, y compris partielle
Sémantique de livraison
- POST avec un corps JSON : { event, timestamp, data }
- En-tête X-FreeMaint-Signature — t=<secondes unix>,v1=<hex>, où v1 est le HMAC-SHA256 de « <t>.<corps brut> » avec votre secret de webhook comme clé. Vérifiez-le à chaque requête, sur le corps brut
- X-FreeMaint-Event et X-FreeMaint-Delivery-Id sont envoyés en complément
- Les erreurs réseau et les 5xx sont réessayés jusqu'à 3 fois avec back-off exponentiel (environ 2 s, 4 s, 8 s) ; un 4xx est un refus définitif et n'est pas réessayé
- Chaque tentative est journalisée sous le webhook avec son statut, son code de réponse et son nombre de tentatives — et toute livraison terminée peut y être rejouée
- Photos facultatives : avec « Inclure les photos », les événements "work_order" et "request" portent jusqu'à 4 liens d'images dans un champ "photos", valables 7 jours pour toute personne qui les possède — à activer uniquement pour un point de terminaison que vous contrôlez
Configuration
- Ouvrir /company-settings/webhooks — Nécessite la permission de paramétrage de l'entreprise, ou la permission « Gérer les intégrations ».
- Cliquer sur « Ajouter un webhook » — Donnez-lui un nom, une URL https:// et cochez les événements voulus.
- Copier le secret de signature — Il n'est affiché qu'UNE fois à la création. Vous pourrez en générer un nouveau via « Régénérer le secret », ce qui invalide l'ancien.
- Surveiller les livraisons — Ouvrez l'historique de livraison du webhook pour confirmer l'arrivée des événements et rejouer ce qui a échoué.
Plafonds par offre
- Starter — 100 livraisons/jour et par entreprise (compteur remis à zéro à 00:00 UTC)
- Business — illimité
- Enterprise — illimité
- Le compteur porte sur les TENTATIVES : trois webhooks sur le même événement consomment trois unités
Astuce
Vérifiez toujours X-FreeMaint-Signature côté serveur, sur le corps brut de la requête — sans cela, impossible de distinguer un vrai événement FreeMaint d'un appel usurpé, et un part.consumed falsifié pourrait mouvementer le stock de votre ERP.
Articles liés
Cette page vous a-t-elle été utile ?