Hotel information (mapping).

By retrieving hotel information from Smarthotel you are able to map the room types and rate codes between the external system and Smarthotel.

To Retrieve Room type information a OTA_HoteldescriptiveInfoRQ needs to be posted. In the response, the  room types can be found (Note: ‘SendGuestRooms‘ should be set to ‘True‘)

To Retrieve rate Codes a OTA_HotelRatePlanRQ should be sent. Within the response to this request, Sell-able products can be found, which refer to the Room Types in the OTA_HoteldescriptiveInfoRQ. By combining these two responses the setup Room-Rate combinations can be defined.

OTA_HotelDescriptiveInfoRQ/RS.

The OTA_HotelDescriptiveInfoRQ message allows a trading partner to query for specific hotel descriptive data.

OTA_HotelDescriptiveInfoRQ

Element / @AttributeParentInfoValuesOccurrence
HotelDescriptiveInfosOTA_HotelDescriptiveInfoRQCollection of items for data from multiple hotels.1
HotelDescriptiveInfoHotelDescriptiveInfosThis allows the requestor to indicate which specific information is requested if complete hotel details are not required.1
@HotelCodeHotelDescriptiveInfoThe ID of the hotel.[integer]1
AffiliationInfoHotelDescriptiveInfoIs used to the indicate the specific affiliation information being requested.0..1
@SendAwardsAffiliationInfoSend this data. "True" means send the data.True
False
0..1
ContactInfoHotelDescriptiveInfoIs used to the indicate whether contact information is being requested.0..1
@SendDataContactInfoSend this data. "True" means send the data.True
False
0..1
FacilityInfoHotelDescriptiveInfoIs used to the indicate the specific facility information being requested.0..1
@SendGuestRoomsFacilityInfoSend this data. "True" means send the data.True
False
0..1
HotelInfoHotelDescriptiveInfoIs used to indicate whether hotel information is being requested.0..1
@SendDataHotelInfoSend this data. "True" means send the data.True
False
0..1
MultimediaObjectsHotelDescriptiveInfoIs used to the indicate whether multimedia information is being requested.0..1
@SendDataMultimediaObjectsSend this data. "True" means send the data.True
False
0..1
<?xml version="1.0" encoding="UTF-16"?>
<OTA_HotelDescriptiveInfoRQ EchoToken="Example123" PrimaryLangID="eng" Target="Production" TimeStamp="2018-07-29T07:38:54.729Z" Version="1.0">
  <POS>
    <Source>
      <RequestorID ID="APIKEY" MessagePassword="APIPASSWORD"/>
    </Source>
  </POS>
  <HotelDescriptiveInfos>
    <HotelDescriptiveInfo HotelCode="21052">
      <AffiliationInfo SendAwards="True" />
      <ContactInfo SendData="True" />
      <FacilityInfo SendGuestRooms="True" />
      <HotelInfo SendData="True" />
      <MultimediaObjects SendData="True" />
    </HotelDescriptiveInfo>
  </HotelDescriptiveInfos>
</OTA_HotelDescriptiveInfoRQ>

OTA_HotelDescriptiveInfoRS

The OTA_HotelDescriptiveInfoRS is a message used to provide detailed descriptive information about a hotel property.

Element / @AttributeParentInfoValuesOccurrence
HotelDescriptiveContentsOTA_HotelDescriptiveInfoRSA collection of hotel descriptive information.1
HotelDescriptiveContentHotelDescriptiveContentsHotel descriptive information.0..n
@HotelCodeHotelDescriptiveContentThe ID of the hotel.[integer]1
@HotelNameHotelDescriptiveContentA text field used to communicate the proper name of the hotel.[string]1
@ChainCodeHotelDescriptiveContentThe ID of the chain.[integer]0..1
@CurrencyCodeHotelDescriptiveContentAn ISO 4217 (3) alpha character code that specifies a monetary unit.[string]1
ContactInfosHotelDescriptiveContentProvides contact information. A collection of ContactInfo elements that provides detailed contact information.0..1
ContactInfoContactInfosUsed to define specific contact information such as phone and address. The ContactInfo class is used to define the contacts for consumers and technical people at the hotel facility, including various telephone numbers and e-mail addresses, or any respective attribute or affiliation for the hotel.1
NamesContactInfoA collection of Name elements. Provides detailed name information.1
NameNamesUsed to pass detailed name information regarding a contact.1
GivenNameNameGiven name.[string]1
AddressesContactInfoA collection of Address elements.1
AddressAddressesAn address.1
@FormattedIndAddressSpecifies if the associated data is formatted or not. When true, then it is formatted; when false, then not formatted.True,False1
StreetNmbrAddressMay contain the street number and optionally the street name.[string]0..1
AddressLineAddressWhen the address is unformatted (FormattedInd="false") these lines will contain free form address details. When the address is formatted and street number and street name must be sent independently, the street number will be sent using StreetNmbr, and the street name will be sent in the first AddressLine occurrence.[string]1
PostalCodeAddressPost Office Code number.[string]1
CityNameAddressCity (e.g., Dublin), town, or postal station (i.e., a postal service territory, often used in a military address).[string]1
StateProvAddressState or Province name (e.g., Zuid-Holland).[string]1
CountryNameAddressCountry name (e.g., Ireland).[string]1
TPA_ExtensionsAddressA placeholder in the schema to allow for additional elements and attributes to be included per Trading Partner Agreement (TPA).1
StateIDTPA_ExtensionsThe ID of the state.[integer]1
CountryIDTPA_ExtensionsThe ID of the country.[integer]1
EmailsContactInfoA collection of email elements.1
EmailEmailsAn email address.[string]1
PhonesContactInfoA collection of Phone elements. Provides detailed phone information.1
PhonePhonesUsed to pass detailed phone information.0..n
@PhoneTechTypePhoneIndicates type of technology associated with this telephone number. Refer to OpenTravel Code List Phone Technology Type (PTT). Values:1
@CountryAccessCodePhoneCode assigned by telecommunications authorities for international country access identifier.[integer]0..1
@AreaCityCodePhoneCode assigned for telephones in a specific region, city, or area.[integer]0..1
@PhoneNumberPhoneTelephone number assigned to a single location.[integer]1
URLsContactInfoA collection of URL elements. Used to pass detailed URL information. The URLs class identifies URI information.1
URLURLsProvides a Website address.[string]1
DestinationSystemsCodeHotelDescriptiveContentA collection of destination systems codes. A collection of DestinationSystemCode.0..1
DestinationSystemCodeDestinationSystemsCodeThe ID of the channel.[integer]1..n
FacilityInfoHotelDescriptiveContentProvides information pertaining to the hotel facility itself. The FacilityInfo class that describes the facilities provided at the hotel, including rooms.0..1
GuestRoomsFacilityInfoCollection of guest room types that are comprised within the hotel.0..1
GuestRoomGuestRoomsThe accommodation occupied by a guest.0..n
CodeGuestRoomThe ID of the room.[integer]1
@MinOccupancyGuestRoomMinimum number of guests allowed in a room type.[integer]1
@MaxOccupancyGuestRoomMaximum number of guests allowed in a room type.[integer]1
@MaxAdultOccupancyGuestRoomMaximum number of adults allowed in a room type.[integer]0..1
@MaxChildOccupancyGuestRoomMaximum number of children allowed in a room type.[integer]0..1
@SortGuestRoomUsed to define the display order.[integer]1
DescriptiveTextGuestRoomDescriptive text that describes the guest room.[string]1
TypeRoomGuestRoomDescribes the guest room type; in composite types there can be multiple occurrences.1
@NameTypeRoomText name of the type of room such as "Two Bedroom Villas".[string]1
@RoomTypeCodeTypeRoomSpecific system room type code, ex: A1K, A1Q etc.[string]1
@CompositeTypeRoomIndicates that the room (suite) is a composite of smaller units. True for a virtual room / package, false for a room.True, False1
AmenitiesGuestRoomCollection of room amenity items available to the guest.0..1
AmenityAmenitiesTangible room item(s) (e.g., newspaper) available to the guest.1..n
@IDAmenityThe ID of the amenity.[integer]1
@RoomAmenityCode  AmenityThe code of the amenity.Refer to OpenTravel Code List Room Amenity Type (RMA).0..1
@CodeDetailAmenityMay be used to give further detail on the code.[string]1
MultimediaDescriptionsGuestRoomMultimedia information about a collection of multimedia objects. Contains multimedia item(s).0..1
MultimediaDescriptionMultimediaDescriptionsA multimedia item. Describes multimedia item(s).1
ImageItemsMultimediaDescriptionA collection of image items. Collection of image items.1
ImageItemImageItemsImage of a given category.1..n
ImageFormatImageItemA set of images for a given category which may be provided in multiple formats.1
URLImageFormatURL of the multimedia item for a specific format.[string]1
HotelInfoHotelDescriptiveContentContains descriptive information about a hotel. The HotelInfo class that describes general information about the hotel.0..1
@HotelStatusCodeHotelInfoThis indicates the operating status of the hotels to be returned in the response. Refer to OpenTravel Code List HotelStatusCode. Values:1
HotelNameHotelInfoThe full name of the hotel.1
PositionHotelInfoDescribes the geocoded location of the hotel.1
@LatitudePositionThe measure of the angular distance on a meridian north or south of the equator.[decimal]1
@LongitudePositionThe measure of the angular distance on a meridian east or west of the prime meridian.[decimal]1
ServicesHotelInfoCollection of hotel services and/or amenities available to the guest.0..1
ServiceServicesA hotel service or amenity available to the guest such as a business center, concierge, valet parking, massage, newspapers, etc.1..n
@IDServiceThe ID of the amenity.[integer]1
@Code  ServiceThe code of the amenity.Refer to OpenTravel Code List Hotel Amenity Code (HAC).0..1
@CodeDetailServiceMay be used to give further detail on the code.[string]1
AffiliationInfoHotelDescriptiveContentProvides information regarding affiliations, loyalty programs and award ratings. The AffiliationInfo object is used to identify the brand or franchise affiliations of the hotel.0..1
AwardsAffiliationInfoA collection of Award elements.1
AwardAwardsProvides detailed information regarding each award for this hotel.1
@RatingAwardThe actual award or rating received by the hotel facility (e.g. 4 stars). If used in conjunction with RatingSymbol only the numeric rating would be passed here.[integer]1
@RatingSymbolAwardProvides the symbol used in the rating. Used in conjunction with the Rating.Star1
MultimediaDescriptionsHotelDescriptiveContentMultimedia information about a collection of multimedia objects. Contains multimedia item(s).0..1
MultimediaDescriptionMultimediaDescriptionsA multimedia item. Describes multimedia item(s).0..1
ImageItemsMultimediaDescriptionA collection of image items. Collection of image items.1
ImageItemImageItemsImage of a given category.1..n
ImageFormatImageItemA set of images for a given category which may be provided in multiple formats.1
URLImageFormatURL of the multimedia item for a specific format.[string]1
PoliciesHotelDescriptiveContentA collection of policy information as it applies to the hotel.1
PolicyPoliciesDescribes the policies of the hotel, such as the type of payments, or whether children or pets are accepted.1..n
CancelPolicyPolicyDefines the cancellation policy of the hotel facility. A collection of CancelPenalty.0..1
CancelPenaltyCancelPolicyDefines the cancellation penalty of the hotel facility. The CancelPenalty class defines the cancellation policy of the hotel facility.1
PenaltyDescriptionCancelPenaltyText description of the Penalty in a given language. An indication of a new paragraph for a sub-section of a formatted text message.1
TextPenaltyDescriptionFormatted text content. Provides text and indicates whether it is formatted or not.[string]1
GuaranteePaymentPolicyPolicyA collection of deposit policies, guarantees policy, and/or accepted forms of payment.0..1
GuaranteePaymentGuaranteePaymentPolicyUsed to define the deposit policy, guarantees policy, and/or accepted forms of payment.1
DescriptionGuaranteePaymentText description of the Payment in a given language. An indication of a new paragraph for a sub-section of a formatted text message.1
@LanguageDescriptionThe ID of the language.Refer to Languages code list1
TextDescriptionFormatted text content. Provides text and indicates whether it is formatted or not.[string]1
AcceptedPaymentsGuaranteePaymentCollection of forms of payment accepted for payment. Used to define the types of payments accepted.0..1
AcceptedPaymentAcceptedPaymentsAn acceptable form of payment.1..n
CashAcceptedPaymentUsed to indicate payment in cash.0..1
@CashIndicatorCashIf true, this indicates cash is being used.True, False1
PaymentCardAcceptedPaymentDetails of a debit or credit card. Specific payment card information.0..1
CardTypePaymentCardPayment card type.1
@DescriptionPaymentCardThe card description.MasterCard
American Express
Visa
1
PolicyInfoPolicyBasic property policy information.1
@CheckInTimePolicyInfoThe usual check-in time for the hotel.[hh:mm:ss]1
CheckOutTimePolicyInfoThe usual check-out time for the hotel.[hh:mm:ss]1
@NamePolicyInfoThe name of the policy.Child Policy,
Smoking Policy
0..1
DescriptionPolicyInfoText description of the Payment in a given language. An indication of a new paragraph for a sub-section of a formatted text message.1
@LanguageDescriptionThe ID of the language.Refer to Languages code list1
TextDescriptionFormatted text content. Provides text and indicates whether it is formatted or not.[string]1
PetsPoliciesPolicyProperty pet policies.0..1
PetsPolicyPetsPoliciesDetailed policy information when pets are allowed.1
DescriptionPetsPolicyA description of the pet policy. An indication of a new paragraph for a sub-section of a formatted text message.1
@LanguageDescriptionThe ID of the language.Refer to Languages code list1
TextDescriptionFormatted text content. Provides text and indicates whether it is formatted or not.[string]1
TPA_ExtensionsHotelDescriptiveContentA placeholder in the schema to allow for additional elements and attributes to be included per Trading Partner Agreement (TPA). Allows extensions to be added to the OpenTravel specification per trading partner agreement.1
HotelInfoTPA_ExtensionsContains descriptive information about a hotel. The HotelInfo class that describes general information about the hotel.0..1
ImportantInformationsHotelInfoA collection with important information.0..1
ImportantInformationImportantInformationsImportant information about the hotel.1..n
DescriptionImportantInformationText description of the Important Information in a given language. An indication of a new paragraph for a sub-section of a formatted text message.1
@LanguageDescriptionThe ID of the language.Refer to Languages code list1
TextDescriptionFormatted text content. Provides text and indicates whether it is formatted or not.[string]1
TravelInformationsHotelInfoA collection with travel information.0..1
TravelInformationTravelInformationsTravel information about the hotel.1..n
DescriptionTravelInformationText description of the Important Information in a given language. An indication of a new paragraph for a sub-section of a formatted text message.1
@LanguageDescriptionThe ID of the language.Refer to Languages code list1
TextDescriptionFormatted text content. Provides text and indicates whether it is formatted or not.[string]1
HotelServicesHotelInfoA collection of services.0..1
ServiceHotelServicesA Service object represents a non-room product provided to guests.1..n
@IDServiceA unique identifying value assigned by the creating system.[integer]1
@ServiceInventoryCodeServiceThe code of the service.[string]1
@ServiceStatusCodeServiceThe status of the service.Active,
Inactive
1
@ServiceCategoryCodeServiceThe representation of the specific service category for this specific service.None
Standard
ExtraBed
ExtraBabyCot
ExtraInfant
ExtraChild BreakfastAndDinner
Dinner3Course Dinner4Course
Breakfast
TouristTax
ReservationCharge ExtraNight3
ExtraNight4


