# Review API

{% hint style="success" %}
**This Review API is only supported for Booking.com and Expedia only.**

\
Use the correct OTA code for implementation:&#x20;

**Booking.com Channel ID = 19**.

**Expedia Channel ID = 9.**
{% endhint %}

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

***

## <mark style="color:yellow;">Retrieve Review</mark>

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.

***

### <mark style="color:yellow;">Endpoint</mark>

{% code overflow="wrap" %}

```url
Please provide endpoint for reviews delivery. 

Authorization String: Partner has to provide Authorization credentials.
```

{% endcode %}

***

#### <mark style="color:yellow;">Attributes</mark>

`hotel_id` <mark style="color:orange;">**alphanumeric**</mark>

Specifies the hotel ID for the property.

***

`channel_id` <mark style="color:orange;">**string**</mark>

The identifier of the connected channel (e.g. 19 for Booking.com and 9 for Expedia).

***

`channel_property_id` <mark style="color:orange;">**string**</mark>&#x20;

Specifies the channel-specific hotel ID&#x20;

***

`channel_review_id` <mark style="color:orange;">**string**</mark>&#x20;

Specifies the channel-specific review for the property.

***

`channel_booking_id` <mark style="color:orange;">**string**</mark>&#x20;

Specifies the unique booking identifier assigned by the channel.

***

`review_title` <mark style="color:orange;">**string**</mark>&#x20;

Specifies the title of review for the property.

***

`review_description` <mark style="color:orange;">**string**</mark>&#x20;

Specifies the description for the review.&#x20;

***

`review_negative_description` <mark style="color:orange;">**string**</mark>&#x20;

Specifies the negative description for the review.

***

`review_score` <mark style="color:orange;">**object**</mark>

An object that contains the rating categories and corresponding scores provided by the guest. The categories included depend on the data received from the channel.

{% hint style="info" %}
Possible values range: 0 to 10 (type : float)
{% endhint %}

***

`review_type` <mark style="color:orange;">**string**</mark>

Specifies the type of review.

***

`review_status` <mark style="color:orange;">**string**</mark>

Indicates the status of the review.

{% hint style="info" %}
**Possible values:** `"published"`, `"created"`, `"in_review"`.
{% endhint %}

***

`review_date` <mark style="color:orange;">**string**</mark>

The date when the review was created.&#x20;

{% hint style="info" %}
Format: `YYYY-MM-DD`.
{% endhint %}

***

`is_eligible_to_respond` <mark style="color:orange;">**boolean**</mark>

Indicates whether the host is allowed to respond to the review.

***

`reviewee_name` <mark style="color:orange;">**string**</mark>

The name of the host being reviewed.

***

### <mark style="color:yellow;">**Sample Request**</mark>

```json
{
    "hotel_id": "TEST",
    "channel_property_id": "123456",
    "channel_id": "19",
    "channel_review_id": "19_5OL1QYsA",
    "channel_booking_id": "5083008755",
    "review_title": "Amazing stay!",
    "review_description": "Clean room, friendly staff, good location.",
    "review_negative_description": "",
    "review_score": {
        "facilities": 5,
        "comfort": 5,
        "staff": 2.5,
        "value": 5,
        "clean": 5,
        "location": null,
        "review_score": 6
    },
    "review_type": "guest_to_host",
    "review_status": "published",
    "review_date": "2025-01-01",
    "is_eligible_to_respond": "Y",
    "reviewee_name": "John"
}
```

***

### <mark style="color:yellow;">Response</mark>

#### <mark style="color:yellow;">Sample Success Response</mark>&#x20;

{% tabs %}
{% tab title="Sample Success Response" %}

```json
{
"status": "Success"
}
```

{% endtab %}
{% endtabs %}

***

#### <mark style="color:yellow;">Response Body Element</mark>

`Status` <mark style="color:orange;">**string**</mark>

Indicates the result of the API call.&#x20;

{% hint style="info" %}
Will be `"Success"` for successful operations.

Will be always `"Fail"` in case of an error response.
{% endhint %}

