Only this pageAll pages
Powered by GitBook
Couldn't generate the PDF for 264 pages, generation stopped at 100.
Extend with 50 more pages.
1 of 100

Su API Documentation

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

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.

Associate Images

The Image Association API enables users to associate an image already stored in the PMS with a property within the PMS.

Image Association for Property

This API is used to associate or connect images with a specific property.

Endpoint

POST


Attributes

hotelid string (Required)

Hotel id for which you want to associate an image.

Maximum 20 characters allowed.


imageid string (Required)

Id assigned to a specific image within the PMS.


pmsimageid string (Required)

Id assigned to a specific image within the PMS.


Sample Request

  1. Request sample for the image associated with imageid for property:

  1. Request sample for the image associate with imageid for room:

  1. Request sample for the image associate with pms_imageid for property:

  1. Request sample for the image associate with pms_imageid for room:


Response


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"
}

Create Images

The Create Image API allows users to upload or create images in the PMS.

Endpoint

POST


Attributes

hotelid string (Required)

Hotel id for which you want to create and image.

Maximum 20 characters allowed.


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.


Image Create with pms_imageid

Sample Request

Response


Image Create without pms_imageid

Sample Request

Response

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"
        }
    ]
}

Retrieve Images

Retrieve Image API allows users to retrieve or access images stored within the PMS.

Endpoint

POST

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

Attributes

hotelid string (Required)

Hotel id for which you want to retrieve the images.

Maximum 20 characters allowed.


Sample Request

Response


Sample Success Response

{
    "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
        }
    ]
}

Mapping Script

For implementing the module, users have to add a blank div and script to their own system, which is mentioned below:

NOTE

The Su widget cannot be loaded on the local development server. You need to deploy it first; only then you will be able to load the Su widget successfully.


To load the widget, make sure to provide your site’s domain to the Su team for whitelisting.

  1. Add the Script: Include the following script in your HTML to load the required JavaScript file:

  2. Create a Container Div: Insert a blank div in your HTML and assign it an id of your choice:

  3. Invoke the Function: Call the function exported from the script, passing in the necessary object. This object is mandatory for loading the module.

NOTE

The configuration object is required to properly load and initialize the module.


Sample Example

See below:

  1. Use below mention function to load module:

Language Supports in Widget

We currently support the following languages. To set a preferred language, please use the corresponding language codes:

Here’s the table you requested:

SN
Language Code
Language

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);
Language Supports in Widget

Review API (Soon to be Deprecated)

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).


Collection of Reviews from OTA

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.

Only one endpoint is required to support both Reviews API and Messaging API. Meaning, both Reviews and Messages are posted to the same endpoint.

Endpoint

END POINT: Please provide endpoint for reviews delivery.

Authorization String: Partner to allocate with Basic Authorization credentials.


Attributes

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.


roles array (Optional)

These are the different roles.


users array (Optional)

These are the name of users.


attachment array (Optional)

These are the attachments with the review if any.


Review object

Review received from OTA.

Attributes


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.

Sample Request


Response

If acknowledgement is not received as required, system will try to repost the review 3 times. After 3 attempts, review will be removed from queue.

Sample Success Response


Review Response API

  • 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.

Only reviews received / initiated from guest can be responded.

Endpoint

POST


Attributes


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.

Sample Request


Response

Sample Success Response

{
	"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"
}

Link/Retrieve Contract

Contract Retrieval api allows users to fetch the existing contact details.


Endpoint

POST

Attributes

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.

  • The system sees this email as the unique identifier for the Accommodation Partner.

  • It should be in valid email format.


Sample Request


Response

Sample Success Response

Error

Sample Error Response


Response Body Elements

Status string

The status of the response.


Message string

The message in the response.


Ruid string

Specifies the unique request ID.

You can share this ID with Booking.com customer support when you run into an issue. This can help in understanding what went wrong.


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.

You can only see this array when the contract is signed.


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.

Follows the ITU E.164 standard.


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.

The system sees this email as the unique identifier for the Accommodation Partner.


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": {}
}

Update Property

The endpoint allows users to update the existing property.


Endpoint

POST

Attributes


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.

Only allowed for new properties.


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.

Specify 24-hour check-in by using 00:00 for both from and until.

from enumerated string (Required)

Start time for check-in (required).

Accepted values follow the .

until enumerated string (Optional)

End time for check-in.

Accepted values follow the .


check_out object

Object containing check-out times.

from enumerated string (Optional)

Start time for check-out (optional).

Accepted values follow the .

until enumerated string (Required)

End time for check-out (required if check_out > from is specified).

Accepted values follow the .


property_name string (Required)

Name of the hotel property on Booking.com.

Does not support using .


property_category integer (Required)

Category identifier for the hotel.

For a list of supported property class type codes, see .


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.

A "sellable unit" is the smallest possible space that a guest can book at the property. In a property with 200 rooms, each room is a sellable unit, and the value would be 200. In a holiday home, guests must typically book the home in its entirety, making the value 1.


floor_count integer (Optional)

The total number of floors in the building/hotel, excluding the underground floors.

Max value can be 200.


stars string (Optional)

The number of stars, rating of the hotel.

Accepts values: 0–5. Starting from 1, accepts values in increments of .5. Some countries don't use star ratings. To see whether your property belongs to a Hotel property type,


target enumerated string (Required)

Specifies whether it is a test or production-ready property.

Accepts the following values:

  • test

  • production


provider_property_id string (Optional)

Identifier for the property provider.

Recommended for new properties. For example, the provider's internal ID. Can contain a maximum of 16 characters.


currency_code enumerated string (Optional)

The Booking.com defined currency for the property.

In select countries a currency other than the default can be selected.


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.

Make sure the zip code (postal_code) is relevant to the country specified in the country_code.

address_line string (Required)

Detailed address of the hotel.

display_address boolean (Optional)

Boolean indicating if the address should be displayed.

- true : Shows the full address to the guest. - false : Hides the full address from the guest.


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.

Should not contain abbreviations (such as "Rd." for "Road") and should not exceed 255 characters.

language_code enumerated string (Required)

Language code for translation.

property_name enumerated string (Required)

Translated property name.


Sample Request


Response

Sample Success Response

Error

Sample Error Response

Response Body Elements

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
Booking.com Check-In / Check-Out Times format
Booking.com Check-In / Check-Out Times format
Booking.com Check-In / Check-Out Times format
Booking.com Check-In / Check-Out Times format
CJK Unified Ideographs
Property Class Type Code
{
    "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 "
}

Retrieve Contact

This endpoint retrieves detailed information about a specific contact.


Endpoint

POST

Header

Header
Type
Required
Description

Attributes


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.


Sample Request


Response

Sample Success Response

Error

Sample Error Response 1

Sample Error Response 2

Sample Error Response 3

Response Body Elements

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.

Certification

Certification Process

Find below the details of the process which is divided into 2 phases.

Phase I

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/retrieve

Make 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.

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.

Note: In production, the APIs will remain the same. Only the endpoints and Auth keys will differ.

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.

Points to Remember

  1. Once the PMS is certified, we will transition their account from sandbox mode to production mode, and all associated data will be purged.

  2. When the PMS is in production mode, the system will no longer expect server requests for sandbox properties.

  3. 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 Overview

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.


What if something goes wrong?

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.


Is it a hassle to integrate a new piece of tech?

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.


For more information, visit our .

-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"
}
website

Su Channel Manager

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.

Rates and Availability

Rates and Availability API can be used to push the following information from the IT provider to STAAH:

  • Room Inventory count:

    • per IT provider's room id

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.

Reporting

