Réservations

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éthodeEndpointDescription
GET/bookingsLister avec filtres (status, dates, search)
GET/bookings/:tokenDétails d'une réservation
PATCH/bookings/:tokenModifier (heure, nb personnes, notes...)
POST/bookings/:token/acceptAccepter, envoie l'email de confirmation
POST/bookings/:token/rejectRefuser, refund automatique de l'acompte
POST/bookings/:token/no-showMarquer comme no-show

Lister les réservations

GET /api/v1/bookings

Paramètres de requête (query string)

NomTypeDescription
statusstringpending, confirmed, cancelled, no_show, ou all (défaut)
dateYYYY-MM-DDFiltre exact sur une date
fromYYYY-MM-DDDate début (incluse)
toYYYY-MM-DDDate fin (incluse)
searchstringRecherche dans nom, email, téléphone (LIKE)
pageintPage (défaut 1)
limitintItems par page (défaut 50, max 200)

Exemple

bash
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

json
{
  "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

GET /api/v1/bookings/:token
bash
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

StatusCas
404Token inconnu, ou réservation appartenant à un autre restaurant

Modifier une réservation

PATCH /api/v1/bookings/:token

Modifier les champs de la réservation. Tous les champs sont optionnels — n'envoyez que ceux à modifier.

Body (JSON)

ChampTypeNotes
booking_dateYYYY-MM-DDNouvelle date
booking_timeHH:MMNouvelle heure
party_sizeintNombre de personnes
guest_namestring
guest_emailstringFormat email validé
guest_phonestring
notesstringNote interne ou client
notify_clientboolSi true, envoie email "modification" au client. Défaut : false
bash
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

POST /api/v1/bookings/:token/accept

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)

ChampTypeNotes
messagestringMessage personnalisé ajouté à l'email
bash
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é."}'
Idempotent : appeler accept sur une réservation déjà confirmée renvoie 200 sans renvoyer d'email.

Refuser une réservation

POST /api/v1/bookings/:token/reject

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

ChampTypeNotes
reasonstringRaison communiquée au client
bash
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

POST /api/v1/bookings/:token/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.

bash
curl -X POST https://api.restaurateur.ch/api/v1/bookings/abc123…/no-show \
  -H "X-API-Key: VOTRE_CLE_API"

Voir aussi