Hotel Rules Reference Payload API Reference
POST |
rules/offershospitality/buildfromcatalogofferings Use this base path if you have not yet received or not migrated to the new credentials from Travelport:
Use this base path after you have migrated to the new credentials from Travelport (using .net instead of .com):
|
Related Content: JSON Hotel APIs Guide, Hotel Workflows, Hotel Availability API Reference
Hotel Rules retrieves the rules associated with a specific rate. The reference payload references an offer by sending the unique offer ID from an Availability response, instead of sending all required offer details as in the full payload Rules request.
Request
Query Parameters
None.
Request Body
OfferQueryBuildFromCatalogOfferingsHospitality*
Top level object for rules request. Includes BuildFromCatalogOfferingsRequest object.
BuildFromCatalogOfferingsRequest*
Top level object for offer ID. Includes ProductIdentifier object.
ProductIdentifier*
Top level object for offer identifier.
id*: String. From the Availability response, send the value returned in CatalogOffering/id for the instance of the offer you want to request rules for.
Example
{
"OfferQueryBuildFromCatalogOffering": {
"BuildFromCatalogOfferingHospitality": {
"@type": "BuildFromCatalogOfferingHospitality",
"CatalogOfferingIdentifier": {
"value": "6269ddc1-a017-40cb-bce6-140d5e74e104:cc3280205f5ae9a9b7944c1002c88b33"
}
}
}
}
Response
The top level objects in the Rules response are listed below. For details see the individual dropdown objects following.
OfferHospitalityResponse
Top level object for rules response.
Includes Offer, Identifier, and CurrencyRateConversion objects.
Offer
Top level object for offer details.
Includes Product, Price, and TermsAndConditionsFull objects. See the individual sections below for details.
Identifier
Defines which supplier system returned the rules for that rate.
Properties:
authority: Indicates which supplier returned the rules. Possible values are:
- TVPT: Travelport
- BKNG: Booking.com
CurrencyRateConversion
Currency conversion factor returned if requestedCurrency sent in the request. See section below.

Product
Array. One instance for each product, type ProductHospitality.
Product is a common object in the model. Not all objects in this table may be returned in this specific API.
Key value pairs:
bookingCode: Booking code retrieved from the Availability response.
adaCompliant: Yes, No, or Unknown indicator for ADA compliance.
propertyName: Name of property offering this product.
guests: Number of guests.
Quantity: Number of rooms currently available matching this rate.
Includes PropertyKey, PropertyAddress, RoomType, Telephone, and DateRange objects.
PropertyKey
When ReferenceList is returned, PropertyKey includes the key value pairs:
chainCode: Chain code for the property.
propertyCode: Property code for the property.
PropertyAddress
Top level property address object. Key value pairs:
City: Property city.
PostalCode: Property postal code.
Includes AddressLine, StateProv, and Country objects.
AddressLine
Text string for property street address.
StateProv
Property state or province. Key value pairs:
value: The state or province code of the property address.
name: State/province name or code.
Country
Property country. Key value pairs:
name: Country name or code.
Telephone
Telephone number of xxxxxx. Key value pairs:
phoneNumber: string. Accepted characters: numeric, dash, space, period.
cityCode: IATA city code if referenced by phone number.
RoomType
Room type detail.
Includes RoomCharacteristics, Description, and RoomAmenity objects.
RoomCharacteristics
Room details. Key value pairs:
category: Category of the room.
typeCode: OTA room type code.
smokingAllowed: Yes or No indicator for smoking.
wifiIncluded: Yes or No indicator for wifi.
viewCode: Free text describing the view.
shortRoomDescription: Normalized text for grouping rates against similar room types.
accessibleRoom: Yes or No indicator for room with accessible features.
Includes BedConfiguration object.
BedConfiguration
Configuration of bed(s) in room. Key value pairs:
quantity: Number of beds in the room.
bedType: Bed type values as follows:
- King Bed(s)
- Queen Bed(s)
- Twin Bed(s)
- Sofa Bed(s)
- OTHER Bed(s)
size: Size of bed(s) in the room. Approximate measurement of the bed(s).
Description
A room description text string. Key value pairs:
languages: The language code of the description text.
value: Room description text (e.g. Save 15 Pct Off Studio King Suite Full Breakfast:Free WiFi:32in TV).
RoomAmenity
Room amenity name and description. Key value pairs:
description: Description of amenity received from supplier.
code: OTA code associated to amenity.
includedIndicator: Amenity included with rate.
RoomOccupancy
Room occupancy value. Key value pair:
maxOccupancy: The maximum number of room occupants.
DateRange
Check-in and -out dates. Key value pairs:
start: Check-in date in YYYY-MM-DD format.
end: Check-out date in YYYY-MM-DD format.

