Last updated

Making an Air Booking

The steps below explain how to create a new air booking for a traveler. All APIs mentioned below are dependent on each other and the steps described in this section must be executed in the order specified.

StepNameEndpointDetails
1.Get air itineraries/v2/air/search-flightsSearch for available flights.

Response will contain:
searchId itineraryId paginationParameters metadata

Other APIs will use: searchId itineraryId
2.Get flight attributes/v2/air/flight-attributesRetrieve flight attributes such as amenities and fare rules for every flight displayed on a search result.

Request body requires: searchId

Response will contain:
searchId itineraryId paginationParameters metadata

Other APIs will use: searchId itineraryId
3.Get selected itinerary/v2/air/selected-itineraryView one selected itinerary and its respective details.

Request body requires: searchId itineraryId

Response will contain:
Itinerary details for the itineraryId provided in the request.
4.Get flight checkout details/v2/air/flight-checkoutGet checkout related information for a selected itinerary from Step 3.

Request body requires: searchId itineraryId

Response will contain:
checkoutResponseId, baggage information, ancillaries, other checkout parameters and supported payment options.

Other APIs will use: checkoutResponseId
5.Get flight seat map/v2/air/seat-mapView the seat map for the selected itinerary from Step 3.

Request body requires:
airItineraryId (an object wrapper containing both searchId and itineraryId from Step 1) and traveler information.

Response will contain:
seatMapResponseId travelerSeatMaps travelerId flightSeatMapIds seatMaps seatMapId

Other APIs will use: seatMapResponseId
6.List trips (optional)/v2/list-organisation-tripsDuring the checkout process, you can use the List Trips API to choose a trip name from the list of existing names or create a new trip name in the next step.

Request body requires:
organizationId updatedAt pnrType customFields

Response will contain: tripId

Other APIs will use: tripId
7.Create trip/v2/tripsTrips act as a container to group one or more related PNRs (bookings). You must provide a unique value for the tripName parameter. If you’ve already picked an existing trip name in Step 6, you can skip this step.

Request body requires:
tripName tripDescription userId registrarId

Response will contain: tripId

Other APIs will use: tripId
8.Initiate booking/v2/air/initiate-bookingInitiate the booking process for the new trip created in Step 7.

Request body requires:
checkoutResponseId from Step 4, seatMapResponseId from Step 5, traveler details, bookingCharges, and bookingContact.

Response will contain: initiateBookingResponseId

Other APIs will use: initiateBookingResponseId
9.Validate itinerary/v2/air/revalidate-itineraryTo finalize a reservation, the travelers must indicate their preferred seat, number of checked and carry-on bags, and select whether they want any ancillaries such as travel insurance or priority boarding (applied as additional booking charges). Use this API to validate your itinerary.

Request body requires:
checkoutResponseId from Step 4, seatMapResponseId from Step 5, initiateBookingResponseId from Step 8, paymentSetupResponseId, paymentSourceId, tripId from Step 7, traveler details and booking charges.

Note: Contact your Spotnana representative to obtain the paymentSourceId.

Response will contain:
bookingId, fare breakdown, leg prices, and policy details.

Other APIs will use: bookingId
10.Create air pnr/v2/air/create-pnrCreate a new air booking (PNR) for your trip.

Request body requires:
bookingId from Step 9, initiateBookingResponseId from Step 8, preBookAnswers generated using the Get Trip Details API

Response will contain:
pnrId sourcePnrId pnrStatus

The pnrId generated by this API will be used in the exchange and cancel booking workflows.