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="DBL" 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>

 

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="STD" />
      </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.

To update rates and availability from a PMS to the Smarthotel channel manager, 3 types of messages are used. All three have their specific function and updates rates, inventory or restrcictons.

The OTA_HotelInvCountNotifRQ/RS sends a notification to the channel manager that synchronizes the inventory available for sale at the hotel.

The OTA_HotelRateAmountNotifRQ/RS sends a notification to the channel manager which updates the values in the channel manager for the given rate code or rate plan, timespan and number of guests.

The OTA_BookingRuleNotifRQ/RS is the message that sends the notification of the rules and restrictions affecting the availability status of the hotel. Currently, Smarthotel supports the following restrictions: Master Open/Close, Open/Closed to Arrival, Open/Closed to Departure, Minimum Length of Stay, and Maximum Length of Stay.

It is now possible to push your inventory, rate, and restrictions messages on room and rate codes instead of ids. This is mandatory for interfaces connecting with SmartCONNECT for CRS. This can be done to add the following lines with as parent OTA_HotelInvCountNotifRQ, OTA_HotelRateAmountNotifRQ, and OTA_HotelBookingRuleNotifRQ.
<TPA_Extensions>
<CodeUsage>Code</CodeUsage>
</TPA_Extensions>

OTA_HotelInvCountNotifRQ/RS.

OTA_HotelInvCountNotifRQ

This message sends a notification to the channel manager that synchronizes the inventory available for sale at the hotel.

