Booker un spa

  • Services
  • Upsell booking
  • 5 routes
Comment permettre à un client de consulter, réserver et annuler un rendez-vous spa depuis une réservation ?

Ce scénario documente comment un client peut consulter l'offre spa, vérifier les disponibilités d'un soin, relire ses rendez-vous existants, réserver un créneau puis l'annuler si nécessaire depuis le contexte d'un booking.

Vue d'ensemble

La séquence de routes combine la découverte spa côté produit et les actions client côté booking. Elle permet de construire un parcours complet de réservation spa, depuis la sélection du soin jusqu'à l'annulation du rendez-vous.

Prérequis

  • Le product_id est nécessaire pour lister les spas et les soins.
  • customer_id et booking_id sont requis pour les actions liées au booking.
  • Les routes en scope client demandent authorization, et tous les appels documentés requièrent accept-language et x-api-key.

Process workflow

Legend:
Obligatoire
Optionnel
1

Récupérer les informations spa

Obligatoire

Utilisez GET/v0/products/{product_id}/spas pour récupérer les métadonnées spa exposées pour un produit, notamment l’identité du spa, ses coordonnées, la limite d’annulation et la liste des soins disponibles.

Prérequis

  • Header accept-language
  • Header x-api-key
  • Path product_id

Calling CURL

curl -X GET "https://api.clubmed.com/v0/products/MPAC/spas" \
  -H "accept-language: fr-FR" \
  -H "x-api-key: <your-api-key>"

Example answer

{
  "id": 432423,
  "label": "Aginum Thermae",
  "currency": "EUR",
  "location": "Location",
  "are_children_accepted": true,
  "cancellation_hours_limit": 24,
  "cares": [
    {
      "id": 432423,
      "label": "Anti-Aging",
      "sub_category": "Anti-aging",
      "duration": 60,
      "total_duration": 75,
      "price": {
        "value": 44,
        "currency": "EUR"
      }
    }
  ]
}

info: Réutilisez les identifiants de soin retournés dans l’étape de disponibilité. Les métadonnées spa servent aussi à afficher les coordonnées et les règles d’annulation avant réservation.


Codes de réponse

  • 200 : informations spa retournées avec succès.
  • 400 : requête invalide ou erreur de validation.
  • 404 : produit inconnu ou aucun spa exposé pour le produit ciblé.
GET/v0/products/{product_id}/spas
Voir plus
2

Vérifier les disponibilités d’un soin

Obligatoire

Utilisez GET/v0/products/{product_id}/spas/cares/{care_code} pour récupérer les créneaux disponibles d’un soin pour le produit sélectionné.

Prérequis

  • Header accept-language
  • Header x-api-key
  • Path product_id
  • Path care_code
  • Query optionnelle date_format
  • Query optionnelle start_date
  • Query optionnelle end_date

Calling CURL

curl -X GET "https://api.clubmed.com/v0/products/MPAC/spas/cares/3922446?start_date=2022-04-15T10:23:00.234Z&end_date=2022-04-16T10:23:00.234Z&date_format=ISO" \
  -H "accept-language: fr-FR" \
  -H "x-api-key: <your-api-key>"

Example answer

[
  {
    "start_date_time": "2022-04-15T10:23:00.234Z",
    "end_date_time": "2022-04-15T10:23:00.234Z",
    "employees": [
      {
        "id": 432423,
        "name": "Thomas",
        "gender": "MALE"
      }
    ]
  }
]

info: Utilisez cette réponse pour laisser le client choisir un créneau et, si besoin, un praticien avant la création du rendez-vous.


Codes de réponse

  • 200 : disponibilités retournées avec succès.
  • 400 : plage de dates invalide, code soin invalide, requête invalide ou erreur de validation.
  • 404 : produit inconnu ou soin inaccessible pour le produit ciblé.
GET/v0/products/{product_id}/spas/cares/{care_code}
Voir plus
3

Récupérer les rendez-vous spa existants

Optionnel

Utilisez GET/v0/customers/{customer_id}/bookings/{booking_id}/spas pour lister les rendez-vous spa déjà rattachés à un booking avant d’en ajouter un nouveau ou d’en annuler un.

