API Type Glossary
The following types are references throughout the documentations and are defined here for convenience.
Type definitions are written in a Pseudo-TypeScript style. This is done to provide a more accurate representation of the types and to provide a more consistent experience when reading the documentation.
Public ID
A public ID is a UUID v5 unique identifier for a particular object. It is used to identify the object in the API and is used to retrieve the object from the API.
Type Definition
type PublicID = string;
Airport IATA Code
A 3-letter IATA code for an airport. Visit Airline and Location Code Search (opens in a new tab) for more information.
Type Definition
type AirportIATA = string;
Airline IATA Code
A 2-Alphanumeric IATA code for an airline. Visit Airline and Location Code Search (opens in a new tab) for more information.
Type Definition
type AirlineIATA = string;
Cabin Code
A 1-2 letter code identifying a cabin class. The following are the possible values:
Y
: EconomyPY
: Premium EconomyJ
: Business or First Class
Type Definition
type CabinCode = "Y" | "PY" | "J";
Passenger Code
Represents the age range of a passenger.
ADT
: AdultCHD
: ChildINF
: Infant (Currently Not Supported)
Type Definition
type PassengerCode = "ADT" | "CHD" | "INF";
Passenger Gender
Represents a passenger's gender.
F
: FemaleM
: MaleX
: Other genders
Type Definition
type PassengerGender = "F" | "M" | "X";
Session
A session that contexluizes a search or an order.
Sub Properties
flow
: (FLIGHT
|FLIGHT_BOOKING
|HOTEL
|HOTEL_BOOKING
) The type of the session.FLIGHT_BOOKING
indicates the session is used to retrieve information about an existing flight booking.HOTEL
indicates a hotel search session.HOTEL_BOOKING
indicates the session is used to retrieve information about an existing hotel booking.public
: (Public ID) The public ID of the session.expireAt
: (string
) The date and time when the session will expire.createdAt
: (string
) The date and time when the session was created.
Type Definition
interface Session {
flow: "FLIGHT" | "FLIGHT_BOOKING" | "HOTEL" | "HOTEL_BOOKING";
public: PublicID;
expireAt: string;
createdAt: string;
}
Example
{
"flow": "FLIGHT_BOOKING",
"id": "60d67317-2529-4e10-ae3e-9ba5c0746a3b",
"expireAt": "2023-03-17T23:05:24.944Z",
"createdAt": "2023-03-17T21:05:24.945Z"
}
Brand Name
An alphanumeric string containing the name of a brand. The names of brands will vary depending on the airline, the route and other factors.
🛎 It is advised not to assume the existence of any brand or associating the name of a brand with particular characteristics.
Type Definition
type BrandName = string;
Departure Arrival Information
Represents a departure or arrival information from or to an airport.
Sub Properties
airport_name
: (string
) The name of the airport.airport_code
: (Airport IATA Code) The IATA code of the airport.airport_city_name
: (string
) The name of the city where the airport is located.date_time
: (string
) The date and time of the flight departing from this airport.terminal
: (string?
) The terminal of the airport.
Type Definition
interface DepartureArrivalInformation {
airport_code: AirportIATA;
airport_name: string;
airport_city_name: string;
date_time: string;
terminal?: string;
}
Example
{
"airport_code": "YEG",
"airport_name": "Edmonton International Airport",
"airport_city_name": "Edmonton",
"date_time": "2023-05-16 07:00:00",
"terminal": null
}
Flight Airport Information
Represents an airport visit within an itinerary. Will contain a layover time, if the airport is a layover airport.
Sub Properties
airport_name
: (string
) The name of the airport.airport_code
: (Airport IATA Code) The IATA code of the airport.airport_city_name
: (string
) The name of the city where the airport is located.date_time
: (string
) The date and time of the flight departing from this airport.flight_number
: (string?
) The flight number of the flight departing from this airport.layover_time
: (string?
) If this is a layover airport, the length of the layover inH.i
format.
Type Definition
interface FlightAirportInformation {
airport_name: string;
airport_code: AirportIATA;
airport_city_name: string;
date_time: string;
flight_number: string;
layover_time?: `${number}.${number}`;
}
Example
{
"airport_code": "YVR",
"airport_name": "Vancouver International Airport",
"airport_city_name": "Vancouver",
"date_time": "2023-04-15 23:15:00",
"flight_number": "",
"layover_time": ""
}
Flight Airline Information
Represents an airline associated with a particular segment. Might be a marketing airline or an operating airline.
Sub Properties
airline_name
: (string
) The name of the airline.airline_code
: (Airline IATA Code) The IATA code of the airline.flight_number
: (string
) The flight number associated with the segment.alliance
: (string
) The name of the alliance the airline is a member of.
Type Definition
interface FlightAirlineInformation {
airline_name: string;
airline_code: AirlineIATA;
flight_number: string;
alliance?: "Star Alliance" | "SkyTeam" | "OneWorld" | string;
}
Example
{
"airline_code": "DL",
"airline_name": "Delta Air Lines",
"flight_number": "4083",
"alliance": "SkyTeam"
}
Segment Equipment Information
Represents an aircraft associated with a particular segment.
Sub Properties
code
: (string
) The IATA code of the aircraft.name
: (string?
) The name of the aircraft.graphic
: (string?
) The URL to an image of the aircraft.
Type Definition
interface SegmentEquipmentInformation {
code: string;
name?: string;
graphic?: string;
}
Example
{
"code": "73H",
"name": "Boeing 737-800",
"graphic": "https://bnwassets.s3.amazonaws.com/images/aircrafts/WS/73H.png"
}
Flight Brand Information
Represents a particular brand associated with a flight. This object indicates most characteristics of the ticket being sold.
Sub Properties
price_information
: (Brand Price Information) The pricing information for the brand.fare_information
: (Brand Fare Information) Information about what the brand offers.excluded
: (boolean
) Whether or not the brand is excluded from the search, based on the search preferences.brand
: (string
) The name of the brand.cabin
: (string
) The code for the cabin where the brand is located.public
: (Public ID) The public ID of the brand.
Type Definition
interface FlightBrandInformation {
price_information: BrandPriceInformation;
fare_information: BrandFareInformation;
excluded?: boolean;
brand: string;
cabin: string;
public: PublicID;
}
Brand Fare Information
Provides information about the fare associated with a brand.
Sub Properties
offerings
: (Array<string>
) A list of notable features of the fare.cabin_codes
: (Array<Record>
?) A list of cabin codes associated with each segment of the flights.🛎 This is present because a brand might be marketed as a certain cabin, but the actual cabin might be different in certain segments of the entire itinerary.
cabin_codes[].departure
: (Airport IATA Code) The IATA code of the airport which the segment departs from.cabin_codes[].arrival
: (Airport IATA Code) The IATA code of the airport which the segment arrives at.cabin_codes[].cabinClass
: (Cabin Code) The cabin code for the segment with the given departure and arrival airports.
rewards
: (Brand Rewards Information?) The estimated rewards earned for purchasing the brand.discount
: (Brand Discount Information?) The discount information for the brand. This is only present if the brand is discounted, but for a more explicit way to check if a brand is discounted, use thediscount.indicator
property.
Type Definition
interface BrandFareInformation {
offerings: string[];
cabin_codes?: {
departure: AirportIATA;
arrival: AirportIATA;
cabinClass: CabinCode;
}[];
rewards?: BrandRewardsInformation;
discount?: BrandDiscountInformation;
}
Brand Price Information
Represents the pricing information for a particular brand.
Sub Properties
total_amount
: (string
) The total amount of the brand in the currency indicated.base_amount
: (string
) The base amount of the brand in the currency indicated.starting_fare_amount
: (string
) The lowest return pricing for the brand in the currency indicated. This takes into account the only the brands and fares that can be combined with the brand in question.currency
: (string
) The ISO 4217 (opens in a new tab) currency code of the prices.tax
: (Price Tax Information) An object containing the tax information for the brand.surcharge
: (Price Surcharge Information) An object containing the surcharges information for the brand.
Type Definition
interface BrandPriceInformation {
total_amount: string;
base_amount: string;
starting_fare_amount: string;
currency: string;
tax: PriceTaxInformation;
surcharge: PriceSurchargeInformation;
}
Price Tax Information
Contains the total and the breakdown of the taxes for a particular price.
Sub Properties
total_tax
: (string
) The total amount of tax in the context of its parent.tax
: (Array<
Charge Information>
)
Type Definition
interface PriceTaxInformation {
total_tax: string;
tax: Array<ChargeInformation>;
}
Price Surcharge Information
Contains the total and the breakdown of the surcharges for a particular price.
Sub Properties
total_surcharge
: (string
) The total amount of surcharges in the context of its parent.surcharge
: (Array<
Charge Information>
)
Type Definition
interface PriceSurchargeInformation {
total_surcharge: string;
surcharge: Array<ChargeInformation>;
}
Charge Information
Represents an additional tax/surcharge that applies to a brand's price.
Sub Properties
amount
: (string
) The amount of the charge in the currency indicated in the parent.code
: (string
) The code provided for the charge.description
: (string?
) A description explaining what the charge is, according to its code.
Type Definition
interface ChargeInformation {
amount: string;
code: string;
description?: string;
}
Brand Rewards Information
Represents estimated rewards earned when purchasing a brand.
Sub Properties
program
: (Record
) An object containing the reward program information.program.title
: (string
) The name of the reward program.program.code
: (string
) The code identifying the program.program.image
: (string?
) The URL to the logo of the reward program.
amount
: (string
) The amount of rewards in the program's unit of measurement.
Type Definition
interface BrandRewardsInformation {
program: {
title: string;
code: string;
image?: string;
};
amount: string;
}
Brand Discount Information
If a discount or a corporate code is applied to a brand, this object will contain information about the discount.
Sub Properties
program
: (Record
) An object containing the reward program information.program.title
: (string
) The name of the discount program.program.identifier
: (string?
) A unique identifier for the discount program.program.image
: (string?
) The URL to the logo of the discount program.
indicator
: (true
) Property explicitly indicating the application of a discount.type
: (string
) The type of discount applied to the brand.- Possible values:
CONTRACT
: Indicates a custom set of negotiated discounts. Usually used for larger corporate accounts.ACCOUNT
: Indicates a more general purpose discount. Usually used for smaller corporate accounts.GENERAL
: Indicates a general-purpose discount. Usually used for public discounts.
- Possible values:
code
: (string?
) The code used to apply the discount.
Type Definition
interface BrandDiscountInformation {
program: {
title: string;
identifier?: string;
image?: string;
};
type: "CONTRACT" | "ACCOUNT" | "GENERAL";
code?: string;
indicator: true;
}
Example
{
"program": {
"title": "AC for Business",
"identifier": "ACB",
"image": "https://bnwassets.s3.amazonaws.com/images/airline-logos/logo_air_AC_32x32.gif"
},
"indicator": true,
"type": "ACCOUNT",
"code": "ACB123"
}
Itinerary Price Information
Represents pricing of an itinerary, including seats and ancillaries.
Sub Properties
itinerary_price.total_amount
: (string
) The total amount. This is the sum of thebase_amount
,tax
, andsurcharge
.itinerary_price.base_amount
: (string
) The base amount. It is the sum of the base prices for the flights and seats.itinerary_price.currency
: (string
) The ISO 4217 (opens in a new tab) currency code of the prices.itinerary_price.tax
: (Price Tax Information) An object containing the tax information.itinerary_price.surcharge
: (Price Surcharge Information) An object containing the surcharge information.
Type Definition
interface ItineraryPriceInformation {
total_amount: string;
base_amount: string;
currency: string;
tax: PriceTaxInformation;
surcharge: PriceSurchargeInformation;
}
Pricing Itinerary Price Information
Pricing Itinerary Price contains information about pricing of an itinerary in a pricing call. It is the same as Itinerary Price Information, but has information about the strategy and changes of the pricing.
Sub Properties
It looks just like Itinerary Price Information but it also contains:
pricing_strategy
: (Pricing Strategy) The pricing strategy used to calculate the price. The strategies are automatically chosen by the API in order to ensure compatibility with the airline's pricing rules and to minimize pricing.change_indicator
: (Price Change?) If the price has changed from the previous steps, this object will contain the information about the change.
Type Definition
type PricingItineraryPriceInformation = ItineraryPriceInformation & {
pricing_strategy: PricingStrategy;
change_indicator: PriceChange;
};
Segment Information
Contains information about one segment of a bound. A segment is an individual flight between two airports. Each bound will have one or more segments. A direct bound will only have one segment.
Sub Properties
departure_information
: (Departure Arrival Information) An object containing information about the departure and its airport.arrival_information
: (Departure Arrival Information) An object containing information about the arrival and its airport.marketing_airline_information
: (Flight Airline Information) An object containing information about the airline marketing the fares.marketing_airline_information
: (Flight Airline Information?) An object containing information about the airline operating the fares. Operating airline might not be present for fares that are operated by their marketing airline.additional_information
: (Record
) An object containing additional information about the segment.additional_information.equipment
: (Segment Equipment Information?) An object containing information about the equipment used on this segment.additional_information.flight_detail
: (Record?
) Object containing some additional information about the segment.additional_information.flight_detail.duration
: (string?
) The duration of the flight in minutes.additional_information.flight_detail.stop_quantity
: (number?
) the number of stops on this flight. This is not the same as the number of segments, as this is inside a segment. This is in case of a indirect flight.
emission
: (number?
) The total amount of CO2 emitted by this flight inKgCO2e
per passenger.distance
: (number?
) The distance of the flight in miles.
Type Definition
export interface SegmentInformation {
departure_information: DepartureArrivalInformation;
arrival_information: DepartureArrivalInformation;
marketing_airline_information: FlightAirlineInformation;
operating_airline_information?: FlightAirlineInformation;
additional_information: {
equipment?: SegmentEquipmentInformation;
flight_detail?: {
duration?: string;
stop_quantity?: number;
};
};
emission?: number;
distance?: number;
}
Example
{
"departure_information": {
"airport_code": "YVR",
"airport_name": "Vancouver International Airport",
"airport_city_name": "Vancouver",
"date_time": "2023-07-21 18:10",
"terminal": "M"
},
"arrival_information": {
"airport_code": "YYZ",
"airport_name": "Lester B. Pearson International Airport",
"airport_city_name": "Toronto",
"date_time": "2023-07-22 01:43",
"terminal": "1"
},
"marketing_airline_information": {
"airline_code": "AC",
"airline_name": "Air Canada",
"flight_number": "124",
"alliance": "Star Alliance"
},
"operating_airline_information": {
"airline_code": "AC",
"airline_name": "Air Canada",
"flight_number": null,
"alliance": "Star Alliance"
},
"additional_information": {
"equipment": {
"code": "321",
"name": "Airbus A321",
"graphic": "https://bnwassets.s3.amazonaws.com/images/aircrafts/AC/321.png"
},
"flight_detail": {
"duration": 273,
"original_duration_form": "PT04H33M",
"stop_quantity": "0"
}
},
"emission": 244.37,
"distance": 1977.49
}
Flight Fare
A flight fare is a representation of a bound. It may contain one or more segments. It will also contain different Brands, one of which will have to be selected.
Sub Properties
public
: (Public ID) The public ID of the flight fare. This will be used to select and retrieve the flight.expireAt
: (string
) The time in which the flight will expire. This will hold the same as theexpireAt
property of your Session.airports
: (Array<
Flight Airport Information>
) An array representing all of the airports visited.sort_field
: (Record
) An object containing general information about the flight.sort_field.departure_date_time
: (string
) The date and time of the flight's departure.sort_field.arrival_date_time
: (string
) The date and time of the flight's arrival.sort_field.airline
: (Array<string>
) An array containing unique names of the airlines that are flying on this flight.sort_field.stops
: (number
) The number of stops on this flight.sort_field.elapse_time
: (string
) The length of the flight inH.i
format.sort_field.alliance
: (Array<string>
) An array containing unique names of the alliances that the airlines on this flight are a part of.sort_field.emission
: (number?
) The total amount of CO2 emitted by this flight inKgCO2e
per passenger.
segments
: (Array<
Segment Information>
) An array of objects representing the flight segments.brand_information
: (Record<
Cabin Code,
Record<
Brand Name,
Brand Information>
>
) An object containing information about the brands available for each cabin.
Type Definition
interface FlightFare {
public: Public;
expireAt: string;
airports: FlightAirportInformation[];
sort_field: {
departure_date_time: string;
arrival_date_time: string;
airline: string[];
stops: number;
elapse_time: string;
alliance: FlightAirlineInformation["allliance"];
emission?: number;
};
segments: SegmentInformation[];
brand_information: Record<
CabinCode,
Record<BrandName, FlightBrandInformation>
>;
}
Example
{
"airports": [
{
"airport_code": "YUL",
"airport_name": "Montreal / Pierre Elliott Trudeau International Airport",
"airport_city_name": "Montreal",
"date_time": "2023-04-15 20:30:00",
"flight_number": "772",
"layover_time": ""
},
{
"airport_code": "YVR",
"airport_name": "Vancouver International Airport",
"airport_city_name": "Vancouver",
"date_time": "2023-04-15 23:15:00",
"flight_number": "",
"layover_time": ""
}
],
"sort_field": {
"departure_date_time": "2023-04-15 20:30:00",
"arrival_date_time": "2023-04-15 23:15:00",
"airline": ["Air Transat"],
"stops": 0,
"elapse_time": "5.45",
"cheapest_price": "0.00",
"alliances": [],
"emission": 255.55
},
"segments": [
{
"departure_information": {
"airport_code": "YUL",
"airport_name": "Montreal / Pierre Elliott Trudeau International Airport",
"airport_city_name": "Montreal",
"date_time": "2023-04-15 20:30:00",
"terminal": null
},
"arrival_information": {
"airport_code": "YVR",
"airport_name": "Vancouver International Airport",
"airport_city_name": "Vancouver",
"date_time": "2023-04-15 23:15:00",
"terminal": "M"
},
"marketing_airline_information": {
"airline_code": "TS",
"airline_name": "Air Transat",
"flight_number": "772",
"alliance": null
},
"operating_airline_information": {
"airline_code": "TS",
"airline_name": "Air Transat",
"flight_number": "772",
"alliance": null
},
"additional_information": {
"equipment": {
"code": "32Q",
"name": "Airbus A321neo",
"graphic": null
},
"e_ticket": "true",
"mileage": "2295",
"flight_detail": {
"duration": "345"
}
},
"emission": 255.55,
"distance": 2295
}
],
"brand_information": {
"Y": {
"economy budget": {
"price_information": {
"total_amount": "163.41",
"base_amount": "70.00",
"starting_fare_amount": "0.00",
"currency": "CAD",
"tax": {
"total_tax": "93.41",
"tax": [
{
"amount": "7.11",
"code": "XG",
"description": "Goods And Services Tax (gst)"
},
{
"amount": "35.00",
"code": "SQ",
"description": "Airport Improvement Fee (aif), (domestic/international)"
},
{
"amount": "14.18",
"code": "XQ",
"description": "Quebec Sales Tax"
},
{
"amount": "30.00",
"code": "YQ",
"description": "Airline Fuel And Insurance Surcharge"
},
{
"amount": "7.12",
"code": "CA",
"description": "Air Travellers Security Charge (domestic/international)"
}
]
},
"surcharge": {
"total_surcharge": "0.00",
"surcharge": []
}
},
"fare_information": {
"offerings": [
"Paid Alcoholic Drinks and Free Non-Alcoholic Drinks",
"On-demand Entertainment Available",
"Paid Light Meal",
"All Rows have Power/usb Available",
"255.55 KgCo2e total emissions"
],
"discount": null,
"cabin_codes": [
{
"departure": "YUL",
"arrival": "YVR",
"cabinClass": "Y"
}
],
"rewards": null
},
"media_information": [],
"baggage_information": {
"free_baggages": [
{
"messages": ["Free 0 for segments "],
"charge": "0.00",
"piece": "0"
}
],
"charged_baggages": [
{
"messages": [
"UP TO 50 POUNDS/23 KILOGRAMS",
"UP TO 62 LINEAR INCHES/158 LINEAR CENTIMETERS"
],
"charge": "40.00",
"piece": "1"
},
{
"messages": [
"UP TO 50 POUNDS/23 KILOGRAMS",
"UP TO 62 LINEAR INCHES/158 LINEAR CENTIMETERS"
],
"charge": "70.00",
"piece": "2"
},
{
"messages": [
"UP TO 50 POUNDS/23 KILOGRAMS",
"UP TO 62 LINEAR INCHES/158 LINEAR CENTIMETERS"
],
"charge": "225.00",
"piece": "3"
},
{
"messages": [
"UP TO 50 POUNDS/23 KILOGRAMS",
"UP TO 62 LINEAR INCHES/158 LINEAR CENTIMETERS"
],
"charge": "225.00",
"piece": "3"
}
]
},
"optional_information": {
"offer": {
"offer_id": null,
"offer_expiration": "2023-04-10T23:22:28.079883Z"
}
},
"excluded": false,
"expireAt": "2023-04-10T23:23:29.711Z",
"brand": "economy budget",
"cabin": "Y",
"createdAt": "2023-04-10T21:23:29.950Z",
"public": "9407ae91-625f-4e81-9188-584c979b744f"
}
},
"PY": {
"club standard": {
"price_information": {
"total_amount": "623.31",
"base_amount": "470.00",
"starting_fare_amount": "459.90",
"currency": "CAD",
"tax": {
"total_tax": "153.31",
"tax": [
{
"amount": "27.11",
"code": "XG",
"description": "Goods And Services Tax (gst)"
},
{
"amount": "35.00",
"code": "SQ",
"description": "Airport Improvement Fee (aif), (domestic/international)"
},
{
"amount": "54.08",
"code": "XQ",
"description": "Quebec Sales Tax"
},
{
"amount": "30.00",
"code": "YQ",
"description": "Airline Fuel And Insurance Surcharge"
},
{
"amount": "7.12",
"code": "CA",
"description": "Air Travellers Security Charge (domestic/international)"
}
]
},
"surcharge": {
"total_surcharge": "0.00",
"surcharge": []
}
},
"fare_information": {
"offerings": [
"Free Alcoholic Drinks and Free Non-Alcoholic Drinks",
"On-demand Entertainment Available",
"Free Premium Meal",
"All Rows have Power/usb Available",
"Fully refundable",
"2 checked bags free",
"383.325 KgCo2e total emissions"
],
"discount": null,
"cabin_codes": [
{
"departure": "YUL",
"arrival": "YVR",
"cabinClass": "PY"
}
],
"rewards": null
},
"media_information": [],
"baggage_information": {
"free_baggages": [
{
"messages": ["Free 2 for segments "],
"charge": "0.00",
"piece": "2"
}
],
"charged_baggages": []
},
"optional_information": {
"offer": {
"offer_id": null,
"offer_expiration": "2023-04-10T23:22:28.079883Z"
}
},
"excluded": false,
"expireAt": "2023-04-10T23:23:29.711Z",
"brand": "club standard",
"cabin": "PY",
"createdAt": "2023-04-10T21:23:29.951Z",
"public": "21959f67-db5c-43b0-899a-f2b44dea25f3"
},
"club flex": {
"price_information": {
"total_amount": "1175.19",
"base_amount": "950.00",
"starting_fare_amount": "1011.78",
"currency": "CAD",
"tax": {
"total_tax": "225.19",
"tax": [
{
"amount": "51.11",
"code": "XG",
"description": "Goods And Services Tax (gst)"
},
{
"amount": "35.00",
"code": "SQ",
"description": "Airport Improvement Fee (aif), (domestic/international)"
},
{
"amount": "101.96",
"code": "XQ",
"description": "Quebec Sales Tax"
},
{
"amount": "30.00",
"code": "YQ",
"description": "Airline Fuel And Insurance Surcharge"
},
{
"amount": "7.12",
"code": "CA",
"description": "Air Travellers Security Charge (domestic/international)"
}
]
},
"surcharge": {
"total_surcharge": "0.00",
"surcharge": []
}
},
"fare_information": {
"offerings": [
"Free Alcoholic Drinks and Free Non-Alcoholic Drinks",
"On-demand Entertainment Available",
"Free Premium Meal",
"All Rows have Power/usb Available",
"Fully refundable",
"2 checked bags free",
"383.325 KgCo2e total emissions"
],
"discount": null,
"cabin_codes": [
{
"departure": "YUL",
"arrival": "YVR",
"cabinClass": "PY"
}
],
"rewards": null
},
"media_information": [],
"baggage_information": {
"free_baggages": [
{
"messages": ["Free 2 for segments "],
"charge": "0.00",
"piece": "2"
}
],
"charged_baggages": []
},
"optional_information": {
"offer": {
"offer_id": null,
"offer_expiration": "2023-04-10T23:22:28.079883Z"
}
},
"excluded": false,
"expireAt": "2023-04-10T23:23:29.711Z",
"brand": "club flex",
"cabin": "PY",
"createdAt": "2023-04-10T21:23:29.952Z",
"public": "8d504db7-544c-4679-93de-fdb88efe8e55"
}
}
},
"expireAt": "2023-04-10T23:23:29.711Z",
"createdAt": "2023-04-10T21:23:36.239Z",
"public": "eb02945c-f793-4c00-8053-edd756de4b15"
}
Itinerary Flight Fare
An itinerary flight fare is a representation of a bound that has already been selected. It looks just like the Flight Fare, but it only has a single Brand Information; the one that has been selected.
Sub Properties
It contains the same properties as a Flight Fare, with the exception of its brand_information
:
brand_information
: (Brand Information) The object containing the selected brand information.
Type Definition
type ItineraryFlightFare = Omit<FlightFare, "brand_information"> & {
brand_information: FlightBrandInformation;
};
Example
{
"airports": [
{
"airport_code": "YUL",
"airport_name": "Montreal / Pierre Elliott Trudeau International Airport",
"airport_city_name": "Montreal",
"date_time": "2023-05-15 22:00:00",
"flight_number": "8533",
"layover_time": ""
},
{
"airport_code": "YYC",
"airport_name": "Calgary International Airport",
"airport_city_name": "Calgary",
"date_time": "2023-05-16 04:00:00",
"flight_number": "8591",
"layover_time": "03.30"
},
{
"airport_code": "YVR",
"airport_name": "Vancouver International Airport",
"airport_city_name": "Vancouver",
"date_time": "2023-05-16 04:05:00",
"flight_number": "",
"layover_time": ""
}
],
"sort_field": {
"departure_date_time": "2023-05-15 22:00:00",
"arrival_date_time": "2023-05-16 04:05:00",
"airline": ["WestJet"],
"stops": 1,
"elapse_time": "9.05",
"cheapest_price": "34.49",
"alliances": [],
"emission": 313.54
},
"segments": [
{
"departure_information": {
"airport_code": "YUL",
"airport_name": "Montreal / Pierre Elliott Trudeau International Airport",
"airport_city_name": "Montreal",
"date_time": "2023-05-15 22:00:00",
"terminal": null
},
"arrival_information": {
"airport_code": "YYC",
"airport_name": "Calgary International Airport",
"airport_city_name": "Calgary",
"date_time": "2023-05-16 00:30:00",
"terminal": null
},
"marketing_airline_information": {
"airline_code": "WS",
"airline_name": "WestJet",
"flight_number": "8533",
"alliance": null
},
"operating_airline_information": {
"airline_code": "WS",
"airline_name": "WestJet",
"flight_number": "8533",
"alliance": null
},
"additional_information": {
"equipment": {
"code": "73H",
"name": "Boeing 737-800",
"graphic": "https://bnwassets.s3.amazonaws.com/images/aircrafts/WS/73H.png"
},
"mileage": "1873",
"flight_detail": {
"duration": "270"
}
},
"emission": 255.22,
"distance": 1873
},
{
"departure_information": {
"airport_code": "YYC",
"airport_name": "Calgary International Airport",
"airport_city_name": "Calgary",
"date_time": "2023-05-16 04:00:00",
"terminal": null
},
"arrival_information": {
"airport_code": "YVR",
"airport_name": "Vancouver International Airport",
"airport_city_name": "Vancouver",
"date_time": "2023-05-16 04:05:00",
"terminal": null
},
"marketing_airline_information": {
"airline_code": "WS",
"airline_name": "WestJet",
"flight_number": "8591",
"alliance": null
},
"operating_airline_information": {
"airline_code": "WS",
"airline_name": "WestJet",
"flight_number": "8591",
"alliance": null
},
"additional_information": {
"equipment": {
"code": "73H",
"name": "Boeing 737-800",
"graphic": "https://bnwassets.s3.amazonaws.com/images/aircrafts/WS/73H.png"
},
"mileage": "428",
"flight_detail": {
"duration": "65"
}
},
"emission": 58.32,
"distance": 428
}
],
"brand_information": {
"price_information": {
"total_amount": "191.00",
"base_amount": "124.00",
"starting_fare_amount": "34.49",
"currency": "CAD",
"tax": {
"total_tax": "67.00",
"tax": [
{
"amount": "8.31",
"code": "XG",
"description": "Goods And Services Tax (gst)"
},
{
"amount": "35.00",
"code": "SQ",
"description": "Airport Improvement Fee (aif), (domestic/international)"
},
{
"amount": "16.57",
"code": "XQ",
"description": "Quebec Sales Tax"
},
{
"amount": "7.12",
"code": "CA",
"description": "Air Travellers Security Charge (domestic/international)"
}
]
},
"surcharge": {
"total_surcharge": "0.00",
"surcharge": []
}
},
"fare_information": {
"offerings": ["313.54 KgCo2e total emissions"],
"discount": null,
"cabin_codes": [
{
"departure": "YUL",
"arrival": "YYC",
"cabinClass": "Y"
},
{
"departure": "YYC",
"arrival": "YVR",
"cabinClass": "Y"
}
],
"rewards": null
},
"excluded": false,
"expireAt": "2023-04-12T23:51:17.988Z",
"createdAt": "2023-04-12T21:51:18.204Z",
"public": "d692a169-f37f-49a6-91da-b94a43cce0cc"
},
"createdAt": "2023-04-12T21:51:22.513Z",
"public": "a5e56c0d-681c-4253-b6bb-fd0d7b0795ae",
"expireAt": "2023-04-12T23:51:17.988Z"
}
Order Flight Fare
An Order flight fare is a representation of a bound that has already been ordered. It looks just like the Itinerary Flight Fare, but it may also have some additional information.
Sub Properties
It contains the same properties as a Itinerary Flight Fare, but also contains:
check_in
: (Record?
) Information about the check in process.check_in.check_in_link
: (string?
) Link to airline's check in page.check_in.check_in_window
: (Array?
) Date and time of the beginning and the end of the check in window.
Type Definition
type OrderFlightFare = ItineraryFlightFare & {
check_in?: {
check_in_link?: string;
check_in_window?: [string, string];
};
};
Seat Row
An array representing a row of seat/seat-like objects on the aircraft.
Type Definition
type SeatRow = Array<SeatLike>;
Seat-Like
Represents a single seat or a logical placeholder for a seat.
Sub Properties
position
: (string
) The position and the entity of the seat- Possible values:
AISLE
CENTER
WINDOW
EXIT-DOOR
EXIT
WING
HALLWAY
WALL
EMPTY
- Possible values:
rowIndex
: (number
) The index of the row which the seat is in, starting from 0.columnIndex
: (number
) The index of the seat in the row, starting from 0.row
: (string
) The actual row number of the seat on the aircraft. This property is not necessarily in sequential order, or even numeric. UserowIndex
for any logical operations.selectable
: (boolean
) Whether the seat is selectable or not. Only seats with this property set totrue
can be selected.expireAt
: (string?
) The date and time at which the seat will expire.public
: (Public ID) The public ID of the seat-like.seat
: (Seat?) The seat information if the seat-like is an actual seat.
Type Definition
interface SeatLike {
seat?: Seat;
position:
| "ASILE"
| "CENTER"
| "WINDOW"
| "EXIT-DOOR"
| "EXIT"
| "WING"
| "HALLWAY"
| "WALL"
| "EMPTY";
row: string;
rowIndex: number;
columnIndex: number;
selectable: boolean;
expireAt: string;
}
Example
{
"position": "CENTER",
"rowIndex": 3,
"seatIndex": 5,
"selectable": true,
"seat": {
"row": "8",
"column": "E",
"position": "CENTER",
"status": "free",
"preferred": false,
"description": "CENTER Seat",
"service_type": "SEAT",
"price": {
"total_price": "0.00",
"total_tax": "0.00",
"currency": "CAD",
}
},
"expireAt": "2023-04-14T23:32:21.703Z",
"createdAt": "2023-04-14T22:33:43.512Z",
"public": "7d089afb-548f-46c9-924b-98bba090e4bd"
},
Seat
Represents information about an actual seat.
Sub Properties
position
: (string
) The position and the entity of the seat- Possible values:
AISLE
CENTER
WINDOW
EXIT-DOOR
EXIT
WING
HALLWAY
WALL
EMPTY
- Possible values:
row
: (string
) The actual row number of the seat on the aircraft. This property is not necessarily in sequential order, or even numeric. UserowIndex
for any logical operations.column
: (string
) The actual column of the seat on the aircraft. This property is usually a single character, but can be a number or a string.status
: (string
) The status of the seat.- Possible values:
paid
: The seat is paid for.free
: The seat is free.
- Possible values:
preferred
: (boolean
) Whether the seat is preferred or a standard seat.description
: (Public ID) The public ID of the seat-like.price
: (Record?
) The price of the seat.total_price
: (string
) The total price of the seat.total_tax
: (string
) The total tax of the seat.currency
: (string
) The ISO 4217 (opens in a new tab) currency code of the seat.base_price
: (string?
) The base price of the seat.
Type Definition
interface Seat {
row: string;
column: string;
price: {
total_price: string;
total_tax: string;
currency: string;
base_price: string;
};
position: string;
status: "paid" | "free";
preferred: boolean;
description: string;
}
Example
{
"row": "8",
"column": "E",
"position": "CENTER",
"status": "free",
"preferred": false,
"description": "CENTER Seat",
"service_type": "SEAT",
"price": {
"total_price": "0.00",
"base_price": "0.00",
"total_tax": "0.00",
"currency": "CAD",
}
},
Selected Seat-Like
Sub Properties
Represents seat like, after it has been selected by the passenger. It contains the same properties as a Seat-Like, but also contains:
bound
: (number
) The index of the bound to which the seat-like belongs.segment
: (number
) The index of the segment, within the bound, to which the seat-like belongs.passenger
: (Record
) Information of the passenger to which the seat-like now belongs.public
: (Public ID) The public ID of the passenger.
Type Definition
type SelectedSeatLike = SeatLike & {
bound: number;
segment: number;
passenger: {
public: PublicID;
};
};
Order Seat-Like
Sub Properties
Represents seat like, after it has been ordered. It contains the same properties as a Selected Seat-Like, but also contains:
confirmed
: (boolean?
) Whether or not the seat has been confirmed by the airline.
Type Definition
type OrderSeatLike = SelectedSeatLike & {
confirmed?: boolean;
};
Pricing Strategy
Depending on the selected fares, the pricing strategy will indicate whether the selected fares were priced as a bundle or as individual fares. The possible values are:
BUNDLED
: The fares were priced as a bundle.SEPARATE
: The fares were priced as individual fares.
Type Definition
type PricingStrategy = "BUNDLED" | "SEPARATE";
Price Change
Sub Properties
Represents change in the price of a fare. It contains the following properties:
difference
: (string
) The difference in price in the currency of its context.type
: (string
) Whether the price has increased or decreased.- Possible values:
MORE
: The price has increased.LESS
: The price has decreased.
- Possible values:
reason
: (Price Change Reason) The reason for the price change.
Type Definition
interface PriceChange {
difference: string;
type: "MORE" | "LESS";
reason: PriceChangeReason;
}
Example
{
"difference": "20.00",
"reason": "REPRICED",
"type": "MORE"
}
Price Change Reason
Indicates the reason for a price change. The possible values are:
BUNDLED
: The price has changed as a result of bundling previously unbundled fares.REPRICED
: The price has changed due to cached pricing or a change of price by the vendor.
Type Definition
type PriceChangeReason = "BUNDLED" | "REPRICED";
Passenger Information
Object describing a passenger.
Sub Properties
phone_number
: (string
) Passenger's phone number in the E.164 (opens in a new tab) format.email
: (string
) Passenger's email.code
: (Passenger Code) Passenger's age range code.personal_info
: (Record
) Passenger's personal informationpersonal_info.date_of_birth
: (string
) Passenger's date of birth ISO8601 (opens in a new tab) date format.personal_info.first_name
: (string
) Passenger's first name.personal_info.last_name
: (string
) Passenger's last name.personal_info.middle_name
: (string?
) Passenger's middle name.personal_info.gender
: (Passenger Gender) Passenger's gender code.
frequent_flyer
: (Flight Frequent Flyer Information?) Passenger's frequent flyer information.
Type Definition
interface PassengerInformation {
code: PassengerCode;
email: string;
phone_number: string;
passenger_id: string;
frequent_flyer?: FlightFrequentFlyerInformation;
personal_info: {
first_name: string;
last_name: string;
middle_name?: string;
gender: PassengerGender;
date_of_birth: string;
};
}
Flight Frequent Flyer Information
A Passenger's frequent flyer information.
Sub Properties
program_id
: (string
) Passenger's frequent flyer program id, must be an IATA airline code.id
: (string
) Passenger's frequent flyer id.
Type Definition
interface FlightFrequentFlyerInformation {
program_id: string;
id: string;
}
Validation
The following programs have specific validation rules for the id
field:
program_id | id validation |
---|---|
AC | /^[0-9]{9}$/ |
Flight Order Passenger Information
Flight Order Passenger Information contains information about passengers within a flight order. It is the same as Passenger Information, but it also potentially has a ticket_number
attached to it.
Sub Properties
It looks just like Passenger Information but it also contains:
ticket_number
: (string?
) Passenger's ticket number, if available.
Type Definition
type FlightOrderPassengerInformation = PassengerInformation & {
ticket_number?: string;
};
Payment Card Type
Represents the supported payment card types.
Possible Values
visa
: Visa payment cardmasterCard
: MasterCard payment carddiscover
: Discover payment cardjcb
: JCB payment carddiners
: Diners Club payment cardamericanExpress
: American Express payment card
Type Definition
type PaymentCardType = "visa" | "masterCard" | "discover" | "jcb" | "diners" | "americanExpress";
Payment Information
Object describing a payment.
Sub Properties
code
: (Payment Card Type) The TokenEx cardType (opens in a new tab).first_name
: (string
) The first name of the cardholder.last_name
: (string
) The last name of the cardholder.token
: (string
) The payment token associated with the card.expiry
: (string
) The expiry date of the card.billing_information
: (Record
) An object containing the billing address details.billing_information.unit
: (string?
) The unit number (optional).billing_information.country
: (string
) ISO 3166 (opens in a new tab) code for the country.billing_information.state
: (string
) The two letter abbreviation of the state/province.billing_information.address
: (string
) The street address.billing_information.city
: (string
) The name of the city.billing_information.postal_code
: (string
) The postal code/zip code.
Type Definition
interface PaymentInformation {
code: PaymentCardType;
first_name: string;
last_name: string;
token: string;
expiry: string;
billing_information: {
unit?: string;
country: string;
state: string;
address: string;
city: string;
postal_code: string;
};
}
Alternative Payment Information
Object describing an alternativePayment method.
Sub Properties
method
: (VERTO
) The alternative payment method. Currently onlyVERTO
is supported.payload
: (Verto Payment Method Payload) The payload for the alternative payment method. Each method has its own payload structure.
Type Definition
interface AlternativePaymentInformation {
code: "VERTO";
payload: {
sample: "payload";
};
}
Verto Payment Method Payload
Object describing the payload for the Verto payment method.
Sub Properties
token
: (string
) The Verto token represneting the transaction.
Type Definition
interface VertoPaymentMethodPayload {
token: string;
}
Fare Matching
Object describing a matching fare
Sub Properties
public
: (Public ID) The public ID of the matching fare.airline
: (Array<string>
) The marketing airlines of the flights included in the fare.duration
: (string
) The flight duration of the fare (TODO: Includes stopover or not?).departure
: (string
) The departure time of the fare.departureAirport
: (string
) The departure location of the fare.arrival
: (string
) The arrival time of the fare.arrivalAirport
: (string
) The arrival location of the fare.brands
: (Array<
Brand Matching>
) The brands of the given fare that can be matched with the queried fares.
Type Definition
interface FareMatching {
airline: string[];
duration: string;
departure: string;
departureAirport: string;
arrival: string;
arrivalAirport: string;
layovers: Record<string, string>;
public: string;
brands: BrandMatching[];
}
Brand Matching
Object describing a matching brand
Sub Properties
total_amount
: (string
) The total price of the brand.starting_fare_amount
: (string
) For the first bound, this is the minimum priced itinerary that can be created with the given brand. For subsequent bounds, this is the price increase compared to the minimum branded fare for the given bound.currency
: (string
) : The ISO 4217 (opens in a new tab) currency code of thetotal_amount
andstarting_fare_amount
name
: (string
) The airline's name for the given brand class.cabin
: (Cabin Code) The cabin to which the brand belongs.offering
: (string[]
) All of the additional amenities offered with the flightfare_matchings
: (Array<Record>
) The brands from theselectedFares
with which the current brand can be matched.fare_matchings[].public
: (Public ID) The public ID of the fare given inselectedFares
.fare_matchings[].brand_matchings
: (Array<Record>
) The brands of theselectedFares
with which the brand fromfares[].brands[]
can be matched.fare_matchings[].brand_matchings[].public
: (Public ID) The public ID of the given brand.fare_matchings[].brand_matchings[].name
: (string
) The airline's name for the given brand class.fare_matchings[].brand_matchings[].cabin
: (Cabin Code) The cabin to which the brand belongs.
Type Definition
interface BrandMatching {
public: string;
total_amount: string;
starting_fare_amount: string;
name: string;
cabin: string;
currency: string;
fare_matchings: Array<{
public: string;
brand_matchings: Record<string, string>;
}>;
}
SDK Load Payload
This object is returned by the API in order to load the browser SDK. It contains the information required by the SDK to initialize.
Sub Properties
gateway
: (string
) The provider the SDK uses for its functionalities.payload
: (Record<string,any>
) The details required by the provider for the initialization.
Type Definition
interface ThreeDSecureAction {
gateway: string;
payload: Record<string, any>;
}
3D Secure Action
Object describing a 3D Secure action that needs to be handled by the browser SDK.
Sub Properties
gateway
: (string
) The 3D Secure provider processing the authentication.payload
: (Record<string,any>
) The details required by the provider for the authentication.action
: (three_d_s
) The action that needs to be taken by the browser SDK.
Type Definition
interface ThreeDSecureAction {
gateway: string;
payload: Record<string, any>;
action: "three_d_s";
}
3D Secure Success
This object is produced by the browser SDK after a successful 3D Secure authentication.
Sub Properties
gateway
: (string
) The payment provider processing the transaction.payload
: (Record<string,any>
) The successful authentication details returned by the provider.status
: (success
) The status of the 3D Secure authentication.
Type Definition
interface ThreeDSecureSuccess {
gateway: string;
payload: Record<string, any>;
status: "success";
}
3D Secure Failure
This object is produced by the browser SDK after a failed 3D Secure authentication.
Sub Properties
gateway
: (string
) The payment provider processing the transaction.status
: (error
) The status of the 3D Secure authentication.error
: (any
?) The error object returned by the provider or the SDK, intended for tracking. This can may or may not be a JavaScript error object.message
: (string
?) The error message returned by the provider or the SDK, intended for display to the user.
Type Definition
interface ThreeDSecureFailure {
gateway: string;
status: "error";
error?: any;
message?: string;
}
Risk Evaluation
This object represents the risk evaluation of an order upon completion of order.
Sub Properties
riskLevel
: (string
) The level of risk associated with the order.riskScore
: (string
) The risk score associated with the order out of 100.
Type Definition
interface RiskEvaluation {
riskLevel: 'highest' | 'elevated' | 'normal';
riskScore: string;
}
Payment Authorization
This object represents the payment authorization attached to an order.
Sub Properties
gateway
: (string
) The payment gateway used for the transaction.threeDsResult
: (any
?) Details of the 3D Secure authentication result. You can assume that 3DS was performed if this property is present.public
: (Public ID) The public ID of the fare given inselectedFares
.createdAt
: (string
) The timestamp when the payment authorization was created.
Type Definition
interface PaymentAuthorization {
gateway: string;
threeDsResult: any;
public: string;
createdAt: string;
}
Commission Details
The object describing the details of the commission calculation for a fare.
Sub Properties
calculation
: (Record
) Details of the commission calculation.calculation
: (Record
) Additional calculation details.calculation.calculation.rbd
: (Array<string>
) The RBD codes for the applicable fare class.calculation.calculation.amount
: (number
) The commission amount/percentage.calculation.calculation.type
: (PERCENTAGE
|FIXED
) The type of commission calculation (e.g., percentage).calculation.calculation.tour_code
: (string
?) The tour code associated with the commission calculation.
calculation.fare_combination_rule
: (LOWEST
|HIGHEST
) Indicates whether the commission is applied to the highest or lowest fare in the itinerary.calculation.applied_to
: (BASE_FARE
|TOTAL_FARE
) Indicates whether the commission is applied to the base fare or total fare.pax_type
: (Array<PassengerCode>
?) The passenger types to which the commission applies.
bookingRule
: (string
) The ID of the booking rule associated with the commission. Could be used for tracking purposes.estimatedCommission
: (string
) The estimated commission amount in the currency of the fare.
Type Definition
interface CommissionDetails {
calculation: {
calculation: {
rbd: string[];
amount: number;
type: "FIXED" | "PERCENTAGE"
tour_code?: string;
};
fare_combination_rule: "LOWEST" | "HIGHEST";
applied_to: "BASE_FARE" | "TOTAL_FARE";
pax_type: PassengerCode[];
};
bookingRule: string;
estimatedCommission: string;
}
Location Search Result
Represents a location result from the location auto-complete endpoint.
Sub Properties
type
: (CITY
|AIRPORT
|REGION
|HOTEL
) The type of location resultname
: (string
) The name of the location or hotelcountry
: (string
) The country where the location is situatedregion
: (string?
) The region or state within the countryiata
: (string?
) IATA code for airport locations onlypublic
: (Public ID) The public ID that can be used for hotel searchesscore
: (number?
) Relevance score for the search result
Type Definition
interface LocationSearchResult {
type: "CITY" | "AIRPORT" | "REGION" | "HOTEL";
name: string;
country: string;
region?: string;
iata?: string;
public: PublicID;
score?: number;
}
Example
{
"type": "AIRPORT",
"name": "Lester B. Pearson International Airport",
"country": "Canada",
"region": "Ontario",
"iata": "YYZ",
"public": "292104e4-5efe-44a5-9ac3-138faf2c52ef",
"score": 8.8
}
Hotel Session Query
Represents the search parameters for creating a hotel session.
Sub Properties
location
: (string
) The public ID from a location search resultcheck_in_date
: (string
) Check-in date in YYYY-MM-DD formatcheck_out_date
: (string
) Check-out date in YYYY-MM-DD formatchannel
: (Channel Type) The booking channel typedevice
: (Device Type) The device type for the search
Type Definition
interface HotelSessionQuery {
location: string;
check_in_date: string;
check_out_date: string;
channel: ChannelType;
device: DeviceType;
}
Example
{
"location": "292104e4-5efe-44a5-9ac3-138faf2c52ef",
"check_in_date": "2025-10-08",
"check_out_date": "2025-10-12",
"channel": "MEMBER",
"device": "MOBILE"
}
Hotel Preferences
Represents preferences for hotel searches and bookings.
Sub Properties
account_id
: (string?
) UUID for the user account
Type Definition
interface HotelPreferences {
account_id?: string;
}
Example
{
"account_id": "e3b34b0e-e812-41fc-a247-35ba3106af2d"
}
Channel Type
Represents the booking channel type for hotel reservations.
Possible Values
AGENT
: Travel agent bookingsCORPORATE
: Corporate travel bookingsGUEST
: Direct guest bookingsMEMBER
: Loyalty member bookings
Type Definition
type ChannelType = "AGENT" | "CORPORATE" | "GUEST" | "MEMBER";
Device Type
Represents the device type for search and booking operations.
Possible Values
DESKTOP
: Desktop computer accessMOBILE
: Mobile device access
Type Definition
type DeviceType = "DESKTOP" | "MOBILE";
Hotel Search Status
Represents the status of a hotel search operation or individual search stream.
Possible Values
IN_PROGRESS
: Search is currently runningCOMPLETED
: Search has finished successfullyERRORED
: Search encountered an errorTIMED_OUT
: Search exceeded time limits
Type Definition
type HotelSearchStatus = "IN_PROGRESS" | "COMPLETED" | "ERRORED" | "TIMED_OUT";
Hotel Search Stream
Represents an individual search stream from a hotel content provider.
Sub Properties
id
: (string
) Unique identifier for this search streamcredential_id
: (string
) Identifier for the provider credential usedstatus
: (Hotel Search Status) Status of this specific streamerror
: (string?
) Error message if the stream encountered an errormodifierError
: (string?
) Modifier-specific error information if applicable
Type Definition
interface HotelSearchStream {
id: string;
credential_id: string;
status: HotelSearchStatus;
error?: string;
modifierError?: string;
}
Example
{
"id": "stream_001",
"credential_id": "provider_001",
"status": "COMPLETED",
"error": null,
"modifierError": null
}
Hotel Search Response
Represents the response from hotel search initiation and status endpoints.
Sub Properties
status
: (Hotel Search Status) Overall status of the search across all streamserror
: (string?
) General error information for the entire searchtimeoutError
: (string?
) Timeout-specific error information if the search timed outstreams
: (Array<
Hotel Search Stream>
) List of search streams from different providers
Type Definition
interface HotelSearchResponse {
status: HotelSearchStatus;
error?: string;
timeoutError?: string;
streams: HotelSearchStream[];
}
Example
{
"status": "COMPLETED",
"error": null,
"timeoutError": null,
"streams": [
{
"id": "stream_001",
"credential_id": "provider_001",
"status": "COMPLETED",
"error": null,
"modifierError": null
}
]
}
Hotel Availability Response
Represents the response from the hotel availability endpoint with incremental update support.
Sub Properties
new
: (Array<
Hotel Availability>
) Newly added hotel properties since the last timestampupdated
: (Array<
Hotel Availability>
) Updated hotel properties since the last timestamptimestamp
: (string
) Current timestamp for subsequent incremental requestsstatus
: (Hotel Search Status) Current status of the hotel search process
Type Definition
interface HotelAvailabilityResponse {
new: HotelAvailability[];
updated: HotelAvailability[];
timestamp: string;
status: HotelSearchStatus;
}
Example
{
"new": [],
"updated": [],
"timestamp": "2025-01-24T21:55:30Z",
"status": "COMPLETED"
}
Hotel Availability
Represents hotel availability information with rates from a specific provider.
Sub Properties
hotel_information
: (Hotel Information Preview) Detailed information about the hotelcredential_id
: (string
) Identifier for the provider credentialprovider
: (string
) Name of the hotel content providerrates_info
: (Array<
Hotel Rate Info>
) List of available rates for the hotelexpireAt
: (string
) Hotel availability expiration timestamppublic
: (Public ID) Public identifier for the hotel availabilitycreatedAt
: (string
) Creation timestampupdatedAt
: (string
) Last update timestamp
Type Definition
interface HotelAvailability {
hotel_information: HotelInformationPreview;
credential_id: string;
provider: string;
rates_info: HotelRateInfo[];
expireAt: string;
public: PublicID;
createdAt: string;
updatedAt: string;
}
Hotel Information Preview
Represents basic hotel information provided during search results.
Sub Properties
hotel_name
: (string
) Name of the hotelrating
: (string?
) Hotel star rating as a stringdistance
: (Hotel Distance?
) Distance information from search location coordinateslogo
: (Hotel Image?
) Hotel logo informationchain_code
: (string?
) Hotel chain codehotel_code
: (string
) Unique hotel identifier codemaster_chain_name
: (string?
) Name of the master hotel chainmaster_chain_code
: (string?
) Code of the master hotel chainaddress
: (Hotel Address?
) Hotel address information
Type Definition
interface HotelInformationPreview {
hotel_name: string;
rating?: string;
distance?: HotelDistance;
logo?: HotelImage;
chain_code?: string;
hotel_code: string;
master_chain_name?: string;
master_chain_code?: string;
address?: HotelAddress;
}
Example
{
"hotel_name": "Fairmont Hotel Vancouver",
"rating": "5",
"distance": {
"distance": "0.5",
"UOM": "KM"
},
"logo": {
"src": "https://example.com/fairmont-logo.png",
"alt": "Fairmont Hotel Vancouver"
},
"chain_code": "FM",
"hotel_code": "YVRFM001",
"master_chain_name": "Fairmont Hotels & Resorts",
"master_chain_code": "FM",
"address": {
"address": "900 W Georgia St",
"city_name": "Vancouver",
"city_code": "YVR",
"postal_code": "V6C 2W6",
"country_name": "Canada",
"country_code": "CA",
"phone": ["+1-604-684-3131"],
"fax": ["+1-604-662-1929"],
"location": {
"latitude": "49.2827",
"longitude": "-123.1207"
}
}
}
Hotel Distance
Represents distance information from the search location to the hotel.
Sub Properties
distance
: (string
) Distance value as a stringUOM
: (string
) Unit of measurement (e.g., KM, MI)
Type Definition
interface HotelDistance {
distance: string;
UOM: string;
}
Example
{
"distance": "0.5",
"UOM": "KM"
}
Hotel Image
Represents hotel image information (logos, photos, etc.).
Sub Properties
src
: (string
) URL to the hotel imagealt
: (string
) Alternative text for the image
Type Definition
interface HotelImage {
src: string;
alt: string;
}
Example
{
"src": "https://example.com/fairmont-logo.png",
"alt": "Fairmont Hotel Vancouver"
}
Hotel Address
Represents comprehensive hotel address and contact information.
Sub Properties
address
: (string
) Street address of the hotelcity_name
: (string
) Name of the city where the hotel is locatedcity_code
: (string
) City code identifierpostal_code
: (string
) Postal or ZIP codecountry_name
: (string
) Full name of the countrycountry_code
: (string
) ISO country code (e.g., CA, US)phone
: (Array<string>
) Array of phone numbers for the hotelfax
: (Array<string>
) Array of fax numbers for the hotellocation
: (Record
) Geographical coordinates of the hotellocation.latitude
: (string
) Latitude coordinate of the hotellocation.longitude
: (string
) Longitude coordinate of the hotel
Type Definition
interface HotelAddress {
address: string;
city_name: string;
city_code: string;
postal_code: string;
country_name: string;
country_code: string;
phone: string[];
fax: string[];
location: {
latitude: string;
longitude: string;
};
}
Example
{
"address": "900 W Georgia St",
"city_name": "Vancouver",
"city_code": "YVR",
"postal_code": "V6C 2W6",
"country_name": "Canada",
"country_code": "CA",
"phone": ["+1-604-684-3131"],
"fax": ["+1-604-662-1929"],
"location": {
"latitude": "49.2827",
"longitude": "-123.1207"
}
}
Hotel Rate Info
Represents detailed rate information for a hotel including pricing and terms.
Sub Properties
rate_description
: (Hotel Rate Description) Description and terms of the raterate_price
: (Hotel Rate Price?
) Pricing information in client currencylocal_rate_price
: (Hotel Rate Price?
) Pricing information in local currencyexpireAt
: (string
) Rate expiration timestampcreatedAt
: (string
) Rate creation timestamppublic
: (Public ID) Public identifier for the rate
Type Definition
interface HotelRateInfo {
rate_description: HotelRateDescription;
rate_price?: HotelRatePrice;
local_rate_price?: HotelRatePrice;
expireAt: string;
createdAt: string;
public: PublicID;
}
Hotel Rate Description
Represents the terms and conditions of a hotel rate.
Sub Properties
start_date
: (string
) Check-in date in YYYY-MM-DD formatend_date
: (string
) Check-out date in YYYY-MM-DD formattax_inclusive
: (boolean
) Whether the rate includes taxesnumber_of_nights
: (number
) Number of nights for the stayrefundable
: (boolean
) Whether the rate is refundablediscount_codes
: (Array<string>
) List of applicable discount codespay_at_hotel
: (string?
) Payment method information if paid at hotel or prepaid
Type Definition
interface HotelRateDescription {
start_date: string;
end_date: string;
tax_inclusive: boolean;
number_of_nights: number;
refundable: boolean;
discount_codes: string[];
pay_at_hotel?: string;
}
Example
{
"start_date": "2025-10-08",
"end_date": "2025-10-12",
"tax_inclusive": true,
"number_of_nights": 4,
"refundable": true,
"discount_codes": [],
"pay_at_hotel": null
}
Hotel Rate Price
Represents comprehensive pricing information for a hotel rate.
Sub Properties
fees
: (Hotel Rate Fees) Fee information for the ratetaxes
: (Hotel Rate Taxes) Tax information for the ratecommission
: (Hotel Rate Commission?
) Commission information for the rateaverage_nightly_rate
: (string
) Average nightly rate including taxesaverage_nightly_rate_before_tax
: (string
) Average nightly rate before taxesamount_after_tax
: (string
) Total amount for the stay including taxesamount_before_tax
: (string
) Total amount for the stay before taxescurrency
: (string
) Currency code for all amountsdiscount
: (Hotel Rate Price Discount?
) Discount information showing pre-discount pricing
Type Definition
interface HotelRatePrice {
fees: HotelRateFees;
taxes: HotelRateTaxes;
commission?: HotelRateCommission;
average_nightly_rate: string;
average_nightly_rate_before_tax: string;
amount_after_tax: string;
amount_before_tax: string;
currency: string;
discount?: HotelRatePriceDiscount;
}
Hotel Rate Fees
Represents fee information for a hotel rate.
Sub Properties
total
: (string
) Total fees amount as a stringdescription
: (string?
) Description of the fees
Type Definition
interface HotelRateFees {
total: string;
description?: string;
}
Example
{
"total": "25.00",
"description": "Resort fees"
}
Hotel Rate Taxes
Represents tax information for a hotel rate.
Sub Properties
total
: (string
) Total tax amount as a stringdescription
: (string?
) Description of the taxes
Type Definition
interface HotelRateTaxes {
total: string;
description?: string;
}
Example
{
"total": "45.60",
"description": "GST/HST"
}
Hotel Rate Commission
Represents commission information for a hotel rate.
Sub Properties
type
: (PERCENTAGE
|FIXED
) Type of commission calculationamount
: (string
) Commission amount or percentage as a string
Type Definition
interface HotelRateCommission {
type: "PERCENTAGE" | "FIXED";
amount: string;
}
Example
{
"type": "PERCENTAGE",
"amount": "10.0"
}
Hotel Rate Price Discount
Represents discount information showing pre-discount pricing for comparison.
Sub Properties
title
: (string?
) Title or name of the discountamount_before_tax_before_discount
: (string
) Total amount for the stay before taxes and before discount appliedamount_before_discount
: (string
) Total amount for the stay after taxes but before discount appliedaverage_nightly_rate_before_tax_before_discount
: (string
) Average nightly rate before taxes and before discount appliedaverage_nightly_rate_before_discount
: (string
) Average nightly rate after taxes but before discount applied
Type Definition
interface HotelRatePriceDiscount {
title?: string;
amount_before_tax_before_discount: string;
amount_before_discount: string;
average_nightly_rate_before_tax_before_discount: string;
average_nightly_rate_before_discount: string;
}
Hotel Check-In Information
Represents check-in and check-out procedures and instructions for a hotel.
Sub Properties
check_in
: (Array<string>
) Tuple of check-in time. If more than one option is available, the second element indicates the latest check-in time.check_out
: (Array<string>
) Tuple of check-out time. If more than one option is available, the second element indicates the latest check-out time.instructions
: (Array<string>?
) General check-in instructionsspecial_instructions
: (Array<string>?
) Special check-in instructions
Type Definition
interface HotelCheckInInformation {
check_in: [string] | [string, string];
check_out: [string] | [string, string];
instructions?: string[];
special_instructions?: string[];
}
Example
{
"check_in": ["15:00", "16:00"],
"check_out": ["11:00", "12:00"],
"instructions": [
"Photo identification and credit card required at check-in",
"Guests must be 18 years or older to check in"
],
"special_instructions": [
"Valet parking available for additional fee",
"Early check-in subject to availability"
]
}
Hotel Description
Represents descriptive text content with a title, used for hotel descriptions, policies, and fee information.
Sub Properties
title
: (string
) Title or heading for the description contenttext
: (string
) Detailed description text content
Type Definition
interface HotelDescription {
title: string;
text: string;
}
Example
{
"title": "Cancellation Policy",
"text": "Cancellations must be made 24 hours prior to arrival to avoid penalty charges. Late cancellations will be charged one night's accommodation."
}
Hotel Property Details Response
Represents the comprehensive response from the hotel property details endpoint.
Sub Properties
hotel_information
: (Hotel Information Preview) Basic hotel information (inherited from availability)check_in_information
: (Hotel Check-In Information) Check-in and check-out procedureshotel_amenities
: (Array<string>
) List of hotel amenities and facilitiesdescriptions
: (Array<
Hotel Description>
) Detailed hotel descriptions and informationpolicies
: (Array<
Hotel Description>
) Hotel policies and termsfees
: (Array<
Hotel Description>?
) Additional fees and charges informationrates_info
: (Array<
Hotel Rate Info>
) Available rates for this hotel propertyexpireAt
: (string
) Property details expiration timestamppublic
: (Public ID) Public identifier for the hotel property detailscreatedAt
: (string
) Creation timestampupdatedAt
: (string
) Last update timestamp
Type Definition
interface HotelPropertyDetailsResponse {
hotel_information: HotelInformationPreview;
check_in_information: HotelCheckInInformation;
hotel_amenities: string[];
descriptions: HotelDescription[];
policies: HotelDescription[];
fees?: HotelDescription[];
rates_info: HotelRateInfo[];
expireAt: string;
public: PublicID;
createdAt: string;
updatedAt: string;
}
Room Type
Represents room type classification information.
Sub Properties
name
: (string?
) Name of the room typecode
: (string?
) Code identifier for the room type
Type Definition
interface RoomType {
name?: string;
code?: string;
}
Example
{
"name": "Deluxe King Room",
"code": "DLX_KING"
}
Bed Type
Represents bed configuration information for hotel rooms.
Sub Properties
type
: (string
) Type of bed (e.g., King, Queen, Twin)count
: (number
) Number of beds of this type
Type Definition
interface BedType {
type: string;
count: number;
}
Example
{
"type": "King",
"count": 1
}
Rate Price Component Breakdown
Represents detailed breakdown information for rate pricing components.
Sub Properties
amount
: (number
) Breakdown amount as a numbertext
: (string
) Description of this breakdown component
Type Definition
interface RatePriceComponentBreakdown {
amount: number;
text: string;
}
Example
{
"amount": 75.00,
"text": "Resort fee (per night)"
}
Enhanced Hotel Rate Fees
Represents enhanced fee information with detailed breakdowns (extends Hotel Rate Fees).
Sub Properties
Inherits from Hotel Rate Fees:
total
: (string
) Total fees amount as a string
Enhanced properties:
description
: (Record?
) Enhanced description object with additional detailsdescription.text
: (string
) Detailed description of the feesdescription.title
: (string
) Title for the fees sectiondescription.link
: (string?
) Link for more informationdescription.link_text
: (string?
) Display text for the link
breakdown
: (Array<
Rate Price Component Breakdown>
) Detailed breakdown of fee components
Type Definition
interface EnhancedHotelRateFees extends Omit<HotelRateFees, 'description'> {
description?: {
text: string;
title: string;
link?: string;
link_text?: string;
};
breakdown: RatePriceComponentBreakdown[];
}
Example
{
"total": "100.00",
"description": {
"text": "Resort fees include WiFi access, fitness center use, and pool access",
"title": "Resort & Service Fees",
"link": "https://example.com/fees-policy",
"link_text": "View detailed fee policy"
},
"breakdown": [
{
"amount": 75.00,
"text": "Resort fee (per night)"
},
{
"amount": 25.00,
"text": "Service fee (total stay)"
}
]
}
Enhanced Hotel Rate Taxes
Represents enhanced tax information with detailed breakdowns (extends Hotel Rate Taxes).
Sub Properties
Inherits from Hotel Rate Taxes:
total
: (string
) Total tax amount as a string
Enhanced properties:
description
: (Record?
) Enhanced description object with additional detailsdescription.text
: (string
) Detailed description of the taxesdescription.title
: (string
) Title for the taxes sectiondescription.link
: (string?
) Link for more informationdescription.link_text
: (string?
) Display text for the link
breakdown
: (Array<
Rate Price Component Breakdown>
) Detailed breakdown of tax components
Type Definition
interface EnhancedHotelRateTaxes extends Omit<HotelRateTaxes, 'description'> {
description?: {
text: string;
title: string;
link?: string;
link_text?: string;
};
breakdown: RatePriceComponentBreakdown[];
}
Example
{
"total": "64.80",
"description": {
"text": "Government taxes and local city fees as required by law",
"title": "Taxes & Government Fees",
"link": null,
"link_text": null
},
"breakdown": [
{
"amount": 48.60,
"text": "GST/HST (13%)"
},
{
"amount": 16.20,
"text": "City occupancy tax"
}
]
}
Enhanced Hotel Rate Price
Represents enhanced pricing information with detailed breakdowns (extends Hotel Rate Price).
Sub Properties
Inherits core pricing from Hotel Rate Price:
commission
: (Hotel Rate Commission?
) Commission information for the rateaverage_nightly_rate
: (string
) Average nightly rate including taxesaverage_nightly_rate_before_tax
: (string
) Average nightly rate before taxesamount_after_tax
: (string
) Total amount for the stay including taxesamount_before_tax
: (string
) Total amount for the stay before taxescurrency
: (string
) Currency code for all amountsdiscount
: (Hotel Rate Price Discount?
) Discount information showing pre-discount pricing
Enhanced properties:
fees
: (Enhanced Hotel Rate Fees) Enhanced fee information with breakdownstaxes
: (Enhanced Hotel Rate Taxes) Enhanced tax information with breakdowns
Type Definition
interface EnhancedHotelRatePrice extends Omit<HotelRatePrice, 'fees' | 'taxes'> {
fees: EnhancedHotelRateFees;
taxes: EnhancedHotelRateTaxes;
}
Hotel Cancellation Penalty
Represents a cancellation penalty with specific deadlines and amounts.
Sub Properties
amount
: (string
) Penalty amount as a stringcurrency
: (string
) Currency code for the penalty amountdeadline
: (string
) Deadline for when this penalty appliespercentage
: (string?
) Penalty as a percentage
Type Definition
interface HotelCancellationPenalty {
amount: string;
currency: string;
deadline: string;
percentage?: string;
}
Example
{
"amount": "150.00",
"currency": "CAD",
"deadline": "2025-10-07T15:00:00",
"percentage": null
}
Hotel Cancellation
Represents cancellation information including refundability and penalty structure.
Sub Properties
refundable
: (boolean
) Whether the rate is refundablepenalties
: (Array<
Hotel Cancellation Penalty>
) List of cancellation penalties with deadlines
Type Definition
interface HotelCancellation {
refundable: boolean;
penalties: HotelCancellationPenalty[];
}
Example
{
"refundable": true,
"penalties": [
{
"amount": "0.00",
"currency": "CAD",
"deadline": "2025-10-07T15:00:00",
"percentage": null
},
{
"amount": "150.00",
"currency": "CAD",
"deadline": "2025-10-08T15:00:00",
"percentage": "50"
}
]
}
Enhanced Hotel Rate Description
Represents enhanced rate description with cancellation information (extends Hotel Rate Description).
Sub Properties
Inherits from Hotel Rate Description:
start_date
: (string
) Check-in date in YYYY-MM-DD formatend_date
: (string
) Check-out date in YYYY-MM-DD formattax_inclusive
: (boolean
) Whether the rate includes taxesnumber_of_nights
: (number
) Number of nights for the stayrefundable
: (boolean
) Whether the rate is refundablediscount_codes
: (Array<string>
) List of applicable discount codespay_at_hotel
: (string?
) Payment method information if paid at hotel or prepaid
Enhanced properties:
cancellation
: (Hotel Cancellation) Detailed cancellation policy and penaltiesaccepted_payment_cards
: (Array<
Payment Card Type>?
) List of accepted payment card types for this hotel rate
Type Definition
interface EnhancedHotelRateDescription extends HotelRateDescription {
cancellation: HotelCancellation;
accepted_payment_cards?: PaymentCardType[];
}
Example
{
"start_date": "2025-10-08",
"end_date": "2025-10-12",
"tax_inclusive": true,
"number_of_nights": 4,
"refundable": true,
"discount_codes": [],
"pay_at_hotel": null,
"accepted_payment_cards": ["visa", "masterCard", "americanExpress"],
"cancellation": {
"refundable": true,
"penalties": [
{
"amount": "0.00",
"currency": "CAD",
"deadline": "2025-10-07T15:00:00",
"percentage": null
},
{
"amount": "150.00",
"currency": "CAD",
"deadline": "2025-10-08T15:00:00",
"percentage": "50"
}
]
}
}
Enhanced Hotel Rate Info
Represents enhanced rate information with detailed pricing breakdowns (extends Hotel Rate Info).
Sub Properties
Inherits from Hotel Rate Info:
expireAt
: (string
) Rate expiration timestampcreatedAt
: (string
) Rate creation timestamppublic
: (Public ID) Public identifier for the rate
Enhanced properties:
rate_description
: (Enhanced Hotel Rate Description) Enhanced description and terms with cancellation detailsrate_price
: (Enhanced Hotel Rate Price?
) Enhanced pricing information in client currencylocal_rate_price
: (Enhanced Hotel Rate Price?
) Enhanced pricing information in local currency
Type Definition
interface EnhancedHotelRateInfo extends Omit<HotelRateInfo, 'rate_description' | 'rate_price' | 'local_rate_price'> {
rate_description: EnhancedHotelRateDescription;
rate_price?: EnhancedHotelRatePrice;
local_rate_price?: EnhancedHotelRatePrice;
}
Hotel Room Details
Represents detailed information about a specific room type including configuration, amenities, and enhanced rate information.
Sub Properties
type
: (Room Type) Room type classificationbed_types
: (Array<
Bed Type>
) Available bed configurationsmax_occupancy
: (number?
) Maximum number of guests allowednon_smoking
: (boolean?
) Whether the room is non-smokingamenities
: (Array<string>?
) Room-specific amenitiesimages
: (Array<
Hotel Image>?
) Images of the roomrates
: (Array<
Enhanced Hotel Rate Info>
) Available rates with enhanced pricing detailsexpireAt
: (string
) Room details expiration timestamppublic
: (Public ID) Public identifier for the room detailscreatedAt
: (string
) Creation timestampupdatedAt
: (string
) Last update timestamp
Type Definition
interface HotelRoomDetails {
type: RoomType;
bed_types: BedType[];
max_occupancy?: number;
non_smoking?: boolean;
amenities?: string[];
images?: HotelImage[];
rates: EnhancedHotelRateInfo[];
expireAt: string;
public: PublicID;
createdAt: string;
updatedAt: string;
}
Hotel Booking Room Details
Represents detailed information about a booked room including rate information (extends Hotel Room Details).
Sub Properties
Inherits from Hotel Room Details:
type
: (Room Type) Room type classificationbed_types
: (Array<
Bed Type>
) Available bed configurationsmax_occupancy
: (number?
) Maximum number of guests allowednon_smoking
: (boolean?
) Whether the room is non-smokingamenities
: (Array<string>?
) Room-specific amenitiesimages
: (Array<
Hotel Image>?
) Images of the roomexpireAt
: (string
) Room details expiration timestamppublic
: (Public ID) Public identifier for the room detailscreatedAt
: (string
) Creation timestampupdatedAt
: (string
) Last update timestamp
Modified properties:
rate
: (Enhanced Hotel Rate Info) Single booked rate details for this room (instead of rates array)
Type Definition
interface HotelBookingRoomDetails extends Omit<HotelRoomDetails, 'rates'> {
rate: EnhancedHotelRateInfo;
}
Hotel Order Hotel
Represents complete hotel information in booking context (extends Hotel Information Preview).
Sub Properties
Inherits from Hotel Information Preview:
hotel_information
: (Hotel Information Preview) Detailed hotel property information
Additional properties:
check_in_information
: (Hotel Check-In Information) Check-in and check-out detailshotel_amenities
: (Array<string>
) List of hotel amenities and facilitiesdescriptions
: (Array<
Hotel Description>
) Detailed hotel descriptions and informationpolicies
: (Array<
Hotel Description>
) Hotel policies and termsfees
: (Array<
Hotel Description>?
) Additional fees and charges information
Type Definition
interface HotelOrderHotel {
hotel_information: HotelInformationPreview;
check_in_information: HotelCheckInInformation;
hotel_amenities: string[];
descriptions: HotelDescription[];
policies: HotelDescription[];
fees?: HotelDescription[];
}
Booking Reference
Represents booking reference codes from various systems.
Sub Properties
source
: (string
) Source system or provider of the referencecode
: (string
) Reference code or confirmation number
Type Definition
interface BookingReference {
source: string;
code: string;
}
Example
{
"source": "SABRE",
"code": "HTL123ABC"
}
Hotel Information Minimal
Represents minimal hotel information for efficient listing purposes.
Sub Properties
hotel_name
: (string?
) Name of the hotel propertymaster_chain_name
: (string?
) Master chain namemaster_chain_code
: (string?
) Master chain codehero
: (Hotel Image?
) Hotel hero image
Type Definition
interface HotelInformationMinimal {
hotel_name?: string;
master_chain_name?: string;
master_chain_code?: string;
hero?: HotelImage;
}
Example
{
"hotel_name": "Fairmont Hotel Vancouver",
"master_chain_name": "Fairmont Hotels & Resorts",
"master_chain_code": "FM",
"hero": {
"src": "https://example.com/fairmont-hero.jpg",
"alt": "Fairmont Hotel Vancouver - Hero Image"
}
}
Hotel Order Hotel Minimal
Represents minimal hotel information for listing purposes.
Sub Properties
hotel_information
: (Hotel Information Minimal) Minimal hotel property information
Type Definition
interface HotelOrderHotelMinimal {
hotel_information: HotelInformationMinimal;
}
Example
{
"hotel_information": {
"hotel_name": "Fairmont Hotel Vancouver",
"master_chain_name": "Fairmont Hotels & Resorts",
"master_chain_code": "FM",
"hero": {
"src": "https://example.com/fairmont-hero.jpg",
"alt": "Fairmont Hotel Vancouver - Hero Image"
}
}
}
Hotel Rate Price Minimal
Represents minimal pricing information for efficient listing.
Sub Properties
average_nightly_rate
: (string
) Average nightly rate including taxesaverage_nightly_rate_before_tax
: (string
) Average nightly rate before taxesamount_after_tax
: (string
) Total amount for the stay including taxesamount_before_tax
: (string
) Total amount for the stay before taxescurrency
: (string
) Currency code for all amounts
Type Definition
interface HotelRatePriceMinimal {
average_nightly_rate: string;
average_nightly_rate_before_tax: string;
amount_after_tax: string;
amount_before_tax: string;
currency: string;
}
Example
{
"average_nightly_rate": "143.05",
"average_nightly_rate_before_tax": "128.75",
"amount_after_tax": "572.20",
"amount_before_tax": "515.00",
"currency": "CAD"
}
Hotel Booking Rate Details Minimal
Represents minimal rate details for listing purposes.
Sub Properties
rate_price
: (Hotel Rate Price Minimal?
) Pricing information in client currencylocal_rate_price
: (Hotel Rate Price Minimal?
) Pricing information in local currencypublic
: (Public ID) Public identifier for the rate
Type Definition
interface HotelBookingRateDetailsMinimal {
rate_price?: HotelRatePriceMinimal;
local_rate_price?: HotelRatePriceMinimal;
public: PublicID;
}
Example
{
"rate_price": {
"average_nightly_rate": "143.05",
"average_nightly_rate_before_tax": "128.75",
"amount_after_tax": "572.20",
"amount_before_tax": "515.00",
"currency": "CAD"
},
"local_rate_price": null,
"public": "bd28b356-8602-4e91-a653-e60da9027dc7"
}
Hotel Booking Room Details Minimal
Represents minimal room details for efficient listing purposes.
Sub Properties
type
: (Room Type) Room type classificationbed_types
: (Array<
Bed Type>
) Available bed configurationsmax_occupancy
: (number?
) Maximum number of guests allowedrate
: (Hotel Booking Rate Details Minimal) Minimal rate details for this roompublic
: (Public ID) Public identifier for the room details
Type Definition
interface HotelBookingRoomDetailsMinimal {
type: RoomType;
bed_types: BedType[];
max_occupancy?: number;
rate: HotelBookingRateDetailsMinimal;
public: PublicID;
}
Example
{
"type": {
"name": "Deluxe King Room",
"code": "DLX_KING"
},
"bed_types": [
{
"type": "King",
"count": 1
}
],
"max_occupancy": 2,
"rate": {
"rate_price": {
"average_nightly_rate": "143.05",
"average_nightly_rate_before_tax": "128.75",
"amount_after_tax": "572.20",
"amount_before_tax": "515.00",
"currency": "CAD"
},
"local_rate_price": null,
"public": "c6f74438-6b63-4485-8fa1-3f9f0e970792"
},
"public": "bd28b356-8602-4e91-a653-e60da9027dc7"
}
Refund Type
Represents the type of refund policy for hotel cancellations.
Possible Values
REFUND_OR_RETAIN
: Partial refund with some amounts retainedFORFEIT
: No refund available (full forfeiture)RESERVATION
: No charges have been made, so no refund applicableUNKNOWN
: Refund policy cannot be determined
Type Definition
type RefundType = "REFUND_OR_RETAIN" | "FORFEIT" | "RESERVATION" | "UNKNOWN";
Refund Item Type
Represents whether a refund amount is returned to the customer or retained by the vendor.
Possible Values
REFUND
: Amount refunded to the original payment methodRETAIN
: Amount retained as credit or voucher for future use
Type Definition
type RefundItemType = "REFUND" | "RETAIN";
Refund Item
Represents an individual refund or retention item in the cancellation breakdown.
Sub Properties
type
: (Refund Item Type) Whether the amount is refunded or retainedamount
: (number
) Refund or retention amountcurrency
: (string
) Currency code for the amountexpiration
: (string?
) Expiration date for retained credits
Type Definition
interface RefundItem {
type: RefundItemType;
amount: number;
currency: string;
expiration?: string;
}
Example
{
"type": "REFUND",
"amount": 450.00,
"currency": "CAD",
"expiration": null
}
Hotel Cancel Refund
Represents complete refund information for a hotel cancellation.
Sub Properties
type
: (Refund Type) Overall refund policy typeitems
: (Array<
Refund Item>
) Detailed breakdown of refund itemsvendor
: (string?
) Vendor handling the refund
Type Definition
interface HotelCancelRefund {
type: RefundType;
items: RefundItem[];
vendor?: string;
}
Hotel Check Cancel Response
Represents the response from checking hotel cancellation eligibility.
Sub Properties
locator
: (string
) Booking locator or confirmation numberrefund
: (Hotel Cancel Refund) Detailed refund information for the cancellation check
Type Definition
interface HotelCheckCancelResponse {
locator: string;
refund: HotelCancelRefund;
}
Hotel Cancel Response
Represents the response from performing an actual hotel booking cancellation.
Sub Properties
success
: (boolean
) Whether the cancellation was successfullocator
: (string
) Booking locator or confirmation numberrefund
: (Hotel Cancel Refund) Detailed refund information for the completed cancellation
Type Definition
interface HotelCancelResponse {
success: boolean;
locator: string;
refund: HotelCancelRefund;
}