Channel Rates API

The Channel Rates API allows you to manage room availability, pricing, and stay restrictions for a specific hotel, room type, and rate plan across various distribution channels. It supports both date range-based and per-day updates, enabling flexible control over how inventory and rates are distributed.

The API also accommodates guest-based pricing and channel-specific configurations, making it suitable for dynamic and granular rate management across connected platforms.

Endpoint

POST

https://connect-sandbox.su-api.com/SUAPI/jservice/channel-rates

Attributes

hotelid alphanumeric (Required)

The unique property ID as assigned by the provider upon creation of the property. Required existing hotel id to create rates for the room types.

Accepts alphanumeric values.

Space and Special characters are not allowed except Hyphen (" - ").

Maximum 20 characters allowed.


rooms array (Required)

This is an array represents the detail of the room.


rooms

roomid alphanumeric (Required)

The room ID / Listing ID as assigned by the provider.

Needs to be an active room in the STAAH system and if room is not available in STAAH then we will create on request.

roomid, RoomID, ListingID & InvCode defines the same field.

Amount of elements possible within parent: Min: 1 Max: unbounded

Accepts alphanumeric values and hyphen ( - ).

Space and other special characters are not allowed. Maximum 20 characters allowed.


rates array (Required)

IT provider's rate category ID which you are updating.

Rates to be updated need to be active in the STAAH system.

Note that rate elements become optional when updating only availability for a hotel.


rates

from datetime (Required)

Specifying a range in requests will update the date from and including the date specified.

Only current date to max up to 730 days in the future.

Format: YYYY-MM-DD


to datetime (Required)

Specifying a range in requests will update the date until and not including the date specified.

Only current date to max up to 730 days in the future.

Format: YYYY-MM-DD


rate_id string (Required)

Identifier of the rate plan (for example, "BAR", "NONREF").


channel_id integer (Required)

Identifier of the distribution channel (OTA).


channel_connection_id string (Optional)

Unique ID for the channel connection.


roomstosell integer (Required)

Set the amount of rooms that can be sold by OTAs to this number.

Rate should not be specified when updating roomstosell.

It cannot be a negative number.

Please note rate elements become optional when updating availability for a hotel.


prices array (Required)

The price for the given room for the given date for the given rate category.


closed boolean (Optional)

If set to 1 (or 0), this room will be closed (or opened) for the given date for the given rate category. All other information (such as roomstosell and price) is preserved.

The closed element functions as a restriction and defines whether a room is bookable or not.


minimumstay integer (Optional)

The minimum stay for the given room for the given date for the given rate category.

The minimumstay element functions as a restriction. If a booking takes place on this day a minimum stay (for the whole booking) of this number of days is required.

Each day in a stay has a room and rate category ID associated with it. Each set of consecutive days with the same rate category ID in a stay, must comply with the minimum stay setting of each of those days in that set (as if it were a separate stay).

Note this minimum stay restrictions have an effect on any given day of a booking, whereas the 'minimum stay arrival' restriction only affects a search for availability or reservation on the arrival date.


maximumstay integer (Optional)

The maximum stay for the given room for the given date for the given rate category.

The maximumstay element functions as a restriction. If a booking takes place on this day a maximum stay (for the whole booking) of this number of days is required.

Each day in a stay has a room and rate category ID associated with it. Each set of consecutive days with the same rate category ID in a stay, must comply with the maximum stay setting of each of those days in that set (as if it were a separate stay).

Note this maximum stay restrictions has an effect on any given day of a booking, whereas the maximum stay arrival' restriction only affects a search for availability or reservation on the arrival date.


closedonarrival boolean (Optional)

The closed on arrival setting (0 or 1). If set, the guest may not arrive in this room for the given room for the given date for the given rate category.

This restriction does not allow a reservation to be made when visitors want to arrive on the selected date. When the restriction is set to '0' for a certain date, guests are free to make a reservation with arrival on this date whereas a "1" will restrict guests to book rooms with this arrival date.


extraadultrate double (Optional)

The price for the extra adult for the given date for the given rate category.

extraadultrate cannot be removed after a value has been set, cannot be a negative number.


extrachildrate double (Optional)

The price for the extra child for the given date for the given rate category.

extrachildrate cannot be removed after a value has been set, cannot be a negative number.


minimumstaythrogh integer (Optional)

The minimum stay through for the given room for the given date for the given rate category.