Element / @AttributeParentInfoValuesOccurrence
InventoriesOTA_HotelInvCountNotifRQA collection of Inventory. Hotel identification information are the attributes of this element.1..n
@HotelCodeInventoriesThe ID of the hotel.[integer]1
InventoryInventoriesThis is the inventory information for a given rate plan, room type, date, etc. The set of changes in the number of units of base inventory for one inventory type (code) to be made on the server. The server must successfully update all messages. Failure to update any single status message will result in the failure of all messages.1..n
StatusApplicationControlInventoryInformation on what the InvCountNotif Message applies to (i.e. the combination of inventory and/or 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.1
@InvTypeCodeStatusApplicationControlThe ID of the room, or the ID of the room plan (in case InvCodeApplication has been set to InvGroupingCode).[integer]1
@InvTypeStatusApplicationControlOptional attribute to be included when a bed type in a room needs to be updated. Always set to BedType. Omit when updating a room.BedType0..1
@InvCodeStatusApplicationControlOptional attribute to be included when a bed type in a room needs to be updated. Indicates the ID of the bed type.[integer]0..1
@InvCodeApplicationStatusApplicationControlOmit when updating a room, set to ‘InvGroupingCode’ when updating a room plan.InvGroupingCode0..1
@StartStatusApplicationControlThe starting value of the time span.[yyyy-MM-dd]1
@EndStatusApplicationControlThe ending value of the time span.[yyyy-MM-dd]1
@Mon, @Tue, @Weds, @Thur, @Fri, @Sat, @SunStatusApplicationControlWhen true, applies only to a particular day.True
False
0..1
InvCountsInventoryA collection of inventory counts.1..n
InvCountInvCountsIndividual inventory count.1
CountInvCountAn integer representing the count.[integer]1
CountTypeInvCountThis identifies the type of inventory count being reported. Refer to OpenTravel Code List Inventory Count Type (INV).1 = Physical0..1
<?xml version="1.0" encoding="UTF-16"?>
<OTA_HotelInvCountNotifRQ 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>
  <Inventories HotelCode="21052">
    <Inventory>
      <StatusApplicationControl InvTypeCode="DBL" Start="2018-07-24" End="2018-07-31" Mon="true" Fri="true" />
      <InvCounts>
        <InvCount Count="5" CountType="1" />
      </InvCounts>
    </Inventory>
  </Inventories>
</OTA_HotelInvCountNotifRQ>

 

OTA_HotelInvCountNotifRS

Element / @AttributeParentInfoValuesOccurrence
UniqueIDOTA_HotelInvCountNotifRSAn identifier used to uniquely reference an object in a system.1
@IDUniqueIDThe queue ID.[integer]1
@TypeUniqueIDA reference to the type of object defined by the UniqueID element.Refer to OpenTravel Code List Unique ID Type (UIT). Value:
18 = Other
1

Extra note;
Only the exact data stated in the request message will be processed; this data needs to be different then the data present in the channel manager.
Other data present in the channel manager will not be modified.

<?xml version="1.0" encoding="UTF-16"?>
<OTA_HotelInvCountNotifRS EchoToken="Example123" PrimaryLangID="eng" Target="Production" TimeStamp="2018-07-29T07:38:54.729Z" Version="1.0">
  <Success />
  <UniqueID ID="123456" Type="18" />
</OTA_HotelInvCountNotifRS>

 

OTA_HotelRateAmountNotifRQ/RS.

OTA_HotelRateAmountNotifRQ

This message is used to provide a notification of a new rate plan created for a hotel and to synchronize the rate plan between the PMS and the channel manager.

Element / @AttributeParentInfoValuesOccurrence
RateAmountMessagesOTA_HotelRateAmountNotifRQA collection of RateAmountMessages that define the rate changes to be made.1..n
@HotelCodeRateAmountMessagesThe ID of the hotel.[integer]1
RateAmountMessageRateAmountMessagesRateAmountMessages that define the rate changes to be made.1..n
StatusApplicationControlRateAmountMessageInformation on what the RateAmount 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.1
@InvTypeCodeStatusApplicationControlThe ID of the room. Required when updating rates, not required when updating a rate plan.[integer]0..1
@InvTypeStatusApplicationControlOptional attribute to be included when a bed type in a room needs to be updated. Always set to BedType. Omit when updating a room.BedType0..1
@InvCodeStatusApplicationControlOptional attribute to be included when a bed type in a room needs to be updated. Indicates the ID of the bed type.[integer]0..1
@RatePlanCodeStatusApplicationControlThe ID of the rate, or the ID of the rate plan (in case RatePlanCodeApplication has been set to ‘RatePlanGroupingCode’).[integer]1
@RatePlanCodeApplicationStatusApplicationControlOmit when updating a rate, set to ‘RatePlanGroupingCode’ when updating a rate plan.RatePlanGroupingCode0..1
@StartStatusApplicationControlThe starting value of the time span.[yyyy-MM-dd]1
@EndStatusApplicationControlThe ending value of the time span.[yyyy-MM-dd]1
@Mon, @Tue, @Weds, @Thur, @Fri, @Sat, @SunStatusApplicationControlWhen true, applies only to a particular day.False
True
0..1
RatesRateAmountMessageA collection of rate changes to be synchronized between systems.1
RateRatesAn individual rate, which is a collection of amounts by guest, additional guests, and the unique id to identify the rate.1
BaseByGuestAmtsRateA collection of Base charges by number of guests.1
BaseByGuestAmtBaseByGuestAmtsBase charge for a given number of guests for a given age qualifying code.1..n
@NumberOfGuestsBaseByGuestAmtThe number of guests associated with this base charge. Only required for AgeQualifyingCode 10 (Adult).1 = Single use
2 = Standard use
3 = Triple use
4 = Quad use
0..1
@AgeQualifyingCodeBaseByGuestAmtDefines an age range or age category of a guest.Refer to OpenTravel Code List Age Qualifying Code (AQC).
10=Adult (Default)
0..1
@DecimalPlacesBaseByGuestAmtThe ISO 4217 standard "minor unit" for the number of decimal places for a particular currency.[integer]0..1
@AmountAfterTaxBaseByGuestAmtThe total amount including all associated taxes (e.g., sales tax, VAT, GST or any associated tax).[numeric]1
AdditionalGuestAmountsRateA collection of charges that apply to for additional guests.0..1
AdditionalGuestAmountAdditionalGuestAmountsCollection of incremental charges for additional guests.1
@AmountAdditionalGuestAmountA monetary amount, including tax.[numeric]1
@DecimalPlacesAdditionalGuestAmountDecimal places for currency code.[integer]1
<?xml version="1.0" encoding="UTF-16"?>
<OTA_HotelRateAmountNotifRQ 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>
  <RateAmountMessages HotelCode="21052">
    <RateAmountMessage>
      <StatusApplicationControl InvTypeCode="DBL" RatePlanCode="STD" RateTier="1" Start="2018-07-24" End="2018-07-31" Mon="true" Fri="true" />
      <Rates>
        <Rate>
          <BaseByGuestAmts>
            <BaseByGuestAmt NumberOfGuests="1" AgeQualifyingCode="10" AmountAfterTax="3895" DecimalPlaces="2" />
            <BaseByGuestAmt NumberOfGuests="2" AgeQualifyingCode="10" AmountAfterTax="4995" DecimalPlaces="2" />
          </BaseByGuestAmts>
          <AdditionalGuestAmounts>
            <AdditionalGuestAmount Amount="1000" DecimalPlaces="2" />
          </AdditionalGuestAmounts>
        </Rate>
      </Rates>
    </RateAmountMessage>
  </RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>

 

OTA_HotelRateAmountNotifRS

This message is used to indicate the status of processing the OTA_HotelRateAmountNotifRQ message

Element / @AttributeParentInfoValuesOccurrence
UniqueIDOTA_HotelRateAmountNotifRSAn identifier used to uniquely reference an object in a system.1
@IDUniqueIDThe queue ID.[integer]1
@TypeUniqueIDA reference to the type of object defined by the UniqueID element.Refer to OpenTravel Code List Unique ID Type (UIT). Value:
18 = Other
1

Extra note;
Only the exact data stated in the request message will be processed; this data needs to be different then the data present in the channel manager.
Other data present in the channel manager will not be modified.

<?xml version="1.0" encoding="UTF-16"?>
<OTA_HotelRateAmountNotifRS EchoToken="Example123" PrimaryLangID="eng" Target="Production" TimeStamp="2018-07-29T07:38:54.729Z" Version="1.0">
  <Success />
  <UniqueID ID="123456" Type="18" />
</OTA_HotelRateAmountNotifRS>

 

OTA_HotelBookingRuleNotifRQ/RS.

OTA_HotelBookingRuleNotifRQ

The OTA_HotelBookingRuleNotifRQ is the message that sends the notification of the rules and restrictions affecting the availability status of the hotel. Currently Smarthotel supports the following restrictions: Master Open/Close, Open/Closed to Arrival, Open/Closed to Departure, Minimun Length of Stay and Maximum Length of Stay.

Element / @AttributeParentInfoValuesOccurrence
RuleMessagesOTA_HotelBookingRuleNotifRQContainer for the individual RuleMessage(s). An OTA_HotelBookingRuleNotifRQ contains the booking rules for a single hotel. Hotel identification information are the attributes of this element.1..n
@HotelCodeRuleMessagesThe ID of the hotel.[integer]1
RuleMessageRuleMessagesContainer for the collection of Booking Rules for a given hotel or chain.1..n
StatusApplicationControlRuleMessageInformation on what the BookingRule 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.1
@InvTypeCodeStatusApplicationControlThe ID of the room.[integer]1
@InvTypeStatusApplicationControlOptional attribute to be included when a bed type in a room needs to be updated. Always set to BedType. Omit when updating a room.BedType0..1
@InvCodeStatusApplicationControlOptional attribute to be included when a bed type in a room needs to be updated. Indicates the ID of the bed type.[integer]0..1
@RatePlanCodeStatusApplicationControlThe ID of the rate.[integer]1
@StartStatusApplicationControlThe starting value of the time span.[yyyy-MM-dd]1
@EndStatusApplicationControlThe ending value of the time span.[yyyy-MM-dd]1
@Mon, @Tue, @Weds, @Thur, @Fri, @Sat, @SunStatusApplicationControlWhen true, applies only to a particular day.True
False
0..1
BookingRulesRuleMessageContainer for the collection of Booking Rules which apply for the information indicated in the StatusApplicationControl element. A collection of BookingRule.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..n
RestrictionStatusBookingRuleAvailability status assigned to the room rate combination for this booking rule.0..n
@RestrictionRestrictionStatusIndicates the type of the restriction.Arrival
Departure
Master (default)
0..1
@StatusRestrictionStatusThe status.Open
Close
1
LengthsOfStayBookingRuleA collection of lengths of stay. A collection of LengthOfStay.0..1
LengthOfStayLengthsOfStayA collection of patterns defining allowable lengths of stay (LOS).1..n
@MinMaxMessageTypeLengthOfStayAn enumerated type used to define how the minimum and maximum LOS is applied.SetMinLOS
SetMaxLOS
1
@TimeLengthOfStayUsed in conjunction with the MinMaxMessageType and the TimeUnit to define the length of stay requirements. (Only applicable for MinMaxMessageType ‘SetMinLOS’ and ‘SetMaxLOS’.)[integer]0..1
<?xml version="1.0" encoding="UTF-16"?>
<OTA_HotelBookingRuleNotifRQ 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>
  <RuleMessages HotelCode="21052">
    <RuleMessage>
      <StatusApplicationControl InvTypeCode="DBL" RatePlanCode="STD" RateTier="1" Start="2018-07-24" End="2018-07-31" Mon="true" Fri="true" />
      <BookingRules>
        <BookingRule>
          <RestrictionStatus Restriction="Master" Status="Open" />
          <RestrictionStatus Restriction="Arrival" Status="Close" />
          <RestrictionStatus Restriction="Departure" Status="Close" />
          <LengthsOfStay>
            <LengthOfStay MinMaxMessageType="SetMinLOS" Time="2" />
            <LengthOfStay MinMaxMessageType="SetMaxLOS" Time="7" />
          </LengthsOfStay>
        </BookingRule>
      </BookingRules>
    </RuleMessage>
  </RuleMessages>
</OTA_HotelBookingRuleNotifRQ>

 

OTA_HotelBookingRuleNotifRS

The OTA_HotelBookingRuleNotifRS is the message used to indicate the status of processing the OTA_HotelBookingRuleNotifRQ message.

Element / @AttributeParentInfoValuesOccurrence
UniqueIDOTA_HotelBookingRuleNotifRSAn identifier used to uniquely reference an object in a system.1
@IDUniqueIDThe queue ID.[integer]1
@TypeUniqueIDA reference to the type of object defined by the UniqueID element.Refer to OpenTravel Code List Unique ID Type (UIT). Value:
18 = Other
1

Extra note;
Only the exact data stated in the request message will be processed; this data needs to be different then the data present in the channel manager.
Other data present in the channel manager will not be modified.

<?xml version="1.0" encoding="UTF-16"?>
<OTA_HotelBookingRuleNotifRS EchoToken="Example123" PrimaryLangID="eng" Target="Production" TimeStamp="2018-07-29T07:38:54.729Z" Version="1.0">
  <Success />
  <UniqueID ID="123456" Type="18" />
</OTA_HotelBookingRuleNotifRS>

 

Reservations.

The reservation flow for a PMS connected to the Smarthotel channel manager consists of 3 messages. The PMS first will send a request to the channel manager to retrieve one or more reservations with the OTA_ReadRQ.

The channel manager will respond with the OTA_ResRetrieveRS which will deliver the reservations requested to the PMS.

As the channel manager needs to know if the PMS was able to handle the reservations without any errors, the PMS needs to send a OTA_HotelResModifyRQ. With this request, the channel manager will change the status of the reservation to “picked up”.

OTA_ReadRQ.

The OTA_ReadRQ message is used to retrieve reservations from the channel manager. The message distinguishes to different scenarios.

This scenario covers the retrieval of reservations based on selection criteria

Element / @AttributeParentInfoValuesOccurrence
ReadRequestsOTA_ReadRQA grouping of Read Requests.1
HotelReadRequestReadRequestsTo retrieve a hotel reservation when the booking reference is not known.0..n
@HotelCodeReadRequestsThe ID of the hotel.[integer]1
SelectionCriteriaHotelReadRequestThe criteria to select the reservations by. Deviating from OTA standard, a HotelReadRequest element can contain only one SelectionCriteria element1
@StartSelectionCriteriaThe starting value of the time span.[yyyy-MM-dd]0..1
@EndSelectionCriteriaThe ending value of the time span.[yyyy-MM-dd]0..1
@DateTypeSelectionCriteriaSpecifies the type of date provided in the date time span attributes.ArrivalDate
DepartureDate
CreateDate
LastUpdateDate
0..1
@SelectionTypeSelectionCriteriaIndicates which reservations should be selected based on delivery status.All
PreviouslyDelivered
Undelivered
0..1
@ResStatusSelectionCriteriaSpecifies the status of the reservations to be delivered.Book
Cancel
Modify
0..1
TPA_ExtensionsHotelReadRequestA placeholder in the schema to allow for additional elements and attributes to be included. Allows extensions to be added to the OpenTravel specification.1
UseActualRoomIdsTPA_ExtensionsSpecifies whether the room IDs used in the reservation should be the booked rooms regardless of the room type (base or virtual) or if the ID of the base room should always be returned.False (default) True0..1
ReservationRetrievalPropertyTypeTPA_ExtensionsSpecifies whether the bookings from only the requested property, virtual property, or both should be picked up.RequestedPropertyOnly
ConnectedVirtualPropertiesOnly
RequestedPropertyAndConnectedVirtualProperties
0..1

Additional notes:

  • Unless the selection criteria attribute with a value of “Undelivered” is used, the DateType, Start and End attributes are required
  • When using the DateType, Start and End attributes to indicate a time span, a maximum date range of one (1) week is allowed.

Example 1: “Undelivered”

<?xml version="1.0" encoding="UTF-16"?>
<OTA_ReadRQ 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>
  <ReadRequests>
    <HotelReadRequest HotelCode="12345">
      <SelectionCriteria SelectionType="Undelivered" />
    </HotelReadRequest>
  </ReadRequests>
</OTA_ReadRQ>

 

Example 2: “creation date/all”

<OTA_ReadRQ 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>
  <ReadRequests>
    <HotelReadRequest HotelCode="12345">
      <SelectionCriteria Start="2018-08-12" End="2018-08-14" DateType="CreateDate" SelectionType="All" />
    </HotelReadRequest>
  </ReadRequests>
</OTA_ReadRQ>

 

Example 3:”last update date/cancel”

<OTA_ReadRQ 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>
  <ReadRequests>
    <HotelReadRequest HotelCode="12345">
      <SelectionCriteria Start="2018-08-12" End="2018-08-14" DateType="LastUpdateDate" ResStatus="Cancel" />
    </HotelReadRequest>
  </ReadRequests>
</OTA_ReadRQ>

 

Example 4:”send actual room IDs, instead of virtual room IDs”

<OTA_ReadRQ 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>
  <ReadRequests>
    <HotelReadRequest HotelCode="12345">
      <SelectionCriteria SelectionType="Undelivered" />
      <TPA_Extensions>
        <UseActualRoomIds>false</UseActualRoomIds>
      </TPA_Extensions>
    </HotelReadRequest>
  </ReadRequests>
</OTA_ReadRQ>

 

OTA_ResRetrieveRS.

OTA_ResRetrieveRS

Both OTA_ReadRQ scenarios result in the same OTA_ResRetrieveRS response message.

All elements that contain a textual value that is marked as “formatted text” in OTA standard is written as a CDATA section. All other elements, including elements containing a textual value that is not a formatted text that is not formatted text, are written as normal elements.

Element / @AttributeParentInfo ValuesOccurrence
ReservationsListOTA_ResRetrieveRSThis message returns a list of reservations.0..1
HotelReservationReservationsListOne line in a list of hotel reservations.0..n
POSHotelReservationIdentifies who made the original reservation.Point of Sale (POS) identifies the party or connection channel making the request.
1
SourcePOSThis holds the details about the requestor. It may be repeated to also accommodate the delivery systems.Provides information on the source of a request.
1
BookingChannelSourceSpecifies the booking channel type and whether it is the primary means of connectivity of the source.
1
@TypeBookingChannelThe type of booking channel (e.g. Global Distribution System (GDS), Alternative Distribution System (ADS), Sales and Catering System (SCS), Property Management System (PMS), Central Reservation System (CRS), Tour Operator System (TOS), Internet and ALL). Refer to OpenTravel Code List Booking Channel Type (BCT).
[integer]1
CompanyNameBookingChannelIdentifies the company that is associated with the booking channel.Identifies a company by name.
[string]1
@RoomStayReservationHotelReservationAlways “true”True1
@CreateDateTimeHotelReservationTime stamp of the creation.[yyyy-MM-ddTHH:mm:ss]1
@CreatorIDHotelReservationThe ID of the booking site.[integer]
Refer to Code Creator ID
0..1
@LastModifyDateTimeHotelReservationTime stamp of last modification.[yyyy-MM-ddTHH:mm:ss]1
@LastModifierIDHotelReservationIdentifies the last software system or person to modify a record.[integer]0..1
@ResStatusHotelReservationIndicates the status of the reservation.Book
Cancel
modify
1
UniqueIDHotelReservationAn identifier used to uniquely reference an object in a system.1
@IDUniqueIDSmartHOTEL reservation ID.[integer]1
@TypeUniqueIDA reference to the type of object defined by the UniqueID element. Refer to OpenTravel Code List Unique ID Type (UIT).
14 = Reservation
15 = Cancellation
1
RoomStaysHotelReservationCollection of room stays.1
RoomStayRoomStaysDetails on the Room Stay. One RoomStays element can contain multiple RoomStay elements.1..n
@IndexNumberRoomStayNumber of the room stay within the RoomStays collection.[integer]1
RoomTypesRoomStayA collection of Room Types associated with a particular Room Stay.0..1
RoomTypeRoomTypesProvides details regarding rooms.1
@IsRoomRoomTypeIndicates whether the room type is a room (True) or a bed type (False).[boolean]1
@BedTypeCodeRoomTypeThe ID of the bed type.[integer]1
@NumberOfUnitsRoomTypeThe number of rooms that have been combined to create this room type.11
@RoomTypeCodeRoomTypeThe ID of the room.[integer]1
RoomDescriptionRoomTypeTextual information regarding the room.0..1
@NameRoomDescriptionThe name of the room.[string]1
RoomRatesRoomStayA collection of Room Rates associated with a particular Room Stay.0..1
RoomRateRoomRatesA room rate.1..n
@RoomTypeCodeRoomRateThe ID of the room.[integer]1
@NumberOfUnitsRoomRateThe number of rooms.11
@RatePlanCodeRoomRateThe ID of the rate.[integer]1
RatesRoomRateIndividual rate amount.1
RateRatesRate amount information.1
@EffectiveDateRateIndicates the starting date. (Date, yyyy-MM-dd)1
BaseRateThe base amount charged for the accommodation.0..1
@AmountBeforeTaxBaseThe total amount not including any associated tax.[numeric]0..1
@AmountAfterTaxBaseThe total amount including all associated taxes.[numeric]1
@CurrencyCodeBaseAn ISO 4217 (3) alpha character code that specifies a monetary unit.[string]0..1
@DecimalPlacesBaseThe ISO 4217 standard "minor unit" for the number of decimal places for a particular currency. [integer]1
TotalRoomRateThe total of all rates for this room rate type.0..1
@AmountBeforeTaxTotalThe total amount not including any associated tax.[numeric]0..1
@AmountAfterTaxTotalThe total amount including all associated taxes.[numeric]1
@CurrencyCodeTotalAn ISO 4217 (3) alpha character code that specifies a monetary unit.[string]1
@DecimalPlacesTotalThe ISO 4217 standard "minor unit" for the number of decimal places for a particular currency.[integer]0..1
GuestCountsRoomStayA collection of Guest Counts associated with Room Stay.0..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.True1
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 OpenTravel Code List Age Qualifying Code (AQC).1
@CountGuestCountThe number of guests in one AgeQualifyingCode.[integer]1
TimeSpanRoomStayThe Time Span which covers the Room Stay.1
@StartTimeSpanThe starting value of the time span.[yyyy-MM-dd]1
@EndTimeSpanThe ending value of the time span.[yyyy-MM-dd]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
False
1
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
False
1
@PolicyCodeCancelPenaltyThe ID of the cancellation policy.Refer to Code List Policy Codes1
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
Hours
0..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
Nights
1
TotalRoomStayThe total amount charged for the Room Stay including additional occupant amounts and fees.1
@AmountBeforeTaxTotalThe total amount not including any associated tax.[numeric]1
@AmountAfterTaxTotalThe total amount including all associated taxes.[numeric]1
@DecimalPlacesTotalThe ISO 4217 standard "minor unit" for the number of decimal places for a particular currency.[string]0..1
ResGuestRPHsRoomStayA collection of unsigned integers serving as reference placeholders, and used as an index identifying which guests occupy this room1
ResGuestRPHResGuestRPHsThis is a reference placeholder used as an index for a guest to be associated with this stay.1..n
@RPHResGuestRPHProvides a unique reference to the guest.[integer]1
ServiceRPHsRoomStayA collection of unsigned integers that reference the RPH (Reference Place holder) attribute in the Service object. The ServiceRPH attribute in the Service object is an indexing attribute that identifies the services attached to a specific guest or to the reservation.1
ServiceRPHServiceRPHsThis is a reference placeholder used as an index for a service to be associated with this stay.1..n
@RPHServiceRPHProvides a unique reference to the service.[integer]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
@ServiceRPHServiceA unique ID for a service that may be referenced elsewhere in the schema.[integer]1
@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
ResGuestsHotelReservationCollection of guests associated with the reservation. A collection of ResGuest objects, identifying the guests associated with this reservation. Which guests are in which room is determined by each RoomStays ResGuestRPHs collection.1
ResGuestResGuestsThe ResGuest object contains the information about a guest associated with a reservation.A collection of ResGuest objects, identifying the guests associated with this reservation. Which guests are in which room is determined by each RoomStays ResGuestRPHs collection.1
@ResGuestRPHResGuestThis is a reference placeholder, used as an index for this guest in this reservation. In the ResGuest object it is used like all other RPH attributes to send the delta of a reservation. It is used by the RoomStay and Service objects to indicate which guests are associated with that room stay or service.[integer]1
ProfilesResGuestA collection of Profile objects or Unique IDs of Profiles.1
ProfileInfoProfilesA collection of Profiles or Unique IDs of Profiles.1
ProfileProfileInfoProvides detailed information regarding either a company or a customer profile. Root element for profile content.1
@ProfileTypeProfileCode to specify a profile such as Customer, Tour Operator, Corporation, etc. Refer to OpenTravel Code List Profile Type (PRT).
1 = Customer
1
CustomerProfileDetailed customer information for this profile. Contains basic data on the customer's identity, location, relationships, finances, memberships, etc.1
@GenderCustomerIdentifies the gender.Unknown
Female
Male
1
PersonNameCustomerDetailed name information for the customer. This provides name information for a person.1
GivenNamePersonNameGiven name, first name or names.[string]1
SurnamePersonNameFamily name, last name. May also be used for full name if the sending system does not have the ability to separate a full name into its parts, e.g. the surname element may be used to pass the full name.[string]1
UniqueIDProfileInfoA unique ID for a profile. This element repeats to accommodate multiple unique IDs for a single profile across multiple systems. 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).1
@IDUniqueIDA 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
@TypeUniqueIDA reference to the type of object defined by the UniqueID element. Refer to OpenTravel Code List Unique ID Type (UIT).
21 = Profile
1
ResGlobalInfoHotelReservationResGlobalInfo is a container for various information that affects the Reservation as a whole. These include global comments, counts, reservation IDs, loyalty programs, and payment methods.1
TimeSpanResGlobalInfoThe Time Span which covers the Reservation, Room Stay or Service.1
@StartTimeSpanThe starting value of the time span.[yyyy-MM-dd]1
@EndTimeSpanThe ending value of the time span.[yyyy-MM-dd]1
CommentsResGlobalInfoA collection of Comment objects. Comments which apply to the whole Reservation or a particular Room Stay or Service. A collection of comments.1
CommentCommentsComment details.0..n
TextCommentFormatted text content.[string]1
GuaranteeResGlobalInfoThe guarantee information associated to the Reservation or a particular Room Stay or Service. The guarantee information to hold a reservation0..1
@GuaranteeTypeGuaranteeAn enumerated type defining the guarantee to be applied to this reservation.CC/DC/Voucher1
GuaranteesAcceptedGuaranteeTypeGuarantee Details.1
GuaranteeAcceptedGuaranteesAcceptedGuarantee Detail.1
@GuaranteeTypeCodeGuaranteeAcceptedUsed to specify the method of guarantee. Refer to OpenTravel Code List Payment Type (PMT).
5 = Credit card
1
PaymentCardGuaranteeAcceptedDetails of a debit or credit card. Specific payment card information.1
@CardCodePaymentCardIssuer code.[string]0..1
@ExpireDatePaymentCardIndicates the ending date.[MMYY]0..1
CardHolderNamePaymentCardCard holder name.0..1
CardNumberPaymentCardCredit card number embossed on the card. Secure information that supports PCI tokens, data masking and other encryption methods.0..1
PlainTextCardNumberNon-secure (plain text) value.[string]1
TotalResGlobalInfoThe total amount charged for the accommodation including additional occupant amounts and fees. The total amount charged for the service including additional amounts and fees.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]0..1
HotelReservationIDsResGlobalInfoA Collection of HotelReservationID objects for a given reservation. The collection of all ReservationIDs can include Passenger Name Record (PNR), Guest Name Record (GNR) and Guest Folio numbers. Associated with each can be a Confirmation number which is usually given to the guest.1
HotelReservationIDHotelReservationIDsThe HotelReservationID object contains various unique (ReservationID) and non unique (ConfirmationID, CancellationID) identifiers that the trading partners associate with a given reservation.0..n
@ResID_TypeHotelReservationIDDefines the type of Reservation ID (e.g. reservation number, cancellation number). Refer to OpenTravel Code List Unique ID Type (UIT).
5 = Travel agent
14 = Reservation
1
@ResID_ValueHotelReservationIDThis is the actual value associated with ResID_Type as generated by the system that is the source of the ResID_Type.[string]1
@ResID_SourceHotelReservationIDA unique identifier to indicate the source system which generated the ResID_Value.[integer]0..1
@ResID_SourceContextHotelReservationIDAdditional information on Source.[string]0..1
ProfilesResGlobalInfoA collection of Profile objects or Unique IDs of Profiles.1
ProfileInfoProfilesA collection of Profiles or Unique IDs of Profiles.1
ProfileProfileInfoProvides detailed information regarding either a company or a customer profile. Root element for profile content.1
@ProfileTypeProfileCode to specify a profile such as Customer, Tour Operator, Corporation, etc. Refer to OpenTravel Code List Profile Type (PRT).
18 = Billing contact
1
CustomerProfileDetailed customer information for this profile. Contains basic data on the customer's identity, location, relationships, finances, memberships, etc.1
@GenderCustomerIdentifies the gender.Unknown
Male
Female
1
PersonNameCustomerDetailed name information for the customer. This provides name information for a person.1
GivenNamePersonNameGiven name, first name or names.[string]1
SurnamePersonNameFamily name, last name. May also be used for full name if the sending system does not have the ability to separate a full name into its parts, e.g. the surname element may be used to pass the full name.[string]1
TelephoneCustomerInformation on a telephone number for the customer.0..1
@PhoneNumberTelephoneTelephone number assigned to a single location.[string]1
EmailCustomerInformation on an email address for the customer.[string]0..1
AddressCustomerDetailed information on an address for the customer.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
CityNameAddressCity (e.g., Dublin), town, or postal station (i.e., a postal service territory, often used in a military address).[string]0..1
PostalCodeAddressPost Office Code number.[string]0..1
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).[string]0..1
CompanyNameAddressIdentifies a company. Identifies a company by name.[string]0..1
@DepartmentCompanyNameThe department name or ID with which the contact is associated.[string]0..1
UniqueIDProfileInfoA unique ID for a profile. This element repeats to accommodate multiple unique IDs for a single profile across multiple systems. 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).1
@IDUniqueIDA 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
@TypeUniqueIDA reference to the type of object defined by the UniqueID element. Refer to OpenTravel Code List Unique ID Type (UIT).
21 = Customer
1
TotalCommissionsResGlobalInfoThe total commission for all rate segments in the reservation. Contains details pertaining to commissions.0..1
CommissionPayableAmountTotalCommissionsThe amount of commission to be paid.1
@AmountCommissionPayableAmountA monetary amount.[numeric]1
@CurrencyCodeCommissionPayableAmountAn ISO 4217 (3) alpha character code that specifies a monetary unit.[string]0..1
@DecimalPlacesCommissionPayableAmountThe ISO 4217 standard "minor unit" for the number of decimal places for a particular currency.[integer]0..1
BasicPropertyInfoResGlobalInfoProperty information for the reservation. An abbreviated short summary of hotel descriptive information.1
@HotelCodeBasicPropertyInfoThe ID of the hotel.[integer]1
TPA_ExtensionsHotelReservationA placeholder in the schema to allow for additional elements and attributes to be included per Trading Partner Agreement (TPA).0..1
PCIInformationUrlTPA_ExtensionThis will display a URL to the SmartHOTEL vault for creditcard information.
More information upon request.
1
<?xml version="1.0" encoding="UTF-16"?>
<OTA_ResRetrieveRS EchoToken="Example123" PrimaryLangID="eng" Target="Production" TimeStamp="2018-07-29T07:38:54.729Z" Version="1.0">
  <Success />
  <ReservationsList>
    <HotelReservation RoomStayReservation="true" CreateDateTime="2018-07-18T18:53:12" CreatorID="2" LastModifyDateTime="2018-07-18T18:53:12" LastModifierID="2" ResStatus="Book">
      <UniqueID ID="600123456" Type="14" />
      <RoomStays>
        <RoomStay IndexNumber="796">
          <RoomTypes>
            <RoomType NumberOfUnits="1" RoomTypeCode="4">
              <RoomDescription Name="Superior Double" />
            </RoomType>
          </RoomTypes>
          <RoomRates>
            <RoomRate RoomTypeCode="DBL" NumberOfUnits="1" RatePlanCode="STD">
              <Rates>
                <Rate EffectiveDate="2018-09-07">
                  <Base AmountBeforeTax="15100" AmountAfterTax="15100" DecimalPlaces="2" />
                </Rate>
              </Rates>
              <Total AmountBeforeTax="15100" AmountAfterTax="15100" DecimalPlaces="2" />
            </RoomRate>
            <RoomRate RoomTypeCode="DBL" NumberOfUnits="1" RatePlanCode="STD">
              <Rates>
                <Rate EffectiveDate="2018-09-08">
                  <Base AmountBeforeTax="15600" AmountAfterTax="15600" DecimalPlaces="2" />
                </Rate>
              </Rates>
              <Total AmountBeforeTax="15600" AmountAfterTax="15600" DecimalPlaces="2" />
            </RoomRate>
            <RoomRate RoomTypeCode="DBL" NumberOfUnits="1" RatePlanCode="STD">
              <Rates>
                <Rate EffectiveDate="2018-09-09">
                  <Base AmountBeforeTax="17600" AmountAfterTax="17600" DecimalPlaces="2" />
                </Rate>
              </Rates>
              <Total AmountBeforeTax="17600" AmountAfterTax="17600" DecimalPlaces="2" />
            </RoomRate>
          </RoomRates>
          <GuestCounts IsPerRoom="true">
            <GuestCount AgeQualifyingCode="10" Count="2" />
          </GuestCounts>
          <TimeSpan Start="2018-09-07" End="2018-09-10" />
          <CancelPenalties>
            <CancelPenalty PolicyCode="4" NonRefundable="false">
              <Deadline OffsetTimeUnit="Day" OffsetUnitMultiplier="15" OffsetDropTime="BeforeArrival" />
              <AmountPercent BasisType="FullStay" Percent="100" />
              <PenaltyDescription>
                <Text>
                  <![CDATA[Booking can be cancelled until 15 day(s) before arrival.]]>
                </Text>
              </PenaltyDescription>
            </CancelPenalty>
          </CancelPenalties>
          <Total AmountBeforeTax="56700" AmountAfterTax="56700" DecimalPlaces="2" />
          <ResGuestRPHs>
            <ResGuestRPH RPH="1" />
          </ResGuestRPHs>
          <ServiceRPHs>
            <ServiceRPH RPH="1" />
          </ServiceRPHs>
        </RoomStay>
      </RoomStays>
      <Services>
        <Service ServiceRPH="1" ServiceInventoryCode="1" ID="1103">
          <Price NumberOfUnits="1">
            <Base AmountAfterTax="1400" DecimalPlaces="2" />
          </Price>
          <ServiceDetails>
            <GuestCounts>
              <GuestCount Count="2" />
            </GuestCounts>
            <TimeSpan Start="2018-09-07" End="2018-09-10" />
            <ServiceDescription>
              <Text>
                <![CDATA[Breakfast]]>
              </Text>
            </ServiceDescription>
          </ServiceDetails>
          <TPA_Extensions>
            <ServiceExtension ServiceChargeType="6">
              <SelectedDates>
                <Date Value="2018-09-07" />
                <Date Value="2018-09-08" />
                <Date Value="2018-09-09" />
              </SelectedDates>
            </ServiceExtension>
          </TPA_Extensions>
        </Service>
      </Services>
      <ResGuests>
        <ResGuest ResGuestRPH="1">
          <Profiles>
            <ProfileInfo>
              <Profile ProfileType="1">
                <Customer Gender="Unknown">
                  <PersonName>
                    <GivenName>Customer</GivenName>
                    <Surname>Name</Surname>
                  </PersonName>
                </Customer>
              </Profile>
              <UniqueID ID="1234" Type="21" />
            </ProfileInfo>
          </Profiles>
        </ResGuest>
      </ResGuests>
      <ResGlobalInfo>
        <TimeSpan Start="2018-09-07" End="2018-09-10" />
        <Comments>
          <Comment>
            <Text>
              <![CDATA[You have a booker that prefers communication by email All guests provided by the booking site: Customer Name Total number of guests: 2 Total number of rooms: 1 ]]>
            </Text>
          </Comment>
        </Comments>
        <Guarantee GuaranteeType="CC/DC/Voucher">
          <GuaranteesAccepted>
            <GuaranteeAccepted GuaranteeTypeCode="5">
              <PaymentCard CardCode="VI" ExpireDate="0918">
                <CardHolderName>Card Holder Name</CardHolderName>
                <CardNumber>
                  <PlainText>XXXX</PlainText>
                </CardNumber>
              </PaymentCard>
            </GuaranteeAccepted>
          </GuaranteesAccepted>
        </Guarantee>
        <Total AmountAfterTax="56700" DecimalPlaces="2" />
        <HotelReservationIDs>
          <HotelReservationID ResID_Type="5" ResID_Value="123456789" ResID_Source="2" ResID_SourceContext="Booking.com" />
          <HotelReservationID ResID_Type="14" ResID_Value="600123456" />
        </HotelReservationIDs>
        <Profiles>
          <ProfileInfo>
            <Profile ProfileType="18">
              <Customer Gender="Unknown">
                <PersonName>
                  <GivenName>Booker</GivenName>
                  <Surname>Name</Surname>
                </PersonName>
                <Telephone PhoneNumber="+31182751118" />
                <Email>support@smarthotel.nl</Email>
                <Address FormattedInd="false">
                  <AddressLine>Einsteinstraat 5-7</AddressLine>
                  <CityName>Reeuwijk</CityName>
                  <PostalCode>2811EP</PostalCode>
                  <CountryName>NL</CountryName>
                </Address>
              </Customer>
            </Profile>
            <UniqueID ID="5678" Type="1" />
          </ProfileInfo>
        </Profiles>
        <TotalCommissions>
          <CommissionPayableAmount DecimalPlaces="2" Amount="10206" />
        </TotalCommissions>
        <BasicPropertyInfo HotelCode="12345" />
      </ResGlobalInfo>
    </HotelReservation>
  </ReservationsList>