***

## <mark style="color:yellow;">Review Reply</mark>

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

***

### <mark style="color:yellow;">Endpoint</mark>

<mark style="color:green;background-color:green;">**`POST`**</mark>&#x20;

<div align="left"><figure><img src="/files/lKCZjXkQwk8unXJYirMu" alt="" width="56"><figcaption></figcaption></figure></div>

{% code overflow="wrap" %}

```url
https://connect-sandbox.su-api.com/SUAPI/jservice/review/reply
```

{% endcode %}

***

#### <mark style="color:yellow;">Attributes</mark>

`hotel_id` <mark style="color:orange;">**alphanumeric (Required)**</mark>

Specifies the hotel ID for the property.

***

`channel_id` <mark style="color:orange;">**alphanumeric (Required)**</mark>&#x20;

Identifier of the distribution channel (OTA).&#x20;

***

`channel_property_id` <mark style="color:orange;">**alphanumeric (Required)**</mark>&#x20;

Specifies the channel-specific hotel ID.&#x20;

***

`channel_review_id` <mark style="color:orange;">**string (Required)**</mark>&#x20;

Specifies the channel-specific review ID

***

`review_reply` <mark style="color:orange;">**string (Required)**</mark>&#x20;

Specifies the reply from the partner for the review.

***

### <mark style="color:yellow;">**Sample Request**</mark>

```json
{
  "hotel_id": "Test256",
  "channel_id": "19",
  "channel_property_id": "12837615",
  "channel_review_id": "19_xyz",
  "review_reply": "Thank you for your feedback!"
}
```

***

### <mark style="color:yellow;">Response</mark>

#### <mark style="color:yellow;">Sample Success Response</mark>&#x20;

{% tabs %}
{% tab title="Sample Success Response" %}

```json
{
  "Status": "Success",
  "Warnings": [],
  "Errors": [],
  "Message": "Review replied successfully",
  "Ruid": ""
}
```

{% endtab %}
{% endtabs %}

***

#### <mark style="color:yellow;">Sample Error Response</mark>&#x20;

{% tabs %}
{% tab title="Sample Error Response 1 " %}

```json
{
  "Errors": {
    "Code": "558",
    "ShortText": "hotel_id: Invalid HotelCode (MEE1)"
  },
  "Status": "Fail"
}
```

{% endtab %}

{% tab title="Sample Error Response 2" %}

```json
{
  "Errors": {
    "Code": "947",
    "ShortText": "Property is inactive"
  },
  "Status": "Fail"
}
```

{% endtab %}

{% tab title="Sample Error Response 3" %}

```json
{
  "Errors": {
    "Code": "573",
    "ShortText": "channel-mapping not found for this property!"
  },
  "Status": "Fail"
}
```

{% endtab %}

{% tab title="Sample Error Response 4" %}

```json
{
  "Status": "Fail",
  "Errors": [],
  "Message": "",
  "Ruid": "e527c45a-f23a-4ee4-beb2-7d21f7699b1",
}
```

{% endtab %}
{% endtabs %}

#### <mark style="color:yellow;">Response Body Element</mark>

`Status` <mark style="color:orange;">**string**</mark>

Indicates the result of the API call.&#x20;

{% hint style="info" %}
Will be `"Success"` for successful operations.

Will be always `"Fail"` in case of an error response.
{% endhint %}

***

`Data` <mark style="color:orange;">**object**</mark>

The response data, the root element.

***

`Message` <mark style="color:orange;">**string**</mark>

The message in the response.

***

`Code` <mark style="color:orange;">**string**</mark>

Specific error code that helps identify the type of error.

***

`ShortText` <mark style="color:orange;">**string**</mark>

A short description of the error.

Indicates channel room id and rate id.

***

`Status` <mark style="color:orange;">**string**</mark>

Indicates the result of the API call.&#x20;

{% hint style="info" %}
Will be `"Success"` for successful operations.
{% endhint %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://suissu.gitbook.io/su-api-documentation/su-channel-manager/review-api.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
