Aller au contenu principal

Gestion des webhooks

Interface web uniquement — pas accessible par clé API

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-vous
  • SLOT_AVAILABILITY_CHANGED — la disponibilité d'un créneau a changé

Voir Événements webhook pour le détail des payloads.