Price is a common object in the model. Not all objects in this table may be returned in this specific API.
Price
Price details for this offer or rate. Key value pairs:
Base: Base price before taxes and fees. Not returned by all suppliers.
TotalTaxes: Total taxes applied to the base price. Not returned by all suppliers.
TotalFees: Total fees included in Total Price.
TotalPrice: The amount of the offer.
Includes CurrencyCode and PriceBreakdown objects.
CurrencyCode
The currency code the amount is provided in. Key value pairs:
decimalPlace: Decimal place number.
value: Three-character currency code.
PriceBreakdown
The information returned in PriceBreakdown can vary by provider and location. Key value pairs:
roomPricingType: A string provided by the hotel to describe the rate, such as per night or per stay.
priceChangesDuringStayInd: When set as true, expect multiple occurrences of roomPricingType (per night).
If roomPricingType = Per night:
May include NightlyRate, AverageNightlyRate, and AmenitySurcharges objects.
If roomPricingType = Per stay key value pair:
Description: A rate description text string, e.g., Advance Purchase-Ro-Free WiFi.
May include Amount and Commission objects.
NightlyRate
Rate per night. Key value pairs:
startDate: Start date for the nightly rate in YYYY-MM-DD format.
nights: Number of nights the nightly rate is valid.
Includes Amount object.
Amount
The rate amount. Key value pairs:
Base: Base amount of the rate not including taxes or fees.
Total: Total for this group of nights.
Includes CurrencyCode (see above), Taxes, and Fees objects.
Taxes
Tax details.
TotalTaxes: Total of all taxes included in this rate.
Includes Tax and TaxPercent objects.
Tax
Breakdown of the tax. Key value pairs:
currencyCode: Three character currency code.
description: OTA description of tax.
purpose: Supplier returned description of tax.
includedInBase: Indicates whether tax is included in Amount/Base value. Possible values are Yes, No, Unknown.
taxCode: OTA code for the tax.
value: The amount of the tax
TaxPercent
Returned when the tax is expressed as a percentage of the amount. Key value pairs:
taxCode: Any code for the tax.
includedInBase: Indicates whether tax is included in the base amount. Possible values are Yes, No, or Unknown.
value: The tax percentage amount.
Fees
Parent object which can include Fee by rate or by property. Fees may be included in the TotalPrice or may be due separately at the property. Key value pairs:
TotalFees: Total fees included in the total price.
TotalAdditionalFeesPaidLocally: Fees due separately at the property. Expect them to be paid in local currency.
Includes Fee object.
Fee
Fee details. Key value pairs:
description: Hotel provider's text explanation of the fee, e.g. Resort Fee.
feeCode: Hotel provider's explanation of the fee; can be returned either as a code or as text.
feeApplication: When the fee is applied. Possible values are:
- PERPERSON
- PERROOM
- PERACCOMMODATION
- PERHOUSE
- PERAPARTMENT
- PERADULT
feeFrequency: The frequency of the fee. Possible values are:
- PERNIGHT
- PERDAY
- PERSTAY
- PERWEEK
- ROUNDTRIP
- ONEWAY
includedInBaseInd: Boolean. Default is false. Fee is included in Base Price.
includedInTotalPriceInd: Boolean. Default is false. Fee is included in Total Price.
Includes FeeAmountOrPercent object.
FeeAmountOrPercent
Object defining the amount or percent charged as a fee. Key value pairs:
Amount: Amount object for a specific fee amount.
code: Three-character currency code.
value: Exact amount of fee.
Percent: Percentage of base amount charged as a fee.
Commission
Commission details.
When returned with @type CommissionPercent key value pairs are:
application: A value of Commissionable indicates the rate pays commission. Non-paying indicates no commission.
Percent: The commission percentage.
When returned with @type CommissionAmount key value pairs are:
application: Same as above.
Amount: Exact amount of commission paid for this booking.
code: Three-character currency code.
value: Numeric amount of commission.
AverageNightlyRate
The average nightly rate of the request. Key value pairs:
code: Three-character currency code of amount.
approximateInd: true indicates this is a calculated value; false indicates this is the value returned by the property.
value: Numeric amount of average nightly rate.
AmenitySurcharges
Amenity surcharges detail. Includes Surcharge object.
Surcharge
Additional charges related to requested amenities. Key value pairs:
currencyCode: Three-character currency code.
description: Description of charge (e.g., Roll away Surcharge)
value: Surcharge amount.

