Réserver un soin spa sur un séjour existant

  • Services
  • 6 routes
Comment réserver puis vérifier un rendez-vous spa pour un client déjà booké ?

Ce scénario décrit le parcours API permettant de réserver un soin spa pour un client disposant déjà d'un dossier de réservation Club Med. Le flux documenté part du détail du booking pour retrouver le product_id du séjour, enchaîne avec la consultation de l'offre spa du resort, la lecture des disponibilités d'un soin, puis la création et la vérification du rendez-vous.

Lorsque le détail d'un body de requête n'est pas exposé par la documentation disponible, il est explicitement signalé comme non vérifiable.

Vue d'ensemble

Ce parcours répond au besoin métier suivant : permettre à un client authentifié de réserver un soin spa associé à un séjour existant.

Le scénario repose sur six routes vérifiées : une route de détail booking pour récupérer le product_id, deux routes catalogue spa, deux routes booking spa et une route d'annulation en variante.

Prérequis

  • Le client doit disposer d'un customer_id valide.
  • Le dossier doit être connu via un booking_id valide.
  • Le client doit être authentifié avec un bearer token valide pour les routes customer.
  • Les headers accept-language et x-api-key sont requis sur les routes retenues.
  • Le booking doit contenir un séjour avec un product_id exploitable.
  • Le resort ciblé doit proposer un spa et au moins un soin disponible sur la période recherchée.

Important

La route POST/v0/customers/{customer_id}/bookings/{booking_id}/spas confirme qu'il est possible de réserver un soin avec un créneau et un employé, mais le schéma exact du body n'est pas visible dans la documentation disponible. Le contenu détaillé du payload ne peut donc pas être documenté ici sans risque d'erreur.

Process workflow

Legend:
Obligatoire
Optionnel
1

Retrouver le séjour et le product_id

Obligatoire

Utilisez GET/v3/customers/{customer_id}/bookings/{booking_id} pour récupérer le contexte du séjour et capter le product_id attendu par les routes du catalogue spa.

Prérequis

Préparez customer_id, booking_id. Conservez x-api-key et, si la route est customer-scoped, un bearer token valide.

Calling CURL

curl -X GET \
  -H "x-api-key: YOUR_API_KEY" \
  -H "accept-language: fr-FR" \
  -H "Authorization: Bearer YOUR_TOKEN" \
  "https://api.clubmed.com/v3/customers/{customer_id}/bookings/{booking_id}"

Example answer

{
  "id": "booking-1",
  "booking_status": "OPTION",
  "payment_status": "PENDING",
  "stays": [
    {
      "product_id": "product-1",
      "label": "Club Med Valmorel"
    }
  ]
}

info: Conservez le product_id retourné par le séjour pour interroger le catalogue spa du même resort.


Codes de réponse

  • 200 OK : les données attendues sont renvoyées.
  • 400 Bad Request : la requête est invalide ou incomplète.
  • 401 Unauthorized : le token est manquant ou invalide.
  • 403 Forbidden : l'accès est refusé dans ce contexte.
  • 404 Not Found : la ressource demandée est introuvable.
GET/v3/customers/{customer_id}/bookings/{booking_id}
Voir plus
2

Lister l'offre spa du resort

Obligatoire

Utilisez GET/v0/products/{product_id}/spas pour lister les soins, les prix et les règles de réservation spa disponibles sur le resort.

Prérequis

Préparez product_id. Conservez x-api-key et, si la route est customer-scoped, un bearer token valide.

Calling CURL

curl -X GET \
  -H "x-api-key: YOUR_API_KEY" \
  -H "accept-language: fr-FR" \
  "https://api.clubmed.com/v0/products/{product_id}/spas"

Example answer

{
  "label": "Club Med Spa",
  "currency": "EUR",
  "cares": [
    {
      "id": "care-1",
      "label": "Relaxing massage",
      "price": 120,
      "duration": 50
    }
  ],
  "cancellation_hours_limit": 24
}

info: Réutilisez les identifiants de soins, les prix et les règles d'annulation pour orienter le client vers le bon service spa.


Codes de réponse

  • 200 OK : les données attendues sont renvoyées.
  • 400 Bad Request : la requête est invalide ou incomplète.
  • 404 Not Found : la ressource demandée est introuvable.
GET/v0/products/{product_id}/spas
Voir plus
3

Consulter les créneaux d'un soin

Obligatoire

Utilisez GET/v0/products/{product_id}/spas/cares/{care_code} pour lister les créneaux disponibles d'un soin spa sur la période demandée.

Prérequis

Préparez product_id, care_code. Conservez x-api-key et, si la route est customer-scoped, un bearer token valide.

Calling CURL

curl -X GET \
  -H "x-api-key: YOUR_API_KEY" \
  -H "accept-language: fr-FR" \
  "https://api.clubmed.com/v0/products/{product_id}/spas/cares/{care_code}?start_date=2026-07-10T00:00:00.000Z&end_date=2026-07-17T23:59:59.999Z&date_format=ISO"

