# Add or Update Booking Session Menu

<mark style="color:green;">`POST`</mark> `[PlatformAddress]/api/1.0/venue?action=addOrUpdateBookingSessionMenu`

Adds or updates the details of a venue booking session menu. NOTE: The venue must have access to add or update booking session in order to call this api action.

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

```javascript
{
  "success": true,
  "id": 1234
}
```

{% endtab %}

{% tab title="200 " %}

```javascript
{
    "errorCode": 400,
    "message": "The request contains invalid data",
    "specificCode": 24337,
    "additionalMessages": [
        "costcenterId: *Value is required and can't be empty*"
    ]
}
```

{% endtab %}

{% tab title="200 " %}

```javascript
{
  "errorCode": 500,
  "message": "An error has occurred",
  "specificCode": 24335,
  "additionalMessages": []
}
```

{% endtab %}
{% endtabs %}

### Booking Session Menu

| Property               | Type                                                                                           | Required | Description                                                                                                                                                                     |
| ---------------------- | ---------------------------------------------------------------------------------------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| id                     | integer                                                                                        | optional | The unique id of the booking session menu to update. A new booking session menu will be created if this parameter is not present.                                               |
| venueId                | integer                                                                                        | required | The unique id of the venue to which the booking session menu belongs.                                                                                                           |
| bookingId              | integer                                                                                        | optional | The unique id of the booking to which the new booking session menu will be assigned.                                                                                            |
| sessionId              | integer                                                                                        | optional | The unique id of the booking session to which the new booking session menu will be assigned.                                                                                    |
| menuId                 | integer                                                                                        | optional | The unique id of the menu which is being added to the booking session                                                                                                           |
| name                   | string                                                                                         | optional | The booking session menu name. Required when adding a new booking session menu.                                                                                                 |
| minAttendeesGuaranteed | integer                                                                                        | optional | The total attendees of the booking session menu. Required when adding new booking session menu.                                                                                 |
| sameAsSessionAttendees | boolean                                                                                        | optional | Whether to set the attendees based on the booking session. When True, minAttendeesGuaranteed field will not be updated.                                                         |
| startTime              | string                                                                                         | optional | The start time of the booking session menu. Format is HH:mm:ss                                                                                                                  |
| endTime                | string                                                                                         | optional | The end time of the booking session menu. Format is HH:mm:ss                                                                                                                    |
| sameAsSessionTime      | boolean                                                                                        | optional | Whether to set the startTime and endTime based on the booking session. When true, the startTime and endTime fields will not be updated.                                         |
| includeInPackage       | boolean                                                                                        | optional | Whether or not the booking session is included in booking package.                                                                                                              |
| bookingPackageId       | integer                                                                                        | optional | The unique id of the booking package to which the booking session menu belongs. Required when includeInPackage is true                                                          |
| costcenterId           | integer                                                                                        | optional | The unique id of the cost center to which the booking session menu belongs. Required when adding new booking session menu                                                       |
| cost                   | double                                                                                         | optional | The price of the booking session menu. Required when includeInPackage is false. Ignored when selected menu type is multi cost per person                                        |
| excludedTaxIds         | array                                                                                          | optional | The array of tax Ids which are excluded to apply on the booking session menu. Required when includeInPackage is false. Ignored when selected menu type is multi cost per person |
| costcenters            | array of [Costcenter](/venues/getoraddbookingdata/get-booking-session-menu-list.md#costcenter) | optional | Cost breakdown of a menu when selected menu type is multi cost per person                                                                                                       |
| sortOrder              | integer                                                                                        | optional | The sort order of the booking session menu                                                                                                                                      |
| items                  | array                                                                                          | optional | The array of menu items that shoud be added to menu. See [Menu Item](#menu-item) section for details of each item                                                               |

### Menu Item

A booking session menu item is an object with the following details.

| Property    | Type    | Required | Description                                                                                |
| ----------- | ------- | -------- | ------------------------------------------------------------------------------------------ |
| itemId      | integer | required | The unique id of the menu item                                                             |
| name        | string  | optional | The name of the menu item. Do not pass it to automatically set the name from setup         |
| quantity    | integer | optional | The quantity of the menu item. Do not pass it to automatically set the quantity from setup |
| price       | double  | optional | The price of the *optional* menu item.                                                     |
| servingTime | string  | optional | The serving time of the menu item. Format is HH:mm:ss                                      |

#### Adding/Updating items

While adding you can skip the items parameter, this will add all the non-optional menu items to the menu automatically. Passing items will only add those items to the menu including any required non-removable items.

While updating you can skip the items parameter, this will not change any of the items. Passing items will replace the items with the given items. Required non-removable items can not be removed from the menu.


---

# 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://developer.ivvy.com/venues/getoraddbookingdata/add-or-update-booking-session-menu.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.