TermsAndConditionsFull
TermsAndConditionsFull is a common object in the model. Not all objects in this table may be returned in this specific API.
Top level object for terms and conditions, instances of TermsAndConditionsFullHospitality.
RatePaymentInfo: Postpay or Prepay designation.
CustomerLoyaltyIDRequiredAtReservation: Boolean. Default is false. The rate returned is contingent on a membership number to be included within the sell request, typically associated to frequent guest or frequent flyer loyalty numbers.
RateQualificationIDRequiredAtCheckIn: Boolean. Default is false. The discounted rate returned may be denied at the property if guest does not show proof of qualifying, typically an ID for government, military, workplace, association, or membership.
As returned from supplier, objects returned may include TextBlock, CustomerLoyalty, Guarantee, CancelPenalty, DepositPolicy, AcceptedCreditCard, Description, MealsIncluded, ProductRateCodeInfo, and CheckInOutPolicy.
TextBlock
Array. Each instance is one rule or set of information. Key value pair:
title: The title of the rule or information. May include any of the following Rule Types. Not every property returns all of these types. Some properties do not return any title. Only English is supported for these values.
Supported values
Promotional Data
Rate Description
Room Rate Data
Rate Text
Guarantee
Cancellation
Deposit
Check in/out
Room detail
Extra charges
Packages
Property
Location
Miscellaneous
Rate Amount
Alternate Rate Amount
Rate Comment
FAX
Phone
Special Information
Information
Room Hold Expiration Time
Includes the TextFormatted object providing the rule or information itself.
TextFormatted
The rule or information itself. Key value pairs:
language: The language the rule is provided in.
value: The actual text of the hotel rule or information.
CustomerLoyalty
String. Indicates customer loyalty information. Key value pairs:
value: Number on loyalty card.
programId: Two character hotel supplier code or brand code of the loyalty program for frequent guest use. Two character air supplier code of loyalty program for frequent flyer use.
supplierType: “hotel” for designating frequent guest or “air” for designating frequent flyer.
Guarantee
Array. Indicates if the room rate requires a guarantee to be booked. Key value pair:
guaranteeType: The type of guarantee. Possible values are:
PrepayRequired
DepositRequired
GuaranteesNotRequired
Profile
DepositNotRequired
NoGuaranteesAccepted
GuaranteeRequired
CC/DC/Voucher
PrepayNotRequired
GuaranteesAccepted
NoDepositsAccepted
CancelPenalty
Array. CancelPenalty breaks down any cancellation penalties for the rate. Key value pair:
Refundable: Yes indicate the rate is refundable. No indicates no refund is available for a cancellation.
Includes the Deadline and HotelPenalty objects.
Deadline
Cancellation penalty deadline details. Key value pair:
Time: The deadline time in 24-hour HH:MM:SS format.
Includes SpecificDate object.
SpecificDate
Details on cancellation penalty. Key value pairs:
specific: Specific cancellation date in YYYY-MM-DD format.
start: Date in YYYY-MM-DD format. Used with end to designate a range of dates.
end: Date in YYYY-MM-DD format.
HotelPenalty
Cancellation penalty amount. Key value pairs depend on the @type value:
When returned with @type HotelPenaltyNights:
subjectToTax: Yes, No, or Unknown indicating if additional taxes may be applied to penalty amount.
Nights: The number of nights charged at the nightly rate if provider charges a cancellation fee.
When returned with @type HotelPenaltyPercent:
Percent: Percentage of total amount to be charged as penalty.
appliesTo: Value of “Amount” will be returned.
When returned with @type HotelPenaltyAmount:
Amount: Exact penalty amount.
code: Three-character currency code.
value: Penalty amount.
DepositPolicy
Deposit details related to this booking. Includes Deposit object.
Deposit
Deposit total in relation to TotalPrice. Key value pairs:
remainderInd:true or false indicating if a deposit was part of the total price.
Date: Date deposit must be received.
Includes CurrencyAmount object.
CurrencyAmount
Amount of deposit and the currency code for that amount. Key value pairs:
code: Currency code.
value: Deposit amount.
AcceptedCreditCard
An array of accepted credit cards. Key value pair:
value: Two-character credit card code.
Description
Free-form text for a room and rate description.
MealsIncluded
The following meal attributes are returned only if true:
breakfastInd: Breakfast is included.
lunchInd: Lunch is included.
dinnerInd: Dinner is included.
ProductRateCodeInfo
Top level object for rate code details. Includes RateCodeInfo.
RateCodeInfo
Rate code information. Key value pairs:
rateName: Name of the rate plan.
rateID: ID of the rate plan associated with the negotiated rate plan code.
value: The negotiated rate plan code.
rateCategory: OTA rate category code.
Possible values
Military
Convention
Credential
Weekly
Association
All
FamilyPlan
Club
Monthly
RackGeneral
FullInclusive
Promotional
Government
Industry/TravelAgentRate
PrePaid
Weekend
Corporate
Mutli-DayPackage
Tour
Employee
MultLevel/Negotiated/Secure
Package
Other
Leisure
VIP
SeniorCitizen
CheckInOutPolicy
Check in and out times. Key value pairs:
checkInTime: Local property check in time in 24 hour clock format.
checkOutTime: Local property check out time in 24 hour clock format.