Properties set a policy requiring guests to stay a minimum number of nights during a specific period, from check-out for the given room and rate category. Example: A three-night minimumstaythrough is set for August 28th. Any guest whose stay includes that day (August 28th) must select a check-out date of 3 days or more from August 28th.

Constraints: Cannot be a negative number


maximumstaythrough integer (Optional)

The maximum stay through for the given room for the given date for the given rate category.

Properties set a policy restricting guests to stay a maximum number of nights during a specific period, from check-out for the given room and rate category. Example: A fourteen-night maximumstaythrough is set for August 28th. Any guest whose stay includes that day (August 28th) can only select a check-out date within 14 days from August 28th.

Constraints: Cannot be a negative number


closedondeparture boolean (Optional)

The closedondeparture setting (0 or 1). If set, the guest may not depart from this room for the given room for the given date for the given rate category.

This restriction does not allow a reservation to be made when visitors want to depart on the selected date.

When the restriction is set to '0' for a certain date, guests are free to make a reservation with departure on this date whereas a "1" will restrict guests to book rooms with this departure date.


prices

number_of_guest integer (Required)

Number of guests for which price is applied.

Needs to be non-negative integer and maximum 30.


value integer (Required)

Price value for the given guest count.


Request

For date range

Allows you to update room availability, rates, and restrictions for a specific hotel, room type, and rate plan across a defined date range.

{
    "hotelid": "KC",
    "rooms": [
        {
            "room_id": "STD",
            "rates": [
                {
                    "from": "2025-05-28",
                    "to": "2025-05-29",
                    "rate_id": "BAR",
                    "channel_id": 19,
                    "roomstosell": 5,
                    "prices": [
                        {
                            "number_of_guest": 1,
                            "value": 100
                        },
                        {
                            "number_of_guest": 2,
                            "value": 200
                        }
                    ],
                    "closed": 0,
                    "minimumstay": 1,
                    "maximumstay": 15,
                    "closedonarrival": 0,
                    "extraadultrate": 20,
                    "extrachildrate": 25,
                    "minimumstaythrough": 1,
                    "maximumstaythrough": 2,
                    "closedondeparture": 0
                }
            ]
        }
    ]
}

For single date

Allows you to set the room availability, pricing, and stay restrictions for a specific hotel, room, and rate plan on a per-day basis. It supports channel-specific rate distribution with guest-based pricing.

{
    "hotelid": "KC",
    "rooms": [
        {
            "room_id": "STD",
            "rates": [
                {
                    "value": "2025-05-28",
                    "rate_id": "BAR",
                    "channel_id": 19,
                    "roomstosell": 5,
                    "channel_connection_id": "523654",
                    "prices": [
                        {
                            "number_of_guest": 1,
                            "value": 100
                        },
                        {
                            "number_of_guest": 2,
                            "value": 200
                        }
                    ],
                    "closed": 0,
                    "minimumstay": 1,
                    "maximumstay": 15,
                    "closedonarrival": 0,
                    "extraadultrate": 20,
                    "extrachildrate": 25,
                    "minimumstaythrough": 1,
                    "maximumstaythrough": 2,
                    "closedondeparture": 0
                }
            ]
        }
    ]
}

For multiple request with multiple date for same room:

{
    "hotelid": "KC",
    "rooms": [
        {
            "room_id": "STD",
            "rates": [
                {
                    "value": "2025-05-28",
                    "rate_id": "BAR",
                    "channel_id": 19,
                    "roomstosell": 5,
                    "channel_connection_id": "523654",
                    "prices": [
                        {
                            "number_of_guest": 1,
                            "value": 100
                        },
                        {
                            "number_of_guest": 2,
                            "value": 200
                        }
                    ],
                    "closed": 0,
                    "minimumstay": 1,
                    "maximumstay": 15,
                    "closedonarrival": 0,
                    "extraadultrate": 20,
                    "extrachildrate": 25,
                    "minimumstaythrough": 1,
                    "maximumstaythrough": 2,
                    "closedondeparture": 0
                },
                {
                    "value": "2025-05-29",
                    "rate_id": "BAR",
                    "channel_id": 19,
                    "roomstosell": 5,
                    "channel_connection_id": "523654",
                    "prices": [
                        {
                            "number_of_guest": 1,
                            "value": 100
                        },
                        {
                            "number_of_guest": 2,
                            "value": 200
                        }
                    ],
                    "closed": 0,
                    "minimumstay": 1,
                    "maximumstay": 15,
                    "closedonarrival": 0,
                    "extraadultrate": 20,
                    "extrachildrate": 25,
                    "minimumstaythrough": 1,
                    "maximumstaythrough": 2,
                    "closedondeparture": 0
                },
                {
                    "value": "2025-05-30",
                    "rate_id": "BAR",
                    "channel_id": 19,
                    "roomstosell": 5,
                    "channel_connection_id": "523654",
                    "prices": [
                        {
                            "number_of_guest": 1,
                            "value": 100
                        },
                        {
                            "number_of_guest": 2,
                            "value": 200
                        }
                    ],
                    "closed": 0,
                    "minimumstay": 1,
                    "maximumstay": 15,
                    "closedonarrival": 0,
                    "extraadultrate": 20,
                    "extrachildrate": 25,
                    "minimumstaythrough": 1,
                    "maximumstaythrough": 2,
                    "closedondeparture": 0
                },
                {
                    "from": "2025-06-01",
                    "to": "2025-06-15",
                    "rate_id": "BAR",
                    "channel_id": 19,
                    "roomstosell": 5,
                    "channel_connection_id": "523654",
                    "prices": [
                        {
                            "number_of_guest": 1,
                            "value": 100
                        },
                        {
                            "number_of_guest": 2,
                            "value": 200
                        }
                    ],
                    "closed": 0,
                    "minimumstay": 1,
                    "maximumstay": 15,
                    "closedonarrival": 0,
                    "extraadultrate": 20,
                    "extrachildrate": 25,
                    "minimumstaythrough": 1,
                    "maximumstaythrough": 2,
                    "closedondeparture": 0
                }
            ]
        }
    ]
}

For multiple request with diiferent room rate and different channels:

{
    "hotelid": "KC",
    "rooms": [
        {
            "room_id": "STD",
            "rates": [
                {
                    "value": "2025-05-28",
                    "rate_id": "BAR",
                    "channel_id": 19,
                    "roomstosell": 5,
                    "channel_connection_id": "523654",
                    "prices": [
                        {
                            "number_of_guest": 1,
                            "value": 100
                        },
                        {
                            "number_of_guest": 2,
                            "value": 200
                        }
                    ]
                }
            ]
        },
        {
            "room_id": "DLX",
            "rates": [
                {
                    "value": "2025-05-29",
                    "rate_id": "BreakFastOnly",
                    "channel_id": 189,
                    "roomstosell": 5,
                    "closed": 0,
                    "minimumstay": 1,
                    "maximumstay": 15,
                    "closedonarrival": 0,
                    "extraadultrate": 20,
                    "extrachildrate": 25,
                    "minimumstaythrough": 1,
                    "maximumstaythrough": 2,
                    "closedondeparture": 0
                }
            ]
        },
        {
            "room_id": "STD",
            "rates": [
                {
                    "value": "2025-05-30",
                    "rate_id": "BAR",
                    "channel_id": 19,
                    "roomstosell": 5,
                    "channel_connection_id": "523654",
                    "prices": [
                        {
                            "number_of_guest": 1,
                            "value": 100
                        },
                        {
                            "number_of_guest": 2,
                            "value": 200
                        }
                    ],
                    "closed": 0,
                    "minimumstay": 1,
                    "maximumstay": 15,
                    "closedonarrival": 0,
                    "extraadultrate": 20,
                    "extrachildrate": 25,
                    "minimumstaythrough": 1,
                    "maximumstaythrough": 2,
                    "closedondeparture": 0
                }
            ]
        },
        {
            "room_id": "RoomOnly",
            "rates": [
                {
                    "from": "2025-06-01",
                    "to": "2025-06-15",
                    "rate_id": "RP",
                    "channel_id": 19,
                    "roomstosell": 5,
                    "channel_connection_id": "523654",
                    "prices": [
                        {
                            "number_of_guest": 1,
                            "value": 100
                        },
                        {
                            "number_of_guest": 2,
                            "value": 200
                        }
                    ],
                    "closed": 0,
                    "minimumstay": 1,
                    "maximumstay": 15,
                    "closedonarrival": 0,
                    "extraadultrate": 20,
                    "extrachildrate": 25,
                    "minimumstaythrough": 1,
                    "maximumstaythrough": 2,
                    "closedondeparture": 0
                }
            ]
        }
    ]
}

Response

Attributes


Status string

Status of the request.


TicketId string

The ticket id if the status of the request is success.


Success Response

{
    "Status":"Success",
    "TicketId":"174824274798589344913"
}

Last updated

Was this helpful?