# Retrieve Set Facility of Property and Room

This endpoint retrieves the facilities associated with a property or a specific room. It can fetch facility details for both the property level (for example, parking, restaurant) and the room level (for example, minibar, internet) based on the provided `hotel_id` and `channel_hotel_id`. If a specific room's facilities are requested, the `channel_room_id` is also required.

***

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

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

<div align="left"><figure><img src="https://958347541-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FM9bn2UcBkeqtqixkl5eF%2Fuploads%2FpsybX0n39kUB8Z8WOk4X%2FSandbox%20image.png?alt=media&#x26;token=4ae73d0f-0d1a-4d73-a4e2-673dbc081d6a" alt="" width="56"><figcaption></figcaption></figure></div>

{% code overflow="wrap" %}
```url
https://connect-sandbox.su-api.com/SUAPI/jservice/bdc/facilities/retrieve
```
{% endcode %}

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

```xml
-app-id: YOUR_APP_ID
Authorization: YOUR_API_KEY
Content-Type:application/json
```

<table><thead><tr><th width="185">Header</th><th width="85">Type</th><th width="101">Required</th><th>Description</th></tr></thead><tbody><tr><td><code>app-id</code></td><td>string</td><td>Yes</td><td>Your application ID. Required for authentication.</td></tr><tr><td><code>Authorization</code></td><td>string</td><td>Yes</td><td>Your API key. for authorization. Required for authentication.</td></tr><tr><td><code>Content-Type</code></td><td>string</td><td>Yes</td><td>Must be set to <code>application/json</code>.</td></tr></tbody></table>

***

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

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

The unique property ID as assigned by the provider upon creation of the property.

***

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

The unique id for the hotel on the specific channel.

***

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

A unique identifier for the room within the specific channel (for example, a property management system or booking platform). This ID allows the system to identify and update the facilities for a particular room in the hotel.

***

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

#### <mark style="color:yellow;">**Request Body**</mark> <mark style="color:yellow;"></mark><mark style="color:yellow;">to Retrieve Property Level Facility</mark>

```json
{
   "hotel_id": "new1",
   "channel_hotel_id": "12915674"
}
```

***

#### <mark style="color:yellow;">Request Body to Retrieve Room Level Facility</mark>

```json
{
   "hotel_id": "new1",
   "channel_hotel_id": "12915674",
   "channel_room_id": "55555"
}
```

***

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

#### <mark style="color:green;">**Sample Success Response - Property Level**</mark>

```json
{
   "Status": "Success",
   "Data": [
       {
           "facility_id": 96,
           "is_available": true,
           "instances": []
       },
       {
           "facility_id": 160,
           "is_available": true,
           "instances": []
       },
       {
           "facility_id": 161,
           "is_available": true,
           "instances": []
       },
       {
           "facility_id": 2,
           "is_available": true,
           "instances": [
               {
                   "instance_id": 95879415,
                   "parking_details": {
                       "name": "Basement2 Parking",
                       "parking_type": "UNKNOWN_PARKING_TYPE",
                       "parking_location": "ON_SITE",
                       "parking_access": "ONLY_GUESTS",
                       "parking_reservation": "NOT_NEEDED",
                       "max_height_m": 0,
                       "has_valet_service": "NOT_SPECIFIED",
                       "has_onsite_staff": "NOT_SPECIFIED",
                       "has_gated_parking": "NOT_SPECIFIED",
                       "has_security_cameras": "NOT_SPECIFIED",
                       "has_ev_charging_station": "NOT_SPECIFIED",
                       "has_accessible_parking_spots": "NOT_SPECIFIED"
                   },
                   "payment_details": {
                       "charge_mode": "FREE"
                   }
               }
           ]
       },
       {
           "facility_id": 8,
           "is_available": true,
           "instances": []
       },
       {
           "facility_id": 9,
           "is_available": true,
           "instances": [
               {
                   "on_site_details": {
                       "onsite_type": "DEFAULT"
                   },
                   "surcharge_details": {
                       "surcharge_type": "DEFAULT"
                   }
               }
           ]
       },
       {
           "facility_id": 11,
           "is_available": true,
           "instances": [
               {
                   "schedule_details": {
                       "schedule": [
                           {
                               "from": {
                                   "hours": 23,
                                   "minutes": 58
                               },
                               "to": {
                                   "hours": 23,
                                   "minutes": 59
                               },
                               "day_of_week": "SUNDAY"
                           }
                       ]
                   }
               }
           ]
       },
       {
           "facility_id": 107,
           "is_available": true,
           "instances": []
       },
       {
           "facility_id": 301,
           "is_available": true,
           "instances": []
       },
       {
           "facility_id": 46,
           "is_available": true,
           "instances": []
       }
   ],
   "Message": "Facility Data Fetched Successfully",
   "Ruid": "94fff2fd-aa61-4507-8682-57b6f7026b7b"
}
```