</OTA_ResRetrieveRS>

 

OTA_HotelResModifyRQ/RS.

The OTA_HotelresModifyRQ is the answer from the PMS to The OTA_ResRetrieveRS. With this response the status in the channel manager will be set to ‘retrieved’ and it will not be returned to the PMS usless a specific request is sent from the PMS to the channel manager.

OTA_HotelResModifyRQ

Element / @AttributeParentInfoValuesOccurrence
HotelResModifiesOTA_HotelResModifyRQA collection of reservations to be modified. Full structure of a hotel reservation modification.1
HotelResModifyHotelResModifiesThe reservation to commit.1..n
@ResStatusHotelResModifyIndicates the status of the reservation.Commit /
Request Denied
1
RoomStaysHotelResModifyThe optional collection of room stays for which the modification should be made. If omitted, modifications will be made on the entire reservation.0..1
RoomStayRoomStaysDetails on the Room Stay. One RoomStays element can contain multiple RoomStay elements.1..n
@IndexNumberRoomStayNumber of the room stay within the RoomStays collection.1
ResGlobalInfoHotelResModifyResGlobalInfo is a container for various information that affects the Reservation as a whole. These include global comments, counts, reservation IDs, loyalty programs, and payment methods.1
BasicPropertyInfoResGlobalInfoProperty information for the reservation. An abbreviated short summary of hotel descriptive information.1
@HotelCodeBasicPropertyInfoThe ID of the hotel.[integer]1
HotelReservationIDsResGlobalInfoA Collection of HotelReservationID objects for a given reservation.1
HotelReservationIDHotelReservationIDsThe HotelReservationID object contains various unique (ReservationID) identifiers that the trading partners associate with a given reservation.1
@ResID_ValueHotelReservationIDThe ID of the reservation.[integer]1
@ResID_TypeHotelReservationIDDefines the type of Reservation ID.14 = Reservation1