1
@ServicePricingTypeServiceAn enumerated type that defines how a service is priced.None
PerStay
PerNight
PerAdultPerStay
PerAdultPerNight
SelectedDates
SelectedDatesPerAdult
PercentagePerStay
PercentagePerStayPerChild
PerPiece
PerPiecePerNight
PerPiecePerAdult
PerPiecePerAdultPerNight
SelectedDatesPerChild
PercentagePerStayPerAdult
PerChildPerStay
PerChildPerNight
1
@InclusiveServiceWhether the price for this service is included.True
False
1
@SortServiceUsed to define the display order.[integer]1
ServiceDetailsServiceDetails on the Service.1
ServiceNamesServiceDetailsA collection of ServiceName.0..1
ServiceNameServiceNamesName of the service.1..n
@LanguageServiceNameThe ID of the language.Refer to Languages code list1
TextServiceNameFormatted text content. Provides text and indicates whether it is formatted or not.[string]1
ServiceDescriptionsServiceDetailsA collection of ServiceDescription.0..1
ServiceDescriptionServiceDescriptionsDescription of the service. 1..n
@ LanguageServiceDescriptionThe ID of the language.Refer to Languages code list1
TextServiceDescriptionFormatted text content. Provides text and indicates whether it is formatted or not.[string]1
MultimediaDescriptionsServiceDetailsMultimedia information about a collection of multimedia objects. Contains multimedia item(s).0..1
MultimediaDescriptionMultimediaDescriptionsA multimedia item. Describes multimedia item(s).0..1
ImageItemsMultimediaDescriptionA collection of image items. Collection of image items.1
ImageItemImageItemsImage of a given category.1..n
ImageFormatImageItemA set of images for a given category which may be provided in multiple formats.1
URLImageFormatURL of the multimedia item for a specific format.[string]1  
FacilityInfoTPA_ExtensionsProvides information pertaining to the hotel facility itself. The FacilityInfo class that describes the facilities provided at the hotel, including meeting rooms restaurants.0..1
GuestRoomsFacilityInfoCollection of guest room types that are comprised within the hotel.0...1
GuestRoomGuestRoomsThe accommodation occupied by a guest.0..n
@CodeGuestRoomThe ID of the room.[integer]1
@DefaultGuestRoomThe default number of packages to offer.[integer]1
@ThresholdGuestRoomThe threshold at which to stop offering the package.[integer]1
@MasterIDGuestRoomThe ID of the master room (for master/slave). If 0, this is a master room.[integer]1
RoomPlansGuestRoomThe room plans belonging to the room.0..1
RoomPlanRoomPlansA room plan.1..n
@CodeRoomPlanThe ID of the room plan.[integer]1
@RoomTypeCodeRoomPlanThe code of the room plan.[string]1
@NameRoomPlanThe name.[string]1
@DestinationSystemsCodeRoomPlanThe ID of the channel.[integer]1
@SortRoomPlanThe sort index.[integer]1  
<?xml version="1.0" encoding="UTF-16"?>
<OTA_HotelDescriptiveInfoRS EchoToken="Example123" PrimaryLangID="eng" Target="Production" TimeStamp="2018-07-29T07:38:54.729Z" Version="1.0">
  <Success />
  <HotelDescriptiveContents>
    <HotelDescriptiveContent HotelCode="21052" HotelName="Hotel SmartPMS" CurrencyCode="EUR">
      <HotelInfo HotelStatusCode="Open">
        <HotelName>Hotel SmartPMS</HotelName>
        <Position Latitude="5204056" Longitude="4719406" />
        <Services>
          <Service ID="40" Code="0" CodeDetail="Air conditioning" />
          <Service ID="41" Code="0" CodeDetail="Anti allergenic rooms" />
          <Service ID="42" Code="0" CodeDetail="Car hire" />
          <Service ID="155" Code="0" CodeDetail="Balcony" />
        </Services>
      </HotelInfo>
      <AffiliationInfo>
        <Awards>
          <Award Rating="2" RatingSymbol="Star" />
        </Awards>
      </AffiliationInfo>
      <ContactInfos>
        <ContactInfo>
          <Names>
            <Name>
              <GivenName>SmartPMS</GivenName>
            </Name>
          </Names>
          <Addresses>
            <Address FormattedInd="True">
              <StreetNmbr>5-7</StreetNmbr>
              <AddressLine>Einsteinstraat</AddressLine>
              <PostalCode>2811 EP</PostalCode>
              <CityName>Reeuwijk</CityName>
              <StateProv>Zuid-Holland</StateProv>
              <CountryName>Netherlands</CountryName>
              <TPA_Extensions>
                <StateID>2</StateID>
                <CountryID>151</CountryID>
              </TPA_Extensions>
            </Address>
          </Addresses>
          <Emails>
            <Email>support@smarthotel.nl</Email>
          </Emails>
          <Phones>
            <Phone PhoneTechType="1" CountryAccessCode="31" AreaCityCode="182" PhoneNumber="751118" />
          </Phones>
          <URLs>
            <URL>www.smartpms.nl</URL>
          </URLs>
        </ContactInfo>
      </ContactInfos>
      <DestinationSystemsCode>
        <DestinationSystemCode>1</DestinationSystemCode>
        <DestinationSystemCode>2</DestinationSystemCode>
        <DestinationSystemCode>3</DestinationSystemCode>
      </DestinationSystemsCode>
      <FacilityInfo>
        <GuestRooms>
          <GuestRoom Code="1" MinOccupancy="2" MaxOccupancy="4" MaxAdultOccupancy="3" MaxChildOccupancy="2" Sort="1">
            <DescriptiveText>test</DescriptiveText>
            <TypeRoom Name="Comfort Room" RoomTypeCode="STD" Composite="False" />
            <Amenities>
              <Amenity ID="1" RoomAmenityCode="0" CodeDetail="Air conditioning" />
              <Amenity ID="17" RoomAmenityCode="0" CodeDetail="Heating" />
              <Amenity ID="20" RoomAmenityCode="0" CodeDetail="LAN" />
              <Amenity ID="29" RoomAmenityCode="0" CodeDetail="Shower" />
            </Amenities>
            <MultimediaDescriptions>
              <MultimediaDescription>
                <ImageItems>
                  <ImageItem>
                    <ImageFormat>
                      <URL>https://smhimages.blob.core.windows.net/imagescontainer/1000_21052_C2E1D7511AC44780A4B1D2EF39D0230C97368A75_1_o.png?v=635773879793002651</URL>
                    </ImageFormat>
                  </ImageItem>
                </ImageItems>
              </MultimediaDescription>
            </MultimediaDescriptions>
          </GuestRoom>
        </GuestRooms>
      </FacilityInfo>
      <MultimediaDescriptions>
        <MultimediaDescription>
          <ImageItems>
            <ImageItem>
              <ImageFormat>
                <URL>https://smhdev.blob.core.windows.net/imagescontainer/1000_21052_249AF65BB33DA0DC7D73CC02DF918439231F6290_1_o.png?v=636038302856283386</URL>
              </ImageFormat>
            </ImageItem>
          </ImageItems>
        </MultimediaDescription>
      </MultimediaDescriptions>
      <Policies>
        <Policy>
          <PolicyInfo CheckInTime="14:00:00" CheckOutTime="11:05:00" />
        </Policy>
        <Policy>
          <PetsPolicies>
            <PetsPolicy>
              <Description Language="1">
                <Text>Dieren</Text>
              </Description>
              <Description Language="2">
                <Text>Pets</Text>
              </Description>
            </PetsPolicy>
          </PetsPolicies>
          <CancelPolicy>
            <CancelPenalty>
              <PenaltyDescription Language="1">
                <Text>
                  <em>Bij annulering of niet komen opdagen, berekenen wij de volgende kosten door aan de klant:</em>
                  <br>Binnen 24 uur voor incheck datum -> 100% van de kamerkosten<br>Langer dan 24 uur -> geen kosten<br>
                        <br>Bij reserveringen van meer dan 3 kamers hanteren wij de Uniforme Voorwaarden Horeca<br>Langer dan 14 dagen voor aankomst -> geen kosten<br>Tussen 7 en 14 dagen voor aankomst -> 35% van de kamerkosten<br>Tussen 3 en 7 dagen voor aankomst -> 60% van de kamerkosten<br> Tussen 24 uur en 3 dagen voor aankomst -> 85% van de kamerkosten<br>Binnen 24 uur voor aankomst -> 100% van de kamerkosten</Text>
                                </PenaltyDescription>
                                <PenaltyDescription Language="2">
                                  <Text>48 hours in advance of arriving cancellation is free of charge.</Text>
                                </PenaltyDescription>
                                <PenaltyDescription Language="3">
                                  <Text>48 Stunden im Voraus Stornogebühr.</Text>
                                </PenaltyDescription>
                              </CancelPenalty>
                            </CancelPolicy>
                            <GuaranteePaymentPolicy>
                              <GuaranteePayment>
                                <Description Language="1">
                                  <Text>Direct bevestigd!</Text>
                                </Description>
                                <Description Language="2">
                                  <Text>Guaranteed!</Text>
                                </Description>
                                <AcceptedPayments>
                                  <AcceptedPayment>
                                    <Cash CashIndicator="True" />
                                  </AcceptedPayment>
                                  <AcceptedPayment>
                                    <PaymentCard>
                                      <CardType Description="AmericanExpress" />
                                    </PaymentCard>
                                  </AcceptedPayment>
                                  <AcceptedPayment>
                                    <PaymentCard>
                                      <CardType Description="MasterCard" />
                                    </PaymentCard>
                                  </AcceptedPayment>
                                  <AcceptedPayment>
                                    <PaymentCard>
                                      <CardType Description="Visa" />
                                    </PaymentCard>
                                  </AcceptedPayment>
                                </AcceptedPayments>
                              </GuaranteePayment>
                            </GuaranteePaymentPolicy>
                          </Policy>
                          <Policy>
                            <PolicyInfo Name="Child Policy">
                              <Description Language="1">
                                <Text>Kindjes</Text>
                              </Description>
                            </PolicyInfo>
                          </Policy>
                          <Policy>
                            <PolicyInfo Name="Smoking Policy">
                              <Description Language="1">
                                <Text>Roken niet toegestaan</Text>
                              </Description>
                            </PolicyInfo>
                          </Policy>
                        </Policies>
                        <TPA_Extensions>
                          <HotelInfo>
                            <ImportantInformations>
                              <ImportantInformation>
                                <Description Language="1">
                                  <Text>
                                    <b>Gaarne vooraf contact opnemen indien u of uw gast later dan 20.00 uur wilt inchecken.</b> Met een door ons toegewezen persoonlijke code kunt u zelf inchecken en heeft u daarna te allen tijde toegang tot het hotel.<br>
                                      <br>
                                        <b>Because the reception is closed at 20.00 pm please contact us in advance if you want to check in later.</b> With a programmed code, self in check is possible after 20.00 pm and with the key you have 24 access to the hotel. www.khn.nl/uvh-nl <https://www.khn.nl/uvh-nl>
                                        </Text>
                                      </Description>
                                    </ImportantInformation>
                                  </ImportantInformations>
                                  <TravelInformations>
                                    <TravelInformation>
                                      <Description Language="2">
                                        <Text>The Hotel is located at 'De Reeuwijkse Plassen'</Text>
                                      </Description>
                                    </TravelInformation>
                                    <TravelInformation>
                                      <Description Language="3">
                                        <Text>Das Hotel liegt an den Seen Reeuwijkse entfernt.</Text>
                                      </Description>
                                    </TravelInformation>
                                  </TravelInformations>
                                  <HotelServices>
                                    <Service ID="212384" ServiceInventoryCode="CHA" ServiceStatusCode="Active" ServiceCategoryCode="Standard" ServicePricingType="SelectedDates" Inclusive="False" Sort="0">
                                      <ServiceDetails>
                                        <ServiceNames>
                                          <ServiceName Language="1">
                                            <Text>Champagne</Text>
                                          </ServiceName>
                                          <ServiceName Language="2">
                                            <Text>Champagne!</Text>
                                          </ServiceName>
                                        </ServiceNames>
                                        <ServiceDescriptions>
                                          <ServiceDescription Language="1">
                                            <Text>Wilt u graag iets extra's aan uw verblijf toevoegen, bestel nu alvast een fles Champagne op uw kamer.</Text>
                                          </ServiceDescription>
                                          <ServiceDescription Language="2">
                                            <Text>Bottle of Bubbles in the room!</Text>
                                          </ServiceDescription>
                                        </ServiceDescriptions>
                                        <MultimediaDescriptions>
                                          <MultimediaDescription>
                                            <ImageItems>
                                              <ImageItem>
                                                <ImageFormat>
                                                  <URL>https://smhimages.blob.core.windows.net/imagescontainer/1000_21052_E6DD34D3D9386249DE264F1CAE3F6E9763057FF3_1_o.png?v=635711755060758113</URL>
                                                </ImageFormat>
                                              </ImageItem>
                                            </ImageItems>
                                          </MultimediaDescription>
                                        </MultimediaDescriptions>
                                      </ServiceDetails>
                                      <Price Mon="true" Tue="true" Weds="true" Thur="true">
                                        <Base AmountAfterTax="1800" DecimalPlaces="2" />
                                      </Price>
                                      <Price Fri="true" Sat="true" Sun="true">
                                        <Base AmountAfterTax="2000" DecimalPlaces="2" />
                                      </Price>
                                    </Service>
                                  </HotelServices>
                                </HotelInfo>
                                <FacilityInfo>
                                  <GuestRooms>
                                    <GuestRoom Code="1" Default="0" Threshold="0" MasterID="0">
                                      <RoomPlans>
                                        <RoomPlan Code="6" RoomTypeCode="STD" Name="Comfort Room" DestinationSystemsCode="0" Sort="1" />
                                      </RoomPlans>
                                    </GuestRoom>
                                  </GuestRooms>
                                </FacilityInfo>
                              </TPA_Extensions>
                            </HotelDescriptiveContent>
                          </HotelDescriptiveContents>
                        </OTA_HotelDescriptiveInfoRS>