Example answer

[
  {
    "start_date_time": "2026-07-10T10:00:00Z",
    "end_date_time": "2026-07-10T10:50:00Z",
    "employees": [
      {
        "id": "employee-1",
        "name": "Emma"
      }
    ]
  }
]

info: Croisez les créneaux renvoyés avec les options d'employee_id avant de soumettre la demande de réservation spa.


Codes de réponse

  • 200 OK : les données attendues sont renvoyées.
  • 400 Bad Request : la requête est invalide ou incomplète.
  • 404 Not Found : la ressource demandée est introuvable.
GET/v0/products/{product_id}/spas/cares/{care_code}
Voir plus
4

Réserver le soin spa

Obligatoire

Utilisez POST/v0/customers/{customer_id}/bookings/{booking_id}/spas pour créer le rendez-vous spa sur un booking existant.

Prérequis

Préparez customer_id, booking_id. Conservez x-api-key et, si la route est customer-scoped, un bearer token valide. Vérifiez le body avant appel pour éviter une erreur de validation.

Calling CURL

curl -X POST \
  -H "x-api-key: YOUR_API_KEY" \
  -H "accept-language: fr-FR" \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"product_id": "product-1", "care_code": "care-1", "start_date_time": "2026-07-10T10:00:00Z", "employee_id": "employee-1"}' \
  "https://api.clubmed.com/v0/customers/{customer_id}/bookings/{booking_id}/spas"

Example answer

{
  "booking_number": "BK-1001",
  "status": "Confirmed",
  "appointment_id": "spa-appointment-1",
  "price": {
    "amount": 120,
    "currency": "EUR"
  }
}

info: Conservez l'appointment_id retourné pour relire ou annuler ultérieurement la réservation spa.


Codes de réponse

  • 200 OK : l'opération est prise en compte et la ressource est renvoyée.
  • 400 Bad Request : le body ou les paramètres sont invalides.
  • 401 Unauthorized : le token est manquant ou invalide.
  • 403 Forbidden : l'accès est refusé dans ce contexte.
  • 404 Not Found : la ressource ciblée est introuvable.
POST/v0/customers/{customer_id}/bookings/{booking_id}/spas
Voir plus
5

Vérifier les rendez-vous spa du booking

Obligatoire

Utilisez GET/v0/customers/{customer_id}/bookings/{booking_id}/spas pour relire les rendez-vous spa actuellement rattachés au booking.

Prérequis

Préparez customer_id, booking_id. Conservez x-api-key et, si la route est customer-scoped, un bearer token valide.

Calling CURL

curl -X GET \
  -H "x-api-key: YOUR_API_KEY" \
  -H "accept-language: fr-FR" \
  -H "Authorization: Bearer YOUR_TOKEN" \
  "https://api.clubmed.com/v0/customers/{customer_id}/bookings/{booking_id}/spas"

Example answer

[
  {
    "appointment_id": "spa-appointment-1",
    "status": "Confirmed",
    "spa_care": "Relaxing massage",
    "start_date_time": "2026-07-10T10:00:00Z"
  }
]

info: Utilisez cette relecture pour confirmer le statut du rendez-vous, le soin choisi et le créneau après la réservation.


Codes de réponse

  • 200 OK : les données attendues sont renvoyées.
  • 400 Bad Request : la requête est invalide ou incomplète.
  • 401 Unauthorized : le token est manquant ou invalide.
  • 403 Forbidden : l'accès est refusé dans ce contexte.
  • 404 Not Found : la ressource demandée est introuvable.
GET/v0/customers/{customer_id}/bookings/{booking_id}/spas
Voir plus
6

Annuler un rendez-vous spa

Optionnel

Utilisez DELETE /v0/customers/{customer_id}/bookings/{booking_id}/spas/{appointment_id} pour annuler un rendez-vous spa.

Prérequis

Préparez customer_id, booking_id, appointment_id. Conservez x-api-key et, si la route est customer-scoped, un bearer token valide.

Calling CURL

curl -X DELETE \
  -H "x-api-key: YOUR_API_KEY" \
  -H "accept-language: fr-FR" \
  -H "Authorization: Bearer YOUR_TOKEN" \
  "https://api.clubmed.com/v0/customers/{customer_id}/bookings/{booking_id}/spas/{appointment_id}"

Example answer

HTTP/1.1 204 No Content

info: Le succès peut être renvoyé sans body. Relisez la ressource ensuite si vous devez afficher l'état final.


Codes de réponse

  • 204 No Content : l'opération est appliquée avec succès.
  • 400 Bad Request : le body ou les paramètres sont invalides.
  • 401 Unauthorized : le token est manquant ou invalide.
  • 403 Forbidden : l'accès est refusé dans ce contexte.
  • 404 Not Found : la ressource ciblée est introuvable.
DELETE/v0/customers/{customer_id}/bookings/{booking_id}/spas/{appointment_id}
Voir plus