Réservations
Les endpoints de réservation permettent à votre back-office, app native ou intégration tierce de consulter et piloter toutes les réservations clients en temps réel.
Vue d'ensemble
Toutes les réservations sont identifiées par un token unique (URL-safe, 32 caractères).
C'est le seul identifiant à utiliser dans vos appels API — pas l'id numérique interne.
| Méthode | Endpoint | Description |
|---|---|---|
| GET | /bookings | Lister avec filtres (status, dates, search) |
| GET | /bookings/:token | Détails d'une réservation |
| PATCH | /bookings/:token | Modifier (heure, nb personnes, notes...) |
| POST | /bookings/:token/accept | Accepter, envoie l'email de confirmation |
| POST | /bookings/:token/reject | Refuser, refund automatique de l'acompte |
| POST | /bookings/:token/no-show | Marquer comme no-show |
Lister les réservations
Paramètres de requête (query string)
| Nom | Type | Description |
|---|---|---|
status | string | pending, confirmed, cancelled, no_show, ou all (défaut) |
date | YYYY-MM-DD | Filtre exact sur une date |
from | YYYY-MM-DD | Date début (incluse) |
to | YYYY-MM-DD | Date fin (incluse) |
search | string | Recherche dans nom, email, téléphone (LIKE) |
page | int | Page (défaut 1) |
limit | int | Items par page (défaut 50, max 200) |
Exemple
curl "https://api.restaurateur.ch/api/v1/bookings?status=pending&from=2026-06-01&to=2026-06-30" \
-H "X-API-Key: VOTRE_CLE_API"Réponse
{
"bookings": [
{
"id": 1234,
"token": "abc123…",
"status": "pending",
"guest_name": "Alice Dupont",
"guest_email": "alice@example.com",
"guest_phone": "+41 79 555 12 34",
"party_size": 4,
"booking_date": "2026-06-15",
"booking_time": "19:30",
"discount_percent": 0,
"notes": "Allergique aux noix",
"guest_lang": "fr",
"deposit_status": null,
"deposit_amount_chf": null,
"created_at": "2026-06-10 14:23:01",
"updated_at": "2026-06-10 14:23:01",
"no_show": false
}
],
"pagination": { "page": 1, "limit": 50, "total": 1, "pages": 1 }
}Récupérer une réservation
curl https://api.restaurateur.ch/api/v1/bookings/abc123… \
-H "X-API-Key: VOTRE_CLE_API"Retourne le même objet booking que dans la liste, sous la clé { "booking": {...} }.
Erreurs
| Status | Cas |
|---|---|
| 404 | Token inconnu, ou réservation appartenant à un autre restaurant |
Modifier une réservation
Modifier les champs de la réservation. Tous les champs sont optionnels — n'envoyez que ceux à modifier.
Body (JSON)
| Champ | Type | Notes |
|---|---|---|
booking_date | YYYY-MM-DD | Nouvelle date |
booking_time | HH:MM | Nouvelle heure |
party_size | int | Nombre de personnes |
guest_name | string | |
guest_email | string | Format email validé |
guest_phone | string | |
notes | string | Note interne ou client |
notify_client | bool | Si true, envoie email "modification" au client. Défaut : false |
curl -X PATCH https://api.restaurateur.ch/api/v1/bookings/abc123… \
-H "X-API-Key: VOTRE_CLE_API" \
-H "Content-Type: application/json" \
-d '{"booking_time":"20:00","party_size":6,"notify_client":true}'Accepter une réservation
Passe le statut à confirmed et envoie l'email de confirmation au client (dans sa langue). Notification copiée en CC sur les adresses configurées (voir CC).
Body (optionnel)
| Champ | Type | Notes |
|---|---|---|
message | string | Message personnalisé ajouté à l'email |
curl -X POST https://api.restaurateur.ch/api/v1/bookings/abc123…/accept \
-H "X-API-Key: VOTRE_CLE_API" \
-H "Content-Type: application/json" \
-d '{"message":"À tout à l'\''heure, table près de la fenêtre comme demandé."}'Refuser une réservation
Passe le statut à cancelled, envoie un email d'annulation au client, et déclenche le remboursement automatique de l'acompte s'il y en avait un.
Body
| Champ | Type | Notes |
|---|---|---|
reason | string | Raison communiquée au client |
curl -X POST https://api.restaurateur.ch/api/v1/bookings/abc123…/reject \
-H "X-API-Key: VOTRE_CLE_API" \
-H "Content-Type: application/json" \
-d '{"reason":"Complet sur ce créneau, merci de proposer un autre horaire."}'Marquer no-show
Marque la réservation comme no_show. Aucun email n'est envoyé. Utile pour les stats et la facturation de l'acompte le cas échéant.
curl -X POST https://api.restaurateur.ch/api/v1/bookings/abc123…/no-show \
-H "X-API-Key: VOTRE_CLE_API"Voir aussi
- Compter les réservations / couverts par date ou période
- Auto-confirmation pour automatiser l'acceptation
- Configurer les emails CC pour les notifications
- Référence Markdown complète avec exemples PHP/Node/Python