Boekingen
Base path: /api/bookings
GET /bookings
Alle afspraken ophalen. Medewerkers zien alleen eigen afspraken als staff_personal_agenda_enabled actief is; admins zien altijd alles. Geannuleerde afspraken worden uitgesloten.
Auth: Ingelogd
Query parameters:
| Parameter | Type | Beschrijving |
|---|---|---|
page | integer | Paginanummer (activeert paginering) |
limit | integer | Items per pagina (default 50) |
Response: Array van Booking objecten met client_name, of gepagineerd object. Gesorteerd op start_at aflopend.
GET /bookings/:id
Enkele afspraak ophalen.
Auth: Ingelogd
Response: Booking object met client_name.
Fouten: 404 — Afspraak niet gevonden
POST /bookings
Nieuwe afspraak aanmaken.
Auth: Ingelogd
Request body:
| Veld | Type | Verplicht | Beschrijving |
|---|---|---|---|
client_id | integer | Ja | Klant ID |
staff_id | integer | Ja | Medewerker ID |
service_id | integer | Ja | Dienst ID |
start_at | datetime | Ja | Starttijd |
end_at | datetime | Ja | Eindtijd |
notes | string | Nee | Notities (zichtbaar voor klant) |
internal_notes | string | Nee | Interne notities |
provisional | boolean | Nee | Als true, status=provisional; klant ontvangt bevestig/afwijs e-mail |
waitlist_id | integer | Nee | Koppeling aan wachtlijstvermelding |
base_url | string | Nee | Base URL voor accepteer/weiger-links |
Boekingen op feestdagen worden geweigerd met een 400 fout.
Response (200): Booking object
PUT /bookings/:id
Afspraak bijwerken.
Auth: Ingelogd
Neveneffecten:
- Wanneer
start_atofend_atverandert: eenbooking.updatede-mail job wordt in de wachtrij gezet met 30 minuten vertraging. - Wanneer status verandert naar
completed: review aanvraag en follow-up sequenties worden gestart. - Wanneer status verandert naar
no-show: bijnoshow_enabledwordt een Stripe betaallink aangemaakt.
Response (200): Bijgewerkt Booking object
DELETE /bookings/:id
Afspraak annuleren (zet status naar cancelled). Zet een booking.cancelled job in de wachtrij. Als er een wachtlijstvermelding bestaat voor dezelfde dienst en datum, wordt de eerste wachtende genotificeerd.
Auth: Ingelogd
Booking statussen
| Status | Beschrijving |
|---|---|
scheduled | Bevestigde afspraak |
provisional | Wacht op goedkeuring door klant |
completed | Afgeronde afspraak |
cancelled | Geannuleerde afspraak |
no-show | Klant niet verschenen |
Booking object
{
"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": "Jan de Vries"
}