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