Skip to main content

One Step Quote

One step quote operation evaluates the rate before booking, checking if the option is still available and including up-to-date pricing and cancellation policies. The returned fields include:

  • status
  • price
  • cancelPolicy
  • rooms
  • surcharges

Mutation Overview

When creating your one step quote query, you have three different inputs to fill based on your specific needs:

  1. Criteria
  2. Settings
  3. Filter
query {
hotelX {
oneStepQuote
input: {}
settings: {}
filter: {}
}
}
Remember
It's important to note that even if certain fields in the "criteria" or "settings" inputs are labeled as optional, we still need to use some value internally. This value will either come from your query/mutation request or your default settings. You have the ability to manage your default API settings by visiting the API Settings section on our website.

1. Input

This query offers versatility in quote options, with certain fields marked as mandatory and others as optional.

To specify your one step quote criteria you need to use the input HotelOneStepQuoteInput in your query variables. Make sure the values sent in the OneStepQuote input match exactly the information received in the offer option you are trying to quote. This includes fields such as rateRulesExtended, binding, and others.

Important

Any mismatch between the data sent in this request and the details provided by Channel-X (e.g., promotion codes, rate types, refundability, etc.) may result in errors or unsuccessful quotes.

{
"input": {
"language": "es",
"market": "ES",
"nationality": "ES",
"checkIn": "2024-10-28",
"checkOut": "2024-10-29",
"hotel": "1",
"board": "1",
"price": {
"currency": "EUR",
"binding": false,
"net": 450.6,
"gross": 460.6
},
"ratePlan": "BAR",
"rooms": [
{
"occupancyRefId": 1,
"code": "2269",
"paxes": []
}
],
"rateRulesExtended": [
{
"type": "PACKAGE"
},
{
"type": "NON_REFUNDABLE"
}
],
"occupancies": [
{
"paxes": [
{
"age": 30
},
{
"age": 30
}
]
}
],
"cancelPolicy": {
"refundable": false,
"cancelPenalties": []
}
}
}

Mandatory criteria:

  • checkIn
  • checkOut
  • hotel
  • board
  • occupancies
  • rooms
  • cancelPolicy
  • price: Note that there is a difference on the use of the binding field (inside price node) in the request.
    • In OneStepBook:
      The binding field is a boolean indicating whether the product must be sold at the specified price or above.

    • In Channel-X:
      The equivalent field is YieldableIndicator, which has an opposite logic:

      • YieldableIndicator = true (or not present): the product can be sold below the price.
      • YieldableIndicator = false: the product cannot be sold below the price (binding = true).

Optional criteria:

  • language
  • nationality
  • market
  • ratePlan
  • surcharges
  • supplements
  • rateRulesExtended: Make sure to correctly translate the Channel-X values before sending them in the RateRulesExtended input to avoid errors or mismatches.
Channel-X/CodeChannel-X/PromotionCodeChannel-X/RatePlanTypeChannel-X/NonRefundableOneStepBook/RateRulesType
0No promotion
25Senior 55OLDER55
26Senior 60OLDER60
27Senior 65OLDER65
0No selected
7Large FamilyLARGE_FAMILY
8Public ServantPUBLIC_SERVANT
10NegotiatedNEGOTIATED
11PackagePACKAGE
34Canary ResidentCANARY_RESIDENT
35Balearic ResidentBALEARIC_RESIDENT
36HoneymoonHONEYMOON
TRUENON_REFUNDABLE

2. Settings

Settings are the common configurations used to construct requests to the supplier/s. By default, we apply the same configuration to all Hotel-X clients.

To specify your quote settings you need to use the input HotelSettingsInput in your query variables:

{
"settings": {
"client": "client_demo",
"context": "HOTELTEST",
"testMode": true,
"timeout": 180000
}
}

