Logo ERDV

Documentation du Webhook ERDV

Introduction

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.

URL du Webhook

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.

Méthode HTTP

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.

Exemple de requête POST :

POST https://votre-domaine.com/webhook

Vous pouvez configurer votre URL Webhook sur le Backoffice ERDV.

En-têtes HTTP

Les requêtes POST envoyées au webhook incluront les en-têtes suivants :

Vous pouvez configurer d'autres en-têtes sur le Backoffice ERDV.

Configuration Webhook sur le Backoffice ERDV

Exemple de Corps de Requête

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"
    }
  }
}
    

WebhookNotification

La structure de la notification Webhook est la suivante:

WebhookNotification{
  event: string,
  data: RendezVousData
}
    

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.
}
    

Customer

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).
}
    

Employee

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).
}
    

Service

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).
}
    

Types d'Événements

1. Création de Rendez-vous (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.

2. Mise à jour de 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.

3. Suppression de Rendez-vous (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.

Conclusion

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.