Example 1: “Reservation level”

<?xml version="1.0" encoding="UTF-16"?>
<OTA_HotelResModifyRQ 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>
  <HotelResModifies>
    <HotelResModify ResStatus="Commit">
      <ResGlobalInfo>
        <BasicPropertyInfo HotelCode="21052" />
        <HotelReservationIDs>
          <HotelReservationID ResID_Value="123456" ResID_Type="14" />
        </HotelReservationIDs>
      </ResGlobalInfo>
    </HotelResModify>
  </HotelResModifies>
</OTA_HotelResModifyRQ>

 

Example 2: “Room stay level”

<?xml version="1.0" encoding="UTF-16"?>
<OTA_HotelResModifyRQ 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>
  <HotelResModifies>
    <HotelResModify ResStatus="Commit">
      <RoomStays>
        <RoomStay IndexNumber="123" />
      </RoomStays>
	  <ResGlobalInfo>
        <BasicPropertyInfo HotelCode="21052" />
        <HotelReservationIDs>
          <HotelReservationID ResID_Value="123456" ResID_Type="14" />
        </HotelReservationIDs>
      </ResGlobalInfo>
    </HotelResModify>
  </HotelResModifies>
</OTA_HotelResModifyRQ>

 

OTA_HotelResModifyRS

This is the response message for the reservation commit.

