Aller au contenu principal

Rendez-vous

Base path: /api/bookings

GET /bookings

Obtenir tous les rendez-vous. Les employés voient uniquement les leurs quand staff_personal_agenda_enabled est actif. Les annulés sont exclus.

Auth: Connecté

Query parameters: page, limit


GET /bookings/:id

Obtenir un rendez-vous spécifique.

Auth: Connecté

Erreurs: 404 — Rendez-vous non trouvé


POST /bookings

Créer un nouveau rendez-vous.

Auth: Connecté

ChampTypeObligatoireDescription
client_idintegerOuiID du client
staff_idintegerOuiID de l'employé
service_idintegerOuiID du service
start_atdatetimeOuiHeure de début
end_atdatetimeOuiHeure de fin
notesstringNonNotes (visibles au client)
internal_notesstringNonNotes internes
provisionalbooleanNonSi true : statut=provisional, email de confirmation/refus envoyé au client
waitlist_idintegerNonLien avec une entrée de liste d'attente
base_urlstringNonURL de base pour les liens de confirmation/refus
remarque

Les rendez-vous les jours fériés sont refusés avec une erreur 400.

Response (200): Objet Booking


PUT /bookings/:id

Mettre à jour un rendez-vous. Les changements d'horaire créent un job email avec 30 minutes de délai. À l'achèvement, des séquences de suivi sont démarrées.


DELETE /bookings/:id

Annuler un rendez-vous (passe le statut à cancelled).


Statuts des rendez-vous

StatutDescription
scheduledRendez-vous confirmé
provisionalEn attente de confirmation du client
completedRendez-vous terminé
cancelledRendez-vous annulé
no-showClient absent

Objet Booking

{
"id": 1,
"client_id": 5,
"staff_id": 2,
"service_id": 3,
"start_at": "2026-03-24 10:00:00",
"end_at": "2026-03-24 10:30:00",
"status": "scheduled",
"notes": "",
"internal_notes": "",
"provisional_token": null,
"feedback_token": null,
"waitlist_id": null,
"client_name": "Marie Dupont"
}