CurrencyRateConversion
CurrencyRateConversion is returned only if requestedCurrency was sent in the request.
By default the Hotel APIs return all rates in the currency of the hotel's location. If requestedCurrency was sent in the request, the response returns currency conversion information per below.
Includes SourceCurrency, TargetCurrency, and ConversionRate objects.
SourceCurrency
The currency code based on the location of the hotel and used for all rates in the response. Key value pairs:
decimalPlace: Number of decimal places for the currency value.
value: Currency code.
TargetCurrency
Currency code sent in the request in requestedCurrency. Key value pairs:
decimalPlace: Number of decimal places.
value: Currency code.
ConversionRate
Current conversion rate of the user-specified currency (the TargetCurrency value). Key value pair:
value: Conversion rate of SourceCurrency value to TargetCurrency value. This value can be used to calculate, independently of the API, conversion for the rates in the response.
Example
{
"OfferHospitalityResponse": {
"Offer": {
"@type": "Offer",
"Product": [
{
"@type": "ProductHospitality",
"bookingCode": "T00AABT",
"guests": 1,
"propertyName": "SpringHill Suites by Marriott Grand Rapids Airport Southeast",
"PropertyAddress": {
"@type": "Address",
"AddressLine": [
"5250 28th St. SE"
],
"City": "Grand Rapids",
"StateProv": {
"value": "MI",
"name": "MI"
},
"Country": {
"name": "US"
},
"PostalCode": "49512"
},
"Telephone": {
"@type": "Telephone",
"phoneNumber": "464-1130",
"cityCode": "GRR"
},
"GuestCounts": {
"GuestCount": [
{
"count": 1,
"ageQualifyingCode": "10"
}
]
},
"PropertyKey": {
"@type": "PropertyKey",
"chainCode": "XV",
"propertyCode": "89550"
},
"RoomType": {
"@type": "RoomTypeDetail",
"RoomCharacteristics": {
"@type": "RoomCharacteristics",
"smokingAllowed": "Unknown",
"wifiIncluded": "No",
"BedConfiguration": [
{
"quantity": 2,
"bedType": "Queen Bed(s)",
"size": "160 cm X 200 cm"
}
]
},
"Description": {
"value": "Maximum Occupancy- 5 Guests"
}
},
"DateRange": {
"start": "2025-10-16",
"end": "2025-10-17"
}
}
],
"Price": {
"@type": "PriceDetail",
"CurrencyCode": {
"value": "USD",
"decimalPlace": 2
},
"Base": 121.5,
"TotalTaxes": 21.87,
"TotalPrice": 143.37,
"PriceBreakdown": [
{
"@type": "PriceBreakdownHospitality",
"Amount": {
"@type": "Amount",
"CurrencyCode": {
"value": "USD",
"decimalPlace": 2
},
"Base": 121.5,
"Taxes": {
"@type": "TaxesDetail",
"TotalTaxes": 21.87,
"Tax": [
{
"value": 21.87,
"currencyCode": "USD",
"taxCode": "08",
"purpose": "Lodging tax",
"description": "Lodging tax",
"includedInBase": "No"
}
]
},
"Total": 143.37
},
"Commission": {
"@type": "Commission",
"application": "Commissionable"
},
"roomPricingType": "Per stay",
"Description": "Best Available Rate"
},
{
"@type": "PriceBreakdownHospitality",
"roomPricingType": "Per night",
"NightlyRate": [
{
"@type": "NightlyRate",
"startDate": "2025-10-16",
"nights": 1,
"Amount": {
"@type": "Amount",
"CurrencyCode": {
"value": "USD",
"decimalPlace": 2
},
"Base": 121.5,
"Taxes": {
"@type": "TaxesDetail",
"TotalTaxes": 21.87,
"Tax": [
{
"value": 21.87,
"currencyCode": "USD",
"taxCode": "08",
"purpose": "Lodging tax",
"description": "Lodging tax",
"includedInBase": "No"
}
]
},
"Total": 143.37
}
}
],
"AverageNightlyRate": [
{
"value": 121.5,
"code": "USD",
"approximateInd": true
}
]
}
]
},
"TermsAndConditionsFull": [
{
"@type": "TermsAndConditionsFullHospitality",
"TextBlock": [
{
"@type": "TextBlock",
"title": "Address",
"TextFormatted": [
{
"value": "5250 28Th Street Se Grand Rapids Mi 49512"
}
]
},
{
"@type": "TextBlock",
"title": "Promotional",
"TextFormatted": [
{
"value": "Style And Space Beautifully Priced"
}
]
},
{
"@type": "TextBlock",
"title": "Guarantee",
"TextFormatted": [
{
"value": "ID Required Must Guarantee Late Arrival"
}
]
},
{
"@type": "TextBlock",
"title": "Cancellation",
"TextFormatted": [
{
"value": "cancel: 143.37 usd cancel fee person room cancellation permitted up to 1 days before arrival."
}
]
},
{
"@type": "TextBlock",
"title": "Other",
"TextFormatted": [
{
"value": "Available To AAA And Caa Members Only. Limit Of Two Rooms Person Member Person Night. Membership Card Required."
}
]
},
{
"@type": "TextBlock",
"title": "Room detail",
"TextFormatted": [
{
"value": "Maximum Occupancy- 5 Guests"
}
]
},
{
"@type": "TextBlock",
"title": "Rate description",
"TextFormatted": [
{
"value": "T00Aabt: AAA Caa Hot Deals Membership Card Required Suite 2 Queen 2 Queen Mini Fridge Microwave 450 Square Feet/41 Square Metre Living/Sitting Area Wireless Internet Complimentary"
}
]
},
{
"@type": "TextBlock",
"title": "Rate amount",
"TextFormatted": [
{
"value": "12150 Person Night Starting 16 Oct For 1 Night"
}
]
},
{
"@type": "TextBlock",
"title": "Number Nights",
"TextFormatted": [
{
"value": "1"
}
]
},
{
"@type": "TextBlock",
"title": "Room rate",
"TextFormatted": [
{
"value": "Taxes - Total Tax/Surch/Fee - 21.87 P/Stay Taxes: 21.87 Usd Commissionable Rate"
}
]
},
{
"@type": "TextBlock",
"title": "Phone",
"TextFormatted": [
{
"value": "1-616-464-1130"
}
]
},
{
"@type": "TextBlock",
"title": "Total Amount",
"TextFormatted": [
{
"value": "14337 Approx Total Include All Known Taxes/Fees"
}
]
},
{
"@type": "TextBlock",
"title": "Room Hold Expiration Time",
"TextFormatted": [
{
"value": "BOOKING HELD UNTIL 00:00 LOCAL HOTEL TIME ON ARRIVAL DATE"
}
]
}
],
"Guarantee": [
{
"@type": "Guarantee",
"guaranteeType": "GuaranteeRequired"
}
],
"CancelPenalty": [
{
"@type": "CancelPenalty",
"Description": "Cancellations are free if made before Oct 15, 2025, 23:59 local hotel time.",
"Deadline": {
"@type": "Deadline",
"SpecificDate": {
"start": "2025-09-16",
"end": "2025-10-15"
},
"Time": "23:59:59"
},
"HotelPenalty": {
"@type": "HotelPenaltyPercent",
"appliesTo": "Amount",
"Percent": 0
},
"Refundable": "Yes"
},
{
"@type": "CancelPenalty",
"Description": "After this time, starting Oct 16, 2025, 00:00 local hotel time, a cancellation fee of 143.37 USD applies.",
"Deadline": {
"@type": "Deadline",
"SpecificDate": {
"start": "2025-10-16"
}
},
"HotelPenalty": {
"@type": "HotelPenaltyAmount",
"Amount": [
{
"value": 143.37,
"code": "USD"
}
]
},
"Refundable": "No"
}
],
"AcceptedCreditCard": [
{
"value": "VI"
},
{
"value": "JC"
},
{
"value": "CA"
},
{
"value": "AX"
},
{
"value": "IK"
},
{
"value": "DS"
},
{
"value": "DC"
},
{
"value": "AX"
},
{
"value": "JC"
},
{
"value": "CA"
},
{
"value": "DS"
},
{
"value": "VI"
},
{
"value": "IK"
},
{
"value": "DC"
},
{
"value": "DC"
},
{
"value": "CA"
},
{
"value": "VI"
},
{
"value": "DS"
},
{
"value": "JC"
},
{
"value": "IK"
},
{
"value": "AX"
}
],
"Description": [
"T00Aabt: AAA Caa Hot Deals Membership Card Required",
"Suite 2 Queen",
"2 Queen Mini Fridge",
"Microwave 450 Square Feet/41 Square Metre Living/Sitting Area",
"Wireless Internet Complimentary"
],
"ProductRateCodeInfo": [
{
"@type": "ProductRateCodeInfo",
"RateCodeInfo": {
"rateCategory": "Association"
}
}
],
"CheckInOutPolicy": {
"@type": "CheckInOutPolicy",
"checkInTime": "15:00:00",
"checkOutTime": "12:00:00"
},
"RatePaymentInfo": "PostPay",
"RateQualificationIDRequiredAtCheckIn": true
}
]
},
"transactionId": "8673488b-349f-46f5-bb10-f1c4e3dca388",
"traceId": "fd8acdb5-d9af-4274-9171-05689a5a98f5",
"Identifier": {
"authority": "TVPT"
}
}
}