Gestion des webhooks
Les webhooks se créent et se configurent exclusivement depuis le dashboard web MonCréneau, par un utilisateur STAFF (rôle ADMIN ou OWNER) connecté par session.
Une application tierce externe ne peut pas appeler ces endpoints. Ils sont authentifiés par cookie de session (login web), pas par clé API (X-API-Key) — il n'existe aucun moyen pour un intégrateur externe d'obtenir cette session par programme. Cette page décrit le comportement pour référence, pas comme une intégration possible depuis votre code.
Accès requis
- Connexion authentifiée via l'interface web (cookie de session)
- Rôle ADMIN ou OWNER
Lister les webhooks
GET /api/staff/webhooks — appelé par le dashboard pour afficher les webhooks configurés.
Réponse 200 :
{
"id": 123,
"url": "https://votre-app.com/webhooks/moncreneau",
"events": ["APPOINTMENT_CREATED", "APPOINTMENT_CANCELLED"],
"isActive": true,
"createdAt": "2026-01-10T12:00:00",
"lastTriggeredAt": "2026-01-22T09:15:00",
"healthStatus": "HEALTHY"
}
Le secret HMAC n'est jamais renvoyé par cet endpoint (ni par aucun autre après la création) — voir Sécurité des webhooks.
Créer un webhook
POST /api/staff/webhooks — { "url": "...", "events": ["APPOINTMENT_CREATED"] }.
Le secret HMAC est généré côté serveur à la création (vous ne le fournissez jamais) — il n'est visible qu'une seule fois dans la réponse de création, à conserver immédiatement.
Modifier un webhook
PATCH /api/staff/webhooks/{id} — { "url"?: "...", "events"?: [...], "isActive"?: true } (tous les champs sont optionnels, seuls ceux fournis sont modifiés).
Supprimer un webhook
DELETE /api/staff/webhooks/{id}
Tester un webhook
POST /api/staff/webhooks/{id}/test — envoie un événement de test signé au webhook et retourne le résultat (sans jamais renvoyer le corps de la réponse distante, pour des raisons de sécurité).
Historique et réessai
GET /api/staff/webhooks/{id}/logs — historique paginé des tentatives d'envoi.
POST /api/staff/webhooks/logs/{logId}/retry — réessaie un envoi qui avait échoué.
Événements disponibles
APPOINTMENT_CREATED— nouveau rendez-vous crééAPPOINTMENT_UPDATED— rendez-vous modifiéAPPOINTMENT_CANCELLED— rendez-vous annuléAPPOINTMENT_COMPLETED— rendez-vous marqué comme terminéAPPOINTMENT_NO_SHOW— absence au rendez-vousSLOT_AVAILABILITY_CHANGED— la disponibilité d'un créneau a changé
Voir Événements webhook pour le détail des payloads.