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.
...
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 be larger than 2MB (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 require you to implement the elements @ShareAllMarketInd and @ShareAllOptOutInd 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 anonymisation action on their side.
Reservation Upload - Minimum Suggested Content
The minimum suggested 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.
Element | Attribute | Description | |
---|---|---|---|
OTA_HotelResNotifRQ | Mandatory | ||
@Version | Mandatory | ||
@EchoToken | Mandatory | ||
@TimeStamp | Mandatory | ||
OTA_HotelResNotifRQ / HotelReservations / HotelReservation | Suggested | ||
@ResStatus | Mandatory | ||
@CreateDateTime | Mandatory | ||
@LastModifyDateTime | 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 | Suggested | ||
@Type | Suggested | ||
@Primary | Suggested | ||
OTA_HotelResNotifRQ / HotelReservations / HotelReservation / POS / Source / CompanyName | Suggested | ||
@Code | Suggested | ||
OTA_HotelResNotifRQ / HotelReservations / HotelReservation / UniqueID | Mandatory | ||
@ID | Mandatory | ||
OTA_HotelResNotifRQ / HotelReservations / HotelReservation / RoomStays | Mandatory | ||
OTA_HotelResNotifRQ / HotelReservations / HotelReservation / RoomStays / RoomStay | Suggested | ||
OTA_HotelResNotifRQ / HotelReservations / HotelReservation / RoomStays / RoomStay / RoomTypes / RoomType | Suggested | ||
@RoomType | Suggested | ||
@RoomTypeCode | Suggested | ||
@RoomID | Suggested | ||
OTA_HotelResNotifRQ / HotelReservations / HotelReservation / RoomStays / RoomStay / RatePlans / RatePlan | Suggested | ||
@RatePlanCode | Suggested | ||
@EffectiveDate | Suggested | ||
@ExpireDate | Suggested | ||
OTA_HotelResNotifRQ / HotelReservations / HotelReservation / RoomStays / RoomStay / RoomRates / RoomRate | Suggested | ||
@RoomID | Suggested | ||
@RoomTypeCode | Suggested | ||
@RatePlanCode | Suggested | ||
@EffectiveDate | Suggested | ||
@ExpireDate | Suggested | ||
OTA_HotelResNotifRQ / HotelReservations / HotelReservation / RoomStays / RoomStay / RoomRates / RoomRate / Rates / Rate | Suggested | ||
@EffectiveDate | Suggested | ||
@ExpireDate | Suggested | ||
@UnitMultiplier | Suggested | ||
OTA_HotelResNotifRQ / HotelReservations / HotelReservation / RoomStays / RoomStay / RoomRates / RoomRate / Rates / Rate / Total | Suggested | ||
@AmountBeforeTax | Suggested | ||
@AmountAfterTax | Suggested | ||
@CurrencyCode | Suggested | ||
OTA_HotelResNotifRQ / HotelReservations / HotelReservation / RoomStays / RoomStay / GuestCounts / GuestCount | Suggested | ||
@AgeQualifyingCode | Suggested | ||
@Count | Suggested | ||
OTA_HotelResNotifRQ / HotelReservations / HotelReservation / RoomStays / RoomStay / TimeSpan | Mandatory | ||
@Start | Mandatory | ||
@End | Mandatory | ||
OTA_HotelResNotifRQ / HotelReservations / HotelReservation / RoomStays / RoomStay / Total | Suggested | ||
@AmountBeforeTax | Suggested | ||
@AmountAfterTax | Suggested | ||
@CurrencyCode | Suggested | ||
OTA_HotelResNotifRQ / HotelReservations / HotelReservation / RoomStays / RoomStay / ResGuestRPHs / ResGuestRPH | Suggested | ||
@RPH | Suggested | ||
OTA_HotelResNotifRQ / HotelReservations / HotelReservation / ResGuests / ResGuest | Suggested | ||
@ResGuestRPH | Suggested | ||
@AgeQualifyingCode | Suggested | ||
@PrimaryIndicator | Suggested | ||
OTA_HotelResNotifRQ / HotelReservations / HotelReservation / ResGuests / ResGuest / Profiles / ProfileInfo / Profile | Suggested | ||
@ShareAllOptOutInd | Suggested | Mandatory for GDPR compliance | |
@ShareAllMarketInd | Suggested | Mandatory for GDPR compliance | |
OTA_HotelResNotifRQ / HotelReservations / HotelReservation / ResGuests / ResGuest / Profiles / ProfileInfo / Profile / Customer / PersonName | Suggested | ||
OTA_HotelResNotifRQ / HotelReservations / HotelReservation / ResGuests / ResGuest / Profiles / ProfileInfo / Profile / Customer / PersonName / GivenName | Suggested | ||
OTA_HotelResNotifRQ / HotelReservations / HotelReservation / ResGuests / ResGuest / Profiles / ProfileInfo / Profile / Customer / PersonName / Surname | Suggested | ||
OTA_HotelResNotifRQ / HotelReservations / HotelReservation / ResGuests / ResGuest / Profiles / ProfileInfo / Profile / Customer / Email | Suggested | ||
OTA_HotelResNotifRQ / HotelReservations / HotelReservation / ResGlobalInfo | Suggested | ||
OTA_HotelResNotifRQ / HotelReservations / HotelReservation / ResGlobalInfo / GuestCounts / GuestCount | Mandatory | ||
@AgeQualifyingCode | Suggested | ||
@Count | Suggested | ||
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 | Suggested | ||
OTA_HotelResNotifRQ / HotelReservations / HotelReservation / ResGlobalInfo / HotelReservationIDs / HotelReservationID | Suggested | ||
@ResID_Value | Suggested | ||
OTA_HotelResNotifRQ / HotelReservations / HotelReservation / ResGlobalInfo / Profiles / ProfileInfo / Profile | Suggested | ||
@ShareAllOptOutInd | Suggested | Mandatory for GDPR compliance | |
@ShareAllMarketInd | Suggested | Mandatory for GDPR compliance | |
OTA_HotelResNotifRQ / HotelReservations / HotelReservation / ResGlobalInfo / Profiles / ProfileInfo / Profile / Customer / PersonName | Suggested | ||
OTA_HotelResNotifRQ / HotelReservations / HotelReservation / ResGlobalInfo / Profiles / ProfileInfo / Profile / Customer / PersonName / GivenName | Suggested | ||
OTA_HotelResNotifRQ / HotelReservations / HotelReservation / ResGlobalInfo / Profiles / ProfileInfo / Profile / Customer / PersonName / Surname | Suggested | ||
OTA_HotelResNotifRQ / HotelReservations / HotelReservation / ResGlobalInfo / Profiles / ProfileInfo / Profile / Customer / Email | Suggested | ||
OTA_HotelResNotifRQ / HotelReservations / HotelReservation / ResGlobalInfo / BasicPropertyInfo | Mandatory | ||
@HotelCode | Mandatory |