Enregistrer et consulter des propositions pour un client

  • Customers
  • Réservation
  • 4 routes
Comment rechercher, enregistrer puis consulter des propositions pour un client ?

Ce scénario explique comment créer une proposition, qualifier ses participants, enregistrer une synthèse de proposition dans un compte client puis relire les synthèses sauvegardées plus tard.

Vue d'ensemble

La séquence POST/v3/proposals/search -> PUT/v3/proposals/{proposal_id}/attendees -> POST/v0/customers/{customer_id}/proposals_summary -> GET/v0/customers/{customer_id}/proposals_summary permet à un opérateur de persister des instantanés de proposition pour une réutilisation ultérieure.

Prérequis

  • Le customer_id doit identifier un compte client existant.
  • Une proposition doit exister avant d'associer des participants ou de sauvegarder une synthèse.
  • accept-language et x-api-key sont requis sur les appels documentés.

Process workflow

Legend:
Obligatoire
Optionnel
1

Rechercher une proposition

Obligatoire

Utilisez POST/v3/proposals/search pour générer une proposition candidate à partir de critères de séjour avant de la rattacher à un compte client.

Prérequis

  • Header accept-language
  • Header x-api-key
  • Header optionnel authorization
  • Le body porte les critères de séjour, le contexte produit et la composition voyageurs. Le schéma complet exact du body n’est pas entièrement visible dans l’extrait de contrat disponible.

Calling CURL

curl -X POST "https://api.clubmed.com/v3/proposals/search" \
  -H "accept-language: fr-FR" \
  -H "x-api-key: <your-api-key>" \
  -H "authorization: Bearer <token>" \
  -H "Content-Type: application/json"

Example answer

{
  "id": "123456",
  "product_id": "MPAC",
  "package_id": "AI",
  "resort_arrival_date": "2022-04-15T10:23:00.234Z",
  "resort_departure_date": "2022-04-15T10:23:00.234Z",
  "price": {
    "total": 9815.4,
    "currency": "EUR"
  },
  "accommodations": [
    {
      "id": "C",
      "quantity": "1",
      "shared_room": false
    }
  ],
  "option_available": true
}

info: Conservez l’id retourné comme proposal_id. Si la réponse expose aussi alternative_price, option_durability ou remaining_stock, réutilisez-les pour enrichir le résumé commercial affiché au client.


Codes de réponse

  • 200 : proposition retournée avec succès.
  • 400 : critères de réservation invalides ou incohérents, option de départ invalide, erreur de validation ou JSON invalide.
  • 401 : authentification invalide ou absente.
  • 403 : au moins un contexte client ou vendeur n’est pas autorisé à poursuivre.
  • 404 : produit inconnu.
  • 409 : les critères de proposition ne sont plus valides ou le contrôle économique n’est plus exploitable.
POST/v3/proposals/search
Voir plus
2

Associer les participants à la proposition

Obligatoire

Utilisez PUT/v3/proposals/{proposal_id}/attendees pour rattacher les identités voyageurs à la proposition issue de l’étape de recherche avant de la sauvegarder dans un compte client.

Prérequis

  • Header accept-language
  • Header x-api-key
  • Header authorization
  • Path proposal_id
  • Query optionnelle partner_type
  • Query optionnelle call_id
  • Le body porte la liste des participants à associer. Le schéma complet exact du body n’est pas entièrement visible dans l’extrait de contrat disponible.

Calling CURL

curl -X PUT "https://api.clubmed.com/v3/proposals/123456/attendees" \
  -H "accept-language: fr-FR" \
  -H "authorization: Bearer <token>" \
  -H "x-api-key: <your-api-key>" \
  -H "Content-Type: application/json"

Example answer

[
  {
    "attendees": [
      {
        "id": "A",
        "customer_id": "123456789",
        "customer_status": "NEW_CUSTOMER",
        "loyalty_status": "GOLD"
      }
    ]
  }
]

info: Réutilisez le mapping entre participant et client renvoyé par cette étape dans l’enregistrement suivant. Cela facilite la réouverture de la proposition dans le bon contexte client.


Codes de réponse

  • 200 : participants associés avec succès.
  • 400 : partner_type invalide, document d’identité déjà réutilisé, erreur de validation ou body invalide.
  • 401 : authentification invalide ou absente.
  • 403 : accès interdit.
  • 409 : la proposition n’est plus valide pour le contexte économique demandé.
PUT/v3/proposals/{proposal_id}/attendees
Voir plus
3

Enregistrer la synthèse de proposition pour un client

Obligatoire

Utilisez POST/v0/customers/{customer_id}/proposals_summary pour persister la proposition sélectionnée dans le compte client afin de pouvoir la lister et la rouvrir plus tard.

Prérequis

  • Header accept-language
  • Header authorization
  • Header x-api-key
  • Path customer_id
  • La route attend un body, mais son schéma détaillé n’est pas visible dans l’extrait de contrat disponible. Réutilisez l’identifiant de proposition et le contexte client construits aux étapes précédentes.

Calling CURL

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

Example answer

HTTP/1.1 201 Created

info: La route confirme que la synthèse de proposition est bien enregistrée pour le client. Le body de réponse détaillé n’est pas exposé dans l’extrait de contrat disponible.


Codes de réponse

  • 201 : synthèse de proposition enregistrée avec succès.
  • 400 : requête invalide, erreur de validation ou JSON invalide.
  • 401 : authentification invalide ou absente.
  • 403 : mismatch client, issuer mismatch ou locale mismatch.
POST/v0/customers/{customer_id}/proposals_summary
Voir plus
4

Récupérer les synthèses de propositions sauvegardées

Obligatoire

Utilisez GET/v0/customers/{customer_id}/proposals_summary pour lister les synthèses de proposition déjà enregistrées dans le compte d’un client et reprendre un parcours commercial sauvegardé.

Prérequis

  • Header accept-language
  • Header authorization
  • Header x-api-key
  • Path customer_id
  • Query optionnelle date_format
  • Query optionnelle min_reservation_date
  • Query optionnelle max_reservation_date
  • Query optionnelle discount_id

Calling CURL

curl --get "https://api.clubmed.com/v0/customers/123456789/proposals_summary" \
  -H "accept-language: fr-FR" \
  -H "authorization: Bearer <token>" \
  -H "x-api-key: <your-api-key>" \
  --data-urlencode "date_format=ISO"

Example answer

[
  {
    "id": "1021744",
    "product_id": "MPAC",
    "resort_arrival_date": "2022-04-15",
    "resort_departure_date": "2022-04-15",
    "adults_count": 2,
    "children_count": 4,
    "type": "PRE_BOOKING",
    "is_bookable": true,
    "transport_summary": {
      "transport_type": "PLANE",
      "departure_city": "BRUXELLES",
      "arrival_city": "MARRAKECH"
    },
    "reservation_date": "2022-04-15"
  }
]

info: Réutilisez l’id de synthèse retourné, les dates de voyage et le contexte transport pour reconstruire un historique de propositions ou reprendre une conversation client sur une recherche déjà sauvegardée.


Codes de réponse

  • 200 : synthèses de proposition retournées avec succès.
  • 400 : filtres de date invalides, filtre promotion invalide, erreur de validation, ou promotion déjà appliquée ou déjà utilisée.
  • 401 : authentification invalide ou absente.
  • 403 : mismatch client, issuer mismatch ou locale mismatch.
  • 404 : aucune ressource accessible trouvée pour le contexte demandé.
GET/v0/customers/{customer_id}/proposals_summary
Voir plus