Held flight booking

Certain flight suppliers support optional held bookings.

This is where you can use FAB to request that the booking be held and not auto-ticketed. Ticketing can then occur later via the supplier’s own portal or via the PaxFaB Servicing API.

This page will show how to make a held booking.

Supported suppliers

Check “Optional held booking” field on https://paxfab-suppliers.paxport.com/

Note that even for suppliers that support held bookings it may be limited to certain fares only.

Basket - create

CreateBasketRequest is much the same as any other flight booking.

The key difference is you must set a ComponentId at costing in your CreateBasketRequest.

...
  <CreateBasketRequest ReplaceExistingBasket="true" ResponseTimeoutSecs="60">
    <Itinerary>
      <ComponentIdentity ComponentId="1" Identity="F!BAE!economy!{F!BAE!LHR!I8AJA!BHD!BA!BA!1426!!!E!N!N!&amp;F!BAE!BHD!I8H70!LHR!BA!BA!1427!!!E!N!N!}"/>
    </Itinerary>
    ...

Then check the response for:

  • TravelSegment/TicketInfo@LastTicketDate & TravelSegment/TicketInfo@LastTicketTime - ticket/payment datetime limit
  • TravelSegment/TicketInfo@DefaultTicketingStatus - indicates (if known) the default ticketing status if TargetTicketingStatus is not used in BookBasketRequest (see next section).
  • TravelSegment/TicketInfo@SupportsTargetTicketingStatus - must be true to use TargetTicketingStatus in BookBasketRequest (see next section).

Basket - book

BookBasketRequest is much the same as any other flight booking.

The key difference is you must use the Component element to state that you want TargetTicketingStatus="held" for the aforementioned ComponentId.

...
  <BookBasketRequest BasketId="*******" ResponseTimeoutSecs="120" TotalCost="132.13">
    <Payment PaymentMode="syndicator_deferred"/>
    <Component ComponentId="1" CurrentBookingStage="confirmed_costing" Supplier="BAE" TargetTicketingStatus="held"/>
  </BookBasketRequest>
  ...

The response will differ when it comes to BookingInfo

...
    <BookingInfo Currency="GBP" PaidOnlyDeposit="false" PaymentMode="syndicator_deferred" PaymentTakenAtBooking="0.0" Success="true">
      <BookingComponent BookingChannel="XML" BookingChannelName="British Airways API" BookingReference="SxxxA8" BookingUsername="undefined" ComponentId="1" Currency="GBP" CurrentTicketingStatus="held" Deposit="132.13" Success="true" Supplier="BAE" TotalCost="132.13"/>
    </BookingInfo>
...
  • BookingComponent@ComponentId is set
  • BookingComponent@CurrentTicketingStatus is set to held
  • No payment has been taken, so payment related elements/attributes are not set. E.g PaymentAuth.

Last modified September 25, 2023