Skip to navigation

Book flight

Books a flight/fare for one or more travelers.

Overview

The book endpoint creates a flight reservation in the GDS. It supports regular GDS content (Amadeus, Sabre) as well as low-cost carriers and NDC content from Travelfusion.

Use case

This endpoint can be used on a reservation check-out page to allow users to book a fare. The booking process initiates the reservation with the airline, which may take some time to fully process.

View the complete_verification endpoint for more information on the booking process for Travelfusion fares that require 3D security for credit card payments.

What’s next?

The booking_uid in the response must be used to get reservation details via the get_reservation_details endpoint until the status becomes something other than in-progress.

Key parameters

ParameterTypeRequiredDescription
fare_group_keystringyesFare group key from the pricing response
flight_option_keysarrayyesFlight option keys from the pricing response
optional_service_keysarraynoOptional service keys if add-ons were selected
travelersarrayyesTraveler details (name, DOB, passport, contact)
paymentobjectyesPayment information (credit card or corporate billing)
credit_card_verification_return_urlstringconditionalRequired for Travelfusion fares that need 3D Secure verification. URL where the bank redirects after payment verification
custom_trip_dataobjectnoCustom trip metadata for reporting purposes
client_reportable_dataobjectnoClient-specific reporting data

Response structure

The response contains:

  • booking_uid — unique booking identifier for tracking the reservation
  • status — initial reservation status (typically in-progress)
  • pnr_id — passenger name record identifier in the GDS

Booking flow

1

Validate fare via pricing

Always call the pricing endpoint first to confirm the fare is still available.

2

Collect traveler and payment details

Gather traveler information and payment method from your checkout page.

3

Submit booking request

Call the book endpoint with all required parameters.

4

Poll for completion

Use get_reservation_details with the booking_uid to check status until it resolves to active or returns an error.

5

Handle 3D Secure (if applicable)

For Travelfusion fares requiring 3D Secure: redirect the user to the verification_url, then call complete_verification with the returned verification_id.

Error handling

If the booking fails, common scenarios include:

  • Fare no longer available — the fare expired between pricing and booking
  • Payment declined — credit card validation failed
  • Duplicate booking — same booktrack_id was already used (create a new one for retries)

Always create a new booktrack_id when re-attempting a booking that failed. Reusing the same identifier will result in a duplicate booking error.