Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Image API refers to an interface that allows for the integration and retrieval of images related to hotels, accommodations, or other related visual content.
In other words, Image API allows you to upload, manage, and organize photos of your property. This increases the visibility of what your properties have to offer and might help with conversion.
An Image API could be used for the following purposes:
Create or provide images to display with a particular hotel, property, or room.
Retrieve images associated with a particular hotel, property, or room.
Dynamically update visual content, ensuring that images on various platforms remain accurate and current.
Integration with booking platforms and reservation systems allows for the seamless display of images.
Enhance the user experience for potential guests.
Maintain consistency in visual content across different online channels.
The Image Association API enables users to associate an image already stored in the PMS with a property within the PMS.
This API is used to associate or connect images with a specific property.
POST
hotelid string (Required)
Hotel id for which you want to associate an image.
imageid string (Required)
Id assigned to a specific image within the PMS.
pmsimageid string (Required)
Id assigned to a specific image within the PMS.
Request sample for the image associated with imageid for property:
Request sample for the image associate with imageid for room:
Request sample for the image associate with pms_imageid for property:
Request sample for the image associate with pms_imageid for room:
Sample Success Response
https://connect-sandbox.su-api.com/SUAPI/jservice/imageAssociation{
"hotelid":"111",
"images": [
{
"imageid": "100"
},
{
"imageid": "200"
},
{
"imageid": "111"
}
]
}
{
"hotelid":"111",
"roomid":"RM1"
"images": [
{
"imageid": "300"
},
{
"imageid": "122"
},
{
"imageid": "333"
}
]
}{
"hotelid":"111",
"images": [
{
"pms_imageid": "111wing"
},
{
"pms_imageid": "222"
},
{
"pms_imageid": "522"
}
]
}{
"hotelid":"111",
"roomid":"RM1",
"images": [
{
"pms_imageid": "666"
},
{
"pms_imageid": "968"
},
{
"pms_imageid": "266"
}
]
}{
"Status": "Success"
}The Create Image API allows users to upload or create images in the PMS.
POST
hotelid string (Required)
Hotel id for which you want to create and image.
proppmsid string (Required)
Id assigned to a specific property within the PMS.
images string (Required)
url string (Required)
URL of the image.
name string (Required)
Name of the image.
pms_imageid string (Optional)
Id assigned to a specific image within the PMS.
https://connect-sandbox.su-api.com/SUAPI/jservice/imageCreate{
"hotelid": "P103",
"images": [
{
"url": "https://www.xxxxxxx.com/xxxx/roadblue/xxxx.jpg
",
"name": "road blue",
"pms_imageid": "2222"
},
{
"url": "https://www.xxxxxxx.com/xxxx/bsky/xxxx.jpg
",
"name": "b sky",
"pms_imageid": "1111"
},
{
"url": "https://www.xxxxxxx.com/xxxx/bsky/xxxx.jpg
",
"name": "b sky",
"pms_imageid": "1111"
},
{
"url": "https://www.xxxxxxx.com/xxxx/bsky/xxxx.jpg
",
"name": "b sky",
"pms_imageid": "1111"
},
{
"url": "https://www.xxxxxxx.com/xxxx/bsky/xxxx.jpg
",
"name": "b sky",
"pms_imageid": "1111"
}
]
}{
"Status": "Success",
"Data": [
{
"pms_imageid": "2222",
"image_url": "https://www.xxxxxxx.com/xxxx/abc/xxxx.jpg
",
"su_url": "https://www.xxxxxxx.com/xxxx/abc/xxxx.jpg"
},
{
"pms_imageid": "1111",
"image_url": "https://www.xxxxxxx.com/xxxx/abc/xxxx.jpg
",
"su_url": "https://www.xxxxxxx.com/xxxx/abc/xxxx.jpg"
},
{
"pms_imageid": "1111",
"image_url": "https://www.xxxxxxx.com/xxxx/abc/xxxx.jpg
",
"su_url": "https://www.xxxxxxx.com/xxxx/abc/xxxx.jpg"
},
{
"pms_imageid": "1111",
"image_url": "https://www.xxxxxxx.com/xxxx/abc/xxxx.jpg
",
"su_url": "https://www.xxxxxxx.com/xxxx/abc/xxxx.jpg"
},
{
"pms_imageid": "1111",
"image_url": "https://www.xxxxxxx.com/xxxx/abc/xxxx.jpg
",
"su_url": "https://www.xxxxxxx.com/xxxx/abc/xxxx.jpg"
}
]
}{
"hotelid": "P103",
"images": [
{
"url": "https://www.xxxxxxx.com/xxxx/roadblue/xxxx.jpg
",
"name": "road blue"
},
{
"url": "https://www.xxxxxxx.com/xxxx/bsky/xxxx.jpg
",
"name": "b sky"
},
{
"url": "https://www.xxxxxxx.com/xxxx/bsky/xxxx.jpg
",
"name": "b sky"
},
{
"url": "https://www.xxxxxxx.com/xxxx/bsky/xxxx.jpg
",
"name": "b sky"
},
{
"url": "https://www.xxxxxxx.com/xxxx/bsky/xxxx.jpg
",
"name": "b sky"
}
]
}
{
"Status": "Success",
"Data": [
{
"imageid": 11006,
"image_url": "https://www.xxxxxxx.com/xxxx/abc/xxxx.jpg
",
"su_url": "https://www.xxxxxxx.com/xxxx/abc/xxxx.jpg"
},
{
"imageid": 11005,
"image_url": "https://www.xxxxxxx.com/xxxx/abc/xxxx.jpg
",
"su_url": "https://www.xxxxxxx.com/xxxx/abc/xxxx.jpg"
},
{
"imageid": 11005,
"image_url": "https://www.xxxxxxx.com/xxxx/abc/xxxx.jpg
",
"su_url": "https://www.xxxxxxx.com/xxxx/abc/xxxx.jpg"
},
{
"pms_imageid": "1111",
"image_url": "https://www.xxxxxxx.com/xxxx/abc/xxxx.jpg
",
"su_url": "https://www.xxxxxxx.com/xxxx/abc/xxxx.jpg"
},
{
"imageid": 11005,
"image_url": "https://www.xxxxxxx.com/xxxx/abc/xxxx.jpg
",
"su_url": "https://www.xxxxxxx.com/xxxx/abc/xxxx.jpg"
}
]
}{
"hotelid": "P103"
}{
"Status": "Success",
"Data": [
{
"image_name": "tesssst leaf",
"source_url": "https://www.xxxxxxx.com/xxxx/tesssstleaf/xxxx.jpg",
"su_url": "https://www.xxxxxxx.com/xxxx/tesssstleaf/xxxx.jpg",
"imageid": 10977,
"pms_imageid": "",
"is_associate": false
},
{
"image_name": "blue leaf",
"source_url": "https://png.pngtree.com/thumb_back/fh260/background/20230903/pngtree-teal-knit-background-free-download-as-png-jpg-b-w-or-image_13208667.jpg",
"su_url": "https://www.xxxxxxx.com/xxxx/blueleaf/xxxx.jpg",
"imageid": 10978,
"pms_imageid": "",
"is_associate": false
},
{
"image_name": "car",
"source_url": "https://www.xxxxxxx.com/xxxx/car/xxxx.jpg",
"su_url": "https://www.xxxxxxx.com/xxxx/car/xxxx.jpg",
"imageid": 10993,
"pms_imageid": "",
"is_associate": true
},
{
"image_name": "b sky",
"source_url": "https://www.xxxxxxx.com/xxxx/bsky/xxxx.jpg",
"su_url": "https://www.xxxxxxx.com/xxxx/bsky/xxxx.jpg",
"imageid": 11005,
"pms_imageid": "1111",
"is_associate": true
},
{
"image_name": "road blue",
"source_url": "https://www.xxxxxxx.com/xxxx/roadblue/xxxx.jpg
",
"su_url": "https://www.xxxxxxx.com/xxxx/roadblue/xxxx.jpg
",
"imageid": 11006,
"pms_imageid": "2222",
"is_associate": false
}
]
}For implementing the module, users have to add a blank div and script to their own system, which is mentioned below:
Add the Script: Include the following script in your HTML to load the required JavaScript file:
Create a Container Div: Insert a blank div in your HTML and assign it an id of your choice:
Invoke the Function: Call the function exported from the script, passing in the necessary object. This object is mandatory for loading the module.
See below:
Use below mention function to load module:
We currently support the following languages. To set a preferred language, please use the corresponding language codes:
Here’s the table you requested:
propertyId
Encrypted Property ID obtained via the API.
Required
Fetch this from the Property ID API before initializing the module.
token
Authentication token obtained via the API.
Required
Generate and pass a valid token from the Authentication API.
channelCode
Specific channel code to filter the results.
Optional
If left empty, all channels will be loaded by default.
Only applicable when type == "channel-Mapping" otherwise it will be ignored.
language
Sets the application language.
Optional
Default is "en" for English. Supported values may vary depending on API configuration.
All the languages mentioned in the table: are allowed.
themeColor
Object to customize the module’s theme colors.
Optional
Example: { iconColor: "#1e8ce4" }. If not provided, default colors will be applied automatically.
5
ja
Japanese
6
ka
Georgian
7
de
German
8
it
Italian
9
pl
Polish
10
es
Spanish / Castilian
11
uk
Ukrainian
Elements
Description
Optional/Required
Notes
elementId
The ID of the HTML <div> where the module will be mounted.
Required
Must match the id of the <div> added in the HTML. Example: <div id="app"></div>
type
Defines the integration type.
Required
Possible values are: channel-Mapping, booking-details, and mbs
appId
Base64-encoded PMS (Property Management System) domain value.
Required
Obtain your PMS domain and convert it to Base64 before passing.
1
ar
Arabic
2
zn
Chinese
3
en
English
4
fr
French
<script src="https://static.otaswitch.com/JS/script.js"></script><div id="app"></div>const tmpScriptObj = {
elementId: "app",
type: "channel-Mapping", // Other possible values are "booking-details", and "mbs"
appId: "c3RheWlubi5zdWlzc3UuY29t",
propertyId: "",
token: "",
channelCode: "",
language: "en",
themeColor: {
iconColor: "#1e8ce4"
}
}loadScript(tmpScriptObj);This Review API is only supported for Airbnb.
Use the correct OTA code for implementation: Airbnb Channel ID = 244.
Review is the way to share your stay experience with others, and it can be used not only by future travelers but also by competing hotels to see what others are saying about them so that they may improve their services.
People are more likely to book a room in a hotel that has a large number of reviews. They always keen to get an idea of what the experience will be like before actually booking it.
For hoteliers, positive reviews and the customer satisfaction are most important factors because they can encourage the business.
Su Review API allows delivery of guest reviews to property.
Reviews only shared for guests with booking.
API applicable for supported channel(s).
The reviews received from OTA are delivered to partner by post method. Reviews are posted to an endpoint provided by partner. Please note reviews can only be delivered to a single dedicated endpoint. Upon receipt, partners will need to filter reviews based on property ID.
END POINT: Please provide endpoint for reviews delivery.
Authorization String: Partner to allocate with Basic Authorization credentials.
message string (Optional)
This is message in the review.
guestid string (Optional)c
The unique guest ID as assigned by the provider (OTA) upon creation.
ID can be both numeric, alphanumeric and may have special character such as hyphen ( - ).
bookingid string (Optional)
Booking ID of the Booking.
ID can be both numeric, alphanumeric and may have special character such as hyphen ( - ). For Airbnb, if communication started before booking is made, the parameter will be the thread ID.
listingid string (Optional)
Property ID of the hotel (Channel Hotel ID).
bookingflag string (Optional)
The flag of the booking.
Values can be either B or T (B = Booking, T = Thread). Please note if there is no booking ID, the value will the same for both booking and thread ID.
messageid string (Optional)
This is message id for the particular message.
channel_id string (Optional)
Generated while delivering reviews from OTA.
Airbnb Channel ID: 244
threadid string (Optional)
The thread id created when communication takes place between guest and client,
ID can be both numeric, alphanumeric and may have special character such as hyphen ( - ).
User details
User_details contains the information about the user such as roles and name of users.
These are the different roles.
These are the name of users.
These are the attachments with the review if any.
Review received from OTA.
action string (Optional)
Action on the review, for example review_published.
reviewid string (Optional)
Id of the review.
reviewerid string (Optional)
Unique identity of the reviewer.
reviewer_role string (Optional)
Role of the reviewer.
revieweeid string (Optional)
Unique identity of the reviewee.
reviewee_role string (Optional)
Role of the reviewee.
listing_id string (Optional)
Unique identity of the listing.
private_feedback string (Optional)
Private feedback if any.
public_review string (Optional)
Public review if any.
hidden boolean (Optional)
If the review is hidden or shown.
submitted boolean (Optional)
If the review is submitted or in other state.
submitted_at string (Optional)
Time and date when the review is submitted.
expires_at string (Optional)
Time and date when the review gets expired.
booking_id string (Optional)
Booking id for which the review is posted.
ratings string (Optional)
Rating given by the reviewer.
hotelcode string (Optional)
It is the Hotel ID or Property ID assigned in Su.
Su Property ID.
API allows respond to guests' reviews to property.
Reviews only shared for guests with booking can be responded.
API applicable for supported channel(s).
Response to Reviews Collection from OTA
Once reviews received from OTA, will be delivered to partner by post method. Reviews made from guest to host can be responded using API.
POST
hotelid string (Optional)
It is the Hotel ID or Property ID assigned in Su.
Su Property ID.
channelid string (Optional)
Generated while delivering reviews from OTA.
Airbnb Channel ID: 244
replytext string (Optional)
The response to the review.
listingid string (Optional)
Property ID of the hotel (Channel Hotel ID).
locationid string (Optional)
Account / Host ID of the channel (Airbnb).
reviewid string (Optional)
ID of the review allocated which is being responded.
{
"message": "",
"guestid": "229895150",
"bookingid": "HM2ABCQQFK",
"listingid": "26789052",
"bookingflag": "RG",
"messageid": "419122356925038040162840360849",
"channel_id": "244",
"threadid": "419122356925038040",
"user_details": {
"roles": [],
"users": []
},
"booking_details": {},
"attachment": [],
"review": {
"action": "review_published",
"reviewid": 419122356988838000,
"reviewerid": 54970082,
"reviewer_role": "host",
"revieweeid": 229665005,
"reviewee_role": "guest",
"listing_id": "26789052",
"private_feedback": "TQVM boleh datang lagi ya ð",
"public_review": "Great guest!.",
"hidden": false,
"submitted": true,
"submitted_at": "2021-08-07T05:06:49.279Z",
"expires_at": "2021-08-15T06:41:18.403Z",
"booking_id": "HM2ABCQQFK",
"ratings": []
},
"hotelcode": "abc123"
}{
"status": "Success"
}https://connect-sandbox.su-api.com/SUAPI/jservice/OTA_ReplyReview{
"hotelid": "new1",
"channelid": "244",
"replytext": "Hello, Thank you for your review. We will get back to you with more details.",
"listingid": "38740008",
"locationid": "111201086",
"reviewid": "11001"
}{
"status": "Success"
}Contract Retrieval api allows users to fetch the existing contact details.
POST
hotel_id string (Required)
The unique property ID as assigned by the provider upon creation of the property.
legal_entity_id string (Required)
The identity of the legal entity.
legal_contact_email string (Required)
The Accommodation Partner's legal contact email.
Status string
The status of the response.
Message string
The message in the response.
Ruid string
Specifies the unique request ID.
Data object
The response data.
legal_entity_id integer
The unique legal entity ID.
city string
The city of the Accommodation Partner.
company_name string
The commercial name of the Accommodation Partner company.
contract_countries string
The countries in which the Accommodation Partner has properties.
total_number_of_properties string
The amount of properties connected to the Accommodation Partner.
legal_contact_phone_number string
The Accommodation Partner's legal contact phone number.
legal_contact_name string
The Accommodation Partner's legal contact name.
country string
The country of the Accommodation Partner.
legal_contact_email string
The Accommodation Partner's legal contact email.
contract_signed boolean
Indicates whether the contract is signed.
https://connect-sandbox.su-api.com/SUAPI/jservice/bdc/contract/retrive{
"hotel_id": "AWSTEST",
"legal_entity_id": "425500",
"legal_contact_email": "don.giovanni@hotel.com"
}{
"Status": "Success",
"Message": "Successfully fetch property legal details",
"Ruid": "e527c45a-f23a-4ee4-beb2-7d21f7699b1b",
"Data": {
"legal_entity_id": 248253,
"city": "Amsterdam",
"company_name": "Giovanni hotels",
"contract_countries": [
"France",
"Netherlands"
],
"total_number_of_properties": 2,
"legal_contact_phone_number": "+1234567890",
"legal_contact_name": "Don Giovanni",
"country": "Netherlands",
"legal_contact_email": "don.giovanni@hotel.com",
"contract_signed": 1
}
}{
"Status": "Fail",
"Errors": [],
"Message": "Trying to create a duplicate account!, Trying to create a duplicate countries!",
"Ruid": "e527c45a-f23a-4ee4-beb2-7d21f7699b1b",
"data": {}
}The endpoint allows users to update the existing property.
POST
hotel_id alphanumeric (Required)
The unique property ID as assigned by the provider upon creation of the property.
legal_entity_id string (Required)
The unique id for the legal entity associated with the hotel.
position object
Object containing geographical coordinates of the property.
latitude double (Required)
Latitude coordinates of the hotel location.
longitude double (Required)
Longitude coordinates of the hotel location.
check_in object
Object containing check-in times.
from enumerated string (Required)
Start time for check-in (required).
until enumerated string (Optional)
End time for check-in.
check_out object
Object containing check-out times.
from enumerated string (Optional)
Start time for check-out (optional).
until enumerated string (Required)
End time for check-out (required if check_out > from is specified).
property_name string (Required)
Name of the hotel property on Booking.com.
property_category integer (Required)
Category identifier for the hotel.
primary_language enumerated string (Optional)
Main preferred language spoken at the property.
languages_spoken array of enumerated strings (Optional)
Array of languages spoken at the property.
room_count integer (Required)
Number of sellable units/rooms available at the hotel.
floor_count integer (Optional)
The total number of floors in the building/hotel, excluding the underground floors.
stars string (Optional)
The number of stars, rating of the hotel.
target enumerated string (Required)
Specifies whether it is a test or production-ready property.
provider_property_id string (Optional)
Identifier for the property provider.
currency_code enumerated string (Optional)
The Booking.com defined currency for the property.
physical_address object (Required)
Object containing address details.
city_name string (Required)
City where the hotel is located.
country_code enumerated string (Required)
ISO code for the country (IN for India).
postal_code string (Optional)
Postal code of the hotel's location.
address_line string (Required)
Detailed address of the hotel.
display_address boolean (Optional)
Boolean indicating if the address should be displayed.
translations object
Object for multilingual support. Specifies the non-English translations of the physical address.
city_name string (Required)
Translated city name.
address_line string (Required)
Translated address line.
language_code enumerated string (Required)
Language code for translation.
property_name enumerated string (Required)
Translated property name.
Status string
The status of the response.
Data object
The response data, the root element.
property_id string
Specifies the property ID that was created.
Message string
The message in the response.
https://connect-sandbox.su-api.com/SUAPI/jservice/bdc/property/update{
"hotel_id": "new1",
"legal_entity_id": "78775",
"position": {
"latitude": -36.8485,
"longitude": 174.76333
},
"check_in": {
"from": "12:30",
"until": "13:00"
},
"check_out": {
"from": "10:00",
"until": "10:30"
},
"property_name": "TP TEST hotel NZ",
"property_category": 30,
"primary_language": "en-nz",
"languages_spoken": [
"en-nz"
],
"room_count": 8,
"floor_count": 1,
"stars": "4",
"target": "test",
"provider_property_id": "test",
"currency_code": "NZD",
"physical_address": {
"city_name": "Auckland",
"country_code": "NZ",
"postal_code": "1010",
"address_line": "123 Queen Street",
"display_address": true
},
"translations": {
"city_name": "t1",
"address_line": "t2",
"language_code": "ca",
"property_name": "New"
}
}{
"Status": "Success",
"Data": {
"property_id": 12905777
},
"Message": "Property updated successfully"
}{
"Status": "Fail",
"Errors": [],
"Message": "Invalid value - Legal entity 12855361 does not have a valid contract and is not allowed to create properties "
}This endpoint retrieves detailed information about a specific contact.
POST
hotel_id alphanumeric (Required)
The unique property ID as assigned by the provider upon creation of the property.
channel_hotel_id string (Required)
The unique id for the legal entity associated with the hotel. the unique ID of the property on channel to retrieve its details.
Status string
The status of the response.
Data object
The response data, the root element.
contacts array
An array of contact objects containing contact details.
contact_profiles array
A list of profiles associated with the contact (for example, invoices, general).
address object
Contains the address details of the contact including country, city and postal code details.
city_name string
The city name where the contact is located.
country_codeenumerated string
The ISO country code of the contact's location.
postal_code string
The postal code of the contact's location.
address_line string
The street address of the contact.
language_code enumerated string
The language code for the address.
contact_person object
Details about the contact person.
gender enumerated string
Gender of the contact person.
name string
Full name of the contact person.
job_title enumerated string
Job title of the contact person.
language_code string
Language code for the contact person (for example, 'en-gb').
phones array
List of phone numbers associated with the contact.
phone_number string
The actual phone number (all international phone numbers).
phone_tech_type enumerated string
Technology type of the phone (for example, '1' for landline).
extension string
Extension number for the phone, if applicable.
email string
Email address of the contact.
Error array
Array that contains details about any errors that occurred during the API call. Each object in the Errors array contains the following properties:
Code string
Specific error code that helps identify the type of error.
ShortText string
Brief description of the error.
Find below the details of the process which is divided into 2 phases.
Find attached Excel file with various test scenarios. Action accordingly and return the results for each test scenario in the field "Actual Result'. We expect to have examples of the request and the responses.
https://connect-sandbox.su-api.com/SUAPI/jservice/bdc/property/contact/retrieveMake sure to run all the test cases through your script and APIs that you have developed (API calls from your system).
Do not use any simulators or third-party tools like Postman to make requests.
Upon receipt of the result, we will verify accuracy of requests and responses as per the scenario. If all in order, we will schedule for Phase II.
This is a live test certification. We will schedule a Google meet call with you and perform live testing on the call.
This process is divided into two parts.
A) We will test Content, Rates, Availability and restriction with specific instruction: We will give you some tasks which you have to performed and it will get monitored by us via live logs on our side. The grounds of this test is to make sure that the data flow from and to PMS to Su is accurate with both requests and responses.
As per our earlier conversation, there are few APIs out of many are marked as must for a partner to be developed. Without those APIs developed, checked and verified, system will not be able to proceed ahead with passing the partner to production line.
Find the list of compulsory APIs listed below:
Content
Availability
Reservation
B) Booking Part : Depending on the booking retrieval model you have chosen, we will process some bookings for you, The goal is to make sure the system on your side is able to collect, parse and notify each type of bookings which can be different depending on the scenario.
We will perform test cases on the booking status to verify whether they are being successfully processed or not.
The example booking scenarios are as below:
Confirmed Booking (New Booking)
Same Booking gets Modified (Confirm to Modified)
Same Booking Cancelled (Confirm / Modified to Cancelled)
Direct Modified (Modified booking without having confirmed booking in Database)
Direct Cancelled (Cancelled booking without having confirmed/modified in Database)
Unposted Booking (Room type and/or rate plan not mapped in channel manager)
Blank Booked-At (Booking creation time and date not allocated by OTA )
Missing Information Booking (Some of the possible info of the guest is not allocated by OTA)
We will create such bookings and pass to your test property in the sandbox account so that you can collect, parse and notify the bookings. Here we are attaching the example booking JSON of each scenario for your reference.
Phase II of the certification takes approx 2 hours depending on potential hurdles to solve on either side. Once certification is completed, we will proceed ahead with creating your live production account and allocate you with new credentials.
Complete Phase I of certification and get back to us with the results to start on the certification process.
Do not hesitate to reach out if you require any assistance.
Once the PMS is certified, we will transition their account from sandbox mode to production mode, and all associated data will be purged.
When the PMS is in production mode, the system will no longer expect server requests for sandbox properties.
When PMS is in production, PMS will be entitled up to three demo login accounts.
app-id
string
Yes
Your application ID. Required for authentication.
Authorization
string
Yes
Your API key for authorization.
Content-Type
string
Yes
Must be set to application/json.
Su is the platform that enables easy connectivity and total transparency.
The highly reliable and scalable product powers direct connections to over 175 OTAs across the globe, enabling seamless connectivity to delight your customers.
The Su platform gives PMS providers in total control and helps you grow your business with easy connectivity. The sophisticated technology is simplified with easy connectivity, human access and total transparency. Our platform puts PMS providers in control and helps them grow.
The Su platform is built by an experienced technical team specializing in OTA connectivity to ensure the system runs as efficiently as possible. That being said, we know it’s reassuring to have a real person on the other end of the phone, whom you can call at any time if you need help.
Setting up Su could not be easier. We offer dedicated support and guidance from our experienced product team to ensure a smooth and seamless integration.
-app-id: YOUR_APP_ID
Authorization: YOUR_API_KEY
Content-Type:application/json{
"hotel_id": "NT7",
"channel_hotel_id": "12837615"
}{
"Status": "Success",
"Data": {
"contacts": [
{
"contact_profiles": [
{
"type": "invoices"
}
],
"address": {
"city_name": "Amsterdam",
"country_code": "NL",
"postal_code": "1011 DL",
"address_line": "New Straat 123",
"language_code": "en-gb"
},
"contact_person": {
"gender": "female",
"name": "Waddington Bloem",
"job_title": "Administration Employee",
"language_code": "en-gb"
},
"phones": [
{
"phone_number": "+31243611111",
"phone_tech_type": 1,
"extension": "1"
}
],
"email": "test@booking.com"
},
{
"contact_profiles": [
{
"type": "general"
}
],
"address": {
"city_name": "Amsterdam",
"country_code": "NL",
"postal_code": "1011 DL",
"address_line": "New Straat 456",
"language_code": "en-gb"
},
"contact_person": {
"gender": "male",
"name": "Bensen Clay",
"job_title": "Administration Employee",
"language_code": "en-gb"
},
"phones": [
{
"phone_number": "+31243611111",
"phone_tech_type": 1,
"extension": "1"
}
],
"email": "tests@booking.com"
}
]
},
"Message": "Property Contact-Details Fetched Successfully"
}{
"Errors": [
{
"Code": "400",
"ShortText": "HotelCode: Invalid HotelCode ('NT711')"
}
],
"Status": "Fail"
}{
"Errors": [
{
"Code": "573",
"ShortText": "channel-mapping not found for this property!"
}
],
"Status": "Fail"
}{
"Status": "Fail",
"Errors": [],
"Message": "Access denied"
}Brief introduction of every resource and link to the detailed page. To know more about the resource, click on the tile.
Property
Property describes a commercial premises such as hotels, motels, lodges, luxury apartments, home stays and other types of buildings where individuals, couples, families and/or groups pay to stay, eat, have fun, relax, and to take advantage of all the offered in-house services available.
Su Property API lets you create a new property, update or modify existing property details.
OTA_HotelDescriptiveContentNotif
Room Type
Room type describes the specific rooms in the hotel based on their room names, classifications, occupancy, sizes, and facilities, amenities or view provided to the guests.
For example, you might offer a Deluxe Room with double occupancy with pool view or beach access.
Su Room Type API lets you create a new room type, update or modify , deactivate, activate, and delete existing room type.
OTA_HotelRoom
Rate Plan
Rate Plan describes as the price or cost that is charged by the hotel per night basis. Rate Plan is the term given to different rates you see on a hotel website when you search for a set of dates.
Su Rate Plan API lets you create a new rate plan, update or modify, deactivate, activate, and delete existing rate plan.
OTA_HotelRatePlan
Listing
Listing refers to property listing, Su provides fast and easy way to listing your property.
Listing shares all the characteristics and the qualities of your property such as room types, rate plans, policies, amenities, photographs, and availability. Travelers love to check all the details before booking a particular property for their stay.
Reservations
Reservation refers to the process of blocking a particular room for the guest for a specific duration of time. This process involves taking information from the customer, such as their name, contact details and payment method, and then reserving a room in advance.
This helps hotels manage their occupancy levels more effectively by ensuring that rooms are not left empty due to lack of bookings or overbooking.
Reviews
Review is the way to share your stay experience with others, and it can be used not only by future travelers but also by competing hotels to see what others are saying about them so that they may improve their services.
People are more likely to book a room in a hotel that has a large number of reviews. They always keen to get an idea of what the experience will be like before actually booking it.
For hoteliers, positive reviews and the customer satisfaction are most important factors because they can encourage the business.
Messaging
Messaging refers to the direct communication between properties and the guests through the messages. With the help of messaging, customers with or without booking can ask questions or communicate to the properties.
Su Messaging API helps you to collect guests' messages from the OTA and respond guests' messages.
Room Rate amount:
per IT provider's Room and Rate combination
per date
Restrictions:
per IT provider's Room and Rate combination
per date)
Reporting - No show
All Su API requests need to be authenticated through the authorization header. The Su APIs offer only basic authentication methods.
IMPORTANT NOTICE
The current authentication method will be deprecated on 1st April 2026.
If you are already using it, please plan your migration.
If you are implementing authentication from scratch, we strongly recommend adopting the new Token-based Authentication mechanism.
Authorization involves sending credentials (username and password) and app-id with every API request. Here's how it works:
Encoding Credentials
Your username and password are encoded in Base64 format and separated by a colon (:).
For example, username:password becomes dXNlcm5hbWU6cGFzc3dvcmQ= in Base64.
The Su Partner Supply API authentication process validates the identity of the client attempting to make a connection by using an authentication protocol. The system needs to make sure each end user is properly validated.
Your API keys carry many privileges, so be sure to keep them secure. Do not share your secret API keys in publicly accessible areas such as GitHub, client-side code, and so forth.
All requests to the Su REST API need to be authenticated. The Su API supports the scheme for the Partner Supply APIs. For each request, you must include an authorization header.
Partners can opt for their own domain for live production. STAAH requires an SSL certificate for the domain that is valid for the next 2 years at least.
Encoding provides a specific mechanism for handling text in various available character encodings. The Partner Supply API uses UTF-8 encoding for the JSON body for all API requests and responses.
An API failure is any response that does not confirm to the system’s expected behavior when invoked by the client. If a call fails authentication, the API returns HTTP status code 401. See below:
Adding to Header
The encoded credentials are added to the request header after the word "Basic". Example: Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=
Usage Example
When making an API request to generate API keys, you include the Authorization header and your unique app ID provided by Su.
The app-id is a unique identifier provided to PMS partners by Su.
Authorization: Basic ZTZjTk80S1U6VjBEN1NxSGo
app-id: dWF0c3Uuc3RhYWgubmV0Authorization: Basic {Authorization String}{
"Status": "Fail",
"Errors": {
"Code": "497",
"ShortText": "Authorization Required"
}
}The Su Partner API provides everything you need to solve a variety of property management needs. The Su Partner API is organized around REST. Our API has predictable resource-oriented URLs, accepts form-encoded request bodies, returns JSON-encoded responses, and uses standard HTTP response codes, authentication, and verbs.
Book a live demo to see Su in action. We create a property from scratch and map it to an OTA in the simulator, so you can see for yourself just how simple the platform is to use.
Arrange a technical call before proceeding with agreements to get up and running with ease.
Integration is built with our guidance and dedicated customer support.
See below:
Partner Success
partnersuccess[at]su-api.com
Support
support[at]su-api.com
Launch and start using Su to take back control effortlessly. Our solution provides complete connectivity, allowing you to focus on growing your Property Management System (PMS) with ease and confidence. Elevate your business with seamless integration and streamlined operations.
Provide endpoint and parameters for the different API calls.
Before you begin, send a request email to Su support. The Su API key and other details are generated from Su through the system and are being manually passed to PMS through email. See the contact information below.
If later you need to change the API keys, send a request email to Su support. After going through the details and request reason, you will get an email with the updated Su keys from the Su support team. See the contact information below.
Partner Success
Support
https://connect-sandbox.su-api.comhttps://connect-sandbox.su-api.com/[endpoint]?[parameters]Rate Plan is the price or cost charged by the hotel per night. Rate Plan is the term given to different rates you see on a hotel website when you search for a set of dates.
Create or update rate plan API is used to build new rates or add missing rates. It is also possible to change the rate name or remove an existing rate plan.
POST
Send a request with STAAH rate level build data which consists of a set of predefined parameters.
Rate Plans hotelid / HotelCode / ClientID string (Required)
The existing property ID. Required existing id to create or update rate plans.
RatePlan array contains the different rate plans for the property.
RatePlanNotifType string (Required)
Indicates whether the call is meant to create new rateplan or update an existing one for property.
Accepts values: [New, Overlay, Remove, Activate].
To create use New and to update rateplan, see , , , and .
rateplanid / RatePlanID string (Required)
The rateplan ID as assigned by the provider.
Accepts alphanumeric values and "-" (Hyphen).
Space and Special characters are not allowed.
Maximum 20 characters allowed.
MealPlanID string (Optional)
Name of the MealPlan. See .
Accepts the values listed under .
If wrong mealplanID sent, then it will take default value.
Default: 15 (Room Only).
closeoutdays number (Optional)
The closeoutdays as allocated by the provider for rateplan.
Accepts the values between 0 to 30 but must be in quotes. Default value is -1(no closeouts).
closeouttime string (Optional)
The closeouttime as allocated by the provider for rateplan.
Accepts the values between 00:00 to 24:00(Interval must be 30 min). It is required only if you set closeoutdays value as 0. Default value is -1(no closeouts).
This object contains the name of the rate plan and the additional note about the rate plan.
Name string (Required)
The rate plan name.
Text string (Optional)
Additional detail or specific note about the rate plan.
Refer .
Refer .
Refer .
Refer .
Property describes a commercial premises such as hotels, motels, lodges, luxury apartments, home stays and other types of buildings where individuals, couples, families and/or groups pay to stay, eat, have fun, relax, and to take advantage of all the offered in-house services available.
You can create a new property or update an existing property with this API.
POST
The HotelDescriptiveContent object defines all the details of a particular hotel such as hotel id, hotel name, time zone, currency, language, contact info, hotel email id, phone number, and position. Partner can provide all these details using the sample request and create or update hotel descriptive content.
The dot notation indicates that the property is one level deep inside a hash. No attributes are guaranteed to be present, and if we cannot find data on a specific network, then we will return a null value for that attribute.
HotelName string (Required)
Name of the property as it should be displayed on the website as a hotel name.
Accepts alphanumeric values.
Special characters are not allowed except Hyphen & Apostrophe mark (" - ", " ' ").
HotelType string (Optional)
Hotels are classified according to the location, target markets, ownership, affiliation, and facility provided. HotelType describes the type of that property.
Accepts values: [1, 2 or 3] (Default value=1)
1- Hotel
2- Motel
3- Vacational Rental
TimeZone string (Optional)
If no value passed, system would take the default value of TimeZone depending on the country.
Accepts the values listed under .
Platform string (Optional)
PMS service assigned as Both (SU & STAAH).
Accepts values: ["SU" or "STAAH"]
hotelid / HotelCode / ClientID string (Required)
The unique property ID as assigned by the provider upon creation of the property.
Accepts alphanumeric values.
Space and Special characters are not allowed except Hyphen (" - ").
Maximum 20 characters allowed.
ChainID string (Optional)
The Chain ID as assigned by the provider upon creation of the property.
Accepts alphanumeric values.
Space and Special characters are not allowed except Hyphen (" - ").
Maximum 15 characters allowed.
LanguageCode enum (Required)
The language codes which are acceptable for the property.
Accepts the values listed under .
Default: en
CurrencyCode string (Required)
The currency codes which are acceptable for the property.
Accepts the values listed under .
closeoutdays number (Optional)
The closeoutdays as allocated by the provider for the property.
Accepts the values between 0 to 30 but must be in quotes. Default value is - 1 (no closeouts).
closeouttime string (Optional)
The closeouttime as allocated by the provider for the property.
Accepts the values between 00:00 to 24:00 (Interval must be 30 min). It is required only if you set closeoutdays value as 0. Default value is - 1 (no closeouts).
HotelDescriptiveContentNotifType enum (Required)
Indicates whether the call is meant to create a new property or update an existing one.
Accepts these values: New and Overlay.
Default: New
PropertyLicenseNumber string (Optional)
The property license number, as provided by the local authority.
Required for certain property types, in certain regions.
OfficialCheckinTime string (Optional)
Indicates Check-in Time for the earliest time a guest can check in.
Format: HH:MM 24-hour check-in can be specified using 00:00
OfficialCheckoutTime string (Optional)
Indicates Check-out Time for the earliest time a guest can check out.
Format: HH:MM 24-hour check-in can be specified using 00:00
The ContactInfos object contains all the information related to the property. This object is the building block of Names, Addresses, Emails, and Phones.
If the contact profile type is physical location, then you have to provide the complete address which contains complete physical address of the property (City, , and Country).
ContactProfileType enum (Required)
Indicates the type of contact.
Accepts: availability and PhysicalLocation.
availability- Contact for questions about availability.
PhysicalLocation- Address details for the property's physical location.
Name.GivenName string (Required)
The contact's given (first) name.
Name.Surname string (Required)
The contact's last name or family name.
NotificationEmail email (Optional)
Email address on which reservations will be notified.
Multiple Notification Email allowed.
Provides information about the addresses associated with hotels or properties.
Address.AddressLine string (Required)
The full street name and number.
Address.CityName string (Required)
The name of the city, town, or village.
Only editable via Extranet.
Address.CountryName countrycode (Required)
The two-letter code for the country.
Only editable via Extranet listed under .
Address.PostalCode string (Required)
The postal or zip code.
Provides information about the addresses associated with hotels or properties.
Email string (Required)
Contains a valid email address.
Refers to the phone number and the phone tech type used.
Phone.PhoneNumber string (Required)
The international phone number that must be dialed to reach the phone.
Must begin with +, followed by all digits required to dial internationally.
No whitespace, hyphens, or other characters allowed.
Not more than 15 numbers.
Phone.PhoneTechType enum (Required)
The type of phone line or device, expressed as a PTT code.
This object represents your hotel’s physical position. It provides the exact co-ordinates containing the value of and .
Position.Latitude latitude-value (Required)
Latitude of the property's location.
A valid Latitude value (-90) to 90.
Position.Longitude longitude-value (Required)
Longitude of the property's location.
A valid Longitude value (-180) to 180.
This array represents the facility in your hotel such as free parking, internet connection, cab service, and CCTV camera. It provides the information in combination of the facility and the group name from which the facility belongs to.
Facility.Group string (Optional)
Group name of the facility.
Facility.name string (Optional)
Name of the facility under a group, multiple facility name can come under one group.
HotelDescription Free Text (Optional)
Proper description of the property/hotel.
Maximum 100 characters. If exceeded, system will simply accept and will not return an error.
Sample Error Response
This API uses an overlay system. Every time you update an existing property, room type or other objects, the body of your request replaces previous information.
This means existing information will be deleted if you don’t include in your request.To update an object without deleting information, make sure your request contains both the fields you want to update and those you want to keep the same.
Listing refers to property listing, Su provides fast and easy way to listing your property.
Listing shares all the characteristics and the qualities of your property, such as room types, rate plans, policies, amenities, photographs, and availability. Travelers love to check all the details before booking a particular property for their stay.
If needed to be updated / modified, entire mode will have to be passed <Facilities>.....</Facilities>
https://connect-sandbox.su-api.com/SUAPI/jservice/OTA_HotelRatePlan{
"RatePlans": {
"hotelid": "KC",
"RatePlan": [{
"RatePlanNotifType": "New",
"rateplanid": "BAR",
"MealPlanID": "1",
"closeoutdays": "0",
"closeouttime": "00:30",
"Description": {
"Name": "BAR",
"Text" : "Best Rate Available Rate Plan"
}
},
{
"RatePlanNotifType": "New",
"rateplanid": "RACK",
"MealPlanID": "2",
"Description": {
"Name": "RACK",
"Text" : "max Daily Rate of the Rate Plan"
}
}
]
}
}{
"Status": "Success"
}{
"RatePlans": {
"hotelid": "KC",
"RatePlan": [{
"RatePlanNotifType": "Overlay",
"rateplanid": "12345889Ab",
"MealPlanID": "2",
"Description": {
"Name": "Early booker rate",
"Text": "Change can be made here"
}
}]
}{
"RatePlans": {
"hotelid": "KC",
"RatePlan": [{
"RatePlanNotifType": "Remove",
"rateplanid": "BAR"
}]
}
}{
"RatePlans": {
"hotelid": "WA",
"RatePlan": [{
"RatePlanNotifType": "Activate",
"rateplanid": "BAR"
}]
}
}{
"RatePlans": {
"hotelid": "KC",
"RatePlan": [{
"RatePlanNotifType": "Delete",
"rateplanid": "BAR"
}]
}
}{
"Status": "Success"
} https://connect-sandbox.su-api.com/SUAPI/jservice/OTA_HotelDescriptiveContentNotif{
"HotelDescriptiveContents": {
"HotelDescriptiveContent": {
"HotelName": "Kings Cross",
"HotelType": "3",
"TimeZone": "Europe/London",
"Platform": "SU",
"hotelid": "KC",
"ChainID": "W1",
"LanguageCode": "en",
"CurrencyCode": "GBP",
"Closeoutdays": "1",
"Closeouttime": "00:30",
"HotelDescriptiveContentNotifType": "New",
"PropertyLicenseNumber": "AB-CD-1234",
"OfficialCheckinTime": "12:00",
"OfficialCheckoutTime": "11:00",
"ContactInfos": {
"ContactInfo": [
{
"ContactProfileType": "PhysicalLocation",
"Addresses": {
"Address": {
"AddressLine": "36 Northwild Street",
"CityName": "London",
"PostalCode": "M16JD",
"CountryName": "GB"
}
}
},
{
"ContactProfileType": "availability",
"Names": {
"Name": {
"GivenName": "Steve",
"Surname": "Martin"
}
},
"Addresses": {
"Address": {
"AddressLine": "36 Northwild Street",
"CityName": "London",
"CountryName": "GB",
"PostalCode": "M16JD"
}
},
"NotificationEmail": "no-reply[at]youremail.com",
"Emails": {
"Email": [
"admin[at]examplehotel.com",
"admin1[at]examplehotel.com",
"admin2[at]examplehotel.com"
]
},
"Phones": {
"Phone": [
{
"PhoneNumber": "+3362211110",
"PhoneTechType": "1"
},
{
"PhoneNumber": "+3362211111",
"PhoneTechType": "1"
},
{
"PhoneNumber": "+3362211112",
"PhoneTechType": "5"
},
{
"PhoneNumber": "+3362211113",
"PhoneTechType": "5"
},
{
"PhoneNumber": "+3362211114",
"PhoneTechType": "3"
}
]
}
}
]
},
"HotelInfo": {
"Position": {
"Latitude": "49.4092",
"Longitude": "1.0900"
}
},
"Facilities": {
"Facility": [
{
"Group": "Parking",
"name": "Free Parking"
},
{
"Group": "Facilities",
"name": "CCTV Camera"
},
{
"Group": "Facilities",
"name": "Gym"
},
{
"Group": "Facilities",
"name": "Convention Center"
},
{
"Group": "Facilities",
"name": "24 hours Frontdesk"
}
]
},
"HotelDescription": "Graceful Apartment in London is nearby airport with Free WiFi and other Amenities."
}
}
}{
"Status": "Success"
}{
"Errors": [
{
"Code": "895",
"ShortText": "HotelDescriptiveContent: HotelName Property content is required"
}
],
"Status": "Fail"
}Room type describes the specific rooms in the hotel based on their room names, classifications, occupancy, sizes, and facilities, amenities or view provided to the guests.
For example, you might offer a Deluxe Room with double occupancy with pool view or beach access.
You can create a new Room Type or update an existing Room Type in your property. There are a few steps to perform when you create or update any property.
Process to create your room type:
For creating or updating a room type, send request with STAAH Room-Level build data.
If your request is valid, you get a success response that means you have successfully created your room type.
OTA_HotelRoom POST method provides an object SellableProducts in the request which is sent to the server and the success response creates or modify the Room Type.
POST
You can create different sellable products under one room id or specific room. In other words, you can sell one room with multiple parameters by creating different room types with different amenities.
This is an object representing your sellable product which is a room type. With this object you can POST this object to create a specific room type with all the desired details.
You can also provide the hotel address, positioning, occupancy, and address. Further, room type is broken down based on the occupancy and the facilities.
hotelid / HotelCode / ClientID string (Required)
The existing Property/Client ID.
Required existing id to create or update room types.
Maximum 20 characters allowed.
SellableProduct [InvStatusType] string (Required)
Indicates whether the call is meant to create new room type or update an existing one for property.
Accepts values: Initial, Modify, Active, Deactivated, and Delete.
To create a new
SellableProductuse Initial.To Modify, Activate / Deactivate room type, see , , and .
SellableProduct [InvNotifType] string (Required)
Indicates the call is meant to modify room type for property.
Accepts values: Overlay
Occupancy [MaxOccupancy] integer (Required)
Maximum number of guests allowed to stay in a room type.
Maximum occupancy of 999 guests per room type supported.
Occupancy [MaxChildOccupancy] integer (Required)
Maximum number of children allowed to stay in a room type.
Value must be less than Maximum Occupancy of the room type.
This is an object representing your particular room with all details. You can specify different room rates, occupancy, quantity, and size.
Attributes
Room.[roomid / RoomID / InvCode/ ListingID] string (Required)
The room ID / Listing ID as assigned by the provider.
roomid, RoomID, ListingID & InvCode defines the same field.
Accepts alphanumeric values and hyphen ( - ).
Space and other special characters are not allowed.
Maximum 20 characters allowed.
Room.RoomRate double (Required)
The default saleable rates of room.
Rate should be greater than 0.
Room.Quantity integer (Optional or auto update)
Number of rooms available in the property.
Room type quantity is not a static value. If not passed when creating, default value will be passed as 0 and system automatically compares inventory values received with this value. It will override and replace it with the higher inventory value (if received).
Room.RoomType string (Required)
Name of the room type. See
Accepts both code and name listed under .
Room.SizeMeasurement double (Optional)
Size of guest room in square meters (by default).
Use SizeMeasurementUnit to indicate square feet unit.
Room.SizeMeasurementUnit enum (Optional)
The measurement unit ("sqm" or "sqft") for the value specified in SizeMeasurement.
This cannot be defined if the SizeMeasurement attribute is missing. Default: sqm
This is an object representing your facility with its group and the particular name of the facility.
Facilities included in the room type can be assigned using this node. Both Group and Facility are free text - can create group and assign facilities on fly. No special characters allowed.
Facility.Group string (Optional)
Group name of the facility.
Facility.name string (Optional)
Name of the facility under a group, multiple facility name can come under one group.
This is an object representing Latitude and Longitude.
Position.Latitude latitude-value (Optional)
Latitude of the property's location.
A valid Latitude value (-90) to 90.
Position.Longitude longitude-value (Optional)
Longitude of the property's location.
A valid Longitude value (-180) to 180.
This is an object representing a structured address of the property. Address object consists of all the address details such as street name, street number, city name, postal or zip code of the city, and country name.
Address.AddressLine string (Optional)
The full street name and number.
Address.CityName string (Optional)
The name of the city, town, or village.
Only editable through Extranet.
Address.PostalCode string (Optional)
The postal or zip code.
Address.CountryName string (Optional)
The two-letters code for the country.
Only editable through Extranet listed under .
Description.Text string (Required)
The room type name.
Description.RoomDescription Free Text (Optional)
Description of room type.
Maximum 2000 characters. If exceeded, system will simply accept and will not return an error.
If the API call returns the success as the status, this indicates the request was successful. You have created or modified your Room Type successfully.
Upon creating a Room Type / Listing successfully, the status will be as "Incomplete" as there is no inventory available for it. Once inventory have been updated for the room type / listing, the status will be changed to "Active" automatically and it will appear as an option to map in channel mapping page.
As with every standard STAAH response, an "ID" is necessary for any JSON troubleshooting of requests to STAAH.
you cannot create a room with the same id as a previous room. This will return an error.
If you want to update the room type, set the InvStatusType attribute to “Modify“ in the header request and call the Update/Modify Room Type API. Updating or modifying a room type involves several key steps and considerations. This procedure is essential for maintaining accurate room inventory, optimizing pricing strategies, and ensuring a positive guest experience.
If you want to deactivate the room type, set the InvStatusType attribute to “Deactivated“ in the header request and call the Update/Modify Room Type API.
If you want to activate the room type, set the InvStatusType attribute to “Active“ in the header request and call the Activate Room Type API.
If you want to delete the room type, set the InvStatusType attribute to “Delete“ in the header request and call the Update/Modify Room Type API.
Retrieves the list of Properties created by PMS.
This GET method designed to retrieve all the important details of the properties that are present in the database.
GET
To get a list of properties that have already been created, the Property Management System (PMS) needs to send a GET request. This request must include the Authorization (API) Key.
Here's what you need to do:
Send a GET Request: The PMS will send a GET request to the specified endpoint.
Include the API Key: You must include your unique API Authorization Key in the request header. The body of the request should be empty.
Parameters: The request should have an element named "request" and an attribute named "Authorization" in the header.
If the authorization gets pass successfully, you retrieve the list of properties with all the details such as property id, property name, and the current status of the property. properties object returns all the listed properties.
properties array contains all the listed properties as an object with all the details.
propertyid string
Unique id of the property.
propertyname string
Name of the property.
status string
Current status of the property.
roomcount string
Room count in the property.
plateform string
Specifies the platform or source through which the property is connected
chainid string
Identifies the hotel chain or group the property belongs to, if applicable.
You may receive HTTP code 401 Unauthorized Error, if allocated with incorrect API Authorization Key.
Token-based Authentication
UPDATE NOTICE
We have launched a new Token-based Authentication mechanism, which is active on Production.
This endpoint is used to generate an access token required for authenticating.
GET
success boolean
Indicates whether the token generation was successful (true or false).
data object
Contains the access token details.
token_type string
Type of token. Always Bearer.
token string
The actual access token to be used in the Authorization header.
expire_in string
Token expiry duration in seconds.
message string
Message indicating the result of the token generation request.
This endpoint is used to generate an access token required for authenticating.
GET
When making authenticated API calls, an Access Token must be provided using the Authorization header in the format below:
The <access_token> varies depending on whether you're working with the Production or Sandbox environment.
Tokens prefixed with live_ are specific to the production environment.
These tokens are valid only for production API endpoints.
Example:
Tokens prefixed with sandbox_ are specific to the sandbox/test environment.
These cannot be used with production endpoints.
Example:
https://connect-sandbox.su-api.com/SUAPI/jservice/pmspropertyReservation refers to the process of blocking a particular room for the guest for a specific duration of time. This process involves taking information from the customer, such as their name, contact details and payment method, and then reserving a room in advance.
This helps hotels manage their occupancy levels more effectively by ensuring that rooms are not left empty due to lack of bookings or overbooking.
The reservations call is used to retrieve the following messages:
New reservation messages
Modified (or upgraded) reservation messages
Request reservation messages
Cancelled reservation messages
Multiple Room reservation messages
hotelid string (Required)
Hotel id for which you want to delete the property.
Upon success, Property along with its related room types, rate plans, etc... will be deleted and we will not be able to reinstate.
System will not allow to delete property which has any connectivity/integration with any OTA channel.
Failure - 953 error will be received if allocated Hotel id which contains the mapping (Active or Inactive) with any of OTA channel(s).
400 error will be received if allocated with incorrect Hotel/Client id.
Sample Error Response (400)
hotelid string (Required)
Hotel id for which you want to retrieve the list of rate plans.
In this case there is no Rate Plan available for provider based on the parameters provided.
Errors Due to Invalid Parameters
This error 400 will be received if allocated with incorrect Hotel/Client id.
https://connect-sandbox.su-api.com/SUAPI/jservice/OTA_HotelRoom{
"SellableProducts": {
"hotelid": "KC",
"SellableProduct": [{
"InvStatusType": "Initial",
"GuestRoom": {
"Occupancy": {
"MaxOccupancy": "2",
"MaxChildOccupancy": "1"
},
"Room": {
"roomid": "123444",
"RoomRate": "2000",
"Quantity": "2",
"RoomType": "Apartment",
"SizeMeasurement": "16",
"SizeMeasurementUnit": "sqm"
},
"Facilities": {
"Facility": [{
"Group": "Amenities",
"name": "Hairdyer"
},
{
"Group": "Amenities",
"name": "Free Wifi"
},
{
"Group": "Amenities",
"name": "Iron Facilities"
},
{
"Group": "Kitchen",
"name": "Microwave"
},
{
"Group": "Kitchen",
"name": "Coffee Maker"
}
]
},
"Position": {
"Latitude": "49.4092",
"Longitude": "1.0900"
},
"Address": {
"AddressLine": "15 Station Street",
"CityName": "London",
"CountryName": "GB",
"PostalCode": "M16JD"
},
"Description": {
"Text": "Deluxe Double Room with Sea View",
"RoomDescription": "hello"
}
}
},
{
"InvStatusType": "Initial",
"GuestRoom": {
"Occupancy": {
"MaxOccupancy": "2",
"MaxChildOccupancy": "1"
},
"Room": {
"roomid": "1234441",
"RoomRate": "2000",
"RoomType": "Double",
"SizeMeasurement": "16"
},
"Description": {
"Text": "Deluxe Double Room"
}
}
}
]
}
}{
"Status": "Success"
}{
"Status": "Fail",
"Errors": [
{
"Code": "906",
"ShortText": "Requested room does not qualify. Room with id '123444198' already exists"
}
]
}{
"SellableProducts": {
"hotelid": "KC",
"SellableProduct": [{
"InvNotifType": "Overlay",
"InvStatusType": "Modify",
"roomid": "STD",
"GuestRoom": {
"Room": {
"RoomRate": "200",
"RoomType": "Double",
"SizeMeasurement": "20",
"SizeMeasurementUnit": "sqm"
},
"Facilities": {
"Facility": [{
"Group": "Amenities",
"name": "Jacuzzi Tub"
},
{
"Group": "Amenities",
"name": "Radio"
},
{
"Group": "Amenities",
"name": "Hairdryer"
},
{
"Group": "Kitchen",
"name": "Refrigerator"
},
{
"Group": "Kitchen",
"name": "Garden view"
}
]
},
"Description": {
"RoomDescription": "Each room comes with a flat-screen TV with cable channels.",
"Text": "Superior Room with Balcony"
}
}
}]
}
}{
"SellableProducts": {
"hotelid": "KC",
"SellableProduct": [{
"InvNotifType": "Overlay",
"InvStatusType": "Deactivated",
"roomid": "STD"
}]
}
}{
"SellableProducts": {
"hotelid": "KC",
"SellableProduct": [{
"InvNotifType": "Overlay",
"InvStatusType": "Active",
"roomid": "STD"
}]
}
}{
"SellableProducts": {
"hotelid": "KC",
"SellableProduct": [{
"InvNotifType": "Overlay",
"InvStatusType": "Delete",
"roomid": "STD"
}]
}
}{
"properties": [
{
"propertyid": "11122010",
"propertyname": "The Rosehotel Motel",
"status": "Active",
"roomcount": "13",
"plateform": "SU",
"chainid":"ChainABC"
},
{
"propertyid": "11122011",
"propertyname": "Malin House",
"status": "Active",
"roomcount": "20",
"plateform": "SU",
"chainid":"ChainABC"
},
{
"propertyid": "101010",
"propertyname": "Fake Hotel",
"status": "Active",
"roomcount": "15",
"plateform": "SU",
"chainid":"ChainABC"
},
{
"propertyid": "P103",
"propertyname": "The Grand Bhagawati",
"status": "Active",
"roomcount": "25",
"plateform": "STAAH",
"chainid":"ChainABC"
}
]
}{
"Status": "Fail",
"Errors": {
"Code": "497",
"ShortText": "Authorization Required"
}
}https://connect-sandbox.su-api.com/SUAPI/jservice/RemoveProperty{
"hotelid": "TRS1"
}{
"Status": "Success"
}{
"Status": "Fail",
"Errors": {
"Code": "953",
"ShortText": "This Property Have Mapping With Channels"
}
}{
"Status": "Fail",
"Errors": {
"Code": "400",
"ShortText": "Invalid HotelCode (KC10)"
}
}https://connect-sandbox.su-api.com/SUAPI/jservice/ratedetails
{
"hotelid": "new1"
}{
"rateplans": [{
"rateplanid": "BAR",
"rateplanname": "Early Booker Rate",
"mealplanid": "2",
"description": "Description of the rate plan",
"status": "Active"
}, {
"rateplanid": "NRF",
"rateplanname": "Non Refundable Rate",
"mealplanid": "2",
"description": "Description of the rate plan",
"status": "Active"
}]
}{
"Status": "Fail",
"Errors": {
"Code": "939",
"ShortText": "No rates found"
}
}{
"Status": "Fail",
"Errors": {
"Code": "400",
"ShortText": "Invalid HotelCode (new)"
}
}Access tokens generated for the Sandbox environment are prefixed with "sandbox_".
Access tokens generated for the Production environment are prefixed with "live_".
Tokens for Sandbox and Production are distinct and cannot be used interchangeably.
Bearer <token>BasicAccess tokens are different for each environment (For example, sandbox and production).
If the token is valid, the API will return a successful response.
If the token is invalid or expired, the API will respond with an “Authorization Required” error.
client-id
string
Yes
Base64-encoded domain name
client-secret
string
Yes
Client secret key
The Room Type Listing call is used to retrieve the list of Room Types created for existing property. By using this call, PMS will be able to fetch details on the property's existing room types and details related to the room types such as, Name, Type, Min/Max. Occupancy, Status, and Size.
POST
hotelid string (Required)
Hotel id for which you want to retrieve the list of Room Types created for the property.
In this case there is no Room Type available for the provider based on the request parameters.
Sample Error Response (938)
rooms array contains all the room in the listing an all the required details for the rooms such as room name, id, occupancy, quantity, and the status of the room.
roomid string
The room ID / Listing ID as assigned by the provider.
roomname string
Name of the room.
roomtype string
Type of the room.
maximumoccupancy string
Maximum occupancy allowed in the room.
status string
Status of the room.
quantity string
Quantity of the room available in the property.
sizemeasurement string
Size of the room.
sizemeasurementunit string
Units which are used to measure the room.
rate string
Rate for the room.
Errors 400 due to invalid parameters
This error will be received if allocated with incorrect Hotel/Client id.
https://connect-sandbox.su-api.com/SUAPI/jservice/auth/generate-access-tokenclient-id: base64_encode(domain)
client-secret: (you can generate from extranet) {
"success": true,
"data": {
"token_type": "Bearer",
"token": "live_eyJpdiI6IlI1NGR6dndiRTNpci9lcGRZSm8wMXc9PSIsInZhbHVlIjoidEI1NW1SVVNQclFqa0VLRE43aUVXT21YL24yTzViSHRMTHJTYnQ3S2xhYzJ6TFZlMFI0R21oNHZEcHk4M0JuYytvQ3I3NnowL1FsaTNvNkxmbno0UFRSaTVEcjRmMmNNSysvZ29aNzQvNi82QjV4TVhWRTdsbHRybGtWeEJ5MXZYSkJVbjJIL2xHVkRrOGdKcjZnN1lRPT0iLCJtYWMiOiJjNjE5NjI5NTZjNjAwYmQ0NTM1MjBiMjhkNTcxOWFmNzUzMjQzMDBkMDU1ZTE1OGVmY2YyMmM5NmRiNzFkM2YxIiwidGFnIjoiIn0=",
"expire_in": "3600"
},
"message": "Access Token generated successfully"
}{
"success": true,
"data": {
"token_type": "Bearer",
"token": "sandbox_eyJpdiI6InVTL013bmlpc3VMZVVISmxqNldMMVE9PSIsInZhbHVlIjoiS05nVTVWQ1oxNVVQdk1hWHViZjlUbVRIc0owbjJWdnV1UW1tNlFRN0xjRTlVL0ZRQ093Rjd0SmtZay9kUTJ0dlRlOWl2K2VpZ2Q4MUVuUDhBb3hNQW1XeE81YzA4MXpmZmNDVHk4N0hSV0NCNGRrbXkrLytrS3A1cUtTSHdWWmYyYTY5SXVDNnFoTVdYSVIvalNneTdnPT0iLCJtYWMiOiJhOGUyOWUyNjMwYzE5MjI5MGMwNTI0OTk2Y2Q4ZmQzM2M1NjJmMDAzMjI3NzJjMjYyNmY1ZDQxOTJmNDU2ZWE2IiwidGFnIjoiIn0=",
"expire_in": "3600"
},
"message": "Access Token generated successfully"
}https://connect-sandbox.su-api.com/SUAPI/jservice/pmspropertyAuthorization: Bearer <access_token>Authorization: Bearer live_<token_string> // requiredAuthorization: Bearer live_eyJpdiI6IlI1NGR6dndiRTNpci9lcGRZSm8wMXc9PSIsInZhbHVlIjoidEI1NW1SVVNQclFqa0VLRE43aUVXT21YL24yTzViSHRMTHJTYnQ3S2xhYzJ6TFZlMFI0R21oNHZEcHk4M0JuYytvQ3I3NnowL1FsaTNvNkxmbno0UFRSaTVEcjRmMmNNSysvZ29aNzQvNi82QjV4TVhWRTdsbHRybGtWeEJ5MXZYSkJVbjJIL2xHVkRrOGdKcjZnN1lRPT0iLCJtYWMiOiJjNjE5NjI5NTZjNjAwYmQ0NTM1MjBiMjhkNTcxOWFmNzUzMjQzMDBkMDU1ZTE1OGVmY2YyMmM5NmRiNzFkM2YxIiwidGFnIjoiIn0=Authorization: Bearer sandbox_<token_string>Authorization: Bearer sandbox_eyJpdiI6InVTL013bmlpc3VMZVVISmxqNldMMVE9PSIsInZhbHVlIjoiS05nVTVWQ1oxNVVQdk1hWHViZjlUbVRIc0owbjJWdnV1UW1tNlFRN0xjRTlVL0ZRQ093Rjd0SmtZay9kUTJ0dlRlOWl2K2VpZ2Q4MUVuUDhBb3hNQW1XeE81YzA4MXpmZmNDVHk4N0hSV0NCNGRrbXkrLytrS3A1cUtTSHdWWmYyYTY5SXVDNnFoTVdYSVIvalNneTdnPT0iLCJtYWMiOiJhOGUyOWUyNjMwYzE5MjI5MGMwNTI0OTk2Y2Q4ZmQzM2M1NjJmMDAzMjI3NzJjMjYyNmY1ZDQxOTJmNDU2ZWE2IiwidGFnIjoiIn0=
https://connect-sandbox.su-api.com/SUAPI/jservice/roomdetails
Upon successfully receiving and retrieving the booking, you must acknowledge the reservation notification.
Su will then continue to push subsequent bookings, if any, following the same process.
Su will be pushing only 1 booking at a time to your dedicated endpoint.
If not received notification for pushed booking:
Su will re-push the booking again at 10 min interval
will be attempting re-push for 3 times and if not successful, we will be sending a notification email to PMS giving the details of the reservation which is getting failed to be collected.
Until we receive notification for reservation pushed:
Su will not push any other booking to PMS for that Property - If there is any booking for different property
The cycle continues and booking will be pushed on endpoint.
Upon receipt of pushed booking's notification only then:
Su will push next booking to endpoint for that property
This is the parent node.
reservation_notif_id alphanumeric
Contains the reservation notification ids for which they want to send acknowledgement. This is a unique id generated from Su for each reservation retrieved from OTA(s).
The message body for reservation notifications is designed to provide a structured format for sending notifications.
The request body consists of a reservation_notif root node. This is the parent node.
The required child node reservation_notif_id of reservation_notif contains the reservation notification ids for which thay want to send acknowledgement.
The required child node reservation_notif_id is a unique id generated from Su for each reservation retrieved from OTA(s).
{
"hotelid": "new1"
}{
"Status": "Fail",
"Errors": {
"Code": "938",
"ShortText": "No rooms found"
}
}{
"rooms": [{
"roomid": "STD",
"roomname": "Superior Room with Balcony",
"roomtype": "Double",
"maximumoccupancy": "2",
"status": "Active",
"quantity": "8",
"sizemeasurement": "20",
"sizemeasurementunit": "sqm",
"rate": "200"
}, {
"roomid": "KNG",
"roomname": "Twin Room",
"roomtype": "Twin",
"maximumoccupancy": "4",
"status": "Active",
"quantity": "4",
"sizemeasurement": "20",
"sizemeasurementunit": "sqm",
"rate": "200"
}]
}{
"Status": "Fail",
"Errors": {
"Code": "400",
"ShortText": "Invalid HotelCode (ne1)"
}
}{
"reservation_notif": {
"reservation_notif_id": [
"155411226779361384952"
]
}
}per IT provider's room id
per date
Room Rate amount:
per IT provider's Room and Rate combination
per date
Restrictions:
per IT provider's Room and Rate combination
per date)
At the time of fresh integration, STAAH requests that IT providers send rates/inventory/restrictions at least one full year from the current date (For example - on January 1, 2015, complete data should be loaded from January 1, 2015, until December 31, 2015, for all rooms, rates, and their applicable restrictions).
Maximum length of request should be less than or equal to 4 MB.
The maximum number of JSON requests permitted per property per hour is 5,000. When the limit is reached, JSON requests will not be processed, and the system will return error 'Limit has been reached'. Reset for JSON request allocation is renewed every hour, every day.
POST
hotelid / ClientID 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.
This is an object represents the detail of the room.
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&InvCodedefines 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.
date datetime (Required)
The date(s) that you are updating. STAAH prefers IT Providers to issue one large request by updating the inventory with combined dates as much as possible. Which can be accomplished by using attributes {date "from":"..." "to":"..."}
Needs to be an active room in the STAAH system and if room is not available in STAAH then we will create on request.
value datetime (Optional)
Specifying a value in requests will update the date that is specified per value.
Only current date to max up to 500 days in the future.
Format: YYYY-MM-DD
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 including the date specified.
Only current date to max up to 730 days in the future.
Format: YYYY-MM-DD
rate string (Optional)
IT provider's rate category ID which you are updating.
Rates to be updated need to be active in the STAAH system.
rateplanid alphanumeric (Optional)
IT provider's unique rateplan ID.
roomstosell integer (Optional)
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.
price array (Required)
The price for the given room for the given date for the given rate category.
Price cannot be removed after a value has been set, cannot be a negative number.
NumberOfGuests integer (Required)
Number of guests for which price is applied.
Needs to be non-negative integer and maximum 30.
value double (Required)
Price value for the given guest count.
LosPrice Array (Required if PMS wants to set the value for multiple nights with different rates)
Length-of-stay pricing for specific guest counts.
NumberOfGuests integer (Required)
Number of guests applies to this LOS pricing.
Needs to be non-negative integer and maximum 30.
value double (Required)
Comma-separated values representing prices for the stay of 1-night, 2-night, and so on.
For example: "value": "100.00,190.00,270.00" for 1, 2, and 3-night stays.
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.
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).
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).
minimumstaythrough string (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.
maximumstaythrough string (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.
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.
extraadultratecannot 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.
extrachildratecannot be removed after a value has been set, 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.
minimumadvancereservation integer (Optional)
Specifies the minimum number of days or hours a guest must book in advance, relative to the intended check-in or check-out date. The search date is included when calculating the minimum advance reservation period.
maximumadvancereservation integer (Optional)
Specifies the maximum number of days or hours in advance a guest is allowed to make a booking, relative to the scheduled check-in or check-out date. The search date is included when calculating the restriction period.
To push updates for a single day use:
To push updates for a date range use:
Length of Stay (LOS) refers to the number of consecutive nights a guest is allowed or required to stay at the hotel for a particular booking.
LosPrice field is used to define the price for multiple lengths of stay (LOS) in a single entry. This allows the PMS (Property Management System) to specify rates for various night counts using a comma-separated value format.
This is particularly useful when different rates are applied depending on the number of nights a guest stays.
Status string
Status of the request.
TicketId string
The ticket id if the status of the request is success.
You may receive some errors even if the response HTTP code is 200 OK.
This error will be received if you try to push inventory for date range which is more than 730 days in future starting from current date.
This error will occur if more than 5,000 updates are pushed per Hotel ID per hour. The maximum limit is 5,000 requests per property per hour. The cap is reset every hour, each day.
This will consist of one element error and its value will be a free text string of all errors happened due to invalid message body data. Errors will be separated by semicolon ";".
The API is used to accept/confirm requested reservations.
POST
Request to Confirm/Accept Request Booking
Customer ‘Request To Book’ through Request Booking platform.
Customer receives notification email from Request Booking platform clearly indicating booking is on request and host has to revert within 24 hours.
Booking arrives to channel manager with ‘REQUEST’ status.
Booking is delivered to PMS (if PMS supports ‘REQUEST’ status).
The request body consists of a bookingid. This is the booking id (channelbookingid_hotelid) as allocated in the booking.
If booking confirmation is received outside of 24 hours after receiving booking, an error is returned - Unable to confirm as request received more than 24 hours.
The below represent some different response models for reservations. Please note that multiple reservation child elements of different status element types can be mixed in a single reservation's response element.
In this case no messages are pending in queue for the provider based on the parameters provided in Step 1.
https://connect-sandbox.su-api.com/SUAPI/jservice/availability{
"hotelid": "KC",
"room": [{
"roomid": "STD",
"date": [{
"value": "2020-08-17",
"rate": [{
"rateplanid": "BAR"
}],
"roomstosell": "15",
"price": [{
"NumberOfGuests": "1",
"value": "290.00"
},
{
"NumberOfGuests": "2",
"value": "350.00"
}
],
"closed": "0",
"minimumstay": "1",
"maximumstay": "14",
"minimumstaythrough": "1",
"maximumstaythrough": "14",
"closedonarrival": "0",
"extraadultrate": "5.00",
"extrachildrate": "2.00",
"closedondeparture": "0",
"minimumadvancereservation":"48",
"maximumadvancereservation":"48"
}]
}]
}{
"hotelid": "KC",
"room": [{
"roomid": "STD",
"date": [{
"from": "2020-08-15",
"to": "2020-12-31",
"rate": [{
"rateplanid": "BAR"
}],
"roomstosell": "8",
"price": [{
"NumberOfGuests": "1",
"value": "100.00"
},
{
"NumberOfGuests": "2",
"value": "120.00"
}
],
"closed": "0",
"minimumstay": "1",
"maximumstay": "14",
"minimumstaythrough": "1",
"maximumstaythrough": "14",
"closedonarrival": "0",
"extraadultrate": "10.00",
"extrachildrate": "10.00",
"closedondeparture": "0",
"minimumadvancereservation":"48",
"maximumadvancereservation":"48"
}]
}]
}{
"hotelid": "KC",
"room": [
{
"roomid": "STD",
"date": [
{
"value": "2020-08-17",
"rate": [
{
"rateplanid": "BAR"
}
],
"roomstosell": "15",
"LosPrice": [
{
"NumberOfGuests": "1",
"value": "100,190,350,420"
},
{
"NumberOfGuests": "2",
"value": "150,280,410,500"
}
],
"closed": "0",
"minimumstay": "1",
"maximumstay": "14",
"closedonarrival": "0",
"extraadultrate": "5.00",
"extrachildrate": "2.00",
"closedondeparture": "0",
"minimumadvancereservation":"48",
"maximumadvancereservation":"48"
}
]
},
{
"roomid": "STDAR",
"date": [
{
"from": "2025-05-13",
"to": "2025-05-14",
"rate": [
{
"rateplanid": "KIRT"
}
],
"roomstosell": "15",
"LosPrice": [
{
"NumberOfGuests": "1",
"value": "100,190,350,420"
},
{
"NumberOfGuests": "2",
"value": "150,280,410,500"
}
],
"closed": "0",
"minimumstay": "1",
"maximumstay": "99",
"closedonarrival": "0",
"extraadultrate": "10",
"extrachildrate": "10",
"closedondeparture": "0",
"minimumadvancereservation":"48",
"maximumadvancereservation":"48"
}
]
}
]
}{
"Status":"Success",
"TicketId":159870515681827209466
}{
"Status": "Fail",
"Errors": [{
"Code": "921",
"ShortText": "Date : value should be less than 730 days from current date "
}]
}{
"Status": "Fail",
"Errors": [{
"ShortText": "Limit has been reached"
}]
}{
"Status": "Fail",
"Errors": [{
"Code": "873",
"ShortText": "price: Value is not a nonnegative (a non-negative number), found '2900r.00'"
}]
}https://connect-sandbox.su-api.com/SUAPI/service/requestbookingsSystem triggers email to property.
Option to accept/ confirm booking is found within the booking in channel manager extranet along with API.
When host confirms booking, inventory is deducted in channel manager > delivered to PMS and pushed to Request Booking platform. Request Booking platform picks up bookings from feed once a day.
It is expected that the host will also send an email directly to customer when they confirm a booking.
hotelid / hotel_id / ClientID string (Required)
The required node hotelid / hotel_id / ClientID contains the IT provider's hotel id for which the provider wishes to check for reservation information.
{
"bookingid": "113463_TESTHOTEL"
}{
"Status": "Success",
"Code": "200",
"ShortText": "Booking confirmed"
}{
"Status": "Fail",
"Code": "1035",
"ShortText": "Unable To Confirm Booking As Request Booking Not Found With Booking Id :: 201086"
}https://connect-sandbox.su-api.com/SUAPI/jservice/Reservation{
"hotelid": "new1"
}reservations array (Required)
List of reservation objects.
reservation (Required)
Every reservation is indicated with a 'reservation' element.
booked_at date (Required)
Date when the booking has been made.
commissionamount integer (Required)
The total commission a hotel has to pay to OTA per complete reservation.
currencycode string (Required)
Currency code in which the booking has been made.
paymenttype string (Required)
Payment type for the booking.
hotel_id alphanumeric (Required)
The hotel id as used by IT Provider.
hotel_name alphanumeric (Required)
The hotel name as used by IT Provider.
paymentdue integer (Required)
The payment due details ** Currently only supported by Hostel world.
This object contains customer details such as address, cc _cvc, cc_expiration_date, cc_name, cc_number, cc_type, city, company, countrycode, dc_issue_number, dc_start_date, email, first_name, last_name, remarks, telephone, and zip.
corporate_booking_detail object (Required)
The corporate_booking_detail element contains the corporate level B2B booking details for taxation and billing.
booking_source string (Required)
The source of the booking.
tax_id string (Required)
Tax Id of billing company.
billing_company string (Required)
Name of billing company.
billing_address string (Required)
Address of billing company.
payment_information string (Required)
Payment information of B2B booking.
payment_due_date date (Required)
Payment due date of B2B booking.
booker_address string (Required)
Address of Booker.
booker_taxid string (Required)
Booker Tax Id.
booking_type string (Required)
Type of Booking.
currencycode string (Required)
In which currency OTA will charge the commission to the hotel.
address string (Required)
The address of the booker.
cc_cvc integer (Required)
CVC number of the credit card.
cc_expiration_date datetime (Optional)
The expiration date of the credit card.
cc_name string (Required)
Name of the credit card holder.
cc_number integer (Required)
The number of the credit card.
cc_type string (Required)
The type of credit card.
cc_current_balance string (Required)
Current balance of virtual credit card allocated by OTA.
cc_activation_date string (Required)
The activation date of the virtual credit card allocated by OTA.
vcc_expiration_date string (Required)
The expiration date of the virtual credit card allocated by OTA.
cc_token string (Required)
The token of credit card.
cc_token_expiration date (Required)
The expiry date of cc token generated.
cc_unique_code string (Required)
cc unique code - Value is assigned if Partner is integrated with Airpay payment gateway. Otherwise, empty node is passed.
city string (Required)
The city where the booker is from.
state string (Required)
The state where the booker is from.
countrycode string (Required)
The country code of the country where the booker is from.
email string (Required)
Email address supplied by the customer.
first_name string (Required)
First name of the booker as supplied by the custome.
last_name string (Required)
Last name of the booker as supplied by the customer.
remarks string (Required)
Remarks regarding this reservation, supplied by the customer.
telephone string (Required)
Telephone number as supplied by the customer.
zip string (Required)
Zip/Postal code as supplied by the customer.
cc_vault_token numeric (Required)
Token for cc number.
cc_tracking_id string (Required)
Tracking id for cc details.
Root element of room.
arrival_date datetime (Required)
Date of arrival of the guests.
departure_date datetime (Required)
Date of departure of the guests.
info string (Required)
Extra information for the room.
facilities string (Required)
Information over facilities included for the room (if allocated).
Information of taxes charged on booking.
name string (Required)
Name of the tax charged.
amount string (Required)
Amount of tax applied / charged.
specialrequest string (Required)
Special request made while making booking for the room (if allocated).
eta numerical (Required)
Estimate time for check in for this reservation as filled in on the website.
guest_name string (Required)
Guest name for this reservation as filled in on the website.
first_name string (Required)
Guest's First name for this reservation as filled in on the website.
last_name string (Required)
Guest's Last name for this reservation as filled in on the website.
id alphanumeric (Required)
The room type ID as used by IT Provider.
max_children integer (Optional)
The number of children included in the booked room.
numberofguests integer (Required)
It is the number of guests for this reservation as filled by the booker.
numberofchildren integer (Required)
It is the number of children for this reservation as filled by the booker.
numberofadults integer (Required)
It is the number of adults for this reservation as filled by the booker.
roomstaystatus string (Required)
The roomstaystatus ('new', 'modified' 'request' or 'cancelled') identifies the stay whether it is new, modified, request or cancelled.
roomreservation_id string (Required)
The room reservation ID as used by STAAH to identify the booked room within the reservation.
totalbeforetax integer (Required)
Total booking value before applying the taxes.
totaltax integer (Required)
The total amount of tax for this reservation. All rooms * all nights combined.
totalprice integer (Required)
The total price for this room before tax(s) for all nights combined, sum of all prices known at the moment of reservation (Before Taxes). Note that there may be some excluded charges from this price.
price alphanumeric (Required)
Price and rate category ID per night as known at the moment of reservation. The currency used for pricing is always the same for the hotel and set by OTA.
amount double (Required)
It contains the amount of per day pricing.
date alphanumeric (Required)
Date and time.
rate_id alphanumeric (Required)
Rate category ID per night as known at the moment of reservation.
mealplan_id integer (Required)
Meal plan ID per night as known at the moment of reservation.
mealplan alphanumeric (Required)
Meal plan name per night as known at the moment of reservation.
tax integer (Required)
Tax amount per night of reservation (Date wise).
pricebeforetax double (Required
Room rate amount per night of reservation before tax(s)(Date wise).
priceaftertax double (Required
Room rate amount per night of reservation after tax(s)(Date wise).
extra_adult_rate double (Required)
Extra rates for the additional adult.
extra_child_rate double (Required)
Extra rates for the additional child.
adults alphanumeric (Optional)
It is the name of additional adult/s for this reservation as filled by the booker.
addons alphanumeric (Optional)
Additional services added to the reservation.
name string (Optional)
The add-on name, in English.
nights integer (Optional)
Number of nights this customer has booked the addon for.
priceperunit integer (Optional)
The unitary price for this add-on.
pricemode integer (Optional)
An integer identifying the price mode (per stay, per night, per person per night). See table below for the values.
0
Not applicable
1
Per stay
2
Per person per stay
3
Per night
4
Per person per night
price integer (Optional)
The total calculated price for the add-on, taking into consideration the price mode.
This array represents the detailed information about the taxes applied to an item (such as a room booking, product, or service). Each object in the taxes array includes the name and value of the tax. See below attributes:
name string (Required)
The name or description of the tax.
value string (Required)
The value of the tax. This usually represents a percentage rate.
extracomponents alphanumeric (Required)
The tag contains details of all Extra / Other charges charged on a room. It is a room level value allocated from OTA and might vary as per rooms booked for multiple room reservation scenario.
name string (Required)
Name of the charged.
amount string (Required)
Amount of extra component applied/charged.
bed_type alphanumeric (Required)
The tag contains details of bed type.
Source Information of reservation.
pos string (Required)
Point of sale of reservation.
source string (Required)
Source of reservation.
OTA_Code number (Required)
Source of reservation code or OTA code.
gstno alphanumeric (Required)
GST No. of the company for B2B booking.
companyname string (Required)
Name of B2B booking company (as allocated from OTA).
companyaddress string (Required)
Address of B2B company (As allocated from OTA).
chain_id alphanumeric (Required)
The chain id allocated from IT provider for the property
external_id alphanumeric (Required)
Instant booking reference - In the event of a property migrating from Instant (STAAH product) to Su.
otadue string (Required)
The amount OTA needs to pay to the property for the booking.
nettamount integer (Required)
The net amount of room of this reservation (Same value as of tag "totalprice"). All rooms * all nights combined excluding Taxes.
sellamount integer (Required)
The sell amount of room of this reservation (Same value as of tag "totalprice"). All rooms * all nights combined including Taxes.
cancelreason string (Required)
It specifies the reason for canceling a reservation
confirmationlink
The url through which one can confirm / deny the request of booking coming from VRBO. Only available under "request" booking from VRBO.
payment_charge numeric (Required)
Payment charged from OTA on the booking. Currently data is being allocated by http://Booking.com only.
channel_booking_id alphanumeric (Required)
Booking reference number of OTA.
thread_id alphanumeric (Required)
The thread ID as allocated by OTA / Channel (Supported by Airbnb only).
guest_id alphanumeric (Required)
The guest ID as allocated by OTA / Channel (Supported by Airbnb only).
numberofpets numeric (Required)
The number of pets as allocated by OTA / Channel.
numberofinfants numeric (Required)
The number of infants as allocated by OTA / Channel.
listingbaseprice numeric (Required)
Base price of the listing allocated from OTA / Channel (Supported by Airbnb Only).
processed_at datetime (Required)
Date and Time Stamp (HH:MM:SS) when the booking was processed (GMT Time).
Min:1 Max:1
Format - Date Time
deposit numeric (Required)
Deposit collected for a booking made / received.
cancellation_fee numeric (Required)
Deposit collected for a booking made / received.
vendor_booking_id string (Required)
The vendor booking id provided by some of the OTAs. (Empty node will be passed if no value received from OTA for booking)
id alphanumeric (Required)
The reservation ID as used by STAAH.
reservation_notif_id string (Required)
The reservation notification ID used to mark reservation as received.
modified_at date (Required)
Date when the status is modified.
status string (Required)
The reservation status ('new', 'modified' or 'cancelled').
totalprice integer (Required)
The total amount of room sales of this reservation. All rooms * all nights combined including Taxes. Note that there may be some excluded charges from this price.
totaltax integer (Required)
The total amount of tax for this reservation. All rooms * all nights combined.
discount double (Required)
Discount amount received from OTA.
Information of extra fees charged on booking ** Currently only supported by Airbnb. If no value allocated or for other channels, the node will be passed empty as "extrafees": [], and "taxes": []
name string (Required)
Name of the extra fee charged.
amount string (Required)
Amount charged as extra fee.
Information of taxes charged on booking ** Currently only supported by Airbnb. If no value allocated or for other channels, the node will be passed empty as <taxes></taxes>
name string (Required)
Name of the tax charged.
amount string (Required)
Amount of tax applied / charged.
System allows to have multiple rooms to be booked under same reservation with different Guest, Check In/Out dates, Room type, Rate Plan, etc. These reservations can be retrieved through the same API request. Refer to Response Model — Multiple Room Reservation for reference.
Errors due to Invalid Parameters
hotelid / hotel_id / ClientID string (Required)
Hotel id for which the reservation notification they want to get acknowledged.
Maximum 20 characters allowed.
reservation_notif_id string (Required)
Reservation notification id for the particular reservation, this is a unique id.
Value - alphanumeric
The request body consists of a reservations_notif root node. This is the parent node to the required hotelid / hotel_id / ClientID.
The required child node hotelid / hotel_id / ClientID contains the IT provider's hotel id for which the provider wishes to acknowledge success reservation retrieval.
The required child node reservation_notif root node for of reservation ids.
The required child node reservation_notif_id of reservation_notif contains the reservation notification ids for which they want to send acknowledgement.
Inventory control in a hotel, specifically focusing on room bookings and restrictions, involves managing and optimizing the availability of hotel rooms to maximize revenue and occupancy rates.
Su ARI Control API
An API through which you can control inventory, rates and closed restrictions for specific OTAs.
If no data passed under the API for specific OTA, data will be pushed as passed and available in Su.
Request is the same in order to add, edit or remove the stipulations added.
To remove the applied restrictions and conditions from OTA, pass on the same request with having empty parameter.
API is live on sandbox environment to test and try.
POST
hotelid alphanumeric (Required)
Property id for the hotel in Su.
roomid alphanumeric (Required)
Room id for the room in Su.
rateid alphanumeric (Required)
Rate id for the room type in Su.
date array (Required)
Array of objects, each representing a date.
from string (Required)
Represents a start date.
to string (Required)
Represents an end date.
OTARule array
OTA rules are defined as contractual agreements and policies established between hotels and online travel agencies. These rules govern how hotels can list their inventory on OTA platforms, as well as the terms of booking.
OTACode numeric (Required)
OTA Codes which are listed in Su.
type enum (Required)
Type determines the type of modification applied.
value numeric (Required)
This is the modifier value. This value is the modification to rate or inventory (based on the type).
closed Boolean (Required)
This option is only available under rate control as stop-sells are handled on Rate Plan level in Su.
Inventory Object
To have the inventory as a Fix value. If the current inventory is 3 but want to have it as a fixed value on channel below payload will work. Please note that even if the booking will be received, inventory value will not be changed and will stay fixed.
To have the inventory increased by value. If the current inventory is 3 but want to have it increased by a value on channel below payload will work.
To have the inventory decreased by value. If the current inventory is 3 but want to have it decreased by a value on channel below payload will work. If the calculated number goes in negative, system will post 0 as an inventory on specific OTA.
To get the changes applied removed, please remove the entire array of “OTARule” and pass it as empty / blank. Please note that the edit operations are not allowed. The API works on overwrite functionality.
Rate Object
To have the rate as a Fix value. If the current rate is 3000 but want to have it as a fixed value on channel below payload will work.
To have the rate increased by specific value. If the current rate is 3000 but want to have it increased by amount on channel/s below payload will work.
To have the rate decreased by specific value. If the current rate is 3000 but want to have it decreased by amount on channel/s below payload will work.
To have the rate multiplied by specific value. If the current rate is 3000 but want to have it multiplied by value on channel/s below payload will work.
To get the changes applied removed, please remove the entire array of “OTARule” and pass it as empty / blank. Please note that the edit operations are not allowed. The API works on overwrite functionality
To have the rate plan closed on specific OTA, please pass the rule as closed
Please do email us on for more details
The API is used to get the list of reservations depending on Booking / Creation Date.
Request to get the list of Bookings
POST
Works on booking creation date
System fetches bookings from system for 6 months in past
Date formate must be in, MM-DD-YYYY
The request body consists of a date_from / date_to. This is the booking creation date when the booking was created / received from OTA
The response body consists of a booking_id. This is Su booking id (channel booking id _ Su property id)
The response body consists of a Channel_code. It is a channel code of booking
The response body consists of a Booking_date. It is a creation booking date and time. Date is formatted in YYYY-MM-DD and Time is in GMT
All the parameters of requests are required. If missed or passed unsupported values, system will throw an error in return
The API is used to refetch specific booking.
POST
Upon Request, system allocates with the booking Json
System is designed to reallocate the same booking to you for maximum of 5 times
The request body consists of a bookingid. This is the booking id (channelbookingid_hotelid) as allocated in booking list.
All the parameters of requests are required. If missed or passed unsupported values, system will throw an error in return.
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.
POST
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&InvCodedefines 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.
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.
Price cannot be removed after a value has been set, cannot be a negative number.
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.
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).
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).
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.
extraadultratecannot 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.
extrachildratecannot be removed after a value has been set, 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.
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.
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.
For multiple request with multiple date for same room:
For multiple request with diiferent room rate and different channels:
Status string
Status of the request.
TicketId string
The ticket id if the status of the request is success.
OTA Rateplan Pull API
{
"reservations": []
}{
"reservations": [
{
"booked_at": "2025-07-23 06:18:41",
"commissionamount": "",
"currencycode": "NZD",
"paymenttype": "Hotel Collect",
"hotel_id": "TPBE",
"hotel_name": "TPBE",
"paymentdue": "",
"customer": {
"corporate_booking_detail": {
"booking_source": "",
"tax_id": "",
"billing_company": "",
"billing_address": "",
"payment_information": "",
"payment_due_date": "",
"booker_address": "",
"booker_taxid": "",
"booking_type": ""
},
"address": "",
"cc_cvc": "",
"cc_expiration_date": "",
"cc_name": "",
"cc_number": "",
"cc_type": "",
"cc_current_balance": "",
"cc_activation_date": "",
"vcc_expiration_date": "",
"cc_token": "",
"cc_token_expiration": "",
"cc_unique_code": "",
"city": "",
"state": "",
"countrycode": "IN",
"email": "john@abc.com",
"first_name": " john",
"last_name": "doe",
"remarks": " booking_fees :: 315.00 || booking_fees :: 28.00",
"telephone": "+915565855656",
"zip": "",
"guest_lang": "en",
"cc_vault_token": "",
"cc_tracking_id": "",
"tokensource": "",
"tokentype": "",
"token_id": "",
"cc_virtual": "0"
},
"rooms": [
{
"arrival_date": "2025-08-14",
"departure_date": "2025-08-15",
"info": "",
"facilities": "",
"taxes": [
{
"name": "GST",
"value": "135.00"
},
{
"name": "Credit card fee (2.8%)",
"value": "38.00"
},
{
"name": "New sales",
"value": "50.00"
},
{
"name": "TAX",
"value": "100.00"
}
],
"specialrequest": "",
"eta": "01:30 am",
"guest_name": "john doe",
"first_name": "john",
"last_name": "doe",
"id": "1234441",
"max_children": "0",
"numberofguests": "2",
"numberofchildren": "0",
"numberofadults": "2",
"child_age": "10, 15, 16",
"roomstaystatus": "new",
"roomreservation_id": "1753251542694",
"totalbeforetax": "1376",
"totaltax": "376",
"totalprice": "1752",
"price": [
{
"date": "2025-08-14",
"rate_id": "BAR",
"mealplan_id": "1",
"mealplan": "All inclusive",
"tax": "323",
"pricebeforetax": "1351",
"priceaftertax": "1674"
}
],
"adults": [],
"addons": [],
"extracomponents": [
{
"name": "test",
"value": "78",
"taxes": [
{
"name": "GST",
"value": "3"
},
{
"name": "New sales",
"value": "50"
}
]
}
],
"smoking_preference": "",
"booking_condition": "",
"promotion": "",
"mealplan": "",
"cancellation_penalties": []
}
],
"affiliation": {
"pos": "mybookingsite.io",
"source": "Meta Channel",
"OTA_Code": "275",
"companyname": "",
"gstno": "",
"companyaddress": ""
},
"chain_id": "TPBE",
"external_id": "",
"otadue": "",
"cancelreason": "",
"sellamount": "2095",
"nettamount": "2095",
"discount": "",
"confirmationlink": "",
"payment_charge": "",
"booker_genius": "no",
"smoking_preference": "",
"promotion": "",
"channel_booking_id": "175325152113928",
"thread_id": "",
"guest_id": "",
"numberofpets": "",
"numberofinfants": "",
"listingbaseprice": "",
"processed_at": "2025-07-23 06:18:59",
"bookingcharged": "N",
"amountcharged": "0.00",
"pgtransactionid": "",
"su_payments": {
"action": "",
"tokenid": "",
"pgid": ""
},
"deposit": "",
"cvv_available": "false",
"source": "Su",
"pg_refid": "DirectConfimation1753251523",
"pg_type": "",
"cancellation_fee": "",
"vendor_booking_id": "",
"id": "175325152113928_TPBE",
"reservation_notif_id": "175325153100890355556",
"modified_at": "2025-07-23 06:18:41",
"status": "new",
"totalprice": "2095",
"totaltax": "323.00",
"extrafees": [
{
"name": "SGST",
"amount": "315.00"
},
{
"name": "CGST",
"amount": "28.00"
}
],
"taxes": []
}
]
}
{
"reservations": [
{
"booked_at": "2025-07-23 06:18:41",
"commissionamount": "",
"currencycode": "NZD",
"paymenttype": "Hotel Collect",
"hotel_id": "TPBE",
"hotel_name": "TPBE",
"paymentdue": "",
"customer": {
"corporate_booking_detail": {
"booking_source": "",
"tax_id": "",
"billing_company": "",
"billing_address": "",
"payment_information": "",
"payment_due_date": "",
"booker_address": "",
"booker_taxid": "",
"booking_type": ""
},
"address": "",
"cc_cvc": "",
"cc_expiration_date": "",
"cc_name": "",
"cc_number": "",
"cc_type": "",
"cc_current_balance": "",
"cc_activation_date": "",
"vcc_expiration_date": "",
"cc_token": "",
"cc_token_expiration": "",
"cc_unique_code": "",
"city": "",
"state": "",
"countrycode": "IN",
"email": "john@abc.com",
"first_name": " john",
"last_name": "doe",
"remarks": " booking_fees :: 315.00 || booking_fees :: 28.00",
"telephone": "+919639859856",
"zip": "",
"cc_vault_token": "",
"cc_tracking_id": "",
"tokensource": "",
"tokentype": "",
"token_id": "",
"cc_virtual": "0"
},
"rooms": [
{
"arrival_date": "2025-08-14",
"departure_date": "2025-08-15",
"info": "",
"facilities": "",
"taxes": [
{
"name": "GST",
"value": "135.00"
},
{
"name": "Credit card fee (2.8%)",
"value": "38.00"
},
{
"name": "New sales",
"value": "50.00"
},
{
"name": "TAX",
"value": "100.00"
}
],
"specialrequest": "",
"eta": "01:30 am",
"guest_name": "john doe",
"first_name": "john",
"last_name": "doe",
"id": "1234441",
"max_children": "0",
"numberofguests": "2",
"numberofchildren": "0",
"numberofadults": "2",
"child_age": "10, 15, 16",
"roomstaystatus": "new",
"roomreservation_id": "1753251542694",
"totalbeforetax": "1376",
"totaltax": "376",
"totalprice": "1752",
"price": [
{
"date": "2025-08-14",
"rate_id": "BAR",
"mealplan_id": "1",
"mealplan": "All inclusive",
"tax": "323",
"pricebeforetax": "1351",
"priceaftertax": "1674"
}
],
"adults": [],
"addons": [],
"extracomponents": [
{
"name": "test",
"value": "78",
"taxes": [
{
"name": "GST",
"value": "3"
},
{
"name": "New sales",
"value": "50"
}
]
}
],
"smoking_preference": "",
"booking_condition": "",
"promotion": "",
"mealplan": "",
"cancellation_penalties": []
}
],
"affiliation": {
"pos": "mybookingsite.io",
"source": "Meta Channel",
"OTA_Code": "275",
"companyname": "",
"gstno": "",
"companyaddress": ""
},
"chain_id": "TPBE",
"external_id": "",
"otadue": "",
"cancelreason": "",
"sellamount": "2095",
"nettamount": "2095",
"discount": "",
"confirmationlink": "",
"payment_charge": "",
"booker_genius": "no",
"smoking_preference": "",
"promotion": "",
"channel_booking_id": "175325152113928",
"thread_id": "",
"guest_id": "",
"numberofpets": "",
"numberofinfants": "",
"listingbaseprice": "",
"processed_at": "2025-07-23 06:18:59",
"bookingcharged": "N",
"amountcharged": "0.00",
"pgtransactionid": "",
"su_payments": {
"action": "",
"tokenid": "",
"pgid": ""
},
"deposit": "",
"cvv_available": "false",
"source": "Su",
"pg_refid": "DirectConfimation1753251523",
"pg_type": "",
"cancellation_fee": "",
"vendor_booking_id": "",
"id": "175325152113928_TPBE",
"reservation_notif_id": "175325153100890355556",
"modified_at": "2025-07-23 06:18:41",
"status": "modified",
"totalprice": "2095",
"totaltax": "323.00",
"extrafees": [
{
"name": "SGST",
"amount": "315.00"
},
{
"name": "CGST",
"amount": "28.00"
}
],
"taxes": []
}
]
}
{
"reservations": [
{
"booked_at": "2025-07-23 06:18:41",
"commissionamount": "",
"currencycode": "NZD",
"paymenttype": "Hotel Collect",
"hotel_id": "TPBE",
"hotel_name": "TPBE",
"paymentdue": "",
"customer": {
"corporate_booking_detail": {
"booking_source": "",
"tax_id": "",
"billing_company": "",
"billing_address": "",
"payment_information": "",
"payment_due_date": "",
"booker_address": "",
"booker_taxid": "",
"booking_type": ""
},
"address": "",
"cc_cvc": "",
"cc_expiration_date": "",
"cc_name": "",
"cc_number": "",
"cc_type": "",
"cc_current_balance": "",
"cc_activation_date": "",
"vcc_expiration_date": "",
"cc_token": "",
"cc_token_expiration": "",
"cc_unique_code": "",
"city": "",
"state": "",
"countrycode": "IN",
"email": "john@abc.com",
"first_name": " john",
"last_name": "doe",
"remarks": " booking_fees :: 315.00 || booking_fees :: 28.00",
"telephone": "+919639859856",
"zip": "",
"guest_lang": "en",
"cc_vault_token": "",
"cc_tracking_id": "",
"tokensource": "",
"tokentype": "",
"token_id": "",
"cc_virtual": "0"
},
"rooms": [
{
"arrival_date": "2025-08-14",
"departure_date": "2025-08-15",
"info": "",
"facilities": "",
"taxes": [
{
"name": "GST",
"value": "135.00"
},
{
"name": "Credit card fee (2.8%)",
"value": "38.00"
},
{
"name": "New sales",
"value": "50.00"
},
{
"name": "TAX",
"value": "100.00"
}
],
"specialrequest": "",
"eta": "01:30 am",
"guest_name": "john doe",
"first_name": "john",
"last_name": "doe",
"id": "1234441",
"max_children": "0",
"numberofguests": "2",
"numberofchildren": "0",
"numberofadults": "2",
"child_age": "10, 15, 16",
"roomstaystatus": "new",
"roomreservation_id": "1753251542694",
"totalbeforetax": "1376",
"totaltax": "376",
"totalprice": "1752",
"price": [
{
"date": "2025-08-14",
"rate_id": "BAR",
"mealplan_id": "1",
"mealplan": "All inclusive",
"tax": "323",
"pricebeforetax": "1351",
"priceaftertax": "1674"
}
],
"adults": [],
"addons": [],
"extracomponents": [
{
"name": "test",
"value": "78",
"taxes": [
{
"name": "GST",
"value": "3"
},
{
"name": "New sales",
"value": "50"
}
]
}
],
"smoking_preference": "",
"booking_condition": "",
"promotion": "",
"mealplan": "",
"cancellation_penalties": []
}
],
"affiliation": {
"pos": "mybookingsite.io",
"source": "Meta Channel",
"OTA_Code": "275",
"companyname": "",
"gstno": "",
"companyaddress": ""
},
"chain_id": "TPBE",
"external_id": "",
"otadue": "",
"cancelreason": "",
"sellamount": "2095",
"nettamount": "2095",
"discount": "",
"confirmationlink": "xxxxx.suissu.com/SUAPI/service/requesturls/1-TDhKTFbhp5pm-ulH7VrIUsPOD4qkRO0",
"payment_charge": "",
"booker_genius": "no",
"smoking_preference": "",
"promotion": "",
"channel_booking_id": "175325152113928",
"thread_id": "",
"guest_id": "",
"numberofpets": "",
"numberofinfants": "",
"listingbaseprice": "",
"processed_at": "2025-07-23 06:18:59",
"bookingcharged": "N",
"amountcharged": "0.00",
"pgtransactionid": "",
"su_payments": {
"action": "",
"tokenid": "",
"pgid": ""
},
"deposit": "",
"cvv_available": "false",
"source": "Su",
"pg_refid": "DirectConfimation1753251523",
"pg_type": "",
"cancellation_fee": "",
"vendor_booking_id": "",
"id": "175325152113928_TPBE",
"reservation_notif_id": "175325153100890355556",
"modified_at": "2025-07-23 06:18:41",
"status": "request",
"totalprice": "2095",
"totaltax": "323.00",
"extrafees": [
{
"name": "SGST",
"amount": "315.00"
},
{
"name": "CGST",
"amount": "28.00"
}
],
"taxes": []
}
]
}
{
"reservations": [
{
"booked_at": "2025-07-23 06:18:41",
"commissionamount": "",
"currencycode": "NZD",
"paymenttype": "Hotel Collect",
"hotel_id": "TPBE",
"hotel_name": "TPBE",
"paymentdue": "",
"customer": {
"corporate_booking_detail": {
"booking_source": "",
"tax_id": "",
"billing_company": "",
"billing_address": "",
"payment_information": "",
"payment_due_date": "",
"booker_address": "",
"booker_taxid": "",
"booking_type": ""
},
"address": "",
"cc_cvc": "",
"cc_expiration_date": "",
"cc_name": "",
"cc_number": "",
"cc_type": "",
"cc_current_balance": "",
"cc_activation_date": "",
"vcc_expiration_date": "",
"cc_token": "",
"cc_token_expiration": "",
"cc_unique_code": "",
"city": "",
"state": "",
"countrycode": "IN",
"email": "john@abc.com",
"first_name": " john",
"last_name": "doe",
"remarks": " booking_fees :: 315.00 || booking_fees :: 28.00",
"telephone": "+919639859856",
"zip": "",
"guest_lang": "en",
"cc_vault_token": "",
"cc_tracking_id": "",
"tokensource": "",
"tokentype": "",
"token_id": "",
"cc_virtual": "0"
},
"rooms": [
{
"arrival_date": "2025-08-14",
"departure_date": "2025-08-15",
"info": "",
"facilities": "",
"taxes": [
{
"name": "GST",
"value": "135.00"
},
{
"name": "Credit card fee (2.8%)",
"value": "38.00"
},
{
"name": "New sales",
"value": "50.00"
},
{
"name": "TAX",
"value": "100.00"
}
],
"specialrequest": "",
"eta": "01:30 am",
"guest_name": "john doe",
"first_name": "john",
"last_name": "doe",
"id": "1234441",
"max_children": "0",
"numberofguests": "2",
"numberofchildren": "0",
"numberofadults": "2",
"child_age": "10, 15, 16",
"roomstaystatus": "cancelled",
"roomreservation_id": "1753251542694",
"totalbeforetax": "1376",
"totaltax": "376",
"totalprice": "1752",
"price": [
{
"date": "2025-08-14",
"rate_id": "BAR",
"mealplan_id": "1",
"mealplan": "All inclusive",
"tax": "323",
"pricebeforetax": "1351",
"priceaftertax": "1674"
}
],
"adults": [],
"addons": [],
"extracomponents": [
{
"name": "test",
"value": "78",
"taxes": [
{
"name": "GST",
"value": "3"
},
{
"name": "New sales",
"value": "50"
}
]
}
],
"smoking_preference": "",
"booking_condition": "",
"promotion": "",
"mealplan": "",
"cancellation_penalties": []
}
],
"affiliation": {
"pos": "mybookingsite.io",
"source": "Meta Channel",
"OTA_Code": "275",
"companyname": "",
"gstno": "",
"companyaddress": ""
},
"chain_id": "TPBE",
"external_id": "",
"otadue": "",
"cancelreason": "I made a mistake with the booking dates and need to cancel my reservation.",
"sellamount": "2095",
"nettamount": "2095",
"discount": "",
"confirmationlink": "xxxxx.suissu.com/SUAPI/service/requesturls/1-TDhKTFbhp5pm-ulH7VrIUsPOD4qkRO0",
"payment_charge": "",
"booker_genius": "no",
"smoking_preference": "",
"promotion": "",
"channel_booking_id": "175325152113928",
"thread_id": "",
"guest_id": "",
"numberofpets": "",
"numberofinfants": "",
"listingbaseprice": "",
"processed_at": "2025-07-23 06:18:59",
"bookingcharged": "N",
"amountcharged": "0.00",
"pgtransactionid": "",
"su_payments": {
"action": "",
"tokenid": "",
"pgid": ""
},
"deposit": "",
"cvv_available": "false",
"source": "Su",
"pg_refid": "DirectConfimation1753251523",
"pg_type": "",
"cancellation_fee": "",
"vendor_booking_id": "",
"id": "175325152113928_TPBE",
"reservation_notif_id": "175325153100890355556",
"modified_at": "2025-07-23 06:18:41",
"status": "cancelled",
"totalprice": "2095",
"totaltax": "323.00",
"extrafees": [
{
"name": "SGST",
"amount": "315.00"
},
{
"name": "CGST",
"amount": "28.00"
}
],
"taxes": []
}
]
}
{
"reservations": [
{
"booked_at": "2025-07-23 06:37:31",
"commissionamount": "",
"currencycode": "NZD",
"paymenttype": "Hotel Collect",
"hotel_id": "TPBE",
"hotel_name": "TPBE",
"paymentdue": "",
"customer": {
"corporate_booking_detail": {
"booking_source": "",
"tax_id": "",
"billing_company": "",
"billing_address": "",
"payment_information": "",
"payment_due_date": "",
"booker_address": "",
"booker_taxid": "",
"booking_type": ""
},
"address": "",
"cc_cvc": "",
"cc_expiration_date": "",
"cc_name": "",
"cc_number": "",
"cc_type": "",
"cc_current_balance": "",
"cc_activation_date": "",
"vcc_expiration_date": "",
"cc_token": "",
"cc_token_expiration": "",
"cc_unique_code": "",
"city": "",
"state": "",
"countrycode": "IN",
"email": "john@abc.com",
"first_name": " john",
"last_name": "doe",
"remarks": " booking_fees :: 566.00 || booking_fees :: 28.00",
"telephone": "+919639859856",
"zip": "",
"guest_lang": "en",
"cc_vault_token": "",
"cc_tracking_id": "",
"tokensource": "",
"tokentype": "",
"token_id": "",
"cc_virtual": "0"
},
"rooms": [
{
"arrival_date": "2025-08-14",
"departure_date": "2025-08-15",
"info": "",
"facilities": "",
"taxes": [
{
"name": "GST",
"value": "135.00"
},
{
"name": "Credit card fee (2.8%)",
"value": "38.00"
},
{
"name": "New sales",
"value": "50.00"
},
{
"name": "TAX",
"value": "100.00"
}
],
"specialrequest": "",
"eta": "01:30 am",
"guest_name": "john doe",
"first_name": "john",
"last_name": "doe",
"id": "1234441",
"max_children": "0",
"numberofguests": "2",
"numberofchildren": "0",
"numberofadults": "2",
"child_age": "10, 15, 16",
"roomstaystatus": "new",
"roomreservation_id": "1753252672384",
"totalbeforetax": "1376",
"totaltax": "376",
"totalprice": "1752",
"price": [
{
"date": "2025-08-14",
"rate_id": "BAR",
"mealplan_id": "1",
"mealplan": "All inclusive",
"tax": "323",
"pricebeforetax": "1351",
"priceaftertax": "1674"
}
],
"adults": [],
"addons": [],
"extracomponents": [
{
"name": "test",
"value": "78",
"taxes": [
{
"name": "GST",
"value": "3"
},
{
"name": "New sales",
"value": "50"
}
]
}
],
"smoking_preference": "",
"booking_condition": "",
"promotion": "",
"mealplan": "",
"cancellation_penalties": []
},
{
"arrival_date": "2025-08-14",
"departure_date": "2025-08-15",
"info": "",
"facilities": "",
"taxes": [
{
"name": "GST",
"value": "110.00"
},
{
"name": "Credit card fee (2.8%)",
"value": "31.00"
},
{
"name": "New sales",
"value": "50.00"
},
{
"name": "TAX",
"value": "100.00"
}
],
"specialrequest": "",
"eta": "01:30 am",
"guest_name": "John Doe",
"first_name": "John",
"last_name": "Doe",
"id": "123444",
"max_children": "0",
"numberofguests": "1",
"numberofchildren": "0",
"numberofadults": "1",
"child_age": "10, 15, 16",
"roomstaystatus": "new",
"roomreservation_id": "1753252676277",
"totalbeforetax": "1100",
"totaltax": "291",
"totalprice": "1391",
"price": [
{
"date": "2025-08-14",
"rate_id": "BAR",
"mealplan_id": "1",
"mealplan": "All inclusive",
"tax": "291",
"pricebeforetax": "1100",
"priceaftertax": "1391"
}
],
"adults": [],
"addons": [],
"extracomponents": [],
"smoking_preference": "",
"booking_condition": "",
"promotion": "",
"mealplan": "",
"cancellation_penalties": []
}
],
"affiliation": {
"pos": "mybookingsite.io",
"source": "Meta Channel",
"OTA_Code": "275",
"companyname": "",
"gstno": "",
"companyaddress": ""
},
"chain_id": "TPBE",
"external_id": "",
"otadue": "",
"cancelreason": "",
"sellamount": "3737",
"nettamount": "3737",
"discount": "",
"confirmationlink": "",
"payment_charge": "",
"booker_genius": "no",
"smoking_preference": "",
"promotion": "",
"channel_booking_id": "175325265161721",
"thread_id": "",
"guest_id": "",
"numberofpets": "",
"numberofinfants": "",
"listingbaseprice": "",
"processed_at": "2025-07-23 06:37:50",
"bookingcharged": "N",
"amountcharged": "0.00",
"pgtransactionid": "",
"su_payments": {
"action": "",
"tokenid": "",
"pgid": ""
},
"deposit": "",
"cvv_available": "false",
"source": "Su",
"pg_refid": "DirectConfimation1753252654",
"pg_type": "",
"cancellation_fee": "",
"vendor_booking_id": "",
"id": "175325265161721_TPBE",
"reservation_notif_id": "175325266175217432335",
"modified_at": "2025-07-23 06:37:31",
"status": "new",
"totalprice": "3737",
"totaltax": "614.00",
"extrafees": [
{
"name": "SGST",
"amount": "566.00"
},
{
"name": "CGST",
"amount": "28.00"
}
],
"taxes": []
}
]
}
{
"Status": "Fail",
"Errors": {
"Code": "950",
"ShortText": "Reservation Not Found"
}
}https://connect-sandbox.su-api.com/SUAPI/jservice/Reservation_notif{
"hotelid": "new1",
"reservation_notif": {
"reservation_notif_id": ["155411226779361384952"]
}
}{
"Status": "Fail",
"Errors": {
"Code": "950",
"ShortText": "Reservation Not Found"
}
}{
"Status":"Success"
}https://connect-sandbox.su-api.com/SUAPI/jservice/Bookings5
Percentage
6
Per person per night restricted
There are 2 types of access you can create for Su users, Global and Chain.
Multiply
Please find an example input message below.
Element name - request
Type
structural element
Children
n/a
Attribute Name
hotelid / ClientID
IT provider's hotel id for which retrieving failed channel log/s.
Syntax
Attribute Name - hotelid / ClientID
Type
alphanumeric
Constraints
needs to be a property registered in the STAAH (Existing)
Amount of elements possible within parent
1
Referring to above response, PMS will find essential information (basic) pertaining to the error.
This notification will be given if resynced failed update gets failed again and tried to be resynced again.
This error will be received if allocated with incorrect Hotel id / ClientID
Element name - request
Type
structural element
Children
n/a
Attribute Name
hotelid / hotel_id / ClientID
IT provider's hotel id for which retrieving update log/s.
date
Date for which retrieving update log/s. Must be in YYYY-MM-DD Format
Attribute Name - hotelid / hotel_id / ClientID
Type
alphanumeric
Constraints
needs to be a property registered in the STAAH (Existing)
Amount of elements possible within parent
1
Element name - date
Type
datetime
Constraints
Current date or Past date
Amount of elements possible within parent
1
Format
YYYY-MM-DD
Please find an example input message below:
This error will be given if there is no update log found for the given values.
Errors Due to Invalid Parameters
This error will be received if allocated with incorrect Hotel id / ClientID.
This error will be received if provided invalid date. The Date format must be YYYY-MM-DD.
This error will be generated if allocated with any of future date. Update Logs are available for current or past date only.
Please find an example input message below.
Element name - request
Type
structural element
Children
n/a
Attribute Name
hotelid / hotel_id / ClientID
IT provider's hotel id for which retrieving failed channel log/s.
Syntax
Attribute Name - hotelid / hotel_id / ClientID
Type
alphanumeric
Constraints
needs to be a property registered in the STAAH (Existing)
Amount of elements possible within parent
1
Referring to above response, PMS will find essential information (basic) pertaining to the error. A downloadable URL in text format is also provided for full details including error response received from OTA/s (Where available).
This notification will be given if there is no failed channel update found for the given values.
Errors due to invalid parameters
This error will be received if allocated with incorrect Hotel id / ClientID.
https://connect-sandbox.su-api.com/SUAPI/jservice/invratecontrol{
"hotelid": "RBT",
"inventorycontrol": [{
"roomid": "STD",
"date": [{
"from": "2021-09-02",
"to": "2021-09-16",
"OTARule": [{
"OTACode": [189],
"rule": {
"type": "Fixed",
"value": "6"
}
}]
}]
}],
"ratecontrol": [{
"roomid": "STD",
"rateid": "BAR",
"date": [{
"from": "2021-09-02",
"to": "2021-09-16",
"OTARule": [{
"OTACode": [
189,
150
],
"rule": {
"type": "Decrease",
"value": "500"
}
}]
}, {
"from": "2021-09-14",
"to": "2021-09-14",
"OTARule": [{
"OTACode": [
189,
150
],
"rule": {
"type": "Increase",
"value": "211"
}
}]
},{
"from": "2021-09-02",
"to": "2021-09-16",
"OTARule": [{
"OTACode": [
189,
150
],
"rule": {
"type": "Multiply",
"value": "1.50",
"closed": true
}
}]
}]
}]
}{
"hotelid": "TB1",
"inventorycontrol": [
{
"roomid": "K",
"date": [
{
"from": "2022-09-10",
"to": "2022-09-11",
"OTARule": [
{
"OTACode": [19],
"rule": {
"type": "Fixed",
"value": "5"
} } ]
} ] } ]
}{
"hotelid": "TB1",
"inventorycontrol": [
{
"roomid": "K",
"date": [
{
"from": "2022-09-10",
"to": "2022-09-11",
"OTARule": [
{
"OTACode": [19],
"rule": {
"type": "Increase",
"value": "5"
} } ]
} ] } ]
}{
"hotelid": "TB1",
"inventorycontrol": [
{
"roomid": "K",
"date": [
{
"from": "2022-09-10",
"to": "2022-09-11",
"OTARule": [
{
"OTACode": [19],
"rule": {
"type": "Decrease",
"value": "5"
} } ]
} ] } ]
}
{
"hotelid": "TB1",
"inventorycontrol": [
{
"roomid": "K",
"date": [
{
"from": "2022-09-10",
"to": "2022-09-11",
"OTARule": [ ]
} ] } ]
}
{
"hotelid": "TB1",
"ratecontrol": [
{
"roomid": "K",
"rateid": "BAR",
"date": [
{
"from": "2022-09-14",
"to": "2022-09-16",
"OTARule": [
{
"OTACode": [19,284],
"rule": {
"type": "Fixed",
"value": "3500"
} } ]
} ] } ]
}{
"hotelid": "TB1",
"ratecontrol": [
{
"roomid": "K",
"rateid": "BAR",
"date": [
{
"from": "2022-09-14",
"to": "2022-09-16",
"OTARule": [
{
"OTACode": [19,284],
"rule": {
"type": "Increase",
"value": "500"
} } ]
} ] } ]
}{
"hotelid": "TB1",
"ratecontrol": [
{
"roomid": "K",
"rateid": "BAR",
"date": [
{
"from": "2022-09-14",
"to": "2022-09-16",
"OTARule": [
{
"OTACode": [19,284],
"rule": {
"type": "Decrease",
"value": "500"
} } ]
} ] } ]
}{
"hotelid": "TB1",
"ratecontrol": [
{
"roomid": "K",
"rateid": "BAR",
"date": [
{
"from": "2022-09-14",
"to": "2022-09-16",
"OTARule": [
{
"OTACode": [19,284],
"rule": {
"type": "Multiply",
"value": "1.50"
} } ]
} ] } ]
}
{
"hotelid": "TB1",
" ratecontrol": [
{
"roomid": "K",
"rateid": "BAR",
"date": [
{
"from": "2022-09-10",
"to": "2022-09-11",
"OTARule": [ ]
} ] } ]
}
{
"hotelid": "TB1",
"ratecontrol": [
{
"roomid": "K",
"rateid": "BAR",
"date": [
{
"from": "2022-09-14",
"to": "2022-09-14",
"OTARule": [
{
"OTACode": [
19
],
"rule": {
"closed": true
} } ]
} ] } ]
}{
"Su_hotelid": "JOE",
"date_from": "02-16-2024",
"date_to": "02-16-2024"
}{
"BookingDetails": [
{
"booking_id": "4191611111_JOE",
"Channel_code": "19",
"Booking_date": "2024-02-16 08:30:40",
"checkindate": "2024-02-17",
"checkoutdate": "2024-02-17",
"status": "confirm"
},
{
"booking_id": "4291322222_JOE",
"Channel_code": "19",
"Booking_date": "2024-02-16 08:32:23",
"checkindate": "2024-02-17",
"checkoutdate": "2024-02-17",
"status": "confirm"
},
{
"booking_id": "4058433333_JOE",
"Channel_code": "19",
"Booking_date": "2023-10-16 15:46:49",
"checkindate": "2023-10-17",
"checkoutdate": "2023-10-17",
"status": "confirm"
}
]
}
{
"Error": {
"Code": "400",
"ShortText": "Invalid HotelCode"
},
"Status": "Fail"
}https://connect-sandbox.su-api.com/SUAPI/jservice/getReservation {
"hotelid": "JOE",
"bookingid": "1134222_JOE"
}{
"reservations": [
{
"booked_at": "2024-02-07",
"commissionamount": "",
"currencycode": "NZD",
"paymenttype": "Hotel Collect",
"hotel_id": "JOE",
"status": "new",
"totalprice": "563.4",
"totaltax": "261.75",
"extrafees": [],
"taxes": []
}
]
}{
"Error": {
"Code": "400",
"ShortText": "Invalid HotelCode"
},
"Status": "Fail"
}https://connect-sandbox.su-api.com/SUAPI/jservice/channel-rates{
"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,
"closedondeparture": 0
}
]
}
]
}{
"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,
"closedondeparture": 0
}
]
}
]
}{
"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,
"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,
"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,
"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,
"closedondeparture": 0
}
]
}
]
}{
"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,
"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,
"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,
"closedondeparture": 0
}
]
}
]
}{
"Status":"Success",
"TicketId":"174824274798589344913"
}https://connect-sandbox.su-api.com/SUAPI/jservice/resync{
"hotelid": "new1"
}{
"hotelid": "new1"
}{
"Status":"Success"
}{
"Status": "Fail",
"Errors": {
"ShortText": "Not allowed"
}{
"Status": "Fail",
"Errors": {
"Code": "400",
"ShortText": "Invalid HotelCode (ne1)"
}
}https://connect-sandbox.su-api.com/SUAPI/jservice/updatelog{
"hotelid": "new1",
"date": "2018-06-06"
}{
"Updatelogs": [
{
"hotelid": "new1",
"date": "2018-06-06",
"log": "https://s3.amazonaws.com/suissu/updatelog/11/new1/2018-06-06/15282612441755000008810.txt"
},
{
"hotelid": "new1",
"date": "2018-06-06",
"log": "https://s3.amazonaws.com/suissu/updatelog/11/new1/2018-06-06/15282615814995000003514.txt"
},
{
"hotelid": "new1",
"date": "2018-06-06",
"log": "https://s3.amazonaws.com/suissu/updatelog/11/new1/2018-06-06/152826173312081741762.txt"
}
]
}{
"Status": "Fail",
"Errors": {
"Code": "937",
"ShortText": "No updates found for this date"
}
}{
"Status": "Fail",
"Errors": {
"Code": "400",
"ShortText": "Invalid HotelCode (new)"
}
}{
"Status": "Fail",
"Errors": {
"Code": "935",
"ShortText": "Invalid date or format must be 'YYYY-MM-DD'"
}
}{
"Status": "Fail",
"Errors": {
"Code": "936",
"ShortText": "Date must be past or present"
}
}https://connect-sandbox.su-api.com/SUAPI/jservice/FailedUpdates{
"hotelid": "P101"
}{
"hotelid": "P101"
}{
"failedupdates": [
{
"OTA": "Agoda",
"OTA_Code": "189",
"roomtypeid": "R101",
"rateplanid": "NRF",
"updates": [
{
"URL": "https://otalog.staah.net/?str=new1_R101_Test_189_15458923699234760_154589100-0768533&pmsid=11",
"channelticketid": "1545892369189234760",
"pmsticketid": "154589234100058333",
"update_time": "2018-12-27 12:03:19"
}
]
}
]
}
{
"failedupdates": []
}{
"Status": "Fail",
"Errors": {
"Code": "400",
"ShortText": "Invalid HotelCode (ne1)"
}
}The Rates & Inventory Log call is used to retrieve the information on Rates & Inventory (availability) for the property for specified Room Type and its related Rate Plan for requested future date range.
POST
Element name - request
Attribute Name
Attribute Name - hotelid/ hotel_id / ClientID
Attribute Name - roomid / room_id / ListingID
Element name - rateplanid / rate_id
Element name - date
Attribute Name - from
Attribute Name - to
Please find an example input message below:
In the case where there is no rates or inventory found for provider based on the parameters provided.
Errors due to invalid parameters
Error - 400
This error will be received if allocated with incorrect Hotel id / Client id.
Error - 941
This error will be received if provided with incorrect Room Type id / listing id.
Error - 942
This error will be received if provided incorrect Rate Plan id.
Error - 945
This error will be received if allocated incorrect value in date field. Date must be of current or future date.
Error - 946
To date value must be equal or greater than from date value.
Error - 935
Date format must be YYYY-MM-DD.
Error - 921
Date range value must be within 730 days of future date counting from current date.
Currently Mapped OTA Channels call is used to retrieve the information on mapped channel's room and rate ids along with basic mapping setup done in Su.
POST
Please find an example input message below.
Element name - request
Attribute Name
Attribute Name - hotelid / hotel_id / ClientID
Element name - ChannelID
Errors due to invalid parameters
This error will be received if allocated with incorrect Hotel ID / Client ID.
The Bulk Rates & Inventory Log call is used to retrieve the information on Rates & Inventory (availability) for specific property for requested future date range.
POST
Please find an example input message below.
Please find an example input message below.
Element name - request
Attribute Name
Attribute Name - hotelid / hotel_id / ClientID
Element name - date
Attribute Name - from
Attribute Name - to
Element name - fullyear
Result will include property's all room and rate plan combination ARI data for an entire year starting from current date.
The response for Full Year Data will be both encoded and Zipped
The result must be decoded using Base 64
The decoded result than must be unzipped
Decoded and Unzipped result will be in exact format as of the specific date range API call
Errors due to invalid parameters (400)
Error - 975
This error will be received if allocated with incorrect Hotel ID / Client ID.
Error - 943
This error will be received if provided with larger range than 90 days.
This error will be received if not allocated with date/s.
This endpoint allows you to retrieve detailed information about the rate plans available for a specified hotel, including different room types, rate plans, and their associated details.
POST
hotelid alphanumeric (Required)
The unique property ID as assigned by the provider upon creation of the property.
channelid string (Required)
Generated while delivering reviews from OTA.
channelhotelid alphanumeric (Required)
The unique property ID as assigned by the channel.
Please find an example input message below.
Global user refers to a user account or profile that has access to all functionalities, features, or resources within the system.
In Su, Global users:
Are defined as users who can access all the properties and can view details of properties as per their convenience.
Allow partner to create multiple users for a property to access Su extranet.
Assign specific properties to the user.
Chain users are typically individuals who have the authority to oversee and manage multiple properties or locations within a hotel chain or hospitality group. Chain users typically hold administrative or managerial positions and are responsible for supervising operations, reservations, and other aspects across multiple properties within the same chain or group.
Chain ID can be created to link a group of properties together.
Chain user associated to a chain ID will automatically have access to all listings linked to the same chain ID.
Chain ID can be created or added for property via API or directly via extranet.
We support Widget API for:
channel-Mapping
https://connect-sandbox.su-api.com/SUAPI/jservice/invratedetails https://connect-sandbox.su-api.com/SUAPI/jservice/mappingshttps://connect-sandbox.su-api.com/SUAPI/jservice/BulkARIdetails https://connect-sandbox.su-api.com/SUAPI/jservice/OTARateplanPullbooking-detailsmbs
The Widget API in a Channel Manager enables the integration of channel mapping widgets into client's applications.
Type
structural element
Children
n/a
hotelid / hotel_id / Client ID
IT provider's hotel id for which retrieving rates and inventory logs.
roomid / room_id / ListingID
Provided property's Room Type Id for which retrieving rates and inventory logs.
rateplanid / rate_id
Provided property's Rate Plan Id related to room type for which retrieving rates and inventory logs.
Type
alphanumeric
Constraints
needs to be a property registered in the STAAH (Existing)
Amount of elements possible within parent
1
Type
alphanumeric
Constraints
needs to be an active room type in the STAAH system for property
Amount of elements possible within parent
Min:1 Max:unbounded
Type
alphanumeric
Constraints
rate plan related to room type for property
Amount of elements possible within parent
Min:1 Max:unbounded
Format Parent
date
Type
datetime
Constraints
only current date to max up to 730 days in the future
Amount of elements possible within parent
Min:0 Max:1
Format
YYYY-MM-DD
Type
datetime
Constraints
only current date to max upto 730 days in the future
Amount of elements possible within parent
Min:0 Max:1
Format
YYYY-MM-DD
Type
datetime
Constraints
only current date to max upto 730 days in the future
Amount of elements possible within parent
Min:0 Max:1
Format
YYYY-MM-DD
Type
structural element
Children
n/a
hotelid / hotel_id / ClientID
IT provider's hotel id for which retrieving rates and inventory logs.
channelid / ChannelID
Channel's specfic Id. If passed blank, will allocate information f all the channels mapped for the property.
Type
alphanumeric
Constraints
needs to be a property registered in the STAAH (Existing)
Amount of elements possible within parent
1
Type
numeric
Constraints
If not passed, will allocate with information of all the channels mapped for the property
Amount of elements possible within parent
Min:0 Max:1
Type
structural element
Children
n/a
hotelid / hotel_id / ClientID
IT provider's hotel id for which retrieving rates and inventory logs.
date
Provide date range of future. Max 90 days of date range allowed per request
Type
alphanumeric
Constraints
needs to be a property registered in the STAAH (Existing)
Amount of elements possible within parent
1
Type
datetime
Constraints
only current date to max up to 730 days in the future
Amount of elements possible within parent
Min:0 Max:1
Format
YYYY-MM-DD
Type
datetime
Constraints
only current date to max upto 730 days in the future
Amount of elements possible within parent
Min:0 Max:1
Format
YYYY-MM-DD
Type
datetime
Constraints
only current date to max upto 730 days in the future
Amount of elements possible within parent
Min:0 Max:1
Format
YYYY-MM-DD
Type
numeric (Accepted Value: 1)
Children
n/a
app-id
string
Yes
Your application ID. Required for authentication.
Authorization
string
Yes
Your API key. for authorization. Required for authentication.
Content-Type
string
Yes
Must be set to application/json.
{
"hotelid": "65",
"roomid": "293",
"rateplanid": "2655:4158",
"date": {
"from": "2019-03-06",
"to": "2019-10-02"
}
}{
"Status": "Fail",
"Errors": {
"Code": "952",
"ShortText": "Inventory not found"
}
}{
"RateInventories": [
{
"date": "2019-03-06",
"inventory": "1",
"rate": [
{
"NumberOfGuests": "1",
"rate": "300.0000"
},
{
"NumberOfGuests": "4",
"rate": "300.0000"
}
]
},
{
"date": "2019-03-07",
"inventory": "1",
"rate": [
{
"NumberOfGuests": "1",
"rate": "300.0000"
},
{
"NumberOfGuests": "4",
"rate": "300.0000"
}
]
},
{
"date": "2019-03-08",
"inventory": "1",
"rate": [
{
"NumberOfGuests": "1",
"rate": "300.0000"
},
{
"NumberOfGuests": "4",
"rate": "300.0000"
}
]
}
]
}{
"Status": "Fail",
"Errors": {
"Code": "400",
"ShortText": "Invalid HotelCode (6)"
}
}{
"Status": "Fail",
"Errors": {
"Code": "941",
"ShortText": "Invalid Room Id"
}
}{
"Status": "Fail",
"Errors": {
"Code": "942",
"ShortText": "Invalid Rate Id"
}
}{
"Status": "Fail",
"Errors": {
"Code": "945",
"ShortText": "Date must be present or future"
}
}{
"Status": "Fail",
"Errors": {
"Code": "946",
"ShortText": "To date must be greater than from date"
}
}{
"Status": "Fail",
"Errors": {
"Code": "935",
"ShortText": "Invalid date or format must be 'YYYY-MM-DD'"
}
}{
"Status": "Fail",
"Errors": {
"Code": "921",
"ShortText": "Date: value should be less than 730 days from current date"
}
}{
"hotelid": "KN-2",
"channelid": "9"
}{
"9": [
{
"ChannelID": "9",
"ChannelHotelID": "55225",
"Status": "Active",
"RoomIDs": [
"STD"
],
"Rateplans": [
{
"PMSRoomID": "STD",
"PMSRateID": "BAR",
"ChannelRoomID": "201425808",
"ChannelRateID": "207058211",
"ChannelMappingName": "1 Queen Studio with Balcony Non-Smoking-Cancellation Policy",
"MappingStatus": "Active",
"PricingModel": "RBP",
"Pricing": {
"ApplicableNoOfGuest": "2",
"Multiplier": "1",
"Surcharge": "0"
},
"DisableRates": false,
"DisableAvailablity": false,
"ExtraRates": {
"Type": "none",
"DefaultAdultRate": "",
"DefaultChildRate": ""
},
"FixedMinStay": {
"Fixed": false,
"MinStay": ""
},
"ChannelExtraInfo": {}
}
]
}
]
}{
"Status": "Fail",
"Errors": {
"Code": "400",
"ShortText": "Invalid HotelCode (KN-21)"
}
}{
"hotelid": "KN-2",
"date": {
"from": "2021-02-24",
"to": "2021-02-24"
}
} {
"hotelid": "KN-2",
"fullyear": "1"
}{
"2021-02-19": {
"11": {
"inventory": "10",
"rateplan": {
"547": {
"stopsell": false,
"closedonarrival": false,
"closedondeparture": false,
"minimumstay": "1",
"maximumstay": "30",
"rate": [
{
"guest": "2",
"rate": "2000"
}
]
},
"548": {
"stopsell": false,
"closedonarrival": false,
"closedondeparture": false,
"minimumstay": "1",
"maximumstay": "30",
"rate": [
{
"guest": "2",
"rate": "2000"
}
]
}
}
},
"12": {
"inventory": "10",
"rateplan": {
"547": {
"stopsell": false,
"closedonarrival": false,
"closedondeparture": false,
"minimumstay": "1",
"maximumstay": "30",
"rate": [
{
"guest": "3",
"rate": "2200"
}
]
},
"548": {
"stopsell": false,
"closedonarrival": false,
"closedondeparture": false,
"minimumstay": "1",
"maximumstay": "30",
"rate": [
{
"guest": "3",
"rate": "2200"
}
]
}
}
}
}
}7P1bb+NcliyK/pd6rgQ4r5xcb7TFz1YlLSUoZiaMjfPQOLvPwQLWZaNXrw0cbNR/
P5ZtUWN68qK8iBGqnG+vPwQLWZaNV.....................
7P1bb+NcliyK/pd6rgQ4r5xcb7TFz1YlLSUoZiaMjfPQfPQOLvPwBd6rgQ4r5xcb7TFz1YlLSUoZiaMjfPQOLvPwQLWZ{
"Status": "Fail",
"Errors": {
"Code": "400",
"ShortText": "Invalid HotelCode (6)"
}
}{
"Errors": {
"Code": "975",
"ShortText": "Date: range should be less than 90 days"
},
"Status": "Fail"
}{
"Errors": {
"Code": "943",
"ShortText": "Enter From Date"
},
"Status": "Fail"
}-app-id: YOUR_APP_ID
Authorization: YOUR_API_KEY
Content-Type:application/json{
"hotelid": "TPBE",
"channelid": "9",
"channelhotelid": "123Test"
}{
"status": "Success",
"data": [
{
"type": "manageable",
"mappedname": "Basic Room-Breakfast Included(manageable)",
"roomtypename": "Basic Room",
"roomtype_id": "210023573",
"rateplanname": "Breakfast Included",
"rateplan_id": "220141455A",
"rateplan_code": "",
"mappingformula": "210023573####220141455A",
"mapping_rateplan": "220141455A",
"fixed_occupany": "",
"is_child": ""
},
{
"type": "nonmanageable",
"mappedname": "Basic Room-Breakfast Included(nonmanageable)",
"roomtypename": "Basic Room",
"roomtype_id": "210023573",
"rateplanname": "Breakfast Included",
"rateplan_id": "220141455",
"rateplan_code": "",
"mappingformula": "210023573####220141455",
"mapping_rateplan": "220141455",
"fixed_occupany": "",
"is_child": ""
},
{
"type": "nonmanageable",
"mappedname": "Basic Room-Breakfast Included(nonmanageable)",
"roomtypename": "Basic Room",
"roomtype_id": "210023573",
"rateplanname": "Breakfast Included",
"rateplan_id": "220141456",
"rateplan_code": "",
"mappingformula": "210023573####220141456",
"mapping_rateplan": "220141456",
"fixed_occupany": "",
"is_child": ""
},
{
"type": "nonmanageable",
"mappedname": "Basic Room-Egencia(nonmanageable)",
"roomtypename": "Basic Room",
"roomtype_id": "210023573",
"rateplanname": "Egencia",
"rateplan_id": "220142597A",
"rateplan_code": "",
"mappingformula": "210023573####220142597A",
"mapping_rateplan": "220142597A",
"fixed_occupany": "",
"is_child": ""
},
{
"type": "nonmanageable",
"mappedname": "Basic Room-Egencia(nonmanageable)",
"roomtypename": "Basic Room",
"roomtype_id": "210023573",
"rateplanname": "Egencia",
"rateplan_id": "220142597",
"rateplan_code": "",
"mappingformula": "210023573####220142597",
"mapping_rateplan": "220142597",
"fixed_occupany": "",
"is_child": ""
},
{
"type": "nonmanageable",
"mappedname": "Basic Room-Breakfast IncludedMOD(nonmanageable)",
"roomtypename": "Basic Room",
"roomtype_id": "210023573",
"rateplanname": "Breakfast IncludedMOD",
"rateplan_id": "386139529A",
"rateplan_code": "",
"mappingformula": "210023573####386139529A",
"mapping_rateplan": "386139529A",
"fixed_occupany": "",
"is_child": ""
},
{
"type": "nonmanageable",
"mappedname": "Basic Room-Breakfast IncludedMOD(nonmanageable)",
"roomtypename": "Basic Room",
"roomtype_id": "210023573",
"rateplanname": "Breakfast IncludedMOD",
"rateplan_id": "386139529",
"rateplan_code": "",
"mappingformula": "210023573####386139529",
"mapping_rateplan": "386139529",
"fixed_occupany": "",
"is_child": ""
},
{
"type": "manageable",
"mappedname": "Standard Room-Breakfast Included(manageable)",
"roomtypename": "Standard Room",
"roomtype_id": "210023575",
"rateplanname": "Breakfast Included",
"rateplan_id": "220141458A",
"rateplan_code": "",
"mappingformula": "210023575####220141458A",
"mapping_rateplan": "220141458A",
"fixed_occupany": "",
"is_child": ""
},
{
"type": "nonmanageable",
"mappedname": "Standard Room-Breakfast Included(nonmanageable)",
"roomtypename": "Standard Room",
"roomtype_id": "210023575",
"rateplanname": "Breakfast Included",
"rateplan_id": "220141458",
"rateplan_code": "",
"mappingformula": "210023575####220141458",
"mapping_rateplan": "220141458",
"fixed_occupany": "",
"is_child": ""
},
{
"type": "nonmanageable",
"mappedname": "Standard Room-Breakfast Included(nonmanageable)",
"roomtypename": "Standard Room",
"roomtype_id": "210023575",
"rateplanname": "Breakfast Included",
"rateplan_id": "220141460",
"rateplan_code": "",
"mappingformula": "210023575####220141460",
"mapping_rateplan": "220141460",
"fixed_occupany": "",
"is_child": ""
},
{
"type": "nonmanageable",
"mappedname": "Standard Room-Egencia(nonmanageable)",
"roomtypename": "Standard Room",
"roomtype_id": "210023575",
"rateplanname": "Egencia",
"rateplan_id": "220142598A",
"rateplan_code": "",
"mappingformula": "210023575####220142598A",
"mapping_rateplan": "220142598A",
"fixed_occupany": "",
"is_child": ""
},
{
"type": "nonmanageable",
"mappedname": "Standard Room-Egencia(nonmanageable)",
"roomtypename": "Standard Room",
"roomtype_id": "210023575",
"rateplanname": "Egencia",
"rateplan_id": "220142598",
"rateplan_code": "",
"mappingformula": "210023575####220142598",
"mapping_rateplan": "220142598",
"fixed_occupany": "",
"is_child": ""
},
{
"type": "nonmanageable",
"mappedname": "Standard Room-Breakfast IncludedMOD(nonmanageable)",
"roomtypename": "Standard Room",
"roomtype_id": "210023575",
"rateplanname": "Breakfast IncludedMOD",
"rateplan_id": "386139530A",
"rateplan_code": "",
"mappingformula": "210023575####386139530A",
"mapping_rateplan": "386139530A",
"fixed_occupany": "",
"is_child": ""
},
{
"type": "nonmanageable",
"mappedname": "Standard Room-Breakfast IncludedMOD(nonmanageable)",
"roomtypename": "Standard Room",
"roomtype_id": "210023575",
"rateplanname": "Breakfast IncludedMOD",
"rateplan_id": "386139530",
"rateplan_code": "",
"mappingformula": "210023575####386139530",
"mapping_rateplan": "386139530",
"fixed_occupany": "",
"is_child": ""
}
]
}{
"Errors": {
"Code": "400",
"ShortText": "hotelid: Invalid HotelCode ('TPBE')"
},
"Status": "Fail"
}{
"Errors": {
"Code": "472",
"ShortText": "channelid is not valid or not found!"
},
"Status": "Fail"
}{
"Errors": {
"Code": "981",
"ShortText": "channelhotelid is not defined or invalid value"
},
"Status": "Fail"
}Authorization RequiredPOST
Name string (Required)
This field specifies the name of the user.
Email email (Required)
This field specifies the email id of the user.
This field is an array which has multiple fields such as CountryCode and PhoneNumber.
CountryCode string (Required)
Country code of the user’s phone number.
PhoneNumber string (Required)
Phone number of user.
Status string (Required)
Status of the user whether it’s active or inactive.
Type string (Required)
Type of the user.
Properties string (Required)
Specifies property(s) to be assigned/linked to global user.
Sample Success Response
This error will occur when 'type' of user is not specified in the request.
This error will occur when 'property name' field does not contain any valid property name or is empty in the request.
This error will occur when valid Email-ID is not passed in the request.
This error will occur when valid country code is not passed or if the field is empty in the request.
This error will occur when valid phone/contact number is not passed or if the field is empty in the request.
hotelid string (Required)
Id of the property.
Status string
This key indicates the status of the API response.
Data Object
Data object contains various data related to the API response. See below:
msg string
A message related to the success of the operation. In this case, it contains the value "Success".
token_id string
token_id contains a unique string value.
user_name string
The name of the user who logged in.
pms_name string
Name of the property management system (PMS) being used.
proppmsid string
An identifier associated with the property management system. It contains a unique string value.
Message string
This key provides an additional message about the overall outcome of the API operation. In this case, it states "User login Successfully", indicating that the user login operation was successful.
19
booking
Qa9Qwq4PF32srUVea3mYzzvBFiszeXK4aaQINYhXlm8
9
expedia
_4PYESNQm9vU15C3DR4xRrW2VHVrEVGPdhx4du8_uBw
189
agodaycs
sAr2QsPWYcMUS-7PKJtEDGG0aZODNK5Sv4B5o2LTPA0
104
gtatravel
Chain user must use a different email ID if they are also a Global user.
POST
Name string (Required)
This field specifies the name of the user.
Email email (Required)
This field specifies the email id of the user.
Valid email address required as reset link is triggered to registered email address.
This field is an array which has multiple fields such as CountryCode and PhoneNumber.
Phone number of the user which is the combination of the country code and the phone number.
CountryCode string (Required)
Country code of the user’s phone number.
Requires a country code.
PhoneNumber string (Required)
Phone number of user.
Requires an active phone number (Numeric values only).
Status string (Required)
Status of the user whether it’s active or deactive.
This field specifies the user's status. Active status indicates user can access extranet. Inactive remove user's access to Su extranet.
Type string (Required)
Type of the user.
This field specifies type of users.There are 2 types of users, Global and Chain.
ChainID string (Required)
This field specifies the id of the chain user which cannot be duplicated. It has a unique value.
ContactPerson string (Required)
This field specifies the name of the property user to whom the chain user can contact for details if required.
This error will occur when 'type' of user is not specified in the request.
This error will occur when valid Email-ID is not passed in the request.
Sample Error Response (989)
This error will occur when valid country code is not passed or if the field is empty in the request.
Sample Error Response (991)
This error will occur when valid phone/contact number is not passed or if the field is empty in the request.
Sample Error Response (988)
This error will occur when valid Chain ID is not passed or if the field is empty in the request.
Sample Error Response (995)
This error will occur when valid contact person is not passed or if the field is empty in the request.
Sample Error Response (1008)
The Flow of the Channel Password Setup -
Step 1 - Add Agoda as a channel for which the Setup is to be done.
Step 2 - Add the valid data/values for multiple fields related to the Channel password setup process.
Step 3 - Submit all the data. (If the channel password setup is successfully done, the system will acknowledge with a message - "Success". And in case of failure, system will acknowledge with an error message.)
POST
hotelid alphanumeric (Required)
Specifies the required node hotelid contains the IT provider's hotel id for which the provider wishes to add mapping information.
action enum (Required)
Defines the status of the channel connection in the system.
channelid numeric (Required)
Specifies the Channel Code for OTA in Su. (for example, Booking.com, Expedia, Airbnb).
status string (Required)
Defines the status of the channel connection in the system.
channelhotelid alphanumeric (Required)
Specifies the unique hotel ID used in the external distribution channel or PMS (Property Management System).
currency string (Required)
Specifies the default currency code used for pricing.
convertrates boolean (Optional)
Indicates whether the API should automatically convert prices into the configured currency.
defaultmultiplier number (Optional)
Defines the default multiplier value applied in rateplan mapping.
defaultsurcharge number (Optional)
Specifies the default surcharge value applied in rateplan mapping.
connection_name string (Optional)
Provides a unique name for the hotel connection to identify it easily in dashboards and reports.
channelmapping arrray of objects
Channel mapping response.
rateplan string
The rate plan name.
channelroomname string
Indicates channel room name.
channelroomid string
Indicates channel room id.
channelratename string
Indicates channel rate name.
channelrateid alphanumeric
Indicates channel rate id.
mappingstring string
Indicates channel room id and rate id.
Status string
Indicates the result of the API call.
Status string
Indicates the result of the API call, which will be always "Failed" in case of an error response.
Errors array
Array that contains details about any errors that occurred during the API call. Each object in the Errors array contains the following properties:
Code string
Specific error code that helps identify the type of error.
ShortText string
A short description of the error.
The API is used to Deny/Cancel requested reservations.
Request to Deny/Cancel Request Booking
Customer ‘Request to Book’ via Request Booking platform.
Customer receives notification email from Request Booking platform clearly indicating booking is on request and host has to revert within 24 hours.
Booking arrives to channel manager with ‘REQUEST’ status.
Booking is delivered to PMS (if PMS supports ‘REQUEST’ status).
System triggers email to property.
Option to Deny / Cancel booking is found within the booking in channel manager extranet along with API.
If no action taken on request booking within 24 hours of receipt time, system automatically cancels the booking and pass on cancellation to Request Booking platform.
The request body consists of a bookingid. This is the booking id (channelbookingid_hotelid) as allocated in booking and status as cancel.
bookingid (Required)
The unique identifier for the booking, formatted as channelbookingid_hotelid (example, 123456_ABC).
status (Required)
The status of the booking. Set the value to "cancel" when declining the reservation.
decline_reason (Required for Airbnb)
A string that provides the reason for declining the reservation. This value will be shared with the guest.
message_guest (Required for Airbnb)
A message explaining to the guest why the reservation was declined. This should provide context for the cancellation.
message_airbnb (Optional, Required for Airbnb)
A private message sent to Airbnb when the reservation is declined. This field is optional and is for communication between the hotel and Airbnb.
Sample Success Response (200)
If booking cancellation is received outside of 24 hours after receiving booking, an error is returned - Unable to cancel as request received more than 24 hours.
Sample Error Response (1035)
Agoda
The Flow of Channel Mapping -
Step 1 - Add the Agoda channel for the channel mapping process.
Step 2 - Add the valid data/values for multiple fields related to the Channel Mapping process.
Step 3 - Submit all the data.(If the channel rateplan mapping is successfully done, the system will acknowledge with a message - "Success". And in case of failure, system will acknowledge with an error message.)
POST
hotelid alphanumeric (Required)
Specifies the required node hotelid contains the IT provider's hotel id for which the provider wishes to add mapping information.
action enum (Required)
Indicates the call is meant to Channel rateplan mapping for property.
channelid numeric (Required)
Specifies the Channel Code for OTA in Su (for example, Booking.com, Expedia, Airbnb).
channelhotelid alphanumeric (Required)
Specifies the unique hotel ID used in the external distribution channel or PMS (Property Management System).
roomid alphanumeric (Required)
Property's Room / Listing ID.
rateid alphanumeric (Required)
Property's rate ID.
channeroomid alphanumeric (Required)
Channel Room ID.
channerateID alphanumeric (Required)
Channel Rate Plan ID.
pricing array of objects
(Required)
Number of guests, multiplier and surcharge. PMS must pass object of number of guests according to the pricing OTA supports.
applicablenoofguest numeric (Required)
Number of guests for this room/rate combination applies.
multiplier numeric (Required)
Multiplier to increase / decrease rates. Both, absolute and percentage value is considered.
surcharge numeric (Required)
Additional Charges to added(if any).
disablerates boolean (Required)
Flag to disable rates while mapping derived rate plan combination.
disableavailablity boolean (Required)
Flag to disable inventory while mapping derived room/inventory combination.
extrarates
object (Required)
Rates for Extra Adult and Child Rates.
type
enum (Required)
Three types of Extra Rates.
defaultadultrate
numeric (Required)
Default Extra Adult Rate (applicable only for the channel's with support, for example, Agoda).
defaultchildrate
numeric (Required)
Extra Child Rate(applicable only for the channels with support, for example, Agoda).
fixedminstay object (Required)
Fixed amount for minimum stay.
fixed
boolean (Required)
If it supports fixed minimum stay or not.
minstay numeric (Required)
Number of days(Value for fixed number of days).
Status string
Indicates the result of the API call.
Status string
Indicates the result of the API call, which will be always "Failed" in case of an error response.
Errors array
Array that contains details about any errors that occurred during the API call. Each object in the Errors array contains the following properties:
Code string
Specific error code that helps identify the type of error.
ShortText string
A short description of the error.
The Flow of the Channel Password Setup -
Step 1 - Add Booking.com as a channel for which the Setup is to be done.
Step 2 - Add the valid data/values for multiple fields related to the Channel password setup process.
Step 3 - Submit all the data. (If the channel password setup is successfully done, the system will acknowledge with a message - "Success". And in case of failure, system will acknowledge with an error message.)
The Flow of the Channel Password Setup -
Step 1 - Add Expedia as a channel for which the Setup is to be done.
Step 2 - Add the valid data/values for multiple fields related to the Channel password setup process.
Step 3 - Submit all the data. (If the channel password setup is successfully done, the system will acknowledge with a message - "Success". And in case of failure, system will acknowledge with an error message.)
https://connect-sandbox.su-api.com/SUAPI/jservice/users{
"Name": "Noah Brown",
"Email": "admin@examplehotel.co.nz",
"Phone": {
"CountryCode": "+64",
"PhoneNumber": "211234567"
},
"Status": "Active",
"Type": "Global",
"Properties": [
"Property ABC",
"Test Property"
]
}{
"Status": "Success"
}{
"Status": "Fail",
"Errors": {
"Code": "990",
"ShortText": "User type must be either 'Global' or 'Chain'"
}
}{
"Status": "Fail",
"Errors": {
"Code": "992",
"ShortText": "Please provide valid property ids"
}
}{
"Status": "Fail",
"Errors": {
"Code": "989",
"ShortText": "Enter valid email"
}
}{
"Status": "Fail",
"Errors": {
"Code": "991",
"ShortText": "Enter valid countrycode"
}
}{
"Status": "Fail",
"Errors": {
"Code": "988",
"ShortText": "Enter valid phone number"
}
}https://connect-sandbox.su-api.com/SUAPI/jservice/widget/getWidgetAccessToken{
"hotelid": "new1"
}{
"Status": "Success",
"Data": {
"msg": "Success",
"token_id": "My42LjI0OS4yNDg=_2zCe4UwqClLJ8IPB25fhRXhaiahF2kja",
"user_name": "XYZ ABC",
"pms_name": "HotSys",
"proppmsid": "y77kDhCABRZxRXEn-KLQYBdl7SVb_1o0TCIZV9EYDso"
},
"Message": "User login Successfully"
}
https://connect-sandbox.su-api.com/SUAPI/jservice/users{
"Name": "Joe Tohma",
"Email": "admin@examplehotel.co.nz",
"Phone": {
"CountryCode": "+64",
"PhoneNumber": "212345678"
},
"Status": "Active",
"Type": "Chain",
"ChainID": "NZCHAIN001",
"ContactPerson": "Mark Smith"
}{
"Status": "Success"
}{
"Status": "Fail",
"Errors": {
"Code": "990",
"ShortText": "User type must be either 'Global' or 'Chain'"
}
}{
"Status": "Fail",
"Errors": {
"Code": "989",
"ShortText": "Enter valid email"
}
}{
"Status": "Fail",
"Errors": {
"Code": "991",
"ShortText": "Enter valid countrycode"
}
}{
"Status": "Fail",
"Errors": {
"Code": "988",
"ShortText": "Enter valid phone number"
}
}{
"Status": "Fail",
"Errors": {
"Code": "995",
"ShortText": "ChainID should be alpha-numeric and length must be less than 40 characters"
}
}{
"Status": "Fail",
"Errors": {
"Code": "1008",
"ShortText": "Enter ContactPerson"
}
}fUsWY7EFh2BxR3ad0B-AJUAwF7NxHdQQoyok--R5OfU
150
ctrip
#NAME?
76
hostelworld
MwrDsJtsAPxcRKRWZgShjYx8iN1n8yQHA2YnSDe6xKQ
152
pegipegi
#NAME?
108
tiket
w_ctkmSbcNpGB_wIIJzYgfMGyeJv-VvHB2R6LDU-K6Y
119
klikhotel
az8bwK-vBpocLdw9aZqHF1Qi48Nas66jkvgzlKCg37U
236
odigeo
MiQRwwxIUPKVaDyCIw-_XdT54UVGrWhDarda-84Rzl0
105
goibibo
lPICpzaF_l6vMAOU8Il9pCQGZwLzaXRrMvT_Ywbo1b0
244
airbnbcontent
aM4JjiWOnUx5qS2IT8wHCbVmIWbA9tTD3PFcjnt8M-Y
239
silverdoorapartments
impI_6CAcq4jiBjK4IvCefpmBbsvOIG_No-Nv20Dreg
153
fastbooking
73_mWcT1c04ShJy5Lt4a-2ObSQLsielg_dtnj2i0PXw
61
hostelsclub
q6xCjB6EP05sMvyiRJwj0EBoIvfu8AhKsWlxX1VAVks
232
dotw
dzxfkVFiuZ5pcpGUn207y7FwvpN16Ew_EaMb40PuAxs
57
mitchellcorp
xq5UePpi7qvrUSUSMRSFVu-k3-DX-9p2L0nyKYL9k14
162
mrandmrssmith
iYzcanVAOAcNbSP4pEq80CYSUcQcWDwMcgG0Dyay7_k
109
hotelscombined
B6QSry6xy7CbBZa4NWslGDXFwXagfSwk21HILyssoXE
82
hotelbedsnew
3hsP5chfwjDbV7KYetJ2N3g979MWQXOJn-zlyGdjcgI
71
sunhotels
F_GH-Kk9URjvi-EOXnGKGHN4O0kuUZWj3Pi9b0SigHo
253
VRBO
6w9fCl2fQYkSXlG4pJXMFegJVyWDk7K0IHzqmjm2egI
250
speedybooker
yrxxDj4fy2KsjFfZo1nfEBwAMhIaskYQxLFqOMO7Jc0
55
panpacific
yeV4W9v17RH_IgpRJa_HHNxzSwcqq0pdPRYcNcHUcfs
87
hrs
T0VbGEGeudfkTF0sQIbdwmSj9fHksazTqjvBfj86BdE
13
bookit
bDMMh2Alh32Hp8c5CI_Z9RAWfavdwky_cq_etNEKrhE
38
bookeasy
s0_W4q58ayyo_C816KcCg6QuumEMPs1Yb0fl6VWdZog
146
synxisxml
y87U1CNy0TK_HM7_9JLHsuFBeunza7suSyFALeVXRZE
170
traveloka
veDoORUmPRfzFSwSQkjFY0k3qRE5Hqccxs0qT27Q_1g
66
bedbank
Bzc3pwZ3vRpt39_ucnCfKNyeNa9FcVdM0bjC98BuDso
39
needitnow
pYTuOCJN8RKY6CdAx1R1pswBAW5jEBhuKB1tl8IZr7I
224
hotelbonanza
5pI2rWqPCjF3KKWby_RFv-tyeQby0ZrUvcZ9i0gbXds
263
hoteltonight
cbSsPpQzGD8ONUXWmDyZJxHmggxikJaiiGB_ViWgKVo
96
hotelzon
MOrP9ESZ5fYHqwoz0FNRb_Zemlic0Ptq5kzbayjQQx4
97
travelguruxml
feTx7u9DzkjpGYzNk30whxi-PyqKnaFUMTsSdsglSo0
207
tikitour
vWvbsZR4Ey-UZw9G3imYy3sSrcNacFabL8w0f0wI4eU
251
eztravel
KonhPvof_kAIB4-gfdk8rBqsAEyA5D_qDIBWDdRb4lE
106
aot
ivAbY473-3WBquSOIEna2C-9vmmOrbyX5levNQSetm4
231
simplebooking
rbesIGs9P2ETA_IpSYLP4DiIg_JX9EXHR1sWOP7wEvU
122
tablethotels
99B3I3iKHlef4MhmeUEFRhqTY2ZsVw5UNKYqquAsg4M
181
despegar
6Uw8-ZjG8O0b7EY3cE4-oGMmphOmWHWPTyx9JNUhEZg
206
tourplan
SC_22pPRGW4e82F7wKD0LIu0vOTaTDALU8V98oWSrU4
183
dorms
sWXxnUc049paCHokdE7q9u2s2kkZ_wNxyw-oSzW5VSY
205
travelanium
3cnN93GHuf_ve3re7NvxHEVHrFSLiEJvfz1ONikelkY
0
Booking Engine
160
tomas
jFqWSTN38vWZIhBblSwcKLu79KZgAgiIoCS0Njk2868
59
travelocityxml
PAByHa2WkT2SuglG4_Qkby7bTq_-KkhQ3hqHVMKkaiY
245
travelstaynetworkxml
2beYgkK63rUQShNe0qJlWIShvENzPAIelAAG23-9GNg
185
bookingdirect
LvTORqq5BuufvoMVQermiY_LjFlYADEcoStBv7ocZpA
249
GetYourWeb
qz3YX8CLYD_JkLOgCtfGoJ-kxGqyYcu-vN6v3IjFFUA
261
netroomz
6yUjHWyHj0FgYgrq80x0XU-Di55cUfCvKJ3xlQf3bJk
37
mybookings
qpHZjZl1GiKJCaBzs0U2PuHOnMV0cKo3xRe2gLg1cU8
223
travelclick
sn_MUK9IHAzRd-ruhkRrMRilfBTjU-FldeCr5vzTE_I
65
hotwirexml
26ePSkbgd-NygzQ7qoV3Nv37rpW3DUnIPdV439z_XN8
51
not1night
phrLkIdop3LGmUrcLd54ChJAGVpem8f5yK-bA2iC6es
79
jetstar
rYKxUpqVscxA4IapDag7RIKGhfKHj6zhQ5Y8qs_hzhY
64
lido
ID25gI3wciXWPUOilnB1RA2BHrKs1aoLL2h7RoXo7os
179
flightcentrewholesale
NePbcQj1MqUWBuikboJULg6lySIkzte_573DaWgp9Hk
275
Metachannel
#NAME?
5001
Tripadvisor
clSxjALHUehgNfln2sDV52V8kRMxMoph1TkE-S9AH18
280
travcoxml
a0Aad_LEq1ObK1gPZ4nim1NhgdzM1b7L9oknVkSAuGI
226
booknpayxml
KOX3BviwyVefGh3v4yKUrmM0pZ5dDVSNG1dJ8UuBFTY
208
bookingeye
lv9joJnFUwMzC8ZnKKNy-jYrtW08U7ZkwFZHW7pIKPU
222
sawadeexml
0DRJ3cAv9n5H7LkcwUdZdmxBe-o0wAvthu6NTH2znt8
203
grabrooms
GNPOpACxxV4RGPJNP4btg0FO6nW-WmxNJKeWoywzThQ
148
Hoterip
Pc5s52AWPX0VturpBkcdNiPYFOnHgsRwAUZ5tIPpAuE
259
middleeasthotel
jaKwbcQY639E3BT2ms4jnVPSyAHOLZtIZtV4wtmtP8g
130
hotusa
dlJ2cXBQS1mh-uXRQRiAb8fu__POLoJLKRzo4lLiMmI
288
situ
UbBFPHpQ3Vyy0W1aMhGnd1jMzLNo1zZkVdKN54ON8Uo
1
STAAH
lHPHFZUfy-Jsg-j_dXMsFaDyRnucdoyQheNQj1Waj90
140
viaxml
ipyeXlhLhc60oLpRmsLjHBijXHPi5Xwtr_wbdbtqluk
186
ostrovok
eLzeU78G-cZfmFmiqqouY1bGe1OqlJfXTweFFvOojiI
116
webhotelier
H_WoaHwArzevPbmL2wcoiv9Mf_XOwiVxc_IYQ4AyrDI
266
onefinerate
-2GwmruyNJcVw5V0oKmhIjtrG6iU6uEP8ZRCDRy5HYg
230
thebuking
ooJe6tfmIFzEaxq6jzrL6YbhrEvoYKEu--fbHVHUZOg
213
getaroom
i18TD0pbWPWb7UCoYi8EJQupQpRmhAOaQAKLrk8Chak
133
hotelnetwork
czEPO1FIaW3Au2jtQm1lDOTqn5-MVWTWRR8CwmLdAcw
90
travelrepublic
46CIXUZpSNyuTqyL3aD3iLClbWvGretvheRiLHW6zzI
290
apartmentsonline
51443E1qZLrw-76lhoDdyb1wkf48saWzulwJF0X3LWs
110
pitchup
VvpX_k4jLEmHSNw8FYEsfgxJrh2AolqovJcKI_Cs7o4
217
easemytrip
uaScHQ3nHuNkzealQR4jX5cW-fdeMYaFCzVnv2gBpOU
284
happyeasygo
WOKOjU1OM3wJEgTIeaoU5s5Snq6ANKA-NM_kM350QhM
291
hyperguest
PYYBT42ZHynHyeqlAJfeT90kEJ-6JdDadsYFPujRpOw
293
bakuun
PkvkVXhBO1XkWVgMGEgvp1wAzO3TKrsgdQKhojnc6LM
5002
OCXZPo8q9U8okpPE2ZzVkzkvl7omQc_ST5dYWHovV7A
225
ichronoz
s81CMepM2DE7RxNwW6ukaGAdEem42E7LO18b5lCZFD8
269
shijigroup
kX-5_jHxp5dK7OcUYc8asg0RTxetSt0YeZbJTGyFsXM
294
pelican
wiroGb_hxUaDqwL5EvWERu1MhzkmHkyUDKjv5jFXMso
292
tripjack
kOJN1kDai6jKkZjyh5mtnASHeiwd62_TckWb046_tiE
255
tbo
RIb8AJ_dt6eiWkmA2YmenLPHkeMx4GCe7E_TQIS8HJE
5003
UMI Digital
rkr1W92TapUhkWFAbkEMX-8T4gfC3ZGwIF9AlO7zESs
127
prestigia
QsAOyTc6VBD4o3CGIrd1oP0u1apX907EvcHwsb9pqfY
295
omnihotelier
_tocqIIyEZ-BrAfWgUfFp6p8SSGFTZ4wVvxVSyA2Lsk
296
tripfactory
5sW__2vtpVFw3PZpwzD_ALTdjtKXdPTwDVChhj2pC9Q
278
roiback
zEV2YXrOlezzMBjv3BmFsYt7e_L7OvP4AchTQb9hz0w
270
saffronstays
GLUaEXfLORXYW4YM7eLq2g44Wl5x6fKg3k8DcQloxDc
5004
mybookingsite.io
qWr16eJKPcjwiGBjxP25ZDfWSUl1knadxiZJiYQ3Y44
5000
max
zYXK3LVSlhZsp8GHKZ_EJp8NAkNLN_Zs-73iiDCIq_8
103
webrooms
SpVADr2sQ26yjlCIKssYM9tv0DqqKNkngus1I9DiVfQ
281
simplotel
wGv-Ki_5wufD7ZeMh-SXzFLHB-ALRTF65Pr5bvZ8nmY
177
reservhotel
j7diIjdEEUSN6858_-CaSg3UwHNygUf-aTIdeLi2kIs
242
iescape
ZQ9s_pwj6ovKT7f8sfdKypXpIYTJJp2C5mCyB0aHQZ0
297
hobse
uVm0YmFYV-o9Et7VvSIb5TkvGPqIyRBBdz9e9b5W3HQ
85
jactravel
gMmgemoVtriO0_CTGgBBMGYy4Tv5Lc341eDw6VmlSsk
301
campingvision
3EPv7ZCjCeyG1x5JBy91XTERA5aZ9QQZZZWM6QWe0fU
299
neorcha
eoYXW72Pc2K0-wJiaglu68qViDDKd0SD2nKyAMjE20A
304
hoo
Jr_qQdaX5OUX27Yktl_obYPTLWYELUw4ZQ1uulwA7Ek
69
reconline
cTdWaaTshSqie3HCN3bFG96DcV4wvDloJ5qxIxl0Enc
5005
instant
ne3JEqn9Q-T4ZqP_qxunn4mVnXX7UjYV9hY2cXmACxI
282
irctc
5AKNIR_GTvVfJCKYhRO3gx0M5R1yn9iSuFIU7p3XiVQ
300
findbulous
6DgWWJQdgvhOIbjhyVL82K1jn2KJ3C2xp77pVhL4JII
302
belhotel
#NAME?
305
halalbooking
GlvXHF5BF5jiZtKbPQrjTufCs2VLxE7rADPgFtPc0M4
303
hottau
KmbyPB1CUxN339SK8bhtSaQhBJxDBRvVSGiQHasxqr8
777
Test hottau
pV_aTio1TySGSiGCScISxgv2rskrf3rebpuSY05FoGs
312
Travepic
FrCDcJAB9X3bBmGRDCfFfwrKEBrNo7sbDnmuYprk6f4
306
Jumpon.online
x1tG2UZtx3gGeisYDxK_pxj5CW6LZsZ_D0kvSzPKgWQ
310
OffPeakLuxury
Hwymvn-Hbcx8Ub6wdXbXP7Puhybz2R69pnMpDsA9Rp4
317
TXGB
j5moNsvLXGjTCwIX76oXCxdHQa06DPVMp6Y2H70gRrs
176
rakuten
wrE2dZCimBkjT6mhEptZzABfFoht6z5PONN_1PBO6n8
319
altovita
jIvfKHlC77HgW2MnZygXPmo1fiTKHINWyOFhzI6RR0k
267
mgholidaysnew
Xu5Jx7aVs5-Q2sLlisCKiGK9jCw1Xj10MYpKDMBz2yc
321
5pm
dCt9gbVJLM4_5ayXCVaXffshO7Z8H8LkI1oEW1HwuPc
265
miki
LJets2FSEKssE_JnrNmdJHOh5Jo-MD4OhoeODygESlk
2
staahmax
I2fsZjH5TVQuO9eTl0uWbVNJTJvoiO2y5I87VBPqolI
320
didatravel
uJj5vWyJKlTt99EliRjUYZVKAZR35pFYk0sEIvp2uRM
328
airasia
PgErd3SkcnMxRU6E-LheulQjZE1G3-fse0P0t3ADjTI
2001
instantmigration
C_YEv8pIIgk6tEl22GvnR2Vv9j1-Mg4pkNi4kaj0AsA
315
robinhood
T9AiMT3eFD-Lk3mD5QHoplO3jyOUKy5HPrfKUGRGqIk
329
bag2bag
IoLZNLtEeqDTX7UQG2aHDFk1pFCMHCwg-dY3KwK8Nx4
339
ctripnew
mvYVz5x5ExxioyfyMo3jUUpNVZVbMyC6SUExMG9iaIY
325
brevistay
H_fhsJR7BDkqrJQfIlHK8nRapbDAkMZSJLvfuUvCOE8
318
dedge
2A1S5t8GJ-yN1gPjBjm7F5UhTBeQfLIwZl02xQ81F1E
330
aubergenie
rvbJzHhfkYUWX34FcFxnzkg8oJKA8SXHYrRIX-SLgAg
165
metglobal
tPU92nkJt8hMUBIkx7SCgh4ahS-cQzHHKTrvEj_SPqo
274
rezlive
RkcUBq0kOPzkVDymY-fRhpAoc1r64e8vfLKxT5xelBA
346
roibos
#NAME?
358
seera
fhvLVyoGJQXNewj96EddFKDk5-URGez0HVi9zMVeY2w
347
trustedstays
A3AISNS58wX0DScX-dY10sxGdhXP4ah02OHJhTMwvyM
352
travelplus
hlRqrfD7wU6EgBvIV8hVlA00Rg9d9618eoPifxNm63A
351
cleartrip
36zs3h9bR2qKpTyaseElGTV5TTqNqHkuu4Zy2rjBxQk
355
hotelsinone
66SWWxLmUCObQJ0tsIpx60jaRN_sp7aPsm0LH_T2bio
353
klook
73B639r0IW4vaT2ewB0r69aYDg4GOA-LKPhe6C0K2dE
5006
Trivago
Y5oktjADd4dtVJYfdwrmOkv7HE-tV8-gfqW8Y-i_iCE
361
bookmybooking
pc2bklW4wGiBp6fipMEUT8uax2GLMFbRDYiZjtp0CA4
313
kliknbook
d9JixG_kWLbwWHaL5Z35wVnmu5DiLpOJp1Z7AhxzUac
356
feratel
47lMnrbQaPIpi8HQ-CHZOU72euCZJpR3luUJslZUoWo
362
spabreaks
ADKmyD3S4638OcSHOE2IRTMGccgA2NuDwUxIlzjFsqo
336
villafinder
Mww9M2zmVvdgeZ0x6lk4t2_ismC98vQ_wEMp2Nq_7yU
370
nuitee
Qd-0HdGUgNqYhHW-7q9Fh445oVRhmRbeLsvRzakWAmo
350
busyrooms
kJCH9UM2q0dL7n4AQD6z5Ep6gZzq271dcwRa20EMwj0
378
elong
wQuNsnJUyq2aUQOG_yfbWrsSV4aK9mi4bU1Marcgjk8
371
opengds
3nKOyvj65nOuB8vb49EXS9enOn_pJTf0WtGPoBhBSiY
364
convergent
NS4XuxdOokj2bvGylffjJRbCTZMKchjhYDtgZKjgybI
158
bedandbreakfast
2JU5_PTCTEuBcjA3EQ5GLmCcB2bmNxmyKByAhYgAC1k
Reporting provides users with valuable insights, concise summaries, and in-depth analyses of data to assist in decision-making, monitoring, and performance evaluation. Su Reporting refers to report the status of the booking to the channel.
Reporting - No Show (Booking.com & Goibibo)
Reporting - Invalid CC (Booking.com)
waiting_for_better_reservation
not_comfortable
{
"bookingid": "113463_TESTHOTEL",
"status": "cancel",
"decline_reason": "dates_not_available",
"message_guest": "Message to guest",
"message_airbnb": "Message to airbnb"
}{
"Status": "Success",
"Code": "200",
"ShortText": "Booking cancelled"
}{
"Status": "Fail",
"Code": "1035",
"ShortText": "Unable To Cancel Booking As Request Booking Not Found With Booking Id :: 201086"
}none - Not set
hotelid alphanumeric (Required)
Specifies the required node hotelid contains the IT provider's hotel id for which the provider wishes to add mapping information.
action enum (Required)
Indicates the call is meant to OTA setup for property.
channelid numeric (Required)
Specifies the Channel Code for OTA in Su. (for example, Booking.com, Expedia, Airbnb).
status string (Required)
Defines the status of the channel connection in the system.
channelhotelid alphanumeric (Required)
Specifies the unique hotel ID used in the external distribution channel or PMS (Property Management System).
pricingmodel string (Optional)
Defines the pricing strategy used for the hotel.
currency string (Required)
Specifies the default currency code used for pricing.
convertrates boolean (Optional)
Indicates whether the API should automatically convert prices into the configured currency.
defaultmultiplier number (Optional)
Defines the default multiplier value applied in rateplan mapping.
defaultsurcharge number (Optional)
Specifies the default surcharge value applied in rateplan mapping
connection_name string (Optional)
Provides a unique name for the hotel connection to identify it easily in dashboards and reports.
channelmapping arrray of objects
Channel mapping response.
type string
Managable or non-managable.
rateplan string
The rate plan name.
channelroomname string
Indicates channel room name.
channelroomid string
Indicates channel room id.
channelratename string
Indicates channel rate name.
channelrateid alphanumeric
Indicates channel rate id.
mappingstring string
Indicates channel room id and rate id.
Status string
Indicates the result of the API call.
Status string
Indicates the result of the API call, which will be always "Failed" in case of an error response.
Errors array
Array that contains details about any errors that occurred during the API call. Each object in the Errors array contains the following properties:
Code string
Specific error code that helps identify the type of error.
ShortText string
A short description of the error.
hotelid alphanumeric (Required)
Specifies the required node hotelid contains the IT provider's hotel id for which the provider wishes to add mapping information.
action enum (Required)
Indicates the call is meant to OTA setup for property.
channelid numeric (Required)
Specifies the Channel Code for OTA in Su. (for example, Booking.com, Expedia, Airbnb).
status string (Required)
Defines the status of the channel connection in the system.
channelhotelid alphanumeric (Required)
Specifies the unique hotel ID used in the external distribution channel or PMS (Property Management System).
pricingmodel string (Optional)
Defines the pricing strategy used for the hotel.
currency string (Required)
Specifies the default currency code used for pricing.
convertrates boolean (Optional)
Indicates whether the API should automatically convert prices into the configured currency.
excludefees boolean (Optional)
Indicates whether additional taxes or fees should be excluded from the displayed room price.
markdowntax number (Optional)
Specifies the percentage of tax markdown applied on the final room price.
defaultmultiplier number (Optional)
Defines the default multiplier value applied in rateplan mapping.
defaultsurcharge number (Optional)
Specifies the default surcharge value applied in rateplan mapping
connection_name string (Optional)
Provides a unique name for the hotel connection to identify it easily in dashboards and reports.
channelmapping arrray of objects
Channel mapping response.
type string
Managable or non-managable.
rateplan string
The rate plan name.
channelroomname string
Indicates channel room name.
channelroomid string
Indicates channel room id.
channelratename string
Indicates channel rate name.
channelrateid alphanumeric
Indicates channel rate id.
mappingstring string
Indicates channel room id and rate id.
Status string
Indicates the result of the API call.
Status string
Indicates the result of the API call, which will be always "Failed" in case of an error response.
Errors array
Array that contains details about any errors that occurred during the API call. Each object in the Errors array contains the following properties:
Code string
Specific error code that helps identify the type of error.
ShortText string
A short description of the error.
The Flow of Channel Mapping -
Step 1 - Add the Traveloka channel for the channel mapping process.
Step 2 - Add the valid data/values for multiple fields related to the Channel Mapping process.
Step 3 - Submit all the data.(If the channel rateplan mapping is successfully done, the system will acknowledge with a message - "Success". And in case of failure, system will acknowledge with an error message.)
POST
hotelid alphanumeric (Required)
Specifies the required node hotelid contains the IT provider's hotel id for which the provider wishes to add mapping information.
action enum (Required)
Indicates the call is meant to Channel rateplan mapping for property.
channelid numeric (Required)
Specifies the Channel Code for OTA in Su.
status numeric (Required)
Specifies the status of the request.
channelhotelid alphanumeric (Required)
Specifies the unique hotel ID used in the external distribution channel or PMS (Property Management System).
roomid alphanumeric (Required)
Property's Room / Listing ID.
rateid alphanumeric (Required)
Property's rate ID.
derivedrateids array (Required)
List of Traveloka non-managable rateids.
channelroomid alphanumeric (Required)
Channel Room ID.
channelrateid alphanumeric (Required)
Channel Rate Plan ID.
pricing array of objects (Required)
Number of guests, multiplier and surcharge. PMS must pass object of number of guests according to the pricing OTA supports.
applicablenoofguest numeric (Required)
Number of guests for this room/rate combination applies.
multiplier numeric (Required)
Multiplier to increase / decrease rates. Both, absolute and percentage value is considered.
surcharge numeric (Required)
Additional Charges to added(if any).
fixedminstay object (Required)
Fixed amount for minimum stay.
fixed boolean (Required)
If it supports fixed minimum stay or not.
minstay numeric (Required)
Number of days (Value for fixed number of days).
defaultminimumnight numeric (Required)
Defines the default minimum number of nights required for booking if no specific stay rules are set.
extrarates
object (Required)
Rates for Extra Adult and Child Rates.
type
enum (Required)
Three types of Extra Rates.
defaultadultrate
numeric (Required)
Default Extra Adult Rate (applicable only for the channel's with support, for example, Traveloka V2).
defaultchildrate
numeric (Required)
Extra Child Rate(applicable only for the channels with support, for example, Traveloka V2).
Status string
Indicates the result of the API call.
Status string
Indicates the result of the API call, which will be always "Failed" in case of an error response.
Errors array
Array that contains details about any errors that occurred during the API call. Each object in the Errors array contains the following properties:
Code string
Specific error code that helps identify the type of error.
ShortText string
A short description of the error.
The Flow of Channel Mapping -
Step 1 - Add the Expedia channel for the channel mapping process.
Step 2 - Add the valid data/values for multiple fields related to the Channel Mapping process.
Step 3 - Submit all the data.(If the channel rateplan mapping is successfully done, the system will acknowledge with a message - "Success". And in case of failure, system will acknowledge with an error message.)
POST
hotelid alphanumeric (Required)
Specifies the required node hotelid contains the IT provider's hotel id for which the provider wishes to add mapping information.
action enum (Required)
Indicates the call is meant to Channel rateplan mapping for property.
channelid numeric (Required)
Specifies the Channel Code for OTA in Su. (for example, Booking.com, Expedia, Airbnb).
channelhotelid alphanumeric (Required)
Specifies the unique hotel ID used in the external distribution channel or PMS (Property Management System).
roomid alphanumeric (Required)
Property's Room / Listing ID.
rateid alphanumeric (Required)
Property's rate ID.
derivedrateids
array
List of Booking.com non-managable rateids.
channeroomid alphanumeric (Required)
Channel Room ID.
channerateid alphanumeric (Required)
Channel Rate Plan ID.
pricing array of objects
(Required)
Number of guests, multiplier and surcharge. PMS must pass object of number of guests according to the pricing OTA supports.
applicablenoofguest numeric (Required)
Number of guests for this room/rate combination applies.
multiplier numeric (Required)
Multiplier to increase / decrease rates. Both, absolute and percentage value is considered.
surcharge numeric (Required)
Additional Charges to added(if any).
disablerates boolean (Required)
Flag to disable rates while mapping derived rate plan combination.
disableavailablity boolean (Required)
Flag to disable inventory while mapping derived room/inventory combination.
fixedminstay object (Required)
Fixed amount for minimum stay.
fixed
boolean (Required)
If it supports fixed minimum stay or not.
minstay numeric (Required)
Number of days(Value for fixed number of days).
Status string
Indicates the result of the API call.
Status string
Indicates the result of the API call, which will be always "Failed" in case of an error response.
Errors array
Array that contains details about any errors that occurred during the API call. Each object in the Errors array contains the following properties:
Code string
Specific error code that helps identify the type of error.
ShortText string
A short description of the error.
You can report Invalid CC booking for a specific hotel id with the reservation notification id. This node should contain cc_is_invalid to report invalid CC. This can be reported immediately after the reservation is made, up until midnight (00:00) on the day of check-in.
POST
hotelid alphanumeric (Required)
The unique property ID as assigned by the provider upon creation of the property.
reservation_notif_id alphanumeric (Required)
The notification id of the reservation.
report alphanumeric (Required)
The name of the report.
Booking.com
The Flow of Channel Mapping -
Step 1 - Add the Booking.com channel for the channel mapping process.
Step 2 - Add the valid data/values for multiple fields related to the Channel Mapping process.
Step 3 - Submit all the data.(If the channel rateplan mapping is successfully done, the system will acknowledge with a message - "Success". And in case of failure, system will acknowledge with an error message.)
POST
hotelid alphanumeric (Required)
Specifies the required node hotelid contains the IT provider's hotel id for which the provider wishes to add mapping information.
action enum (Required)
Indicates the call is meant to Channel rateplan mapping for property.
channelid numeric (Required)
Specifies the Channel Code for OTA in Su (for example, Booking.com, Expedia, Airbnb).
channelhotelid alphanumeric (Required)
Specifies the unique hotel ID used in the external distribution channel or PMS (Property Management System).
roomid alphanumeric (Required)
Property's Room / Listing ID.
rateid alphanumeric (Required)
Property's rate ID.
channeroomid alphanumeric (Required)
Channel Room ID.
channerateID alphanumeric (Required)
Channel Rate Plan ID.
pricing array of objects
(Required)
Number of guests, multiplier and surcharge. PMS must pass object of number of guests according to the pricing OTA supports.
applicablenoofguest numeric (Required)
Number of guests for this room/rate combination applies.
multiplier numeric (Required)
Multiplier to increase / decrease rates. Both, absolute and percentage value is considered.
surcharge numeric (Required)
Additional Charges to added(if any).
disablerates boolean (Required)
Flag to disable rates while mapping derived rate plan combination.
disableavailablity boolean (Required)
Flag to disable inventory while mapping derived room/inventory combination.
extrarates
object (Required)
Rates for Extra Adult and Child Rates.
type
enum (Required)
Three types of Extra Rates.
defaultadultrate
numeric (Required)
Default Extra Adult Rate (applicable only for the channel's with support, for example, Agoda).
defaultchildrate
numeric (Required)
Extra Child Rate(applicable only for the channels with support, for example, Agoda).
fixedminstay object (Required)
Fixed amount for minimum stay.
fixed
boolean (Required)
If it supports fixed minimum stay or not.
minstay numeric (Required)
Number of days(Value for fixed number of days).
channelextrainfo object (Optional)
Extra information associated with the channel.
Status string
Indicates the result of the API call.
Status string
Indicates the result of the API call, which will be always "Failed" in case of an error response.
Errors array
Array that contains details about any errors that occurred during the API call. Each object in the Errors array contains the following properties:
Code string
Specific error code that helps identify the type of error.
ShortText string
A short description of the error.
The Flow of the Channel Password Setup -
Step 1 - Add Traveloka as a channel for which the Setup is to be done.
Step 2 - Add the valid data/values for multiple fields related to the Channel password setup process.
Step 3 - Submit all the data. (If the channel password setup is successfully done, the system will acknowledge with a message - "Success". And in case of failure, system will acknowledge with an error message.)
This Review API is only supported for Booking.com only.
Use the correct OTA code for implementation: Booking.com Channel ID = 19.
Review is the way to share your stay experience with others, and it can be used not only by future travelers but also by competing hotels to see what others are saying about them so that they may improve their services.
People are more likely to book a room in a hotel that has a large number of reviews. They always keen to get an idea of what the experience will be like before actually booking it.
For hoteliers, positive reviews and the customer satisfaction are most important factors because they can encourage the business.
Messaging refers to the direct communication between properties and the guests through the messages. With the help of messaging, customers with or without booking can ask questions or communicate to the properties.
https://connect.su-api.com/SUAPI/jservice/OTA_RatePlanMap{
"hotelid": "P5",
"action": "setup",
"channelid": 189,
"channelhotelid": "123",
"roomid": "205170",
"rateid": "2051701A",
"channelroomid": "20101986",
"channelrateid": "20101986A",
"pricing": [
{
"applicablenoofguest": 1,
"multiplier": 1.1,
"surcharge": 12
},
{
"applicablenoofguest": 2,
"multiplier": 0.5,
"surcharge": 10
}
],
"disablerates": false,
"disableavailablity": false,
"extrarates": {
"type": "eac",
"defaultadultrate": 150,
"defaultchildrate": 110
},
"fixedminstay": {
"fixed": false,
"minstay": 10
},
}{
"Status": "Success"
}{
"Status": "Failed",
"Errors": [
{
"Code": "895",
"ShortText": "HotelName: Property content is required"
}
]
}{
"channelmapping": [
{
"type": "nonmanagable",
"rateplan": "Double Room-RateplanCode",
"channelroomname": "Double Room",
"channelroomid": "201547892",
"channelratename": "Basic rate",
"channelrateid": "207799965",
"mappingstring": "201547892####207799965"
},
{
"type": " Managable",
"rateplan": "Double Room-RateplanCode",
"channelroomName": "Double Room",
"channelroomid": "201547892",
"channelratename": "RateplanCode",
"channelrateid": "207799965A",
"mappingstring": "201547892####207799965A"
},
{
"type": "nonmanagable",
"rateplan": "Double Room-RateplanCode23()",
"channelroomname": "Double Room",
"channelroomid": "201547892",
"channelratename": "RateplanCode23",
"channelrateid": "207799974",
"mappingstring": "201547892####207799974"
},
{
"type": "Managable",
"rateplan": "Double Room-RateplanCode23()",
"channelroomname": "Double Room",
"channelroomid": "201547892",
"channelratename": "RateplanCode23",
"chaneelrateid": "207799974A",
"mappingstring": "201547892####207799974A"
},
{
"type": "nonmanagable",
"rateplan": "Double Room-Non-refundable()",
"channelroomname": "Double Room",
"channelroomid": "201547892",
"channelratename": "Non-refundable",
"channelrateid": "212431700",
"mappingstring": "201547892####212431700"
}
],
"Status": "Success"
}{
"Status": "Failed",
"Errors": [
{
"Code": "895",
"ShortText": "HotelName: Property content is required"
}
]
}https://connect.su-api.com/SUAPI/jservice/OTA_Setup{
"hotelid": "AWSTEST",
"action": "setup",
"channelid": 19,
"status": "Active",
"channelhotelid": "test_test",
"pricingmodel": "OBP",
"currency": "USD",
"convertrates": true,
"defaultmultiplier": 1,
"defaultsurcharge": 0,
"connection_name": "Test 1"
}{
"Channel Mapping": [
{
"type": "nonmanagable",
"rateplan": "Double Room-RateplanCode",
"channelroomname": "Double Room",
"channelroomid": "201547892",
"channelratename": "Basic rate",
"channelrateid": "207799965",
"mappingstring": "201547892####207799965"
},
{
"type": " Managable",
"rateplan": "Double Room-RateplanCode",
"channelroomName": "Double Room",
"channelroomid": "201547892",
"channelratename": "RateplanCode",
"channelrateid": "207799965A",
"mappingstring": "201547892####207799965A"
},
{
"type": "nonmanagable",
"rateplan": "Double Room-RateplanCode23()",
"channelroomname": "Double Room",
"channelroomid": "201547892",
"channelratename": "RateplanCode23",
"channelrateid": "207799974",
"mappingstring": "201547892####207799974"
},
{
"type": "Managable",
"rateplan": "Double Room-RateplanCode23()",
"channelroomname": "Double Room",
"channelroomid": "201547892",
"channelratename": "RateplanCode23",
"chaneelrateid": "207799974A",
"mappingstring": "201547892####207799974A"
},
{
"type": "nonmanagable",
"rateplan": "Double Room-Non-refundable()",
"channelroomname": "Double Room",
"channelroomid": "201547892",
"channelratename": "Non-refundable",
"channelrateid": "212431700",
"mappingstring": "201547892####212431700"
}
],
"Status": "Success"
}{
"Status": "Failed",
"Errors": [
{
"Code": "895",
"ShortText": "HotelName: Property content is required"
}
]
}https://connect.su-api.com/SUAPI/jservice/OTA_Setup{
"hotelid": "P5",
"action": "setup",
"channelid": 9,
"status": "Active",
"channelhotelid": "4746650",
"pricingmodel": "OBP",
"currency": "USD",
"convertrates": true,
"excludefees": true,
"markdowntax": 10,
"defaultmultiplier": 1,
"defaultsurcharge": 0
}https://connect.su-api.com/SUAPI/jservice/OTA_Setup{
"hotelid": "P5",
"action": "setup",
"channelid": 189,
"status": "Active",
"channelhotelid": "4746650",
"currency": "USD",
"convertrates": true,
"defaultmultiplier": 1,
"defaultsurcharge": 0
}{
"channelmapping": [
{
"rateplan": "1 Bed in 4-Bed Dormitory - Air Conditioning-STANDARD RATE",
"channelroomname": "1 Bed in 4-Bed Dormitory - Air Conditioning",
"channelroomid": "10632338",
"channelratename": "STANDARD RATE",
"channelrateid": "2545504",
"mappingstring": "10632338####2545504"
},
{
"rateplan": "1 Person in 4-Bed Dormitory - Female Only-STANDARD RATE",
"channelroomname": "1 Person in 4-Bed Dormitory - Female Only",
"channelroomid": "10632345",
"channelratename": "STANDARD RATE",
"channelrateid": "2545504",
"mappingstring": "10632345####2545504"
},
{
"rateplan": "Double (Fan Room)-STANDARD RATE",
"channelroomname": "Double (Fan Room)",
"channelroomid": "12478356",
"channelratename": "STANDARD RATE",
"channelrateid": "2545504",
"mappingstring": "12478356####2545504"
},
{
"rateplan": "1 Person in 4-Bed Dormitory - Mixed-STANDARD RATE",
"channelroomname": "1 Person in 4-Bed Dormitory - Mixed",
"channelroomid": "4440251",
"channelratename": "STANDARD RATE",
"channelrateid": "2545504",
"mappingstring": "4440251####2545504"
}
],
"Status": "Success"
}{
"Status": "Failed",
"Errors": [
{
"Code": "895",
"ShortText": "HotelName: Property content is required"
}
]
}https://connect-sandbox.su-api.com/SUAPI/jservice/reportingAirBnB is a prominent online marketplace and hospitality service platform that allows users to rent out their homes or spare rooms to guests. This segment provides all reportings related to AirBnB.
To create a property on Booking.com via Su, the property must first be linked to a contract.
New Accommodation Partners
If the accommodation partner is new to Booking.com, use the "Create Contract" API to establish a contract with Booking.com. This will generate a legal entity number, which will automatically be linked to the Su property.
Existing Accommodation Partners
If the accommodation partner already has a contract with Booking.com, use the "Link Contract" API to associate the existing contract with the Su property.
Multiple Properties with the Same Legal Entity Number
If the accommodation partner wants to use the same legal entity number across multiple properties, ensure all properties are created under the same chain. In this case, the contract only needs to be linked to one of their properties, and there is no need to link the contract to each property individually.
The required child node reservation_notif_id of request contains the reservation notification id for which they want to report invalid CC.
This node should contain cc_is_invalid to report invalid CC.
Can be reported immediately after the reservation is made, up until midnight (00:00) on the day of check-in.
{
"hotelid": "new1",
"reservation_notif_id": "155411226779361384952",
"report": "cc_is_invalid"
}{
"Status": "Fail",
"Errors": [{
"Code": "400",
"ShortText": "Invalid HotelCode (P10)"
}]
}{
"Status":"enqueued"
}none - Not set
none - Not set
hotelid alphanumeric (Required)
Specifies the required node hotelid contains the IT provider's hotel id for which the provider wishes to add mapping information.
action enum (Required)
Defines the status of the channel connection in the system.
channelid numeric (Required)
Specifies the Channel Code for OTA in Su.
status string (Required)
Defines the status of the channel connection in the system.
channelhotelid alphanumeric (Required)
Specifies the unique hotel ID used in the external distribution channel or PMS (Property Management System).
currency string (Required)
Specifies the default currency code used for pricing.
convertrates boolean (Optional)
Indicates whether the API should automatically convert prices into the configured currency.
defaultmultiplier number (Optional)
Defines the default multiplier value applied in rateplan mapping.
defaultsurcharge number (Optional)
Specifies the default surcharge value applied in rateplan mapping.
pricingmodel string (Required)
Defines pricing model (for example, OBP, RP).
connection_name string (Optional)
Provides a unique name for the hotel connection to identify it easily in dashboards and reports.
channelmapping array of objects
List of room and rate plan mapping entries.
Each object contains the following fields:
mappedname string
The combined name of the room type and rate plan.
mapping_rateplan string
The short internal code for the mapped rate plan.
mappingformula string
The formula combining the room type ID and rate plan ID using #### as a separator.
rateplan_id string
The internal identifier for the rate plan.
rateplanname string
The name of the rate plan (e.g., "Room Only", "Room and Breakfast").
rateplan_code string
The external or legacy system code for the rate plan (may be empty).
roomtype_id string
The internal identifier for the room type.
roomtypename string
The name of the room type.
type string
Indicates whether the room is manageable or nonmanageable.
rateplan string
The full descriptive name combining the room and rate plan.
channelroomname string
The room name as it appears on the external channel.
channelroomid string
The room ID used by the external channel.
channelratename string
The rate plan name used by the external channel.
channelrateid string
The rate plan ID on the external channel.
mappingstring string
A unique mapping string, typically identical to mappingformula.
fixed_occupany string
Indicates if the room has a fixed occupancy. Usually empty.
is_child string
Indicates if the mapping is for a child-specific room or rate.
Status string
Indicates the result of the API call.
Status string
Indicates the result of the API call, which will be always "Failed" in case of an error response.
Errors array
Array that contains details about any errors that occurred during the API call. Each object in the Errors array contains the following properties:
Code string
Specific error code that helps identify the type of error.
ShortText string
A short description of the error.
Su Review API allows delivery of guest reviews to property.
Reviews only shared for guests with booking.
API applicable for supported channel(s).
The reviews received from OTA are delivered to partner by post method. Reviews are posted to an endpoint provided by partner. Please note reviews can only be delivered to a single dedicated endpoint. Upon receipt, partners will need to filter reviews based on property ID.
hotel_id alphanumeric
Specifies the hotel ID for the property.
channel_id string
The identifier of the connected channel (e.g., Agoda, Booking.com).
channel_property_id string
Specifies the channel-specific hotel ID
channel_review_id string
Specifies the channel-specific review for the property.
review_title string
Specifies the title of review for the property.
review_description string
Specifies the description for the review.
review_negative_description string
Specifies the negative description for the review.
review_score object
An object containing the rating scores given by the guest.
cleanliness integer
Rating for cleanliness (scale typically 1–5).
location integer
Rating for location (scale typically 1–5).
overall integer
Overall rating score (scale can vary, e.g., 1–100).
review_type string
Specifies the type of review.
review_status string
Indicates the status of the review.
review_date string
The date when the review was created. Format: YYYY-MM-DD.
is_eligible_to_respond boolean
Indicates whether the host is allowed to respond to the review.
reviewee_name string
The name of the host being reviewed.
Status string
Indicates the result of the API call.
Partners can reply to guest reviews on the supported channel, i.e., Booking.com.
POST
hotel_id alphanumeric (Required)
Specifies the hotel ID for the property.
channel_id alphanumeric (Required)
Identifier of the distribution channel (OTA).
channel_property_id alphanumeric (Required)
Specifies the channel-specific hotel ID.
channel_review_id string (Required)
Specifies the channel-specific review ID
review_reply string (Required)
Specifies the reply from the partner for the review.
Status string
Indicates the result of the API call.
Data object
The response data, the root element.
Message string
The message in the response.
Code string
Specific error code that helps identify the type of error.
ShortText string
A short description of the error.
Indicates channel room id and rate id.
Status string
Indicates the result of the API call.
Messages can be from guest with a booking or without a booking.
Only available for supported channel(s).
Only available via API.
The messages received from OTA are delivered to partner by post method. Messages are posted to an endpoint provided by partner. Please note messages can only be delivered to a single dedicated endpoint. Upon receipt, partners will need to filter messages based on property ID.
END POINT: Please provide endpoint for messages delivery.
Authorization String: Partner to allocate with Basic Authentication credentials.
Request
PUSH
IT Provider
STAAH
message string (Required)
The original message content received from OTA.
guestid string (Required)
The unique guest ID as assigned by the provider (OTA) upon creation.
ID can be both numeric, alphanumeric and may have special character such as hyphen ( - ).
bookingid string (Required)
Booking id of the customer’s booking.
Booking id can be both numeric, alphanumeric and may have special character such as hyphen ( - ).
For Airbnb, if communication started before booking is made, the parameter will be the thread ID.
listingid string (Required)
Property id of the hotel at the time of listing (Channel Hotel ID).
bookingflag string (Required)
The flag of the booking.
Values can be either B or T (B = Booking, T = Thread).
Note if there is no booking ID, the value will the same for both booking and thread ID.
messageid string (Required)
Message id of the message delivered from the OTA. Generated while delivering it from OTA.
ID can be both numeric, alphanumeric and may have special character such as hyphen ( - ).
channel_id string (Required)
Id of the channel through which the message delivered. Generated while delivering message from OTA.
Airbnb Channel ID: 244 Booking.com ID: 19
Expedia: 9
threadid string (Required)
The thread id created when communication takes place between guest and client.
ID can be both numeric, alphanumeric and may have special character such as hyphen ( - ).
This object contains all the details of the users and their roles. There are two arrays users and roles in this object.
It is the user ID assigned by OTA to both Guest and Host communicating. It includes the details on user role and id. Role can be Owner, guest, co host, etc.
roles array contains all the different roles and the details which are involved in the messaging.
role string (Required)
Role of the user.
user_ids string (Required)
User id of the specific role and user combination.
users array contains all the user and their details such as name, location, preferred_locale and ids.
first_name string (Required)
First name of the user.
location string (Required)
Location of the user.
preferred_locale string (Required)
Preferred language of the user.
id string (Required)
Id of the user and role combination.
This object contains all the details of the booking for which the messaging is initiated by either property or guest. Details allocated from OTA for which guest looking for and communicating with host.
expected_payout_amount_accurate string (Required)
Accurate amount which is expected to be paid for the booking.
checkout_date string (Required)
Check out date for the booking.
number_of_infants string (Required)
Number of infants attached to the booking.
listing_name string (Optional)
Name of the listing for which the booking was made.
number_of_adults string (Optional)
Total number of adults attached to the booking.
reservation_confirmation_code string (Optional)
Date when the reservation got confirmed.
number_of_children string (Required)
Number of children attached to the booking.
nights string (Required)
Total number of nights in the booking.
listing_id string (Required)
Hotel id / Property id / listing id of the property allocated by OTA.
checkin_date string (Required)
Date when the checkin will happen.
number_of_guests string (Required)
Total number of guests.
The response messages will be delivered to respective OTA accordingly.
Request
POST
STAAH
IT Provider
POST
hotelid / hotelcode string (Required)
Su property ID.
channelcode string (Required)
Channel Code.
message string (Required)
The message replied from property to OTA.
threadid string (Required for Airbnb)
Thread id of the conversation (Required for Airbnb only)
guestid string (Required for Airbnb)
Guest id generated when communication occurs guest and property (Required for Airbnb only)
bookingid string (Required for Booking.com and Expedia)
Booking id of the Booking
listingid string (Required)
Hotel id / Property id / listing id of the property allocated by OTA.
This error will be received if provided with incorrect hotelid / hotelcode or required element is missing.
244
Airbnb
19
Booking.com
9
Expedia
Retrieve the ARR (Application Request Routing) availability payload.
Compress the payload using gzip file format.
Perform base64 encoding on the gzip compressed data.
Obtain the encoded string resulting from the base64 encoding process.
Set the encoded string as the value for the "data" payload field.
POST
Su provides this endpoint CancelReservationAB for retrieving details of AirBnB canceled reservations.
POST
hotelid string (Required)
Unique identifier for the hotel.
request_for string (Required)
Reason for the request.
channel_bookingid string (Required)
Unique identifier assigned to a specific booking made through a particular distribution channel.
Sample Success Response: Accepted
Sample Success Response: Cancelled by Host
Error
Error: Response for Notification
You can report Cancellation due to Invalid CC booking for a specific hotel id with the reservation notification id.
POST
hotelid alphanumeric (Required)
The unique property ID as assigned by the provider upon creation of the property.
reservation_notif_id alphanumeric (Required)
The notification id of the reservation.
report alphanumeric (Required)
The name of the report.
You can report No Show booking for a specific hotel id with the reservation notification id. Property has up to 7 days post check-in to action No Show for Go-MMT and 48 hours' time for Booking.com.
POST
hotelid alphanumeric (Required)
The unique property ID as assigned by the provider upon creation of the property.
reservation_notif_id alphanumeric (Required)
The notification id of the reservation.
report alphanumeric (Required)
The name of the report.
Sample Success Response
Get the Marketing insight reports from the booking.com
POST
hotelid alphanumeric (Required)
The unique property ID as assigned by the provider upon creation of the property.
channelhotelid alphanumeric (Required)
The unique property ID as assigned by the channel.
report alphanumeric (Required)
The name of the report.
https://connect.su-api.com/SUAPI/jservice/OTA_RatePlanMap{
"hotelid": "NT7",
"action": "setup",
"channelid": 386,
"status": "Active",
"channelhotelid": "123456789",
"roomid": "1111",
"rateid": "1",
"derivedrateids":
[
"ROO"
],
"channelroomid": "TRPPSV",
"channelrateid": "RB",
"pricing":
[
{
"applicablenoofguest": 1,
"multiplier": 1,
"surcharge": 10
},
{
"applicablenoofguest": 2,
"multiplier": 2,
"surcharge": 20
}
],
"defaultminimumnight": 3,
"extrarates":
{
"type": "eac",
"defaultadultrate": 1,
"defaultchildrate": 2
},
"fixedminstay":
{
"fixed": true,
"minstay": 4
}
}{
"Status": "Success"
}{
"Status": "Failed",
"Errors": [
{
"Code": "895",
"ShortText": "HotelName: Property content is required"
}
]
}https://connect.su-api.com/SUAPI/jservice/OTA_RatePlanMap{
"hotelid": "P5",
"action": "setup",
"channelid": 19,
"channelhotelid": "123",
"roomid": "205170",
"rateid": "2051701",
"derivedrateids": [
"NRF",
"BAR"
],
"channelroomid": "20101986A",
"channelrateid": "20101986A",
"pricing": [
{
"applicablenoofguest": 1,
"multiplier": 1.1,
"surcharge": 11
},
{
"applicablenoofguest": 2,
"multiplier": 0.5,
"surcharge": 10
}
],
"disablerates": false,
"disableavailablity": false,
"fixedminstay": {
"fixed": false,
"minstay": 10
},
"channelextrainfo": {}
}{
"Status": "Success"
}{
"Status": "Failed",
"Errors": [
{
"Code": "895",
"ShortText": "HotelName: Property content is required"
}
]
}{
"channelmapping": [
{
"fixed_occupany": "",
"is_child": "",
"mappedname": "Triple Partial Sea View (Manageable)-Room and Breakfast",
"mapping_rateplan": "RB",
"mappingformula": "TRPPSV####RB",
"rateplan_code": "",
"rateplan_id": "RB",
"rateplanname": "Room and Breakfast",
"roomtype_id": "TRPPSV",
"roomtypename": "Triple Partial Sea View (Manageable)",
"type": "manageable",
"rateplan": "Triple Partial Sea View (Manageable)-Room and Breakfast",
"channelroomname": "Triple Partial Sea View (Manageable)",
"channelroomid": "TRPPSV",
"channelratename": "Room and Breakfast",
"channelrateid": "RB",
"mappingstring": "TRPPSV####RB"
},
{
"fixed_occupany": "",
"is_child": "",
"mappedname": "Triple Partial Sea View (Manageable)-Room and Breakfast Non-Ref",
"mapping_rateplan": "RBNR",
"mappingformula": "TRPPSV####RBNR",
"rateplan_code": "",
"rateplan_id": "RBNR",
"rateplanname": "Room and Breakfast Non-Ref",
"roomtype_id": "TRPPSV",
"roomtypename": "Triple Partial Sea View (Manageable)",
"type": "manageable",
"rateplan": "Triple Partial Sea View (Manageable)-Room and Breakfast Non-Ref",
"channelroomname": "Triple Partial Sea View (Manageable)",
"channelroomid": "TRPPSV",
"channelratename": "Room and Breakfast Non-Ref",
"channelrateid": "RBNR",
"mappingstring": "TRPPSV####RBNR"
},
{
"fixed_occupany": "",
"is_child": "",
"mappedname": "Triple Partial Sea View (Non-Manageable)-Room Only Opaque",
"mapping_rateplan": "ROO",
"mappingformula": "TRPPSV####ROO",
"rateplan_code": "",
"rateplan_id": "ROO",
"rateplanname": "Room Only Opaque",
"roomtype_id": "TRPPSV",
"roomtypename": "Triple Partial Sea View (Non-Manageable)",
"type": "nonmanageable",
"rateplan": "Triple Partial Sea View (Non-Manageable)-Room Only Opaque",
"channelroomname": "Triple Partial Sea View (Non-Manageable)",
"channelroomid": "TRPPSV",
"channelratename": "Room Only Opaque",
"channelrateid": "ROO",
"mappingstring": "TRPPSV####ROO"
},
{
"fixed_occupany": "",
"is_child": "",
"mappedname": "Triple Partial Sea View (Non-Manageable)-Room Only Non-Ref Opaque",
"mapping_rateplan": "RONRO",
"mappingformula": "TRPPSV####RONRO",
"rateplan_code": "",
"rateplan_id": "RONRO",
"rateplanname": "Room Only Non-Ref Opaque",
"roomtype_id": "TRPPSV",
"roomtypename": "Triple Partial Sea View (Non-Manageable)",
"type": "nonmanageable",
"rateplan": "Triple Partial Sea View (Non-Manageable)-Room Only Non-Ref Opaque",
"channelroomname": "Triple Partial Sea View (Non-Manageable)",
"channelroomid": "TRPPSV",
"channelratename": "Room Only Non-Ref Opaque",
"channelrateid": "RONRO",
"mappingstring": "TRPPSV####RONRO"
},
{
"fixed_occupany": "",
"is_child": "",
"mappedname": "Triple Partial Sea View (Manageable)-Room Only Non-Ref",
"mapping_rateplan": "RONR",
"mappingformula": "TRPPSV####RONR",
"rateplan_code": "",
"rateplan_id": "RONR",
"rateplanname": "Room Only Non-Ref",
"roomtype_id": "TRPPSV",
"roomtypename": "Triple Partial Sea View (Manageable)",
"type": "manageable",
"rateplan": "Triple Partial Sea View (Manageable)-Room Only Non-Ref",
"channelroomname": "Triple Partial Sea View (Manageable)",
"channelroomid": "TRPPSV",
"channelratename": "Room Only Non-Ref",
"channelrateid": "RONR",
"mappingstring": "TRPPSV####RONR"
},
{
"fixed_occupany": "",
"is_child": "",
"mappedname": "Triple Partial Sea View (Non-Manageable)-Room and Breakfast Non-Ref Opaque",
"mapping_rateplan": "RBNRO",
"mappingformula": "TRPPSV####RBNRO",
"rateplan_code": "",
"rateplan_id": "RBNRO",
"rateplanname": "Room and Breakfast Non-Ref Opaque",
"roomtype_id": "TRPPSV",
"roomtypename": "Triple Partial Sea View (Non-Manageable)",
"type": "nonmanageable",
"rateplan": "Triple Partial Sea View (Non-Manageable)-Room and Breakfast Non-Ref Opaque",
"channelroomname": "Triple Partial Sea View (Non-Manageable)",
"channelroomid": "TRPPSV",
"channelratename": "Room and Breakfast Non-Ref Opaque",
"channelrateid": "RBNRO",
"mappingstring": "TRPPSV####RBNRO"
},
{
"fixed_occupany": "",
"is_child": "",
"mappedname": "Triple Partial Sea View (Manageable)-Room Only",
"mapping_rateplan": "RO",
"mappingformula": "TRPPSV####RO",
"rateplan_code": "",
"rateplan_id": "RO",
"rateplanname": "Room Only",
"roomtype_id": "TRPPSV",
"roomtypename": "Triple Partial Sea View (Manageable)",
"type": "manageable",
"rateplan": "Triple Partial Sea View (Manageable)-Room Only",
"channelroomname": "Triple Partial Sea View (Manageable)",
"channelroomid": "TRPPSV",
"channelratename": "Room Only",
"channelrateid": "RO",
"mappingstring": "TRPPSV####RO"
},
{
"fixed_occupany": "",
"is_child": "",
"mappedname": "Triple Partial Sea View (Non-Manageable)-Room and Breakfast Opaque",
"mapping_rateplan": "RBO",
"mappingformula": "TRPPSV####RBO",
"rateplan_code": "",
"rateplan_id": "RBO",
"rateplanname": "Room and Breakfast Opaque",
"roomtype_id": "TRPPSV",
"roomtypename": "Triple Partial Sea View (Non-Manageable)",
"type": "nonmanageable",
"rateplan": "Triple Partial Sea View (Non-Manageable)-Room and Breakfast Opaque",
"channelroomname": "Triple Partial Sea View (Non-Manageable)",
"channelroomid": "TRPPSV",
"channelratename": "Room and Breakfast Opaque",
"channelrateid": "RBO",
"mappingstring": "TRPPSV####RBO"
}
],
"Status": "Success"
}{
"Status": "Failed",
"Errors": [
{
"Code": "895",
"ShortText": "HotelName: Property content is required"
}
]
}https://connect.su-api.com/SUAPI/jservice/OTA_Setup{
"hotelid": "AWSTEST",
"action": "setup",
"channelid": 386,
"status": "Active",
"channelhotelid": "123456789",
"defaultmultiplier": 1,
"defaultsurcharge": 0,
"currency": "USD",
"convertrates": true,
"pricingmodel": "OBP",
"connection_name": "Traveloka V2 Test"
}{
"status": "Success"
}{
"Status": "Success",
"Warnings": [],
"Errors": [],
"Message": "Review replied successfully",
"Ruid": ""
}{
"Errors": {
"Code": "558",
"ShortText": "hotel_id: Invalid HotelCode (MEE1)"
},
"Status": "Fail"
}{
"Errors": {
"Code": "947",
"ShortText": "Property is inactive"
},
"Status": "Fail"
}{
"Errors": {
"Code": "573",
"ShortText": "channel-mapping not found for this property!"
},
"Status": "Fail"
}{
"Status": "Fail",
"Errors": [],
"Message": "",
"Ruid": "e527c45a-f23a-4ee4-beb2-7d21f7699b1",
}Please provide endpoint for reviews delivery.
Authorization String: Partner has to provide Authorization credentials.{
"hotel_id": "AWSTEST",
"channel_id": "19",
"channel_property_id": "123456",
"channel_review_id": "19_HJDHDH",
"review_title": "Great stay!",
"review_description": "Loved the location and service.",
"review_negative_description": "Room was a bit small.",
"review_score": {
"cleanliness": 5,
"location": 5,
"overall": 55
},
"review_type": "guest_to_host",
"review_status": "published / created / in_review",
"review_date": "2025-01-01",
"is_eligible_to_respond": true,
"reviewee_name": "Vishal Potter"
}https://connect-sandbox.su-api.com/SUAPI/jservice/review/reply{
"hotel_id": "Test256",
"channel_id": "19",
"channel_property_id": "12837615",
"channel_review_id": "19_xyz",
"review_reply": "Thank you for your feedback!"
}{
"status": "Success",
"response": "Successfully posted"
}{
"status": "Success",
"response": "Successfully posted",
"ota_tracking_id": "44a135d0-dd8f-49e2-99be-a3179c4"
}{
"status":"Fail",
"response":"No property found for given property id"
}{
"status": "Fail",
"response": [
{
"message": "Authentication failed"
}
],
"ota_tracking_id": ""
}{
"message": "Hello, How are you? How acan we help you.?",
"guestid": "320338222",
"bookingid": "ABCAJKYSJ8",
"listingid": "47522522",
"bookingflag": "B",
"messageid": "9623318922",
"channel_id": "244",
"threadid": "991462322",
"user_details": {
"roles": [{
"role": "owner",
"user_ids": [
22533556
]
},
{
"role": "guest",
"user_ids": [
311357532
]
},
{
"user_ids": [],
"role": "cohost"
}
],
"users": [{
"first_name": "Joseph",
"location": "Cambridge, United Kingdom",
"preferred_locale": "en-GB",
"id": 22533556
},
{
"id": 311357532,
"first_name": "Chris",
"location": "England, United Kingdom",
"preferred_locale": "en"
}
]
},
"booking_details": {
"expected_payout_amount_accurate": "451.00",
"checkout_date": "2021-07-11",
"number_of_infants": 0,
"non_response_at": null,
"listing_name": "Modern housewith Parking",
"number_of_adults": 3,
"reservation_confirmation_code": "ABCAJKYSJ8",
"number_of_children": 0,
"nights": 4,
"listing_id": "47501536",
"checkin_date": "2021-07-07",
"listing_id_str": "47511536",
"number_of_guests": 3
},
"attachment": [],
"hotelid": "abc123"
}{
"status": "Success"
}https://connect-sandbox.su-api.com/SUAPI/jservice/messagingAB
{
"hotelid": "new1",
"channelid": "244",
"message": "Hello, How can we help?",
"threadid": "802166080",
"guestid": "190242146",
"bookingid": "802166080",
"listingid": "38740678"
}https://connect.su-api.com/SUAPI/jservice/OTA_RatePlanMap{
"hotelid": "P5",
"action": "setup",
"channelid": 9,
"channelhotelid": "123",
"roomid": "205170",
"rateid": "2051701A",
"derivedrateids": [
"NRF",
"BAR"
],
"channelroomid": "20101986A",
"channelrateid": "20101986A",
"pricing": [
{
"applicablenoofguest": 1,
"multiplier": 1.1,
"surcharge": 11
},
{
"applicablenoofguest": 2,
"multiplier": 0.5,
"surcharge": 10
}
],
"disablerates": false,
"disableavailablity": false,
"fixedminstay": {
"fixed": false,
"minstay": 10
},
}{
"Status": "Success"
}{
"Status": "Failed",
"Errors": [
{
"Code": "895",
"ShortText": "HotelName: Property content is required"
}
]
}https://connect-sandbox.su-api.com/SUAPI/jservice/CancelReservationABhttps://connect-sandbox.su-api.com/SUAPI/jservice/reportinghttps://connect-sandbox.su-api.com/SUAPI/jservice/reportinghttps://connect-sandbox.su-api.com/SUAPI/jservice/reporting.php
Replace {Authorization String} with the API key given by STAAH
https://connect-sandbox.su-api.com/SUAPI/jservice/bulkavailability
The required child node reservation_notif_id of request contains the reservation notification id for which they want to report invalid CC.
This node should contain cancel_reservation_invalid_cc to cancel booking due to invalid cc.
A property may cancel a reservation if the guest's credit card details are invalid and certain conditions are met.
A property must mark the booking with Invalid CC before requesting to cancel booking due to invalid cc. Once the booking is marked as Invalid CC, booking can be cancelled after 24 hours.
For bookings made within 48 hours of check in date, property can cancel the booking after 12 hours of reporting of invalid CC.
For same day check in and last-minute bookings, property can cancel the booking after 2 hours of reporting of invalid CC.
The required child node reservation_notif_id of request contains the reservation notification id for which they want to report invalid CC or guest no-show.
This node should contain is_no_show to report guest as no-show.
Property has up to 7 days post check in to action no show for Go-MMT and 48 Hours for Booking.com.
hotelid string (Required)
Unique identifier for the hotel.
request_for string (Required)
Reason for the request.
channel_bookingid string (Required)
Unique identifier assigned to a specific booking made through a particular distribution channel.
cancel_reason string (Required)
Reason for the booking cacellation.
message_to_guest string (Optional)
Message to the guest on booking cancellation.
message_to_airbnb string (Required)
Message to AirBnB on booking cancellation.
Sample Success Response
Error
Error: Fail
Error: Fail
{
"data":"{encoded_string}"
}{
"hotelid": "AWSTEST",
"request_for": "cancel_retrieve",
"channel_bookingid": "HMY5BWBYH5"
}
{
"status": "Success",
"data": {
"status": "accept",
"options": [],
"panelty": ""
}
}{
"status": "Success",
"data": {
"status": "cancelled_by_host",
"message": "Already cancelled by host"
}
}{
"Status": "Fail",
"Errors": [
{
"Code": "400",
"ShortText": "Invalid HotelCode (AWSTEST)"
}
]
}{
"hotelid": "new1",
"reservation_notif_id": "155411226779361384952",
"report": "cancel_reservation_invalid_cc"
}{
"Status": "Fail",
"Errors": [{
"Code": "400",
"ShortText": "Invalid HotelCode (P10)"
}]
}{
"Status":"enqueued"
}{
"hotelid": "new1",
"reservation_notif_id": "155411226779361384952",
"report": "is_no_show"
}{
"Status": "Fail",
"Errors": [{
"Code": "400",
"ShortText": "Invalid HotelCode (P10)"
}]
}{
"Status":"enqueued"
}{
"hotelid": "CRP1",
"channelhotelid": "123456999",
"report": "marketing_insight"
}{
"report_area": "New Plymouth",
"demand_data": [
{
"category_summary": "Most searches were looking for 8-30 days in the future",
"category_name": "book_window",
"stats": [
{
"key": "bookwindow_8_30",
"formatted_score": "20.93%",
"title": "8-30 days"
},
{
"key": "bookwindow_2_7",
"title": "2-7 days",
"formatted_score": "20.31%"
},
{
"title": "31-90 days",
"formatted_score": "18.58%",
"key": "bookwindow_31_90"
},
{
"formatted_score": "17.53%",
"title": "0-1 day",
"key": "bookwindow_0_1"
},
{
"key": "bookwindow_91",
"title": "91+ days",
"formatted_score": "16.56%"
},
{
"formatted_score": "6.09%",
"title": "No dates",
"key": "bookwindow_unknown"
}
],
"title": "Book window"
},
{
"category_summary": "Most searches were from couples",
"stats": [
{
"key": "traveller_couple",
"title": "Couple",
"formatted_score": "63.68%"
},
{
"formatted_score": "15.00%",
"title": "Family",
"key": "traveller_family"
},
{
"title": "Solo traveller",
"formatted_score": "11.19%",
"key": "traveller_solo"
},
{
"title": "Group",
"formatted_score": "10.13%",
"key": "traveller_group"
}
],
"category_name": "traveller_type",
"title": "Traveller type"
},
{
"title": "Domestic and international travellers",
"category_summary": "Most searches were made by domestic travellers",
"stats": [
{
"key": "origin_domestic",
"title": "Domestic",
"formatted_score": "67.41%"
},
{
"title": "International",
"formatted_score": "32.59%",
"key": "origin_international"
}
],
"category_name": "origin"
},
{
"category_summary": "Most searches were mobile searches",
"category_name": "device",
"stats": [
{
"title": "Mobile",
"formatted_score": "76.56%",
"key": "device_mobile"
},
{
"key": "device_web",
"formatted_score": "23.44%",
"title": "Desktop"
}
],
"title": "Device"
},
{
"category_summary": "Most searches were from New Zealand",
"stats": [
{
"formatted_score": "67.41%",
"title": "New Zealand",
"key": "nz"
},
{
"key": "au",
"title": "Australia",
"formatted_score": "7.68%"
},
{
"key": "us",
"formatted_score": "3.81%",
"title": "United States"
},
{
"title": "Germany",
"formatted_score": "3.27%",
"key": "de"
},
{
"title": "United Kingdom",
"formatted_score": "2.78%",
"key": "gb"
}
],
"category_name": "rank",
"title": "Top 5 countries"
},
{
"title": "Cancellation policy",
"category_summary": "Most guests staying in New Plymouth made free cancellation bookings",
"stats": [
{
"key": "policy_flexible",
"formatted_score": "60.06%",
"title": "Free cancellation"
},
{
"key": "policy_non_refundable",
"title": "Non-refundable",
"formatted_score": "34.97%"
},
{
"formatted_score": "4.97%",
"title": "Partially refundable",
"key": "policy_flexible_cost_to_cancel"
}
],
"category_name": "policy"
},
{
"stats": [
{
"title": "1 night",
"formatted_score": "53.83%",
"key": "1_day"
},
{
"key": "2_days",
"title": "2 nights",
"formatted_score": "27.98%"
},
{
"key": "3_7_days",
"formatted_score": "17.17%",
"title": "3-7 nights"
},
{
"title": "8-14 nights",
"formatted_score": "0.62%",
"key": "8_14_days"
},
{
"key": "15_plus_days",
"formatted_score": "0.41%",
"title": "15+ nights"
}
],
"category_name": "length_of_stay",
"category_summary": "Most searches were looking for a stay of 1 night",
"title": "Length of stay"
}
],
"report_date": "2024-02-07"
}{
"Status": "Fail",
"Errors": {
"Code": "891",
"ShortText": "Bad Request"
}
}{
"Status": "Fail",
"Errors": {
"Code": "879",
"ShortText": "Something Went Wrong"
}
}https://connect-sandbox.su-api.com/SUAPI/jservice/CancelReservationAB{
"hotelid": "AWSTEST",
"request_for": "cancel_update",
"channel_bookingid": "HMY5BWBYH5",
"cancel_reason": "123~~~132",
"message_to_guest": "Test message to guest",
"message_to_airbnb": "Test message to airbnb"
}{
"status": "Success",
"data": {
"status": "cancelled_by_host",
"message": "We have requested to Airbnb to cancelled the booking"
}
}{
"Status": "Fail",
"Errors": [
{
"Code": "400",
"ShortText": "Invalid HotelCode (AWSTEST)"
}
]
}{
"status": "Fail",
"data": {
"status": "error",
"message": "Reservation is not active and hence cannot be cancelled"
}
}Replace {Authorization String} with the API key given by STAAH
POST
hotelid string (Required)
Unique identifier for the hotel.
channel_bookingid string (Required)
Unique identifier assigned to a specific booking made through a particular distribution channel.
Sample Success Response
hotelid string (Required)
Unique identifier for the hotel.
channel_bookingid string (Required)
Unique identifier assigned to a specific booking made through a particular distribution channel.
Sample Success Response
POST
https://connect-sandbox.su-api.com/SUAPI/jservice/CancelReservationMeta
hotelid string (Required)
Unique identifier for the hotel.
channel_bookingid string (Required)
Unique identifier assigned to a specific booking made through a particular distribution channel.
Sample Success Response
Error
Error: Fail
Error: Fail
Update Contract API enables you to update an existing contract.
POST
hotel_id string (Required)
The unique property ID as assigned by the provider upon creation of the property.
legal_entity_id string (Required)
The identity of the legal entity.
additional_countries array (Required)
Contains the additional country or countries in which the Accommodation Partner has properties.
Status string
The status of the response.
Message string
The message in the response.
Ruid string
Specifies the unique request ID.
Data object
The response data.
The Partner Supply API uses the HTTP basic authentication scheme. This means you must include an Authorization header in each request, like so:
/Authorization: Basic {Authorization String}
POST
hotelid string (Required)
Unique identifier for the hotel.
channel_bookingid string (Required)
Unique identifier assigned to a specific booking made through a particular distribution channel.
Sample Success Response
Error
Fail
Resent Contract API allows you to resend the contract invitation to a specified hotel.
POST
hotel_id string (Required)
The unique property ID as assigned by the provider upon creation of the property.
legal_contact_email string (Required)
The Accommodation Partner's legal contact email.
legal_entity_id string (Required)
The identity of the legal entity.
Status string
This field indicates the success of the request.
Message string
The message in the response.
Ruid string
Specifies the unique request ID.
Data object
Contains the response data.
This endpoint is designed for new accommodation partners joining Booking.com. By using this API, partners can establish a contractual agreement, which will generate a legal entity number. This number will be automatically linked to the specified property, facilitating a seamless onboarding process for new listings.
POST
If you want to change or update property content, you should not close the property. You can make the necessary changes when open / bookable, with a few exceptions that you can only do in status XML: Being built.
Once your property is Open / bookable, you can change or update any property content via OTA_HotelDescriptiveContentNotif with the following exceptions:
The following can only be updated in XML: Being built status or for Test Hotel:
The endpoint allows users to create a new property by providing essential details, including the property name, category, physical location, check-in and check-out times, and other relevant information. Upon successful processing of the request, the endpoint will provide a unique property ID for the newly created property.
POST
https://connect-sandbox.su-api.com/SUAPI/jservice/TripIssueAB
{
"hotelid": "AWSTEST"
}[
{
"status": "Success",
"data": {
"541047223": {
"listings": []
}
}
},
{
"status": "Fail",
"message": "Rate plan details not found",
"data": {
"541047224": []
}
}
]
{
"hotelid": "AWSTEST",
"locationid": "541047223"
}{
"status": "Success",
"data": {
"541047223": {
"listings": {
"770788038129150148": {
"id": "770788038129150148",
"quality_standards": {
"state": {
"description": "No quality issue reported.",
"color": "green",
"value": "warn"
},
"metadata": [
{
"description": "Can appeal to reactivate the listing?",
"value": "No"
},
{
"description": "Listing suspension date",
"value": "2023-12-31"
}
]
},
"reservation_issues": [
{
"description": "Recent Trip issue",
"value": "Reservation ID HM84YN5FQ2",
"metadata": [
{
"description": "Details realted to Host Cancellation",
"value": [
"Cancellation beyond 30 days"
]
},
{
"description": "Details realted to Bed reviews",
"value": [
{
"description": "Overall Rateing : 3 *",
"value": []
},
{
"description": "Low Rating category wise",
"value": [
"Checkin : 2 *",
"Location : 1 *"
]
},
{
"description": "Negative Tags",
"value": [
"Smaller than expeaded",
"Needs maintance"
]
}
]
},
{
"description": "Details realted to Airbnb Policy violation",
"value": [
"Had to wait",
"Hard to get inside",
"Slow to respond"
]
}
]
},
{
"confirmation_code": "HMTBM8CCWW",
"description": "Recent Trip issue",
"value": "Reservation ID HMTBM8CCWW",
"metadata": [
{
"description": "Details realted to Bed reviews",
"value": [
{
"description": "Overall Rateing : 3 *",
"value": []
}
]
}
]
}
],
"issue_count": 3
},
"455596145924106974": {
"id": "455596145924106974",
"quality_standards": {
"state": {
"description": "No quality issue reported.",
"color": "green",
"value": "warn"
},
"metadata": [
{
"description": "Can appeal to reactivate the listing?",
"value": "No"
},
{
"description": "Listing suspension date",
"value": "2023-12-31"
}
]
},
"reservation_issues": [
{
"description": "Recent Trip issue",
"value": "Reservation ID HM84YN5FQ2",
"metadata": [
{
"description": "Details realted to Host Cancellation",
"value": [
"Cancellation beyond 30 days"
]
},
{
"description": "Details realted to Bed reviews",
"value": [
{
"description": "Overall Rateing : 3 *",
"value": []
},
{
"description": "Low Rating category wise",
"value": [
"Checkin : 2 *",
"Location : 1 *"
]
},
{
"description": "Negative Tags",
"value": [
"Smaller than expeaded",
"Needs maintance"
]
}
]
},
{
"description": "Details realted to Airbnb Policy violation",
"value": [
"Had to wait",
"Hard to get inside",
"Slow to respond"
]
}
]
},
{
"confirmation_code": "HMTBM8CCWW",
"description": "Recent Trip issue",
"value": "Reservation ID HMTBM8CCWW",
"metadata": [
{
"description": "Details realted to Bed reviews",
"value": [
{
"description": "Overall Rateing : 3 *",
"value": []
}
]
}
]
}
],
"issue_count": 3
}
}
}
}
}
{
"status": "Success",
"data": {
"541047223": {
"listings": []
}
}
}{
"Status": "Fail",
"Errors": [
{
"Code": "400",
"ShortText": "Invalid HotelCode (AWSTEST)"
}
]
}https://connect-sandbox.su-api.com/SUAPI/jservice/bdc/contract/updatehttps://connect-sandbox.su-api.com/SUAPI/jservice/bdc/contract/resend{
"hotelid": "AWSTEST",
"channel_bookingid": "169157227181657"
}{
"status": "Success",
"data": {
"status": "cancelled_by_host",
"message": "We have requested to Airbnb to cancelled the booking"
}
}{
"Status": "Fail",
"Errors": [
{
"Code": "400",
"ShortText": "Invalid HotelCode (AWSTEST)"
}
]
}Failhttps://connect-sandbox.su-api.com/SUAPI/jservice/ConfirmReservation
{
"hotelid": "AWSTEST",
"channel_bookingid": "170141886731331"
}{
"Status": "Success",
"Message": "Success"
}{
"Status": "Fail",
"Errors": [
{
"Code": "400",
"ShortText": "Invalid HotelCode (AWSTEST)"
}
]
}{
"Status": "Fail",
"Message": "Invalid Property Id."
}
Replace {Authorization String} with the API key given by STAAH
POST
hotelid string (Required)
Unique identifier for the hotel.
Sample Success Response
Error
Fail
hotel_id string (Required)
The unique property ID as assigned by the provider upon creation of the property.
legal_name string (Required)
The legal name of the Accommodation Partner company.
legal_contact_name string (Required)
The Accommodation Partner's legal contact name.
legal_contact_email string (Required)
The Accommodation Partner's legal contact email.
legal_contact_phone_number string (Required)
The Accommodation Partner's legal contact phone number.
Company_name string (Required)
The commercial name of the Accommodation Partner company.
city string (Required)
The city of the Accommodation Partner company.
country string (Required)
The country of the Accommodation Partner company.
street string (Required)
Name of the street.
total_number_of_properties string (Required)
The amount of properties connected to the Accommodation Partner.
zipcode string (Required)
The zipcode of the Accommodation Partner company.
website string (Required)
The website of the Accommodation Partner company.
contract_countries string (Required)
The countries in which the Accommodation Partner has properties.
language string (Required)
The preferred language in which the Accommodation Partner wants to communicate.
Status string
This field indicates the success of the request.
Message string
This field provides a user-friendly message regarding the operation performed.
Ruid string
Specifies the unique request ID.
data object
The response data.
legal_entity_id integer
The unique legal entity ID.
The property's physical address.
The property's geographical location (in longitude and latitude).
The property's LanguageCode
The following can be updated in any status that is not Open / bookable
Tax policies for VAT, City Tax, and TAX
NOTE: these restriction apply to OTA_HotelDescriptiveContentNotif. For modifications via the new [Property API][property-api-introduction], please see its list of [validation checks for updates.][property-api-validations-ga-patch]
If you need to change any of the preceding information, contact your local partner services (LPS) team.
These statuses shouldn't occur frequently, but can be part of a property's natural life-cycle.
Auto closed (availability)
We automatically closed the property because it has no rooms available for any dates in the next 365 days.
Replenish the property's availability, then re-open the property. We recommend specifying at least 12 months of availability for each property. Properties in this status can also go open bookable automatically within the next 24 hours after availability was replenished.
Closed (requested by hotel)
You or someone else temporarily closed the property, thereby hiding it from travelers on Booking.com.
Re-open the property (if the reasons for closing are removed).
XML: Auto closed content
We automatically closed the property because its content was modified in such a way that the content no longer passes our checks.
Run checks on the property's content to see what the problem is.
XML: Hotel is Duplicate
We closed the property because it is identical to an existing property.
The API will almost never return the following statuses. If it does, please advise the corresponding property partner to reach out to their Local Support team.
Auto closed (content)
Not to be confused with XML: Auto closed content.
Auto closed (geo)
-
Auto closed: Fraud
-
Being built (content)
Not to be confused with XML: Being built.
Being built (on hold)
Not to be confused with XML: Being built.
Being built
Not to be confused with XML: Being built.
hotel_id alphanumeric (Required)
The unique property ID as assigned by the provider upon creation of the property.
legal_entity_id string (Required)
The unique id for the legal entity associated with the hotel.
position object
Object containing geographical coordinates of the property.
latitude double (Required)
Latitude coordinates of the hotel location.
longitude double (Required)
Longitude coordinates of the hotel location.
check_in object
Object containing check-in times.
from enumerated string (Required)
Start time for check-in (required).
until enumerated string (Optional)
End time for check-in.
check_out object
Object containing check-out times.
from enumerated string (Optional)
Start time for check-out (optional).
until enumerated string (Required)
End time for check-out (required if check_out > from is specified).
property_name string (Required)
Name of the hotel property on Booking.com.
property_category integer (Required)
Category identifier for the hotel.
primary_language enumerated string (Optional)
Main preferred language spoken at the property.
languages_spoken array of enumerated strings (Optional)
Array of languages spoken at the property.
room_count integer (Required)
Number of sellable units/rooms available at the hotel.
floor_count integer (Optional)
The total number of floors in the building/hotel, excluding the underground floors.
stars string (Optional)
The number of stars, rating of the hotel.
target enumerated string (Required)
Specifies whether it is a test or production-ready property.
provider_property_id string (Optional)
Identifier for the property provider.
currency_code enumerated string (Optional)
The Booking.com defined currency for the property.
physical_address object (Required)
Object containing address details.
city_name string (Required)
City where the hotel is located.
country_code enumerated string (Required)
ISO code for the country (IN for India).
postal_code string (Optional)
Postal code of the hotel's location.
address_line string (Required)
Detailed address of the hotel.
display_address boolean (Optional)
Boolean indicating if the address should be displayed.
translations object
Object for multilingual support. Specifies the non-English translations of the physical address.
city_name string (Required)
Translated city name.
address_line string (Required)
Translated address line.
language_code enumerated string (Required)
Language code for translation.
property_name enumerated string (Required)
Name of the hotel property (translated) on Booking.com.
Any errors encountered from the Su side will be contained within an "Error" object.
Status string
The status of the response.
Data object
The response data, the root element.
property_id string
Specifies the property ID that was created.
Message string
The message in the response.
This endpoint retrieves detailed information about a specific property using its hotel_id and channel_hotel_id.
POST
hotel_id alphanumeric (Required)
The unique property ID as assigned by the provider upon creation of the property.
channel_hotel_id string (Required)
The unique id for the hotel on the specific channel.
Status string
The success or failure of the operation.
Ruid string
Specifies the unique request ID.
Data object
Contains detailed information about the property (the response data).
translations array (of objects)
List of translations for the property details..
position object
Object containing geographical coordinates of the property.
latitude double
Latitude coordinates of the hotel location.
longitude double
Longitude coordinates of the hotel location.
check_in object
Object containing check-in times.
from enumerated string
Start time for check-in.
until enumerated string
End time for check-in.
check_out object
Object containing check-out times.
from enumerated string
Start time for check-out.
until enumerated string
End time for check-out (required if check_out > from is specified).
property_name string
Name of the hotel property on Booking.com.
property_category integer
Category identifier for the hotel.
primary_language string
Main preffered language spoken at the property.
languages_spoken array (of strings)
List of languages spoken at the property.
room_count integer
Number of sellable units/rooms available at the hotel.
floor_count integer
The total number of floors in the building/hotel, excluding the underground floors.
currency_code enumerated string
The Booking.com defined currency for the property.
stars string
The number of stars, rating of the hotel.
target enumerated string
Specifies whether it is a test or production-ready property.
property_id string
Identifier for the property provider.
status string
Current status or condition of the property.
physical_address object
Object containing address details.
city_name string
City where the hotel is located.
country_code enumerated string
ISO code for the country (IN for India).
postal_code string
Postal code of the hotel's location.
address_line string
Detailed address of the hotel.
display_address boolean
Boolean indicating if the address should be displayed.
legal_entity_id string
The unique id for the legal entity associated with the hotel.
Message string
The message in the response.
Error Response Body Elements
Status string
Indicates the result of the API call, which will be always "Fail" in case of an error response.
Error array
Array that contains details about any errors that occurred during the API call. Each object in the Errors array contains the following properties:
Code string
Specific error code that helps identify the type of error.
ShortText string
A short description of the error.
Message string
A message providing more information about the error.
You can set multiple contacts with different contact types but with the same contact details.
POST
hotel_id alphanumeric (Required)
The unique property ID as assigned by the provider upon creation of the property.
channel_hotel_id string (Required)
The unique id for the hotel on the specific channel.
contacts object (Required)
An array of contact objects containing contact details.
contact_profiles object (Required)
A list of profiles associated with the contact (e.g., invoices, general).
type enumerated string (Required)
Specify the contact type.
address object
NOTE
The sub-attributes of the "address" object are required only when the "address" key is specified in the request. If the "address" key is omitted, these sub-attributes should not be included.
Contains the address details of the contact including country, city and postal code details.
city_name string (Required if address is specified)
The city name where the contact is located.
country_codeenumerated string (Required)
The ISO country code of the contact's location.
postal_code string (Required)
The postal code of the contact's location.
address_line string (Required)
The street address of the contact.
language_code enumerated string (Required)
The language code for the address.
contact_person object
Details about the contact person.
gender enumerated string (Optional)
Gender of the contact person.
name string (Required)
Full name of the contact person.
job_title enumerated string (Optional)
Job title of the contact person.
language_code string (Required)
Language code for the contact person (e.g., 'en-gb').
phones array (Required)
List of phone numbers associated with the contact.
phone_number string (Required)
The actual phone number (all international phone numbers).
phone_tech_type enumerated string (Required)
Technology type of the phone (for example, '1' for landline).
extension string (Optional)
Extension number for the phone, if applicable.
email string (Required)
Email address of the contact.
Status string
The status of the response.
Data object
The response data, the root element.
property_id string
Specifies the property ID that was created.
Message string
The message in the response.
Error array
Array that contains details about any errors that occurred during the API call. Each object in the Errors array contains the following properties:
Code string
Specific error code that helps identify the type of error.
ShortText string
Brief description of the error.
This endpoint allows partners to retrieve the current property settings for their accommodations on the Booking.com platform. It provides detailed information about various configurations, including guest requirements, pricing models, pet policies, and damage policies. This enables partners to effectively manage their properties and ensure compliance with their chosen operational guidelines.
POST
https://connect-sandbox.su-api.com/SUAPI/jservice/notificationAB
{
"hotelid": "AWSTEST"
}[
{
"status": "Success",
"data": {
"541047223": [
{
"notification_id": "QUREX0hPU1RfUEFZT1VUX0lORk86MzgzYTJmZTktYWRhNC0zY2VhLTk3MmYtMDZkMDA3OWVhMTU4",
"notification_type": "ADD_HOST_PAYOUT_INFO",
"title": "Add a payout method",
"subtitle": "Required to get paid",
"cta_url": "https://www.airbnb.com/account-settings/payments/payout-methods"
}
]
}
},
{
"status": "Fail",
"message": "Please login to continue.",
"data": {
"541047224": []
}
}
]{
"Status": "Fail",
"Errors": [
{
"Code": "400",
"ShortText": "Invalid HotelCode (AWSTEST)"
}
]
}{
"Status": "Fail",
"Errors": [
{
"Code": "400",
"ShortText": "Invalid HotelCode (AWSTEST)"
}
]
}
https://connect-sandbox.su-api.com/SUAPI/jservice/bdc/contract/create{
"hotel_id": "AWSTEST",
"legal_name": "Giovanni hotels BV",
"legal_contact_name": "Don Giovanni",
"legal_contact_email": "don.giovanni@hotel.com",
"legal_contact_phone_number": "+1234567890",
"company_name": "Giovanni hotels",
"city": "Amsterdam",
"country": "nl",
"street": "Streetstreet",
"total_number_of_properties": "2",
"zipcode": "1000AB",
"website": "https://www.besthotel.com",
"contract_countries": [
"fr",
"nl"
],
"language": "en"
}
{
"Status": "Success",
"Message": "Successfully generated property legal entity id",
"Ruid": "e527c45a-f23a-4ee4-beb2-7d21f7699b1b",
"Data": {
"legal_entity_id": 425500
}
}{
"Status": "Fail",
"Errors": [],
"Message": "Trying to create a duplicate account!, Trying to create a duplicate countries!",
"Ruid": "e527c45a-f23a-4ee4-beb2-7d21f7699b1b",
"data": {}
}https://connect-sandbox.su-api.com/SUAPI/jservice/bdc/property/create{
"hotel_id": "new1",
"legal_entity_id": "78775",
"position": {
"latitude": -36.8485,
"longitude": 174.7633
},
"check_in": {
"from": "12:30",
"until": "13:00"
},
"check_out": {
"from": "10:00",
"until": "10:30"
},
"property_name": "TP TEST hotel NZ",
"property_category": 30,
"primary_language": "en-nz",
"languages_spoken": [
"en-nz"
],
"room_count": 8,
"floor_count": 1,
"stars": "4",
"target": "test",
"provider_property_id": "test",
"currency_code": "NZD",
"physical_address": {
"city_name": "Auckland",
"country_code": "NZ",
"postal_code": "1010",
"address_line": "123 Queen Street",
"display_address": true
},
"translations": {
"city_name": "t1",
"address_line": "t2",
"language_code": "ca",
"property_name": "New"
}
}
{
"Status": "Success",
"Data": {
"property_id": 12905777
},
"Message": "Property created successfully"
}{
"Status": "Fail",
"Errors": [
{
"Code": "591",
"ShortText": "position is invalid or not found!"
},
{
"Code": "592",
"ShortText": "position - latitude is invalid or not found!"
},
{
"Code": "593",
"ShortText": "position - longitude is invalid or not found!"
}
],
"Message": ""
}{
"Status": "Fail",
"Errors": [],
"Message": "Invalid value - Legal entity 12855361 does not have a valid contract and is not allowed to create properties "
}{
"hotel_id": "AWSTEST",
"legal_entity_id": "425500",
"additional_countries": [
"be"
]
}{
"Status": "Success",
"Message": "Addendum invitation sent to Partner!",
"Ruid": "e527c45a-f23a-4ee4-beb2-7d21f7699b1b",
"Data": {}
}{
"Status": "Fail",
"Errors": [],
"Message": "Trying to create a countries!",
"Ruid": "e527c45a-f23a-4ee4-beb2-7d21f7699b1b",
"data": {}
}{
"hotel_id": "AWSTEST",
"legal_contact_email": "don.giovanni@hotel.com",
"legal_entity_id": "425500"
}{
"Status": "Success",
"Message": "Invitation sent to Partner!",
"Ruid": "e527c45a-f23a-4ee4-beb2-7d21f7699b1b",
"Data": {}
}{
"Status": "Fail",
"Errors": [],
"Message": "Provider might not be connected to the partner card for the given data!",
"Ruid": "e527c45a-f23a-4ee4-beb2-7d21f7699b1b",
"data": {}
}https://connect-sandbox.su-api.com/SUAPI/jservice/bdc/property/contact/set-app-id: YOUR_APP_ID
Authorization: YOUR_API_KEY
Content-Type:application/jsonContact the client for whom you created the property. It's possible they already registered the property on Booking.com and merely need to connect it to you.
Closed Operations Temporary
-
End of contract
-
Business Integrity Operations
-
Change of Ownership Closed
-
Closed - legal compliance
-
Closed - ready to reopen
-
Closed - waiting DD mandate
-
Closed (bankruptcy)
-
Closed (complaints)
-
Closed (invoice not paid)
-
Closed (rejected direct debit)
-
Closed for abuse
-
Closed for Fraud - Blocking Billing
-
Closed for fraud
-
Closed Forever Book-Off
-
Closed forever: technical reasons
-
Closed forever
-
Closed Operations Permanently
-
Closed Post Legal
-
Closed: Suspicious activity
-
Collecting Agency Closed
-
Contract Signed
-
Duplicate
Not to be confused with XML: Hotel is Duplicate.
Interested
-
New to open (Acc. Manager
-
New: To be Contacted
-
Not Eligible
-
Not interested
-
NULL
-
Parked business
-
Pending approval - Booking.com BV
-
Ready to be built
-
Ready to open
-
Registered
-
RTO: Credit Control review required
-
RTO: Fraud suspicious
-
SB: Invitation sent
-
SB: Not synced
-
SB: Pending Fraud Blacklist check
-
Switching currency
-
Temp. closed for technical reasons
-
Contact for reservations.
Optional
invoices
Contact for accounts payable.
Optional
availability
Contact for questions about availability.
Optional
site_content
Contact for photos, descriptions, and other website content.
Optional
parity
Contact for pricing and rate matters.
Optional
requests
Contact for special requests.
Optional
central_reservations
Contact for central reservations. Applies to properties that manage reservations from another location.
Optional
general
Primary point of contact for the property.
Required
reservations
Extension can only be provided for PhoneTechType 1.
app-id
string
Yes
Your application ID. Required for authentication.
Authorization
string
Yes
Your API key for authorization.
Content-Type
string
Yes
Must be set to application/json.
xml/countries endpoint{
"hotel_id": "NT7",
"channel_hotel_id": "12837615",
"contacts": [
{
"contact_profiles": [
{
"type": "invoices"
}
],
"address": {
"city_name": "Amsterdam",
"country_code": "NL",
"postal_code": "1011 DL",
"address_line": "New Straat 123",
"language_code": "en-gb"
},
"contact_person": {
"gender": "female",
"name": "Waddington Bloem",
"job_title": "Administration Employee",
"language_code": "en-gb"
},
"phones": [
{
"phone_number": "+31243611111",
"phone_tech_type": "1",
"extension": "1"
}
],
"email": "test@booking.com"
},
{
"contact_profiles": [
{
"type": "general"
}
],
"address": {
"city_name": "Amsterdam",
"country_code": "NL",
"postal_code": "1011 DL",
"address_line": "New Straat 456",
"language_code": "en-gb"
},
"contact_person": {
"gender": "male",
"name": "Bensen Clay",
"job_title": "Administration Employee",
"language_code": "en-gb"
},
"phones": [
{
"phone_number": "+31243611111",
"phone_tech_type": "1",
"extension": "1"
}
],
"email": "tests@booking.com"
}
]
}{
"Status": "Success",
"Data": [],
"Message": "Property Contact-Details Created Successfully"
}{
"Errors": [
{
"Code": "400",
"ShortText": "HotelCode: Invalid HotelCode ('NT711')"
}
],
"Status": "Fail"
}{
"Errors": [
{
"Code": "573",
"ShortText": "channel-mapping not found for this property!"
}
],
"Status": "Fail"
}{
"Errors": [
{
"Code": "584",
"ShortText": "contact_profiles: type is invalid or not found"
}
],
"Status": "Fail"
}{
"Status": "Fail",
"Errors": [],
"Message": "Access denied"
}app-id
string
Yes
Your application ID. Required for authentication.
Authorization
string
Yes
Your API key for authorization.
Content-Type
string
Yes
Attributes
hotel_id string (Required)
The unique property ID as assigned by the provider upon creation of the property.
channel_hotel_id string (Required)
The unique id for the hotel on the specific channel.
Status string
Indicates the overall status of the request.
Message string
Provides a brief message about the outcome. Here, it states "Successfully done," confirming that the request was processed without issues.
data object
Contains detailed results of the various settings processed in the request.
property_settings object
Contains multiple various settings related to the property.
require_cvc boolean
Specifies whether the guest needs to provide CVC details for the booking.
require_booker_address boolean
Specifies whether the guests must provide a contact address.
require_booker_contact_number boolean
Specifies whether the guests must provide a contact telephone number.
auto_replenish boolean
Specifies if property is enabled to auto-replenish and is used to make a room available to sell again after a cancellation.
replenish_closed_rooms boolean
Specifies whether to reopen closed rooms after a cancellation. This will open a closed room after a cancellation is received.
long_stay object
Contains whether property accepts a stay longer than 30 nights.
enabled boolean
Specifies whether the property has a long stay option enabled.
max_length_of_stay integer
Specifies the maximum number of days allowed to stay at the property.
pricing_type string
Specifies the property's pricing type.
allow_smoking boolean
Specifies whether the property allows smoking.
view_cc_details boolean
Specifies whether a trusted property can view the guest's credit card details on Extranet.
pets object
Contains settings related to pets policy.
pets_allowed string
Specifies whether pets are allowed at the property.
pets_price_type string
Specifies pets price type option for the property.
damage_policy object
Contains settings related to damage policy.
amount integer
Specifies the amount on which the damage deposit or programme is applicable for
policy_type string
Specifies the policy that is applicable.
damage_programme_terms_agreed boolean
Specifies if you agree to the terms for the damage programme.
standard_phrases array of strings
Contains settings related to standard phrases. You can send 1 or multiple standard phrases that you want to enable or remove.
accepted_payment_types object
Contains settings related to payment methods.
codes array of integers
Specifies the list of supported payment methods.
children_policies object
Contains whether a property accepts children.
allow_children boolean
Specifies whether the property admits adults and children, or only adults.
min_age integer
Specifies the minimum age of children allowed to stay at the property.
policy_rules array of objects
You can specify a different price and rules for children staying in EXISTING_BED and specify a price for children staying in CRIB or EXTRA_BED.
rule_type string
Specifies the rule type for which this rule applies.
from_age integer
Specifies the minimum age for the children policy to apply. In combination with to_age it becomes an age range.
to_age integer
Specifies the maximum age for the children policy to apply.
price_type string
Specifies if the rule is FREE, ADULT_PERCENTAGE, or FIXED price.
price_mode string
Specifies the unit of time on which the charge is calculated.
price integer
If price_type is Fixed, specifies a fixed amount charged in the country's local currency.
If price_type is ADULT_PERCENTAGE, specifies a percentage of adult price to charge as child price.
invoice_settings object
Specifies the details of the company that owns/manages the property.
legal_name string
Specifies the legal name of the company.
contact_person string
Specifies the full name of the contact person.
address string
Specifies the company address.
notification_channel string
Specifies the channel that the company prefers to be notified for invoice related information.
country_code string
Specifies the country Code.
Should be valid ISO code.
city string
Specifies the city name.
postal_code string
Specifies the postal/Zip code.
booking_model object
Contains whether the property can have request to book option.
type string
Specifies the booking model type of the property. Can be RTB (request to Book) or IB (instant booking).
Sample Error Response 1
Sample Error Response 2
Sample Error Response 3
Error Response Body Elements
Status string
Indicates the result of the API call, which will be always "Fail" in case of an error response.
Error array
Array that contains details about any errors that occurred during the API call. Each object in the Errors array contains the following properties:
Code string
Specific error code that helps identify the type of error.
ShortText string
A short description of the error.
Message string
A message providing more information about the error.
https://connect-sandbox.su-api.com/SUAPI/jservice/bdc/property/settings/retrieve-app-id: YOUR_APP_ID
Authorization: YOUR_API_KEY
Content-Type:application/json{
"hotel_id": "AWSTEST",
"channel_hotel_id": "12837615"
}{
"Status": "Success",
"Message": "Successfully fetch details",
"Warnings": "",
"Ruid": "e527c45a-f23a-4ee4-beb2-7d21f7699b1b",
"data": {
"property_settings": {
"require_cvc": false,
"require_booker_address": false,
"require_booker_contact_number": false,
"auto_replenish": true,
"replenish_closed_rooms": true,
"long_stay": {
"enabled": true,
"max_length_of_stay": 45
},
"pricing_type": "Standard",
"allow_smoking": true,
"view_cc_details": false
},
"pets": {
"pets_allowed": "PETS_ALLOWED_ON_REQUEST",
"pets_price_type": "CHARGES_MAY_APPLY"
},
"damage_policy": {
"amount": 0,
"policy_type": "NONE",
"damage_programme_terms_agreed": false
},
"standard_phrases": [],
"accepted_payment_types": {
"codes": [
1,
2,
3,
4
]
},
"children_policies": {
"allow_children": true,
"min_age": 0,
"policy_rules": [
{
"rule_type": "EXTRA_BED",
"from_age": 4,
"to_age": 255,
"price_type": "FIXED",
"price_mode": "PER_NIGHT",
"price": 70
}
]
},
"invoice_settings": {
"legal_name": "Sahdev Gohil",
"contact_person": "Sahdev Gohil",
"address": "No 370, Block No 328, TP 14, RS, Pal - Umra Bridge, beside Sumerru Business Corner, Adajan Gam, Adajan, Surat",
"notification_channel": "EMAIL",
"country_code": "IN",
"city": "Surat",
"postal_code": "395009"
},
"booking_model": {
"type": "IB"
}
}
}{
"Errors": [
{
"Code": "400",
"ShortText": "HotelCode: Invalid HotelCode ('AWSTEST')"
}
],
"Status": "Fail"
}{
"Errors": [
{
"Code": "573",
"ShortText": "channel-mapping not found for this property!"
}
],
"Status": "Fail"
}{
"Status": "Fail",
"Errors": [],
"Message": "Data not found: Not found",
"Ruid": "485dfd5b-9fed-4f4b-9362-6bc7c9071b8e",
"Data": {}
}https://connect-sandbox.su-api.com/SUAPI/jservice/bdc/property/retrieve{
"hotel_id": "new1",
"channel_hotel_id": "12905777"
}{
"Status": "Success",
"Ruid": "e527c45a-f23a-4ee4-beb2-7d21f7699b1b",
"Data": {
"translations": [],
"position": {
"latitude": -36.8485,
"longitude": 174.76339
},
"check_in": {
"from": "12:30"
},
"check_out": {
"from": "10:00",
"until": "10:30"
},
"property_name": "TP TEST hotel NZ",
"property_category": 30,
"primary_language": "en-nz",
"languages_spoken": [
"en-nz"
],
"room_count": 8,
"floor_count": 1,
"currency_code": "NZD",
"stars": "4",
"target": "test",
"property_id": 12905777,
"status": "Test Hotel",
"physical_address": {
"city_name": "Auckland",
"country_code": "NZ",
"postal_code": "1010",
"address_line": "123 Queen Street",
"display_address": true
},
"legal_entity_id": 78775
},
"Message": "Property detail fetched successfully"
}{
"Status": "Fail",
"Errors": [
{
"Code": "400",
"ShortText": "hotel_id: Invalid HotelCode ('')"
},
{
"Code": "572",
"ShortText": "channel_hotel_id - is invalid or not found!"
}
],
"Message": "",
"Ruid": ""
}Must be set to application/json.