Explanation on how to use IndexNumber, as these numbers always need to be unique throughout the booking process, to modify and cancel per RoomStay.
Example:
Reservation with 2 room stays, one has IndexNumber 123 and the other has 456.
Then a modification is created with 3 room stays, IndexNumbers 123, 456 and 789. This means the first 2 was modified and 789 is a new room stay.
Following a new modification with 4 room stays IndexNumbers 789, 145, 658, 987. 789 was modified, 123 and 456 were canceled and 145, 658 and 987 were booked.

Occupancies:

In the OTA_HotelDescriptiveInfoRS there are several possibilities for the attributes @MinOccupancy and @MaxOccupancy. In below schema you can find the possible occupancies for a room based on the MinOccpuancy and MaxOccupancy.

@MinOccupancy@MaxOccupancyPricing sent for:
111 person
221 & 2 persons
231,2 & 3 persons
241,2,3 & 4 persons
333 persons
444 persons

OTA_HotelRatePlanRQ/RS.

This message provides the ability to request rate plan details for hotel properties by specific criteria.

Element / @AttributeParentInfoValuesOccurrence
RatePlansOTA_HotelRatePlanRQCollection of rate plans.1
RatePlanRatePlansProvides the criteria to identify the rate plan to be returned.1..n
HotelRefRatePlanIndicates the detail of hotel reference information.1
@HotelCodeHotelRefThe ID of the hotel[integer]1
DestinationSystemsCodeRatePlanA collection of destination system codes. These are systems for which this rate plan is targeted. A collection of DestinationSystemCode.0..1
DestinationSystemsCodeDestinationSystemsCodeThe ID of the channel[integer]1
RatePlanCandidatesRatePlanCollection of requested rateplans0..1
RatePlanCandidateRatePlanCandidatesElement used to identify available products and rates.1
<?xml version="1.0" encoding="UTF-16"?>
<OTA_HotelRatePlanRQ EchoToken="Example123" PrimaryLangID="eng" Target="Production" TimeStamp="2018-07-29T07:38:54.729Z" Version="1.0">
  <POS>
    <Source>
      <RequestorID ID="APIKEY" MessagePassword="APIPASSWORD"/>
    </Source>
  </POS>
  <RatePlans>
    <RatePlan>
      <HotelRef HotelCode="21052" />
      <DestinationSystemsCode>
        <DestinationSystemCode>1</DestinationSystemCode>
      </DestinationSystemsCode>
      <RatePlanCandidates>
        <RatePlanCandidate RatePlanCode="1" />
      </RatePlanCandidates>
    </RatePlan>
  </RatePlans>
</OTA_HotelRatePlanRQ>

OTA_HotelRatePlanRS

In the TPA_Extensions you will find some attributes which are specific for the Smarthotel channel manager. The values for this will be explained below:

RateType: the RateType will define what kind of rate this rate code is. There are several values:

  1. Base Rate: Calculated rates will be calculated from the Base rate
  2. Default: This is the standard setting for a rate code
  3. Calculated: This rate will be calculated from the Base Rate
  4. Best Bar by Day: Rate type used for specific setup with RMS systems
  5. No R&A update: This rate will not send any messages to an OTA.

Masterrate: Thick this box if the rate code needs to be a master rate and the standard availability needs to be sent for this rate code.

Default: number of rooms to be send to an OTA for the Single, Triple and Quadruple column in case of a master rate.

Threshold: The number of rooms on which the Single, Triple and Quadruple colums will be closed on an OTA in case of a master rate.

