Le webhook ERDV vous permet de recevoir des notifications en temps réel concernant les rendez-vous (appointments) dans l'application. Lorsqu'un rendez-vous est créé, mis à jour ou supprimé, une notification est envoyée à votre serveur via HTTP POST avec des données JSON détaillées sur l'événement.
Cette documentation vous explique comment intégrer et utiliser le webhook d'ERDV pour recevoir et traiter ces notifications.
L'URL à laquelle vous pouvez recevoir les notifications est la suivante :
https://votre-domaine.com/webhook
Cette URL doit être configurée pour accepter les requêtes HTTP POST contenant des données au format JSON envoyées par notre système.
Les notifications seront envoyées via la méthode POST
. Le corps de la requête contiendra un objet JSON qui décrit l'événement, que ce soit pour la création, la mise à jour ou la suppression d'un rendez-vous.
POST https://votre-domaine.com/webhook
Vous pouvez configurer votre URL Webhook sur le Backoffice ERDV.
Les requêtes POST envoyées au webhook incluront les en-têtes suivants :
application/json
Vous pouvez configurer d'autres en-têtes sur le Backoffice ERDV.
Un exemple de notification (création de rendez-vous) :
{ "event": "create", "data": { "id": 123, "startDate": "15-11-2024 10:00", "endDate": "15-11-2024 11:00", "creationDate": "14-11-2024 09:30", "description": "Consultation avec le client", "note": "Apporter les documents nécessaires", "reference": "REF123456", "status": "CONFIRMATION_NEEDED", "duration": 60, "price": 120.50, "proId": 789, "proName": "Dr Martin", "proFullName": "Dr Martin Dupuis", "proAdress": "123 Rue Principale, Paris", "proPhone": "+33123425656789", "customer": { "id": 456, "firstName": "Jean", "lastName": "Dupont", "email": "jean.dupont@example.com", "phone": "+33198765432215" }, "employee": { "id": 987, "firstName": "Marie", "lastName": "Durand", "email": "marie.durand@example.com", "phone": "+33111524223344", "matricule": "EMP123" }, "service": { "templateName": "Consultation Générale", "templateId": 321, "templatExternalId": "EXT123", "serviceName": "Consultation", "serviceId": 654, "serviceExternalId": "SER456" } } }
La structure de la notification Webhook est la suivante:
WebhookNotification{ event: string, data: RendezVousData }
Cette section contient toutes les informations relatives au rendez-vous. Les champs sont les suivants :
RendezVousData { id: integer, // ID unique du rendez-vous. startDate: string($date-time), // Date et heure de début du rendez-vous (format dd-MM-yyyy HH:mm). endDate: string($date-time), // Date et heure de fin du rendez-vous (format dd-MM-yyyy HH:mm). creationDate: string($date-time), // Date et heure de création du rendez-vous. description: string, // Description du rendez-vous (max 512 caractères). note: string, // Notes associées au rendez-vous (max 10 000 caractères). reference: string, // Référence unique du rendez-vous (max 10 caractères). status: string, // Statut actuel du rendez-vous. Possible valeurs : [ PENDING, NO_SHOW, CANCELLED, DONE, CONFIRMATION_NEEDED ]. duration: integer, // Durée du rendez-vous (en minutes). price: number($double), // Prix du rendez-vous. proId: integer, // ID du professionnel associé. proName: string, // Nom du professionnel (max 100 caractères). proFullName: string, // Nom complet du professionnel (max 100 caractères). proAdress: string, // Adresse du professionnel (max 200 caractères). proPhone: string, // Numéro de téléphone du professionnel (max 100 caractères). customer: Customer, // Informations sur le client associé au rendez-vous. employee: Employee, // Informations sur l'employé associé au rendez-vous. service: Service // Informations sur le service réservé pour ce rendez-vous. }
Informations sur le client associé au rendez-vous :
Customer { id: integer, // ID unique du client. firstName: string, // Prénom du client (max 100 caractères). lastName: string, // Nom du client (max 100 caractères). email: string($email), // Email du client (max 200 caractères). phone: string // Numéro de téléphone du client (max 100 caractères). }
Informations sur l'employé associé au rendez-vous :
Employee { id: integer, // ID unique de l'employé. firstName: string, // Prénom de l'employé (max 100 caractères). lastName: string, // Nom de l'employé (max 100 caractères). email: string($email), // Email de l'employé (max 200 caractères). phone: string, // Numéro de téléphone de l'employé (max 100 caractères). matricule: string // Matricule de l'employé (max 100 caractères). }
Détails du service réservé pour ce rendez-vous :
Service { templateName: string, // Nom du modèle de service (max 100 caractères). templateId: integer, // ID du modèle de service. templatExternalId: string, // ID externe du modèle de service (max 100 caractères). serviceName: string, // Nom du service réservé (max 100 caractères). serviceId: integer, // ID unique du service. serviceExternalId: string // ID externe du service (max 100 caractères). }
create
)Cet événement est déclenché lorsqu'un rendez-vous est créé. Le corps de la requête contiendra les informations du nouveau rendez-vous.
update
)Cet événement est déclenché lorsqu'un rendez-vous existant est mis à jour. Cela inclut toute modification de la date, de l'heure, de la description ou du statut.
delete
)Cet événement est déclenché lorsqu'un rendez-vous est supprimé. Les informations du rendez-vous supprimé sont envoyées dans la notification, comme dans l'exemple ci-dessus.
Cette documentation vous permet de configurer votre webhook pour recevoir des notifications de l'application ERDV. Vous pouvez ainsi gérer en temps réel la création, la mise à jour et la suppression des rendez-vous sur votre propre système.
Si vous avez des questions ou des problèmes d'intégration, n'hésitez pas à nous contacter.