Element / @AttributeParentInfoValuesOccurrence
HotelResModifiesOTA_HotelResModifyRSA collection of reservations which have been modified. Full structure of a hotel reservation modification.1
HotelResModifyHotelResModifiesThe reservation that was committed.1..n
@ResStatusHotelResModifyIndicates the status of the reservation.Commit /
Request Denied
1
ResGlobalInfoHotelResModifyResGlobalInfo is a container for various information that affects the Reservation as a whole. These include global comments, counts, reservation IDs, loyalty programs, and payment methods.1
BasicPropertyInfoResGlobalInfoProperty information for the reservation. An abbreviated short summary of hotel descriptive information.1
@HotelCodeBasicPropertyInfoThe ID of the hotel.[integer]1
HotelReservationIDsResGlobalInfoA Collection of HotelReservationID objects for a given reservation.1
HotelReservationIDHotelReservationIDsThe HotelReservationID object contains various unique (ReservationID) identifiers that the trading partners associate with a given reservation.1
@ResID_ValueHotelReservationIDThe ID of the reservation.[integer]1
@ResID_TypeHotelReservationIDDefines the type of Reservation ID.14 = Reservation1
<?xml version="1.0" encoding="UTF-16"?>
<OTA_HotelResModifyRS EchoToken="Example123" PrimaryLangID="eng" Target="Production" TimeStamp="2018-07-29T07:38:54.729Z" Version="1.0">
  <Success />
  <HotelResModifies>
    <HotelResModify ResStatus="Commit">
      <ResGlobalInfo>
        <BasicPropertyInfo HotelCode="21052" />
        <HotelReservationIDs>
          <HotelReservationID ResID_Value="123456" ResID_Type="14" />
        </HotelReservationIDs>
      </ResGlobalInfo>
    </HotelResModify>
  </HotelResModifies>