CorporateType: What type of corporate rate this rate code is (currently only for selected OTAs

  1. Not Applicable: This is no corporate rate
  2. Fixed corporate: No rate update sent to connected OTA (specific OTA functionality)
  3. Corporate: In use for specific OTA.
  4. Trade fair: not in use

BBARTrigger: Specific RMS setup

Element / @AttributeParentInfoValuesOccurrence
RatePlansOTA_HotelRatePlanRSA collection of rate plans.1
RatePlanRatePlansAn individual rate plan. All details pertaining to a specific rate plan.0..n
@RatePlanCodeRatePlanThe ID of the rate.[integer]1
@DestinationSystemsCodeRatePlanThe ID of the channel.[integer]1
HotelRefRatePlanIndicates the detail of hotel reference information.1
@HotelCodeHotelRefThe ID of the hotel.[integer]1
DescriptionRatePlanDescription of the RatePlan. An indication of a new paragraph for a sub-section of a formatted text message.1
@NameDescriptionIndicates the type of the description.Name1
TextDescriptionFormatted text content.1
RatePlanLevelFeeRatePlanA Fee that is attached directly to the RatePlan. Can be used to send a global surcharge at the RatePlan level.0..1
FeeRatePlanLevelFeeFee Amount that is applied to the rate. Fees are used for non-tax amounts like service charges.1
@MealPlanCodeFeeThis describes meal plans associated with a rate plan.Refer to OpenTravel Code Table Meal Plan Type (MPT).1
BookingRulesRatePlanA collection of booking rules.1
BookingRuleBookingRulesThe BookingRule element defines restrictions to rates and stays at the hotel for a given rate plan, room type or rate plan/room type combination.1
@MaxAdvancedBookingOffsetBookingRuleMaximum days before the arrival date for which this rate plan may be booked.[integer]0..1
RequiredPaymtsBookingRuleA collection of required payments that are part of the booking restriction. A collection of required payments.0..1
GuaranteePaymentRequiredPaymtsUsed to define the deposit policy, guarantees policy, and/or accepted forms of payment.1
AmountPercentGuaranteePaymentPayment expressed as a fixed amount, or a percentage of/or room nights.1
@PercentAmountPercentThe percentage used to calculate the amount.[double]1
CancelPenaltiesBookingRuleA collection of required payments that are part of the booking restriction. A collection of CancelPenalty.1
@CancelPolicyIndicatorCancelPenaltiesWhen true, indicates a cancel policy exists. When false, no cancel policy exists. Typically this indicator is used when details are not being sent.True, False1
CancelPenaltyCancelPenaltiesDefines the cancellation penalty of the hotel facility. The CancelPenalty class defines the cancellation policy of the hotel facility.1
@NonRefundableCancelPenaltyIndicates that any prepayment for the reservation is non-refundable, therefore a 100% penalty on the prepayment is applied, irrespective of deadline.True, False1
@PolicyCodeCancelPenaltyThe ID of the cancellation policy.0 = None,
1 = Non-cancellable
2 = Time pre-arrival day
3 = Time arrival day
4 = Days before arrival day
5 = UVH
1
DeadlineCancelPenaltyCancellation deadline, absolute or relative.0..1
@AbsoluteDeadlineDeadlineDefines the absolute deadline. Either this or the offset attributes may be used.[hh:mm:ss]0..1
@OffsetDropTimeDeadlineAn enumerated type indicating when the deadline drop time goes into effect.BeforeArrival0..1
@OffsetTimeUnitDeadlineThe units of time, e.g.: days, hours, etc., that apply to the deadline.Days, Hours0..1
@OffsetUnitMultiplierDeadlineThe number of units of DeadlineTimeUnit.[integer]0..1
PenaltyDescriptionCancelPenaltyText description of the Penalty in a given language. An indication of a new paragraph for a sub-section of a formatted text message.0..1
TextPenaltyDescriptionFormatted text content.[string]0..1
AmountPercentCancelPenaltyCancellation fee expressed as a fixed amount, or percentage of/or room nights. Defines the percentage basis for calculating the fee amount or the amount.0..1
@ApplyAsAmountPercentUsed to specify how the amount needs to be applied with respect to the stay.FirstNightPayment0..1
@NmbrOfNightsAmountPercentThe number of nights of the hotel stay that are used to calculate the fee amount.[integer]0..1
@PercentAmountPercentThe percentage used to calculate the amount.[double]0..1
@BasisTypeAmountPercentProvides the basis for how the amount of the guarantee is calculated.FullStay, Nights1
SellableProductsRatePlanA collection of Sellable Products. The SellableProduct class defines the inventoried item for this rate plan.0..1
SellableProductSellableProductsThe individual sellable product. A sellable product may be a guest room, a meeting room or an inventory block. Attributes of SellableProduct are the inventory codes, information on the use, application and sequencing of the inventory information.1..n
@InvTypeCodeSellableProductThe ID of the room to link to as mentioned in the @Code attribute in the GuestRoom element in the OTA_HotelDescriptiveInfoRS [integer]1
TPA_ExtensionsOTA_HotelRatePlanRSA placeholder in the schema to allow for additional elements and attributes to be included per Trading Partner Agreement (TPA). Allows extensions to be added to the OpenTravel specification per trading partner agreement.1
RatePlansTPA_ExtensionsA collection of rate plans.1
RatePlanRatePlansAn individual rate plan. All details pertaining to a specific rate plan.0..n
@RatePlanCodeRatePlanThe ID of the rate code [integer]1
@RatePlanTypeCodeRatePlanThe code of the rate.[string]1
@SortRatePlanThe sort index.[integer]1
@IncludesTaxIndRatePlanIndicates whether tax is included (true/false).True, False1
@RateTypeRatePlanThe type of the rate:BaseRate, Default, CalculatedRate, BestBarByDay, NoRnAUpdate1
@MasterRateRatePlanIndicates whether the rate is a master rate.True, False1
@DefaultRatePlanThe rate default.[integer]1
@ThresholdRatePlanThe rate threshold.[integer]1
@CorporateTypeRatePlanThe corporate type.NotApplicable, Corporate, FixedCorporate, TradeFair1
@BBARTriggerRatePlanThe BBAR trigger.None, OpenClose, CTA, FPLOS1
RatePlanGroupsTPA_ExtensionsA collection of RatePlanGroup1
RatePlanGroupRatePlanGroupsA RatePlan0..n
@RatePlanCodeRatePlanGroupThe ID of the rate plan group.[integer]1
@RatePlanTypeCodeRatePlanGroupThe code of the rate plan group.[string]1
@SortRatePlanGroupThe sort index[integer]1
DescriptionRatePlanGroupDescription of the rate plan group.1
@NameDescriptionIndicates the type of the description.Name1
TextDescriptionFormatted text content.[string]1
<?xml version="1.0" encoding="UTF-16"?>
<OTA_HotelRatePlanRS EchoToken="Example123" PrimaryLangID="eng" Target="Production" TimeStamp="2018-07-29T07:38:54.729Z" Version="1.0">
  <Success />
  <RatePlans>
    <RatePlan RatePlanCode="1" DestinationSystemsCode="1">
      <HotelRef HotelCode="21052" />
      <Description Name="Name">
        <Text>Standard rate</Text>
      </Description>
      <RatePlanLevelFee>
        <Fee MealPlanCode="3" />
      </RatePlanLevelFee>
      <BookingRules>
        <BookingRule>
          <CancelPenalties CancelPolicyIndicator="True">
            <CancelPenalty NonRefundable="True" PolicyCode="3">
              <Deadline AbsoluteDeadline="02:00:00" />
              <AmountPercent Percent="100" />
            </CancelPenalty>
          </CancelPenalties>
        </BookingRule>
      </BookingRules>
      <SellableProducts>
        <SellableProduct InvTypeCode="1" />
        <SellableProduct InvTypeCode="2" />
        <SellableProduct InvTypeCode="3" />
        <SellableProduct InvTypeCode="4" />
        <SellableProduct InvTypeCode="8" />
        <SellableProduct InvTypeCode="10" />
        <SellableProduct InvTypeCode="13" />
      </SellableProducts>
    </RatePlan>
  </RatePlans>
  <TPA_Extensions>
    <RatePlans>
      <RatePlan RatePlanCode="1" RatePlanTypeCode="STD" Sort="4" IncludesTaxInd="False" RateType="BaseRate" MasterRate="True" Default="2" Threshold="2" CorporateType="NotApplicable" BBARTrigger="None" />
    </RatePlans>
    <RatePlanGroups>
      <RatePlanGroup RatePlanCode="1" RatePlanTypeCode="RATEPLAN" Sort="2">
        <Description Name="Name">
          <Text>Rateplan</Text>
        </Description>
      </RatePlanGroup>
    </RatePlanGroups>
  </TPA_Extensions>
</OTA_HotelRatePlanRS>

Rates & Availability.

For an OBE implementation there is only one request to perform when information about availability and prices are needed.

The OTA_HotelAvailRQ requests availability of hotel properties by specific criteria that may include: dates, date ranges, price range, room types, regular and qualifying rates, and/or services and amenities. The availability message can be used to get an initial availability or to get availability for the purpose of modifying an existing reservation.

The OTA_HotelAvailRS returns information about hotel properties that meet the requested criteria, indicating whether the requested service, rate, room stay, etc. is available within the date(s) specified. The response message may include Warnings from business processing rules, or Errors if the request did not succeed.

OTA_HotelAvailGetRQ/RS.

Provides the ability to request availability details for hotel properties by specific criteria that may include dates, date ranges, rates, rooms and products. For example to fill calendars on a Booking Engine.

OTA_HotelAvailGetRQ

Element / @Attribute Parent Info Values Occurrence 
HotelAvailRequests OTA_HotelAvailGetRQ Container for the individual HotelAvailRequests(s). 
HotelAvailRequest HotelAvailRequests Provides the criteria to specify availability details to return. The criteria can include date ranges, room and products, rate plans, hurdle rate, etc. 
DateRange HotelAvailRequest A date or range of dates for the request criteria. 
@Start  DateRange The starting value of the time span. [yyyy-MM-dd] 
@End  DateRange The ending value of the time span. [yyyy-MM-dd] 
HotelRef HotelAvailRequest Indicates the detail of hotel reference information. 
@HotelCode  HotelRef The ID of the hotel. [integer] 
DestinationSystemsCode HotelAvailRequest A collection of destination system codes. These are systems for which this request is targeted. A collection of DestinationSystemCode. 0..1 
DestinationSystemCode DestinationSystemsCode The ID of the channel. [integer] 
RoomTypeCandidates HotelAvailRequest Collection of room stay candidates. 0..1 
RoomTypeCandidate RoomTypeCandidates Element used to specify room products. 
@RoomTypeCode  The ID of the room. [integer] 
RatePlanCandidates HotelAvailRequest Collection of requested rate plans. 0..1 
RatePlanCandidate RatePlanCandidates Element used to identify available products and rates. 
RatePlanCode  RatePlanCandidate The ID of the rate. [integer] 
<?xml version="1.0" encoding="UTF-16"?>
<OTA_HotelAvailGetRQ EchoToken="Example123" PrimaryLangID="eng" Target="Production" TimeStamp="2018-07-29T07:38:54.729Z" Version="1.0">
  <POS>
    <Source>
      <RequestorID ID="APIKEY" MessagePassword="APIPASSWORD"/>
    </Source>
  </POS>
  <HotelAvailRequests>
    <HotelAvailRequest>
      <DateRange Start="2018-07-29" End="2018-07-29" />
      <HotelRef HotelCode="21052" />
      <DestinationSystemsCode>
        <DestinationSystemCode>1</DestinationSystemCode>
      </DestinationSystemsCode>
      <RoomTypeCandidates>
        <RoomTypeCandidate RoomTypeCode="1" />
      </RoomTypeCandidates>
      <RatePlanCandidates>
        <RatePlanCandidate RatePlanCode="1" />
      </RatePlanCandidates>
    </HotelAvailRequest>
  </HotelAvailRequests>
</OTA_HotelAvailGetRQ>

OTA_HotelAvailGetRS

Element / @Attribute Parent Info Values Occurrence 
AvailStatusMessages OTA_HotelAvailGetRS Container for the individual AvailStatusMessage(s). An OTA_HotelAvailGetRS contains the availability statuses for a single hotel. Hotel identification information are the attributes of this element. 
@HotelCode  AvailStatusMessages The ID of the hotel. [integer] 
AvailStatusMessage AvailStatusMessages The AvailStatusMessage indicates whether the inventory is opened, closed, etc. 1..n 
@BookingLimit  AvailStatusMessage Number of units of inventory that can be sold. [integer] 
StatusApplicationControl AvailStatusMessage Information on what the AvailStatus Message applies to (i.e. the combination of inventory and rate codes) and the period of application. The StatusApplicationControl class is used to indicate to which block codes/rate plans/inventory codes a status should be applied. 
@InvTypeCode  StatusApplicationControl The ID of the room. [integer] 
@RatePlanCode  StatusApplicationControl The ID of the rate. [integer] 
@RateTier  StatusApplicationControl The ID of the channel. [integer] 
@Start  StatusApplicationControl The starting value of the time span. [yyyy-MM-dd] 
@End  StatusApplicationControl The ending value of the time span. [yyyy-MM-dd] 
@Mon, @Tue, @Weds, @Thur, @Fri, @Sat, @Sun  StatusApplicationControl When true, applies only to a particular day. True, False 0..1 
BestAvailableRates AvailStatusMessage A collection of the best rates available. 
BestAvailableRate BestAvailableRates The details of a best available rate. 1..n 
@Amount  BestAvailableRate A monetary amount. [numeric] 
@DecimalPlaces  BestAvailableRate The ISO 4217 standard "minor unit" for the number of decimal places for a particular currency. [integer] 
@AgeQualifyingCode  BestAvailableRate Defines an age range or age category of a guest.  Refer to OpenTravel Code List Age Qualifying Code (AQC). 
@NumberOfGuests  BestAvailableRate The number of guests associated with this base charge, only required when AgeQualifyingCode is set to ‘10’. 1 = Single use 
2 = Standard use
3 = Triple use
4 = Quad use
0 = Extra person
0..1 
RestrictionStatus AvailStatusMessage Availability status assigned to the room rate combination for this booking rule. 0..n 
@Restriction  RestrictionStatus The type of the restriction. Arrival 
Departure
Master (default)
0..1
@Status  RestrictionStatus The status. Open 
Close
LengthsOfStay AvailStatusMessage A collection of lengths of stay. A collection of LengthOfStay. 0..1 
@FixedPatternLength  LengthsOfStay The number of elements in a fixed pattern length of stay (FPLOS) array. [integer] 
LengthOfStay LengthsOfStay A collection of patterns defining allowable lengths of stay (LOS). 1..n 
@MinMaxMessageType  LengthOfStay An enumerated type used to define how the minimum and maximum LOS is applied: MinLOS 
MaxLOS
@Time  LengthOfStay Used in conjunction with the MinMaxMessageType and the TimeUnit to define the length of stay requirements. (Only applicable for MinMaxMessageType ‘MinLOS’ and ‘MaxLOS’.) [integer] 0..1 
LOS_Pattern LengthOfStay Used to define the LOS Pattern. 0..1 
@FullPatternLOS  LOS_Pattern This may be used when MinMaxMessageType is FullPatternLOS to identify the open and closed status by LOS (e.g., if LengthsOfStay@FixedPatternLength="7" then FullPatternLOS="YYNYYYY"). [string] 
<?xml version="1.0" encoding="UTF-16"?>
<OTA_HotelAvailGetRS EchoToken="Example123" PrimaryLangID="eng" Target="Production" TimeStamp="2018-07-29T07:38:54.729Z" Version="1.0">
  <Success />
  <AvailStatusMessages HotelCode="21052">
    <AvailStatusMessage BookingLimit="5">
      <StatusApplicationControl InvTypeCode="1" RatePlanCode="1" RateTier="1" Start="2018-07-29" End="2018-07-29" Mon="true" Fri="true" />
      <BestAvailableRates>
        <BestAvailableRate Amount="4995" DecimalPlaces="2" AgeQualifyingCode="10" NumberOfGuests="2" />
        <BestAvailableRate Amount="2550" DecimalPlaces="2" AgeQualifyingCode="7" />
      </BestAvailableRates>
      <RestrictionStatus Restriction="Master" Status="Open" />
      <RestrictionStatus Restriction="Arrival" Status="Close" />
      <RestrictionStatus Restriction="Departure" Status="Close" />
      <LengthsOfStay FixedPatternLength="7">
        <LengthOfStay MinMaxMessageType="MinLOS" Time="2" />
        <LengthOfStay MinMaxMessageType="MaxLOS" Time="7" />
        <LengthOfStay MinMaxMessageType="FullPatternLOS">
          <LOS_Pattern FullPatternLOS="YYYNNNN" />
        </LengthOfStay>
      </LengthsOfStay>
    </AvailStatusMessage>
  </AvailStatusMessages>
</OTA_HotelAvailGetRS>

OTA_HotelAvailRQ/RS.

OTA_HotelAvailRQ

Requests availability of hotel properties by specific criteria that may include: dates, date ranges, price range, room types, regular and qualifying rates, and/or services and amenities. The availability message can be used to get an initial availability or to get availability for the purpose of modifying an existing reservation.

Element / @AttributeParentInfoValuesOccurrence
AvailRequestSegmentsOTA_HotelAvailRQA collection of AvailRequestSegment. Each segment includes a collection of criteria that requests a bookable entity, which may include designated rate plans, room types, amenities or services, and the request can be used for guest rooms or other inventory items for which availability is sought. Each segment would be presumed to have a unique date range for each request.1
AvailRequestSegmentAvailRequestSegmentsTo accommodate the ability to perform multiple requests within one message, the availability request contains the repeating element, AvailRequestSegment. Each segment includes a collection of criteria that requests a bookable entity, which may include designated rate plans, room types, amenities or services, and the request can be used for guest rooms or other inventory items for which availability is sought. Each segment would be presumed to have a unique date range for each request.1..n
HotelSearchCriteriaAvailRequestSegmentHYotelsearch criteria.1
@BestOnlyIndicatorHotelSearchCriteriaWhen true, return only the lowest room rate for hotels that are available.True
False
0..1
CriterionHotelSearchCriteriaChild elements that identify a single search criterion by criteria type. Because many of the types include partial matches to string values such as partial addresses (street names without a number). A ExactMatch attribute indicates whether the match to the string value must be exact.1
@ExactMatchCriterionValues of "true" or "false", indicating whether the string of the search value must be an exact match.True
False
0..1
HotelRefCriterionIndicates the detail of hotel reference information.0..1
@HotelCodeHotelRefThe ID of the hotel.[integer]0..1
RatePlanCandidatesCriterionCollection of requested rate plans.0..1
RatePlanCandidateRatePlanCandidatesElement used to identify available products and rates.1
RatePlanCodeRatePlanCandidateThe ID of the rate.[integer]1
RoomStayCandidatesCriterionCollection of room stay candidates.0..1
RoomStayCandidateRoomStayCandidateElement used to identify available room products. Used to identify available room products.1
@RoomIDRoomStayCandidateThe ID of the room.[integer]0..1
@QuantityRoomStayCandidateDefines the number of the item in question. Used for Numeric values, from 1 to 9999 inclusive.[integer]1
GuestCountsRoomStayCandidateA collection of GuestCount by age group.1
@IsPerRoomGuestCountsIsPerRoom means that the guests defined in the GuestCounts object apply to each room in the NumberOfRooms for the RoomStay. Value of "false" means that the guests defined in the GuestCounts object apply to all rooms combined in the NumberOfRooms for the RoomStay.True
False
1
GuestCountGuestCountsA recurring element that identifies the number of guests and ages of the guests.1..n
@AgeQualifyingCodeGuestCountA code representing a business rule that determines the charges for a guest based upon age range. This attribute allows for an increase in rate by occupant class.Refer to Code List Age Qualifying Code (AQC).
1
@CountGuestCountThe number of guests in one AgeQualifyingCode or Count.[integer]1
StayDateRangeCriterionRange of dates, or fixed set of dates for Availability Request. Date range can also be specified by using start dates and number of nights (minimum, maximum or fixed). Used to specify a time window range by either specifying an earliest and latest date for the start date and end date or by giving a date with a time period that can be applied before and/or after the start date.1
@StartStayDateRangeThe starting value of the time span.[yyyy-MM-dd]1
@EndStayDateRangeThe ending value of the time span.[yyyy-MM-dd]1
AwardCriterionAn element that identifies the hotel ratings.0..1
@RatingAwardThe actual award or rating received by the hotel facility.[integer]1
AddressCriterionUses any part of address information, such as street name, postal code, or country code.0..1
@FormattedIndAddressSpecifies if the associated data is formatted or not. When true, then it is formatted; when false, then not formatted.True
False
1
AddressLineAddressWhen the address is unformatted (FormattedInd="false") these lines will contain free form address details. When the address is formatted and street number and street name must be sent independently, the street number will be sent using StreetNmbr, and the street name will be sent in the first AddressLine occurrence.[string]0..1
StreetNmbrAddressMay contain the street number and optionally the street name.[string]0..1
PostalCodeAddressPost Office Code number.[string]0..1
CityNameAddressCity (e.g., Dublin), town, or postal station (i.e., a postal service territory, often used in a military address).[string]0..1
StateProvAddressState or Province name (e.g., Zuid-Holland). State, province, or region name or code needed to identify location.[string]0..1
CountryNameAddressCountry name (e.g., Ireland). The name or code of a country (e.g. as used in an address or to specify citizenship of a traveller).[string]0..1
<?xml version="1.0" encoding="UTF-16"?>
<OTA_HotelAvailRQ EchoToken="Example123" PrimaryLangID="eng" Target="Production" TimeStamp="2018-07-29T07:38:54.729Z" Version="1.0">
  <POS>
    <Source>
      <RequestorID ID="APIKEY" MessagePassword="APIPASSWORD"/>
    </Source>
  </POS>
  <AvailRequestSegments>
    <AvailRequestSegment>
      <HotelSearchCriteria BestOnlyIndicator="false">
        <Criterion ExactMatch="false">
          <HotelRef HotelCode="21052" />
          <RatePlanCandidates>
            <RatePlanCandidate RatePlanCode="1" />
          </RatePlanCandidates>
          <RoomStayCandidates>
            <RoomStayCandidate RoomID="1" Quantity="1">
              <GuestCounts IsPerRoom="true">
                <GuestCount AgeQualifyingCode="10" Count="2" />
              </GuestCounts>
            </RoomStayCandidate>
          </RoomStayCandidates>
          <StayDateRange Start="2018-08-04" End="2018-08-05" />
          <Award Rating="2" />
          <Address>
            <AddressLine/>
            <StreetNmbr/>
            <PostalCode/>
            <CityName/>
            <StateProv/>
            <CountryName/>
          </Address>
        </Criterion>
      </HotelSearchCriteria>
    </AvailRequestSegment>
  </AvailRequestSegments>
</OTA_HotelAvailRQ>

OTA_HotelAvailRS

Returns information about hotel properties that meet the requested criteria, indicating whether the requested service, rate, room stay, etc. is available within the date(s) specified. The response message may include Warnings from business processing rules, or Errors if the request did not succeed.

Element / @AttributeParentInfoValuesOccurrence
HotelStaysOTA_HotelAvailRSA collection of summarized information about the requested hotels' general availability for each day in the requested range.1
HotelStayHotelStaysA quick view of the requested hotels' general availability for each day in the requested range.0..n
@RoomStayRPHHotelStayReferences one or more room stays associated with this hotel stay.[integer]1
BasicPropertyInfoHotelStayProperty Information for the Hotel Stay. An abbreviated short summary of hotel descriptive information.1
@HotelCodeBasicPropertyInfoThe ID of the hotel.[integer]1
@HotelNameBasicPropertyInfoA text field used to communicate the proper name of the hotel.[string]1
@ChainCodeBasicPropertyInfoThe ID of the chain.[integer]0..1
AddressBasicPropertyInfoPublic address of the hotel property. Information about an address that identifies a location for a specific purpose.1
@FormattedIndAddressSpecifies if the associated data is formatted or not. When true, then it is formatted; when false, then not formatted.True
False
1
StreetNmbrAddressMay contain the street number and optionally the street name.[string]0..1
AddressLineAddressWhen the address is unformatted (FormattedInd="false") these lines will contain free form address details. When the address is formatted and street number and street name must be sent independently, the street number will be sent using StreetNmbr, and the street name will be sent in the first AddressLine occurrence.[string]1
PostalCodeAddressPost Office Code number.[string]1
CityNameAddressCity (e.g., Dublin), town, or postal station (i.e., a postal service territory, often used in a military address).[string]1
StateProvAddressState or Province name (e.g., Zuid-Holland).[string]1
CountryNameAddressCountry name (e.g., Ireland).[string]1
TPA_ExtensionsAddressA placeholder in the schema to allow for additional elements and attributes to be included per Trading Partner Agreement (TPA).1
StateIDTPA_ExtensionsThe ID of the state.[integer]1
CountryIDTPA_ExtensionsThe ID of the country.[integer]1
AwardBasicPropertyInfoAn element that identifies the hotel ratings.1
@RatingAwardThe actual award or rating received by the hotel facility.[integer]1
ContactNumbersBasicPropertyInfoCollection of hotel contact numbers.1
ContactNumberContactNumbersContact numbers of the hotel property. Examples are telephone and fax numbers.1..n
@PhoneTechTypeContactNumberIndicates type of technology associated with this telephone number.Refer to Code List Phone Technology Type (PTT). 1
@CountryAccessCodeContactNumberCode assigned by telecommunications authorities for international country access identifier.[integer]0..1
@AreaCityCodeContactNumberCode assigned for telephones in a specific region, city, or area.[integer]0..1
@PhoneNumberContactNumberTelephone number assigned to a single location.[integer]1
PolicyBasicPropertyInfoPolicy information for this hotel.1
@CheckInTimePolicyThe checkin time required by this hotel for a room stay.[hh:mm:ss]1
@CheckOutTimePolicyThe checkout time required by this hotel for a room stay.[hh:mm:ss]1
PositionBasicPropertyInfoAn element that identifies the geographic position of the hotel. The Position element uses the representation defined by ISO Standard 6709 to define a geographic point location.1
@LatitudePositionThe measure of the angular distance on a meridian north or south of the equator.[decimal]1
@LongitudePositionThe measure of the angular distance on a meridian east or west of the prime meridian.[decimal]1
RoomStaysOTA_HotelAvailRSA collection of details on the Room Stay including Guest Counts, Time Span of this Room Stay, and financial information related to the Room Stay, including Guarantee, Deposit and Payment and Cancellation Penalties.1
RoomStayRoomStaysDetails on the Room Stay including Guest Counts, Time Span of this Room Stay, and financial information related to the Room Stay, including Guarantee, Deposit and Payment and Cancellation Penalties.0..n
@IsAlternateRoomStayIndicates the RoomStay is an alternate offer. Default=false.True
False
1
@RoomStayGroupIDRoomStayAn ID of a group of rooms which must be booked together.[integer]1
@RPHRoomStayIdentifies the room stay for use in the hotel stay.[integer]1
TimeSpanRoomStayThe Time Span which covers the Room Stay. Used to specify a time window range by either specifying an earliest and latest date for the start date and end date or by giving a date with a time period that can be applied before and/or after the start date.1
@StartTimeSpanThe starting value of the time span.[hh:mm:ss]1
@EndTimeSpanThe ending value of the time span.[hh:mm:ss]1
RoomTypesRoomStayA collection of Room Types associated with a particular Room Stay.1
RoomTypeRoomTypesProvides details regarding rooms, usually guest rooms.1
@RoomIDRoomTypeThe ID of the room.[integer]1
@RoomTypeCodeRoomTypeSpecific system room type code, ex: A1K, A1Q etc.[string]1
@CompositeRoomTypeIndicates that the room (suite) is a composite of smaller units. True for a virtual room / package, false for a room.True
False
1
RoomDescriptionRoomTypeTextual information regarding the room. An indication of a new paragraph for a sub-section of a formatted text message.1
TextRoomDescriptionFormatted text content.[string]1
OccupancyRoomTypeProvides parameters of occupancy limits.0..n
@AgeQualifyingCodeOccupancyDefines an age range or age category of a guest.Refer to Code List Age Qualifying Code (AQC). 1
@MaxOccupancyOccupancyMaximum number of persons allowed in a unit of accommodation or place.[integer]1
RatePlansRoomStayA collection of Rate Plans associated with a particular Room Stay.1
RatePlanRatePlansDefines the details of the rate plan as used in the booking process.1
@RatePlanCodeRatePlanThe ID of the rate.[integer]1
@RatePlanNameRatePlanProvides the name of the rate plan or group.[string]1
@AvailableQuantityRatePlanProvides the number of rooms available within this rate plan.[integer]1
RatePlanDescriptionRatePlanDescribes the rate plan. An indication of a new paragraph for a sub-section of a formatted text message.1
TextRatePlanDescriptionFormatted text content.[string]1
MealsIncludedRatePlanDefines which meals are included with this rate program.1
@MealPlanIndicatorMealsIncludedWhen true, a meal plan is included in this rate plan. When false, a meal plan is not included in this rate plan.True
False
1
@MealPlanCodesMealsIncludedUsed to identify the types of meals included with a rate plan.Refer to Code List Meal Plan Type (MPT). 1
CancelPenaltiesRatePlanA collection of required payments that are part of the booking restriction. A collection of CancelPenalty.1
CancelPenaltyCancelPenaltiesDefines the cancellation penalty of the hotel facility. The CancelPenalty class defines the cancellation policy of the hotel facility.1
@CancelPolicyIndicatorCancelPenaltyWhen true, indicates a cancel policy exits. When false, no cancel policy exists. Typically this indicator is used when details are not being sent.True
False
1
@NonRefundableCancelPenaltyIndicates that any prepayment for the reservation is non-refundable, therefore a 100% penalty on the prepayment is applied, irrespective of deadline.True
False
1
DeadlineCancelPenaltyCancellation deadline, absolute or relative.0..1
@AbsoluteDeadlineDeadlineDefines the absolute deadline. Either this or the offset attributes may be used.[integer]0..1
@OffsetDropTimeDeadlineAn enumerated type indicating when the deadline drop time goes into effect.BeforeArrival0..1
@OffsetTimeUnitDeadlineThe units of time, e.g.: days, hours, etc., that apply to the deadline.Days0..1
@OffsetUnitMultiplierDeadlineThe number of units of DeadlineTimeUnit.[integer]0..1
PenaltyDescriptionCancelPenaltyText description of the Penalty in a given language. An indication of a new paragraph for a sub-section of a formatted text message.0..1
TextPenaltyDescriptionFormatted text content.[string]1
AmountPercentCancelPenaltyCancellation fee expressed as a fixed amount, or percentage of/or room nights. Defines the percentage basis for calculating the fee amount or the amount.0..1
@ApplyAsAmountPercentUsed to specify how the amount needs to be applied with respect to the stay.FirstNightPayment0..1
@NmbrOfNightsAmountPercentThe number of nights of the hotel stay that are used to calculate the fee amount.[integer]0..1
@PercentAmountPercentThe percentage used to calculate the amount.[double]0..1
RoomRatesRoomStayA collection of Room Rates associated with a particular Room Stay.1
RoomRateRoomRatesA room rate.1
RatesRoomRateIndividual rate amount. This rate is valid for a range of number of occupants and an occupant type. Individual rate amount. This rate is valid for a range of number of occupants and an occupant type.1
RateRatesThe Rate contains a collection of elements that define the amount of the rate, associated fees, additional occupant amounts as well as payment and cancellation policies. Taxes can be broken out or included within the various amounts. A currency can be associated to each amount. The applicable period of the rate are indicated by the effective dates. Restrictions that may apply to that rate, such as the minimum or maximum length of stay, stay-over dates (such as a Saturday night), min/max guests applicable for the rate, and age group (ex Adult) are attributes of Rate. It indicates the number of units that the quoted rate is based upon, as well as the TimeUnits type used that the rate is based upon, e.g.: 3days at $100.00 per day.1..n
@EffectiveDateRateIndicates the starting date.[yyyy-MM-dd]1
BaseRateThe base amount charged for the accommodation or service per unit of time (ex: Nightly, Weekly, etc). Note that any additional charges should itemized in the other elements. The total amount charged for the service including additional amounts and fees.1
@AmountBeforeTaxBaseThe total amount not including any associated tax (e.g., sales tax, VAT, GST or any associated tax).[numeric]1
@AmountAfterTaxBaseThe total amount including all associated taxes (e.g., sales tax, VAT, GST or any associated tax).[numeric]1
@DecimalPlacesBaseThe ISO 4217 standard "minor unit" for the number of decimal places for a particular currency.[integer]1
@CurrencyCodeBaseAn ISO 4217 (3) alpha character code that specifies a monetary unit.[string]1
TotalRoomStayThe total amount charged for the Room Stay including additional occupant amounts and fees. If TaxInclusive is set to True, then taxes are included in the total amount. The total amount charged for the service including additional amounts and fees.1
@AmountBeforeTaxTotalThe total amount not including any associated tax (e.g., sales tax, VAT, GST or any associated tax).[numeric]1
@AmountAfterTaxTotalThe total amount including all associated taxes (e.g., sales tax, VAT, GST or any associated tax).[numeric]1
@DecimalPlacesTotalThe ISO 4217 standard "minor unit" for the number of decimal places for a particular currency.[integer]1
@CurrencyCodeTotalAn ISO 4217 (3) alpha character code that specifies a monetary unit.[string]1
GuestCountsRoomStayA collection of Guest Counts associated with Room Stay. A child Guest Count element is required for each distinct age group. A collection of GuestCount by age group.1
GuestCountGuestCountsA recurring element that identifies the number of guests and ages of the guests.1..n
@AgeQualifyingCodeGuestCountA code representing a business rule that determines the charges for a guest based upon age range. This attribute allows for an increase in rate by occupant class.Refer to Code List Age Qualifying Code (AQC). 1
@CountGuestCountThe number of guests in one AgeQualifyingCode or Count.[integer]1
<?xml version="1.0" encoding="UTF-16"?>
<OTA_HotelAvailRS EchoToken="Example123" PrimaryLangID="eng" Target="Production" TimeStamp="2018-07-29T07:38:54.729Z" Version="1.0">
  <Success />
  <HotelStays>
    <HotelStay>
      <BasicPropertyInfo HotelCode="21052" HotelName="Hotel SmartPMS" CurrencyCode="EUR">
        <Address FormattedInd="True">
          <StreetNmbr>5-7</StreetNmbr>
          <AddressLine>Einsteinstraat</AddressLine>
          <PostalCode>2811 EP</PostalCode>
          <CityName>Reeuwijk</CityName>
          <StateProv />
          <CountryName>NL</CountryName>
          <TPA_Extensions>
            <StateID>2</StateID>
          </TPA_Extensions>
        </Address>
        <Award Rating="2" />
        <ContactNumbers>
          <ContactNumber PhoneTechType="1" CountryAccessCode="31" AreaCityCode="182" PhoneNumber="751118" />
        </ContactNumbers>
        <Policy CheckInTime="14:00:00" CheckOutTime="14:00:00" />
        <Position Latitude="5204056" Longitude="4719406" />
      </BasicPropertyInfo>
    </HotelStay>
  </HotelStays>
  <RoomStays>
    <RoomStay>
      <TimeSpan Start="2018-08-04" End="2018-08-06" />
      <RoomTypes>
        <RoomType RoomID="1" RoomTypeCode="STD" Composite="False">
          <RoomDescription>
            <Text>Comfort Room</Text>
          </RoomDescription>
          <Occupancy AgeQualifyingCode="7" MaxOccupancy="1" />
          <Occupancy AgeQualifyingCode="8" MaxOccupancy="2" />
          <Occupancy AgeQualifyingCode="10" MaxOccupancy="3" />
        </RoomType>
      </RoomTypes>
      <RatePlans>
        <RatePlan RatePlanCode="1" RatePlanName="Standaard" AvailableQuantity="8">
          <RatePlanDescription>
            <Text />
          </RatePlanDescription>
          <MealsIncluded MealPlanIndicator="True" MealPlanCodes="3" />
          <CancelPenalties>
            <CancelPenalty CancelPolicyIndicator="True" NonRefundable="True">
              <Deadline AbsoluteDeadline="02:00:00" />
              <AmountPercent Percent="100" />
            </CancelPenalty>
          </CancelPenalties>
        </RatePlan>
      </RatePlans>
      <RoomRates>
        <RoomRate>
          <Rates>
            <Rate EffectiveDate="2018-08-04">
              <Base AmountBeforeTax="20000" AmountAfterTax="20000" DecimalPlaces="2" CurrencyCode="EUR" />
            </Rate>
            <Rate EffectiveDate="2018-08-05">
              <Base AmountBeforeTax="21000" AmountAfterTax="21000" DecimalPlaces="2" CurrencyCode="EUR" />
            </Rate>
          </Rates>
        </RoomRate>
      </RoomRates>
      <GuestCounts>
        <GuestCount AgeQualifyingCode="10" Count="2" />
      </GuestCounts>
      <Total AmountBeforeTax="41000" AmountAfterTax="41000" DecimalPlaces="2" CurrencyCode="EUR" />
    </RoomStay>
    <RoomStay>
      <TimeSpan Start="2018-08-04" End="2018-08-06" />
      <RoomTypes>
        <RoomType RoomID="1" RoomTypeCode="STD" Composite="False">
          <RoomDescription>
            <Text>Comfort Room</Text>
          </RoomDescription>
          <Occupancy AgeQualifyingCode="7" MaxOccupancy="1" />
          <Occupancy AgeQualifyingCode="8" MaxOccupancy="2" />
          <Occupancy AgeQualifyingCode="10" MaxOccupancy="3" />
        </RoomType>
      </RoomTypes>
      <RatePlans>
        <RatePlan RatePlanCode="2" RatePlanName="Non refundable" AvailableQuantity="8">
          <RatePlanDescription>
            <Text />
          </RatePlanDescription>
          <MealsIncluded MealPlanIndicator="False" />
          <CancelPenalties>
            <CancelPenalty CancelPolicyIndicator="True" NonRefundable="True">
              <Deadline AbsoluteDeadline="02:00:00" />
            </CancelPenalty>
          </CancelPenalties>
        </RatePlan>
      </RatePlans>
      <RoomRates>
        <RoomRate>
          <Rates>
            <Rate EffectiveDate="2018-08-04">
              <Base AmountBeforeTax="6000" AmountAfterTax="6000" DecimalPlaces="2" CurrencyCode="EUR" />
            </Rate>
            <Rate EffectiveDate="2018-08-05">
              <Base AmountBeforeTax="7000" AmountAfterTax="7000" DecimalPlaces="2" CurrencyCode="EUR" />
            </Rate>
          </Rates>
        </RoomRate>
      </RoomRates>
      <GuestCounts>
        <GuestCount AgeQualifyingCode="10" Count="2" />
      </GuestCounts>
      <Total AmountBeforeTax="13000" AmountAfterTax="13000" DecimalPlaces="2" CurrencyCode="EUR" />
    </RoomStay>
  </RoomStays>
</OTA_HotelAvailRS>

Reservations.

The OTA_HotelResNotifRQ/RS supports the functionality of updating other systems with reservation data. The message assumes a push model, with the originating system pushing the data to another system. The originating system would usually be a booking source. This call is used to push new created reservations to the channel manager or the PMS.

The OTA_HotelResModifyNotifRQ/RS is used for modifying a reservation. It is used for a full overlay of the reservation. When changing data that requires an availability check, this message assumes the availability is known. (if availability is not known an availability check including the reservation ID may be useful).

The OTA_CancelRQ/RS is a generic message, available as an action on several OpenTravel services which requests a server to cancel the booking identified by the UniqueID element.

OTA_HotelResNotifRQ/RS.

Smarthotel supports the PUSH method for transferring reservations. This means that as soon as a new reservation is created at the originated system, the originated system is responsible for sending this reservation through to the connected system.

The same external reservation number must be used for the lifespan of the reservation through all its possible mutations (booking, modifications, and cancellation).

OTA_HotelResNotifRQ

This message supports the functionality of updating other systems with reservation data. The message assumes a push model, with the originating system pushing the data to another system. The originating system would usually be a booking source.

Element / @AttributeParentInfoValuesOccurrence
HotelReservationsOTA_HotelResNotifRQ1
HotelreservationHotelReservations1..n
@ResStatusHotelReservationBook1
@CreateDateTimeHotelReservationyyyy-mm-ddThh:mm:ss1
RoomStaysHotelReservation1
RoomStayRoomStays1..n
@IndexNumberRoomStayPlease find the description on how to use the IndexNumber under this table1..n0..1
RoomTypesRoomStays1
RoomTypeRoomTypes1..n
@RoomTypeCodeRoomType1
@NumberOfUnitsRoomType1..n1
RoomRatesRoomStay1
RoomRateRoomRates1..n
@RatePlanCodeRoomRate1
RatesRoomRate1
RateRates1
@EffectiveDateRateyyyy-mm-dd1
BaseRate1
@AmountAfterTaxBaseNo decimal point: 120.50 becomes 120501
@AmountBeforeTaxBaseNo decimal point: 120.50 becomes 120501
@CurrencyCodeBaseEUR
USD
1
@DecimalPlacesBase21
RatePlansRoomStay1
RatePlanRatePlans0..1
MealsIncludedMealsIncluded0..1
@MealPlanCodesMealsIncludedPlease Refer to the Code List Meal Plan Type (MPT)1
CommissionRatePlan0..1
CommissionPayableAmountCommission1
@AmountCommissionPayableAmount1
@DecimalPlacesCommissionPayableAmount1
@CurrencyCodeCommissionPayableAmount1
GuestCountsRoomStay1
GuestCountGuestCounts1..n
@AgeQualifyingCodeGuestCountPlease Refer to the Code List Age Qualifying Code (AQC)1
@CountGuestCount1..n1
TimeSpanRoomStay1
@StartTimeSpanCheck in Dateyyyy-mm-dd1
@EndTimeSpanCheck out Dateyyyy-mm-dd1
CommentsRoomStay0..1
CommentComments1..n
TextCommentComment included as CDATA, to prevent invalid characters from breaking the XML.1
SpecialRequestsRoomStay0..n
SpecialRequestSpecialRequests1..n
Text SpecialRequestRequest included as CDATA, to prevent invalid characters from breaking the XML.1
TotalRoomStayTotal of the RoomStay1
@AmountAfterTaxTotalNo decimal point: 120.50 becomes 120501
@AmountBeforeTaxTotalNo decimal point: 120.50 becomes 120501
@CurrencyCodeTotalEUR1
USD
@DecimalPlacesTotal21
TaxesTotal0..1
TaxTax1
@AmountTaxNo decimal point: 120.50 becomes 120501
@DecimalPlacesTax21
@CurrencyCodeTaxEUR
USD
1
ResGuestRPHsRoomStayReference which ResGuest is in which RoomStay1
@ServiceRPHServiceA unique ID for a service that may be referenced elsewhere in the schema.[integer]1
@RPHResGuestRPHThe reference number of the guest. Must stay consistent with the RPH values defined in ResGuest.1
ServicesHotelReservationCollection of services. A collection of Service objects. This is the collection of all services associated with any part of this reservation (the reservation in its entirety, one or more guests, or one or more room stays). Which services are attributable to which part is determined by each object's ServiceRPHs collection.1
ServiceServicesA Service object represents a non-room product provided to guests. Service products may have associated inventory and charges. 0..n
@ServiceInventoryCodeServiceThe external code of the room the service applies to.[integer]1
@IDServiceA unique identifying value assigned by the creating system. The ID attribute may be used to reference a primary-key value within a database or in a particular implementation.[integer]1
PriceServiceThe selling price of this Service.1
@NumberOfUnitsPriceThe number of services. [integer]1
BasePriceThe base amount charged for the service per unit of time.1
@AmountAfterTaxPriceThe total amount including all associated taxes.[numeric]1
@DecimalPlacesPriceThe ISO 4217 standard "minor unit" for the number of decimal places for a particular currency.[integer]0..1
ServiceDetailsServiceDetails on the Service including Guest Counts, Time Span of this Service, pointers to Res Guests, guest Memberships, Comments and Special Requests pertaining to this particular Service and finally financial information related to the Service, including Guarantee, Deposit and Payment and Cancellation Penalties.1
GuestCountsServiceDetailsA collection of Guest Counts associated to the whole Reservation or a particular Room Stay or Service. A child Guest Count element is required for each distinct age group. A collection of GuestCount by age group.1
GuestCountGuestCountsA recurring element that identifies the number of guests and ages of the guests.1
@CountGuestCountThe number of guests in one AgeQualifyingCode or Count.[integer]1
TimeSpanServiceDetailsThe Time Span which covers the Service.1
@StartTimeSpanThe starting value of the time span.[yyyy-MM-dd]1
@EndTimeSpanThe ending value of the time span.[yyyy-MM-dd]1
ServiceDescriptionServiceDetailsDescription of the service. An indication of a new paragraph for a sub-section of a formatted text message.1
TextServiceDescriptionFormatted text content.[CDATA string]1
TPA_ExtensionsServiceA placeholder in the schema to allow for additional elements and attributes to be included per Trading Partner Agreement (TPA). Allows extensions to be added to the OpenTravel specification per trading partner agreement.1
ServiceExtensionTPA_ExtensionsAn extension to the service.1
@ServiceChargeTypeServiceExtensionThe way the service is charged.Refer to Code List Service Charge Type

1
SelectedDatesServiceExtensionA collection of dates on which the service is active.1
DateSelectedDatesA date on which the service is active.0..n
@ValueDateThe date.[yyyy-MM-dd]1
ResGuestsHotelReservation1
ResGuestResguests1..n
@ResguestRPHResGuest1
ProfilesResGuest1
ProfileInfoProfiles1..n
ProfileProfileInfo1
CustomerProfile1
PersonNameCustomer1
GivenNamePersonNameGivenName included as CDATA, to prevent invalid characters from breaking the XML.1
SurNamePersonNameSurname included as CDATA, to prevent invalid characters from breaking the XML.1
ResGlobalInfoHotelReservation1
ProfilesResGlobalInfoContains the data of the booker1
ProfileProfiles1..n
@ProfileTypeProfileRefer to the Code List Profile Types1
CustomerProfile1
@GenderCustomerMale
Female
0..1
@BirthDateCustomeryyyy-mm-dd0..1
PersonNameCustomer0..1
GivenNamePersonNameGivenName included as CDATA, to prevent invalid characters from breaking the XML.1
SurNamePersonNameSurName included as CDATA, to prevent invalid characters from breaking the XML.1
TelephoneCustomer0..1
@PhoneNumberTelephone1
EmailCustomer0..1
AddressCustomer0..1
StreetNmbrAddress1
CityNameAddress1
PostalCodeAddress1
CountryNameAddressCountry name, according to the ISO 3166-1 alpha-2 list (e.g., NL). The code of a country (e.g. as used in an address or to specify citizenship of a traveller).1
CompanyNameAddress0..1
CommentsResGlobalInfo1
CommentCommentsComment included as CDATA, to prevent invalid characters from breaking the XML.1..n
TextComment1
GuaranteeResGlobalInfoCredit card details related to the reservation0..1
GuaranteesAcceptedGuarantee1
PaymentCardGuaranteesAccepted1
@cardCodePaymentCard1
@CardNumberPaymentCard1
@ExpireDatePaymentCardMMYY1
TotalResGlobalInfoReservation total1
@AmountAfterTaxTotalNo decimal point: 120.50 becomes 120501
@AmountBeforeTaxTotalNo decimal point: 120.50 becomes 120501
@CurrencyCodeTotalEUR
USD
1
@DecimalPlacesTotal21
BasicPropertyInfoResGlobalInfo1
@HotelCodeBasicPropertyInfoThe hotel code that identifies this hotel (PIN code).1
HotelreservationIDsResGlobalInfo1
HotelReservationIDHotelReservationIDs1
ResID_ValueHotelReservationIDThe reservation number supplied by the OTA. The same reservation number must be used for the lifespan of the reservation through all its possible mutations (modifications and cancellation).1
ResID_TypeHotelReservationID141
<?xml version="1.0" encoding="utf-8"?>
<OTA_HotelResNotifRQ PrimaryLangID="eng" Target="Production" TimeStamp="2018-07-29T07:38:54.729Z" Version="1.0">
  <POS>
    <Source AgentDutyCode="OTA">
      <RequestorID ID="APIKey" MessagePassword="APIKeyPassword"> </RequestorID>
    </Source>
  </POS>
  <HotelReservations>
    <HotelReservation ResStatus="Book" CreateDateTime="2018-09-22T08:26:21" LastModifyDateTime="2018-09-22T08:27:06">
      <RoomStays>
        <RoomStay IndexNumber="401">
          <RoomTypes>
            <RoomType RoomTypeCode="20002" NumberOfUnits="1" />
          </RoomTypes>
          <RoomRates>
            <RoomRate RatePlanCode="1">
              <Rates>
                <Rate EffectiveDate="2018-10-11">
                  <Base AmountAfterTax="9500" AmountBeforeTax="9000" CurrencyCode="EUR" DecimalPlaces="2" />
                </Rate>
                <Rate EffectiveDate="2018-10-12">
                  <Base AmountAfterTax="9500" AmountBeforeTax="9000" CurrencyCode="EUR" DecimalPlaces="2" />
                </Rate>
                <Rate EffectiveDate="2018-10-13">
                  <Base AmountAfterTax="9500" AmountBeforeTax="9000" CurrencyCode="EUR" DecimalPlaces="2" />
                </Rate>
              </Rates>
            </RoomRate>
          </RoomRates>
          <RatePlans>
            <RatePlan>
              <MealsIncluded MealPlanCodes="12" />
              <Commission>
                <CommissionPayableAmount Amount="5355" DecimalPlaces="3" CurrencyCode="EUR"/>
              </Commission>
            </RatePlan>
          </RatePlans>
          <GuestCounts>
            <GuestCount AgeQualifyingCode="10" Count="2" />
          </GuestCounts>
          <TimeSpan Start="2018-10-11" End="2018-10-14" />
          <Comments>
            <Comment>
              <Text>
                <![CDATA[Fictional comment]]>
              </Text>
            </Comment>
            <Comment>
              <Text>
                <![CDATA[Another fictional comment]]>
              </Text>
            </Comment>
          </Comments>
          <SpecialRequests>
            <SpecialRequest>
              <Text>
                <![CDATA[Smoking preference : Non-Smoking]]>
              </Text>
            </SpecialRequest>
          </SpecialRequests>
          <Total AmountAfterTax="28500" AmountBeforeTax="33000" CurrencyCode="EUR" DecimalPlaces="2" />
          <ResGuestRPHs>
            <ResGuestRPH RPH="0" />
          </ResGuestRPHs>
        </RoomStay>
        <RoomStay IndexNumber="402">
          <RoomTypes>
            <RoomType RoomTypeCode="20003" NumberOfUnits="1" />
          </RoomTypes>
          <RoomRates>
            <RoomRate RatePlanCode="1">
              <Rates>
                <Rate EffectiveDate="2018-10-11">
                  <Base AmountAfterTax="9500" AmountBeforeTax="9000" CurrencyCode="EUR" DecimalPlaces="2" />
                </Rate>
                <Rate EffectiveDate="2018-10-12">
                  <Base AmountAfterTax="9500" AmountBeforeTax="9000" CurrencyCode="EUR" DecimalPlaces="2" />
                </Rate>
                <Rate EffectiveDate="2018-10-13">
                  <Base AmountAfterTax="9500" AmountBeforeTax="9000" CurrencyCode="EUR" DecimalPlaces="2" />
                </Rate>
              </Rates>
            </RoomRate>
          </RoomRates>
          <RatePlans>
            <RatePlan>
              <MealsIncluded MealPlanCodes="12" />
              <Commission>
                <CommissionPayableAmount Amount="5355" DecimalPlaces="3" CurrencyCode="EUR"/>
              </Commission>
            </RatePlan>
          </RatePlans>
          <GuestCounts>
            <GuestCount AgeQualifyingCode="10" Count="2" />
          </GuestCounts>
          <TimeSpan Start="2018-10-11" End="2018-10-14" />
          <Comments>
            <Comment>
              <Text>
                <![CDATA[Fictional comment]]>
              </Text>
            </Comment>
            <Comment>
              <Text>
                <![CDATA[Another fictional comment ]]>
              </Text>
            </Comment>
          </Comments>
          <SpecialRequests>
            <SpecialRequest>
              <Text>
                <![CDATA[Smoking preference : Non-Smoking]]>
              </Text>
            </SpecialRequest>
          </SpecialRequests>
          <Total AmountAfterTax="28500" AmountBeforeTax="33000" CurrencyCode="EUR" DecimalPlaces="2">
            <Taxes>
              <Tax Amount="2030" CurrencyCode="EUR" DecimalPlaces="2" />
            </Taxes>
          </Total>
          <ResGuestRPHs>
            <ResGuestRPH RPH="1" />
          </ResGuestRPHs>
        </RoomStay>
      </RoomStays>
      <ResGuests>
        <ResGuest ResGuestRPH="0">
          <Profiles>
            <ProfileInfo>
              <Profile>
                <Customer>
                  <PersonName>
                    <GivenName>
                      <![CDATA[John]]>
                    </GivenName>
                    <Surname>
                      <![CDATA[Smith]]>
                    </Surname>
                  </PersonName>
                </Customer>
              </Profile>
            </ProfileInfo>
            <ProfileInfo>
              <Profile>
                <Customer>
                  <PersonName>
                    <GivenName>
                      <![CDATA[Jane]]>
                    </GivenName>
                    <Surname>
                      <![CDATA[Smith]]>
                    </Surname>
                  </PersonName>
                </Customer>
              </Profile>
            </ProfileInfo>
          </Profiles>
        </ResGuest>
        <ResGuest ResGuestRPH="1">
          <Profiles>
            <ProfileInfo>
              <Profile>
                <Customer>
                  <PersonName>
                    <GivenName>
                      <![CDATA[John]]>
                    </GivenName>
                    <Surname>
                      <![CDATA[Doe]]>
                    </Surname>
                  </PersonName>
                </Customer>
              </Profile>
            </ProfileInfo>
            <ProfileInfo>
              <Profile>
                <Customer>
                  <PersonName>
                    <GivenName>
                      <![CDATA[Jane]]>
                    </GivenName>
                    <Surname>
                      <![CDATA[Doe]]>
                    </Surname>
                  </PersonName>
                </Customer>
              </Profile>
            </ProfileInfo>
            <ProfileInfo>
              <Profile>
                <Customer>
                  <PersonName>
                    <GivenName>
                      <![CDATA[Jake]]>
                    </GivenName>
                    <Surname>
                      <![CDATA[Doe]]>
                    </Surname>
                  </PersonName>
                </Customer>
              </Profile>
            </ProfileInfo>
          </Profiles>
        </ResGuest>
      </ResGuests>
      <ResGlobalInfo>
        <Profiles>
          <ProfileInfo>
            <Profile ProfileType="1">
              <Customer Gender="Male" BirthDate="1955-08-01">
                <PersonName>
                  <GivenName>
                    <![CDATA[John]]>
                  </GivenName>
                  <Surname>
                    <![CDATA[Doe]]>
                  </Surname>
                </PersonName>
                <Telephone PhoneNumber="+31182751118" />
                <Email>j.doe@gmail.com</Email>
                <Address>
                  <StreetNmbr>Einsteinstraat 5</StreetNmbr>
                  <CityName>Reeuwijk</CityName>
                  <PostalCode>2811EP</PostalCode>
                  <CountryName>NL</CountryName>
                  <CompanyName>Smarthotel</CompanyName>
                </Address>
              </Customer>
            </Profile>
          </ProfileInfo>
        </Profiles>
        <Comments>
          <Comment>
            <Text>
              <![CDATA[Comment that will be displayed on the reservation.]]>
            </Text>
          </Comment>
        </Comments>
        <Guarantee>
          <GuaranteesAccepted>
            <GuaranteeAccepted>
              <PaymentCard CardCode="VI" CardNumber="4444444444444444" ExpireDate="2017/03">
                <CardHolderName>John Smith</CardHolderName>
              </PaymentCard>
            </GuaranteeAccepted>
          </GuaranteesAccepted>
        </Guarantee>
        <Total AmountAfterTax="28500" CurrencyCode="EUR" DecimalPlaces="2" />
        <BasicPropertyInfo HotelCode="101073" />
        <HotelReservationIDs>
          <HotelReservationID ResID_Value="your-unique-reference" ResID_Type="14" />
        </HotelReservationIDs>
      </ResGlobalInfo>
    </HotelReservation>
  </HotelReservations>
</OTA_HotelResNotifRQ>

OTA_HotelResNotifRS

This message returns acknowledgement that the reservation has been successfully received, or includes warnings from business processing rules or errors if the request did not succeed. It may optionally include the updated reservation data.

Element / @AttributeParentInfoValuesOccurrence
SuccessOTA_HotelResNotifRSOnly there if reservation was added successfully0..1
ErrorsOTA_HotelResNotifRSOnly if the reservation was not added0..1
ErrorErrors1..n
@CodeError1
TextError
HotelReservationsOTA_HotelResNotifRS0..1
HotelReservationHotelReservations1..n
UniqueIDHotelReservation1
@TypeUniqueID141
@IDUniqueIDReservation number supplied by the OTA1
ResGlobalInfoHotelReservation1
HotelReservationIDsResGlobalInfo1
HotelReservationIDHotelReservationIDs1..n
@ResID_TypeHotelReservationID141
@ResID_ValueHotelReservationIDReservation ID from the Channel manager1

Success

<?xml version="1.0" encoding="utf-8"?>
<OTA_HotelResNotifRS>
  <Success />
  <HotelReservations>
    <HotelReservation>
      <UniqueID Type="14" ID="your-unique-reference" />
      <ResGlobalInfo>
        <HotelReservationIDs>
          <HotelReservationID ResID_Type="14" ResID_Value="1160" />
        </HotelReservationIDs>
      </ResGlobalInfo>
    </HotelReservation>
  </HotelReservations>
</OTA_HotelResNotifRS>

Error

<?xml version="1.0" encoding="utf-8"?>
<OTA_HotelResNotifRS>
  <Errors>
    <Error Code="11">
      <Text>No ID was found for hotel with code 101073.</Text>
    </Error>
  </Errors>
</OTA_HotelResNotifRS>

OTA_HotelResModifyNotifRQ/RS.

OTA_HotelResModifyNotifRQ

This is a request message for modifying a reservation. It is used for a full overlay of the reservation. When changing data that requires an availability check, this message assumes the availability is known (if availability is not known an availability check containing the reservation ID may be useful).

Element / @AttributeParentInfoValuesOccurrence
HotelResModifiesOTA_HotelResModifyNotifRQ1
HotelResModifyHotelResModifies1..n
@ResStatusHotelResModifyMODIFY1
@CreateDateTimeHotelResModifyyyyy-mm-ddThh:mm:ss1
@ LastModifyDateTimeHotelResModifyyyyy-mm-ddThh:mm:ss1
RoomStaysHotelResModify1
RoomStayRoomStays1..n
@IndexNumberRoomStayPlease find the description on how to use the IndexNumber under this table1-655350..1
RoomTypesRoomStays1
RoomTypeRoomTypes1..n
@RoomTypeCodeRoomType1
@NumberOfUnitsRoomType361611
RoomRatesRoomStay1
RoomRateRoomRates1..n
@RatePlanCodeRoomRate1
RatesRoomRate1
RateRates1
@EffectiveDateRateyyyy-mm-dd1
BaseRate1
@AmountAfterTaxBaseNo decimal point: 120.50 becomes 120501
@AmountBeforeTaxBaseNo decimal point: 120.50 becomes 120501
@CurrencyCodeBaseEUR
USD
1
@DecimalPlacesBase21
RatePlansRoomStay1
RatePlanRatePlans0..1
MealsIncludedMealsIncluded0..1
@MealPlanCodesMealsIncludedPlease refer to MealPlanList (MPT)1
CommissionRatePlan1
CommissionPayableAmountCommission1
@AmountCommissionPayableAmount1
@DecimalPlacesCommissionPayableAmount1
@CurrencyCodeCommissionPayableAmount1
GuestCountsRoomStay1
GuestCountGuestCounts1..n
@AgeQualifyingCodeGuestCountPlease refer to Code List Age Qualifying (AQC)1
@CountGuestCount361611
TimeSpanRoomStay1
@StartTimeSpanyyyy-mm-dd1
@EndTimeSpanyyyy-mm-dd1
CommentsRoomStay0..1
CommentComments1..n
TextCommentComment included as CDATA, to prevent invalid characters from breaking the XML.1
SpecialRequestsRoomStay0..n
SpecialRequestSpecialRequests1..n
Text SpecialRequestRequest included as CDATA, to prevent invalid characters from breaking the XML.1
TotalRoomStayTotal of the RoomStay1
@AmountAfterTaxTotalNo decimal point: 120.50 becomes 120501
@AmountBeforeTaxTotalNo decimal point: 120.50 becomes 120501
@CurrencyCodeTotalEUR1
USD
@DecimalPlacesTotal21
TaxesTotal0..1
TaxTax1
@AmountTaxNo decimal point: 120.50 becomes 120501
@DecimalPlacesTax21
@CurrencyCodeTaxEUR
USD
1
ResGuestRPHsRoomStayReference which ResGuest is in which RoomStay1
@RPHResGuestRPHThe reference number of the guest. Must stay consistent with the RPH values defined in ResGuest.1
ResGuestsHotelResModify1
ResGuestResguests1..n
@ResguestRPHResGuest1
ProfilesResGuest1
ProfileInfoProfiles1..n
ProfileProfileInfo1
CustomerProfile1
PersonNameCustomer1
GivenNamePersonNameGivenName included as CDATA, to prevent invalid characters from breaking the XML.1
SurNamePersonNameSurname included as CDATA, to prevent invalid characters from breaking the XML.1
ResGlobalInfoHotelResModify1
ProfilesResGlobalInfoContains the data of the booker1
ProfileProfiles1..n
@ProfileTypeProfilePlease refer to Code List Profile Type (PRT)1
CustomerProfile1
@GenderCustomerMale
Female
0..1
@BirthDateCustomeryyyy-mm-dd0..1
PersonNameCustomer0..1
GivenNamePersonNameGivenName included as CDATA, to prevent invalid characters from breaking the XML.1
SurNamePersonNameSurName included as CDATA, to prevent invalid characters from breaking the XML.1
TelephoneCustomer0..1
@PhoneNumberTelephone1
EmailCustomer0..1
AddressCustomer0..1
StreetNmbrAddress1
CityNameAddress1
PostalCodeAddress1
CountryNameAddressCountry name, according to the ISO 3166-1 alpha-2 list (e.g., NL). The code of a country (e.g. as used in an address or to specify citizenship of a traveller).1
CompanyNameAddress0..1
CommentsResGlobalInfo1
CommentCommentsComment included as CDATA, to prevent invalid characters from breaking the XML.1..n
TextComment1
GuaranteeResGlobalInfoCredit card details related to the reservation0..1
GuaranteesAcceptedGuarantee1
PaymentCardGuaranteesAccepted1
@CardCodePaymentCard1
@CardNumberPaymentCard1
@ExpireDatePaymentCardyyyy/mm1
TotalResGlobalInfoReservation total1
@AmountAfterTaxTotalNo decimal point: 120.50 becomes 120501
@AmountBeforeTaxTotalNo decimal point: 120.50 becomes 120501
@CurrencyCodeTotalEUR
USD
1
@DecimalPlacesTotal21
BasicPropertyInfoResGlobalInfo1
@HotelCodeBasicPropertyInfoThe hotel code that identifies this hotel (PIN code).1
HotelreservationIDsResGlobalInfo1
HotelReservationIDHotelReservationIDs1
ResID_ValueHotelReservationIDThe reservation number supplied by the OTA. The same reservation number must be used for the lifespan of the reservation through all its possible mutations (modifications and cancellation).1
ResID_TypeHotelReservationID141
<?xml version="1.0" encoding="utf-8"?>
<OTA_HotelResModifyNotifRQ PrimaryLangID="eng" Target="Production" TimeStamp="2018-07-29T07:38:54.729Z" Version="1.0">
  <POS>
    <Source AgentDutyCode="OTA">
      <RequestorID ID="APIKEY" MessagePassword="APIPASSWORD"/>
    </Source>
  </POS>
  <HotelResModifies>
    <HotelResModify ResStatus="Modify" CreateDateTime="2018-09-22T08:26:21" LastModifyDateTime="2018-09-22T08:27:06">
      <RoomStays>
        <RoomStay IndexNumber="401">
          <RoomTypes>
            <RoomType RoomTypeCode="20002" NumberOfUnits="1" />
          </RoomTypes>
          <RoomRates>
            <RoomRate RatePlanCode="1">
              <Rates>
                <Rate EffectiveDate="2018-10-11">
                  <Base AmountAfterTax="9500" AmountBeforeTax="9000" CurrencyCode="EUR" DecimalPlaces="2" />
                </Rate>
                <Rate EffectiveDate="2018-10-12">
                  <Base AmountAfterTax="9500" AmountBeforeTax="9000" CurrencyCode="EUR" DecimalPlaces="2" />
                </Rate>
                <Rate EffectiveDate="2018-10-13">
                  <Base AmountAfterTax="9500" AmountBeforeTax="9000" CurrencyCode="EUR" DecimalPlaces="2" />
                </Rate>
              </Rates>
            </RoomRate>
          </RoomRates>
          <RatePlans>
            <RatePlan>
              <MealsIncluded MealPlanCodes="12" />
              <Commission>
                <CommissionPayableAmount Amount="5355" DecimalPlaces="3" CurrencyCode="EUR"/>
              </Commission>
            </RatePlan>
          </RatePlans>
          <GuestCounts>
            <GuestCount AgeQualifyingCode="10" Count="2" isPerRoom="true" />
          </GuestCounts>
          <TimeSpan Start="2018-10-11" End="2018-10-13" />
          <Comments>
            <Comment>
              <Text>
                <![CDATA[Fictional comment]]>
              </Text>
            </Comment>
            <Comment>
              <Text>
                <![CDATA[Another fictional comment]]>
              </Text>
            </Comment>
          </Comments>
          <SpecialRequests>
            <SpecialRequest>
              <Text>
                <![CDATA[Smoking preference : Non-Smoking]]>
              </Text>
            </SpecialRequest>
          </SpecialRequests>
          <Total AmountAfterTax="28500" AmountBeforeTax="33000" CurrencyCode="EUR" DecimalPlaces="2" />
          <ResGuestRPHs>
            <ResGuestRPH RPH="0" />
          </ResGuestRPHs>
        </RoomStay>
        <RoomStay IndexNumber="402">
          <RoomTypes>
            <RoomType RoomTypeCode="20003" NumberOfUnits="1" />
          </RoomTypes>
          <RoomRates>
            <RoomRate RatePlanCode="1">
              <Rates>
                <Rate EffectiveDate="2018-10-11">
                  <Base AmountAfterTax="9500" AmountBeforeTax="9000" CurrencyCode="EUR" DecimalPlaces="2" />
                </Rate>
                <Rate EffectiveDate="2018-10-12">
                  <Base AmountAfterTax="9500" AmountBeforeTax="9000" CurrencyCode="EUR" DecimalPlaces="2" />
                </Rate>
                <Rate EffectiveDate="2018-10-13">
                  <Base AmountAfterTax="9500" AmountBeforeTax="9000" CurrencyCode="EUR" DecimalPlaces="2" />
                </Rate>
              </Rates>
            </RoomRate>
          </RoomRates>
          <RatePlans>
            <RatePlan>
              <MealsIncluded MealPlanCodes="12" />
              <Commission>
                <CommissionPayableAmount Amount="5355" DecimalPlaces="3" CurrencyCode="EUR"/>
              </Commission>
            </RatePlan>
          </RatePlans>
          <GuestCounts>
            <GuestCount AgeQualifyingCode="10" Count="2" isPerRoom="true" />
          </GuestCounts>
          <TimeSpan Start="2018-10-11" End="2018-10-13" />
          <Comments>
            <Comment>
              <Text>
                <![CDATA[Fictional comment]]>
              </Text>
            </Comment>
            <Comment>
              <Text>
                <![CDATA[Another fictional comment ]]>
              </Text>
            </Comment>
          </Comments>
          <SpecialRequests>
            <SpecialRequest>
              <Text>
                <![CDATA[Smoking preference : Non-Smoking]]>
              </Text>
            </SpecialRequest>
          </SpecialRequests>
          <Total AmountAfterTax="28500" AmountBeforeTax="33000" CurrencyCode="EUR" DecimalPlaces="2">
            <Taxes>
              <Tax Amount="2030" CurrencyCode="EUR" DecimalPlaces="2" />
            </Taxes>
          </Total>
          <ResGuestRPHs>
            <ResGuestRPH RPH="1" />
          </ResGuestRPHs>
        </RoomStay>
      </RoomStays>
      <ResGuests>
        <ResGuest ResGuestRPH="0">
          <Profiles>
            <ProfileInfo>
              <Profile>
                <Customer>
                  <PersonName>
                    <GivenName>
                      <![CDATA[John]]>
                    </GivenName>
                    <Surname>
                      <![CDATA[Smith]]>
                    </Surname>
                  </PersonName>
                </Customer>
              </Profile>
            </ProfileInfo>
            <ProfileInfo>
              <Profile>
                <Customer>
                  <PersonName>
                    <GivenName>
                      <![CDATA[Jane]]>
                    </GivenName>
                    <Surname>
                      <![CDATA[Smith]]>
                    </Surname>
                  </PersonName>
                </Customer>
              </Profile>
            </ProfileInfo>
          </Profiles>
        </ResGuest>
        <ResGuest ResGuestRPH="1">
          <Profiles>
            <ProfileInfo>
              <Profile>
                <Customer>
                  <PersonName>
                    <GivenName>
                      <![CDATA[John]]>
                    </GivenName>
                    <Surname>
                      <![CDATA[Doe]]>
                    </Surname>
                  </PersonName>
                </Customer>
              </Profile>
            </ProfileInfo>
            <ProfileInfo>
              <Profile>
                <Customer>
                  <PersonName>
                    <GivenName>
                      <![CDATA[Jane]]>
                    </GivenName>
                    <Surname>
                      <![CDATA[Doe]]>
                    </Surname>
                  </PersonName>
                </Customer>
              </Profile>
            </ProfileInfo>
            <ProfileInfo>
              <Profile>
                <Customer>
                  <PersonName>
                    <GivenName>
                      <![CDATA[Jake]]>
                    </GivenName>
                    <Surname>
                      <![CDATA[Doe]]>
                    </Surname>
                  </PersonName>
                </Customer>
              </Profile>
            </ProfileInfo>
          </Profiles>
        </ResGuest>
      </ResGuests>
      <ResGlobalInfo>
        <Profiles>
          <ProfileInfo>
            <Profile ProfileType="1">
              <Customer Gender="Male" BirthDate="1955-08-01">
                <PersonName>
                  <GivenName>
                    <![CDATA[John]]>
                  </GivenName>
                  <Surname>
                    <![CDATA[Doe]]>
                  </Surname>
                </PersonName>
                <Telephone PhoneNumber="+31182751118" />
                <Email>j.doe@gmail.com</Email>
                <Address>
                  <StreetNmbr>Einsteinstraat 5</StreetNmbr>
                  <CityName>Reeuwijk</CityName>
                  <PostalCode>2811EP</PostalCode>
                  <CountryName>NL</CountryName>
                  <CompanyName>Smarthotel</CompanyName>
                </Address>
              </Customer>
            </Profile>
          </ProfileInfo>
        </Profiles>
        <Comments>
          <Comment>
            <Text>
              <![CDATA[Comment that will be displayed on the reservation.]]>
            </Text>
          </Comment>
        </Comments>
        <Guarantee>
          <GuaranteesAccepted>
            <GuaranteeAccepted>
              <PaymentCard CardCode="VI" CardNumber="4444444444444444" SeriesCode="333" ExpireDate="2017/03">
                <CardHolderName>John Smith</CardHolderName>
              </PaymentCard>
            </GuaranteeAccepted>
          </GuaranteesAccepted>
        </Guarantee>
        <Total AmountAfterTax="28500" CurrencyCode="EUR" DecimalPlaces="2" />
        <BasicPropertyInfo HotelCode="101073" />
        <HotelReservationIDs>
          <HotelReservationID ResID_Value="your-unique-reference" ResID_Type="14" />
        </HotelReservationIDs>
      </ResGlobalInfo>
    </HotelResModify>
  </HotelResModifies>
</OTA_HotelResModifyNotifRQ>

OTA_HotelResModifyNotifRS

This is the response message for a full overlay modification to a reservation. The response could be as simple as indicating the modification was made or as complex as echoing back all reservation information.

Element / @AttributeParentInfoValuesOccurrence
SuccessOTA_HotelResModifyNotifRSOnly there if reservation was added successfully0..1
ErrorsOTA_HotelResModifyNotifRSOnly if the reservation was not added0..1
ErrorErrors1..n
@CodeError1
TextError
HotelReservationsOTA_HotelResModifyNotifRS0..1
HotelReservationHotelReservations1..n
UniqueIDHotelReservation1
@TypeUniqueID141
@IDUniqueIDReservation number supplied by the OTA1
ResGlobalInfoHotelReservation1
HotelReservationIDsResGlobalInfo1
HotelReservationIDHotelReservationIDs1..n
@ResID_TypeHotelReservationID141
@ResID_ValueHotelReservationIDReservation ID from the Channel manager1

Success

<?xml version="1.0" encoding="utf-8"?>
<OTA_HotelResModifyNotifRS>
    <Success />
    <HotelReservations>
        <HotelReservation>
            <UniqueID Type="14" ID="your-unique-reference" />
            <ResGlobalInfo>
                <HotelReservationIDs>
                    <HotelReservationID ResID_Type="14" ResID_Value="1160" />
                </HotelReservationIDs>
            </ResGlobalInfo>
        </HotelReservation>
    </HotelReservations>
</OTA_HotelResmodifyNotifRS>

Error

<?xml version="1.0" encoding="utf-8"?>
<OTA_HotelResModifyNotifRS>
  <Errors>
    <Error Code="11">
      <Text>No ID was found for hotel with code 101073.</Text>
    </Error>
  </Errors>
</OTA_HotelResModifyNotifRS>

OTA_CancelRQ/RS.

OTA_CancelRQ

A generic message, available as an action on several OpenTravel services which requests a server to cancel the booking identified by the UniqueID element.

Element / @AttributeParentInfoValuesOccurrence
UniqueIDOTA_CancelRQThis allows a user to send more than one UniqueID where there is more than one UniqueID associated to a single reservation (e.g. confirmation number and PNR record locator).1..n
@IDUniqueIDThe ID of the reservation.[integer]1
@ID_ContextUniqueIDThe ID of the booking site.[integer]1
@TypeUniqueIDA reference to the type of object defined by the UniqueID element.Refer to Code List Unique ID Type (UIT).
1
TPA_ExtensionsUniqueIDA placeholder in the schema to allow for additional elements and attributes to be included. Allows extensions to be added to the OpenTravel specification.1
HotelInfoTPA_ExtensionsThe element containing information related to the hotel.1
@HotelCodeHotelInfoThe ID of the hotel.[integer]1
<?xml version="1.0" encoding="UTF-16"?>
<OTA_CancelRQ EchoToken="Example123" PrimaryLangID="eng" Target="Production" TimeStamp="2018-07-29T07:38:54.729Z" Version="1.0">
  <POS>
    <Source AgentDutyCode="OTA">
      <RequestorID ID="APIKEY" MessagePassword="APIPASSWORD"/>
    </Source>
  </POS>
  <UniqueID ID="123456" ID_Context="2" Type="15">
    <TPA_Extensions>
      <HotelInfo HotelCode="123" />
    </TPA_Extensions>
  </UniqueID>
</OTA_CancelRQ>

OTA_CancelRS

Used to rspond to a CancelRQ and may provide details about the cancellation.

Element / @AttributeParentInfoValuesOccurrence
UniqueIDOTA_CancelRSContains the reference(s) of the items being cancelled. An identifier used to uniquely reference an object in a system (e.g. an airline reservation reference, customer profile reference, booking confirmation number, or a reference to a previous availability quote).2
Two instance of this element are required, one to reference the reservation ID for which a cancellation was requested and one to reference the ID of the cancellation.
@IDUniqueIDThe ID of the reservation or cancellation.[integer]1
@TypeUniqueIDA reference to the type of object defined by the UniqueID element.Refer to Code List Unique ID Type (UIT).1
<?xml version="1.0" encoding="UTF-16"?>
<OTA_CancelRS EchoToken="Example123" PrimaryLangID="eng" Target="Production" TimeStamp="2018-07-29T07:38:54.729Z" Version="1.0">
  <Success />
  <UniqueID ID="123456" Type="15" />
  <UniqueID ID="123457" Type="15" />
</OTA_CancelRS>