Mandatory Settings:

  • client
  • context (You have the flexibility to choose between using the supplier's context or your own, depending on which codes you want to see in the response. If you prefer to receive responses with your custom codes, please ensure that your context code is linked to the mapping files that you've previously uploaded to your FTP account.)
  • timeout (Timeout in milliseconds for supplier connections. Applied to all suppliers; won't close client connection if exceeded.)
Key Recommendations
  • Customize the timeout according to your needs, taking into consideration the maximum values in One Step Quote is 180,000ms.

  • Set the audiTransaction to "true" in One Step Quote when investigating errors.

3. Filter

Filter allow you to precisely tailor the response according to your preferences.

To specify your filters you need to use the input HotelFilterInput in your query variables. The available filters inside this input are:

  • access (mandatory): Specify the supplier access you want to use to quote the option.
  • excludeComparisonFields (optional): If there are specific rate characteristics you prefer not to use internally for finding the option, indicate them here. For example, you may not want us to specifically check for a non-refundable option. You may want us to quote an option with the same other characteristics (hotel, rate, board), and whether the option is refundable or not doesn't matter to you.
{
"filter" : {
"access" : "2",
"excludeComparisonFields" : [
"CANCEL_POLICY"
]
}
}

Response Considerations

As mentioned earlier, the quote response will provide you with updated information about the option found with the criteria indicated in the input. In this one step quote response, there are some essential details that you should carefully review and consider when providing information to your final customers:

  • Cancellation Policies: Within the cancelPolicy structure response, you will find a refundable field. If this field is marked as "false," it means that the room has a 100% cancellation cost, making it non-refundable.

  • Remarks: Pay attention to any remarks or additional notes provided in the response.

  • Taxes: Ensure you are aware of any applicable taxes associated with the selected option.

The next step is to confirm the booking using the standard book mutation in the Hotel-X API, utilizing the optionRefId obtained from the results.

Frequently Asked Questions

Are there any limitations on the number of Hotel-X One Step Quote requests allowed per minute?
Not from Travelgate side, we don't have any limitations on the RPM ("Requests for Minute") in any of our methods. However, some Sellers may have some limitations so we suggest you contact directly with them in order to discuss this information.
Do options get blocked in Hotel-X Quote Query?
Some Sellers may block the options when performing a Quote Query so we strongly recommend to contact them directly regarding this topic in order to prevent future issues.
Is there any possibility to obtain RoomCodes in Quote?
If the Seller provides this information, you can obtain the room code by including the rooms node in the HotelOptionQuote node.
What should I do if I receive a status RQ in Quote response?
You may receive a status On Request (status RQ) in Quote response in those cases the availability of the option previously selected is pending to be confirmed by the Seller. If you receive status RQ in Quote response, you should run a new Search request and restart the Booking Flow.

Query Inputs

HotelSettingsInput (INPUT_OBJECT)
Settings are the common configurations used to construct requests to the supplier/s. By default, we apply the same configuration to all Hotel-X clients in our back system.

context(String)

Indicates the context of the I/O codes (hotel, board, room and rates)

client(ID)

Client name set in TGX, present only if the authorization header is of the JWT type. It is used to modify the user initially set in the preload.

timeout(Int)

Specifies the time limit, in milliseconds, for connecting with suppliers. If multiple suppliers are involved, this timeout applies to all of them. If a supplier exceeds this time limit, the connection to that supplier will be cut. However, Travelgate will keep the connection with the client even if this timeout is exceeded. If not set, the value saved in your Hotel-X API default settings will be used.

operationTimeout(Int)

Defines the maximum time, in milliseconds, before an operation is cancelled by our system. Once this time is reached, the operation will be aborted and an error will be returned. This timeout is for the Hotel-X layer and should be set to a higher value than the timeout for suppliers. For example, you could specify timeout as 20000ms and operationTimeout as 22000ms. This means that we will send a timeout of 20000ms to the suppliers and will close the connection at 22000ms if the operationTimeout is exceeded. Optional. @deprecated(reason: "deprecated from 2024-11-11.")

auditTransactions(Boolean)

Returns all the transactions exchanged with the supplier.

businessRules(BusinessRulesInput)

Business rules

optionsQuota(Int)

The maximum number of options returned per board in the search query. If not set, the value saved in your Hotel-X API default settings will be used.

businessRulesType(BusinessRulesType)

Different business rules to filter the returned options. Possible values:

  • CHEAPER_AMOUNT: The cheapest options is returned without exceeding the optionsQuota limit.
  • ROOM_TYPE: Groups the option by room type without exceeding the optionsQuota limit.
suppliers(HotelXSupplierInput)

Array of suppliers. Each one contains its own code, settings and accesses.

settings(SettingsBaseInput)

You can configure an special settings for any supplier. This level overwrites the avail settings level but not the access settings level.

timeout(Int)

Milliseconds before the connection is closed.

auditTransactions(Boolean)

Specifies if the exachanged transactions with the supplier have to be logged or not.

businessRules(BusinessRulesInput)

Business rules

optionsQuota(Int)

The maximum number of options returned per board in the search query. If not set, the value saved in your Hotel-X API default settings will be used.

businessRulesType(BusinessRulesType)

Different business rules to filter the returned options. Possible values:

  • CHEAPER_AMOUNT: The cheapest options is returned without exceeding the optionsQuota limit.
  • ROOM_TYPE: Groups the option by room type without exceeding the optionsQuota limit.
currency(Currency)

Currency in ISO 4217 standard

commitRequired(Boolean)

Indicates if the book will be confirmed in 1 or 2 steps

code  *  (String)

Code that represents a supplier in our system. This information is mandatory.

accesses(HotelXAccessInput)

Array of accesses that can overwrite an existing access information or include a new access for this avail.

accessId  *  (ID)

The accessID used to identify the existing access in our Back Office in order to overwrite it. Acts as an identifier in this search. It can either exist or not.

configuration(ConfigurationInput)

Information required to access the supplier s system.

username(String)

User name for the connection.

password(String)

Password for the connection

urls  *  (UrlsInput)

URL or endpoint for the connection.

search(URI)

Specific URL for Availability method.

quote(URI)

Specific URL for Reservation method.

book(URI)

Specific URL for Valuation method.

generic(URI)

Supplier URL used for multiple methods.

parameters(ParameterInput)

List of parameters with additional required information.

key  *  (String)

Contains the keyword/Id to identify a parameter. This information is mandatory.

value  *  (String)

Contains the parameter values. This information is mandatory.

markets(String)

Source Markets allowed for the Access (use ISO3166_1_alfa_2).

rateRules(RateRulesType)

RateRules allowed for the access. Possible values:

  • NORMAL: NORMAL Used in the RateRulesFilterInput input for the search query to filter and retrieve only options without rate rules.
  • PACKAGE: The product can't be sold separately from another product attached to it, such as a flight.
  • OLDER55: OLDER55 can only be sold to people who are 55 and older.
  • OLDER60: OLDER60 can only be sold to people who are 60 and older.
  • OLDER65: OLDER65 can only be sold to people who are 65 and older.
  • CANARY_RESIDENT: CANARY_RESIDENT is applicable to Canary Islands residents only.
  • BALEARIC_RESIDENT: BALEARIC_RESIDENT is applicable to Balearic Islands residents only.
  • LARGE_FAMILY: LARGE_FAMILY is applicable to large families and is determined by each supplier.
  • HONEYMOON: HONEYMOON is applicable to those who just got married and is determined by each supplier.
  • PUBLIC_SERVANT: PUBLIC_SERVANT is applicable to public servants only.
  • UNEMPLOYED: UNEMPLOYED applies to individuals who are without work.
  • NON_REFUNDABLE: NON_REFUNDABLE is applicable to non refundable options.
  • MOBILE: MOBILE are special rates confirmed by mobile phone.
  • WARRANTY: WARRANTY is applicable to options with cancellation warranty.
  • ESSENTIAL_WORKER: ESSENTIAL_WORKER are special hotel rates for essential workers.
  • NEGOTIATED: NEGOTIATED are special rates offered only to specific buyers.
  • CUSTOM: CUSTOM defines other rates.
settings(SettingsBaseInput)

You can configure an special settings for any access. This level overwrites the search and supplier settings levels.

timeout(Int)

Milliseconds before the connection is closed.

auditTransactions(Boolean)

Specifies if the exachanged transactions with the supplier have to be logged or not.

businessRules(BusinessRulesInput)

Business rules

optionsQuota(Int)

The maximum number of options returned per board in the search query. If not set, the value saved in your Hotel-X API default settings will be used.

businessRulesType(BusinessRulesType)

Different business rules to filter the returned options. Possible values:

  • CHEAPER_AMOUNT: The cheapest options is returned without exceeding the optionsQuota limit.
  • ROOM_TYPE: Groups the option by room type without exceeding the optionsQuota limit.
currency(Currency)

Currency in ISO 4217 standard

commitRequired(Boolean)

Indicates if the book will be confirmed in 1 or 2 steps

plugins(PluginStepInput)

Array of plugins to execute.

step(PluginStepType)

Indicates where the plugin will be executed. @deprecated(reason: "deprecated from 2025-08-25. This property is no longer recommended for use.") Possible values:

  • REQUEST: Plugins executed after the Buyer requests a message to Hotel-X
  • REQUEST_ACCESS: Plugins executed before sending a request to the supplier using access, and after the Accesses have been calculated
  • RESPONSE_OPTION: Plugins executed after the supplier responds a message, applied to every option they return
  • RESPONSE_ACCESS: Plugins executed after all access options have been responded to
  • RESPONSE: Plugins executed before Hotel-X responds the message to the Buyer
pluginsType(PluginsInput)

Indicates the plugin that will be executed.

type(PluginType)

Type of the plugin to execute. @deprecated(reason: "deprecated from 2025-08-25. This property is no longer recommended for use.") Possible values:

  • PRE_STEP: PRE_STEP is the first plugin that will be executed, allowing a full range of operations: splitting arrays, joining arrays, modifying object values, and adding or removing object instances
  • HOTEL_MAP: HOTEL_MAP allows to match Seller and Buyer hotel codes based on contexts
  • BOARD_MAP: BOARD_MAP allows to match Seller and Buyer board codes based on contexts
  • ROOM_MAP: ROOM_MAP allows to match Seller and Buyer room codes based on contexts
  • CURRENCY_CONVERSION: CURRENCY_CONVERSION allows to apply currency conversion over all the prices in one Option
  • MARKUP: MARKUP allows the application of markup over the price
  • AGGREGATION: AGGREGATION allows aggregating multiple supplier options.
  • POST_STEP: POST_STEP is the last plugin that will be executed, allowing a full range of operations: split arrays, join arrays, modify object values, add or remove object instances
  • COMMISSION: COMMISSION plugin allows the user to calculate the commission
  • MARKETS_GROUP: MARKETS_GROUP plugin allows the user to group search result by markets (SO3166_1_alfa_2) with shared options
  • AMENITY_MAP: AMENITY_MAP allows to match Seller and Buyer amenities codes based on contexts
  • PROMOTION_MAP: PROMOTION_MAP allows to match Seller and Buyer promotion codes based on contexts

name  *  (String)

Name of the plugin to execute

enable(Boolean)

Activates or deactivates the plugin behaviour

parameters(ParameterInput)

Parameters of the plugin

key  *  (String)

Contains the keyword/Id to identify a parameter. This information is mandatory.

value  *  (String)

Contains the parameter values. This information is mandatory.

testMode(Boolean)

This flag is only allowed to be used for the access checked as 'TEST.' By default, it is set to 'LIVE.'

clientTokens(String)

Used to identify the origin of the request. This is solely used in plugins.

commitRequired(Boolean)

Indicates if the book will be confirmed in 1 or 2 steps. It only should be used in Book.

HotelOneStepQuoteInput (INPUT_OBJECT)

checkIn  *  (Date)

Check-in date. Format: YYYY-MM-DD

checkOut  *  (Date)

Check-out date. Format: YYYY-MM-DD

hotel  *  (String)

Hotel code.

occupancies  *  (RoomInput)

For multi-room bookings, this array will contain multiple elements (rooms). For each room you have to specify its own occupancy.

paxes  *  (PaxInput)

Array of paxes ages. The number of items in the array will indicate the pax occupancy.

age  *  (Int)

Age of the pax on the check-in day.

rooms(OneStepBookRoomInput)

Rooms within the option to quote.

occupancyRefId(Int)

code  *  (String)

promotions(PromotionInput)

code  *  (String)

name(String)
supplierCode(String)
start(String)
end(String)

paxes  *  (BookPaxInput)

name  *  (String)

Passenger first name

surname  *  (String)

Passenger last name

age  *  (Int)

Passenger age on the day of the check-in

title(PersonalTitleType)

Passenger title. Possible values:

  • MR: To refer to a man. Is not possible know if it is married or single.
  • MRS: To refer to a married woman
  • MISS: To refer to a single woman
  • MS: To refer to a woman. Is not possible know if it is married or single.
  • NOT_SPECIFIED: Deprecated 2025-08-08. PersonalTitleType is optional in inputs and outputs.
birthDate(Date)

Passenger birth date.

idDocuments(IDDocumentInput)

Passenger ID documents.

type  *  (DocumentType)

Document type. Possible values:

  • DNI
  • NIE
  • PASSPORT
  • DRIVER_LICENSE
  • CPF
  • PAN
  • SSN
  • OTHER
number(String)

Document number.

issuer(String)

Document issuer.

issueDate(Date)

Document issue date.

expiryDate(Date)

Document expiry date.

nationality(String)

Document nationality.

otherTypeDescription(String)

Document type other description.

board(String)

Supplier's board code.

language(String)

Language to be used in request.

ratePlan(String)

Supplier's rate plan code.

rateRulesExtended(HotelOptionRateRuleInput)

RateRules contains all the rules that the option booked must have.

type  *  (RateRulesType)

Rate rule type Possible values:

  • NORMAL: NORMAL Used in the RateRulesFilterInput input for the search query to filter and retrieve only options without rate rules.
  • PACKAGE: The product can't be sold separately from another product attached to it, such as a flight.
  • OLDER55: OLDER55 can only be sold to people who are 55 and older.
  • OLDER60: OLDER60 can only be sold to people who are 60 and older.
  • OLDER65: OLDER65 can only be sold to people who are 65 and older.
  • CANARY_RESIDENT: CANARY_RESIDENT is applicable to Canary Islands residents only.
  • BALEARIC_RESIDENT: BALEARIC_RESIDENT is applicable to Balearic Islands residents only.
  • LARGE_FAMILY: LARGE_FAMILY is applicable to large families and is determined by each supplier.
  • HONEYMOON: HONEYMOON is applicable to those who just got married and is determined by each supplier.
  • PUBLIC_SERVANT: PUBLIC_SERVANT is applicable to public servants only.
  • UNEMPLOYED: UNEMPLOYED applies to individuals who are without work.
  • NON_REFUNDABLE: NON_REFUNDABLE is applicable to non refundable options.
  • MOBILE: MOBILE are special rates confirmed by mobile phone.
  • WARRANTY: WARRANTY is applicable to options with cancellation warranty.
  • ESSENTIAL_WORKER: ESSENTIAL_WORKER are special hotel rates for essential workers.
  • NEGOTIATED: NEGOTIATED are special rates offered only to specific buyers.
  • CUSTOM: CUSTOM defines other rates.
rates(HotelOptionRateInput)

Rates applied to the option

code(String)
supplierCode(String)
description(String)
restrictions(HotelOptionRateRestrictionInput)

type  *  (HotelOptionRateRestrictionType)

Possible values:
  • COMPANY
  • MARKET
  • OTHERS

code  *  (String)

description(String)

price  *  (PriceInput)

Specifies the prices (Gross and Net) that the option booked must have.

currency  *  (Currency)

Currency code indicating which currency should be paid. This information is mandatory.

binding  *  (Boolean)

It indicates if the price indicated in the gross must be respected. That is, the customer can not sell the room / option at a price lower than that established by the supplier. This information is mandatory.

net  *  (Float)

Indicates the net price that the customer must pay to the supplier. This information is mandatory.

gross  *  (Float)

Indicates the retail price that the supplier sells to the customer.

minimumSellingPrice(Float)

Indicates the minimum selling price it can be sold (determined by the seller).

surcharges(SurchargeInput)

List of surcharges that the option booked must have.

code  *  (String)

Indicates the surcharge code.

chargeType  *  (ChargeType)

Indicates the charge types. We need to know whether the supplements have to be paid when the consumer gets to the hotel or beforehand. Possible charge types: Include or Exclude. When include: this surcharge is mandatory and included in the option's price. When exclude: this surcharge is not included in the option's price. Possible values:

  • INCLUDE: The charge is included.
  • EXCLUDE: The charge is excluded.

mandatory  *  (Boolean)

Indicates if the surcharge is mandatory or not. If mandatory, this surcharge will be applied to this option. If the chargeType is excluded the customer will have to pay it directly at the hotel

price  *  (PriceInput)

Indicates the surcharge price.

currency  *  (Currency)

Currency code indicating which currency should be paid. This information is mandatory.

binding  *  (Boolean)

It indicates if the price indicated in the gross must be respected. That is, the customer can not sell the room / option at a price lower than that established by the supplier. This information is mandatory.

net  *  (Float)

Indicates the net price that the customer must pay to the supplier. This information is mandatory.

gross  *  (Float)

Indicates the retail price that the supplier sells to the customer.

minimumSellingPrice(Float)

Indicates the minimum selling price it can be sold (determined by the seller).

description(String)

Specifies the surcharge description.

supplements(SupplementInput)

List of supplements that the option booked must have.

code  *  (String)

Specifies the supplement code.

name(String)

Specifies the supplement name.

description(String)

Specifies the supplement description.

supplementType  *  (SupplementType)

Indicates the supplement type. Possible types: Fee, Ski_pass, Lessons, Meals, Equipment, Ticket, Transfers, Gla, Activity or Null. Possible values:

  • SKI_PASS: A ticket or pass authorizing the holder to ski in a certain place or resort.
  • LESSONS: Lessons of any type that the costumer can take.
  • MEALS: Supplement of a determined meal plan.
  • EQUIPMENT: Extra equipment for a specific purpose.
  • TICKET: Admission to some service.
  • TRANSFERS: Transfers used by the costumer.
  • GALA: Gala: A festive occasion, celebration or special entertainment.
  • ACTIVITY: Activities that the costumer can do.
  • OTHER: Other type of supplement.

chargeType  *  (ChargeType)

Indicates the charge types. We need to know whether the supplements have to be paid when the consumer gets to the hotel or beforehand. Possible charge types: Include or Exclude. When include: this supplement is mandatory and included in the option's price. When exclude: this supplement is not included in the option's price. Possible values:

  • INCLUDE: The charge is included.
  • EXCLUDE: The charge is excluded.

mandatory  *  (Boolean)

Indicates if the supplement is mandatory or not. If mandatory, this supplement will be applied to this option. If the chargeType is excluded the customer will have to pay it directly at the hotel.

durationType(DurationType)

Specifies the duration type. Possible duration types: Range (specified dates) or Open. This field is mandatory for PDI. Possible values:

  • RANGE: Date range is set.
  • OPEN: Not restricted by date.
quantity(Int)

Indicates the quantity of field in the element "unit".

unit(UnitTimeType)

Indicates the unit type. Possible unit types: Day or Hour. Possible values:

  • DAY: Day
  • HOUR: Hour
start(String)

Indicates the effective date of the supplement. Format: YYYY-MM-DD

end(String)

Indicates the expire date of the supplement. Format: YYYY-MM-DD

resort(ResortInput)

Contains information about the resort

code(String)
name(String)
description(String)
price(PriceInput)

Indicates the supplement price.

currency  *  (Currency)

Currency code indicating which currency should be paid. This information is mandatory.

binding  *  (Boolean)

It indicates if the price indicated in the gross must be respected. That is, the customer can not sell the room / option at a price lower than that established by the supplier. This information is mandatory.

net  *  (Float)

Indicates the net price that the customer must pay to the supplier. This information is mandatory.

gross  *  (Float)

Indicates the retail price that the supplier sells to the customer.

minimumSellingPrice(Float)

Indicates the minimum selling price it can be sold (determined by the seller).

nationality(String)

Nationality of the guest (use ISO3166_1_alfa_2).

cancelPolicy(CancelPolicyInput)

Specifies the cancel policies that the option booked must have.

refundable  *  (Boolean)

cancelPenalties(CancelPenaltyInput)
deadline(String)

penaltyType  *  (CancelPenaltyType)

Possible values:
  • NIGHTS: Indicates the number of nights to be penalized.
  • PERCENT: Indicates the percentage to pay based on the option price.
  • IMPORT: Indicates the exact amount payable.

currency  *  (Currency)

value  *  (Float)

market(String)

Targeted zone, country or point-of-sale to be used in request.

HotelFilterInput (INPUT_OBJECT)

access  *  (ID)

excludeComparisonFields(ComparisonField)

Input type to specify fields that must be excluded in order to find the option. If the list is empty, all input fields will be used to find the option with same conditions. Possible values:

  • BOARD
  • CANCEL_POLICY
  • RATE_PLAN
  • RATE_RULES_EXTENDED
  • SURCHARGES
  • SUPPLEMENTS

Returned Fields

HotelOneStepQuote (OBJECT)

optionQuote(HotelOptionQuote)

optionRefId  *  (String)

It is an unique identifier for the option created by HotelX system. The ID is used to make the quote query, so it is important not to modify it by any reason.

supplierCode  *  (String)

Indicates the supplier code of the selected option.

accessCode  *  (String)

Indicates the access code of the selected option.

status  *  (StatusType)

The possible values in the response's status are Available (OK) or On Request (RQ). Possible values:

  • OK: The status of the avail is available
  • RQ: The status of the avail is On request

price  *  (Price)

Specifies the prices (Gross and Net) of the returned option.

currency  *  (Currency)

Currency code indicating which currency should be paid.

binding  *  (Boolean)

It indicates whether the gross price must be honored, meaning the customer cannot sell the room/option at a price lower than the supplier's established rate.

net  *  (Float)

It indicates the net price that the customer must pay to the supplier. The net price is calculated by substrating the included surcharges from the gross price. (For calculation purposes only)

gross  *  (Float)

Indicates the retail price that the supplier sells to the customer.

exchange  *  (Exchange)

Provides currency information and the applicable rate for the results returned by the Supplier

currency  *  (Currency)

Provide information about the currency of origin

rate  *  (Float)

Provides information about the rate applied over results

markups(Markup)

Informs markup applied over supplier price.

channel(String)

channel of markup application.

currency  *  (Currency)

Currency code indicating which currency should be paid. This information is mandatory.

binding  *  (Boolean)

It indicates if the price indicated in the gross must be respected. In case minimumSellingPrice is not empty, the binding indicates instead that the minimumSellingPrice must be respected. That is, the customer can not sell the room / option at a price lower than that established by the supplier. This information is mandatory.

net  *  (Float)

Indicates the net price that the customer must pay to the supplier plus the markup. This information is mandatory.

gross(Float)

Indicates the retail price that the supplier sells to the customer plus the markup.

exchange  *  (Exchange)

Informs about the currency of origin, and the rate applied over result. This information is mandatory.

currency  *  (Currency)

Provide information about the currency of origin

rate  *  (Float)

Provides information about the rate applied over results

rules  *  (Rule)

Breakdown of the applied rules for a markup

id  *  (String)

rule identifier

name(String)

rule name

type  *  (MarkupRuleType)

type of the value Possible values:

  • PERCENT: Indicates the percentage applied by a rule.
  • IMPORT: Indicates the exact amount applied by a rule.

value  *  (Float)

value applied by this rule

minimumSellingPrice(Float)

Indicates the minimum selling price it can be sold (determined by the Seller). Is is specified (not null), that field takes preference to Gross and Binding.

searchPrice(PriceChange)

Specifies the price of the previous Search option, returned only if it has changed. If not, this field will be returned as Null.

currency  *  (String)

The currency of previous option.

net  *  (Float)

The net value of previous option.

gross  *  (Float)

The gross value of previous option.

binding  *  (Boolean)

Indicates if previous option price was binding or not

cancelPolicy  *  (CancelPolicy)

Specifies cancel policies of the returned option.

refundable  *  (Boolean)

Indicates if the option is refundable or non-refundable

cancelPenalties(CancelPenalty)

List of cancellation penalties

deadline(DateTime)

Cancellation fees will be applicable between this date and check-in date

isCalculatedDeadline  *  (Boolean)

Specifies if the deadline has been taken from the seller’s response (false) or has been calculated by Travelgate (true)

penaltyType  *  (CancelPenaltyType)

Type of penalty; this can be Nights, Percent or Import Possible values:

  • NIGHTS: Indicates the number of nights to be penalized.
  • PERCENT: Indicates the percentage to pay based on the option price.
  • IMPORT: Indicates the exact amount payable.

currency  *  (Currency)

Currency used in the cancellation policy

value  *  (Float)

Value of the cancellation policy

description(String)

Extra details and information about supplier's cancel policies to give a further insight. This information is not supported for all the suppliers.

remarks(String)

Additional information about the option.

surcharges(Surcharge)

List of surcharges of the returned option.

code(String)

Indicates the surcharge code

chargeType  *  (ChargeType)

Indicates the charge type. We need to know whether the supplements have to be paid when the consumer gets to the hotel or beforehand. Possible charge types: INCLUDE or EXCLUDE. when INCLUDE : this surcharge is mandatory and included in the option s price when EXCLUDE : this surcharge is not included in the option s price Possible values:

  • INCLUDE: The charge is included.
  • EXCLUDE: The charge is excluded.

mandatory  *  (Boolean)

Indicates if the surcharge is mandatory or not. If mandatory, this surcharge will be applied to this option. If the chargeType is EXCLUDE the customer will have to pay it directly at the hotel.

price  *  (Price)

Indicates the surcharge price.

currency  *  (Currency)

Currency code indicating which currency should be paid.

binding  *  (Boolean)

It indicates whether the gross price must be honored, meaning the customer cannot sell the room/option at a price lower than the supplier's established rate.

net  *  (Float)

It indicates the net price that the customer must pay to the supplier. The net price is calculated by substrating the included surcharges from the gross price. (For calculation purposes only)

gross  *  (Float)

Indicates the retail price that the supplier sells to the customer.

exchange  *  (Exchange)

Provides currency information and the applicable rate for the results returned by the Supplier

currency  *  (Currency)

Provide information about the currency of origin

rate  *  (Float)

Provides information about the rate applied over results

markups(Markup)

Informs markup applied over supplier price.

channel(String)

channel of markup application.

currency  *  (Currency)

Currency code indicating which currency should be paid. This information is mandatory.

binding  *  (Boolean)

It indicates if the price indicated in the gross must be respected. In case minimumSellingPrice is not empty, the binding indicates instead that the minimumSellingPrice must be respected. That is, the customer can not sell the room / option at a price lower than that established by the supplier. This information is mandatory.

net  *  (Float)

Indicates the net price that the customer must pay to the supplier plus the markup. This information is mandatory.

gross(Float)

Indicates the retail price that the supplier sells to the customer plus the markup.

exchange  *  (Exchange)

Informs about the currency of origin, and the rate applied over result. This information is mandatory.

currency  *  (Currency)

Provide information about the currency of origin

rate  *  (Float)

Provides information about the rate applied over results

rules  *  (Rule)

Breakdown of the applied rules for a markup

id  *  (String)

rule identifier

name(String)

rule name

type  *  (MarkupRuleType)

type of the value Possible values:

  • PERCENT: Indicates the percentage applied by a rule.
  • IMPORT: Indicates the exact amount applied by a rule.

value  *  (Float)

value applied by this rule

minimumSellingPrice(Float)

Indicates the minimum selling price it can be sold (determined by the Seller). Is is specified (not null), that field takes preference to Gross and Binding.

description(String)

Specifies the surcharge description.

cardTypes(PaymentCardType)

List of credit cards allowed for this option Possible values:

  • VI: Visa
  • AX: American Express
  • BC: BC Card
  • CA: MasterCard
  • CB: Carte Blanche
  • CU: China Union Pay
  • DS: Discover
  • DC: Diners Club
  • T: Carta Si
  • R: Carte Bleue
  • N: Dankort
  • L: Delta
  • E: Electron
  • JC: Japan Credit Bureau
  • TO: Maestro
  • S: Switch
  • EC: Electronic Cash
  • EU: EuroCard
  • TP: universal air travel card
  • OP: optima
  • ER: Air Canada/RnRoute
  • XS: access
  • O: others
addOns(AddOns)

Additional details provided by the different layers involved in the transaction.

distribution(AddOn)

Extra information from the Distribution layer.

key  *  (String)

Contains keyword/ID to identify the AddOn.

value  *  (JSON)

Contains AddOn values.

supplier(AddOn)

Extra information from the Supplier layer.

key  *  (String)

Contains keyword/ID to identify the AddOn.

value  *  (JSON)

Contains AddOn values.

rooms(RoomOptionQuote)

List of rooms of the selected option.

occupancyRefId  *  (ID)

ID reference to the occupancy.

legacyRoomId  *  (ID)

Identifies the legacy room ID.

code  *  (String)

Indicates the room code.

supplierCode  *  (String)

Supplier's room code.

description(String)

Description about the room. This field can be mapped.

descriptionSupplier(String)

Description about the room in supplier's context.

features(Feature)

Room features.

code  *  (String)

Feature code.

amenities(Amenity)

Room level amenities provide information about features intended to enhance comfort and enjoyment. Examples include swimming pools, shopping centers, etc.

code  *  (String)

Code

amenityCodeSupplier  *  (String)

Code in supplier context

type  *  (ApplicationAreaType)

Indicates the type of Amenity. Possible values:

  • HOTEL: Apply at the hotel.
  • ROOM: Apply in the hotel.
  • SERVICE: Applies to a service.
  • GENERAL: Applies in general.

value  *  (String)

Contains the value of amenity.

texts  *  (String)

Contains the descriptive of amenity.

roomPrice(RoomPrice)

Specifies the room price.

price  *  (Price)

Total price for all days.

currency  *  (Currency)

Currency code indicating which currency should be paid.

binding  *  (Boolean)

It indicates whether the gross price must be honored, meaning the customer cannot sell the room/option at a price lower than the supplier's established rate.

net  *  (Float)

It indicates the net price that the customer must pay to the supplier. The net price is calculated by substrating the included surcharges from the gross price. (For calculation purposes only)

gross  *  (Float)

Indicates the retail price that the supplier sells to the customer.

exchange  *  (Exchange)

Provides currency information and the applicable rate for the results returned by the Supplier

currency  *  (Currency)

Provide information about the currency of origin

rate  *  (Float)

Provides information about the rate applied over results

markups(Markup)

Informs markup applied over supplier price.

channel(String)

channel of markup application.

currency  *  (Currency)

Currency code indicating which currency should be paid. This information is mandatory.

binding  *  (Boolean)

It indicates if the price indicated in the gross must be respected. In case minimumSellingPrice is not empty, the binding indicates instead that the minimumSellingPrice must be respected. That is, the customer can not sell the room / option at a price lower than that established by the supplier. This information is mandatory.

net  *  (Float)

Indicates the net price that the customer must pay to the supplier plus the markup. This information is mandatory.

gross(Float)

Indicates the retail price that the supplier sells to the customer plus the markup.

exchange  *  (Exchange)

Informs about the currency of origin, and the rate applied over result. This information is mandatory.

currency  *  (Currency)

Provide information about the currency of origin

rate  *  (Float)

Provides information about the rate applied over results

rules  *  (Rule)

Breakdown of the applied rules for a markup

id  *  (String)

rule identifier

name(String)

rule name

type  *  (MarkupRuleType)

type of the value Possible values:

  • PERCENT: Indicates the percentage applied by a rule.
  • IMPORT: Indicates the exact amount applied by a rule.

value  *  (Float)

value applied by this rule

minimumSellingPrice(Float)

Indicates the minimum selling price it can be sold (determined by the Seller). Is is specified (not null), that field takes preference to Gross and Binding.

breakdown(PriceBreakdown)

Daily break downs price.

start  *  (Date)

Start date in which the price becomes effective. Format: YYYY-MM-DD

end  *  (Date)

Expire date of price. Format: YYYY-MM-DD

price  *  (Price)

Specifies the daily price.

currency  *  (Currency)

Currency code indicating which currency should be paid.

binding  *  (Boolean)

It indicates whether the gross price must be honored, meaning the customer cannot sell the room/option at a price lower than the supplier's established rate.

net  *  (Float)

It indicates the net price that the customer must pay to the supplier. The net price is calculated by substrating the included surcharges from the gross price. (For calculation purposes only)

gross  *  (Float)

Indicates the retail price that the supplier sells to the customer.

exchange  *  (Exchange)

Provides currency information and the applicable rate for the results returned by the Supplier

currency  *  (Currency)

Provide information about the currency of origin

rate  *  (Float)

Provides information about the rate applied over results

markups(Markup)

Informs markup applied over supplier price.

channel(String)

channel of markup application.

currency  *  (Currency)

Currency code indicating which currency should be paid. This information is mandatory.

binding  *  (Boolean)

It indicates if the price indicated in the gross must be respected. In case minimumSellingPrice is not empty, the binding indicates instead that the minimumSellingPrice must be respected. That is, the customer can not sell the room / option at a price lower than that established by the supplier. This information is mandatory.

net  *  (Float)

Indicates the net price that the customer must pay to the supplier plus the markup. This information is mandatory.

gross(Float)

Indicates the retail price that the supplier sells to the customer plus the markup.

exchange  *  (Exchange)

Informs about the currency of origin, and the rate applied over result. This information is mandatory.

currency  *  (Currency)

Provide information about the currency of origin

rate  *  (Float)

Provides information about the rate applied over results

rules  *  (Rule)

Breakdown of the applied rules for a markup

id  *  (String)

rule identifier

name(String)

rule name

type  *  (MarkupRuleType)

type of the value Possible values:

  • PERCENT: Indicates the percentage applied by a rule.
  • IMPORT: Indicates the exact amount applied by a rule.

value  *  (Float)

value applied by this rule

minimumSellingPrice(Float)

Indicates the minimum selling price it can be sold (determined by the Seller). Is is specified (not null), that field takes preference to Gross and Binding.

refundable(Boolean)

Identifies if the room is refundable or not.

units(Int)

Number of rooms available with the same type.

beds(Bed)

List of beds.

type(String)

Specifies the bed type

count(Int)

Indicates number of beds in a room

shared(Boolean)

Specifies if the bed is shared or not

ratePlans(RatePlan)

Daily break downs rate plan.

code  *  (String)

Specifies the rate code.

supplierCode  *  (String)

Supplier s rate code.

name(String)

Specifies the rate name.

start(Date)

Start date in which the rate becomes effective. Format: YYYY-MM-DD

end(Date)

Expire date of the rate. Format: YYYY-MM-DD

promotions(Promotion)

Daily break downs promotions.

code  *  (String)

Specifies the promotion code.

name(String)

Specifies the promotion name.

supplierCode  *  (String)

Specifies the supplier s promotion code.

start(Date)

Promotion effective date. Format: YYYY-MM-DD

end(Date)

Promotion expire date. Format: YYYY-MM-DD

surcharges(Surcharge)

List of surcharges of the option returned.

code(String)

Indicates the surcharge code

chargeType  *  (ChargeType)

Indicates the charge type. We need to know whether the supplements have to be paid when the consumer gets to the hotel or beforehand. Possible charge types: INCLUDE or EXCLUDE. when INCLUDE : this surcharge is mandatory and included in the option s price when EXCLUDE : this surcharge is not included in the option s price Possible values:

  • INCLUDE: The charge is included.
  • EXCLUDE: The charge is excluded.

mandatory  *  (Boolean)

Indicates if the surcharge is mandatory or not. If mandatory, this surcharge will be applied to this option. If the chargeType is EXCLUDE the customer will have to pay it directly at the hotel.

price  *  (Price)

Indicates the surcharge price.

currency  *  (Currency)

Currency code indicating which currency should be paid.

binding  *  (Boolean)

It indicates whether the gross price must be honored, meaning the customer cannot sell the room/option at a price lower than the supplier's established rate.

net  *  (Float)

It indicates the net price that the customer must pay to the supplier. The net price is calculated by substrating the included surcharges from the gross price. (For calculation purposes only)

gross  *  (Float)

Indicates the retail price that the supplier sells to the customer.

exchange  *  (Exchange)

Provides currency information and the applicable rate for the results returned by the Supplier

currency  *  (Currency)

Provide information about the currency of origin

rate  *  (Float)

Provides information about the rate applied over results

markups(Markup)

Informs markup applied over supplier price.

channel(String)

channel of markup application.

currency  *  (Currency)

Currency code indicating which currency should be paid. This information is mandatory.

binding  *  (Boolean)

It indicates if the price indicated in the gross must be respected. In case minimumSellingPrice is not empty, the binding indicates instead that the minimumSellingPrice must be respected. That is, the customer can not sell the room / option at a price lower than that established by the supplier. This information is mandatory.

net  *  (Float)

Indicates the net price that the customer must pay to the supplier plus the markup. This information is mandatory.

gross(Float)

Indicates the retail price that the supplier sells to the customer plus the markup.

exchange  *  (Exchange)

Informs about the currency of origin, and the rate applied over result. This information is mandatory.

currency  *  (Currency)

Provide information about the currency of origin

rate  *  (Float)

Provides information about the rate applied over results

rules  *  (Rule)

Breakdown of the applied rules for a markup

id  *  (String)

rule identifier

name(String)

rule name

type  *  (MarkupRuleType)

type of the value Possible values:

  • PERCENT: Indicates the percentage applied by a rule.
  • IMPORT: Indicates the exact amount applied by a rule.

value  *  (Float)

value applied by this rule

minimumSellingPrice(Float)

Indicates the minimum selling price it can be sold (determined by the Seller). Is is specified (not null), that field takes preference to Gross and Binding.

description(String)

Specifies the surcharge description.

cancelPolicy(CancelPolicy)

Specifies cancel policies of this room

refundable  *  (Boolean)

Indicates if the option is refundable or non-refundable

cancelPenalties(CancelPenalty)

List of cancellation penalties

deadline(DateTime)

Cancellation fees will be applicable between this date and check-in date

isCalculatedDeadline  *  (Boolean)

Specifies if the deadline has been taken from the seller’s response (false) or has been calculated by Travelgate (true)

penaltyType  *  (CancelPenaltyType)

Type of penalty; this can be Nights, Percent or Import Possible values:

  • NIGHTS: Indicates the number of nights to be penalized.
  • PERCENT: Indicates the percentage to pay based on the option price.
  • IMPORT: Indicates the exact amount payable.

currency  *  (Currency)

Currency used in the cancellation policy

value  *  (Float)

Value of the cancellation policy

description(String)

Extra details and information about supplier's cancel policies to give a further insight. This information is not supported for all the suppliers.

remarks(String)

Additional information about the room.

paymentType  *  (PaymentType)

Indicates the payment type of the option returned. Possible options: MERCHANT, DIRECT, CARD_BOOKING and CARD_CHECK_IN. Possible values:

  • MERCHANT: Payment is managed by the supplier.
  • DIRECT: Payment is made directly to the actual payee (e.g., the hotel), without involving an intermediary or third party. The payment will be completed at check-in.
  • CARD_BOOKING: Payment is managed by the supplier. The payment is effectuated at the time of booking.
  • CARD_CHECK_IN: Payment is managed by the supplier and is made at the hotel during check-in.
boardCode(String)

Indicates the board code mapped.

boardCodeSupplier(String)

Indicates the board code in supplier's context.

hotelCode(String)

Code of the hotel in the context selected. If the supplier does not provide the hotel code, then the hotel code will be the same as the hotel code in the search request.

hotelCodeSupplier(String)

Supplier's hotel code. If the supplier does not provide the hotel code, then the hotel code will be the same as the hotel code in the search request.

occupancies(Occupancy)

List of occupancies for the request. If the supplier does not provide the occupancies, then the occupancies will be the same as the occupancies in the search request.

id  *  (Int)

Unique ID room in this option.

paxes  *  (Pax)

List of pax of this occupancy.

age  *  (Int)

Passenger age on the day of check-in, which can vary for adults, infants, or babies depending on each supplier's particular age range.

name(String)

Specifies the pax name.

surname(String)

Specifies the pax surname.

title(PersonalTitleType)

Specifies the pax title. Possible values:

  • MR: To refer to a man. Is not possible know if it is married or single.
  • MRS: To refer to a married woman
  • MISS: To refer to a single woman
  • MS: To refer to a woman. Is not possible know if it is married or single.
  • NOT_SPECIFIED: Deprecated 2025-08-08. PersonalTitleType is optional in inputs and outputs.
rateRules(RateRulesType)

Specifies rate rules of the option returned. Note: If the option does not have any rate rule, then the option is NORMAL rate. If the supplier does not provide the rate rules, then the rate rules will be the same as the rate rules in the search request. Possible values:

  • NORMAL: NORMAL Used in the RateRulesFilterInput input for the search query to filter and retrieve only options without rate rules.
  • PACKAGE: The product can't be sold separately from another product attached to it, such as a flight.
  • OLDER55: OLDER55 can only be sold to people who are 55 and older.
  • OLDER60: OLDER60 can only be sold to people who are 60 and older.
  • OLDER65: OLDER65 can only be sold to people who are 65 and older.
  • CANARY_RESIDENT: CANARY_RESIDENT is applicable to Canary Islands residents only.
  • BALEARIC_RESIDENT: BALEARIC_RESIDENT is applicable to Balearic Islands residents only.
  • LARGE_FAMILY: LARGE_FAMILY is applicable to large families and is determined by each supplier.
  • HONEYMOON: HONEYMOON is applicable to those who just got married and is determined by each supplier.
  • PUBLIC_SERVANT: PUBLIC_SERVANT is applicable to public servants only.
  • UNEMPLOYED: UNEMPLOYED applies to individuals who are without work.
  • NON_REFUNDABLE: NON_REFUNDABLE is applicable to non refundable options.
  • MOBILE: MOBILE are special rates confirmed by mobile phone.
  • WARRANTY: WARRANTY is applicable to options with cancellation warranty.
  • ESSENTIAL_WORKER: ESSENTIAL_WORKER are special hotel rates for essential workers.
  • NEGOTIATED: NEGOTIATED are special rates offered only to specific buyers.
  • CUSTOM: CUSTOM defines other rates.
adviseMessage(AdviseMessage)

code  *  (ID)

AM code: The following codes can be returned:

description  *  (String)

Error description

level  *  (AdviseMessageLevel)

Indicates the level of importance of the message. Possible values: ERROR, WARN, INFO. Possible values:

  • WARN: Warning message.
  • ERROR: Error message.
  • INFO: Info message.
external(ExternalMessage)

Specify the external message.

code(String)

External code.

message  *  (String)

External message.

correlationID  *  (ID)

Identifier to investigate the cause of the error.

Examples

Quote option without checking the surcharges