FAB_BasketRS
The FAB_BasketRS will be the result of any FAB_BasketRQ and is an example of a FABRequestResponse. It will additionally contain a element of CurrentBasket.
CurrentBasket
CurrentBasket has the following structure:
| Attribute or element | Mandatory? | Definition | Note |
|---|---|---|---|
@CurrentlyActive | Yes | true or false, if true then FAB is still attempting to process the basket (e.g waiting for a supplier response) | An active basket is not ready to book or to display to consumers, instead you must check the basket until it becomes inactive. See section check basket |
@BasketId | Yes | String identifying current basket | Used for subsequent basket actions |
@Status | No | Text indicating the basket’s current status. | - |
@TargetBookingStage | Yes | passenger_details or confirmed_costing or booked | May differ from CurrentBookingStage if you didn’t provide PassengerDetails resulting in FAB only reaching passenger_details not your target of confirmed_costing. |
@CurrentBookingStage | Yes | passenger_details or confirmed_costing or booked | PassengerDetails must be provided to proceed from passenger_details to confirmed_costing. Only a basket at confirmed_costing can proceed to book. |
@ConsumersReference | No | Reference set from request | - |
PartyInfo | Yes | See FAB_BasketRQ | - |
Itinerary | Yes | Details the requested itinerary | - |
PassengerDetails | No | See PassengerDetails in BasketRQ for structure | - |
Itinerary@PassengerIdRequired | No, default false | boolean, if true then ID information must be provided to the supplier before departure | - |
Itinerary@PassengerIdMandatory | No, default false | boolean, if true then ID information must be provided to the supplier before booking | - |
Itinerary@NationalityRequired | No, default false | boolean, if true then nationality information must be provided to the supplier before departure | - |
Itinerary@NationalityMandatory | No, default false | boolean, if true then Nationality attribute must be set for each passenger before booking | - |
Itinerary@PassengerFullMiddleNameMandatory | No, default false | boolean, if true then passengers must have MiddleInitials set to their full middle name(s) if they have one | Note this attribute is not widely supported, it is best to always set MiddleInitials to the passenger’s middle name(s) if they have one. |
Itinerary@ItineraryId | Yes | the id associated with the Itinerary | - |
Itinerary@StartDate | Yes | yyyyMMdd the start date for this Itinerary | - |
Itinerary@EndDate | Yes | yyyyMMdd the end date for this Itinerary | - |
Itinerary@NumNights | No | the duration in number of nights of this Itinerary | - |
Itinerary@Availability | Yes | available or unavailable or unknown Indicates whether or not a particular itinerary is available | - |
Itinerary@BookableByFab | Yes | boolean, if true then FAB is capable of booking this itinerary | - |
Itinerary@Currency | Yes | ISO 4217 alphabetic currency of PerPassengerCost | - |
Itinerary@PerPassengerCost | No | The cost per passenger of this itinerary | - |
Itinerary/ItineraryCost | Yes | Contains details of the itinerary costs, including both totals and a breakdown | - |
Itinerary/ItineraryCost@TotalCost | Yes | Total cost of itinerary | - |
Itinerary/ItineraryCost@Currency | Yes | ISO 4217 alphabetic currency of TotalCost and DepositRequiredAtBooking | - |
Itinerary/ItineraryCost@CostingStage | Yes | estimate or quick or confirmed or booked | See “FAB Costing Stages” table |
Itinerary/ItineraryCost@CostingAccuracy | Yes | indicates the accuracy, as a percentage, of the associated cost structure | Deprecated |
Itinerary/ItineraryCost@BasedOn | No | Human readable description of the itinerary | |
Itinerary/ItineraryCost@PartyInfoCheck | Yes | Human readable description of the party | - |
Itinerary/ItineraryCost@DepositRequiredAtBooking | No | Indicates booking deposit cost | Not widely supported |
Itinerary/ItineraryCost@CostingValid | Yes | boolean, if true then the costing is valid | Deprecated |
Itinerary/Component[*] | Yes | Contains some info in relation to the suppliers of the itinerary | - |
Itinerary/Component[*]@Supplier | Yes | Supplier code of component | - |
Itinerary/Component[*]@BookingChannel | No | - | Advised to ignore |
Itinerary/Component[*]@BookingChannelName | No | String indicating the supplier integration of hte component | Should not be mapped as it is not stable |
Itinerary/FOIDAllowed[*] | No | Lists acceptable forms of identification | Useful if you need/want to set FOID request attribute |
Itinerary/FOIDAllowed[*]/FOID[*] | Yes | See FAB_BasketRQ FOID | - |
Itinerary/ItineraryCost/Component[*]@Supplier | Yes | Supplier (code) of component | - |
Itinerary/ItineraryCost/Component[*]@TotalCost | Yes | Total cost of component | - |
Itinerary/ItineraryCost/Component[*]@Currency | Yes | ISO 4217 alphabetic currency of TotalCost and DepositRequiredAtBooking | - |
Itinerary/ItineraryCost/Component[*]@CostingStage | Yes | estimate or quick or confirmed or booked | See “FAB Costing Stages” table |
Itinerary/ItineraryCost/Component[*]@DepositRequiredAtBooking | No | Indicates booking deposit cost | Not widely supported |
Itinerary/ItineraryCost/Component[*]@UpdatedTime | Yes | yyyyMMdd HHmm indicates when costing was produced | UK local time |
Itinerary/ItineraryCost/Component[*]@HostSystemRequiresPaymentCard | No, default false | true or false. If true then this component must be paid by card | - |
Itinerary/ItineraryCost/Component[*]/Detail[*] | Yes | A Component’s cost is broken down into one or more cost details | Note that the list of details is dynamic so care must be taken to not hard-code an expectation that a certain Detail will always be present. |
Itinerary/ItineraryCost/Component[*]/Detail[*]@Description | Yes | A description of the Detail | - |
Itinerary/ItineraryCost/Component[*]/Detail[*]@UnitCost | Yes | Unit cost | Following any currency conversion and/or syndicator markup |
Itinerary/ItineraryCost/Component[*]/Detail[*]@Quantity | Yes | quantity of this cost item | - |
Itinerary/ItineraryCost/Component[*]/Detail[*]@ExtendedCost | Yes | Unit cost multiplied by quantity | - |
Itinerary/ItineraryCost/Component[*]/Detail[*]@Currency | Yes | ISO 4217 alphabetic currency of UnitCost and ExtendedCost | - |
Itinerary/ItineraryCost/Component[*]/Detail[*]@PriceDescription | No | Additional description of Detail | - |
Itinerary/ItineraryCost/Component[*]/Detail[*]@PriceCode | No | Categorises the cost line item | Derived from the fab price code. |
Itinerary/ItineraryCost/Component[*]/Detail[*]@FPC | Yes | FAB Price Code categorises the cost line item | see fpcs |
Itinerary/ItineraryCost/Component[*]/Detail[*]@ExtraCode | No | Code of related optional extra | - |
Itinerary/ItineraryCost/Component[*]/Detail[*]/SourceCostDetail | No | Contains information about costs before any markup/discounts or currency conversion had been applied. | Can generally be ignored |
Itinerary/ItineraryCost/Component[*]/Detail[*]/SourceCostDetail@SourceUnitCost | Yes | Unit cost before any currency conversion or syndicator markup | - |
Itinerary/ItineraryCost/Component[*]/Detail[*]/SourceCostDetail@SourceCurrency | Yes | ISO 4217 alphabetic currency of SourceUnitCost | - |
Itinerary/ItineraryCost/Component[*]/Detail[*]/SourceCostDetail@UnitCost | Yes | Unit cost after any currency conversion | In currency of Detail |
Itinerary/ItineraryCost/Component[*]/Detail[*]/SourceCostDetail@UnitMarkup | Yes | Unit syndicator markup, if any | In currency of Detail |
Itinerary/ItineraryCost/Component[*]/PaymentCardCharge[*] | No | Info about what card types are accepted by the supplier of this component and the charge for each | Never currency normalised |
Itinerary/ItineraryCost/Component[*]/PaymentCardCharge[*]@CardType | Yes | Card type, see FAB_BasketRQ | - |
Itinerary/ItineraryCost/Component[*]/PaymentCardCharge[*]@Amount | Yes | Card charge amount | - |
Itinerary/ItineraryCost/Component[*]/PaymentCardCharge[*]@Currency | Yes | ISO 4217 alphabetic currency of Amount | - |
Itinerary/ItineraryCost/Component[*]/PaymentCardCharge[*]/AcceptableAuthMode[*] | Yes | What auth modes are accepted | See FAB_BasketRQ “FAB Card Authorisation Modes” |
Itinerary/ItineraryCost/PaymentCardCharge[*] | No | Intersection of PaymentCardCharges from each Component, with Amount summed | i.e lists cards and charges that can be used to pay for all relevant components. May have been currency normalised. |
Itinerary/ItineraryCost/PaymentCardCharge[*]@CardType | Yes | Card type, see FAB_BasketRQ | - |
Itinerary/ItineraryCost/PaymentCardCharge[*]@Amount | Yes | Card charge amount | - |
Itinerary/ItineraryCost/PaymentCardCharge[*]@Currency | Yes | ISO 4217 alphabetic currency of Amount | - |
Itinerary/ItineraryCost/PaymentCardCharge[*]/AcceptableAuthMode[*] | Yes | What auth modes are accepted | See FAB_BasketRQ “FAB Card Authorisation Modes” |
ImportantInformation/Errata[*]@Text | No | Freetext information about an itinerary component. | Can include information like fare rules or bag dimensions. This information is usually set by the supplier so Paxport does not guarantee that the information is appropriate to expose to the consumer. |
ImportantInformation/Errata[*]@Code | No | Code identifying the errata | - |
ImportantInformation/Errata[*]@Supplier | Yes | Supplier code that Errata applies to | - |
Itinerary/TravelSegments/TravelSegment[*] | No | A travel segment of the itinerary | e.g an inbound flight |
Itinerary/TravelSegments/TravelSegment[*]@DeparturePoint | Yes | Departure airport IATA code | - |
Itinerary/TravelSegments/TravelSegment[*]@ArrivalPoint | Yes | Arrival airport IATA code | - |
Itinerary/TravelSegments/TravelSegment[*]@Type | Yes | outbound homebound transfer | - |
Itinerary/TravelSegments/TravelSegment[*]@DepartureDate | Yes | yyyyMMdd | - |
Itinerary/TravelSegments/TravelSegment[*]@DepartureTime | Yes | HHmm | - |
Itinerary/TravelSegments/TravelSegment[*]@ArrivalDate | Yes | yyyyMMdd | - |
Itinerary/TravelSegments/TravelSegment[*]@ArrivalTime | Yes | HHmm | - |
Itinerary/TravelSegments/TravelSegment[*]@Supplier | Yes | Supplier code of segment | - |
Itinerary/TravelSegments/TravelSegment[*]@ItineraryId | Yes | ItineraryId of segment | - |
Itinerary/TravelSegments/TravelSegment[*]@Currency | Yes | ISO 4217 alphabetic currency of segment | - |
Itinerary/TravelSegments/TravelSegment[*]@ITFare | No, default false | boolean indicating if this flight result is an IT (Inclusive Tour) fare and therefore should only be used when using the flight as part of an “inclusive package”. | - |
Itinerary/TravelSegments/TravelSegment[*]@CAT35Fare | No, default false | boolean indicating if this flight result is a CAT35 fare | |
Itinerary/TravelSegments/TravelSegment[*]@FareType | Yes | Published Private NoFrills NegoCorporate | - |
Itinerary/TravelSegments/TravelSegment[*]@OperatedBy | No | Operating carrier name | - |
Itinerary/TravelSegments/TravelSegment[*]@MarketedBy | No | Marketing carrier name | - |
Itinerary/TravelSegments/TravelSegment[*]@OperatingCarrier | No | Operating carrier code | Can be IATA or ICAO, depending on the supplier’s preference |
Itinerary/TravelSegments/TravelSegment[*]@MarketingCarrier | Yes | Marketing carrier code | Can be IATA or ICAO, depending on the supplier’s preference |
Itinerary/TravelSegments/TravelSegment[*]@JourneyMins | No | Duration of journey in minutes | Includes any layover time |
Itinerary/TravelSegments/TravelSegment[*]@FareClass | No | Indicates the fare class of the first leg | Generally a single letter, e.g “Y” |
Itinerary/TravelSegments/TravelSegment[*]@FlightClass | No | Indicates the fare class of the first leg | Generally a single letter, e.g “Y” |
Itinerary/TravelSegments/TravelSegment[*]@NumStops | No, default zero | Number of stops | - |
Itinerary/TravelSegments/TravelSegment[*]@DeparturePointName | No | Departure airport name | - |
Itinerary/TravelSegments/TravelSegment[*]@ArrivalPointName | No | Arrival airport name | - |
Itinerary/TravelSegments/TravelSegment[*]@SupplierName | No | Supplier name | - |
Itinerary/TravelSegments/TravelSegment[*]/TicketInfo | No | Contains information about ticket collection, check-in, and the suchlike | This is rarely populated beyond FlightNumber for lowcost carriers |
Itinerary/TravelSegments/TravelSegment[*]/TicketInfo@CheckInDate | No | yyyyMMdd | - |
Itinerary/TravelSegments/TravelSegment[*]/TicketInfo@CheckInTime | No | HHmm | - |
Itinerary/TravelSegments/TravelSegment[*]/TicketInfo@CheckInDetails | No | details of where/how to check in | - |
Itinerary/TravelSegments/TravelSegment[*]/TicketInfo@CollectionDetails | No | details of where/how to pick up ticket | - |
Itinerary/TravelSegments/TravelSegment[*]/TicketInfo@FlightNumber | No | Flight number for ticket info | - |
Itinerary/TravelSegments/TravelSegment[*]/TicketInfo@TicketOnDeparture | No | boolean, if true then the ticket is supposed to be collected on at the airport just before departure | - |
Itinerary/TravelSegments/TravelSegment[*]/TicketInfo@DepartureTerminal | No | details about the departure airport terminal | - |
Itinerary/TravelSegments/TravelSegment[*]/TicketInfo@ArrivalTerminal | No | details about the arrival airport terminal | - |
Itinerary/TravelSegments/TravelSegment[*]/TicketInfo@LastTicketDate | No | yyyyMMdd last date at which this fare can be ticketed | - |
Itinerary/TravelSegments/TravelSegment[*]/TicketInfo@LastTicketTime | No | HHmm last time at which this fare can be ticketed | - |
Itinerary/TravelSegments/TravelSegment[*]/TicketInfo@DefaultTicketingStatus | No | Indicates default ticketing status for the booking. Set to held for held booking or confirmed for a standard booking | The default status can be overridden using TargetTicketingStatus parameter in BasketRQ if SupportsTargetTicketingStatus is set to true |
Itinerary/TravelSegments/TravelSegment[*]/TicketInfo@SupportsTargetTicketingStatus | No | boolean indicating if the handler supports the TargetTicketingStatus attribute in BasketRQ | If set to false then the handler can ignore the TargetTicketingStatus parameter set during booking. |
Itinerary/TravelSegments/TravelSegment[*]/BaggageAllowance | No | Indicates included baggage allowance | Only supported by select suppliers |
Itinerary/TravelSegments/TravelSegment[*]/BaggageAllowance@Per | Yes | Passenger or Adult or Youth or Child or Infant | - |
Itinerary/TravelSegments/TravelSegment[*]/BaggageAllowance@Unit | Yes | Piece or kg or lb or Unknown | - |
Itinerary/TravelSegments/TravelSegment[*]/BaggageAllowance@Quantity | Yes | Integer | - |
Itinerary/TravelSegments/TravelSegment[*]/BaggageAllowance@Type | Yes | Hold or Hand | - |
Itinerary/TravelSegments/TravelSegment[*]/SubSegment[*] | No | If segment is multileg/indirect one or more subsegments/legs will be listed | - |
Itinerary/TravelSegments/TravelSegment[*]/SubSegment[*]/BaggageAllowance | No | Same structure as TravelSegment[*]/BaggageAllowance. Indicates included baggage allowance for the leg/subsegment | Only supported by select suppliers |
Itinerary/TravelSegments/TravelSegment[*]/SubSegment[*]@DeparturePoint | Yes | Departure airport IATA code | - |
Itinerary/TravelSegments/TravelSegment[*]/SubSegment[*]@ArrivalPoint | Yes | Arrival airport IATA code | - |
Itinerary/TravelSegments/TravelSegment[*]/SubSegment[*]@DepartureDate | Yes | yyyyMMdd | - |
Itinerary/TravelSegments/TravelSegment[*]/SubSegment[*]@DepartureTime | Yes | HHmm | - |
Itinerary/TravelSegments/TravelSegment[*]/SubSegment[*]@ArrivalDate | Yes | yyyyMMdd | - |
Itinerary/TravelSegments/TravelSegment[*]/SubSegment[*]@ArrivalTime | Yes | HHmm | - |
Itinerary/TravelSegments/TravelSegment[*]/SubSegment[*]@OperatedBy | No | Operating carrier name | - |
Itinerary/TravelSegments/TravelSegment[*]/SubSegment[*]@OperatingCarrier | No | Operating carrier code | Can be IATA or ICAO, depending on the supplier’s preference |
Itinerary/TravelSegments/TravelSegment[*]/SubSegment[*]@MarketingCarrier | No | Marketing carrier code | Can be IATA or ICAO, depending on the supplier’s preference |
Itinerary/TravelSegments/TravelSegment[*]/SubSegment[*]@JourneyMins | No | Duration of journey in minutes | Includes any layover time |
Itinerary/TravelSegments/TravelSegment[*]/SubSegment[*]@FlightClass | No | Fare class | Generally a single letter, e.g “Y” |
Itinerary/TravelSegments/TravelSegment[*]/SubSegment[*]@NumStops | No, default zero | Number of stops | - |
Itinerary/TravelSegments/TravelSegment[*]/SubSegment[*]@OriginAirportName | No | Departure airport name | - |
Itinerary/TravelSegments/TravelSegment[*]/SubSegment[*]@DestinationAirportName | No | Arrival airport name | - |
Itinerary/TravelSegments/TravelSegment[*]/SubSegment[*]@FlightNumber | Yes | Flight number | - |
Itinerary/TravelSegments/TravelSegment[*]/SubSegment[*]@DepartureTerminal | No | Departure terminal | - |
Itinerary/TravelSegments/TravelSegment[*]/SubSegment[*]@ArrivalTerminal | No | Arrival terminal | - |
Itinerary/SeatOptions[*] | No | Seat selection options | Only supported by select flight suppliers. |
Itinerary/SeatOptions[*]@FlightNumber | Yes | Flight number (designator) of flight relevant to this SeatOption | - |
Itinerary/SeatOptions[*]@AircraftType | No | Indicates aircraft type | - |
Itinerary/SeatOptions[*]@NumberOfBlocks | Yes | Indicates the number of divisions within a row of seats. For example, an aircraft with a single aisle seat configuration will have two ‘blocks’. | - |
Itinerary/SeatOptions[*]@Currency | Yes | ISO 4217 alphabetic currency of Price | - |
Itinerary/SeatOptions[*]@Supplier | No | Supplier code of this SeatOption | - |
Itinerary/SeatOptions[*]@DeparturePoint | No | Departure airport IATA code of flight relevant to this SeatOption | - |
Itinerary/SeatOptions[*]/SeatBand[*] | Yes | Contains pricing information and description. Seat selection can be broken down into different categories of seats with different prices associated with each. The SeatBand element describes one of these categories. | - |
Itinerary/SeatOptions[*]/SeatBand[*]@Id | Yes | ID used to correlate between SeatBand and Seat | - |
Itinerary/SeatOptions[*]/SeatBand[*]@Description | Yes | Text description of seat band | - |
Itinerary/SeatOptions[*]/SeatBand[*]@Price | Yes | Price of a seat in this band | - |
Itinerary/SeatOptions[*]/Seat[*] | Yes | - | - |
Itinerary/SeatOptions[*]/Seat[*]@Num | Yes | Seat identifier, includes row number. E.g 1A | - |
Itinerary/SeatOptions[*]/Seat[*]@Availabile | Yes | Boolean, indicates if seat is available for selection | Attribute has typo |
Itinerary/SeatOptions[*]/Seat[*]@BandId | Yes | ID used to correlate between SeatBand and Seat | - |
Itinerary/SeatOptions[*]/Seat[*]@Block | Yes | Block number | See NumberOfBlocks |
Itinerary/SeatOptions[*]/Seat[*]@Row | Yes | Row number | - |
Itinerary/SeatOptions[*]/Seat[*]@AllowInfant | Yes | boolean, if false then adult with infant cannot sit here | - |
Itinerary/SeatOptions[*]/Seat[*]@AllowChild | Yes | boolean, if false then child cannot sit here | - |
Itinerary/SeatOptions[*]/Seat[*]@ExitRow | Yes | boolean, if true then seat is on an exit row | - |
Itinerary/SeatOptions[*]/Seat[*]@Position | Yes | Aisle Middle Window | - |
Itinerary/SeatOptions[*]/Seat[*]@Access | Yes | Regular Special Restricted | Restricted - additional restrictions apply to what passengers can sit here beyond those restrictions already indicated by AllowInfant/AllowChild. These additional restrictions will be described by the Text of Errata@Code="Seat Selection - Restricted". |
Itinerary/SeatOptions[*]/Seat[*]@UpperDeck | No, default false | boolean. If true then seat is on the upper deck of the aircraft | - |
Itinerary/OptionalExtras | Yes | Contains selected optional extras, if any | Used for itinerary extras, per pax selected extras are shown under PassengerDetails |
Itinerary/OptionalExtras/OptionalExtra[*] | No | An optional extra | - |
Itinerary/OptionalExtras/OptionalExtra[*]@Code | Yes | Code of extra | - |
Itinerary/OptionalExtras/OptionalExtra[*]@Supplier | Yes | Supplier (code) of extra | - |
Itinerary/OptionalExtras/OptionalExtra[*]@Quantity | Yes | The number of units of the extra that have been selected | - |
Itinerary/OptionalExtras/OptionalExtra[*]@Direction | No | outbound or homebound. If set then the extra only applies to that specific direction | - |
Itinerary/ItineraryOptions | No | Describes a set of options (e.g bags) available for the associated Itinerary | - |
Itinerary/ItineraryOptions/OptionalExtra[*] | No | An optional extra | - |
Itinerary/ItineraryOptions/OptionalExtra[*]@Direction | No | outbound or homebound. If set then the extra only applies to that specific direction | - |
Itinerary/ItineraryOptions/OptionalExtra[*]@Description | Yes | Text description of the extra | - |
Itinerary/ItineraryOptions/OptionalExtra[*]@Code | Yes | String identifying the extra, used for selection | The value is generally based on data from the supplier (e.g an airline SSR code) so it may change over time. You are therefore advised to make any mapping of Code in your integration configurable. |
Itinerary/ItineraryOptions/OptionalExtra[*]@ID | Yes | String identifying the extra | Rarely used. |
Itinerary/ItineraryOptions/OptionalExtra[*]@Supplier | Yes | Supplier (code) of the extra | - |
Itinerary/ItineraryOptions/OptionalExtra[*]@FPC | Yes | FAB Price Code categorises the extra | see fpcs |
Itinerary/ItineraryOptions/OptionalExtra[*]@Type | Yes | See FABOptionalExtraType | - |
Itinerary/ItineraryOptions/OptionalExtra[*]@QuantityAvailable | Yes | The number of units of this extra that are available | Does not account for units that are already selected |
Itinerary/ItineraryOptions/OptionalExtra[*]@UnitCost | Yes | Unit cost | - |
Itinerary/ItineraryOptions/OptionalExtra[*]@CurrencyCode | Yes | ISO 4217 alphabetic currency of UnitCost | - |
Itinerary/ItineraryOptions/OptionalExtra[*]@ApplyTo | Yes | Indicates how the extra applies to the passengers, see FABApplyToType | - |
Itinerary/ItineraryOptions/OptionalExtraGroupRule[*] | No | Rules indicate how OptionalExtras can be combined | - |
Itinerary/ItineraryOptions/OptionalExtraGroupRule[*]@RuleCode | Yes | Code indicating rule | See later FABGroupRuleCode section |
Itinerary/ItineraryOptions/OptionalExtraGroupRule[*]@Supplier | Yes | Supplier code rule applies to | - |
Itinerary/ItineraryOptions/OptionalExtraGroupRule[*]@QuantityPerBooking | Yes if RuleCode="PerBookingLimit" | See later FABGroupRuleCode section for PerBookingLimit | - |
Itinerary/ItineraryOptions/OptionalExtraGroupRule[*]/ID[*] | Yes | List of IDs in the group | Used to ID relevant OptionalExtras |
Itinerary/ItineraryOptions/OptionalExtraGroupRule[*]/ID[*]@Direction | No | outbound or homebound. If set then ID applies to an extra of a specific direction | - |
Remarks | No | See Remarks in BasketRQ for structure | - |
Warnings | No | List of Warning that are relevant to the CurrentBasket | Note that warnings may also be set a level up so check both locations, see FABRequestResponse |
Warnings/Warning[*] | No | Warning text | - |
Errors | No | List of Error that are relevant to the CurrentBasket | Note that errors may also be set a level up so check both locations, see FABRequestResponse |
Errors/Error[*]@ErrorText | Yes if Error element is being set | a generic human readable description of the error | Likely not appropriate to expose to consumers |
Errors/Error[*]@ErrorCode | Yes if Error element is being set | string error code | see Error Codes |
BookingInfo
Responses to a BookBasketRequest have an additional element of BookingInfo within CurrentBasket
| Attribute or element | Mandatory? | Definition | Note |
|---|---|---|---|
BookingInfo | Yes for response to BookBasketRequest | Contains details about the booking attempt | - |
BookingInfo@Success | Yes | true false pending indicates booking success of itinerary | See later section |
BookingInfo@PaymentMode | Yes | Indicates requested PaymentMode | See FAB_BasketRQ |
BookingInfo@PaidOnlyDeposit | Yes | boolean | Deprecated |
BookingInfo@PaymentTakenAtBooking | Yes | indicates the amount that has been/should be taken from the end user. | - |
BookingInfo@PaymentTakenByFABAtBooking | No | total amount debited by payment systems directly invoked by FAB with a provided payment card | - |
BookingInfo@Currency | Yes | ISO 4217 alphabetic currency of PaymentTakenAtBooking and PaymentTakenByFABAtBooking | - |
BookingInfo@ThirdPartyHandoffBookingId | No | Reference to the information registered on a third-party system by a handoff handler | - |
BookingInfo/BookingComponent[*] | Yes | A booking component | - |
BookingInfo/BookingComponent[*]@Supplier | Yes | Supplier code of booking component | - |
BookingInfo/BookingComponent[*]@Success | Yes | true false pending indicates booking success of component | See later section |
BookingInfo/BookingComponent[*]@BookingReference | No | If successful, this will contain the suppliers booking reference for this component. Unset if failed. Set to “PENDING” if pending | - |
BookingInfo/BookingComponent[*]@Deposit | Yes | Amount of deposit (taken at booking). | - |
BookingInfo/BookingComponent[*]@TotalCost | Yes | Total cost of component | - |
BookingInfo/BookingComponent[*]@ExpectedTotalCost | No | May be used to indicate a price change that was within tolerance | Not widely supported |
BookingInfo/BookingComponent[*]@BookingChannel | No | - | Advised to ignore |
BookingInfo/BookingComponent[*]@BookingUsername | No | A username relevant to the booking | Not widely supported. |
BookingInfo/BookingComponent[*]@BookingPassword | No | A password relevant to the booking | Not widely supported. |
BookingInfo/BookingComponent[*]@Currency | Yes | ISO 4217 alphabetic currency of TotalCost and Deposit | - |
BookingInfo/BookingComponent[*]/PaymentAuth | No | Contains information about payment made with a passed in card | - |
BookingInfo/BookingComponent[*]/PaymentAuth@Amount | Yes | Amount authorised from card | - |
BookingInfo/BookingComponent[*]/PaymentAuth@Currency | Yes | ISO 4217 alphabetic currency of Amount | - |
BookingInfo/BookingComponent[*]/PaymentAuth@Last4DigitsOfCardNumberUsed | No | Last 4 digits of card used for payment | - |
BookingInfo/BookingComponent[*]/PaymentAuth@CardNameUsed | Yes | Card holder name used | - |
BookingInfo/BookingComponent[*]/PaymentAuth@SupplierCode | Yes | Supplier (code) who took the payment | - |
BookingInfo/BookingComponent[*]/LodgedCardPaymentAuth | No | Same structure as PaymentAuth but contains information about payment made with Pax2Pay virtual card | - |
BookingInfo/BookingComponent[*]/Reference[*] | No | Contains additional references relevant to the booking. | Only supported by select suppliers |
BookingInfo/BookingComponent[*]/Reference[*]@Type | Yes | String identifier for reference | E.g PNR |
BookingInfo/BookingComponent[*]/Reference[*]@Value | Yes | Value of reference | - |
BookingInfo/BookingComponent[*]/Reference[*]@Source | No | String indicating source of reference | Optionally used to further clarify source of the reference. E.g could be the IATA code for the airline that issued the reference. |
BookingInfo/BookingComponent[*]/@CurrentTicketingStatus | No | held or confirmed. Indicates ticket status if TargetTicketingStatus was used in the request. | See example |
BookingInfo/BookingComponent[*]/ETicket[*] | No | Contains ticket documents | An ETicket can represent a ticket, EMD, etc |
BookingInfo/BookingComponent[*]/ETicket[*]@ETicketNumber | No | The full ticket number | - |
BookingInfo/BookingComponent[*]/ETicket[*]@PassengerName | Yes | - | - |
BookingInfo/BookingComponent[*]/ETicket[*]@DateOfIssue | Yes | yyyyMMdd | - |
BookingInfo/BookingComponent[*]/ETicket[*]@FormOfPayment | No | - | - |
BookingInfo/BookingComponent[*]/ETicket[*]@IssuingAgency | No | - | - |
BookingInfo/BookingComponent[*]/ETicket[*]@PlaceOfIssue1 | No | - | - |
BookingInfo/BookingComponent[*]/ETicket[*]@PlaceOfIssue2 | No | - | - |
BookingInfo/BookingComponent[*]/ETicket[*]@IssuingAgent | No | - | - |
BookingInfo/BookingComponent[*]/ETicket[*]@Endorsements | No | - | - |
BookingInfo/BookingComponent[*]/ETicket[*]@LegalNotices | No | - | - |
BookingInfo/BookingComponent[*]/ETicket[*]@Type | No | - | - |
BookingInfo/BookingComponent[*]/ETicket[*]@NumberOfBooklets | No | - | - |
BookingInfo/BookingComponent[*]/ETicket[*]/Flight[*] | No | - | - |
BookingInfo/BookingComponent[*]/ETicket[*]/Flight[*]@Airline | Yes | - | - |
BookingInfo/BookingComponent[*]/ETicket[*]/Flight[*]@FlightNumber | Yes | - | - |
BookingInfo/BookingComponent[*]/ETicket[*]/Flight[*]@DepartureDate | Yes | yyyyMMdd | - |
BookingInfo/BookingComponent[*]/ETicket[*]/Flight[*]@DepartureTime | Yes | HHmm | - |
BookingInfo/BookingComponent[*]/ETicket[*]/Flight[*]@Origin | Yes | - | - |
BookingInfo/BookingComponent[*]/ETicket[*]/Flight[*]@OriginName | No | - | - |
BookingInfo/BookingComponent[*]/ETicket[*]/Flight[*]@OriginTerminal | No | - | - |
BookingInfo/BookingComponent[*]/ETicket[*]/Flight[*]@Destination | No | - | - |
BookingInfo/BookingComponent[*]/ETicket[*]/Flight[*]@DestinationName | No | - | - |
BookingInfo/BookingComponent[*]/ETicket[*]/Flight[*]@DestinationTerminal | No | - | - |
BookingInfo/BookingComponent[*]/ETicket[*]/Flight[*]@FlightClass | No | - | - |
BookingInfo/BookingComponent[*]/ETicket[*]/Flight[*]@BaggageAllowance | No | - | - |
BookingInfo/BookingComponent[*]/ETicket[*]/Flight[*]@FareBasis | No | - | - |
BookingInfo/BookingComponent[*]/ETicket[*]/Flight[*]@ReservationStatus | No | - | - |
BookingInfo/BookingComponent[*]/ETicket[*]/Flight[*]@NotValidBeforeAfter | No | - | - |
BookingInfo/BookingComponent[*]/ETicket[*]/Flight[*]@NumericAirlineCode | No | - | - |
BookingInfo/BookingComponent[*]/ETicket[*]/Flight[*]@OperatedBy | No | - | - |
BookingInfo/BookingComponent[*]/ETicket[*]/Flight[*]@Ref | No | - | - |
BookingInfo/BookingComponent[*]/ETicket[*]/Cost | No | - | - |
BookingInfo/BookingComponent[*]/ETicket[*]/Cost@FareCalculation | No | - | - |
BookingInfo/BookingComponent[*]/ETicket[*]/Cost@BaseFare | Yes | - | - |
BookingInfo/BookingComponent[*]/ETicket[*]/Cost@Total | Yes | - | - |
BookingInfo/BookingComponent[*]/ETicket[*]/Cost@Currency | Yes | ISO 4217 alphabetic currency | - |
BookingInfo/BookingComponent[*]/ETicket[*]/Cost/TaxComponent[*] | No | - | - |
BookingInfo/BookingComponent[*]/ETicket[*]/Cost/TaxComponent[*]@Amount | Yes | - | - |
BookingInfo/BookingComponent[*]/ETicket[*]/Cost/TaxComponent[*]@Code | No | - | - |
BookingInfo/BookingComponent[*]/ETicket[*]/Cost/TaxComponent[*]@Currency | Yes | ISO 4217 alphabetic currency | - |
BookingInfo/BookingComponent[*]/ETicket[*]/Coupons/Coupon[*] | No | A coupon within the ticket | - |
BookingInfo/BookingComponent[*]/ETicket[*]/Coupons/Coupon[*]@Number | Yes | - | - |
BookingInfo/BookingComponent[*]/ETicket[*]/Coupons/Coupon[*]/InConnectionWith | No | Allows a coupon to link to another ETicket | E.g link a seat EMD to the main fare ticket. |
BookingInfo/BookingComponent[*]/ETicket[*]/Coupons/Coupon[*]/InConnectionWith@ETicketNumber | Yes | - | Link to ETicket@ETicketNumber |
BookingInfo/BookingComponent[*]/ETicket[*]/Coupons/Coupon[*]/InConnectionWith@FlightRef | Yes | - | Link to Flight@Ref |
BookingInfo/BookingComponent[*]/ETicket[*]/Coupons/Coupon[*]/ReasonForIssuance | No | - | - |
BookingInfo/BookingComponent[*]/ETicket[*]/Coupons/Coupon[*]/ReasonForIssuance@Code | Yes | - | - |
BookingInfo/BookingComponent[*]/ETicket[*]/Coupons/Coupon[*]/ReasonForIssuance@SubCode | Yes | - | - |
FAB Group Rule Codes - FABGroupRuleCode
| FABGroupRuleCode | Description | Note |
|---|---|---|
| OneOf | Must choose one of the group | - |
| MandatoryOneOfPerPax | Must choose one of the group, per Passenger | Like OneOf but per passenger. |
| OneOrNone | Can choose Only One of the group, or None | - |
| OneOfPerPax | Can choose Only One of the group, or None, per Passenger | Note that type name is misleading due to historic reasons. You should think of it as if it were named OneOrNoneOfPerPax. |
| AllOrNone | Must choose all of the group, or None | - |
| PerBookingLimit | Total (summed) selected quantity of these extras must not exceed QuantityPerBooking |
FAB Optional Extra Types - FABOptionalExtraType
| FABOptionalExtraType | Note |
|---|---|
| Meal | - |
| Transfer | - |
| Flight | - |
| Room | - |
| Sports | - |
| Insurance | - |
| CarHire | - |
| Baggage | - |
| Excursion | - |
| Donation | - |
| Theatre | - |
| Other | - |
| BaggageTracking | - |
| SeatOptions | - |
| CheckIn | - |
| Priority | - |
| Lounge | - |
| BaggageInsurance | - |
| DutyFree | - |
| FastTrack | - |
| Unrecognised | Can be raised with Customer Services team to fix |
FAB Apply To Types - FABApplyToType
| FABApplyToType | Description |
|---|---|
| NoPax | Not related to passengers. |
| AllPax | Applies to all passengers. |
| SelectedPax | Individual passengers must select this extra. |
FAB Costing Stages - FABCostingStage
| FABCostingStage | Description |
|---|---|
| estimate | Estimated party price based on pricing information stored within the FAB system |
| quick | Live quick cost produced by accessing a suppliers reservation system |
| confirmed | Live confirmed cost produced by accessing a suppliers reservation system. One step away from booking, this represents the actual cost that will be incurred by booking this itinerary with the given party |
| booked | Indicates that this Itinerary has been booked |
Booking success status
Further info on determining booking success status
true- component (BookingComponent[*]@Success) or itinerary (BookingInfo@Success) bookedfalse- component (BookingComponent[*]@Success) or itinerary (BookingInfo@Success) failed to bookpending- In the case of a component (
BookingComponent[*]@Success) this indicates that FAB is unsure whether the component has booked or not. You would generally need to contact the supplier to investigate. You can also raise the issue with Paxport support team. - In the case of the itinerary (
BookingInfo@Success) this indicates at least one component was notSuccess="true".
- In the case of a component (
Note
Note that FAB has no automated mechanism to changeSuccess="pending" to Success="true" or Success="false". Manual investigation/intervention will be required. Consequently Paxport aims for Success="pending" to be a rare event.Note
If FAB fails to respond (or responds without BookingInfo) to your BookBasketRequest you should follow these steps:
- Retry the exact same FAB_BasketRQ (BookBasketRequest) request
- If
BookingInfois returned then check it as per “Booking success status” above. - If no response (or BookingInfo) then assume that
BookingInfo@Success="pending"and act as per “Booking success status” above
Last modified May 1, 2024