Integration Requirements
Integration Requirements Guidelines
In accordance with the API Services Terms of Use Agreement signed by the PMS partner before development has commenced, these guidelines are in place to ensure efficient and proper use of the SMX for PMS API.
The following Integration Requirements must be adhered to by all PMS' that have or wish to have an interface to SiteMinder Exchange for Publishers.
Failure to follow these guidelines could jeopardise the PMS interface and, if no action is taken by the PMS provider to rectify non-compliance within 3 months from notification, SiteMinder reserves the right to disable the interface till such corrections have taken place.
Please note, however, that if the non-compliance of the PMS puts the performance to the whole SiteMinder production environment at risk, SiteMinder reserves the right to disable the interface immediately.
EchoTokens
EchoTokens are essential for all requests made over SiteMinder Exchange as per the following link - EchoToken, Timestamp and POS.
NOTE: Please ensure that you implement EchoTokens that are as 'unique' as possible to ensure that log trawling for troubleshooting purposes on either side is quick and efficient. Implementing GUIDs are recommended and more information about GUID can be found - http://en.wikipedia.org/wiki/Globally_unique_identifier.
File Upload Size
Uploaded messages must not exceed 512KB (uncompressed).
Error Handling / Hotelier Error Awareness
It is expected that your PMS has a robust error handling process whereby errors can be queued and resent.
GDPR - General Data Protection Regulation
We would like to make sure that the guest's privacy preferences are shared appropriately with our Apps Partners, so that hotels don't have to manually maintain the privacy details separately in these Apps as well as in their PMS. These privacy details can be used by Apps to manage their GDPR requirements, thereby protecting hotels from manually maintaining compliance in these external apps.
We support two attributes in our Reservation notification specs to manage guest privacy preferences: @ShareAllMarketInd and @ShareAllOptOutInd. We require you to implement these elements along with your reservation notifications to SMX, in the guest information you send under ResGuest Profiles and ResGlobalInfo Profiles. The SMX Applications can use the above fields to identify guests who do not wish to receive any communication and also take necessary guest data anonymization action on their side.
Reservation Upload - Maximum Content and Minimum Recommended Content
The Maximum Content it is the maximum amount of data that the publisher could provide in order to connect to all type of applications. It is important that the publisher always sends in each OTA_HotelResNotifRQ the maximum amount of data available on each reservation. See Maximum Content XML Sample.
The Minimum Recommended Content reflects the minimum amount of data that needs to be provided in order to meet the critical data required by all types of applications. The Minimum Recommended Content is for reference only and the publisher must send always its Maximum Content. See Minimum Recommended Content XML Sample.
The below table includes the elements / attributes contained in the Minimum Recommended Content:
Element | Attribute | Occurrence | Comments |
---|---|---|---|
OTA_HotelResNotifRQ | Mandatory |
| |
| @Version | Mandatory |
|
| @EchoToken | Mandatory |
|
| @TimeStamp | Mandatory |
|
OTA_HotelResNotifRQ / HotelReservations / HotelReservation |
| Recommended |
|
| @ResStatus | Mandatory |
|
| @CreateDateTime | Mandatory |
|
| @LastModifyDateTime | Mandatory | Mandatory if a message relating to this reservation has already been uploaded. |
OTA_HotelResNotifRQ / HotelReservations / HotelReservation / POS / Source / RequestorID | Mandatory | ||
| @ID | Mandatory |
|
OTA_HotelResNotifRQ / HotelReservations / HotelReservation / POS / Source / BookingChannel | Recommended | ||
| @Type | Recommended |
|
| @Primary | Recommended |
|
OTA_HotelResNotifRQ / HotelReservations / HotelReservation / POS / Source / CompanyName | Recommended |
| |
| @Code | Recommended |
|
OTA_HotelResNotifRQ / HotelReservations / HotelReservation / UniqueID | Mandatory | ||
| @ID | Mandatory |
|
OTA_HotelResNotifRQ / HotelReservations / HotelReservation / RoomStays | Mandatory | ||
OTA_HotelResNotifRQ / HotelReservations / HotelReservation / RoomStays / RoomStay | Recommended | ||
OTA_HotelResNotifRQ / HotelReservations / HotelReservation / RoomStays / RoomStay / RoomTypes / RoomType | Recommended | ||
| @RoomType | Recommended |
|
| @RoomTypeCode | Recommended |
|
| @RoomID | Recommended |
|
OTA_HotelResNotifRQ / HotelReservations / HotelReservation / RoomStays / RoomStay / RatePlans / RatePlan | Recommended |
| |
| @RatePlanCode | Recommended |
|
| @EffectiveDate | Recommended |
|
| @ExpireDate | Recommended |
|
OTA_HotelResNotifRQ / HotelReservations / HotelReservation / RoomStays / RoomStay / RoomRates / RoomRate | Recommended | ||
@RoomID | Recommended | ||
@RoomTypeCode | Recommended | ||
@RatePlanCode | Recommended |
| |
@EffectiveDate | Recommended |
| |
@ExpireDate | Recommended |
| |
OTA_HotelResNotifRQ / HotelReservations / HotelReservation / RoomStays / RoomStay / RoomRates / RoomRate / Rates / Rate | Recommended |
| |
@EffectiveDate | Recommended |
| |
@ExpireDate | Recommended |
| |
@UnitMultiplier | Recommended |
| |
OTA_HotelResNotifRQ / HotelReservations / HotelReservation / RoomStays / RoomStay / RoomRates / RoomRate / Rates / Rate / Total | Recommended |
| |
@AmountBeforeTax | Recommended | ||
@AmountAfterTax | Recommended | ||
@CurrencyCode | Recommended | ||
OTA_HotelResNotifRQ / HotelReservations / HotelReservation / RoomStays / RoomStay / GuestCounts / GuestCount | Recommended | ||
@AgeQualifyingCode | Recommended | ||
@Count | Recommended | ||
OTA_HotelResNotifRQ / HotelReservations / HotelReservation / RoomStays / RoomStay / TimeSpan | Mandatory | ||
@Start | Mandatory | ||
@End | Mandatory | ||
OTA_HotelResNotifRQ / HotelReservations / HotelReservation / RoomStays / RoomStay / Total | Recommended | ||
| @AmountBeforeTax | Recommended | May be AmountAfterTax |
| @AmountAfterTax | Recommended | May be AmountBeforeTax |
| @CurrencyCode | Recommended |
|
OTA_HotelResNotifRQ / HotelReservations / HotelReservation / RoomStays / RoomStay / ResGuestRPHs / ResGuestRPH | Recommended | ||
| @RPH | Recommended |
|
OTA_HotelResNotifRQ / HotelReservations / HotelReservation / ResGuests / ResGuest | Recommended | ||
| @ResGuestRPH | Recommended |
|
| @AgeQualifyingCode | Recommended |
|
| @PrimaryIndicator | Recommended |
|
OTA_HotelResNotifRQ / HotelReservations / HotelReservation / ResGuests / ResGuest / Profiles / ProfileInfo / Profile | Recommended | ResGuest / Profiles refers to the guest details. The person who is staying in the room. | |
| @ProfileType | Mandatory |
|
@ShareAllOptOutInd | Mandatory | SiteMinder's Certification GDRP Compliance | |
| @ShareAllMarketInd | Mandatory | SiteMinder's Certification GDRP Compliance |
OTA_HotelResNotifRQ / HotelReservations / HotelReservation / ResGuests / ResGuest / Profiles / ProfileInfo / Profile / Customer / PersonName | Recommended | ||
OTA_HotelResNotifRQ / HotelReservations / HotelReservation / ResGuests / ResGuest / Profiles / ProfileInfo / Profile / Customer / PersonName / GivenName | Recommended | ||
OTA_HotelResNotifRQ / HotelReservations / HotelReservation / ResGuests / ResGuest / Profiles / ProfileInfo / Profile / Customer / PersonName / Surname | Recommended | ||
OTA_HotelResNotifRQ / HotelReservations / HotelReservation / ResGuests / ResGuest / Profiles / ProfileInfo / Profile / Customer / Email | Recommended | ||
OTA_HotelResNotifRQ / HotelReservations / HotelReservation / ResGlobalInfo | Mandatory | ||
OTA_HotelResNotifRQ / HotelReservations / HotelReservation / ResGlobalInfo / GuestCounts / GuestCount | Recommended | ||
@AgeQualifyingCode | Recommended | ||
| @Count | Recommended |
|
OTA_HotelResNotifRQ / HotelReservations / HotelReservation / ResGlobalInfo / TimeSpan | Mandatory | ||
| @Start | Mandatory |
|
| @End | Mandatory |
|
OTA_HotelResNotifRQ / HotelReservations / HotelReservation / ResGlobalInfo / Total | Mandatory | ||
| @AmountBeforeTax | Mandatory | May be AmountAfterTax |
| @AmountAfterTax | Mandatory | May be AmountBeforeTax |
| @CurrencyCode | Recommended |
|
OTA_HotelResNotifRQ / HotelReservations / HotelReservation / ResGlobalInfo / HotelReservationIDs / HotelReservationID | Recommended | ||
| @ResID_Value | Recommended |
|
OTA_HotelResNotifRQ / HotelReservations / HotelReservation / ResGlobalInfo / Profiles / ProfileInfo / Profile | Recommended | ResGlobalInfo / Profiles refers to the customer details. The person, company or travel agent who has made the reservation. | |
| @ProfileType | Mandatory |
|
| @ShareAllOptOutInd | Mandatory | SiteMinder's Certification GDRP Compliance |
| @ShareAllMarketInd | Mandatory | SiteMinder's Certification GDRP Compliance |
OTA_HotelResNotifRQ / HotelReservations / HotelReservation / ResGlobalInfo / Profiles / ProfileInfo / Profile / Customer / PersonName | Recommended | ||
OTA_HotelResNotifRQ / HotelReservations / HotelReservation / ResGlobalInfo / Profiles / ProfileInfo / Profile / Customer / PersonName / GivenName | Recommended | ||
OTA_HotelResNotifRQ / HotelReservations / HotelReservation / ResGlobalInfo / Profiles / ProfileInfo / Profile / Customer / PersonName / Surname | Recommended | ||
OTA_HotelResNotifRQ / HotelReservations / HotelReservation / ResGlobalInfo / Profiles / ProfileInfo / Profile / Customer / Email | Recommended | ||
OTA_HotelResNotifRQ / HotelReservations / HotelReservation / ResGlobalInfo / BasicPropertyInfo | Mandatory | ||
| @HotelCode | Mandatory |
|