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!&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 limitTravelSegment/TicketInfo@DefaultTicketingStatus- indicates (if known) the default ticketing status ifTargetTicketingStatusis not used inBookBasketRequest(see next section).TravelSegment/TicketInfo@SupportsTargetTicketingStatus- must be true to useTargetTicketingStatusinBookBasketRequest(see next section).
Tip
Also see references pages for FAB_BasketRS.Tip
An equivalent of LastTicketDate/LastTicketTime is available at search: LastTicketTimestamp. See FAB_PkgAvailRS.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@ComponentIdis setBookingComponent@CurrentTicketingStatusis set toheld- No payment has been taken, so payment related elements/attributes are not set. E.g
PaymentAuth.