Discount Cards
Particularly in rail transport, it is common for carriers to offer discounts in the form of loyalty cards, vouchers or other mechanisms. Distribusion supports retrieving and booking these reduced fares through the API.
Please note that this is an enterprise API feature. Reach out to your Partnership Manager for more information about unlocking this and other advanced features.
Discounts Supported
Distribusion supports several types of discounts/special offers:
- Discount Cards: with fixed discount value or percentage: E.g. Eurostar/SNCF Corporate and Negotiated Fares. Deutsche Bahn’s Bahncard 50, Trenitalia’s Carta Verde, or PKP’s Big Family Card. This type of discount may require the input of proof and/or an association with a particular passenger type, e.g. a student discount might require the input of a student ID number and Adult as a passenger type.
- Loyalty Programs: E.g. Amtrak Guest Rewards.
- One-time Vouchers, Promo Codes: E.g. summer campaign voucher.
Detailed information about the discounts supported by a specific carrier can be fetched via /cards endpoint. Information retreived from this endpoint is useful to generate descriptions and input fields to be displayed in the user interface.
Parameters
card_type: Type of an offer e.g. discount_card, loyalty, othername: Unique name-id of the cardmarketing_name: Localized text name of the discount card that can include spaces or special characterssupported_carriers_fares[]: List of marketing codes of carriers and fare classes, for filtering compatible offersrequires_code: If a card number/code needs to be validated during ordering to succesfully add the card (boolean)requires_presenting_card: If passenger is required to keep and present the card along with the ticket for it to be valid (boolean)context: Specifies the entity to which the card will be bound to provide its resulting advantage. Available options: Pax, Segment, Bookingdescription: Localized text description of given discount/promo
Context Types
There are 2 types of discount cards available from Distribusion. They can apply to specific passengers, segments or to the whole booking. This can be seen from context type, the card has to be applied at pax , segment or booking level.
When pushing the card details in the /connections/find and /connections/vacancy requests, use the correct JSON structure. If at the passenger level, include the cards array inside the specific passenger object within the passengers array. If at the booking level, use the root-level cards array.
Card Application
The Distribusion API supports various card types to provide discounted fares or enable loyalty tracking. Depending on the card type, they must be included at different stages of the search and booking flow.
Discount Cards
These are identified with the tag discount_card.
- When to add: Include these at the very beginning of the flow in the /connections/find request.
- Purpose: This ensures the search results return the best available price for the customer.
- Note on Carrier Support: While most carriers return the discounted price immediately in the search response, some carriers only apply the discount during the reservation step. In these cases, the price will update when calling /reservations/create.
Loyalty Cards
These are identified with the tag loyalty.
- When to add: These should typically be included at the checkout step in the /reservations/create request.
- Purpose: Loyalty cards generally do not affect the ticket price. Instead, they allow the carrier to track the journey and grant loyalty points or benefits to the passenger.
Verifying Applied Cards
Regardless of the card type or workflow stage, you can verify if a card was successfully processed by checking the response. If Distribusion and the carrier successfully process the card details, the response will include the card details within the applied_cards relationship array. For some carriers, the applied_cards array might return empty even though the cards were processed successfully.
API Workflow
Discounts can be leveraged through the API by filling the optional parameters at each step of the search and book workflow:
- Fetch supported discount card types from the
/cardsendpoint. - Search for a trip with /connections/find and specify the precise passenger types and cards.
- The price returned will include the corresponding discount, or new fare classes will become available.
- When confirming the availability with the
/connections/vacancy, again specify the applied discount cards. - Create the reservation with the
/reservations/createendpoint while specifying the applied discount cards. - Continue with the Basic Integration flow.
API Examples
Sample Request to /cards
https://api.demo.distribusion.com/retailers/v4/cards?locale=en&marketing_carriers[]=STES
Sample Response from /cards
{
"data": [
{
"id": "DISTRIBUTION_AGREEMENT_EUROSTAR_STES",
"type": "cards",
"attributes": {
"card_type": "discount_card",
"carrier_card_id": "EUROSTAR",
"name": "DISTRIBUTION_AGREEMENT_EUROSTAR_STES",
"requires_code": true,
"requires_presenting_card": false,
"marketing_name": "Distribution agreement - Eurostar",
"description": "Distribution agreement for Eurostar",
"context": "pax",
"supported_carrier_fares": [
{
"marketing_carrier_code": "STES",
"fare_class_code": "FARE-1",
"supports_all_fare_classes": false,
"supports_all_carriers": false,
"discount_value": null,
"discount_type": null
},
{
"marketing_carrier_code": "STES",
"fare_class_code": "FARE-2",
"supports_all_fare_classes": false,
"supports_all_carriers": false,
"discount_value": null,
"discount_type": null
},
{
"marketing_carrier_code": "STES",
"fare_class_code": "FARE-3",
"supports_all_fare_classes": false,
"supports_all_carriers": false,
"discount_value": null,
"discount_type": null
},
{
"marketing_carrier_code": "STES",
"fare_class_code": "FARE-4",
"supports_all_fare_classes": false,
"supports_all_carriers": false,
"discount_value": null,
"discount_type": null
},
{
"marketing_carrier_code": "STES",
"fare_class_code": "FARE-5",
"supports_all_fare_classes": false,
"supports_all_carriers": false,
"discount_value": null,
"discount_type": null
},
{
"marketing_carrier_code": "STES",
"fare_class_code": "FARE-6",
"supports_all_fare_classes": false,
"supports_all_carriers": false,
"discount_value": null,
"discount_type": null
}
],
"supported_passenger_type_codes": [
"PNOS",
"PSOE",
"PCIL",
"PYPO",
"PINT"
],
"flow_type": "live",
"source": "carrier",
"supports_all_passenger_types": false,
"expiration_date": null,
"status": "active",
"retailers": [],
"supports_all_retailers": true,
"requires_validity_from": false,
"requires_validity_until": false
}
},
{
"id": "ADVANTAGE_LIBERTE_STES",
"type": "cards",
"attributes": {
"card_type": "discount_card",
"carrier_card_id": "PLIB",
"name": "ADVANTAGE_LIBERTE_STES",
"requires_code": true,
"requires_presenting_card": false,
"marketing_name": "Liberte Discount Card ",
"description": "Liberte Discount Card ",
"context": "pax",
"supported_carrier_fares": [
{
"marketing_carrier_code": "STES",
"fare_class_code": "FARE-1",
"supports_all_fare_classes": false,
"supports_all_carriers": false,
"discount_value": null,
"discount_type": null
},
{
"marketing_carrier_code": "STES",
"fare_class_code": "FARE-2",
"supports_all_fare_classes": false,
"supports_all_carriers": false,
"discount_value": null,
"discount_type": null
},
{
"marketing_carrier_code": "STES",
"fare_class_code": "FARE-3",
"supports_all_fare_classes": false,
"supports_all_carriers": false,
"discount_value": null,
"discount_type": null
},
{
"marketing_carrier_code": "STES",
"fare_class_code": "FARE-4",
"supports_all_fare_classes": false,
"supports_all_carriers": false,
"discount_value": null,
"discount_type": null
},
{
"marketing_carrier_code": "STES",
"fare_class_code": "FARE-5",
"supports_all_fare_classes": false,
"supports_all_carriers": false,
"discount_value": null,
"discount_type": null
},
{
"marketing_carrier_code": "STES",
"fare_class_code": "FARE-6",
"supports_all_fare_classes": false,
"supports_all_carriers": false,
"discount_value": null,
"discount_type": null
}
],
"supported_passenger_type_codes": [
"PNOS",
"PSOE",
"PCIL",
"PYPO",
"PINT"
],
"flow_type": "live",
"source": "carrier",
"supports_all_passenger_types": false,
"expiration_date": null,
"status": "active",
"retailers": [],
"supports_all_retailers": true,
"requires_validity_from": false,
"requires_validity_until": false
}
},
{
"id": "ADVANTAGE_FAMILLE30_SNCF",
"type": "cards",
"attributes": {
"card_type": "discount_card",
"carrier_card_id": "FN30",
"name": "ADVANTAGE_FAMILLE30_SNCF",
"requires_code": false,
"requires_presenting_card": false,
"marketing_name": "Family Discount Card 30%",
"description": "Family Discount Card 30%",
"context": "pax",
"supported_carrier_fares": [
{
"marketing_carrier_code": "STES",
"fare_class_code": "FARE-1",
"supports_all_fare_classes": false,
"supports_all_carriers": false,
"discount_value": null,
"discount_type": null
},
{
"marketing_carrier_code": "STES",
"fare_class_code": "FARE-2",
"supports_all_fare_classes": false,
"supports_all_carriers": false,
"discount_value": null,
"discount_type": null
},
{
"marketing_carrier_code": "STES",
"fare_class_code": "FARE-3",
"supports_all_fare_classes": false,
"supports_all_carriers": false,
"discount_value": null,
"discount_type": null
},
{
"marketing_carrier_code": "STES",
"fare_class_code": "FARE-4",
"supports_all_fare_classes": false,
"supports_all_carriers": false,
"discount_value": null,
"discount_type": null
},
{
"marketing_carrier_code": "STES",
"fare_class_code": "FARE-5",
"supports_all_fare_classes": false,
"supports_all_carriers": false,
"discount_value": null,
"discount_type": null
},
{
"marketing_carrier_code": "STES",
"fare_class_code": "FARE-6",
"supports_all_fare_classes": false,
"supports_all_carriers": false,
"discount_value": null,
"discount_type": null
}
],
"supported_passenger_type_codes": [
"PNOS",
"PSOE",
"PCIL",
"PYPO",
"PINT"
],
"flow_type": "live",
"source": "carrier",
"supports_all_passenger_types": false,
"expiration_date": null,
"status": "active",
"retailers": [],
"supports_all_retailers": true,
"requires_validity_from": false,
"requires_validity_until": false
}
},
{
"id": "LOYALTY_CLUB_EUROSTAR",
"type": "cards",
"attributes": {
"card_type": "loyalty",
"carrier_card_id": "Loyalty_eurostar",
"name": "LOYALTY_CLUB_EUROSTAR",
"requires_code": true,
"requires_presenting_card": false,
"marketing_name": "Club Eurostar",
"description": "Club Eurostar Loyalty Card",
"context": "pax",
"supported_carrier_fares": [
{
"marketing_carrier_code": "STES",
"fare_class_code": "FARE-1",
"supports_all_fare_classes": false,
"supports_all_carriers": false,
"discount_value": null,
"discount_type": null
},
{
"marketing_carrier_code": "STES",
"fare_class_code": "FARE-2",
"supports_all_fare_classes": false,
"supports_all_carriers": false,
"discount_value": null,
"discount_type": null
},
{
"marketing_carrier_code": "STES",
"fare_class_code": "FARE-3",
"supports_all_fare_classes": false,
"supports_all_carriers": false,
"discount_value": null,
"discount_type": null
},
{
"marketing_carrier_code": "STES",
"fare_class_code": "FARE-4",
"supports_all_fare_classes": false,
"supports_all_carriers": false,
"discount_value": null,
"discount_type": null
},
{
"marketing_carrier_code": "STES",
"fare_class_code": "FARE-5",
"supports_all_fare_classes": false,
"supports_all_carriers": false,
"discount_value": null,
"discount_type": null
},
{
"marketing_carrier_code": "STES",
"fare_class_code": "FARE-6",
"supports_all_fare_classes": false,
"supports_all_carriers": false,
"discount_value": null,
"discount_type": null
}
],
"supported_passenger_type_codes": [
"PNOS",
"PSOE",
"PCIL",
"PYPO",
"PINT"
],
"flow_type": "live",
"source": "carrier",
"supports_all_passenger_types": false,
"expiration_date": null,
"status": "active",
"retailers": [],
"supports_all_retailers": true,
"requires_validity_from": false,
"requires_validity_until": false
}
},
{
"id": "LOYALTY_GRAND_VOYAGEUR",
"type": "cards",
"attributes": {
"card_type": "loyalty",
"carrier_card_id": "loyalty",
"name": "LOYALTY_GRAND_VOYAGEUR",
"requires_code": true,
"requires_presenting_card": false,
"marketing_name": "Grand Voyageur",
"description": "Grand Voyageur",
"context": "pax",
"supported_carrier_fares": [
{
"marketing_carrier_code": "STES",
"fare_class_code": "FARE-1",
"supports_all_fare_classes": false,
"supports_all_carriers": false,
"discount_value": null,
"discount_type": null
},
{
"marketing_carrier_code": "STES",
"fare_class_code": "FARE-2",
"supports_all_fare_classes": false,
"supports_all_carriers": false,
"discount_value": null,
"discount_type": null
},
{
"marketing_carrier_code": "STES",
"fare_class_code": "FARE-3",
"supports_all_fare_classes": false,
"supports_all_carriers": false,
"discount_value": null,
"discount_type": null
},
{
"marketing_carrier_code": "STES",
"fare_class_code": "FARE-4",
"supports_all_fare_classes": false,
"supports_all_carriers": false,
"discount_value": null,
"discount_type": null
},
{
"marketing_carrier_code": "STES",
"fare_class_code": "FARE-5",
"supports_all_fare_classes": false,
"supports_all_carriers": false,
"discount_value": null,
"discount_type": null
},
{
"marketing_carrier_code": "STES",
"fare_class_code": "FARE-6",
"supports_all_fare_classes": false,
"supports_all_carriers": false,
"discount_value": null,
"discount_type": null
}
],
"supported_passenger_type_codes": [
"PNOS",
"PSOE",
"PCIL",
"PYPO",
"PINT"
],
"flow_type": "live",
"source": "carrier",
"supports_all_passenger_types": false,
"expiration_date": null,
"status": "active",
"retailers": [],
"supports_all_retailers": true,
"requires_validity_from": false,
"requires_validity_until": false
}
},
{
"id": "LOYALTY_GRAND_VOYAGEUR_LE_CLUB",
"type": "cards",
"attributes": {
"card_type": "loyalty",
"carrier_card_id": "loyalty_leclub",
"name": "LOYALTY_GRAND_VOYAGEUR_LE_CLUB",
"requires_code": true,
"requires_presenting_card": false,
"marketing_name": "Grand Voyageur Le Club",
"description": "Grand Voyageur Le Club",
"context": "pax",
"supported_carrier_fares": [
{
"marketing_carrier_code": "STES",
"fare_class_code": "FARE-1",
"supports_all_fare_classes": false,
"supports_all_carriers": false,
"discount_value": null,
"discount_type": null
},
{
"marketing_carrier_code": "STES",
"fare_class_code": "FARE-2",
"supports_all_fare_classes": false,
"supports_all_carriers": false,
"discount_value": null,
"discount_type": null
},
{
"marketing_carrier_code": "STES",
"fare_class_code": "FARE-3",
"supports_all_fare_classes": false,
"supports_all_carriers": false,
"discount_value": null,
"discount_type": null
},
{
"marketing_carrier_code": "STES",
"fare_class_code": "FARE-4",
"supports_all_fare_classes": false,
"supports_all_carriers": false,
"discount_value": null,
"discount_type": null
},
{
"marketing_carrier_code": "STES",
"fare_class_code": "FARE-5",
"supports_all_fare_classes": false,
"supports_all_carriers": false,
"discount_value": null,
"discount_type": null
},
{
"marketing_carrier_code": "STES",
"fare_class_code": "FARE-6",
"supports_all_fare_classes": false,
"supports_all_carriers": false,
"discount_value": null,
"discount_type": null
}
],
"supported_passenger_type_codes": [
"PNOS",
"PSOE",
"PCIL",
"PYPO",
"PINT"
],
"flow_type": "live",
"source": "carrier",
"supports_all_passenger_types": false,
"expiration_date": null,
"status": "active",
"retailers": [],
"supports_all_retailers": true,
"requires_validity_from": false,
"requires_validity_until": false
}
},
{
"id": "DISTRIBUTION_AGREEMENT_SNCF_STES",
"type": "cards",
"attributes": {
"card_type": "discount_card",
"carrier_card_id": "SNCF",
"name": "DISTRIBUTION_AGREEMENT_SNCF_STES",
"requires_code": true,
"requires_presenting_card": false,
"marketing_name": "Distribution agreement - SNCF",
"description": "Distribution agreement for SNCF",
"context": "pax",
"supported_carrier_fares": [
{
"marketing_carrier_code": "STES",
"fare_class_code": "FARE-1",
"supports_all_fare_classes": false,
"supports_all_carriers": false,
"discount_value": null,
"discount_type": null
},
{
"marketing_carrier_code": "STES",
"fare_class_code": "FARE-2",
"supports_all_fare_classes": false,
"supports_all_carriers": false,
"discount_value": null,
"discount_type": null
},
{
"marketing_carrier_code": "STES",
"fare_class_code": "FARE-3",
"supports_all_fare_classes": false,
"supports_all_carriers": false,
"discount_value": null,
"discount_type": null
},
{
"marketing_carrier_code": "STES",
"fare_class_code": "FARE-4",
"supports_all_fare_classes": false,
"supports_all_carriers": false,
"discount_value": null,
"discount_type": null
},
{
"marketing_carrier_code": "STES",
"fare_class_code": "FARE-5",
"supports_all_fare_classes": false,
"supports_all_carriers": false,
"discount_value": null,
"discount_type": null
},
{
"marketing_carrier_code": "STES",
"fare_class_code": "FARE-6",
"supports_all_fare_classes": false,
"supports_all_carriers": false,
"discount_value": null,
"discount_type": null
}
],
"supported_passenger_type_codes": [
"PNOS",
"PSOE",
"PCIL",
"PYPO",
"PINT"
],
"flow_type": "live",
"source": "carrier",
"supports_all_passenger_types": false,
"expiration_date": null,
"status": "active",
"retailers": [],
"supports_all_retailers": true,
"requires_validity_from": false,
"requires_validity_until": false
}
},
{
"id": "RIT_SVI",
"type": "cards",
"attributes": {
"card_type": "discount_card",
"carrier_card_id": "RIT_SVI",
"name": "RIT_SVI",
"requires_code": true,
"requires_presenting_card": false,
"marketing_name": "RIT_SVI",
"description": "RIT_SVI",
"context": "pax",
"supported_carrier_fares": [
{
"marketing_carrier_code": "STES",
"fare_class_code": "FARE-1",
"supports_all_fare_classes": false,
"supports_all_carriers": false,
"discount_value": null,
"discount_type": null
},
{
"marketing_carrier_code": "STES",
"fare_class_code": "FARE-2",
"supports_all_fare_classes": false,
"supports_all_carriers": false,
"discount_value": null,
"discount_type": null
},
{
"marketing_carrier_code": "STES",
"fare_class_code": "FARE-3",
"supports_all_fare_classes": false,
"supports_all_carriers": false,
"discount_value": null,
"discount_type": null
},
{
"marketing_carrier_code": "STES",
"fare_class_code": "FARE-4",
"supports_all_fare_classes": false,
"supports_all_carriers": false,
"discount_value": null,
"discount_type": null
},
{
"marketing_carrier_code": "STES",
"fare_class_code": "FARE-5",
"supports_all_fare_classes": false,
"supports_all_carriers": false,
"discount_value": null,
"discount_type": null
},
{
"marketing_carrier_code": "STES",
"fare_class_code": "FARE-6",
"supports_all_fare_classes": false,
"supports_all_carriers": false,
"discount_value": null,
"discount_type": null
}
],
"supported_passenger_type_codes": [
"PNOS"
],
"flow_type": "live",
"source": "carrier",
"supports_all_passenger_types": false,
"expiration_date": null,
"status": "active",
"retailers": [],
"supports_all_retailers": true,
"requires_validity_from": false,
"requires_validity_until": false
}
},
{
"id": "RIT_SNCF",
"type": "cards",
"attributes": {
"card_type": "discount_card",
"carrier_card_id": "RIT",
"name": "RIT_SNCF",
"requires_code": false,
"requires_presenting_card": false,
"marketing_name": "RIT SNCF Domestic",
"description": "RIT Fares SNCF Domestic",
"context": "booking",
"supported_carrier_fares": [
{
"marketing_carrier_code": "STES",
"fare_class_code": "FARE-1",
"supports_all_fare_classes": false,
"supports_all_carriers": false,
"discount_value": null,
"discount_type": null
},
{
"marketing_carrier_code": "STES",
"fare_class_code": "FARE-2",
"supports_all_fare_classes": false,
"supports_all_carriers": false,
"discount_value": null,
"discount_type": null
},
{
"marketing_carrier_code": "STES",
"fare_class_code": "FARE-3",
"supports_all_fare_classes": false,
"supports_all_carriers": false,
"discount_value": null,
"discount_type": null
},
{
"marketing_carrier_code": "STES",
"fare_class_code": "FARE-4",
"supports_all_fare_classes": false,
"supports_all_carriers": false,
"discount_value": null,
"discount_type": null
},
{
"marketing_carrier_code": "STES",
"fare_class_code": "FARE-5",
"supports_all_fare_classes": false,
"supports_all_carriers": false,
"discount_value": null,
"discount_type": null
},
{
"marketing_carrier_code": "STES",
"fare_class_code": "FARE-6",
"supports_all_fare_classes": false,
"supports_all_carriers": false,
"discount_value": null,
"discount_type": null
}
],
"supported_passenger_type_codes": [
"PNOS",
"PSOE",
"PCIL",
"PYPO",
"PINT"
],
"flow_type": "live",
"source": "carrier",
"supports_all_passenger_types": false,
"expiration_date": null,
"status": "active",
"retailers": [],
"supports_all_retailers": true,
"requires_validity_from": false,
"requires_validity_until": false
}
}
],
"jsonapi": {
"version": "1.0"
},
"meta": {
"locale": "en"
}
}
Sample Request to /connections/find
{
"locale": "en",
"currency": "EUR",
"search_bounds": [
{
"is_requested": true,
"departure_date": "2025-11-30",
"departure_start_time": "10:00",
"departure_end_time": "10:20",
"departure_location": {
"type": "city",
"value": "FRLYS"
},
"arrival_location": {
"type": "city",
"value": "FRPAR"
}
}
],
"passengers": [
{
"pax": 1,
"max_age": 33,
"cards": [
{
"name": "DISTRIBUTION_AGREEMENT_EUROSTAR_STES",
"code": "C002Z62"
}
]
}
]
}
Sample Response from /connections/find
{
"data": [
{
"attributes": {
"arrival_time": "2025-11-30T12:09",
"booked_out": false,
"cheapest_fare_class_code": "FARE-4",
"cheapest_total_adult_price": 4600,
"departure_time": "2025-11-30T10:04",
"duration": 7500,
"electronic_ticket_available": false,
"leg_type": "outbound",
"offer_bundle": null,
"offer_id": null,
"total_seats_left": null
},
"id": "SNCF-FRLYSLYN-FRPARPRG-2025-11-30T10:04-2025-11-30T12:09-0",
"relationships": {
"arrival_station": {
"data": {
"id": "FRPARPRG",
"type": "stations"
}
},
"departure_station": {
"data": {
"id": "FRLYSLYN",
"type": "stations"
}
},
"fares": {
"data": [
{
"fare_class": {
"code": "FARE-4",
"id": "SNCF-FARE-4",
"type": "fare_classes"
},
"id": "SNCF-FRLYSLYN-FRPARPRG-2025-11-30T10:04-2025-11-30T12:09-0-FARE-4-C-pax-33-1-C-0",
"original_price": 4600,
"price": 4600,
"type": "fares"
},
{
"fare_class": {
"code": "FARE-5",
"id": "SNCF-FARE-5",
"type": "fare_classes"
},
"id": "SNCF-FRLYSLYN-FRPARPRG-2025-11-30T10:04-2025-11-30T12:09-0-FARE-5-C-pax-33-1-C-0",
"original_price": 5900,
"price": 5900,
"type": "fares"
},
{
"fare_class": {
"code": "FARE-2",
"id": "SNCF-FARE-2",
"type": "fare_classes"
},
"id": "SNCF-FRLYSLYN-FRPARPRG-2025-11-30T10:04-2025-11-30T12:09-0-FARE-2-C-pax-33-1-C-0",
"original_price": 6300,
"price": 6300,
"type": "fares"
},
{
"fare_class": {
"code": "FARE-1",
"id": "SNCF-FARE-1",
"type": "fare_classes"
},
"id": "SNCF-FRLYSLYN-FRPARPRG-2025-11-30T10:04-2025-11-30T12:09-0-FARE-1-C-pax-33-1-C-0",
"original_price": 16000,
"price": 16000,
"type": "fares"
}
]
},
"marketing_carrier": {
"data": {
"id": "SNCF",
"type": "marketing_carriers"
}
},
"partial_fares": {
"data": []
},
"segments": {
"data": [
{
"id": "SNCF-FRLYSLYN-FRPARPRG-2025-11-30T10:04-2025-11-30T12:09-0-0",
"type": "segments"
}
]
}
},
"type": "connections"
},
{
"attributes": {
"arrival_time": "2025-11-30T12:09",
"booked_out": false,
"cheapest_fare_class_code": "FARE-4",
"cheapest_total_adult_price": 4600,
"departure_time": "2025-11-30T10:04",
"duration": 7500,
"electronic_ticket_available": false,
"leg_type": "outbound",
"offer_bundle": null,
"offer_id": null,
"total_seats_left": null
},
"id": "SNCF-FRLYSLYN-FRPARPRG-2025-11-30T10:04-2025-11-30T12:09-0",
"relationships": {
"arrival_station": {
"data": {
"id": "FRPARPRG",
"type": "stations"
}
},
"departure_station": {
"data": {
"id": "FRLYSLYN",
"type": "stations"
}
},
"fares": {
"data": [
{
"fare_class": {
"code": "FARE-4",
"id": "SNCF-FARE-4",
"type": "fare_classes"
},
"id": "SNCF-FRLYSLYN-FRPARPRG-2025-11-30T10:04-2025-11-30T12:09-0-FARE-4-C-pax-33-1-C-0",
"original_price": 4600,
"price": 4600,
"type": "fares"
},
{
"fare_class": {
"code": "FARE-5",
"id": "SNCF-FARE-5",
"type": "fare_classes"
},
"id": "SNCF-FRLYSLYN-FRPARPRG-2025-11-30T10:04-2025-11-30T12:09-0-FARE-5-C-pax-33-1-C-0",
"original_price": 5900,
"price": 5900,
"type": "fares"
},
{
"fare_class": {
"code": "FARE-2",
"id": "SNCF-FARE-2",
"type": "fare_classes"
},
"id": "SNCF-FRLYSLYN-FRPARPRG-2025-11-30T10:04-2025-11-30T12:09-0-FARE-2-C-pax-33-1-C-0",
"original_price": 6300,
"price": 6300,
"type": "fares"
},
{
"fare_class": {
"code": "FARE-1",
"id": "SNCF-FARE-1",
"type": "fare_classes"
},
"id": "SNCF-FRLYSLYN-FRPARPRG-2025-11-30T10:04-2025-11-30T12:09-0-FARE-1-C-pax-33-1-C-0",
"original_price": 16000,
"price": 16000,
"type": "fares"
}
]
},
"marketing_carrier": {
"data": {
"id": "SNCF",
"type": "marketing_carriers"
}
},
"partial_fares": {
"data": []
},
"segments": {
"data": [
{
"id": "SNCF-FRLYSLYN-FRPARPRG-2025-11-30T10:04-2025-11-30T12:09-0-0",
"type": "segments"
}
]
}
},
"type": "connections"
},
{
"attributes": {
"arrival_time": "2025-11-30T12:09",
"booked_out": false,
"cheapest_fare_class_code": "FARE-4",
"cheapest_total_adult_price": 4600,
"departure_time": "2025-11-30T10:04",
"duration": 7500,
"electronic_ticket_available": false,
"leg_type": "outbound",
"offer_bundle": null,
"offer_id": null,
"total_seats_left": null
},
"id": "SNCF-FRLYSLYN-FRPARPRG-2025-11-30T10:04-2025-11-30T12:09-0",
"relationships": {
"arrival_station": {
"data": {
"id": "FRPARPRG",
"type": "stations"
}
},
"departure_station": {
"data": {
"id": "FRLYSLYN",
"type": "stations"
}
},
"fares": {
"data": [
{
"fare_class": {
"code": "FARE-4",
"id": "SNCF-FARE-4",
"type": "fare_classes"
},
"id": "SNCF-FRLYSLYN-FRPARPRG-2025-11-30T10:04-2025-11-30T12:09-0-FARE-4-C-pax-33-1-C-0",
"original_price": 4600,
"price": 4600,
"type": "fares"
},
{
"fare_class": {
"code": "FARE-5",
"id": "SNCF-FARE-5",
"type": "fare_classes"
},
"id": "SNCF-FRLYSLYN-FRPARPRG-2025-11-30T10:04-2025-11-30T12:09-0-FARE-5-C-pax-33-1-C-0",
"original_price": 5900,
"price": 5900,
"type": "fares"
},
{
"fare_class": {
"code": "FARE-2",
"id": "SNCF-FARE-2",
"type": "fare_classes"
},
"id": "SNCF-FRLYSLYN-FRPARPRG-2025-11-30T10:04-2025-11-30T12:09-0-FARE-2-C-pax-33-1-C-0",
"original_price": 6300,
"price": 6300,
"type": "fares"
},
{
"fare_class": {
"code": "FARE-1",
"id": "SNCF-FARE-1",
"type": "fare_classes"
},
"id": "SNCF-FRLYSLYN-FRPARPRG-2025-11-30T10:04-2025-11-30T12:09-0-FARE-1-C-pax-33-1-C-0",
"original_price": 16000,
"price": 16000,
"type": "fares"
}
]
},
"marketing_carrier": {
"data": {
"id": "SNCF",
"type": "marketing_carriers"
}
},
"partial_fares": {
"data": []
},
"segments": {
"data": [
{
"id": "SNCF-FRLYSLYN-FRPARPRG-2025-11-30T10:04-2025-11-30T12:09-0-0",
"type": "segments"
}
]
}
},
"type": "connections"
},
{
"attributes": {
"arrival_time": "2025-11-30T12:09",
"booked_out": false,
"cheapest_fare_class_code": "FARE-4",
"cheapest_total_adult_price": 4600,
"departure_time": "2025-11-30T10:04",
"duration": 7500,
"electronic_ticket_available": false,
"leg_type": "outbound",
"offer_bundle": null,
"offer_id": null,
"total_seats_left": null
},
"id": "SNCF-FRLYSLYN-FRPARPRG-2025-11-30T10:04-2025-11-30T12:09-0",
"relationships": {
"arrival_station": {
"data": {
"id": "FRPARPRG",
"type": "stations"
}
},
"departure_station": {
"data": {
"id": "FRLYSLYN",
"type": "stations"
}
},
"fares": {
"data": [
{
"fare_class": {
"code": "FARE-4",
"id": "SNCF-FARE-4",
"type": "fare_classes"
},
"id": "SNCF-FRLYSLYN-FRPARPRG-2025-11-30T10:04-2025-11-30T12:09-0-FARE-4-C-pax-33-1-C-0",
"original_price": 4600,
"price": 4600,
"type": "fares"
},
{
"fare_class": {
"code": "FARE-5",
"id": "SNCF-FARE-5",
"type": "fare_classes"
},
"id": "SNCF-FRLYSLYN-FRPARPRG-2025-11-30T10:04-2025-11-30T12:09-0-FARE-5-C-pax-33-1-C-0",
"original_price": 5900,
"price": 5900,
"type": "fares"
},
{
"fare_class": {
"code": "FARE-2",
"id": "SNCF-FARE-2",
"type": "fare_classes"
},
"id": "SNCF-FRLYSLYN-FRPARPRG-2025-11-30T10:04-2025-11-30T12:09-0-FARE-2-C-pax-33-1-C-0",
"original_price": 6300,
"price": 6300,
"type": "fares"
},
{
"fare_class": {
"code": "FARE-1",
"id": "SNCF-FARE-1",
"type": "fare_classes"
},
"id": "SNCF-FRLYSLYN-FRPARPRG-2025-11-30T10:04-2025-11-30T12:09-0-FARE-1-C-pax-33-1-C-0",
"original_price": 16000,
"price": 16000,
"type": "fares"
}
]
},
"marketing_carrier": {
"data": {
"id": "SNCF",
"type": "marketing_carriers"
}
},
"partial_fares": {
"data": []
},
"segments": {
"data": [
{
"id": "SNCF-FRLYSLYN-FRPARPRG-2025-11-30T10:04-2025-11-30T12:09-0-0",
"type": "segments"
}
]
}
},
"type": "connections"
},
{
"attributes": {
"arrival_time": "2025-11-30T12:09",
"booked_out": false,
"cheapest_fare_class_code": "FARE-4",
"cheapest_total_adult_price": 4600,
"departure_time": "2025-11-30T10:04",
"duration": 7500,
"electronic_ticket_available": false,
"leg_type": "outbound",
"offer_bundle": null,
"offer_id": null,
"total_seats_left": null
},
"id": "SNCF-FRLYSLYN-FRPARPRG-2025-11-30T10:04-2025-11-30T12:09-0",
"relationships": {
"arrival_station": {
"data": {
"id": "FRPARPRG",
"type": "stations"
}
},
"departure_station": {
"data": {
"id": "FRLYSLYN",
"type": "stations"
}
},
"fares": {
"data": [
{
"fare_class": {
"code": "FARE-4",
"id": "SNCF-FARE-4",
"type": "fare_classes"
},
"id": "SNCF-FRLYSLYN-FRPARPRG-2025-11-30T10:04-2025-11-30T12:09-0-FARE-4-C-pax-33-1-C-0",
"original_price": 4600,
"price": 4600,
"type": "fares"
},
{
"fare_class": {
"code": "FARE-5",
"id": "SNCF-FARE-5",
"type": "fare_classes"
},
"id": "SNCF-FRLYSLYN-FRPARPRG-2025-11-30T10:04-2025-11-30T12:09-0-FARE-5-C-pax-33-1-C-0",
"original_price": 5900,
"price": 5900,
"type": "fares"
},
{
"fare_class": {
"code": "FARE-2",
"id": "SNCF-FARE-2",
"type": "fare_classes"
},
"id": "SNCF-FRLYSLYN-FRPARPRG-2025-11-30T10:04-2025-11-30T12:09-0-FARE-2-C-pax-33-1-C-0",
"original_price": 6300,
"price": 6300,
"type": "fares"
},
{
"fare_class": {
"code": "FARE-1",
"id": "SNCF-FARE-1",
"type": "fare_classes"
},
"id": "SNCF-FRLYSLYN-FRPARPRG-2025-11-30T10:04-2025-11-30T12:09-0-FARE-1-C-pax-33-1-C-0",
"original_price": 16000,
"price": 16000,
"type": "fares"
}
]
},
"marketing_carrier": {
"data": {
"id": "SNCF",
"type": "marketing_carriers"
}
},
"partial_fares": {
"data": []
},
"segments": {
"data": [
{
"id": "SNCF-FRLYSLYN-FRPARPRG-2025-11-30T10:04-2025-11-30T12:09-0-0",
"type": "segments"
}
]
}
},
"type": "connections"
},
{
"attributes": {
"arrival_time": "2025-11-30T12:09",
"booked_out": false,
"cheapest_fare_class_code": "FARE-4",
"cheapest_total_adult_price": 4600,
"departure_time": "2025-11-30T10:04",
"duration": 7500,
"electronic_ticket_available": false,
"leg_type": "outbound",
"offer_bundle": null,
"offer_id": null,
"total_seats_left": null
},
"id": "SNCF-FRLYSLYN-FRPARPRG-2025-11-30T10:04-2025-11-30T12:09-0",
"relationships": {
"arrival_station": {
"data": {
"id": "FRPARPRG",
"type": "stations"
}
},
"departure_station": {
"data": {
"id": "FRLYSLYN",
"type": "stations"
}
},
"fares": {
"data": [
{
"fare_class": {
"code": "FARE-4",
"id": "SNCF-FARE-4",
"type": "fare_classes"
},
"id": "SNCF-FRLYSLYN-FRPARPRG-2025-11-30T10:04-2025-11-30T12:09-0-FARE-4-C-pax-33-1-C-0",
"original_price": 4600,
"price": 4600,
"type": "fares"
},
{
"fare_class": {
"code": "FARE-5",
"id": "SNCF-FARE-5",
"type": "fare_classes"
},
"id": "SNCF-FRLYSLYN-FRPARPRG-2025-11-30T10:04-2025-11-30T12:09-0-FARE-5-C-pax-33-1-C-0",
"original_price": 5900,
"price": 5900,
"type": "fares"
},
{
"fare_class": {
"code": "FARE-2",
"id": "SNCF-FARE-2",
"type": "fare_classes"
},
"id": "SNCF-FRLYSLYN-FRPARPRG-2025-11-30T10:04-2025-11-30T12:09-0-FARE-2-C-pax-33-1-C-0",
"original_price": 6300,
"price": 6300,
"type": "fares"
},
{
"fare_class": {
"code": "FARE-1",
"id": "SNCF-FARE-1",
"type": "fare_classes"
},
"id": "SNCF-FRLYSLYN-FRPARPRG-2025-11-30T10:04-2025-11-30T12:09-0-FARE-1-C-pax-33-1-C-0",
"original_price": 16000,
"price": 16000,
"type": "fares"
}
]
},
"marketing_carrier": {
"data": {
"id": "SNCF",
"type": "marketing_carriers"
}
},
"partial_fares": {
"data": []
},
"segments": {
"data": [
{
"id": "SNCF-FRLYSLYN-FRPARPRG-2025-11-30T10:04-2025-11-30T12:09-0-0",
"type": "segments"
}
]
}
},
"type": "connections"
},
{
"attributes": {
"arrival_time": "2025-11-30T12:09",
"booked_out": false,
"cheapest_fare_class_code": "FARE-4",
"cheapest_total_adult_price": 4600,
"departure_time": "2025-11-30T10:04",
"duration": 7500,
"electronic_ticket_available": false,
"leg_type": "outbound",
"offer_bundle": null,
"offer_id": null,
"total_seats_left": null
},
"id": "SNCF-FRLYSLYN-FRPARPRG-2025-11-30T10:04-2025-11-30T12:09-0",
"relationships": {
"arrival_station": {
"data": {
"id": "FRPARPRG",
"type": "stations"
}
},
"departure_station": {
"data": {
"id": "FRLYSLYN",
"type": "stations"
}
},
"fares": {
"data": [
{
"fare_class": {
"code": "FARE-4",
"id": "SNCF-FARE-4",
"type": "fare_classes"
},
"id": "SNCF-FRLYSLYN-FRPARPRG-2025-11-30T10:04-2025-11-30T12:09-0-FARE-4-C-pax-33-1-C-0",
"original_price": 4600,
"price": 4600,
"type": "fares"
},
{
"fare_class": {
"code": "FARE-5",
"id": "SNCF-FARE-5",
"type": "fare_classes"
},
"id": "SNCF-FRLYSLYN-FRPARPRG-2025-11-30T10:04-2025-11-30T12:09-0-FARE-5-C-pax-33-1-C-0",
"original_price": 5900,
"price": 5900,
"type": "fares"
},
{
"fare_class": {
"code": "FARE-2",
"id": "SNCF-FARE-2",
"type": "fare_classes"
},
"id": "SNCF-FRLYSLYN-FRPARPRG-2025-11-30T10:04-2025-11-30T12:09-0-FARE-2-C-pax-33-1-C-0",
"original_price": 6300,
"price": 6300,
"type": "fares"
},
{
"fare_class": {
"code": "FARE-1",
"id": "SNCF-FARE-1",
"type": "fare_classes"
},
"id": "SNCF-FRLYSLYN-FRPARPRG-2025-11-30T10:04-2025-11-30T12:09-0-FARE-1-C-pax-33-1-C-0",
"original_price": 16000,
"price": 16000,
"type": "fares"
}
]
},
"marketing_carrier": {
"data": {
"id": "SNCF",
"type": "marketing_carriers"
}
},
"partial_fares": {
"data": []
},
"segments": {
"data": [
{
"id": "SNCF-FRLYSLYN-FRPARPRG-2025-11-30T10:04-2025-11-30T12:09-0-0",
"type": "segments"
}
]
}
},
"type": "connections"
},
{
"attributes": {
"arrival_time": "2025-11-30T12:09",
"booked_out": false,
"cheapest_fare_class_code": "FARE-4",
"cheapest_total_adult_price": 4600,
"departure_time": "2025-11-30T10:04",
"duration": 7500,
"electronic_ticket_available": false,
"leg_type": "outbound",
"offer_bundle": null,
"offer_id": null,
"total_seats_left": null
},
"id": "SNCF-FRLYSLYN-FRPARPRG-2025-11-30T10:04-2025-11-30T12:09-0",
"relationships": {
"arrival_station": {
"data": {
"id": "FRPARPRG",
"type": "stations"
}
},
"departure_station": {
"data": {
"id": "FRLYSLYN",
"type": "stations"
}
},
"fares": {
"data": [
{
"fare_class": {
"code": "FARE-4",
"id": "SNCF-FARE-4",
"type": "fare_classes"
},
"id": "SNCF-FRLYSLYN-FRPARPRG-2025-11-30T10:04-2025-11-30T12:09-0-FARE-4-C-pax-33-1-C-0",
"original_price": 4600,
"price": 4600,
"type": "fares"
},
{
"fare_class": {
"code": "FARE-5",
"id": "SNCF-FARE-5",
"type": "fare_classes"
},
"id": "SNCF-FRLYSLYN-FRPARPRG-2025-11-30T10:04-2025-11-30T12:09-0-FARE-5-C-pax-33-1-C-0",
"original_price": 5900,
"price": 5900,
"type": "fares"
},
{
"fare_class": {
"code": "FARE-2",
"id": "SNCF-FARE-2",
"type": "fare_classes"
},
"id": "SNCF-FRLYSLYN-FRPARPRG-2025-11-30T10:04-2025-11-30T12:09-0-FARE-2-C-pax-33-1-C-0",
"original_price": 6300,
"price": 6300,
"type": "fares"
},
{
"fare_class": {
"code": "FARE-1",
"id": "SNCF-FARE-1",
"type": "fare_classes"
},
"id": "SNCF-FRLYSLYN-FRPARPRG-2025-11-30T10:04-2025-11-30T12:09-0-FARE-1-C-pax-33-1-C-0",
"original_price": 16000,
"price": 16000,
"type": "fares"
}
]
},
"marketing_carrier": {
"data": {
"id": "SNCF",
"type": "marketing_carriers"
}
},
"partial_fares": {
"data": []
},
"segments": {
"data": [
{
"id": "SNCF-FRLYSLYN-FRPARPRG-2025-11-30T10:04-2025-11-30T12:09-0-0",
"type": "segments"
}
]
}
},
"type": "connections"
},
{
"attributes": {
"arrival_time": "2025-11-30T12:09",
"booked_out": false,
"cheapest_fare_class_code": "FARE-4",
"cheapest_total_adult_price": 4600,
"departure_time": "2025-11-30T10:04",
"duration": 7500,
"electronic_ticket_available": false,
"leg_type": "outbound",
"offer_bundle": null,
"offer_id": null,
"total_seats_left": null
},
"id": "SNCF-FRLYSLYN-FRPARPRG-2025-11-30T10:04-2025-11-30T12:09-0",
"relationships": {
"arrival_station": {
"data": {
"id": "FRPARPRG",
"type": "stations"
}
},
"departure_station": {
"data": {
"id": "FRLYSLYN",
"type": "stations"
}
},
"fares": {
"data": [
{
"fare_class": {
"code": "FARE-4",
"id": "SNCF-FARE-4",
"type": "fare_classes"
},
"id": "SNCF-FRLYSLYN-FRPARPRG-2025-11-30T10:04-2025-11-30T12:09-0-FARE-4-C-pax-33-1-C-0",
"original_price": 4600,
"price": 4600,
"type": "fares"
},
{
"fare_class": {
"code": "FARE-5",
"id": "SNCF-FARE-5",
"type": "fare_classes"
},
"id": "SNCF-FRLYSLYN-FRPARPRG-2025-11-30T10:04-2025-11-30T12:09-0-FARE-5-C-pax-33-1-C-0",
"original_price": 5900,
"price": 5900,
"type": "fares"
},
{
"fare_class": {
"code": "FARE-2",
"id": "SNCF-FARE-2",
"type": "fare_classes"
},
"id": "SNCF-FRLYSLYN-FRPARPRG-2025-11-30T10:04-2025-11-30T12:09-0-FARE-2-C-pax-33-1-C-0",
"original_price": 6300,
"price": 6300,
"type": "fares"
},
{
"fare_class": {
"code": "FARE-1",
"id": "SNCF-FARE-1",
"type": "fare_classes"
},
"id": "SNCF-FRLYSLYN-FRPARPRG-2025-11-30T10:04-2025-11-30T12:09-0-FARE-1-C-pax-33-1-C-0",
"original_price": 16000,
"price": 16000,
"type": "fares"
}
]
},
"marketing_carrier": {
"data": {
"id": "SNCF",
"type": "marketing_carriers"
}
},
"partial_fares": {
"data": []
},
"segments": {
"data": [
{
"id": "SNCF-FRLYSLYN-FRPARPRG-2025-11-30T10:04-2025-11-30T12:09-0-0",
"type": "segments"
}
]
}
},
"type": "connections"
}
],
"included": [
{
"attributes": {
"arrival_time": "2025-11-30T12:09",
"departure_time": "2025-11-30T10:04",
"index": 0,
"line": "6612",
"line_prefix": "TGV INOUI",
"vehicle_number": "6612"
},
"id": "SNCF-FRLYSLYN-FRPARPRG-2025-11-30T10:04-2025-11-30T12:09-0-0",
"relationships": {
"amenities": {
"data": [
{
"id": "STIO-DRFF",
"type": "amenities"
},
{
"id": "STIO-AAFR",
"type": "amenities"
},
{
"id": "STIO-BABF",
"type": "amenities"
},
{
"id": "STIO-PSOC",
"type": "amenities"
},
{
"id": "STIO-WIFI",
"type": "amenities"
}
]
},
"arrival_station": {
"data": {
"id": "FRPARPRG",
"type": "stations"
}
},
"departure_station": {
"data": {
"id": "FRLYSLYN",
"type": "stations"
}
},
"fares": {
"data": []
},
"marketing_carrier": {
"data": {
"id": "SNCF",
"type": "marketing_carriers"
}
},
"operating_carrier": {
"data": {
"id": "STIO",
"type": "operating_carriers"
}
},
"vehicle": {
"data": {
"id": "TRAIN-SNCF-FRLYSLYN-FRPARPRG-2025-11-30T10:04-2025-11-30T12:09-0-0",
"type": "vehicles"
}
}
},
"type": "segments"
},
{
"id": "TRAIN-SNCF-FRLYSLYN-FRPARPRG-2025-11-30T10:04-2025-11-30T12:09-0-0",
"relationships": {
"vehicle_type": {
"data": {
"id": "TRAIN",
"type": "vehicle_types"
}
}
},
"type": "vehicles"
},
{
"attributes": {
"code": "TRAIN"
},
"id": "TRAIN",
"type": "vehicle_types"
},
{
"attributes": {
"booked_out": false,
"booking_type": "standalone",
"offer_expires_at": "2025-11-28T18:27:02.718030Z",
"offer_id": "e601aea4-963b-411a-9e8f-daf695870c2c|0",
"original_price": 4600,
"passenger_coverage_type": "collective",
"passenger_ids": [
"pax-33-1"
],
"price": 4600,
"seats_left": 75,
"segment_coverage_type": "collective",
"segment_ids": [
"SNCF-FRLYSLYN-FRPARPRG-2025-11-30T10:04-2025-11-30T12:09-0-0"
],
"services": [
{
"passenger_ids": [
"pax-33-1"
],
"segment_ids": [
"SNCF-FRLYSLYN-FRPARPRG-2025-11-30T10:04-2025-11-30T12:09-0-0"
],
"service_type_id": "SERVICE-TYPE-ADMISSION"
},
{
"passenger_ids": [
"pax-33-1"
],
"segment_ids": [
"SNCF-FRLYSLYN-FRPARPRG-2025-11-30T10:04-2025-11-30T12:09-0-0"
],
"service_type_id": "SERVICE-TYPE-SEAT"
}
]
},
"id": "SNCF-FRLYSLYN-FRPARPRG-2025-11-30T10:04-2025-11-30T12:09-0-FARE-4-C-pax-33-1-C-0",
"relationships": {
"applied_cards": {
"data": []
},
"conditions": {
"data": [
{
"id": "SNCF-65cbad5a7a8292323-9211e8bb861409e0e",
"type": "fare_conditions"
}
]
},
"fare_class": {
"data": {
"id": "SNCF-FARE-4",
"type": "fare_classes"
}
},
"products": {
"data": [
{
"id": "SNCF-PRODUCT-2-second",
"type": "products"
}
]
},
"promotional_campaigns": {
"data": []
}
},
"type": "fares"
},
{
"attributes": {
"booked_out": false,
"booking_type": "standalone",
"offer_expires_at": "2025-11-28T18:27:02.718030Z",
"offer_id": "e601aea4-963b-411a-9e8f-daf695870c2c|1",
"original_price": 5900,
"passenger_coverage_type": "collective",
"passenger_ids": [
"pax-33-1"
],
"price": 5900,
"seats_left": 20,
"segment_coverage_type": "collective",
"segment_ids": [
"SNCF-FRLYSLYN-FRPARPRG-2025-11-30T10:04-2025-11-30T12:09-0-0"
],
"services": [
{
"passenger_ids": [
"pax-33-1"
],
"segment_ids": [
"SNCF-FRLYSLYN-FRPARPRG-2025-11-30T10:04-2025-11-30T12:09-0-0"
],
"service_type_id": "SERVICE-TYPE-ADMISSION"
},
{
"passenger_ids": [
"pax-33-1"
],
"segment_ids": [
"SNCF-FRLYSLYN-FRPARPRG-2025-11-30T10:04-2025-11-30T12:09-0-0"
],
"service_type_id": "SERVICE-TYPE-SEAT"
}
]
},
"id": "SNCF-FRLYSLYN-FRPARPRG-2025-11-30T10:04-2025-11-30T12:09-0-FARE-5-C-pax-33-1-C-0",
"relationships": {
"applied_cards": {
"data": []
},
"conditions": {
"data": [
{
"id": "SNCF-28378ca1c779423b0-27364cc090635cc75",
"type": "fare_conditions"
}
]
},
"fare_class": {
"data": {
"id": "SNCF-FARE-5",
"type": "fare_classes"
}
},
"products": {
"data": [
{
"id": "SNCF-PRODUCT-2-second",
"type": "products"
}
]
},
"promotional_campaigns": {
"data": []
}
},
"type": "fares"
},
{
"attributes": {
"booked_out": false,
"booking_type": "standalone",
"offer_expires_at": "2025-11-28T18:27:02.718030Z",
"offer_id": "e601aea4-963b-411a-9e8f-daf695870c2c|2",
"original_price": 6300,
"passenger_coverage_type": "collective",
"passenger_ids": [
"pax-33-1"
],
"price": 6300,
"seats_left": 8,
"segment_coverage_type": "collective",
"segment_ids": [
"SNCF-FRLYSLYN-FRPARPRG-2025-11-30T10:04-2025-11-30T12:09-0-0"
],
"services": [
{
"passenger_ids": [
"pax-33-1"
],
"segment_ids": [
"SNCF-FRLYSLYN-FRPARPRG-2025-11-30T10:04-2025-11-30T12:09-0-0"
],
"service_type_id": "SERVICE-TYPE-ADMISSION"
},
{
"passenger_ids": [
"pax-33-1"
],
"segment_ids": [
"SNCF-FRLYSLYN-FRPARPRG-2025-11-30T10:04-2025-11-30T12:09-0-0"
],
"service_type_id": "SERVICE-TYPE-SEAT"
}
]
},
"id": "SNCF-FRLYSLYN-FRPARPRG-2025-11-30T10:04-2025-11-30T12:09-0-FARE-2-C-pax-33-1-C-0",
"relationships": {
"applied_cards": {
"data": []
},
"conditions": {
"data": [
{
"id": "SNCF-5743143faff8db09e-f871ebbda566c95f3",
"type": "fare_conditions"
}
]
},
"fare_class": {
"data": {
"id": "SNCF-FARE-2",
"type": "fare_classes"
}
},
"products": {
"data": [
{
"id": "SNCF-PRODUCT-1-first",
"type": "products"
}
]
},
"promotional_campaigns": {
"data": []
}
},
"type": "fares"
},
{
"attributes": {
"booked_out": false,
"booking_type": "standalone",
"offer_expires_at": "2025-11-28T18:27:02.718030Z",
"offer_id": "e601aea4-963b-411a-9e8f-daf695870c2c|3",
"original_price": 16000,
"passenger_coverage_type": "collective",
"passenger_ids": [
"pax-33-1"
],
"price": 16000,
"seats_left": 102,
"segment_coverage_type": "collective",
"segment_ids": [
"SNCF-FRLYSLYN-FRPARPRG-2025-11-30T10:04-2025-11-30T12:09-0-0"
],
"services": [
{
"passenger_ids": [
"pax-33-1"
],
"segment_ids": [
"SNCF-FRLYSLYN-FRPARPRG-2025-11-30T10:04-2025-11-30T12:09-0-0"
],
"service_type_id": "SERVICE-TYPE-ADMISSION"
},
{
"passenger_ids": [
"pax-33-1"
],
"segment_ids": [
"SNCF-FRLYSLYN-FRPARPRG-2025-11-30T10:04-2025-11-30T12:09-0-0"
],
"service_type_id": "SERVICE-TYPE-SEAT"
}
]
},
"id": "SNCF-FRLYSLYN-FRPARPRG-2025-11-30T10:04-2025-11-30T12:09-0-FARE-1-C-pax-33-1-C-0",
"relationships": {
"applied_cards": {
"data": []
},
"conditions": {
"data": [
{
"id": "SNCF-72380adbcf89ece32-30a2f9e533d25e8c2",
"type": "fare_conditions"
}
]
},
"fare_class": {
"data": {
"id": "SNCF-FARE-1",
"type": "fare_classes"
}
},
"products": {
"data": [
{
"id": "SNCF-PRODUCT-1-first",
"type": "products"
}
]
},
"promotional_campaigns": {
"data": []
}
},
"type": "fares"
},
{
"attributes": {
"code": "CONDITION-6",
"description": "LYON PART DIEU - PARIS GARE DE LYON - Tarif NO FLEX \nThis ticket may neither be exchanged nor refunded.\n",
"exchangeable": "no",
"refundable": "no",
"title": "Tarif NO FLEX "
},
"id": "SNCF-65cbad5a7a8292323-9211e8bb861409e0e",
"type": "fare_conditions"
},
{
"attributes": {
"code": "CONDITION-5",
"description": "LYON PART DIEU - PARIS GARE DE LYON - Tarif STANDARD SECONDE\nTicket may be exchanged (with adjustment to the current fare) or refunded free of charge up to D-7. From D-6 and up to departure: €19 charge on TGV and 40% of the price (max €15) on Intercités. From 30 minutes before departure, ticket may be exchanged once and not refunded thereafter.\n",
"exchangeable": "yes",
"refundable": "yes",
"title": "Tarif STANDARD SECONDE"
},
"id": "SNCF-28378ca1c779423b0-27364cc090635cc75",
"type": "fare_conditions"
},
{
"attributes": {
"code": "CONDITION-4",
"description": "LYON PART DIEU - PARIS GARE DE LYON - Tarif STANDARD PREMIÈRE\nTicket may be exchanged (with adjustment to the current fare) or refunded free of charge up to D-7. From D-6 and up to departure: €19 charge on TGV and 40% of the price (max €15) on Intercités. From 30 minutes before departure, ticket may be exchanged once and not refunded thereafter.\n",
"exchangeable": "yes",
"refundable": "yes",
"title": "Tarif STANDARD PREMIÈRE"
},
"id": "SNCF-5743143faff8db09e-f871ebbda566c95f3",
"type": "fare_conditions"
},
{
"attributes": {
"code": "CONDITION-7",
"description": "LYON PART DIEU - PARIS GARE DE LYON - Tarif FLEX PREMIÈRE\nExchange or refund free of charge up to 30 minutes after departure.\nFrom 30 minutes before departure, ticket may be exchanged once and will not be refunded thereafter.\nIf you are taking another train, exchange is compulsory.\n",
"exchangeable": "yes",
"refundable": "yes",
"title": "Tarif FLEX PREMIÈRE"
},
"id": "SNCF-72380adbcf89ece32-30a2f9e533d25e8c2",
"type": "fare_conditions"
},
{
"attributes": {
"code": "DRFF",
"description": "Drinks for fee",
"name": "Drinks for fee"
},
"id": "STIO-DRFF",
"type": "amenities"
},
{
"attributes": {
"code": "AAFR",
"description": "The vehicle is easily accessible for people who use wheelchairs.",
"name": "Accessible area for wheelchairs"
},
"id": "STIO-AAFR",
"type": "amenities"
},
{
"attributes": {
"code": "BABF",
"description": "Baby changing facilities",
"name": "Baby changing facilities"
},
"id": "STIO-BABF",
"type": "amenities"
},
{
"attributes": {
"code": "PSOC",
"description": "Power supply is available at every seat.",
"name": "Power Socket"
},
"id": "STIO-PSOC",
"type": "amenities"
},
{
"attributes": {
"code": "WIFI",
"description": "Wifi is available on board.",
"name": "Wifi"
},
"id": "STIO-WIFI",
"type": "amenities"
},
{
"attributes": {
"code": "PRODUCT-2",
"description": "Second class travel option",
"name": "Second Class",
"travel_class": "second"
},
"id": "SNCF-PRODUCT-2-second",
"type": "products"
},
{
"attributes": {
"code": "PRODUCT-1",
"description": "First class travel option",
"name": "First Class",
"travel_class": "first"
},
"id": "SNCF-PRODUCT-1-first",
"type": "products"
},
{
"attributes": {
"category": "ADMISSION",
"code": "ADMISSION",
"description": "Admission right to board the train",
"title": "Admission"
},
"id": "SERVICE-TYPE-ADMISSION",
"type": "service_types"
},
{
"attributes": {
"category": "SEAT",
"code": "SEAT",
"description": "A Seat is included and auto-selected",
"title": "Seat"
},
"id": "SERVICE-TYPE-SEAT",
"type": "service_types"
},
{
"attributes": {
"age": 33
},
"id": "pax-33-1",
"type": "passengers"
},
{
"attributes": {
"booking_fee": 0,
"code": "SNCF",
"legal_name": "SNCF",
"markup_fee_percentage": 0.0,
"trade_name": "SNCF"
},
"id": "SNCF",
"relationships": {
"extra_types": {
"data": []
},
"fare_classes": {
"data": [
{
"id": "SNCF-FARE-1",
"type": "fare_classes"
},
{
"id": "SNCF-FARE-10",
"type": "fare_classes"
},
{
"id": "SNCF-FARE-11",
"type": "fare_classes"
},
{
"id": "SNCF-FARE-12",
"type": "fare_classes"
},
{
"id": "SNCF-FARE-13",
"type": "fare_classes"
},
{
"id": "SNCF-FARE-14",
"type": "fare_classes"
},
{
"id": "SNCF-FARE-2",
"type": "fare_classes"
},
{
"id": "SNCF-FARE-3",
"type": "fare_classes"
},
{
"id": "SNCF-FARE-4",
"type": "fare_classes"
},
{
"id": "SNCF-FARE-5",
"type": "fare_classes"
},
{
"id": "SNCF-FARE-6",
"type": "fare_classes"
},
{
"id": "SNCF-FARE-7",
"type": "fare_classes"
},
{
"id": "SNCF-FARE-8",
"type": "fare_classes"
},
{
"id": "SNCF-FARE-9",
"type": "fare_classes"
}
]
},
"passenger_types": {
"data": [
{
"id": "PNOS",
"type": "passenger_types"
},
{
"id": "PCIL",
"type": "passenger_types"
},
{
"id": "PINT",
"type": "passenger_types"
},
{
"id": "PYPO",
"type": "passenger_types"
},
{
"id": "PSOE",
"type": "passenger_types"
}
]
}
},
"type": "marketing_carriers"
},
{
"attributes": {
"code": "STIO",
"legal_name": "SNCF",
"trade_name": "TGV inOui"
},
"id": "STIO",
"type": "operating_carriers"
},
{
"attributes": {
"code": "PNOS",
"description": "",
"max_age": 59,
"min_age": 26,
"name": "Adult"
},
"id": "PNOS",
"type": "passenger_types"
},
{
"attributes": {
"code": "PCIL",
"description": "",
"max_age": 11,
"min_age": 4,
"name": "Child"
},
"id": "PCIL",
"type": "passenger_types"
},
{
"attributes": {
"code": "PINT",
"description": "",
"max_age": 3,
"min_age": 0,
"name": "Infant"
},
"id": "PINT",
"type": "passenger_types"
},
{
"attributes": {
"code": "PYPO",
"description": "",
"max_age": 25,
"min_age": 12,
"name": "Youth"
},
"id": "PYPO",
"type": "passenger_types"
},
{
"attributes": {
"code": "PSOE",
"description": "",
"max_age": 99,
"min_age": 60,
"name": "Senior"
},
"id": "PSOE",
"type": "passenger_types"
},
{
"attributes": {
"code": "FRLYSLYN",
"description": null,
"latitude": 45.760559,
"longitude": 4.859355,
"name": "Lyon Part Dieu Train Station",
"street_and_number": "Place Charles Béraudier",
"time_zone": "Europe/Paris",
"zip_code": "69003"
},
"id": "FRLYSLYN",
"relationships": {
"area": {
"data": null
},
"city": {
"data": {
"id": "FRLYS",
"type": "cities"
}
}
},
"type": "stations"
},
{
"attributes": {
"code": "FRPARPRG",
"description": null,
"latitude": 48.84489,
"longitude": 2.37352,
"name": "Paris Gare de Lyon Hall 1 & 2 Train Station",
"street_and_number": "Pl. Louis-Armand hall 1",
"time_zone": "Europe/Paris",
"zip_code": "75012"
},
"id": "FRPARPRG",
"relationships": {
"area": {
"data": null
},
"city": {
"data": {
"id": "FRPAR",
"type": "cities"
}
}
},
"type": "stations"
},
{
"attributes": {
"code": "FRLYS",
"name": "Lyon"
},
"id": "FRLYS",
"type": "cities"
},
{
"attributes": {
"code": "FRPAR",
"name": "Paris"
},
"id": "FRPAR",
"type": "cities"
},
{
"attributes": {
"code": "FARE-1",
"iata_category": "First Class",
"journey_type": "single",
"name": "First Class - Flexi"
},
"id": "SNCF-FARE-1",
"relationships": {
"fare_features": {
"data": [
{
"id": "SNCF-PREF",
"type": "fare_features"
}
]
}
},
"type": "fare_classes"
},
{
"attributes": {
"code": "FARE-10",
"iata_category": "Economy Class",
"journey_type": "single",
"name": "Tarif No Flex"
},
"id": "SNCF-FARE-10",
"relationships": {
"fare_features": {
"data": []
}
},
"type": "fare_classes"
},
{
"attributes": {
"code": "FARE-11",
"iata_category": "Economy Class",
"journey_type": "single",
"name": "Tarif Standard Seconde"
},
"id": "SNCF-FARE-11",
"relationships": {
"fare_features": {
"data": []
}
},
"type": "fare_classes"
},
{
"attributes": {
"code": "FARE-12",
"iata_category": "Economy Class",
"journey_type": "single",
"name": "Public - Eurostar Standard"
},
"id": "SNCF-FARE-12",
"relationships": {
"fare_features": {
"data": []
}
},
"type": "fare_classes"
},
{
"attributes": {
"code": "FARE-13",
"iata_category": "First Class",
"journey_type": "single",
"name": "Public - Eurostar Premier"
},
"id": "SNCF-FARE-13",
"relationships": {
"fare_features": {
"data": []
}
},
"type": "fare_classes"
},
{
"attributes": {
"code": "FARE-14",
"iata_category": "First Class",
"journey_type": "single",
"name": "Public - Eurostar Plus"
},
"id": "SNCF-FARE-14",
"relationships": {
"fare_features": {
"data": []
}
},
"type": "fare_classes"
},
{
"attributes": {
"code": "FARE-2",
"iata_category": "First Class",
"journey_type": "single",
"name": "First Class - SemiFlexi"
},
"id": "SNCF-FARE-2",
"relationships": {
"fare_features": {
"data": [
{
"id": "SNCF-PREF",
"type": "fare_features"
}
]
}
},
"type": "fare_classes"
},
{
"attributes": {
"code": "FARE-3",
"iata_category": "First Class",
"journey_type": "single",
"name": "First Class - Cheapest"
},
"id": "SNCF-FARE-3",
"relationships": {
"fare_features": {
"data": [
{
"id": "SNCF-PREF",
"type": "fare_features"
}
]
}
},
"type": "fare_classes"
},
{
"attributes": {
"code": "FARE-4",
"iata_category": "Economy Class",
"journey_type": "single",
"name": "Second Class - Cheapest"
},
"id": "SNCF-FARE-4",
"relationships": {
"fare_features": {
"data": [
{
"id": "SNCF-PREF",
"type": "fare_features"
}
]
}
},
"type": "fare_classes"
},
{
"attributes": {
"code": "FARE-5",
"iata_category": "Economy Class",
"journey_type": "single",
"name": "Second Class - SemiFlexi"
},
"id": "SNCF-FARE-5",
"relationships": {
"fare_features": {
"data": [
{
"id": "SNCF-PREF",
"type": "fare_features"
}
]
}
},
"type": "fare_classes"
},
{
"attributes": {
"code": "FARE-6",
"iata_category": "Economy Class",
"journey_type": "single",
"name": "Second Class - Flexi"
},
"id": "SNCF-FARE-6",
"relationships": {
"fare_features": {
"data": [
{
"id": "SNCF-PREF",
"type": "fare_features"
}
]
}
},
"type": "fare_classes"
},
{
"attributes": {
"code": "FARE-7",
"iata_category": "First Class",
"journey_type": "single",
"name": "Tarif Standard Premiere"
},
"id": "SNCF-FARE-7",
"relationships": {
"fare_features": {
"data": []
}
},
"type": "fare_classes"
},
{
"attributes": {
"code": "FARE-8",
"iata_category": "First Class",
"journey_type": "single",
"name": "Tarif Flex Premiere"
},
"id": "SNCF-FARE-8",
"relationships": {
"fare_features": {
"data": []
}
},
"type": "fare_classes"
},
{
"attributes": {
"code": "FARE-9",
"iata_category": "First Class",
"journey_type": "single",
"name": "Business Premiere"
},
"id": "SNCF-FARE-9",
"relationships": {
"fare_features": {
"data": []
}
},
"type": "fare_classes"
},
{
"attributes": {
"code": "PREF",
"description": "Refund rules and times depend on the method of payment, the train company, the type of ticket and the method of collection.",
"name": "Partially refundable"
},
"id": "SNCF-PREF",
"type": "fare_features"
}
],
"jsonapi": {
"version": "1.0"
},
"meta": {
"currency": "EUR",
"locale": "en"
}
}
Sample Request to /connections/vacancy
{
"locale": "en",
"offers": [
{
"id": "e601aea4-963b-411a-9e8f-daf695870c2c|0"
}
],
"passengers": [
{
"id": "pax-33-1",
"type": "PNOS",
"pax": 1,
"cards": [
{
"name": "DISTRIBUTION_AGREEMENT_EUROSTAR_STES",
"code": "C002Z62"
}
]
}
]
}
Sample Response from /connections/vacancy
{
"data": {
"id": "SNCF-FRLYSLYN-FRPARPRG-2025-11-30T10:04-2025-11-30T12:09",
"type": "vacancies",
"attributes": {
"vacant": true,
"total_price": 4600,
"original_price": 4600
},
"relationships": {
"applied_cards": {
"data": []
},
"fees": {
"data": []
},
"ancillary_options": {
"data": []
},
"connection_passengers": {
"data": [
{
"id": "PNOS-1-1764352729",
"type": "passengers"
}
]
},
"required_attributes": {
"data": [
{
"id": "129bc1d7-eece-4523-b697-fe11e75c0169",
"type": "required_attributes"
},
{
"id": "7dc212d2-a21e-4091-88d9-15246e3db31f",
"type": "required_attributes"
}
]
}
}
},
"jsonapi": {
"version": "1.0"
},
"meta": {
"currency": "EUR"
},
"included": [
{
"id": "PNOS-1-1764352729",
"type": "passengers",
"relationships": {
"required_attributes": {
"data": [
{
"id": "58420edf-afbe-421a-b6e9-30551ec068d3",
"type": "passenger_required_attributes"
},
{
"id": "b6846a17-3af9-435d-91c5-ca2886afe537",
"type": "passenger_required_attributes"
}
]
}
}
},
{
"id": "58420edf-afbe-421a-b6e9-30551ec068d3",
"type": "passenger_required_attributes",
"attributes": {
"mandatory": [
"birthdate",
"first_name",
"last_name"
],
"endpoint": "reservations/create",
"internal_source": true
}
},
{
"id": "b6846a17-3af9-435d-91c5-ca2886afe537",
"type": "passenger_required_attributes",
"attributes": {
"mandatory": [
"birthdate",
"first_name",
"last_name"
],
"endpoint": "reservations/confirm",
"internal_source": true
}
},
{
"id": "129bc1d7-eece-4523-b697-fe11e75c0169",
"type": "required_attributes",
"attributes": {
"mandatory": [
"email"
],
"endpoint": "reservations/create"
}
},
{
"id": "7dc212d2-a21e-4091-88d9-15246e3db31f",
"type": "required_attributes",
"attributes": {
"mandatory": [
"email",
"first_name",
"last_name",
"terms_accepted"
],
"endpoint": "reservations/confirm"
}
}
]
}
Sample Request to /reservations/create
{
"email": "john.smith@email.com",
"offers": [
{
"id": "e601aea4-963b-411a-9e8f-daf695870c2c|0"
}
],
"passengers": [
{
"type": "PNOS",
"id": "pax-33-1",
"first_name": "John",
"last_name": "Smith",
"birthdate": "1997-10-22",
"cards": [
{
"name": "DISTRIBUTION_AGREEMENT_EUROSTAR_STES",
"code": "C002Z62"
}
]
}
]
}
Sample Response from /reservations/create
{
"data": {
"id": "RRLFFQRR",
"type": "reservations",
"attributes": {
"total_price": 4600,
"original_price": 4600,
"state": "created",
"created_at": "2025-11-28T19:05",
"confirmed_at": null,
"cancelled_at": null,
"failed_at": null,
"processing_started_at": null,
"processing_deadline": null,
"expires_at": "2025-11-28T20:35",
"terms_version": null,
"title": null,
"first_name": null,
"last_name": null,
"email": "john.smith@email.com",
"phone": null,
"city": null,
"zip_code": null,
"country_code": null,
"street_and_number": null,
"gender": null,
"country_of_birth": null,
"government_id_type": null,
"marketing_carrier_reservation_ids": [
"CS4XAT_Smith_3GQ7RU"
],
"agent_id": null,
"retailer_booking_number": null,
"customer_id": null
},
"relationships": {
"fare_class": {
"data": {
"id": "SNCF-FARE-4",
"type": "fare_classes"
}
},
"return_fare_class": {
"data": null
},
"departure_station": {
"data": {
"id": "FRLYSLYN",
"type": "stations"
}
},
"arrival_station": {
"data": {
"id": "FRPARPRG",
"type": "stations"
}
},
"marketing_carrier": {
"data": {
"id": "SNCF",
"type": "marketing_carriers"
}
},
"booking": {
"data": null
},
"utm_params": {
"data": null
},
"errors": {
"data": []
},
"segments": {
"data": [
{
"id": "STIO-FRLYSLYN-FRPARPRG-2025-11-30T10:04-2025-11-30T12:09-0",
"type": "segments"
}
]
},
"reservation_passengers": {
"data": [
{
"id": "R-PNOS-1-STIO-FRLYSLYN-FRPARPRG-2025-11-30T10:04-2025-11-30T12:09",
"type": "reservation_passengers"
}
]
},
"applied_cards": {
"data": []
},
"ancillaries": {
"data": []
},
"required_attributes": {
"data": [
{
"id": "RRLFFQRR-662d27da-7b9b-498b-b8e1-06ce2c2b0a72",
"type": "required_attributes"
}
]
},
"custom_fields": {
"data": []
},
"fees": {
"data": []
}
}
},
"jsonapi": {
"version": "1.0"
},
"meta": {
"currency": "EUR",
"locale": "en"
},
"included": [
{
"id": "STIO-FRLYSLYN-FRPARPRG-2025-11-30T10:04-2025-11-30T12:09-0",
"type": "segments",
"attributes": {
"departure_time": "2025-11-30T10:04",
"arrival_time": "2025-11-30T12:09",
"line": "6612",
"line_prefix": "TGV INOUI"
},
"relationships": {
"departure_station": {
"data": {
"id": "FRLYSLYN",
"type": "stations"
}
},
"arrival_station": {
"data": {
"id": "FRPARPRG",
"type": "stations"
}
},
"marketing_carrier": {
"data": {
"id": "SNCF",
"type": "marketing_carriers"
}
},
"segment_passengers": {
"data": [
{
"id": "PNOS-1-STIO-FRLYSLYN-FRPARPRG-2025-11-30T10:04-2025-11-30T12:09-0",
"type": "segment_passengers"
}
]
}
}
},
{
"id": "FRLYSLYN",
"type": "stations",
"attributes": {
"code": "FRLYSLYN",
"name": "Lyon Part Dieu Train Station"
}
},
{
"id": "FRPARPRG",
"type": "stations",
"attributes": {
"code": "FRPARPRG",
"name": "Paris Gare de Lyon Hall 1 & 2 Train Station"
}
},
{
"id": "SNCF",
"type": "marketing_carriers",
"attributes": {
"code": "SNCF",
"trade_name": "SNCF",
"legal_name": "SNCF"
}
},
{
"id": "PNOS-1-STIO-FRLYSLYN-FRPARPRG-2025-11-30T10:04-2025-11-30T12:09-0",
"type": "segment_passengers",
"attributes": {
"seat_number": null
},
"relationships": {
"ancillaries": {
"data": []
}
}
},
{
"id": "R-PNOS-1-STIO-FRLYSLYN-FRPARPRG-2025-11-30T10:04-2025-11-30T12:09",
"type": "reservation_passengers",
"attributes": {
"first_name": "John",
"last_name": "Smith",
"serial_code": null,
"government_id_type": null,
"nationality": null,
"gender": null,
"country_of_birth": null,
"birthdate": "1997-10-22",
"type": "PNOS"
},
"relationships": {
"required_attributes": {
"data": [
{
"id": "R-PNOS-1-STIO-FRLYSLYN-FRPARPRG-2025-11-30T10:04-2025-11-30T12:09-06664a52-2b74-4c24-be25-259a68635f55",
"type": "passenger_required_attributes"
}
]
}
}
},
{
"id": "R-PNOS-1-STIO-FRLYSLYN-FRPARPRG-2025-11-30T10:04-2025-11-30T12:09-06664a52-2b74-4c24-be25-259a68635f55",
"type": "passenger_required_attributes",
"attributes": {
"mandatory": [
"birthdate",
"first_name",
"last_name"
],
"endpoint": "reservations/confirm"
}
},
{
"id": "SNCF-FARE-4",
"type": "fare_classes",
"attributes": {
"code": "FARE-4",
"name": "Second Class - Cheapest"
}
},
{
"id": "RRLFFQRR-662d27da-7b9b-498b-b8e1-06ce2c2b0a72",
"type": "required_attributes",
"attributes": {
"mandatory": [
"email",
"first_name",
"last_name",
"terms_accepted"
],
"endpoint": "reservations/confirm"
}
}
]
}
On this page
- Discount Cards