PaxFab API Integration Guide
PaxFab API Workflow
PaxFab uses a multi-step workflow for flight booking. Here's how our translation layer maps to PaxFab's API:
1
FAB_PkgAvailRQ
Search for flight packages
2
FAB_BasketRQ
Create basket with selected itinerary
3
FAB_BasketRQ
Book the basket
Flight Search API
Our Flight Search endpoint translates to PaxFab's FAB_PkgAvailRQ request:
Fl-ght API: Flight Search
{ "origin": "LHR", "destination": "JFK", "departureDate": "2025-06-15", "returnDate": "2025-06-22", "passengers": { "adults": 2, "children": 1, "infants": 0 }, "cabinClass": "economy" }
PaxFab API: FAB_PkgAvailRQ
<FAB_PkgAvailRQ Target="test" Version="2002A" xmlns="http://www.xmltravel.com/fab/2002/09"> <SyndicatorInfo SyndicatorId="syndid_demo" SyndicatorPassword="syndpass_demo"/> <SessionInfo CreateNewSession="true"/> <HolidaySearchRequest ResponseTimeoutSecs="20"> <ResultSetPreferences SortCode="cost" SortAscending="true" MaxItems="30"/> <InitialViewInfo Offset="0" Length="30"/> <SearchCriteria> <DepartureAirport>LHR</DepartureAirport> <DestinationAirport>JFK</DestinationAirport> <DepartureDate>20250615</DepartureDate> <Duration>7</Duration> <Flexibility DepartureDateFlexibilityDays="0"/> <RoomRequirements> <Room Adults="2" Children="1" Infants="0"/> </RoomRequirements> </SearchCriteria> </HolidaySearchRequest> </FAB_PkgAvailRQ>
PaxFab Response: FAB_PkgAvailRS
<FAB_PkgAvailRS Target="test" Version="2002A" xmlns="http://www.xmltravel.com/fab/2002/09"> <SessionInfo FABSessionId="session-abc123"/> <HolidaySearchResponse> <PackageHolidays> <PackageHoliday ItineraryId="itinerary_xyz123" Duration="7"> <PricingInfo TotalPrice="299.99" BasicCost="250.00" TaxCost="39.99" InsuranceCost="10.00"/> <OutboundFlight DepartureAirport="LHR" ArrivalAirport="JFK" DepartureTime="202506150830" ArrivalTime="202506151145" FlightNumber="PF123" Carrier="BA"/> <ReturnFlight DepartureAirport="JFK" ArrivalAirport="LHR" DepartureTime="202506220930" ArrivalTime="202506221245" FlightNumber="PF124" Carrier="BA"/> </PackageHoliday> </PackageHolidays> </HolidaySearchResponse> </FAB_PkgAvailRS>
Fl-ght API Response
{ "searchId": "session-abc123", "results": [ { "offerId": "itinerary_xyz123", "price": { "amount": "299.99", "currency": "GBP" }, "segments": [ { "departure": { "airport": "LHR", "time": "2025-06-15T08:30:00" }, "arrival": { "airport": "JFK", "time": "2025-06-15T11:45:00" }, "flightNumber": "PF123", "airline": { "code": "BA", "name": "British Airways" } } ], "provider": "paxfab" } ], "currency": "GBP" }
Flight Offer API
Our Flight Offer endpoint translates to PaxFab's FAB_BasketRQ (CreateBasket) request:
Fl-ght API: Flight Offer
{ "searchId": "session-abc123", "offerId": "itinerary_xyz123" }
PaxFab API: FAB_BasketRQ (CreateBasket)
<FAB_BasketRQ Target="test" Version="2002A" xmlns="http://www.xmltravel.com/fab/2002/09"> <SyndicatorInfo SyndicatorId="syndid_demo" SyndicatorPassword="syndpass_demo"/> <SessionInfo FABSessionId="session-abc123" CreateNewSession="false"/> <CreateBasketRequest ResponseTimeoutSecs="60" ReplaceExistingBasket="true"> <Itinerary> <ComponentIdentity Identity="itinerary_xyz123"/> </Itinerary> </CreateBasketRequest> </FAB_BasketRQ>
PaxFab Response: FAB_BasketRS
<FAB_BasketRS Target="test" Version="2002A" xmlns="http://www.xmltravel.com/fab/2002/09"> <SessionInfo FABSessionId="session-abc123"/> <CurrentBasket BasketId="basket-def456"> <Itinerary> <ItineraryCost TotalCost="299.99" BasicCost="250.00" TaxCost="39.99" InsuranceCost="10.00"/> <FlightDetails> <OutboundFlight DepartureAirport="LHR" ArrivalAirport="JFK" DepartureTime="202506150830" ArrivalTime="202506151145" FlightNumber="PF123" Carrier="BA" CarrierName="British Airways"/> <ReturnFlight DepartureAirport="JFK" ArrivalAirport="LHR" DepartureTime="202506220930" ArrivalTime="202506221245" FlightNumber="PF124" Carrier="BA" CarrierName="British Airways"/> </FlightDetails> </Itinerary> </CurrentBasket> </FAB_BasketRS>
Fl-ght API Response
{ "offerId": "itinerary_xyz123", "basketId": "basket-def456", "price": { "total": "299.99", "currency": "GBP", "breakdown": { "base": "250.00", "taxes": "39.99", "fees": "10.00" } }, "flights": [ { "segments": [ { "departure": { "airport": "LHR", "time": "2025-06-15T08:30:00" }, "arrival": { "airport": "JFK", "time": "2025-06-15T11:45:00" }, "flightNumber": "PF123", "airline": { "code": "BA", "name": "British Airways" } } ] } ] }
Flight Booking API
Our Flight Booking endpoint translates to PaxFab's two-step process: First an AmendBasket request, then a BookBasket request:
Fl-ght API: Flight Booking
{ "offerId": "itinerary_xyz123", "basketId": "basket-def456", "passengers": [ { "type": "adult", "title": "Mr", "firstName": "John", "lastName": "Smith", "gender": "Male", "dateOfBirth": "1990-01-01", "email": "john@example.com", "phone": "12345678901" } ], "payment": { "type": "account" } }
Step 1: FAB_BasketRQ (AmendBasket)
<FAB_BasketRQ Target="test" Version="2002A" xmlns="http://www.xmltravel.com/fab/2002/09"> <SyndicatorInfo SyndicatorId="syndid_demo" SyndicatorPassword="syndpass_demo"/> <SessionInfo FABSessionId="session-abc123" CreateNewSession="false"/> <AmendBasketRequest ResponseTimeoutSecs="60" BasketId="basket-def456" TargetBookingStage="confirmed_costing"> <PassengerDetails> <Passenger PassengerNumber="1" PassengerType="Adult" Title="Mr" FirstName="John" LastName="Smith" Gender="Male" DateOfBirth="19900101"> <PassengerContact AddressLine1="123 Street" City="London" PostCode="SW1A 1AA" CountryCode="GB" Email="john@example.com" Telephone="12345678901"/> </Passenger> </PassengerDetails> </AmendBasketRequest> </FAB_BasketRQ>
Step 2: FAB_BasketRQ (BookBasket)
<FAB_BasketRQ Target="test" Version="2002A" xmlns="http://www.xmltravel.com/fab/2002/09"> <SyndicatorInfo SyndicatorId="syndid_demo" SyndicatorPassword="syndpass_demo"/> <SessionInfo FABSessionId="session-abc123" CreateNewSession="false"/> <BookBasketRequest BasketId="basket-def456" ResponseTimeoutSecs="120" TotalCost="299.99"> <Payment PaymentMode="syndicator_account"/> </BookBasketRequest> </FAB_BasketRQ>
Fl-ght API Response
{ "bookingId": "PF-123456", "status": "CONFIRMED", "pnr": "ABC123", "price": { "total": "299.99", "currency": "GBP" }, "passengers": [ { "type": "adult", "firstName": "John", "lastName": "Smith" } ], "flights": [ { "segments": [ { "departure": { "airport": "LHR", "time": "2025-06-15T08:30:00" }, "arrival": { "airport": "JFK", "time": "2025-06-15T11:45:00" }, "flightNumber": "PF123", "airline": { "code": "BA", "name": "British Airways" } } ] } ] }
Additional Information
- PaxFab's API requires maintaining session state across requests
- The FABSessionId returned from the search must be used in subsequent requests
- The BasketId returned from the CreateBasket request must be used in AmendBasket and BookBasket requests
- Our translation layer automatically handles this state management for you