Recherche avec transport

  • Transport
  • 4 routes
Comment rechercher une proposition puis appliquer une autre option de transport ?

Ce scénario explique comment rechercher une proposition avec transport, consulter le transport actuellement attaché, comparer les alternatives puis appliquer l'option retenue. Il convient aux parcours shopping et d'ajustement de proposition avec changement de transport.

Le flux commence par la recherche de proposition, puis réutilise le proposal_id pour consulter, comparer et mettre à jour le transport.

Vue d'ensemble

Ce scénario aide une application à gérer les choix de transport sur une proposition qui comporte déjà un contexte transport.

Prérequis

  • Les critères nécessaires à la création d'une proposition avec transport.
  • Un header accept-language valide et une x-api-key.
  • Le proposal_id retourné par la recherche pour poursuivre le flux transport.

Résultat attendu

L'application peut afficher l'itinéraire courant, comparer les alternatives disponibles et appliquer le transport retenu à la proposition avant la suite du parcours commercial.

Process workflow

Legend:
Obligatoire
Optionnel
1

Rechercher des propositions avec transport

Obligatoire

Utilisez POST/v3/proposals/search pour rechercher des propositions integrant des criteres de reservation avec transport et obtenir un proposal_id reutilisable dans les etapes suivantes.

Prerequis

  • Envoyer accept-language et x-api-key.
  • Ajouter authorization lorsque votre contexte exige un utilisateur authentifie.
  • Preparer des criteres de reservation coherents avec le produit, les dates, les participants et la ville de depart.

Calling CURL

curl -X 'POST' \
  'https://api.clubmed.com/v3/proposals/search' \
  -H 'accept: application/json' \
  -H 'accept-language: fr-FR' \
  -H 'authorization: Bearer YOUR_TOKEN' \
  -H 'x-api-key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{ ... }'

Example answer

[
  {
    "id": "123456",
    "product_id": "MPAC",
    "price": {
      "total": 9815.4,
      "currency": "EUR"
    },
    "remaining_stock": 2,
    "transportation_summary": [
      {
        "departure_city": "Paris",
        "arrival_city": "Denpensar",
        "transportation_type": "PLANE"
      }
    ]
  }
]

info: Conservez le proposal_id retourne et reutilisez la meme locale sur tout le flux transport pour eviter des options incoherentes.


Codes de reponse

  • OK Response (200): retourne une ou plusieurs propositions correspondant aux criteres transport soumis.
  • Error (400): les criteres sont invalides ou incompatibles avec le contexte transport.
  • Error (401): l'authentification est absente, invalide ou expiree.
  • Error (403): l'appelant n'est pas autorise a utiliser les criteres soumis.
  • Error (404): le produit demande est inconnu.
  • Error (409): les criteres de proposition ne sont plus valides.
POST/v3/proposals/search
Voir plus
2

Consulter le transport actuellement attache

Obligatoire

Utilisez GET/v5/proposals/{proposal_id}/transport_details pour recuperer le transport actuellement rattache a la proposition avant de le comparer ou de le remplacer.

Prerequis

  • Reutiliser un proposal_id valide.
  • Envoyer accept-language et x-api-key.
  • Appeler cette etape apres la recherche de proposition afin de partir d'une proposition eligible au transport.

Calling CURL

curl -X 'GET' \
  'https://api.clubmed.com/v5/proposals/123456/transport_details' \
  -H 'accept: application/json' \
  -H 'accept-language: fr-FR' \
  -H 'x-api-key: YOUR_API_KEY'

Example answer

{
  "journeys": [
    {
      "departure_city": "Paris",
      "arrival_city": "Punta Cana",
      "transportation_type": "PLANE"
    }
  ]
}

info: v5 est la derniere route non depreciee disponible dans le Swagger canonique pour les details de transport d'une proposition.


Codes de reponse

  • OK Response (200): retourne le transport actuellement rattache a la proposition.
  • Error (400): la proposition n'est pas eligible aux mises a jour transport ou la requete est invalide.
  • Error (401): non documente dans le Swagger.
  • Error (404): la proposition est introuvable.
GET/v5/proposals/{proposal_id}/transport_details
Voir plus
3

Lister le transport applique et les alternatives

Obligatoire

Utilisez POST/v1/proposals/{proposal_id}/available_transports pour recuperer le transport deja applique a la proposition ainsi que les options alternatives encore selectionnables.

Prerequis

  • Reutiliser un proposal_id valide.
  • Envoyer accept-language et x-api-key.
  • Appeler cette etape apres avoir consulte le transport actuellement rattache.

Calling CURL

curl -X 'POST' \
  'https://api.clubmed.com/v1/proposals/123456/available_transports' \
  -H 'accept: application/json' \
  -H 'accept-language: fr-FR' \
  -H 'x-api-key: YOUR_API_KEY'

Example answer

[
  {
    "applied": true,
    "time_validity_limit": "2026-04-15T10:23:00.234Z",
    "total_differential_price": {
      "amount": 0,
      "currency": "EUR"
    }
  }
]

info: Comparez le differentiel de prix et la limite de validite avant de persister une nouvelle option de transport sur la proposition.


Codes de reponse

  • OK Response (200): retourne le transport applique et les alternatives selectionnables pour la proposition.
  • Error (400): la proposition n'est pas eligible au transport ou la requete est invalide.
  • Error (401): non documente dans le Swagger.
  • Error (404): la proposition est introuvable.
POST/v1/proposals/{proposal_id}/available_transports
Voir plus
4

Appliquer le transport selectionne

Obligatoire

Utilisez POST/v5/proposals/{proposal_id}/transport_details pour persister le transport retenu par l'utilisateur une fois l'option preferee identifiee.

Prerequis

  • Reutiliser un proposal_id valide.
  • Envoyer accept-language et x-api-key.
  • Construire le body a partir de l'une des options de transport retournees par les routes precedentes.

Calling CURL

curl -X 'POST' \
  'https://api.clubmed.com/v5/proposals/123456/transport_details' \
  -H 'accept: application/json' \
  -H 'accept-language: fr-FR' \
  -H 'x-api-key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{ ... }'

Example answer

{
  "journeys": [
    {
      "departure_city": "Paris",
      "arrival_city": "Punta Cana",
      "transportation_type": "PLANE"
    }
  ],
  "time_validity_limit": "2026-04-15T10:23:00.234Z"
}

info: Construisez le body POST a partir d'une option precedemment listee plutot que d'inventer un payload transport.


Codes de reponse

  • OK Response (200): retourne le transport desormais rattache a la proposition.
  • Error (400): la proposition n'est pas eligible au transport ou la selection soumise est invalide.
  • Error (401): non documente dans le Swagger.
  • Error (404): la proposition est introuvable ou le vol selectionne n'est plus disponible.
POST/v5/proposals/{proposal_id}/transport_details
Voir plus