Option
Available hotel option (OptionSearch proto). Wire JSON uses id (not optionRefId).
Pass id as quote criteria.optionRefId (or book input.optionRefId when skipping quote).
Unique option id from search. Use as quote criteria.optionRefId. After a successful
quote, prefer book with optionQuote.optionRefId (may differ from search id).
Connection that returned this option
Hotel code
Hotel name
Mapped board code
Board display name
Provider-native board code
Provider-native hotel code
rateRules object[]
Rate rules when provided by the supplier (OptionSearch.rateRules)
RateRulesType enum name (e.g. RATE_RULES_PACKAGE)
Human-readable rule description
price object
Price information. Three independent prices coexist: provider cost (net), provider retail (gross/suggested), and the org selling price (markupGross). The org margin configured per connection is applied on top of the provider gross, never on net. When no margin is configured, markupGross equals the provider gross.
Provider cost (what the agency pays the supplier).
Currency code
Provider binding flag. When true the provider gross/suggested is the minimum selling price and must be respected (cannot be sold below it).
Provider suggested retail / minimum selling price (preserved from provider, not overwritten by markup).
Provider retail price before any org markup (falls back to net when the provider does not send a suggested price).
Customer selling price = provider gross + org margin. Equals the provider gross when no margin is configured.
Provider net cost plus the org margin amount (mandatory field).
Currency of the markup (usually same as currency)
Indicates if the markup price must be respected (mandatory field).
Org margin amount applied on provider gross (markupGross - gross).
Effective margin percentage applied on provider gross.
Type of margin applied - FIXED or PERCENTAGE
rooms object[]
Room options
Occupancy index matching search criteria
Mapped / type room code (may be coarse taxonomy)
Room description
Provider-native room id
roomPrice object
Price information. Three independent prices coexist: provider cost (net), provider retail (gross/suggested), and the org selling price (markupGross). The org margin configured per connection is applied on top of the provider gross, never on net. When no margin is configured, markupGross equals the provider gross.
Provider cost (what the agency pays the supplier).
Currency code
Provider binding flag. When true the provider gross/suggested is the minimum selling price and must be respected (cannot be sold below it).
Provider suggested retail / minimum selling price (preserved from provider, not overwritten by markup).
Provider retail price before any org markup (falls back to net when the provider does not send a suggested price).
Customer selling price = provider gross + org margin. Equals the provider gross when no margin is configured.
Provider net cost plus the org margin amount (mandatory field).
Currency of the markup (usually same as currency)
Indicates if the markup price must be respected (mandatory field).
Org margin amount applied on provider gross (markupGross - gross).
Effective margin percentage applied on provider gross.
Type of margin applied - FIXED or PERCENTAGE
ratePlan object
Rate plan when provided
promotions object[]
cancelPolicy object
Cancellation policy
Whether the booking is refundable
cancelPenalties object[]
Cancellation penalties
Currency code
Cancellation deadline
Hours before check-in
Penalty calculation type from wire (IMPORT / NIGHTS / PERCENT).
Present on real search/quote cancelPenalties (e.g. G2 E2E captures).
Possible values: [IMPORT, NIGHTS, PERCENT]
Penalty amount
remarks object[]
Additional remarks
Remark type
Remark value
surcharges object[]
Per-option tax and fee breakdown (search). When the integration provides breakdown,
each line includes amount, currency, whether it is included in the displayed total, and a stable code.
See public documentation for controlled vocabulary.
Legacy provider-specific label (may duplicate code); prefer code and category for new clients
Human-readable description from the provider
Whether the surcharge is mandatory
When true, the amount is already included in the option total; when false, typically due at property
High-level grouping for a surcharge line
Possible values: [SURCHARGE_CATEGORY_UNSPECIFIED, TAX, FEE, DEPOSIT, OTHER]
Stable semantic code (e.g. property_fee, mandatory_tax). See surcharge vocabulary in docs.
property_feeprice object
Price information. Three independent prices coexist: provider cost (net), provider retail (gross/suggested), and the org selling price (markupGross). The org margin configured per connection is applied on top of the provider gross, never on net. When no margin is configured, markupGross equals the provider gross.
Provider cost (what the agency pays the supplier).
Currency code
Provider binding flag. When true the provider gross/suggested is the minimum selling price and must be respected (cannot be sold below it).
Provider suggested retail / minimum selling price (preserved from provider, not overwritten by markup).
Provider retail price before any org markup (falls back to net when the provider does not send a suggested price).
Customer selling price = provider gross + org margin. Equals the provider gross when no margin is configured.
Provider net cost plus the org margin amount (mandatory field).
Currency of the markup (usually same as currency)
Indicates if the markup price must be respected (mandatory field).
Org margin amount applied on provider gross (markupGross - gross).
Effective margin percentage applied on provider gross.
Type of margin applied - FIXED or PERCENTAGE
Payment type when provided by the supplier
Whether the option was served from cache
{
"id": "string",
"connectionCode": "string",
"hotelCode": "string",
"hotelName": "string",
"boardCode": "string",
"boardName": "string",
"providerBoardCode": "string",
"providerHotelCode": "string",
"rateRules": [
{
"type": "string",
"description": "string"
}
],
"price": {
"net": 0,
"currency": "string",
"binding": true,
"suggested": 0,
"gross": 0,
"markupGross": 0,
"markupNet": 0,
"markupCurrency": "string",
"markupBinding": true,
"marginAmount": 0,
"marginPercent": 0,
"marginType": "string"
},
"rooms": [
{
"occupancyRefId": 0,
"code": "string",
"description": "string",
"providerCode": "string",
"roomPrice": {
"net": 0,
"currency": "string",
"binding": true,
"suggested": 0,
"gross": 0,
"markupGross": 0,
"markupNet": 0,
"markupCurrency": "string",
"markupBinding": true,
"marginAmount": 0,
"marginPercent": 0,
"marginType": "string"
},
"ratePlan": {
"code": "string",
"name": "string",
"providerCode": "string"
},
"promotions": [
{
"code": "string",
"name": "string",
"amount": "string"
}
]
}
],
"cancelPolicy": {
"refundable": true,
"cancelPenalties": [
{
"currency": "string",
"deadline": "2024-07-29T15:51:28.071Z",
"hoursBefore": 0,
"penaltyType": "IMPORT",
"value": 0
}
]
},
"remarks": [
{
"type": "string",
"value": "string"
}
],
"surcharges": [
{
"type": "string",
"description": "string",
"mandatory": true,
"included": true,
"category": "SURCHARGE_CATEGORY_UNSPECIFIED",
"code": "property_fee",
"price": {
"net": 0,
"currency": "string",
"binding": true,
"suggested": 0,
"gross": 0,
"markupGross": 0,
"markupNet": 0,
"markupCurrency": "string",
"markupBinding": true,
"marginAmount": 0,
"marginPercent": 0,
"marginType": "string"
}
}
],
"paymentType": "string",
"fromCache": true
}