# Manage your services

ℹ️ If rooms and tables specify the "what," **services** specify the "**when**." \
In OctoTable, a service refers to the **designated time slot for a specific offering**, such as breakfast, lunch, aperitif, or dinner. Each service has its own availability and booking rules.

\
⚙️ **Use the base resource URL** for the following examples, or [see the complete collection](https://documenter.getpostman.com/view/50380496/2sB3dK1YWg#d9174472-2cae-4d12-b012-fe7902bc9472)

```
https://api.octotable.com/octotable-pms/api/v2
```

## 🔍 Find all services

<mark style="color:green;">**`GET`**</mark> `/services`

Retrieves a list of available service for the specified property (e.g., restaurant) using the property ID [see more](https://documenter.getpostman.com/view/50380496/2sB3dK1YWg#d9174472-2cae-4d12-b012-fe7902bc9472)

**Headers**

| Name            | Value                |
| --------------- | -------------------- |
| `Content-Type`  | `application/json`   |
| `Authorization` | `Bearer <token>`     |
| `Property`      | `<your_property_id>` |

**Example**

{% tabs %}
{% tab title="Request" %}

```json
curl --location "https://api.octotable.com/octotable-pms/api/v2/services" \
--header "Cache-Control: no-cache" \
--header "Postman-Token: <calculated when request is sent>" \
--header "User-Agent: PostmanRuntime/7.32.1" \
--header "Accept: */*" \
--header "Accept-Encoding: gzip, deflate, br" \
--header "Connection: keep-alive" \
--header "Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJzdWIiOiJndWVzdCIsImlzcyI6Ik9DVE9SQVRFLVNSTCIsImV4cCI6MTcwMDY1MTY3MywiaWF0IjoxNjk5MzU1NjczLCJqdGkiOiI5OGJmZTVjMi1iYmUxLTRiMDItYWM1ZC00Njk5MTFlOGJjZDIiLCJncm91cHMiOlsiZ3Vlc3QiXSwicHJvcGVydHlfaWQiOjQ0NDc3fQ.VEsHWJ-_-R9HDhZ8L-PJ0mmqGMSu92Km9wRImGh-pSsz0wU4rKPll5SFlu_XLllGfz38f522z9jjlsNhtNlxhrCR3h1eFfQjyY2fM_8ZHh75KKaASL0U1pIwG1HKf2JTrMu9ceHqpfm2yJ5_KQgLipZRMfpCutOVx-5Lnq023Km0unz-Snb-XSP8gK8KMtRuutj8lkOFiZLskKHNIlIHJ4lUsKoh8C2GB7O3IOaKab3m6ETwB9oux8vWoB6pE6T14F9nNW1NhWfBzqSH3yC5ZA2WSZCDmFQjuInDS7BSsIKqPS8Z491ehOsZhycvchW7aSkWJ9uyX58ef0iJkqN0BQ" \
--header "Property: 0"
```

{% endtab %}

{% tab title="Response" %}

```json
{
  "data": [
    {
      "id": 33924,
      "name": "Breakfast",
      "bookable": true,
      "advance_min": 0,
      "average_stay": 60,
      "card_guarantee": false,
      "confirmation_mode": "CONFIRMED",
      "days_of_week": [
        "MONDAY",
        "SATURDAY"
      ],
      "end_time": "11:00:00",
      "max_advance": 120,
      "online": true,
      "orders_section": {
        "order_enabled": true,
        "required_fields": [
          "phone"
        ],
        "send_order_enabled": true
      },
      "show_rooms": true,
      "slots": [
        "09:30:00",
        "10:30:00"
      ],
      "start_time": "09:00:00"
    },
    {
      "id": 30280,
      "name": "Lunch (12-14h)",
      "bookable": true,
      "advance_min": 0,
      "average_stay": 60,
      "card_guarantee": false,
      "confirmation_mode": "CONFIRMED",
      "days_of_week": [
        "MONDAY",
        "TUESDAY",
        "WEDNESDAY",
        "THURSDAY",
        "FRIDAY",
        "SATURDAY",
        "SUNDAY"
      ],
      "end_time": "14:00:00",
      "max_advance": 60,
      "online": true,
      "orders_section": {
        "order_enabled": true,
        "required_fields": [
          "phone"
        ],
        "send_order_enabled": true
      },
      "show_rooms": true,
      "slots": [
        "12:00:00",
        "12:30:00",
        "13:00:00",
        "13:30:00"
      ],
      "start_time": "12:00:00"
    },
    {
      "id": 33841,
      "name": "Custom dinner",
      "bookable": true,
      "advance_min": 0,
      "average_stay": 60,
      "card_guarantee": false,
      "confirmation_mode": "WAITING_LIST",
      "days_of_week": [
        "MONDAY",
        "TUESDAY",
        "WEDNESDAY",
        "THURSDAY",
        "FRIDAY",
        "SATURDAY",
        "SUNDAY"
      ],
      "end_time": "14:00:00",
      "max_advance": 120,
      "online": true,
      "orders_section": {
        "order_enabled": true,
        "required_fields": [
          "phone"
        ],
        "send_order_enabled": true
      },
      "show_rooms": true,
      "slots": [
        "12:00:00",
        "12:30:00",
        "13:00:00"
      ],
      "start_time": "12:00:00"
    },
    {
      "id": 33925,
      "name": "Custom dinner",
      "bookable": true,
      "advance_min": 0,
      "average_stay": 60,
      "card_guarantee": false,
      "confirmation_mode": "CONFIRMED",
      "days_of_week": [
        "MONDAY",
        "TUESDAY",
        "WEDNESDAY",
        "THURSDAY",
        "FRIDAY",
        "SATURDAY",
        "SUNDAY"
      ],
      "end_time": "14:00:00",
      "max_advance": 120,
      "online": true,
      "orders_section": {
        "order_enabled": true,
        "required_fields": [
          "phone"
        ],
        "send_order_enabled": true
      },
      "show_rooms": true,
      "slots": [
        "12:00:00",
        "12:30:00",
        "13:00:00"
      ],
      "start_time": "12:00:00"
    },
    {
      "id": 30281,
      "name": "Dinner (19-22h)",
      "bookable": true,
      "advance_min": 0,
      "average_stay": 60,
      "card_guarantee": false,
      "confirmation_mode": "CONFIRMED",
      "days_of_week": [
        "MONDAY",
        "TUESDAY",
        "WEDNESDAY",
        "THURSDAY",
        "FRIDAY",
        "SATURDAY",
        "SUNDAY"
      ],
      "end_time": "22:00:00",
      "max_advance": 60,
      "online": true,
      "orders_section": {
        "order_enabled": true,
        "required_fields": [
          "phone"
        ],
        "send_order_enabled": true
      },
      "show_rooms": true,
      "slots": [
        "19:00:00",
        "19:30:00",
        "20:00:00",
        "20:30:00",
        "21:00:00",
        "21:30:00"
      ],
      "start_time": "19:00:00"
    }
  ]
}
```

{% endtab %}
{% endtabs %}

## 🔍 Find a service by ID

<mark style="color:green;">**`GET`**</mark> `/services/{service_id}`

Retrieves details of a specific calendar for the given property using the calendar ID [see more](https://documenter.getpostman.com/view/50380496/2sB3dK1YWg#d9174472-2cae-4d12-b012-fe7902bc9472)

**Headers**

| Name            | Value                |
| --------------- | -------------------- |
| `Content-Type`  | `application/json`   |
| `Authorization` | `Bearer <token>`     |
| `Property`      | `<your_property_id>` |

**Example**

{% tabs %}
{% tab title="Request" %}

```json
curl --location "https://api.octotable.com/octotable-pms/api/v2/services/0" \
--header "Cache-Control: no-cache" \
--header "Accept: */*" \
--header "Accept-Encoding: gzip, deflate, br" \
--header "Connection: keep-alive" \
--header "Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJzdWIiOiJndWVzdCIsImlzcyI6Ik9DVE9SQVRFLVNSTCIsImV4cCI6MTcwMDY1MTY3MywiaWF0IjoxNjk5MzU1NjczLCJqdGkiOiI5OGJmZTVjMi1iYmUxLTRiMDItYWM1ZC00Njk5MTFlOGJjZDIiLCJncm91cHMiOlsiZ3Vlc3QiXSwicHJvcGVydHlfaWQiOjQ0NDc3fQ.VEsHWJ-_-R9HDhZ8L-PJ0mmqGMSu92Km9wRImGh-pSsz0wU4rKPll5SFlu_XLllGfz38f522z9jjlsNhtNlxhrCR3h1eFfQjyY2fM_8ZHh75KKaASL0U1pIwG1HKf2JTrMu9ceHqpfm2yJ5_KQgLipZRMfpCutOVx-5Lnq023Km0unz-Snb-XSP8gK8KMtRuutj8lkOFiZLskKHNIlIHJ4lUsKoh8C2GB7O3IOaKab3m6ETwB9oux8vWoB6pE6T14F9nNW1NhWfBzqSH3yC5ZA2WSZCDmFQjuInDS7BSsIKqPS8Z491ehOsZhycvchW7aSkWJ9uyX58ef0iJkqN0BQ" \
--header "Property: 0"
```

{% endtab %}

{% tab title="Response" %}

```json
{
  "data": [
    {
      "id": 33924,
      "name": "Breakfast",
      "bookable": true,
      "advance_min": 0,
      "average_stay": 60,
      "card_guarantee": false,
      "confirmation_mode": "CONFIRMED",
      "days_of_week": [
        "MONDAY",
        "SATURDAY"
      ],
      "end_time": "11:00:00",
      "max_advance": 120,
      "online": true,
      "orders_section": {
        "order_enabled": true,
        "required_fields": [
          "phone"
        ],
        "send_order_enabled": true
      },
      "show_rooms": true,
      "slots": [
        "09:30:00",
        "10:30:00"
      ],
      "start_time": "09:00:00"
    },
```

{% endtab %}
{% endtabs %}

## 🆕 Create a new service

<mark style="color:yellow;">**`POST`**</mark> `/services`

Creates a new service entry for the specified property using the provided availability details [see more](https://documenter.getpostman.com/view/50380496/2sB3dK1YWg#d9174472-2cae-4d12-b012-fe7902bc9472)

⚠️ **Reserve with Google updates could take up to 24 hours to process.**

**Headers**

| Name            | Value                |
| --------------- | -------------------- |
| `Content-Type`  | `application/json`   |
| `Authorization` | `Bearer <token>`     |
| `Property`      | `<your_property_id>` |

**Body**

<table><thead><tr><th width="239">Name</th><th>Type</th><th>Description</th></tr></thead><tbody><tr><td><code>name</code></td><td>string</td><td>Name of the service</td></tr><tr><td><code>average_stay</code></td><td>int</td><td><strong>Average meal duration in minutes.</strong>This is important because the table becomes available again when the set time expires. For example, if you select 60, a table booked for 7 pm will be free at 8 pm.</td></tr><tr><td><code>days_of_week</code></td><td>enum [SUN, MON, TUE, WEN, THU, FRI, SAT]</td><td>This defines the days of the week in which a service is available for booking. <br>It ensures bookings are only allowed on the specified days.</td></tr><tr><td><code>start_time</code></td><td>date time</td><td>Start date time of the calendar</td></tr><tr><td><code>end_time</code></td><td>date time</td><td>End time of the calendar</td></tr><tr><td><code>max_advance</code></td><td>int</td><td>This setting defines the maximum number of days in advance a customer can make a reservation.</td></tr><tr><td><pre><code>room_ids
</code></pre></td><td>int</td><td>The IDs of the rooms associated to the service</td></tr></tbody></table>

**Example**

{% tabs %}
{% tab title="Request" %}

```json
curl --location "https://api.octotable.com/octotable-pms/api/v2/services" \
--header "Cache-Control: no-cache" \
--header "Accept: */*" \
--header "Accept-Encoding: gzip, deflate, br" \
--header "Connection: keep-alive" \
--header "Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJzdWIiOiJndWVzdCIsImlzcyI6Ik9DVE9SQVRFLVNSTCIsImV4cCI6MTcwMDY1MTY3MywiaWF0IjoxNjk5MzU1NjczLCJqdGkiOiI5OGJmZTVjMi1iYmUxLTRiMDItYWM1ZC00Njk5MTFlOGJjZDIiLCJncm91cHMiOlsiZ3Vlc3QiXSwicHJvcGVydHlfaWQiOjQ0NDc3fQ.VEsHWJ-_-R9HDhZ8L-PJ0mmqGMSu92Km9wRImGh-pSsz0wU4rKPll5SFlu_XLllGfz38f522z9jjlsNhtNlxhrCR3h1eFfQjyY2fM_8ZHh75KKaASL0U1pIwG1HKf2JTrMu9ceHqpfm2yJ5_KQgLipZRMfpCutOVx-5Lnq023Km0unz-Snb-XSP8gK8KMtRuutj8lkOFiZLskKHNIlIHJ4lUsKoh8C2GB7O3IOaKab3m6ETwB9oux8vWoB6pE6T14F9nNW1NhWfBzqSH3yC5ZA2WSZCDmFQjuInDS7BSsIKqPS8Z491ehOsZhycvchW7aSkWJ9uyX58ef0iJkqN0BQ" \
--header "Property: 0" \
--data '{
    "name": "Custom dinner",
    "average_stay": 60,
    "days_of_week": [
        "MONDAY",
        "TUESDAY",
        "WEDNESDAY",
        "THURSDAY",
        "FRIDAY",
        "SATURDAY",
        "SUNDAY"
    ],
    "start_time": "12:00:00",
    "end_time": "14:00:00",
    "max_advance": 120,
    "show_rooms": true,
    "slots": [
        "12:00",
        "12:30",
        "13:00",
        "14:00"
    ],
    "room_ids": [
        0
    ]
}'
```

{% endtab %}

{% tab title="Response" %}

```json
{
  "data": [
    {
      "id": 33925,
      "name": "Custom dinner",
      "bookable": true,
      "advance_min": 0,
      "average_stay": 60,
      "days_of_week": [
        "MONDAY",
        "TUESDAY",
        "WEDNESDAY",
        "THURSDAY",
        "FRIDAY",
        "SATURDAY",
        "SUNDAY"
      ],
      "end_time": "14:00:00",
      "max_advance": 120,
      "online": true,
      "show_rooms": true,
      "slots": [
        "12:00:00",
        "12:30:00",
        "13:00:00"
      ],
      "start_time": "12:00:00"
    }
  ]
}
```

{% endtab %}
{% endtabs %}

## 🔄 Update a service

<mark style="color:blue;">**`PUT`**</mark> `/services/{service_id}`

Updates the details of a specified calendar entry using the provided availability details [see more](https://documenter.getpostman.com/view/50380496/2sB3dK1YWg#d9174472-2cae-4d12-b012-fe7902bc9472)

⚠️ **Reserve with Google updates could take up to 24 hours to process.**

**Headers**

| Name            | Value                |
| --------------- | -------------------- |
| `Content-Type`  | `application/json`   |
| `Authorization` | `Bearer <token>`     |
| `Property`      | `<your_property_id>` |

**Body**

<table><thead><tr><th width="254">Name</th><th>Type</th><th>Description</th></tr></thead><tbody><tr><td><code>name</code></td><td>string</td><td>Name of the calendar</td></tr><tr><td><code>average_stay</code></td><td>int</td><td><strong>Average meal duration in minutes.</strong> This is important because the table becomes available again when the set time expires. For example, if you select 60, a table booked for 7 pm will be free at 8 pm.</td></tr><tr><td><code>days_of_week</code></td><td>enum [SUN, MON, TUE, WEN, THU, FRI, SAT]</td><td>This defines the days of the week in which a service is available for booking. <br>It ensures bookings are only allowed on the specified days.</td></tr><tr><td><code>start_time</code></td><td>date time</td><td>Start date time of the calendar</td></tr><tr><td><code>end_time</code></td><td>date time</td><td>End time of the calendar</td></tr><tr><td><code>max_advance</code></td><td>int</td><td>This setting defines the maximum number of days in advance a customer can make a reservation.</td></tr></tbody></table>

**Example**

{% tabs %}
{% tab title="Request" %}

```json
curl --location --request PUT "https://api.octotable.com/octotable-pms/api/v2/services/0" \
--header "Cache-Control: no-cache" \
--header "Accept: */*" \
--header "Accept-Encoding: gzip, deflate, br" \
--header "Connection: keep-alive" \
--header "Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJzdWIiOiJndWVzdCIsImlzcyI6Ik9DVE9SQVRFLVNSTCIsImV4cCI6MTcwMDY1MTY3MywiaWF0IjoxNjk5MzU1NjczLCJqdGkiOiI5OGJmZTVjMi1iYmUxLTRiMDItYWM1ZC00Njk5MTFlOGJjZDIiLCJncm91cHMiOlsiZ3Vlc3QiXSwicHJvcGVydHlfaWQiOjQ0NDc3fQ.VEsHWJ-_-R9HDhZ8L-PJ0mmqGMSu92Km9wRImGh-pSsz0wU4rKPll5SFlu_XLllGfz38f522z9jjlsNhtNlxhrCR3h1eFfQjyY2fM_8ZHh75KKaASL0U1pIwG1HKf2JTrMu9ceHqpfm2yJ5_KQgLipZRMfpCutOVx-5Lnq023Km0unz-Snb-XSP8gK8KMtRuutj8lkOFiZLskKHNIlIHJ4lUsKoh8C2GB7O3IOaKab3m6ETwB9oux8vWoB6pE6T14F9nNW1NhWfBzqSH3yC5ZA2WSZCDmFQjuInDS7BSsIKqPS8Z491ehOsZhycvchW7aSkWJ9uyX58ef0iJkqN0BQ" \
--header "Property: 0" \
--data '{
    "name": "New Lunch",
    "average_stay": 60,
    "days_of_week": [
        "MONDAY",
        "SATURDAY"
    ],
    "start_time": "11:00:00",
    "end_time": "15:00:00",
    "max_advance": 120,
    "slots": [
        "11:30",
        "13:30",
        "14:00"
    ],
   "room_ids": [0]
}'
```

{% endtab %}

{% tab title="Response" %}

```json
{
  "data": [
    {
      "id": 35793,
      "name": "New Lunch",
      "bookable": true,
      "advance_min": 0,
      "average_stay": 60,
      "card_guarantee": false,
      "confirmation_mode": "CONFIRMED",
      "days_of_week": [
        "MONDAY",
        "SATURDAY"
      ],
      "end_time": "15:00:00",
      "max_advance": 120,
      "online": true,
      "orders_section": {
        "order_enabled": true,
        "required_fields": [
          "phone"
        ],
        "send_order_enabled": true
      },
      "show_rooms": true,
      "slots": [
        "11:30:00",
        "13:30:00",
        "14:00:00"
      ],
      "start_time": "11:00:00"
    }
  ]
}
```

{% endtab %}
{% endtabs %}

## 🗑️ Delete a calendar

<mark style="color:red;">**`DELETE`**</mark> `/services/{service_id}`

Deletes an existing service entry from the specified property using the calendar ID [see more](https://documenter.getpostman.com/view/50380496/2sB3dK1YWg#d9174472-2cae-4d12-b012-fe7902bc9472)

**Headers**

| Name            | Value                |
| --------------- | -------------------- |
| `Content-Type`  | `application/json`   |
| `Authorization` | `Bearer <token>`     |
| `Property`      | `<your_property_id>` |

**Example**

{% tabs %}
{% tab title="Request" %}

```json
curl --location --request DELETE "https://api.octotable.com/octotable-pms/api/v2/services/30557" \
--header "Cache-Control: no-cache" \
--header "Postman-Token: <calculated when request is sent>" \
--header "Host: <calculated when request is sent>" \
--header "User-Agent: PostmanRuntime/7.32.1" \
--header "Accept: */*" \
--header "Accept-Encoding: gzip, deflate, br" \
--header "Connection: keep-alive" \
--header "Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJzdWIiOiJndWVzdCIsImlzcyI6Ik9DVE9SQVRFLVNSTCIsImV4cCI6MTcwMDY1MTY3MywiaWF0IjoxNjk5MzU1NjczLCJqdGkiOiI5OGJmZTVjMi1iYmUxLTRiMDItYWM1ZC00Njk5MTFlOGJjZDIiLCJncm91cHMiOlsiZ3Vlc3QiXSwicHJvcGVydHlfaWQiOjQ0NDc3fQ.VEsHWJ-_-R9HDhZ8L-PJ0mmqGMSu92Km9wRImGh-pSsz0wU4rKPll5SFlu_XLllGfz38f522z9jjlsNhtNlxhrCR3h1eFfQjyY2fM_8ZHh75KKaASL0U1pIwG1HKf2JTrMu9ceHqpfm2yJ5_KQgLipZRMfpCutOVx-5Lnq023Km0unz-Snb-XSP8gK8KMtRuutj8lkOFiZLskKHNIlIHJ4lUsKoh8C2GB7O3IOaKab3m6ETwB9oux8vWoB6pE6T14F9nNW1NhWfBzqSH3yC5ZA2WSZCDmFQjuInDS7BSsIKqPS8Z491ehOsZhycvchW7aSkWJ9uyX58ef0iJkqN0BQ" \
--header "Property: 44477"
```

{% endtab %}

{% tab title="Response" %}

```json
{
  "data": [
    30557
  ],
  "page_number": 0,
  "page_size": 0,
  "total_elements": 0,
  "total_pages": 0,
  "last_page": true,
  "links": []
}
```

{% endtab %}
{% endtabs %}

**📕 ADDITIONAL NOTES**&#x20;

<mark style="color:red;">**average stay**</mark>: This refers to the typical duration of a customer's reservation for a particular service, such as a table or event. It is calculated based on past bookings and helps predict how long a reservation will last. For example, if the average stay for dinner is 90 minutes, the system will expect that each reservation will last around 90 minutes, allowing it to manage availability for subsequent bookings. The average stay helps optimize table usage and scheduling.<br>

**Example**: If a table has an average stay of 90 minutes and a reservation is made for 7:00 PM, the table will be blocked from 7:00 PM to 8:30 PM. However, it will also be unavailable for any booking starting at 5:45 PM or later because the table is already reserved. However, the table will still be available for reservations starting at 5:30 PM or earlier, as the 90-minute stay won't overlap with the 7:00 PM booking.<br>

<mark style="color:red;">**card\_guarantee**</mark>: Indicates whether a credit card guarantee is required to complete the reservation

<mark style="color:red;">**confirmation\_mode**</mark>: Defines how reservations are handled once created. Possible values:

* **`CONFIRMED`** – The system automatically checks availability and confirms the reservation immediately.
* **`WAITING`** – All reservations are placed in a waiting list and must be manually confirmed or declined by the restaurant.<br>

<mark style="color:red;">**slot times**</mark>: Slot times define the available time intervals for reservations, which must fall within the designated start and end times for a service. For example, if the service is available from 6:00 PM to 10:00 PM, reservation slots can only be set within that window.

The restaurant can customize the slot intervals to be every 15, 30, or 45 minutes, depending on its needs. Additionally, the user has the flexibility to delete any time slots they do not want, allowing them to adjust availability as needed.\
\
**Example**: If a restaurant is offering dinner from 6:00 PM to 10:00 PM with 30-minute slots, it might initially create time slots from 6:00 PM to 10:00 PM in 30-minute increments (6:00, 6:30, 7:00, etc.). However, if the restaurant decides not to take any reservations at 9:30 PM, they can delete that slot, and the system will only allow reservations up to 9:00 PM

<mark style="color:red;">**advance\_min**</mark><mark style="color:$primary;">:</mark> Defines the minimum number of hours in advance required to make a reservation relative to the chosen time.

**Example:**\
If you set `advance_min` to `1` and the available time slots are **12:00**, **12:30**, and **13:00**, a customer trying to book at **11:29** will only be able to choose **12:30** or **13:00**, because **12:00** is no longer available within the required advance time.\
\ <mark style="color:red;">**advance\_max:**</mark> Specifies the maximum number of days in advance a customer can book a reservation for a specific service. This setting helps control how far ahead customers can plan their bookings, ensuring that reservations are not made too far in advance.

For example, if **advance\_max** is set to 30 days, a customer can only book a reservation up to 30 days ahead of the current date. So, if today is January 1st, the customer can make a reservation for any date from January 1st to January 31st, but they will not be able to book for February 1st or later until the 30-day window resets.\
\
\ <mark style="color:red;">**show\_rooms**</mark>: this parameter determines whether the final customer can choose the room.\
If set to "true", the customer will be able to select their preferred room from the available options for dining.\
\
**Example**: \
\
![](/files/Qjb1xwZQrZJiVuKpnoAK)

order\_section

<mark style="color:red;">**order\_enabled**</mark><mark style="color:red;">:</mark> Enables table orders for this service. If set to `true`, customers can scan the table’s QR code and place an order directly from their device.

<mark style="color:red;">**required\_fields**</mark>: Defines which customer details (e.g., first name, last name, email, phone) must be provided when placing an order without a reservation (walk-in).

<mark style="color:red;">**sent\_order\_enabled**</mark>: Determines whether customer orders are sent automatically to the kitchen.

* If `true`, orders placed by customers are immediately marked as **SENT**, visible in the kitchen, and, if configured, printed on the kitchen printer.
* If `false`, orders remain in **UNREAD** status and are not visible in the kitchen until reviewed and manually sent by a waiter or staff member.

<br>


---

# 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://octotable-1.gitbook.io/octotable-api/getting-started-with-reservations/manage-your-services.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.