Su Reporting refers to report the status of the booking to the channel.

  • Reporting - Cancellation due to Invalid CC

  • Reporting - Invalid CC

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.

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)

  • Reporting - No show

    Authentication (Soon to be Deprecated - 01 / April / 2026)

    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

    Authorization involves sending credentials (username and password) and app-id with every API request. Here's how it works:

    1. Encoding Credentials

      • Your username and password are encoded in Base64 format and separated by a colon (:).

      • For example, username:password becomes dXNlcm5hbWU6cGFzc3dvcmQ= in Base64.

    Example header

    Key facts:

    • Basic authentication is built into the HTTP protocol.

    • The credentials should be encoded in Base64 and placed in the header with the format Basic <encoded credentials>.


    Su Partner Supply API Authentication

    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.

    Replace {Authorization String} with the API key provided by STAAH.


    Encoding

    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.


    Authentication Failure

    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:

    Authentication Failure Error

    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.

    HTTP basic authentication
    Authorization: Basic ZTZjTk80S1U6VjBEN1NxSGo
    app-id: dWF0c3Uuc3RhYWgubmV0
    Authorization: Basic {Authorization String}
    {
      "Status": "Fail",
      "Errors": {
        "Code": "497",
        "ShortText": "Authorization Required"
      }
    }

    Su API Introduction

    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.


    How Su Works?

    Step 1

    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.


    Step2

    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:

    Contact Information

    Partner Success

    partnersuccess[at]su-api.com

    Support

    support[at]su-api.com


    Step 3

    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.


    Content

    Content API can be used to create or modify Property, Room Type, and Rate Plan. Property content contains the below property details:

    Property

    Room Type

    Rate Plan

    Listing

    Image API

    Getting Started

    This document explains how to successfully call Su APIs. It assumes you are familiar with REST concepts and API requests and responses and know how to perform REST API calls.


    Base URLs

    Base URL for Su APIs (domain):

    General syntax for different endpoints (see below):

    Provide endpoint and parameters for the different API calls.


    Before You Begin

    Request Su API Keys

    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.

    Change Su API Keys

    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.

    Contact Information

    Partner Success

    partnersuccess@su-api.com

    Support

    support@su-api.com

    https://connect-sandbox.su-api.com
    https://connect-sandbox.su-api.com/[endpoint]?[parameters]

    Rate Plan

    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

    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.


    Request (RQ) Sent with STAAH Rate-Level Build Data

    Endpoint

    POST


    Send a request with STAAH rate level build data which consists of a set of predefined parameters.

    Attributes


    Rate Plans hotelid / HotelCode / ClientID string (Required)

    The existing property ID. Required existing id to create or update rate plans.

    Maximum 20 characters allowed.


    RatePlan array

    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).


    Description object

    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.

    Sample Request


    Response

    Sample Success Response


    Example - Change Rate Plan Name

    Attributes


    Refer .

    Sample Request


    Example - Deactivate Rate Plan

    Attributes


    Refer .

    Sample Request


    Example - Activate Rate Plan

    Attributes


    Refer .

    Sample Request


    Example - Delete Rate Plan

    Attributes


    Refer .

    Sample Request


    Response

    Sample Success Response

    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.


    Create or Update Property

    You can create a new property or update an existing property with this API.


    Endpoint

    POST


    The HotelDescriptiveContent object

    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.

    Attributes

    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.

    Consult your account manager for details.


    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

    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).

    Attributes


    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.


    Addresses object

    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.


    Emails object

    Provides information about the addresses associated with hotels or properties.


    Email string (Required)

    Contains a valid email address.

    Maximum 5 email address can be added.


    Phones object

    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.

    See for accepted values.


    The HotelInfo object

    This object represents your hotel’s physical position. It provides the exact co-ordinates containing the value of and .

    Attributes


    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.

    Facilities array

    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.

    Attributes


    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.

    • Both "Group" and "name" accepts Free Text - Special characters not allowed

    • If no Group name given, The amenity will be added under the Group "Common" (Auto created / Default)

    • Once added, it cannot be removed individually


    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 Request


    Response

    If the API call returns the success as the status, this indicates the request was successful. You have created or modified your property successfully.

    Sample Success Response


    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

    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.

    Property Listing

    Room Type Listing

    Rate Plan Listing

    Delete Property Listing

    Change
    Activate
    Deactivate
    Delete
    Meal Plan
    MP
    Request attributes
    Request attributes
    Request attributes
    Request attributes

    If needed to be updated / modified, entire mode will have to be passed <Facilities>.....</Facilities>

    Time Zones
    Language Codes
    Currency Codes
    Postal code
    Country Code
    PTT codes
    Latitude
    Longitude
    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

    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.


    Create or Update Room Type

    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:

    1. For creating or updating a room type, send request with STAAH Room-Level build data.

    2. If your request is valid, you get a success response that means you have successfully created your room type.


    Request (RQ) Sent with STAAH Room-Level Build Data

    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.

    Endpoint

    POST


    The SellableProducts object

    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.

    Attributes


    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 SellableProduct use 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.

    The Room object

    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


    The Facilities object

    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.

    Attributes


    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.


    The Position object

    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.


    The Address object

    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 .

    The Description object

    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.

    Sample Request


    Response

    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.

    Sample Success Response


    Error

    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.

    Sample Error Response (906)


    Update or Modify Room Type

    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.

    Sample Request


    Deactivate Room Type

    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.

    Sample Request


    Activate Room Type

    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.

    Sample Request


    Delete Room Type

    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.

    Sample Request

    Property Listing

    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.

    Endpoint

    GET


    Sample Request

    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:

    1. Send a GET Request: The PMS will send a GET request to the specified endpoint.

    2. Include the API Key: You must include your unique API Authorization Key in the request header. The body of the request should be empty.

    3. Parameters: The request should have an element named "request" and an attribute named "Authorization" in the header.


    Response

    Success

    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

    properties array contains all the listed properties as an object with all the details.

    property object

    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.


    Sample Success Response


    Error

    You may receive HTTP code 401 Unauthorized Error, if allocated with incorrect API Authorization Key.

    Sample Error Response (497)

    Authentication

    Token-based Authentication

    UPDATE NOTICE

    We have launched a new Token-based Authentication mechanism, which is active on Production.

    Generate Access Token for Authentication

    This endpoint is used to generate an access token required for authenticating.

    Endpoint

    GET

    Header

    Header
    Type
    Required
    Description

    Note on Generating Access Token:

    1. The client-id remains the same for both Sandbox and Production environments.

    2. The client-secret differs between the Sandbox and Production accounts.


    Success Response - For Production

    Success Response - For Sandbox


    Response Body Parameters

    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.


    Validate Access Token for Authentication

    This endpoint is used to generate an access token required for authenticating.

    Endpoint

    GET


    Header

    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.

    Notes for Validating Access Token

    1. The app-id parameter is not required when validating an access token.

    2. The Authorization header must use the


    1. Production Environment Token

    • Tokens prefixed with live_ are specific to the production environment.

    • These tokens are valid only for production API endpoints.

    • Example:


    2. Sandbox Environment Token

    • Tokens prefixed with sandbox_ are specific to the sandbox/test environment.

    • These cannot be used with production endpoints.

    • Example:

    Delete Property Listing

    The Delete Property Listing call is used to delete the existing property.

    Endpoint

    POST


    Please find an example input message below.

    Rate Plan Listing

    The Rate Plan Listing call is used to retrieve the list of Rate Plans created for existing property. Response data contains information on rate plan's Name, Id, Meal Plan Id and Status.

    Endpoint

    POST


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

    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.

    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

    Once booking, received, it has been placed in queue for partner to collect. If acknowledgement is not received within an hour, the booking will automatically be removed from the booking queue. An email alert with a booking list will be generated.

    Modify
    Active
    Deactivate
    Delete
    Room Type Code
    RTC
    Country Codes
    Attributes

    hotelid string (Required)

    Hotel id for which you want to delete the property.

    Maximum 20 characters allowed.

    Sample Request


    Response

    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.

    Sample Success Response

    Error

    Failure - 953 error will be received if allocated Hotel id which contains the mapping (Active or Inactive) with any of OTA channel(s).

    Sample Error Response (953)

    400 error will be received if allocated with incorrect Hotel/Client id.

    Sample Error Response (400)

    Attributes

    hotelid string (Required)

    Hotel id for which you want to retrieve the list of rate plans.

    Maximum 20 characters allowed.

    Sample Request


    Response

    Sample Success Response

    Response Model — No Rate Plan Found

    In this case there is no Rate Plan available for provider based on the parameters provided.

    Sample Error Response (939)

    Error

    Errors Due to Invalid Parameters

    This error 400 will be received if allocated with incorrect Hotel/Client id.

    Sample Error Response (400)

    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
    prefix (For example,
    Bearer <token>
    ),
    not
    Basic
    .
  • Access 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

    Room Type Listing

    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.

    Endpoint

    POST


    Attributes

    hotelid string (Required)

    Hotel id for which you want to retrieve the list of Room Types created for the property.

    Maximum 20 characters allowed.

    Sample Request


    Response

    Response Model — No Rooms Found

    In this case there is no Room Type available for the provider based on the request parameters.

    Sample Error Response (938)


    Success

    rooms array

    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.

    Sample Success Response


    Error

    Errors 400 due to invalid parameters

    This error will be received if allocated with incorrect Hotel/Client id.

    Sample Error Response (400)

    Rates and Availability

    Availability

    Rates and Availability API can be used to push the following information from the IT provider to STAAH:

    • Room Inventory count:

    PUSH API Method

    Flow

    1. A reservation is received in Su from one or more OTA(s).

    2. Su pushes the reservation data to your dedicated endpoint.

    Reservations Notification Push

    HTTP Message Body Model

    Attributes

    reservation_notif

    https://connect-sandbox.su-api.com/SUAPI/jservice/auth/generate-access-token
    client-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/pmsproperty
    Authorization: Bearer <access_token>
    Authorization: Bearer live_<token_string> // required
    Authorization: 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:

    1. Su will re-push the booking again at 10 min interval

    2. 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:

    1. Su will not push any other booking to PMS for that Property - If there is any booking for different property

    2. 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

    Reservation Using Push API

    Reservation Notification Push

    Push API Method

    root node

    This is the parent node.

    Node multiplicity - 1


    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).

    Unbounded


    Notification — Node Overview

    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.

    Endpoint

    POST


    Attributes


    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.


    room object

    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 & InvCode defines the same field.

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

    Accepts alphanumeric values and hyphen ( - ).

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


    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.

    Min:1 Max:unbounded


    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.

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


    rateplanid alphanumeric (Optional)

    IT provider's unique rateplan ID.

    Needs to be an active rate in the STAAH system.


    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.

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


    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.

    Example: "value": "100.00,190.00,270.00"

    This represents pricing for 1-night, 2-night, and 3-night stays, respectively.

    Note: The values must be listed in ascending order, corresponding to the increasing length of stay.


    closed boolean (Optional)

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

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


    minimumstay integer (Optional)

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

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

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

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


    maximumstay integer (Optional)

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

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

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

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


    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.

    Constraints: Cannot be a negative number


    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.

    Constraints: Cannot be a negative number


    closedonarrival boolean (Optional)

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

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


    extraadultrate double (Optional)

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

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


    extrachildrate double (Optional)

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

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


    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.

    NOTE:

    • When updating the minimumadvancereservation, the rateplanid parameter is required.

    • Negative values for hours are not allowed.

    • Currently supported only for the Booking.com channel.

    • Expected value source: PMS → SU.

    • Accepted data type: Integer (hours only; days are not accepted).

      Example: "minimumadvancereservation": "48" (represents 48 hours).

    • Maximum allowed value: 8640 hours (equivalent to 360 days) for both parameters.


    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.

    NOTE:

    • when updating the maximumadvancereservation, the rateplanid parameter is required.

    • Negative values for hours are not allowed.

    • Currently supported only for the Booking.com channel.

    • Expected value source: PMS → SU.

    • Accepted data type: Integer (hours only; days are not accepted).

      Example: "minimumadvancereservation": "48" (represents 48 hours).

    • Maximum allowed value: 8640 hours (equivalent to 360 days) for both parameters.


    Sample Request

    To push updates for a single day use:

    To push updates for a date range use:

    LOS Price API

    Supported Channel: Booking.com (channel code:19)

    Supported days: 90 days

    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.


    Response

    Attributes


    Status string

    Status of the request.


    TicketId string

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


    Sample Success Response


    You may receive some errors even if the response HTTP code is 200 OK.

    Errors Due to Invalid Request Message Body

    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.

    Sample Error Response (921)


    Errors Due to Maximum Capping Limit Reached for Number of Requests (per hour per property)

    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.

    Sample Error Response


    Error Due to Invalid Request Message Body

    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 ";".

    Sample Error Response (873)

    Accept/Confirm Request Booking

    The API is used to accept/confirm requested reservations.

    Endpoint

    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).

    Sample Request

    The request body consists of a bookingid. This is the booking id (channelbookingid_hotelid) as allocated in the booking.


    Response

    Sample Success Response (200)

    Error

    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.

    Sample Error Response (1035)

    Booking Repull

    Response of Reservation Information

    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.


    Response Model — No Pending New, Modified, Cancelled Reservations

    In this case no messages are pending in queue for the provider based on the parameters provided in Step 1.

    Request for Reservation Information

    This method is used to send a request for the reservation information. You need to request with the hotel id attribute which is required to request the reservation information for that particular hotel.

    Endpoint

    POST


    Reservation Notification

    The reservations_notif call is used for acknowledgement of retrieval of reservations.

    Step 1: Request for reservations notification

    Step 2: Response for reservations notification

    Endpoint

    POST

    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/requestbookings
    List of Bookings
    Refetch Bookings

    Request Booking

    Accept/Confirm Request Booking

    Deny/Cancel Request Booking

    System 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.

  • Attributes

    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.

    Maximum 20 characters allowed.

    Sample Request

    {
        "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"
    }
    Sample Success Response

    Attributes

    reservations array (Required)

    List of reservation objects.

    Min:1 Max:1


    reservation (Required)

    Every reservation is indicated with a 'reservation' element.

    Min:1 Max:10

    Children - commissionamount, currencycode, customer, 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, zip, date, hotel_id, hotel_name, id, room, addons, addon, name, nights, persons, price_mode, price_per_unit, totalprice, type, arrival_date, commissionamount, currencycode, departure_date, extra_info, guest_name, id, info, name, numberofguests, price, remarks, roomreservation_id, smoking, totalprice, status, time, and totalprice


    booked_at date (Required)

    Date when the booking has been made.

    Min:1 Max:1

    Format Date: YYYY-MM-DD


    commissionamount integer (Required)

    The total commission a hotel has to pay to OTA per complete reservation.

    Min:1 Max:1


    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.

    Min:1 Max:1

    Maximum 20 characters allowed.


    hotel_name alphanumeric (Required)

    The hotel name as used by IT Provider.

    Min:1 Max:1


    paymentdue integer (Required)

    The payment due details ** Currently only supported by Hostel world.

    Min:1 Max:1


    customer object (Required)

    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.

    Min:1 Max:1


    corporate_booking_detail object (Required)

    The corporate_booking_detail element contains the corporate level B2B booking details for taxation and billing.

    Min:1 Max:1


    booking_source string (Required)

    The source of the booking.

    Min:1 Max:1


    tax_id string (Required)

    Tax Id of billing company.

    Min:1 Max:1


    billing_company string (Required)

    Name of billing company.

    Min:1 Max:1


    billing_address string (Required)

    Address of billing company.

    Min:1 Max:1


    payment_information string (Required)

    Payment information of B2B booking.

    Min:1 Max:1


    payment_due_date date (Required)

    Payment due date of B2B booking.

    Min:1 Max:1


    booker_address string (Required)

    Address of Booker.

    Min:1 Max:1


    booker_taxid string (Required)

    Booker Tax Id.

    Min:1 Max:1


    booking_type string (Required)

    Type of Booking.

    Min:1 Max:1


    currencycode string (Required)

    In which currency OTA will charge the commission to the hotel.

    Min:1 Max:1


    address string (Required)

    The address of the booker.

    Min:1 Max:1


    cc_cvc integer (Required)

    CVC number of the credit card.

    Min:1 Max:1


    cc_expiration_date datetime (Optional)

    The expiration date of the credit card.

    Min:0 Max:1

    Format MMYY


    cc_name string (Required)

    Name of the credit card holder.

    Min:1 Max:1


    cc_number integer (Required)

    The number of the credit card.

    Min:1 Max:1


    cc_type string (Required)

    The type of credit card.

    Min:1 Max:1


    cc_current_balance string (Required)

    Current balance of virtual credit card allocated by OTA.

    Min:1 Max:1


    cc_activation_date string (Required)

    The activation date of the virtual credit card allocated by OTA.

    Min:1 Max:1

    Format Date: YYYY-MM-DD


    vcc_expiration_date string (Required)

    The expiration date of the virtual credit card allocated by OTA.

    Min:1 Max:1

    Format Date: YYYY-MM-DD


    cc_token string (Required)

    The token of credit card.

    Min:1 Max:1


    cc_token_expiration date (Required)

    The expiry date of cc token generated.

    Min:1 Max:1


    cc_unique_code string (Required)

    cc unique code - Value is assigned if Partner is integrated with Airpay payment gateway. Otherwise, empty node is passed.

    Min:1 Max:1


    city string (Required)

    The city where the booker is from.

    Min:1 Max:1


    state string (Required)

    The state where the booker is from.

    Min:1 Max:1


    countrycode string (Required)

    The country code of the country where the booker is from.

    Min:1 Max:1


    email string (Required)

    Email address supplied by the customer.

    Min:1 Max:1


    first_name string (Required)

    First name of the booker as supplied by the custome.

    Min:1 Max:1


    last_name string (Required)

    Last name of the booker as supplied by the customer.

    Min:1 Max:1


    remarks string (Required)

    Remarks regarding this reservation, supplied by the customer.

    Min:1 Max:1


    telephone string (Required)

    Telephone number as supplied by the customer.

    Min:1 Max:1


    zip string (Required)

    Zip/Postal code as supplied by the customer.

    Min:1 Max:1


    cc_vault_token numeric (Required)

    Token for cc number.

    Min:1 Max:1


    cc_tracking_id string (Required)

    Tracking id for cc details.

    Min:1 Max:1


    rooms object

    Root element of room.

    Min:1 Max:1


    Attribute

    arrival_date datetime (Required)

    Date of arrival of the guests.

    Min:1 Max:1

    Format - YYYY-MM-DD


    departure_date datetime (Required)

    Date of departure of the guests.

    Min:1 Max:1

    Format - YYYY-MM-DD


    info string (Required)

    Extra information for the room.

    Min:1 Max:1


    facilities string (Required)

    Information over facilities included for the room (if allocated).

    Min:1 Max:1

    taxes object

    Information of taxes charged on booking.

    Attribute


    name string (Required)

    Name of the tax charged.

    Min:1 Max:1


    amount string (Required)

    Amount of tax applied / charged.

    Min:1 Max:1


    specialrequest string (Required)

    Special request made while making booking for the room (if allocated).

    Min:1 Max:1


    eta numerical (Required)

    Estimate time for check in for this reservation as filled in on the website.

    Min:1 Max:1


    guest_name string (Required)

    Guest name for this reservation as filled in on the website.

    Min:1 Max:1


    first_name string (Required)

    Guest's First name for this reservation as filled in on the website.

    Min:1 Max:1


    last_name string (Required)

    Guest's Last name for this reservation as filled in on the website.

    Min:1 Max:1


    id alphanumeric (Required)

    The room type ID as used by IT Provider.

    Min:1 Max:1


    max_children integer (Optional)

    The number of children included in the booked room.

    Min:0 Max:1


    numberofguests integer (Required)

    It is the number of guests for this reservation as filled by the booker.

    Min:1 Max:1


    numberofchildren integer (Required)

    It is the number of children for this reservation as filled by the booker.

    Min:1 Max:1


    numberofadults integer (Required)

    It is the number of adults for this reservation as filled by the booker.

    Min:1 Max:1


    roomstaystatus string (Required)

    The roomstaystatus ('new', 'modified' 'request' or 'cancelled') identifies the stay whether it is new, modified, request or cancelled.

    Min:1 Max:1


    roomreservation_id string (Required)

    The room reservation ID as used by STAAH to identify the booked room within the reservation.

    Min:1 Max:1


    totalbeforetax integer (Required)

    Total booking value before applying the taxes.

    Min:1 Max:1


    totaltax integer (Required)

    The total amount of tax for this reservation. All rooms * all nights combined.

    Min:1 Max:1


    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.

    Min:1 Max:1


    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.

    Min:1 Max:unbounded


    amount double (Required)

    It contains the amount of per day pricing.

    Value for this parameter will be numeric with possible decimal point.

    Min:1 Max:unbounded


    date alphanumeric (Required)

    Date and time.

    Format: YYYY-MM-DD


    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.

    Min:1 Max:1


    mealplan alphanumeric (Required)

    Meal plan name per night as known at the moment of reservation.

    Min:1 Max:1


    tax integer (Required)

    Tax amount per night of reservation (Date wise).

    Min:1 Max:1


    pricebeforetax double (Required

    Room rate amount per night of reservation before tax(s)(Date wise).

    Min:1 Max:1


    priceaftertax double (Required

    Room rate amount per night of reservation after tax(s)(Date wise).

    Min:1 Max:1


    extra_adult_rate double (Required)

    Extra rates for the additional adult.

    Min:1 Max:1


    extra_child_rate double (Required)

    Extra rates for the additional child.

    Min:1 Max:1


    adults alphanumeric (Optional)

    It is the name of additional adult/s for this reservation as filled by the booker.

    Min:0 Max:1


    addons alphanumeric (Optional)

    Additional services added to the reservation.

    Min:0 Max:1


    name string (Optional)

    The add-on name, in English.

    Min:0 Max:1


    nights integer (Optional)

    Number of nights this customer has booked the addon for.

    Min:0 Max:1


    priceperunit integer (Optional)

    The unitary price for this add-on.

    Min:0 Max:1


    pricemode integer (Optional)

    An integer identifying the price mode (per stay, per night, per person per night). See table below for the values.

    Min:0 Max:1

    ID
    PRICE MODE

    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.

    Min:0 Max:1


    taxes array

    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:

    Attributes


    name string (Required)

    The name or description of the tax.

    Example Values:

    • "Slab %": Indicates a slab-based tax, possibly percentage-based where the rate varies based on predefined slabs or tiers.

    • "Flat %": Indicates a flat rate percentage tax, where a constant percentage is applied.


    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.

    Min:1 Max:1


    amount string (Required)

    Amount of extra component applied/charged.

    Min:1 Max:1


    bed_type alphanumeric (Required)

    The tag contains details of bed type.


    affiliation object

    Source Information of reservation.


    Attribute


    pos string (Required)

    Point of sale of reservation.

    Min:1 Max:1


    source string (Required)

    Source of reservation.

    Min:1 Max:1


    OTA_Code number (Required)

    Source of reservation code or OTA code.


    gstno alphanumeric (Required)

    GST No. of the company for B2B booking.

    Min:1 Max:1


    companyname string (Required)

    Name of B2B booking company (as allocated from OTA).

    Min:1 Max:1


    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.

    Min:1 Max:1


    nettamount integer (Required)

    The net amount of room of this reservation (Same value as of tag "totalprice"). All rooms * all nights combined excluding Taxes.

    Min:1 Max:1


    sellamount integer (Required)

    The sell amount of room of this reservation (Same value as of tag "totalprice"). All rooms * all nights combined including Taxes.

    Min:1 Max:1


    cancelreason string (Required)

    It specifies the reason for canceling a reservation

    Min:1 Max:1


    confirmationlink

    The url through which one can confirm / deny the request of booking coming from VRBO. Only available under "request" booking from VRBO.

    Min:1 Max:1


    payment_charge numeric (Required)

    Payment charged from OTA on the booking. Currently data is being allocated by http://Booking.com only.

    Min:1 Max:1


    channel_booking_id alphanumeric (Required)

    Booking reference number of OTA.

    Min:1 Max:1


    thread_id alphanumeric (Required)

    The thread ID as allocated by OTA / Channel (Supported by Airbnb only).

    Min:1 Max:1


    guest_id alphanumeric (Required)

    The guest ID as allocated by OTA / Channel (Supported by Airbnb only).

    Min:1 Max:1


    numberofpets numeric (Required)

    The number of pets as allocated by OTA / Channel.

    Min:1 Max:1


    numberofinfants numeric (Required)

    The number of infants as allocated by OTA / Channel.

    Min:1 Max:1


    listingbaseprice numeric (Required)

    Base price of the listing allocated from OTA / Channel (Supported by Airbnb Only).

    Min:1 Max:1


    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.

    Min:1 Max:1


    cancellation_fee numeric (Required)

    Deposit collected for a booking made / received.

    Min:1 Max:1


    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.

    Min:1 Max:1


    modified_at date (Required)

    Date when the status is modified.


    status string (Required)

    The reservation status ('new', 'modified' or 'cancelled').

    Min:1 Max:1


    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.

    Min:1 Max:1


    totaltax integer (Required)

    The total amount of tax for this reservation. All rooms * all nights combined.

    Min:1 Max:1


    discount double (Required)

    Discount amount received from OTA.

    Min:1 Max:1


    extrafees object

    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": []


    Attribute


    name string (Required)

    Name of the extra fee charged.

    Min:1 Max:1


    amount string (Required)

    Amount charged as extra fee.

    Min:1 Max:1


    taxes object

    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>


    Attribute


    name string (Required)

    Name of the tax charged.

    Min:1 Max:1


    amount string (Required)

    Amount of tax applied / charged.

    Min:1 Max:1


    Response Model — New Reservation Confirmation

    Sample Success Response


    Response Model — Modified Reservation

    Sample Success Response


    Response Model — Request Booking

    Sample Success Response


    Response Model - Cancelled Reservation

    Response Model — Multiple Room Reservation

    Sample Success Response


    Multiple Room Reservation

    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

    Errors due to Invalid Parameters


    Step 1: Request for Reservations Notification

    Request — HTTP Message Body Model

    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

    Sample Request


    Request — Node Overview

    • 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.


    Step 2: Response for Reservations Notification


    Sample Error Response


    Sample Success Response


    Inventory Control

    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.

    Endpoint

    POST


    Step 1 - Request — HTTP Message Body Model

    Attributes


    hotelid alphanumeric (Required)

    Property id for the hotel in Su.

    Needs to be an active property in Su.

    Maximum 20 characters allowed.


    roomid alphanumeric (Required)

    Room id for the room in Su.

    Needs to be an acive room in Su.


    rateid alphanumeric (Required)

    Rate id for the room type in Su.

    Needs to be an active room plan in Su.


    date array (Required)

    Array of objects, each representing a date.

    from string (Required)

    Represents a start date.

    Must be in YYYY-MM-DD format.

    to string (Required)

    Represents an end date.

    From the current date to max upto 500 days in the future.

    Must be in YYYY-MM-DD format.


    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.

    OTA Codes as per Su. Codes can be found in the API documentation .


    type enum (Required)

    Type determines the type of modification applied.

    Possible value:

    • Fixed

    • Increase

    • Decrease


    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.

    Accpeted values are:

    • true

    • false


    Sample Request


    Request — Node Overview

    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

    You also can combine both Inventory (inventorycontrol) and Rate (ratecontrol) combined in a single request.

    Request can have multiple date ranges.

    Please do email us on for more details

    List of Bookings

    The API is used to get the list of reservations depending on Booking / Creation Date.


    Request to get the list of Bookings

    Endpoint

    POST

    • Works on booking creation date

    • System fetches bookings from system for 6 months in past

    • Date formate must be in, MM-DD-YYYY


    Sample Request

    The request body consists of a date_from / date_to. This is the booking creation date when the booking was created / received from OTA


    Response

    Success Response

    • 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

    Error Response

    All the parameters of requests are required. If missed or passed unsupported values, system will throw an error in return

    Refetch Booking

    The API is used to refetch specific booking.


    Request to refetch Booking

    Endpoint

    POST

    • Upon Request, system allocates with the booking Json

    • System is designed to reallocate the same booking to you for maximum of 5 times


    Sample Request

    The request body consists of a bookingid. This is the booking id (channelbookingid_hotelid) as allocated in booking list.


    Response

    Success Response

    Error Response

    All the parameters of requests are required. If missed or passed unsupported values, system will throw an error in return.

    Channel Rates API

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

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

    Endpoint

    POST

    Attributes

    hotelid alphanumeric (Required)

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

    Accepts alphanumeric values.

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

    Maximum 20 characters allowed.


    rooms array (Required)

    This is an array represents the detail of the room.


    rooms

    roomid alphanumeric (Required)

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

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

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

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

    Accepts alphanumeric values and hyphen ( - ).

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


    rates array (Required)

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

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

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


    rates

    from datetime (Required)

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

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

    Format: YYYY-MM-DD


    to datetime (Required)

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

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

    Format: YYYY-MM-DD


    rate_id string (Required)

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


    channel_id integer (Required)

    Identifier of the distribution channel (OTA).


    channel_connection_id string (Optional)

    Unique ID for the channel connection.


    roomstosell integer (Required)

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

    Rate should not be specified when updating roomstosell.

    It cannot be a negative number.

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


    prices array (Required)

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

    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.

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


    minimumstay integer (Optional)

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

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

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

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


    maximumstay integer (Optional)

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

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

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

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


    closedonarrival boolean (Optional)

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

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


    extraadultrate double (Optional)

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

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


    extrachildrate double (Optional)

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

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


    closedondeparture boolean (Optional)

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

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

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


    prices

    number_of_guest integer (Required)

    Number of guests for which price is applied.

    Needs to be non-negative integer and maximum 30.


    value integer (Required)

    Price value for the given guest count.


    Request

    For date range

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


    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:


    Response

    Attributes


    Status string

    Status of the request.


    TicketId string

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


    Success Response

    Resync OTA Updates (Failed)

    The ‘Resync Updates’ call allows partner to trigger a resync for all failed updates to channels connected for requested property.


    Endpoint

    POST

    Update Logs

    The Update Log call is used to retrieve update logs, downloadable links of text files containing information on Rates & Availability data updated for existing property for specific date requested.


    Endpoint

    POST

    Failed Channel Logs

    The Failed Channel Log call is used to retrieve the list of failed channel update logs for property. Log contains details on the updates got failed on Channels connected / integrated for requested property.

    Endpoint

    POST

    Logs

    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/Bookings

    5

    Percentage

    6

    Per person per night restricted

    Update Logs
    Failed Channel Logs
    Rate & Inventory Logs (Future Date)
    Bulk Rate & Inventory Logs (Future Date)
    Resync OTA Updates (Failed)

    Users

    There are 2 types of access you can create for Su users, Global and Chain.

    IF A GLOBAL USER IS CREATED ONCE WITH A PARTICULAR EMAIL ADDRESS AND IF USER TRIES TO CREATE A CHAIN USER WITH THAT SAME EMAIL ADDRESS, THEN THE NEW CHAIN USER WILL BE CREATED AND THE GLOBAL USER WITH THAT EMAIL ID WILL BE REMOVED AUTOMATICALLY.

  • Multiply

  • here
    support@suissu.com
    Sample Request

    Please find an example input message below.

    Mandatory elements

    Element name - request

    Description
    The request element is the root of every failed channel update listing call.

    Type

    structural element

    Children

    n/a

    Attribute Name

    Attribute
    Description

    hotelid / ClientID

    IT provider's hotel id for which retrieving failed channel log/s.

    Syntax

    Attribute Name - hotelid / ClientID

    Description
    IT provider's unique hotel id.

    Type

    alphanumeric

    Constraints

    needs to be a property registered in the STAAH (Existing)

    Amount of elements possible within parent

    1


    Response

    Success Response

    Referring to above response, PMS will find essential information (basic) pertaining to the error.

    Errors Response

    This notification will be given if resynced failed update gets failed again and tried to be resynced again.

    Errors due to invalid parameters

    This error will be received if allocated with incorrect Hotel id / ClientID

    Mandatory elements

    Element name - request

    Description
    The request element is the root of every updatelog call.

    Type

    structural element

    Children

    n/a

    Attribute Name

    Attribute
    Description

    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

    Description
    IT provider's unique hotel id / Client id.

    Type

    alphanumeric

    Constraints

    needs to be a property registered in the STAAH (Existing)

    Amount of elements possible within parent

    1

    Element name - date

    Description
    Date for which need to retrieve update log/s

    Type

    datetime

    Constraints

    Current date or Past date

    Amount of elements possible within parent

    1

    Format

    YYYY-MM-DD


    Sample Request

    Please find an example input message below:


    Response

    Success


    Errors

    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.

    Sample Request

    Please find an example input message below.

    Mandatory elements

    Element name - request

    Description
    The request element is the root of every failed channel update listing call.

    Type

    structural element

    Children

    n/a

    Attribute Name

    Attribute
    Description

    hotelid / hotel_id / ClientID

    IT provider's hotel id for which retrieving failed channel log/s.

    Syntax

    Attribute Name - hotelid / hotel_id / ClientID

    Description
    IT provider's unique hotel id.

    Type

    alphanumeric

    Constraints

    needs to be a property registered in the STAAH (Existing)

    Amount of elements possible within parent

    1

    Response

    Success Response

    • 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).

    Errors Response

    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)"
      }
    }

    Rates & Inventory Logs (Future Date)

    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.


    Endpoint

    POST

    Mandatory elements

    Element name - request

    Description
    The request element is the root of every rate and inventory listing call.

    Attribute Name

    Attribute
    Description

    Attribute Name - hotelid/ hotel_id / ClientID

    Description
    IT provider's unique hotel id / Client id.

    Attribute Name - roomid / room_id / ListingID

    Description
    IT providers' unique room id / listing id.

    Element name - rateplanid / rate_id

    Description
    IT provider's rate plan ID associated with room type

    Element name - date

    Description
    Specifying a value in requests will give log for entire range given as value.

    Attribute Name - from

    Description
    Specifying a range in requests will get the log of date from and including the date specified.

    Attribute Name - to

    Description
    Specifying a range in requests will get the log of date until and including the date specified.

    Sample Request

    Please find an example input message below:


    Response

    Response Model — No Rates and Inventory Found

    In the case where there is no rates or inventory found for provider based on the parameters provided.

    Success

    Errors

    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

    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.


    Endpoint

    POST


    Sample Request

    Please find an example input message below.


    Mandatory elements

    Element name - request

    Description
    The request element is the root of every rate and inventory listing call.

    Attribute Name

    Attribute
    Description

    Attribute Name - hotelid / hotel_id / ClientID

    Description
    IT provider's unique hotel id / Client id.

    Element name - ChannelID

    Description
    Specifying a value in requests will give log for specific channel

    Response

    Success Response


    Error Response

    Errors due to invalid parameters

    This error will be received if allocated with incorrect Hotel ID / Client ID.

    Bulk Rates & Inventory Logs (Future Date)

    The Bulk Rates & Inventory Log call is used to retrieve the information on Rates & Inventory (availability) for specific property for requested future date range.


    Endpoint

    POST

    Sample Request (Specific Date Range)

    Please find an example input message below.

    Sample Request (Full Year)

    Please find an example input message below.

    Mandatory elements

    Element name - request

    Description
    The request element is the root of every rate and inventory listing call.

    Attribute Name

    Attribute
    Description

    Attribute Name - hotelid / hotel_id / ClientID

    Description
    IT provider's unique hotel id / Client id.

    Element name - date

    Description
    Specifying a value in requests will give log for entire range given as value.

    Attribute Name - from

    Description
    Specifying a range in requests will get the log of date from and including the date specified.

    Attribute Name - to

    Description
    Specifying a range in requests will get the log of date until and including the date specified.

    Element name - fullyear

    Description
    The element to get full year's rates & inventory log (every rate and room type - for a year starting from today).

    Response (Specific Date Range)

    Response Model

    Success Response

    Response (Full Year)

    Response Model

    Result will include property's all room and rate plan combination ARI data for an entire year starting from current date.

    Success Response

    • 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 Response


    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.

    OTA Rateplan Pull API

    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.


    Endpoint

    POST

    Header

    Header
    Type
    Required
    Description

    Attributes

    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.


    Sample Request

    Please find an example input message below.


    Response

    Success Response

    Error Response

    Errors Response 1

    Errors Response 2

    Errors Response 3

    Errors Response 4

    Global Users

    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:

    1. Are defined as users who can access all the properties and can view details of properties as per their convenience.

    2. Allow partner to create multiple users for a property to access Su extranet.

    3. Assign specific properties to the user.

    Generate a Token

    API used to get tokenid and encrypted propertyId:

    Endpoint

    POST

    Chain Users

    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.

    1. Chain ID can be created to link a group of properties together.

    2. Chain user associated to a chain ID will automatically have access to all listings linked to the same chain ID.

    3. Chain ID can be created or added for property via API or directly via extranet.

    Widget API

    We support Widget API for:

    • channel-Mapping

    https://connect-sandbox.su-api.com/SUAPI/jservice/invratedetails  
    https://connect-sandbox.su-api.com/SUAPI/jservice/mappings
    https://connect-sandbox.su-api.com/SUAPI/jservice/BulkARIdetails  
    https://connect-sandbox.su-api.com/SUAPI/jservice/OTARateplanPull
    booking-details
  • mbs

  • The Widget API in a Channel Manager enables the integration of channel mapping widgets into client's applications.

    Generate a Token

    Mapping Script

    Agoda

    Expedia

    Booking.com

    Channel Mapping API

    Traveloka V2

    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 Required
    Endpoint

    POST


    Attributes

    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.


    Phone array (Required)

    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.

    Active status indicates user can access extranet. Inactive remove user's access to SU extranet.


    Type string (Required)

    Type of the user.

    There are two types of users:

    • Global

    • Chain


    Properties string (Required)

    Specifies property(s) to be assigned/linked to global user.

    Add the property id as the value in the request.

    Sample Request


    Response

    Sample Success Response

    Error

    This error will occur when 'type' of user is not specified in the request.

    Sample Error Response (990)

    Error

    This error will occur when 'property name' field does not contain any valid property name or is empty in the request.

    Sample Error Response (992)

    Error

    This error will occur when valid Email-ID is not passed in the request.

    Sample Error Response (989)

    Error

    This error will occur when valid country code is not passed or if the field is empty in the request.

    Sample Error Response (991)

    Error

    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)

    Sample Request

    Attributes


    hotelid string (Required)

    Id of the property.


    Response

    Attributes


    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.


    Channel Code List


    channel_code
    channel_name
    encrypted_channel_code

    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.

    Endpoint

    POST

    Attributes

    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.


    Phone array (Required)

    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.

    Sample Request


    Response

    Sample Success Response

    Error

    This error will occur when 'type' of user is not specified in the request.

    Sample Error Response (990)

    Error

    This error will occur when valid Email-ID is not passed in the request.

    Sample Error Response (989)

    Error

    This error will occur when valid country code is not passed or if the field is empty in the request.

    Sample Error Response (991)

    Error

    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)

    Error

    This error will occur when valid Chain ID is not passed or if the field is empty in the request.

    Sample Error Response (995)

    Error

    This error will occur when valid contact person is not passed or if the field is empty in the request.

    Sample Error Response (1008)

    Channel Password Setup

    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.)


    Endpoint

    POST


    Attributes

    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.

    Possible values:

    • "setup" → Performs both create and update operations. If the channel password does not exist in the system, it will create it; otherwise, it will update the existing one.

    • "Remove" → Directly performs a straightforward remove operation.


    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.

    Possible values:

    • "Active" → Channel integration is enabled

    • "Inactive" → Channel integration is disabled


    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.


    Sample Request


    Response


    Success Response - 200 Body Elements

    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.

    Will be "Success" for successful operations.


    Errors Response - 400 Body Elements

    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.

    For example: "400" indicates a bad request.

    ShortText string

    A short description of the error.

    Deny/Cancel Request Booking

    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.


    Sample Request

    The request body consists of a bookingid. This is the booking id (channelbookingid_hotelid) as allocated in booking and status as cancel.


    Request Body Parameters

    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.

    Accepted values are:

    • dates_not_available

    • not_a_good_fit


    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.


    Response

    Sample Success Response (200)


    Error

    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)

    Rate Plan Mapping API

    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.)


    Endpoint

    POST


    Attributes

    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.

    Possible values:

    • "setup" → Performs both create and update operations. If the channel password does not exist in the system, it will create it; otherwise, it will update the existing one.

    • "update" → Directly performs a straightforward remove operation.


    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.

    Possible values:

    • "RP" → Room based Pricing


    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.

    Possible values:

    • eac - Extra adult and child

    • eb - Extra bed


    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).


    Sample Request


    Response


    Success Response - 200 Body Elements

    Status string

    Indicates the result of the API call.

    Will be "Success" for successful operations.


    Errors Response - 400 Body Elements

    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.

    For example: "400" indicates a bad request.

    ShortText string

    A short description of the error.

    Channel Password Setup

    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.)


    Endpoint

    Channel Password Setup

    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.)


    Endpoint

    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

    Google

    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

    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)

    Reporting - Cancellation Due to Invalid CC (Booking.com)

    Bulk ARI Update

    Marketing Insight API - 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

    POST

    Attributes

    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.

    Possible values:

    • "setup" → Performs both create and update operations. If the channel password does not exist in the system, it will create it; otherwise, it will update the existing one.

    • "remove" → Directly performs a straightforward remove operation.


    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.

    Possible values:

    • "Active" → Channel integration is enabled

    • "Inactive" → Channel integration is disabled


    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.

    Possible values:

    • "OBP" → Occupancy based Pricing

    • "RP" → Room based Pricing


    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.


    Sample Request


    Response


    Success Response - 200 Body Elements

    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.

    Will be "Success" for successful operations.


    Errors Response - 400 Body Elements

    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.

    For example: "400" indicates a bad request.

    ShortText string

    A short description of the error.

    POST

    Attributes

    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.

    Possible values:

    • "setup" → Performs both create and update operations. If the channel password does not exist in the system, it will create it; otherwise, it will update the existing one.

    • "remove" → Directly performs a straightforward remove operation.


    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.

    Possible values:

    • "Active" → Channel integration is enabled

    • "Inactive" → Channel integration is disabled


    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.

    Possible values:

    • "OBP"

    • "RP"


    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.


    Sample Request


    Response


    Success Response - 200 Body Elements

    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.

    Will be "Success" for successful operations.


    Errors Response - 400 Body Elements

    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.

    For example: "400" indicates a bad request.

    ShortText string

    A short description of the error.

    Rate Plan Mapping API

    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.)


    Endpoint

    POST


    Attributes

    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.

    Possible values:

    • "setup" → Performs both create and update operations. If the channel password does not exist in the system, it will create it; otherwise, it will update the existing one.

    • "remove" → Directly performs a straightforward remove operation.


    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.

    Possible values:

    • RP

    • OBP


    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.

    Possible values:

    • eac - Extra adult and child

    • eb - Extra bed


    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).


    Sample Request


    Response


    Success Response - 200 Body Elements

    Status string

    Indicates the result of the API call.

    Will be "Success" for successful operations.


    Errors Response - 400 Body Elements

    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.

    For example: "400" indicates a bad request.

    ShortText string

    A short description of the error.

    Rate Plan Mapping API

    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.)


    Endpoint

    POST


    Attributes

    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.

    Possible values:

    • "setup" → Performs both create and update operations. If the channel password does not exist in the system, it will create it; otherwise, it will update the existing one.

    • "remove" → Directly performs a straightforward remove operation.


    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.

    Possible values:

    • RP

    • OBP


    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).


    Sample Request


    Response


    Success Response - 200 Body Elements

    Status string

    Indicates the result of the API call.

    Will be "Success" for successful operations.


    Errors Response - 400 Body Elements

    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.

    For example: "400" indicates a bad request.

    ShortText string

    A short description of the error.

    Reporting - Invalid CC (Booking.com)

    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.

    Endpoint

    POST


    Attributes


    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.

    • The request body consists of a request root node. This is the parent node to the required hotelid / hotel_id / ClientID, reservation_notif_id, report.

    • The required child node hotelid / hotel_id / ClientID contains the IT provider's hotel id for which the provider wishes to report invalid CC or guest no-show.

    Sample Request


    Response

    Sample Error Response (400)


    Sample Success Response

    Rate Plan Mapping API

    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.)


    Endpoint

    POST


    Attributes

    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.

    Possible values:

    • "setup" → Performs both create and update operations. If the channel password does not exist in the system, it will create it; otherwise, it will update the existing one.

    • "update" → Directly performs a straightforward remove operation.


    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.

    Possible values:

    • "RP" → Room based Pricing


    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.

    Possible values:

    • eac - Extra adult and child

    • eb - Extra bed


    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.


    Sample Request


    Response


    Success Response - 200 Body Elements

    Status string

    Indicates the result of the API call.

    Will be "Success" for successful operations.


    Errors Response - 400 Body Elements

    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.

    For example: "400" indicates a bad request.

    ShortText string

    A short description of the error.

    Channel Password Setup

    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.)


    Endpoint

    Review API

    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

    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 to them.

    • This feature enables properties to communicate with guests rather than having to login to channel extranet.

    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/reporting

    AirBnB

    AirBnB 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.

    My Booking Site

    Contract - Introduction

    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

    POST

    Attributes

    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.

    Possible values:

    • "setup" → Performs both create and update operations. If the channel password does not exist in the system, it will create it; otherwise, it will update the existing one.

    • "remove" → Directly performs a straightforward remove operation.


    channelid numeric (Required)

    Specifies the Channel Code for OTA in Su.


    status string (Required)

    Defines the status of the channel connection in the system.

    Possible values:

    • "Active" → Channel integration is enabled

    • "Inactive" → Channel integration is disabled


    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.


    Sample Request


    Response


    Success Response - 200 Body Elements

    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.

    Will be "Success" for successful operations.


    Errors Response - 400 Body Elements

    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.

    For example: "400" indicates a bad request.

    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).


    Retrieve Review

    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.


    Endpoint


    Attributes

    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.

    Possible values: "published", "created", "in_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.


    Sample Request


    Response

    Sample Success Response


    Response Body Element

    Status string

    Indicates the result of the API call.

    Will be "Success" for successful operations.

    Will be always "Fail" in case of an error response.


    Review Reply

    Partners can reply to guest reviews on the supported channel, i.e., Booking.com.


    Endpoint

    POST


    Attributes

    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.


    Sample Request


    Response

    Sample Success Response


    Sample Error Response

    Response Body Element

    Status string

    Indicates the result of the API call.

    Will be "Success" for successful operations.

    Will be always "Fail" in case of an error response.


    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.

    Will be "Success" for successful operations.

    Messages can be from guest with a booking or without a booking.

  • Only available for supported channel(s).

  • Only available via API.


  • Collection of Messages from OTA

    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.

    Endpoint

    END POINT: Please provide endpoint for messages delivery.

    Authorization String: Partner to allocate with Basic Authentication credentials.

    TYPE
    JSON METHOD
    MESSAGE SENDER
    MESSAGE RECEIVER

    Request

    PUSH

    IT Provider

    STAAH

    Attributes


    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 ( - ).


    user_details object

    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.

    OTA User Role and ID (only allocated for Airbnb)


    roles array

    roles array contains all the different roles and the details which are involved in the messaging.

    Attributes


    role string (Required)

    Role of the user.


    user_ids string (Required)

    User id of the specific role and user combination.


    users array

    users array contains all the user and their details such as name, location, preferred_locale and ids.

    OTA User details (only allocated for Airbnb)

    Attributes


    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.

    booking_details object

    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.

    OTA booking details (only allocated for Airbnb)

    Attributes


    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.

    Sample Request


    Response

    If acknowledgement is not received as required, system will try to repost the message 3 times. After 3 attempts, message will be removed from queue.

    Sample Success Response


    Reply to Message

    The response messages will be delivered to respective OTA accordingly.

    TYPE
    JSON METHOD
    MESSAGE SENDER
    MESSAGE RECEIVER

    Request

    POST

    STAAH

    IT Provider

    Endpoint

    POST


    Attributes


    hotelid / hotelcode string (Required)

    Su property ID.


    channelcode string (Required)

    Channel Code.

    Accepted values must be either 19 or 244 or 9:

    • Booking.com: 19

    • Airbnb: 244

    • Expedia: 9


    message string (Required)

    The message replied from property to OTA.

    To use line breaker within message, Airbnb supports: "\n" and Booking.com supports: "\\n"


    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.


    Sample Request


    Response

    Sample Success Response


    Error

    This error will be received if provided with incorrect hotelid / hotelcode or required element is missing.

    Sample Error Response


    Channel Code(s)

    Code
    Channel (OTA)

    244

    Airbnb

    19

    Booking.com

    9

    Expedia

    Bulk ARI Update

    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.

    Endpoint

    POST


    Sample Request

    Retrieve AirBnB Cancel Reservation Details API

    Su provides this endpoint CancelReservationAB for retrieving details of AirBnB canceled reservations.

    Endpoint

    POST


    Attributes

    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 Request


    Response


    Sample Success Response: Accepted

    Sample Success Response: Cancelled by Host


    Error

    Error: Response for Notification

    Reporting - Cancellation Due to Invalid CC (Booking.com)

    You can report Cancellation due to Invalid CC booking for a specific hotel id with the reservation notification id.

    Endpoint

    POST


    Attributes


    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.

    • The request body consists of a request root node. This is the parent node to the required hotelid / hotel_id / ClientID, reservation_notif_id, and report.

    • The required child node hotelid / hotel_id / ClientID contains the IT provider's hotel id for which the provider wishes to report invalid CC or guest no-show.

    Sample Request


    Response

    Sample Error Response

    Sample success response

    Reporting - No Show (Booking.com & Goibibo)

    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.

    Endpoint

    POST


    Attributes


    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.

    • The request body consists of a request root node. This is the parent node to the required hotelid / hotel_id / ClientID, reservation_notif_id, report.

    • The required child node hotelid / hotel_id / ClientID contains the IT provider's hotel id for which the provider wishes to report invalid CC or guest no-show.

    Sample Request


    Response

    Sample Error Response


    Sample Success Response

    Marketing Insight API - Booking.com

    Get the Marketing insight reports from the booking.com

    Endpoint

    POST


    Attributes


    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.


    Sample Request


    Response

    Sample success response

    No hotelid provided

    In case of no channelhotelid or report provided

    Final AirBnB Cancel Reservation API

    Endpoint

    POST


    Cancel Reservation

    This API handles cancellations and generate reports related to canceled reservations for AirBnB.

    Authentication

    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}

    Trip Issue

    Authentication

    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}

    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/CancelReservationAB
    https://connect-sandbox.su-api.com/SUAPI/jservice/reporting
    https://connect-sandbox.su-api.com/SUAPI/jservice/reporting
    https://connect-sandbox.su-api.com/SUAPI/jservice/reporting.php
    

    Replace {Authorization String} with the API key given by STAAH

    Booking.com

    Booking.com Content API

    Property Management

    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.

  • Attributes

    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 Request


    Response


    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

    Trip Issue API (AirBnB)

    Endpoint

    POST


    Attributes

    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 Request


    Response


    Sample Success Response


    Request

    Attributes

    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 Request


    Response


    Sample Success Response


    Sample Success Response

    Error

    Cancel Reservation

    Endpoint

    POST

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

    Attributes

    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 Request


    Response

    Sample Success Response


    Error

    Error: Fail


    Error: Fail

    Update Contract

    Update Contract API enables you to update an existing contract.


    Endpoint

    POST

    Attributes

    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.


    Sample Request


    Response

    Sample Success Response

    Error

    Sample Error Response

    Response Body Elements

    Status string

    The status of the response.

    • Success - Indicates the success of the operation.

    • Fail - Indicates if the operation gets failed.


    Message string

    The message in the response.


    Ruid string

    Specifies the unique request ID.

    You can share this ID with Booking.com customer support when you run into an issue. This can help in understanding what went wrong.


    Data object

    The response data.

    Confirm Reservation

    Authentication

    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}

    Replace {Authorization String} with the API key given by STAAH

    Confirm Reservation (MybookingSite)

    Endpoint

    POST


    Attributes

    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 Request


    Response

    Sample Success Response


    Error


    Fail

    Resend Contract

    Resent Contract API allows you to resend the contract invitation to a specified hotel.


    Endpoint

    POST

    Attributes

    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.

    • The system sees this email as the unique identifier for the Accommodation Partner.

    • It should be in valid email format.


    legal_entity_id string (Required)

    The identity of the legal entity.


    Sample Request


    Response

    Sample Success Response

    Error

    Sample Error Response

    Response Body Elements

    Status string

    This field indicates the success of the request.

    • Success - It confirms the successful operation and the data was fetched without any errors.

    • Fail - It confirms that the operation got failed.


    Message string

    The message in the response.


    Ruid string

    Specifies the unique request ID.

    You can share this ID with Booking.com customer support when you run into an issue. This can help in understanding what went wrong.


    Data object

    Contains the response data.

    Notification

    Authentication

    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}

    Create Contract

    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.


    Endpoint

    POST

    Property Statuses

    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:

    Create Property

    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.


    Endpoint

    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/update
    https://connect-sandbox.su-api.com/SUAPI/jservice/bdc/contract/resend

    Contact Details

    Property Settings

    Property Detail

    {
        "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)"
            }
        ]
    }
    Fail
    https://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

    Notification API (Airbnb)

    Endpoint

    POST


    Attributes

    hotelid string (Required)

    Unique identifier for the hotel.


    Sample Request


    Response

    Sample Success Response


    Error


    Fail

    Attributes

    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.

    The system sees this email as the unique identifier for the Accommodation Partner.

    It should follow standard email format.


    legal_contact_phone_number string (Required)

    The Accommodation Partner's legal contact phone number.

    It should include the country code (for example, +1, +44).

    Follows ITU E.164.


    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.

    To retrieve a list of the available country codes, see retrieving country codes.


    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.

    Should start with http:// or https://.


    contract_countries string (Required)

    The countries in which the Accommodation Partner has properties.

    You should include all the countries in which the Accommodation Partner has properties in. To retrieve a list of the available country codes, see retrieving country codes.


    language string (Required)

    The preferred language in which the Accommodation Partner wants to communicate.

    For the language codes, see Booking.com Language Code.


    Sample Request


    Response

    Sample Success Response

    Error

    Sample Error Response

    Response Body Elements

    Status string

    This field indicates the success of the request.

    • Success - It confirms that the property legal details were successfully fetched and the data was fetched without any errors.

    • Fail - It confirms that the property legal details were not fetched and the operation got failed.


    Message string

    This field provides a user-friendly message regarding the operation performed.


    Ruid string

    Specifies the unique request ID.

    You can share this ID with Booking.com customer support when you run into an issue. This can help in understanding what went wrong.


    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.

    Uncommon statuses

    These statuses shouldn't occur frequently, but can be part of a property's natural life-cycle.

    Property status
    Description
    Recommended actions

    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.

    Other statuses

    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.

    Property status
    Notes

    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.

    Attributes

    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.

    Only allowed for new properties.


    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.

    Specify 24-hour check-in by using 00:00 for both from and until.

    from enumerated string (Required)

    Start time for check-in (required).

    Accepted values follow the Booking.com Check-In / Check-Out Times format.

    until enumerated string (Optional)

    End time for check-in.

    Accepted values follow the Booking.com Check-In / Check-Out Times format.


    check_out object

    Object containing check-out times.

    from enumerated string (Optional)

    Start time for check-out (optional).

    Accepted values follow the Booking.com Check-In / Check-Out Times format.

    until enumerated string (Required)

    End time for check-out (required if check_out > from is specified).

    Accepted values follow the Booking.com Check-In / Check-Out Times format.


    property_name string (Required)

    Name of the hotel property on Booking.com.

    Does not support using CJK Unified Ideographs.


    property_category integer (Required)

    Category identifier for the hotel.

    For a list of supported property class type codes, see Property Class Type Code.


    primary_language enumerated string (Optional)

    Main preferred language spoken at the property.

    Default: en-gb.

    For a list of supported language codes, see Booking.com Language Code table.


    languages_spoken array of enumerated strings (Optional)

    Array of languages spoken at the property.

    Can contain multiple Language elements.

    For a list of supported language codes, see Booking.com Language Code table.


    room_count integer (Required)

    Number of sellable units/rooms available at the hotel.

    A "sellable unit" is the smallest possible space that a guest can book at the property.

    In a property with 200 rooms, each room is a sellable unit, and the value would be 200.

    In a holiday home, guests must typically book the home in its entirety, making the value 1.


    floor_count integer (Optional)

    The total number of floors in the building/hotel, excluding the underground floors.

    Max value can be 200.


    stars string (Optional)

    The number of stars, rating of the hotel.

    • Accepts values: 0–5.

    • Starting from 1, accepts values in increments of .5.

    • Some countries don't use star ratings.

    • To see whether your property belongs to a Hotel property type, see the .


    target enumerated string (Required)

    Specifies whether it is a test or production-ready property.

    Accepts the following values:

    • test

    • production


    provider_property_id string (Optional)

    Identifier for the property provider.

    Recommended for new properties. For example, the provider's internal ID.

    Can contain a maximum of 16 characters.


    currency_code enumerated string (Optional)

    The Booking.com defined currency for the property.

    In select countries a currency other than the default can be selected.

    For more details see the information the currency documentation.


    physical_address object (Required)

    Object containing address details.

    city_name string (Required)

    City where the hotel is located.

    Does not support using CJK Unified Ideographs.

    country_code enumerated string (Required)

    ISO code for the country (IN for India).

    For more information on how to retrieve the country code details, see xml/countries endpoint.

    postal_code string (Optional)

    Postal code of the hotel's location.

    Make sure the zip code (postal_code) is relevant to the country specified in the country_code.

    address_line string (Required)

    Detailed address of the hotel.

    Does not support using CJK Unified Ideographs.

    Should not contain abbreviations (such as "Rd." for "Road") and should not exceed 255 characters.

    display_address boolean (Optional)

    Boolean indicating if the address should be displayed.

    - true : Shows the full address to the guest. - false : Hides the full address from the guest.


    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.

    Should not contain abbreviations (such as "Rd." for "Road") and should not exceed 255 characters.

    language_code enumerated string (Required)

    Language code for translation.

    Used for non-English translations.

    For a list of supported language codes, see Booking.com Language Code table.

    property_name enumerated string (Required)

    Name of the hotel property (translated) on Booking.com.

    Does not support using CJK Unified Ideographs


    Sample Request


    Response

    Sample Success Response

    Error

    Any errors encountered from the Su side will be contained within an "Error" object.

    Sample Error Response (Validation Error Response)

    Sample Error Response (Booking.com Error Response)

    Response Body Elements

    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.

    Retrieve Property

    This endpoint retrieves detailed information about a specific property using its hotel_id and channel_hotel_id.


    Endpoint

    POST

    Attributes


    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.


    Sample Request


    Response

    Sample Success Response

    Success Response Body Elements

    Status string

    The success or failure of the operation.


    Ruid string

    Specifies the unique request ID.

    You can share this ID with Booking.com customer support when you run into an issue. This can help in understanding what went wrong.


    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.

    A value of 00:00 for both from and until means the property accepts 24-hour check in.

    from enumerated string

    Start time for check-in.

    until enumerated string

    End time for check-in.


    check_out object

    Object containing check-out times.

    A value of 00:00 for both from and until means the property accepts 24-hour check in.

    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.

    Contains one of the following values:

    • test

    • production


    property_id string

    Identifier for the property provider.

    Recommended for new properties. For example, the provider's internal ID. Can contain a maximum of 16 characters.


    status string

    Current status or condition of the property.

    Indicates if the property is operational, under renovation, etc.

    See allowable values of the statuses and their recommended actions, click .


    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.

    - true : Shows the full address to the guest. - false : Hides the full address from the guest.


    legal_entity_id string

    The unique id for the legal entity associated with the hotel.


    Message string

    The message in the response.

    Provides feedback to users or systems about the request.


    Sample Error 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.

    For example: "400" indicates a bad request.

    ShortText string

    A short description of the error.


    Message string

    A message providing more information about the error.

    Set Contact

    You can set multiple contacts with different contact types but with the same contact details.


    Endpoint

    POST

    Header
    Type
    Required
    Description

    Attributes


    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.

    You must create one contact details for the General contact type.

    Note that you can create at a maximum only one contact detail per property for the General contact type.


    contact_profiles object (Required)

    A list of profiles associated with the contact (e.g., invoices, general).

    type enumerated string (Required)

    Specify the contact type.

    For a list of approved contact types, see .


    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.

    You can set only one address per contact type.

    city_name string (Required if address is specified)

    The city name where the contact is located.

    Any valid city name (e.g., "Wellington")

    country_codeenumerated string (Required)

    The ISO country code of the contact's location.

    For more information on how to retrieve the country code details, see .

    Must be a valid ISO 3166-1 alpha-2 country code. e.g., "NL" for Netherlands

    postal_code string (Required)

    The postal code of the contact's location.

    Make sure the postal code is relevant to the country specified in the country_code.

    address_line string (Required)

    The street address of the contact.

    Should not contain abbreviations (such as "Rd." for "Road") and should not exceed 255 characters.

    language_code enumerated string (Required)

    The language code for the address.

    For a list of supported language codes, see .


    contact_person object

    Details about the contact person.

    gender enumerated string (Optional)

    Gender of the contact person.

    Accepts: Male, Female. Default: null.

    To set as empty, omit the entire attribute (instead of specifying "").

    name string (Required)

    Full name of the contact person.

    job_title enumerated string (Optional)

    Job title of the contact person.

    For a list of supported job titles and their code, see .

    By default, it is set to Unknown.

    language_code string (Required)

    Language code for the contact person (e.g., 'en-gb').

    For a list of supported language codes, see .


    phones array (Required)

    List of phone numbers associated with the contact.

    phone_number string (Required)

    The actual phone number (all international phone numbers).

    • Follows the format: \+[0-9]+

    • The phone number is also validated based on the formatting rules of the specified country code.

    phone_tech_type enumerated string (Required)

    Technology type of the phone (for example, '1' for landline).

    • For a list of supported values, see .

    • PhoneTechType 3 can have at most 3 entries.

    • PhoneTechType 1 and 5 can have at most 1 entry.

    extension string (Optional)

    Extension number for the phone, if applicable.

    Only accepted when phone_tech_type="1".


    email string (Required)

    Email address of the contact.

    Make sure to specify email address in valid email format.

    For example, test@abc.com.


    Sample Request


    Response

    Sample Success Response

    Error

    Sample Error Response 1

    Sample Error Response 2

    Sample Error Response 3

    Sample Error Response 4

    Response Body Elements

    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.

    Retrieve Property Settings

    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.


    Endpoint

    POST

    Contact Profile Types

    Contact Profile Types

    Value
    Description
    Required
    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/json

    Contact 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

    property class type table

    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.

    Contact Profile Type
    xml/countries endpoint
    Booking.com Language Code table
    Booking.com Job Title Code
    Booking.com Language Code table
    Phone Technology Type Code
    {
       "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"
    }
    Header
    Header
    Type
    Required
    Description

    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.


    Sample Request


    Response

    Sample Success Response

    Success Response Body Elements

    Status string

    Indicates the overall status of the request.

    In this case, "Success" means the operation was completed successfully.


    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.

    Can be one of the values: 45, 60, 75, 90.

    pricing_type string

    Specifies the property's pricing type.

    Can be Standard, LOS or OBP.

    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.

    Possible values are: - PETS_ALLOWED, - PETS_NOT_ALLOWED and - PETS_ALLOWED_ON_REQUEST.

    pets_price_type string

    Specifies pets price type option for the property.

    Possible values are: - FREE - CHARGES_MAY_APPLY.


    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.

    Possible values are: - NONE, - HANDLED_BY_PROPERTY and - HANDLED_BY_BOOKING_COM.

    damage_programme_terms_agreed boolean

    Specifies if you agree to the terms for the damage programme.

    To view damage deposit terms, you can view Retrieve Property Settings 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.

    You can specify the following: the minimum age the children are welcome and additional rules for existing/extra bed or crib.

    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.

    Possible values are: - EXISTING_BED - EXTRA_BED - CRIB - EXTRA_BED_FOR_ADULTS.

    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.

    Can be PER_NIGHT or PER_STAY.

    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.

    Can be one of: POSTAL_MAIL or EMAIL.

    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).


    Errors

    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.

    For example: "400" indicates a bad request.

    ShortText string

    A short description of the error.


    Message string

    A message providing more information about the error.

    Property Status Values and Recommended Actions
    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.