#### <mark style="color:green;">**Sample Success Response - Room Level**</mark>

```json
{
   "Status": "Success",
   "Data": [
       {
           "facility_id": 96,
           "is_available": true,
           "instances": []
       },
       {
           "facility_id": 160,
           "is_available": true,
           "instances": []
       },
       {
           "facility_id": 161,
           "is_available": true,
           "instances": []
       },
       {
           "facility_id": 2,
           "is_available": true,
           "instances": [
               {
                   "instance_id": 95879415,
                   "parking_details": {
                       "name": "Basement2 Parking",
                       "parking_type": "UNKNOWN_PARKING_TYPE",
                       "parking_location": "ON_SITE",
                       "parking_access": "ONLY_GUESTS",
                       "parking_reservation": "NOT_NEEDED",
                       "max_height_m": 0,
                       "has_valet_service": "NOT_SPECIFIED",
                       "has_onsite_staff": "NOT_SPECIFIED",
                       "has_gated_parking": "NOT_SPECIFIED",
                       "has_security_cameras": "NOT_SPECIFIED",
                       "has_ev_charging_station": "NOT_SPECIFIED",
                       "has_accessible_parking_spots": "NOT_SPECIFIED"
                   },
                   "payment_details": {
                       "charge_mode": "FREE"
                   }
               }
           ]
       },
       {
           "facility_id": 8,
           "is_available": true,
           "instances": []
       },
       {
           "facility_id": 9,
           "is_available": true,
           "instances": [
               {
                   "on_site_details": {
                       "onsite_type": "DEFAULT"
                   },
                   "surcharge_details": {
                       "surcharge_type": "DEFAULT"
                   }
               }
           ]
       },
       {
           "facility_id": 11,
           "is_available": true,
           "instances": [
               {
                   "schedule_details": {
                       "schedule": [
                           {
                               "from": {
                                   "hours": 23,
                                   "minutes": 58
                               },
                               "to": {
                                   "hours": 23,
                                   "minutes": 59
                               },
                               "day_of_week": "SUNDAY"
                           }
                       ]
                   }
               }
           ]
       },
       {
           "facility_id": 107,
           "is_available": true,
           "instances": []
       },
       {
           "facility_id": 301,
           "is_available": true,
           "instances": []
       },
       {
           "facility_id": 46,
           "is_available": true,
           "instances": []
       }
   ],
   "Message": "Facility Data Fetched Successfully",
   "Ruid": "94fff2fd-aa61-4507-8682-57b6f7026b7b"
}
```

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

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

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

***

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

The `Data` array contains a list of facilities associated with either the property or the room, depending on the request.&#x20;

Each facility object in the array contains the following:

`facility_id` <mark style="color:orange;">**integer**</mark>

A unique identifier for the facility.

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

A boolean flag indicating whether the facility is available (`true` if available, `false` otherwise).

`instances` <mark style="color:orange;">**array**</mark>

An array that contains any specific instances or details related to the facility. For example, parking facilities may include specific parking instance details such as parking type, location, and payment information. If there are no specific instances for a facility, the array will be empty.

***

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

Provides a brief message about the outcome. Here, it states "Successfully fetch details," confirming that the requested information was retrieved.

***

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

A unique identifier for tracking the request.

***

#### <mark style="color:red;">Errors</mark>

<mark style="color:red;">**Sample Error Response 1**</mark>

```json
{
   "Errors": [
       {
           "Code": "400",
           "ShortText": "HotelCode: Invalid HotelCode ('NT711')"
       }
   ],
   "Status": "Fail",
  "Ruid": ""
}
```

<mark style="color:red;">**Sample Error Response 2**</mark>

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

<mark style="color:red;">**Sample Error Response 3**</mark>

```json
{
   "Status": "Fail",
   "Errors": [],
   "Message": "Access denied",
  "Ruid": "xxxxxx"
}
```

***

<mark style="color:yellow;">**Error Response Body Elements**</mark>

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

Indicates the result of the API call, which will be always `"Fail"` in case of an error response.

***

`Error` <mark style="color:orange;">**array**</mark>

Array that contains details about any errors that occurred during the API call. Each object in the `Errors` array contains the following properties:

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

Specific error code that helps identify the type of error.

{% hint style="info" %}
For example: `"400"` indicates a bad request.
{% endhint %}

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

A short description of the error.

***

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

A message providing more information about the error.

***

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

A unique identifier for tracking the request.
