Rates and Restrictions to PMS (Beta)

Receive real-time rate and restriction updates from SiteMinder to keep your PMS synchronized.

circle-check

What is Rates and Restrictions to PMS?

Rates and Restrictions to PMS is a push notification method where SiteMinder sends rate and restriction updates directly to your Property Management System (PMS). This integration ensures that pricing and booking rules configured on the SiteMinder Platform are automatically synchronized to the PMS, maintaining accurate restriction management and rate parity across all connected systems.

circle-exclamation

Considerations

  • Asynchronous Processing: Due to high update volumes, your PMS must receive updates and queue them for offline processing rather than processing in real-time. This prevents blocking further updates from the PMSX application.

  • Rate Configuration Options: You must specify which rate format your PMS supports and implement the appropriate endpoint:

    • Per Day Pricing: /rates endpoint - Single daily rate with optional extra person charges

    • Occupancy Based Pricing: /occupancy-based-rates endpoint - Multiple rates based on adult occupancy (1-5 pax)

    • You only need to implement one rate endpoint based on your PMS capabilities

  • Automatic Rate Conversion: SiteMinder handles conversion between per day and occupancy-based pricing using the room rate configuration data in the Platform, regardless of which format your PMS supports.

  • Message Volume: Each message covers a specific room rate code combination with up to 760 dates per message, depending on the hotel's configured update period.

  • Selective Restriction Delivery: SiteMinder only sends restriction types that your PMS supports, preventing unnecessary data transmission.

  • Code Mapping: Use invTypeCode and ratePlanCode values that match the codes returned from the PMS Room and Rates endpoint.

circle-exclamation

Message Exchange Flow

The following diagram illustrates the asynchronous message flow for rate updates:

Hotel Room Rate Update (Per day rate)

post

Endpoint to receive and process hotel room rate rates

Authorizations
AuthorizationstringRequired
Path parameters
hotelCodestringRequired

Hotel identifier code

pmsCodestringRequired

PMSX partner code

Header parameters
X-SM-TRACE-TOKENstringRequired

The unique identifier of the request (UUID), this traceToken is logged with this request.

Example: 8bf21e96-e6c7-4bf9-a377-a5763e053538
Body
invTypeCodestringRequired

Inventory type code

Example: ABC
ratePlanCodestringRequired

Rate plan code

Example: CBA
currencyCodestringRequired

Three-letter currency code

Example: USDPattern: ^[A-Z]{3}$
Responses
chevron-right
200

Rates Update received

application/json
post
/pmses/{pmsCode}/hotels/{hotelCode}/rates

Hotel Room Rate Update (Occupancy based rates)

post

Endpoint to receive and process hotel room rate rates

Authorizations
AuthorizationstringRequired
Path parameters
hotelCodestringRequired

Hotel identifier code

pmsCodestringRequired

PMSX partner code

Header parameters
X-SM-TRACE-TOKENstringRequired

The unique identifier of the request (UUID), this traceToken is logged with this request.

Example: 8bf21e96-e6c7-4bf9-a377-a5763e053538
Body
invTypeCodestringRequired

Inventory type code

Example: ABC
ratePlanCodestringRequired

Rate plan code

Example: CBA
currencyCodestringRequired

Three-letter currency code

Example: USDPattern: ^[A-Z]{3}$
Responses
chevron-right
200

Rates Update received

post
/pmses/{pmsCode}/hotels/{hotelCode}/occupancy-based-rates

No content

Hotel Room Rate Update (Restrictions)

post

Endpoint to receive and process hotel room rate restrictions

Authorizations
AuthorizationstringRequired
Path parameters
hotelCodestringRequired

Hotel identifier code

pmsCodestringRequired

PMSX partner code

Header parameters
X-SM-TRACE-TOKENstringRequired

The unique identifier of the request (UUID), this traceToken is logged with this request.

Example: 8bf21e96-e6c7-4bf9-a377-a5763e053538
Body
invTypeCodestringRequired

Inventory type code

Example: ABC
ratePlanCodestringRequired

Rate plan code

Example: CBA
Responses
chevron-right
200

Restrictions Update received

post
/pmses/{pmsCode}/hotels/{hotelCode}/restrictions

No content

Common Questions

chevron-rightShould I implement both rate endpoints or just one?hashtag

You only need to implement one rate endpoint based on your PMS capabilities:

  • Per Day Pricing (/rates): Implement this if your PMS stores a single daily rate with optional extra person charges

  • Occupancy Based Pricing (/occupancy-based-rates): Implement this if your PMS stores separate rates for different occupancy levels (1-5 adults)

SiteMinder automatically converts between formats using the room rate configuration in the Platform, so you'll receive data in the format your PMS supports regardless of how it's configured in the Platform.

chevron-rightWhy must I queue updates for offline processing instead of processing them immediately?hashtag

Due to the high volume of rate and restriction updates, processing them synchronously would block SiteMinder from sending subsequent updates. Your PMS should:

  1. Receive the update and return 200 OK immediately

  2. Queue the update for asynchronous processing

  3. Process the queued updates offline without blocking new incoming requests

This ensures continuous data flow and prevents update backlogs.

chevron-rightWhat happens if my PMS doesn't support a specific restriction type?hashtag

SiteMinder only sends restriction types that your PMS supports. During integration setup, you specify which restriction types your PMS can handle. Unsupported restriction types won't be included in the update messages, reducing unnecessary data transmission and processing.

chevron-rightHow many dates can be included in a single update message?hashtag

Each message can contain up to 760 dates for a specific room rate code combination. The actual number depends on the update period configured by the hotel. Each date in the array represents a separate day's rates or restrictions.

chevron-rightHow should I handle the Retry-After header in 429 responses?hashtag

When your PMS returns a 429 (Too Many Requests) response, include the Retry-After header with the number of seconds SiteMinder should wait before retrying. This allows you to implement rate limiting and back-pressure when your system is under high load.

Example: Retry-After: 60 tells SiteMinder to wait 60 seconds before sending the next update.

Help Centre

Last updated

Was this helpful?