</OTA_HotelResModifyRS>

 

Deposits.

The message that Smarthotel will send to partners to notify them about a deposit that has been made on a reservation.

OTA_HotelResModifyRQ (deposits)

This is the message for the reservation deposit.

Element / @AttributeParentInfoValuesOccurrence
HotelResModifiesOTA_HotelResModifyRQA collection of reservations to be modified. Full structure of a hotel reservation modification.1
HotelResModifyHotelResModifiesThe reservation to commit.1
UniqueIDHotelResModifyAn identifier used to uniquely reference an object in a system.1
@IDUniqueIDThe ID of the confirmation.1
@TypeUniqueIDDefines the type of UniqueID.14 = Reservation1
ResGlobalInfoHotelResModifyResGlobalInfo is a container for various information that affects the Reservation as a whole. These include global comments, counts, reservation IDs, loyalty programs, and payment methods.1
HotelReservationIDsResGlobalInfoA Collection of HotelReservationID objects for a given reservation.1
HotelReservationIDHotelReservationIDsThe HotelReservationID object contains various unique (ReservationID) identifiers that the trading partners associate with a given reservation.2
@ResID_ValueHotelReservationIDThe ID of the confirmation.1
@ResID_TypeHotelReservationIDDefines the type of Reservation ID.5 = Travel agent
14 = Reservation
1
DepositPaymentsResGlobalInfoA collection of deposit and/or payments.A collection of required payments.1
GuaranteePaymentDepositPaymentsUsed to define the deposit policy, guarantees policy, and/or accepted forms of payment.1
@GuaranteeCodeGuaranteePaymentThe code of the guarantee.1
@PaymentCodeGuaranteePaymentThe code of the payment.Deposit1
AmountPercentGuaranteePaymentThe deposit expressed as a fixed amount.1
@AmountAmountPercentThe deposit amount.1
@CurrencyCodeAmountPercentAn ISO 4217 (3) alpha character code that specifies a monetary unit.1
@DecimalPlacesAmountPercentThe ISO 4217 standard "minor unit" for the number of decimal places for a particular currency.21
DescriptionGuaranteePaymentText description of the payment.1
TextDescriptionThe text content.1
BasicPropertyInfoResGlobalInfoProperty information for the reservation. An abbreviated short summary of hotel descriptive information.1
@HotelCodeBasicPropertyInfoThe ID of the hotel.1
<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelResModifyRQ EchoToken="Example123" TimeStamp="2018-07-29T07:38:54.729Z" Version="1.0" ResStatus="Modify">
  <POS>
    <Source>
      <RequestorID ID="APIKEY" MessagePassword="APIPASSWORD"/>
    </Source>
  </POS>
  <HotelResModifies>
    <HotelResModify>
      <ResGlobalInfo>
        <HotelReservationIDs>
          <HotelReservationID ResID_Type="14" ResID_Value="123456" />
		  <HotelReservationID ResID_Type="5" ResID_Value="7890" />
        </HotelReservationIDs>
		<DepositPayments>
          <GuaranteePayment GuaranteeCode="1111" PaymentCode="Deposit" >
		    <AmountPercent Amount="15000" CurrencyCode="EUR" DecimalPlaces="2" />
			<Description>
			  <Text>Payment method</Text>
			</Description>
		  </GuaranteePayment>
		</DepositPayments>
		<BasicPropertyInfo HotelCode="21052" />
      </ResGlobalInfo>
    </HotelResModify>
  </HotelResModifies>
</OTA_HotelResModifyRQ>