Prérequis

  • Header authorization
  • Header accept-language
  • Header x-api-key
  • Path customer_id
  • Path booking_id
  • Query requise product_id
  • Query optionnelle date_format

Calling CURL

curl -X GET "https://api.clubmed.com/v0/customers/123456789/bookings/0123456789/spas?product_id=MPAC&date_format=ISO" \
  -H "authorization: Bearer <token>" \
  -H "accept-language: fr-FR" \
  -H "x-api-key: <your-api-key>"

Example answer

[
  {
    "booking_number": "100565795179",
    "appointment_id": 565795179,
    "order_id": 710834209,
    "status": "Confirmed",
    "start_date_time": "2022-04-15T10:23:00.234Z",
    "end_date_time": "2022-04-15T10:23:00.234Z",
    "price": {
      "value": 105,
      "currency": "EUR"
    },
    "spa_care": {
      "id": 432423,
      "label": "Anti-Aging"
    }
  }
]

info: La réponse fournit les identifiants de rendez-vous nécessaires pour cibler une annulation et aide à éviter la création de doublons sur le même booking.


Codes de réponse

  • 200 : rendez-vous spa existants retournés avec succès.
  • 400 : product_id manquant, requête invalide ou erreur de validation.
  • 401 : authentification invalide ou absente.
  • 404 : booking introuvable pour le client ciblé.
GET/v0/customers/{customer_id}/bookings/{booking_id}/spas
Voir plus
4

Réserver le rendez-vous spa

Obligatoire

Utilisez POST/v0/customers/{customer_id}/bookings/{booking_id}/spas pour créer un rendez-vous spa pour un booking et un client donnés.

Prérequis

  • Header authorization
  • Header accept-language
  • Header x-api-key
  • Path customer_id
  • Path booking_id
  • La route attend un body. Son schéma complet exact n’est pas visible dans l’extrait de contrat disponible, mais il doit porter le créneau choisi et le contexte de réservation.

Calling CURL

curl -X POST "https://api.clubmed.com/v0/customers/123456789/bookings/0123456789/spas" \
  -H "authorization: Bearer <token>" \
  -H "accept-language: fr-FR" \
  -H "x-api-key: <your-api-key>" \
  -H "Content-Type: application/json"

Example answer

{
  "booking_number": "100565795179",
  "appointment_id": 565795179,
  "order_id": 710834209,
  "status": "Confirmed",
  "price": {
    "value": 105,
    "currency": "EUR"
  },
  "upsells": [
    {
      "id": 432423,
      "label": "Anti-Aging",
      "type": "AFTER"
    }
  ]
}

info: Conservez immédiatement l’appointment_id retourné si votre canal permet une annulation ultérieure ou une page de récapitulatif.


Codes de réponse

  • 200 : rendez-vous créé avec succès.
  • 400 : requête invalide, erreur de validation ou JSON invalide.
  • 401 : authentification invalide ou absente.
  • 404 : booking introuvable pour le client ciblé.
  • 409 : une demande de réservation existe déjà pour les mêmes critères.
POST/v0/customers/{customer_id}/bookings/{booking_id}/spas
Voir plus
5

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écédemment réservé.

Prérequis

  • Header authorization
  • Header accept-language
  • Header x-api-key
  • Path customer_id
  • Path booking_id
  • Path appointment_id

Calling CURL

curl -X DELETE "https://api.clubmed.com/v0/customers/123456789/bookings/0123456789/spas/565795179" \
  -H "authorization: Bearer <token>" \
  -H "accept-language: fr-FR" \
  -H "x-api-key: <your-api-key>"

Example answer

HTTP/1.1 204 No Content

info: Aucun body n’est retourné en cas de succès. Conservez l’identifiant du rendez-vous depuis l’étape de consultation ou de réservation pour cibler la bonne annulation.


Codes de réponse

  • 204 : rendez-vous annulé avec succès.
  • 400 : requête invalide ou erreur de validation.
  • 401 : authentification invalide ou absente.
  • 404 : booking ou rendez-vous introuvable pour le client ciblé.
DELETE/v0/customers/{customer_id}/bookings/{booking_id}/spas/{appointment_id}
Voir plus