Fees
Some carriers might include a booking fee as part of the booking. To find out what carriers have booking fees please contact your partnership manager.
The booking fees are chaged per booking and are always included in the prices you get from the API, but we recommend you to disclose this fee to the users as part of your booking flow. This can be done in the check out page only. Optionally, you might also choose to display the initial price on your search results without the booking fee (see more below).
Booking Fee Amount
Read the booking_fee field for each carrier from the /connections/find endpoint. The fee is always presented as an absolut amount in the currency specified in your request.
"attributes": {
"booking_fee": 181,
"code": "NEXP",
"legal_name": "National Express Limited",
"markup_fee_percentage": 0.0,
"trade_name": "National Express"
}Hiding Fees on Search Results
Optionally, you can display the initial price on your search results without the booking fee. In this case you should deduct the booking_fee value from the /connections/find price. Therefore, when looking at the price consider the following scenario:
- Total price: 9.30
- Booking fee: 1.81
- Price without booking fee: 7.49
Please note that the booking fee is applied per booking and not per passenger, ie. a booking with 2 passengers should still only have the booking fee applied once.
Setting Price on Reservation Confirmation
While you might choose to show the prices in search results without the booking fee, the amount to capture from the passenger as part of the payment should always be taken including the booking fee. Therefore, it is imperative that the total_price value from the /reservations/create endpoint is taken to load the checkout page and capture the correct payment amount from the customer.
API Workflow
- The
pricefield for each fare class available via /connections/find endpoint includes the booking fee. - All subsequent calls to other endpoints in the flow show the price including the booking fee. You may choose to disclose that price includes a booking fee in the search results page or only in the checkout page.
API Examples
Sample Request to /connections/find
Sample Response from /connections/find
{
"data": [
{
"attributes": {
"arrival_time": "2025-03-01T01:20",
"booked_out": false,
"cheapest_fare_class_code": "FARE-2",
"cheapest_total_adult_price": 930,
"co2_kg": 10.237668991088867,
"co2e_kg": 11.739866256713867,
"co2e_savings": 11.51855182647705,
"departure_time": "2025-02-28T23:00",
"duration": 8400,
"electronic_ticket_available": false,
"leg_type": "outbound",
"offer_bundle": null,
"offer_id": null,
"total_seats_left": 51
},
"id": "NEXP-GBLONVSA-GBBRSCSA-2025-02-28T23:00-2025-03-01T01:20",
"relationships": {
"arrival_station": {
"data": {
"id": "GBBRSCSA",
"type": "stations"
}
},
"departure_station": {
"data": {
"id": "GBLONVSA",
"type": "stations"
}
},
"fares": {
"data": [
{
"fare_class": {
"code": "FARE-2",
"id": "NEXP-FARE-2",
"type": "fare_classes"
},
"id": "NEXP-GBLONVSA-GBBRSCSA-2025-02-28T23:00-2025-03-01T01:20-FARE-2",
"original_price": 930,
"price": 930,
"type": "fares"
},
{
"fare_class": {
"code": "FARE-1",
"id": "NEXP-FARE-1",
"type": "fare_classes"
},
"id": "NEXP-GBLONVSA-GBBRSCSA-2025-02-28T23:00-2025-03-01T01:20-FARE-1",
"original_price": 1320,
"price": 1320,
"type": "fares"
},
{
"fare_class": {
"code": "FARE-3",
"id": "NEXP-FARE-3",
"type": "fare_classes"
},
"id": "NEXP-GBLONVSA-GBBRSCSA-2025-02-28T23:00-2025-03-01T01:20-FARE-3",
"original_price": 2450,
"price": 2450,
"type": "fares"
}
]
},
"marketing_carrier": {
"data": {
"id": "NEXP",
"type": "marketing_carriers"
}
},
"segments": {
"data": [
{
"id": "NEXP-GBLONVSA-GBBRSCSA-2025-02-28T23:00-2025-03-01T01:20-0",
"type": "segments"
}
]
}
},
"type": "connections"
},
{
"attributes": {
"arrival_time": "2025-03-01T02:20",
"booked_out": false,
"cheapest_fare_class_code": "FARE-2",
"cheapest_total_adult_price": 930,
"co2_kg": 10.237668991088867,
"co2e_kg": 11.739866256713867,
"co2e_savings": 11.51855182647705,
"departure_time": "2025-02-28T23:59",
"duration": 8460,
"electronic_ticket_available": false,
"leg_type": "outbound",
"offer_bundle": null,
"offer_id": null,
"total_seats_left": 53
},
"id": "NEXP-GBLONVSA-GBBRSCSA-2025-02-28T23:59-2025-03-01T02:20",
"relationships": {
"arrival_station": {
"data": {
"id": "GBBRSCSA",
"type": "stations"
}
},
"departure_station": {
"data": {
"id": "GBLONVSA",
"type": "stations"
}
},
"fares": {
"data": [
{
"fare_class": {
"code": "FARE-2",
"id": "NEXP-FARE-2",
"type": "fare_classes"
},
"id": "NEXP-GBLONVSA-GBBRSCSA-2025-02-28T23:59-2025-03-01T02:20-FARE-2",
"original_price": 930,
"price": 930,
"type": "fares"
},
{
"fare_class": {
"code": "FARE-1",
"id": "NEXP-FARE-1",
"type": "fare_classes"
},
"id": "NEXP-GBLONVSA-GBBRSCSA-2025-02-28T23:59-2025-03-01T02:20-FARE-1",
"original_price": 1320,
"price": 1320,
"type": "fares"
},
{
"fare_class": {
"code": "FARE-3",
"id": "NEXP-FARE-3",
"type": "fare_classes"
},
"id": "NEXP-GBLONVSA-GBBRSCSA-2025-02-28T23:59-2025-03-01T02:20-FARE-3",
"original_price": 2450,
"price": 2450,
"type": "fares"
}
]
},
"marketing_carrier": {
"data": {
"id": "NEXP",
"type": "marketing_carriers"
}
},
"segments": {
"data": [
{
"id": "NEXP-GBLONVSA-GBBRSCSA-2025-02-28T23:59-2025-03-01T02:20-0",
"type": "segments"
}
]
}
},
"type": "connections"
}
],
"included": [
{
"attributes": {
"arrival_time": "2025-03-01T01:20",
"departure_time": "2025-02-28T23:00",
"index": 0,
"line": "040-LR"
},
"id": "NEXP-GBLONVSA-GBBRSCSA-2025-02-28T23:00-2025-03-01T01:20-0",
"relationships": {
"amenities": {
"data": []
},
"arrival_station": {
"data": {
"id": "GBBRSCSA",
"type": "stations"
}
},
"departure_station": {
"data": {
"id": "GBLONVSA",
"type": "stations"
}
},
"fares": {
"data": []
},
"marketing_carrier": {
"data": {
"id": "NEXP",
"type": "marketing_carriers"
}
},
"operating_carrier": {
"data": {
"id": "NEXP",
"type": "operating_carriers"
}
},
"vehicle": {
"data": {
"id": "BUS-NEXP-GBLONVSA-GBBRSCSA-2025-02-28T23:00-2025-03-01T01:20-0",
"type": "vehicles"
}
}
},
"type": "segments"
},
{
"id": "BUS-NEXP-GBLONVSA-GBBRSCSA-2025-02-28T23:00-2025-03-01T01:20-0",
"relationships": {
"vehicle_type": {
"data": {
"id": "BUS",
"type": "vehicle_types"
}
}
},
"type": "vehicles"
},
{
"attributes": {
"code": "BUS"
},
"id": "BUS",
"type": "vehicle_types"
},
{
"attributes": {
"booked_out": null,
"original_price": 930,
"price": 930,
"seats_left": null
},
"id": "NEXP-GBLONVSA-GBBRSCSA-2025-02-28T23:00-2025-03-01T01:20-FARE-2",
"relationships": {
"applied_cards": {
"data": []
},
"conditions": {
"data": []
},
"fare_class": {
"data": {
"id": "NEXP-FARE-2",
"type": "fare_classes"
}
}
},
"type": "fares"
},
{
"attributes": {
"booked_out": null,
"original_price": 1320,
"price": 1320,
"seats_left": null
},
"id": "NEXP-GBLONVSA-GBBRSCSA-2025-02-28T23:00-2025-03-01T01:20-FARE-1",
"relationships": {
"applied_cards": {
"data": []
},
"conditions": {
"data": []
},
"fare_class": {
"data": {
"id": "NEXP-FARE-1",
"type": "fare_classes"
}
}
},
"type": "fares"
},
{
"attributes": {
"booked_out": null,
"original_price": 2450,
"price": 2450,
"seats_left": null
},
"id": "NEXP-GBLONVSA-GBBRSCSA-2025-02-28T23:00-2025-03-01T01:20-FARE-3",
"relationships": {
"applied_cards": {
"data": []
},
"conditions": {
"data": []
},
"fare_class": {
"data": {
"id": "NEXP-FARE-3",
"type": "fare_classes"
}
}
},
"type": "fares"
},
{
"attributes": {
"arrival_time": "2025-03-01T02:20",
"departure_time": "2025-02-28T23:59",
"index": 0,
"line": "040-LU"
},
"id": "NEXP-GBLONVSA-GBBRSCSA-2025-02-28T23:59-2025-03-01T02:20-0",
"relationships": {
"amenities": {
"data": []
},
"arrival_station": {
"data": {
"id": "GBBRSCSA",
"type": "stations"
}
},
"departure_station": {
"data": {
"id": "GBLONVSA",
"type": "stations"
}
},
"fares": {
"data": []
},
"marketing_carrier": {
"data": {
"id": "NEXP",
"type": "marketing_carriers"
}
},
"operating_carrier": {
"data": {
"id": "NEXP",
"type": "operating_carriers"
}
},
"vehicle": {
"data": {
"id": "BUS-NEXP-GBLONVSA-GBBRSCSA-2025-02-28T23:59-2025-03-01T02:20-0",
"type": "vehicles"
}
}
},
"type": "segments"
},
{
"id": "BUS-NEXP-GBLONVSA-GBBRSCSA-2025-02-28T23:59-2025-03-01T02:20-0",
"relationships": {
"vehicle_type": {
"data": {
"id": "BUS",
"type": "vehicle_types"
}
}
},
"type": "vehicles"
},
{
"attributes": {
"booked_out": null,
"original_price": 930,
"price": 930,
"seats_left": null
},
"id": "NEXP-GBLONVSA-GBBRSCSA-2025-02-28T23:59-2025-03-01T02:20-FARE-2",
"relationships": {
"applied_cards": {
"data": []
},
"conditions": {
"data": []
},
"fare_class": {
"data": {
"id": "NEXP-FARE-2",
"type": "fare_classes"
}
}
},
"type": "fares"
},
{
"attributes": {
"booked_out": null,
"original_price": 1320,
"price": 1320,
"seats_left": null
},
"id": "NEXP-GBLONVSA-GBBRSCSA-2025-02-28T23:59-2025-03-01T02:20-FARE-1",
"relationships": {
"applied_cards": {
"data": []
},
"conditions": {
"data": []
},
"fare_class": {
"data": {
"id": "NEXP-FARE-1",
"type": "fare_classes"
}
}
},
"type": "fares"
},
{
"attributes": {
"booked_out": null,
"original_price": 2450,
"price": 2450,
"seats_left": null
},
"id": "NEXP-GBLONVSA-GBBRSCSA-2025-02-28T23:59-2025-03-01T02:20-FARE-3",
"relationships": {
"applied_cards": {
"data": []
},
"conditions": {
"data": []
},
"fare_class": {
"data": {
"id": "NEXP-FARE-3",
"type": "fare_classes"
}
}
},
"type": "fares"
},
{
"attributes": {
"booking_fee": 181,
"code": "NEXP",
"legal_name": "National Express Limited",
"markup_fee_percentage": 0.0,
"trade_name": "National Express"
},
"id": "NEXP",
"relationships": {
"extra_types": {
"data": []
},
"fare_classes": {
"data": [
{
"id": "NEXP-FARE-1",
"type": "fare_classes"
},
{
"id": "NEXP-FARE-2",
"type": "fare_classes"
},
{
"id": "NEXP-FARE-3",
"type": "fare_classes"
}
]
},
"passenger_types": {
"data": [
{
"id": "PNOS",
"type": "passenger_types"
},
{
"id": "PINT",
"type": "passenger_types"
},
{
"id": "PCIL",
"type": "passenger_types"
}
]
}
},
"type": "marketing_carriers"
},
{
"attributes": {
"code": "NEXP",
"legal_name": "National Express Limited",
"trade_name": "National Express"
},
"id": "NEXP",
"type": "operating_carriers"
},
{
"attributes": {
"code": "PNOS",
"description": "",
"max_age": 99,
"min_age": 16,
"name": "Adult"
},
"id": "PNOS",
"type": "passenger_types"
},
{
"attributes": {
"code": "PINT",
"description": "",
"max_age": 3,
"min_age": 0,
"name": "Infant"
},
"id": "PINT",
"type": "passenger_types"
},
{
"attributes": {
"code": "PCIL",
"description": "",
"max_age": 15,
"min_age": 4,
"name": "Child"
},
"id": "PCIL",
"type": "passenger_types"
},
{
"attributes": {
"code": "GBBRSCSA",
"description": "The bus station is located between Marlborough Street and 1 Whitson Street. The entrance to the waiting area building is on Whitson Street.",
"latitude": 51.4588432,
"longitude": -2.59339729999999,
"name": "Bristol Bus Station",
"street_and_number": "Whitson St 1",
"time_zone": "Europe/London",
"zip_code": null
},
"id": "GBBRSCSA",
"relationships": {
"area": {
"data": null
},
"city": {
"data": {
"id": "GBBRS",
"type": "cities"
}
}
},
"type": "stations"
},
{
"attributes": {
"code": "GBLONVSA",
"description": "The bus stop is on Buckingham Palace Road, south of Victoria station in the Belgravia district. London Victoria Coach Station is made up of several separate arrival and departure terminals, which have been built up along neighbouring Elizabeth Street. Please contact representative of your bus operator at the coach station to confirm where to board your coach.\r\nCustomers are advised that Services 702/757/758/OXT ordinarily depart from outside Victoria Coach Station. .",
"latitude": 51.49234506006851,
"longitude": -0.14888283967587,
"name": "London Victoria Coach Station",
"street_and_number": "164 Buckingham Palace Road",
"time_zone": "Europe/London",
"zip_code": "SW1W 9TP"
},
"id": "GBLONVSA",
"relationships": {
"area": {
"data": {
"id": "GBLONLV",
"type": "areas"
}
},
"city": {
"data": {
"id": "GBLON",
"type": "cities"
}
}
},
"type": "stations"
},
{
"attributes": {
"code": "GBBRS",
"name": "Bristol"
},
"id": "GBBRS",
"type": "cities"
},
{
"attributes": {
"code": "GBLON",
"name": "London"
},
"id": "GBLON",
"type": "cities"
},
{
"attributes": {
"code": "GBLONLV",
"name": "London Victoria "
},
"id": "GBLONLV",
"type": "areas"
},
{
"attributes": {
"code": "FARE-1",
"iata_category": null,
"journey_type": "single",
"name": "Standard Fare"
},
"id": "NEXP-FARE-1",
"relationships": {
"fare_features": {
"data": [
{
"id": "NEXP-ACON",
"type": "fare_features"
},
{
"id": "NEXP-TOIL",
"type": "fare_features"
},
{
"id": "NEXP-AMEN",
"type": "fare_features"
},
{
"id": "NEXP-WIFI",
"type": "fare_features"
},
{
"id": "NEXP-UCHA",
"type": "fare_features"
},
{
"id": "NEXP-BLUG",
"type": "fare_features"
},
{
"id": "NEXP-AAFR",
"type": "fare_features"
},
{
"id": "NEXP-NREF",
"type": "fare_features"
},
{
"id": "NEXP-ELUF",
"type": "fare_features"
}
]
}
},
"type": "fare_classes"
},
{
"attributes": {
"code": "FARE-2",
"iata_category": null,
"journey_type": "single",
"name": "Restricted Fare"
},
"id": "NEXP-FARE-2",
"relationships": {
"fare_features": {
"data": [
{
"id": "NEXP-ACON",
"type": "fare_features"
},
{
"id": "NEXP-TOIL",
"type": "fare_features"
},
{
"id": "NEXP-NAME",
"type": "fare_features"
},
{
"id": "NEXP-WIFI",
"type": "fare_features"
},
{
"id": "NEXP-UCHA",
"type": "fare_features"
},
{
"id": "NEXP-BLUG",
"type": "fare_features"
},
{
"id": "NEXP-AAFR",
"type": "fare_features"
},
{
"id": "NEXP-NREF",
"type": "fare_features"
},
{
"id": "NEXP-ELUF",
"type": "fare_features"
}
]
}
},
"type": "fare_classes"
},
{
"attributes": {
"code": "FARE-3",
"iata_category": null,
"journey_type": "single",
"name": "Fully Flexible"
},
"id": "NEXP-FARE-3",
"relationships": {
"fare_features": {
"data": [
{
"id": "NEXP-ACON",
"type": "fare_features"
},
{
"id": "NEXP-TOIL",
"type": "fare_features"
},
{
"id": "NEXP-AMEN",
"type": "fare_features"
},
{
"id": "NEXP-WIFI",
"type": "fare_features"
},
{
"id": "NEXP-UCHA",
"type": "fare_features"
},
{
"id": "NEXP-BLUG",
"type": "fare_features"
},
{
"id": "NEXP-AAFR",
"type": "fare_features"
},
{
"id": "NEXP-REFU",
"type": "fare_features"
},
{
"id": "NEXP-ELUF",
"type": "fare_features"
}
]
}
},
"type": "fare_classes"
},
{
"attributes": {
"code": "AAFR",
"description": "Fully collapsible wheelchairs and fully collapsible pushchairs may be stowed free of charge. Passenger have to contact bus operator 36 hours before the departure.",
"name": "Accessible area for wheelchairs"
},
"id": "NEXP-AAFR",
"type": "fare_features"
},
{
"attributes": {
"code": "ACON",
"description": "The bus has a cooling ventilation.",
"name": "Air Conditioning"
},
"id": "NEXP-ACON",
"type": "fare_features"
},
{
"attributes": {
"code": "AMEN",
"description": "The ticket is amendable, passengers can modify departure date and time of the journey. Please proceed via the link https://coach.nationalexpress.com/nxbooking/mmb2ManageMyBooking. A £5 amendment fee is applicable.",
"name": "Amendable"
},
"id": "NEXP-AMEN",
"type": "fare_features"
},
{
"attributes": {
"code": "BLUG",
"description": "Bicycles, winter/summer sports equipment, and musical instruments are allowed as one piece of luggage hold or hand luggage, depending on size. Prams/pushchairs are allowed in the hold for free.",
"name": "Bulky Luggage"
},
"id": "NEXP-BLUG",
"type": "fare_features"
},
{
"attributes": {
"code": "ELUF",
"description": "Extra luggage for fee",
"name": "Extra luggage for fee"
},
"id": "NEXP-ELUF",
"type": "fare_features"
},
{
"attributes": {
"code": "NAME",
"description": "The ticket is not amendable.",
"name": "Non-amendable"
},
"id": "NEXP-NAME",
"type": "fare_features"
},
{
"attributes": {
"code": "NREF",
"description": "Non refundable, but amendable by contacting National Express directly.",
"name": "Non-refundable"
},
"id": "NEXP-NREF",
"type": "fare_features"
},
{
"attributes": {
"code": "REFU",
"description": "The ticket, excluding the booking fee, is refundable and can be cancelled up to 24 hours before departure.",
"name": "Fully refundable"
},
"id": "NEXP-REFU",
"type": "fare_features"
},
{
"attributes": {
"code": "TOIL",
"description": "A toilet is available on board.",
"name": "Toilet"
},
"id": "NEXP-TOIL",
"type": "fare_features"
},
{
"attributes": {
"code": "UCHA",
"description": "USB plug is available at each seat. ",
"name": "USB charger"
},
"id": "NEXP-UCHA",
"type": "fare_features"
},
{
"attributes": {
"code": "WIFI",
"description": "Free wifi is available on board.",
"name": "Wifi"
},
"id": "NEXP-WIFI",
"type": "fare_features"
}
],
"jsonapi": {
"version": "1.0"
},
"meta": {
"currency": "EUR",
"locale": "en"
}
For more sample responses, check the /connections/find endpoint page.
What made this section unhelpful for you?
On this page
- Fees