---
updatedAt: 2026-09-02T14:36:09.000Z
agentTools:
  projectIndex: https://developers.flipdish.com/llms.txt
---

# Update menu keeping the same revision

⚠️ **Beta Notice:** This endpoint is currently in beta and may change or be deprecated at any time without notice.

Update menu keeping the same revision

# OpenAPI definition

```json
{
  "openapi": "3.0.0",
  "info": {
    "title": "Menu Management API",
    "version": "1.0.0",
    "description": "⚠️ **Beta Notice:** This endpoint is currently in beta and may change or be deprecated at any time without notice.\n\nAPI for managing restaurant menus, including publishing, archiving, and retrieving menu data.",
    "contact": {
      "name": "Flipdish API Support",
      "url": "https://help.flipdish.com",
      "email": "help@flipdish.com"
    }
  },
  "servers": [
    {
      "url": "https://api.flipdish.co",
      "description": "Flipdish base API"
    }
  ],
  "tags": [
    {
      "name": "Menu Management",
      "description": "Operations for Menu Management"
    }
  ],
  "components": {
    "securitySchemes": {
      "BearerAuth": {
        "type": "http",
        "scheme": "bearer",
        "description": "Bearer token authentication"
      }
    },
    "schemas": {
      "Error": {
        "type": "object",
        "properties": {
          "error": {
            "type": "string"
          },
          "message": {
            "type": "string"
          }
        },
        "required": [
          "error",
          "message"
        ]
      },
      "BaseModifierMemberSchema": {
        "type": "object",
        "properties": {
          "parentModifierId": {
            "type": "string",
            "format": "uuid",
            "description": "ID of the parent modifier this member belongs to"
          },
          "caption": {
            "type": "string",
            "nullable": true,
            "description": "Display caption for the modifier member",
            "example": "Extra Cheese"
          },
          "min": {
            "type": "number",
            "nullable": true,
            "description": "Minimum number of selections required",
            "example": 0
          },
          "max": {
            "type": "number",
            "nullable": true,
            "description": "Maximum number of selections allowed",
            "example": 1
          },
          "enabled": {
            "type": "boolean",
            "description": "Whether this modifier member is enabled",
            "example": true
          },
          "canSameItemBeSelectedMultipleTimes": {
            "type": "boolean",
            "nullable": true,
            "description": "Whether the same item can be selected multiple times within this modifier",
            "example": false
          }
        },
        "required": [
          "parentModifierId",
          "enabled"
        ],
        "description": "Base schema for a member (group) within a modifier."
      },
      "ModifierMemberResponseSchema": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseModifierMemberSchema"
          },
          {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "format": "uuid",
                "description": "Unique identifier for the modifier member"
              }
            },
            "required": [
              "id"
            ]
          }
        ],
        "description": "Response schema representing a modifier member."
      },
      "BaseItemPricingProfileSchema": {
        "type": "object",
        "properties": {
          "priceBandId": {
            "type": "string",
            "format": "uuid",
            "description": "ID of the price band"
          },
          "collectionPrice": {
            "type": "number",
            "description": "Base price for collection orders",
            "example": 10.99
          },
          "collectionTaxablePrice": {
            "type": "number",
            "nullable": true,
            "description": "Taxable amount for collection orders",
            "example": 9.99
          },
          "collectionTax": {
            "type": "number",
            "description": "Tax amount for collection orders",
            "example": 1
          },
          "collectionTaxable": {
            "type": "boolean",
            "description": "Whether collection orders are taxable",
            "example": true
          },
          "collectionUpsellingPoints": {
            "type": "number",
            "nullable": true,
            "description": "Reward points earned for collection orders",
            "example": 10
          },
          "deliveryPrice": {
            "type": "number",
            "description": "Base price for delivery orders",
            "example": 10.99
          },
          "deliveryTaxablePrice": {
            "type": "number",
            "nullable": true,
            "description": "Taxable amount for delivery orders",
            "example": 9.99
          },
          "deliveryTax": {
            "type": "number",
            "description": "Tax amount for delivery orders",
            "example": 1
          },
          "deliveryTaxable": {
            "type": "boolean",
            "description": "Whether delivery orders are taxable",
            "example": true
          },
          "deliveryUpsellingPoints": {
            "type": "number",
            "nullable": true,
            "description": "Reward points earned for delivery orders",
            "example": 10
          },
          "dineInPrice": {
            "type": "number",
            "description": "Base price for dine-in orders",
            "example": 10.99
          },
          "dineInTaxablePrice": {
            "type": "number",
            "nullable": true,
            "description": "Taxable amount for dine-in orders",
            "example": 9.99
          },
          "dineInTax": {
            "type": "number",
            "description": "Tax amount for dine-in orders",
            "example": 1
          },
          "dineInTaxable": {
            "type": "boolean",
            "description": "Whether dine-in orders are taxable",
            "example": true
          },
          "dineInUpsellingPoints": {
            "type": "number",
            "nullable": true,
            "description": "Reward points earned for dine-in orders",
            "example": 10
          },
          "takeawayPrice": {
            "type": "number",
            "description": "Base price for takeaway orders",
            "example": 10.99
          },
          "takeawayTaxablePrice": {
            "type": "number",
            "nullable": true,
            "description": "Taxable amount for takeaway orders",
            "example": 9.99
          },
          "takeawayTax": {
            "type": "number",
            "description": "Tax amount for takeaway orders",
            "example": 1
          },
          "takeawayTaxable": {
            "type": "boolean",
            "description": "Whether takeaway orders are taxable",
            "example": true
          },
          "takeawayUpsellingPoints": {
            "type": "number",
            "nullable": true,
            "description": "Reward points earned for takeaway orders",
            "example": 10
          }
        },
        "required": [
          "priceBandId",
          "collectionPrice",
          "collectionTax",
          "collectionTaxable",
          "deliveryPrice",
          "deliveryTax",
          "deliveryTaxable",
          "dineInPrice",
          "dineInTax",
          "dineInTaxable",
          "takeawayPrice",
          "takeawayTax",
          "takeawayTaxable"
        ],
        "description": "Base pricing profile details for a menu item across dispatch types."
      },
      "ItemPricingProfileResponseSchema": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseItemPricingProfileSchema"
          },
          {
            "type": "object",
            "properties": {}
          }
        ],
        "description": "Response schema representing a menu item pricing profile."
      },
      "BaseItemChargeSchema": {
        "type": "object",
        "properties": {
          "chargeId": {
            "type": "string",
            "format": "uuid",
            "description": "ID of the charge to apply to this item"
          },
          "priceBandId": {
            "type": "string",
            "format": "uuid",
            "description": "ID of the price band this charge applies to"
          }
        },
        "required": [
          "chargeId",
          "priceBandId"
        ],
        "description": "Base schema for a charge applied to a menu item."
      },
      "ItemChargeResponseSchema": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseItemChargeSchema"
          },
          {
            "type": "object",
            "properties": {}
          }
        ],
        "description": "Response schema representing a charge applied to a menu item."
      },
      "BaseItemSchema": {
        "type": "object",
        "properties": {
          "externalId": {
            "type": "string",
            "nullable": true,
            "description": "External ID"
          },
          "metadata": {
            "type": "string",
            "nullable": true,
            "description": "Metadata as json string"
          },
          "backgroundColor": {
            "type": "string",
            "nullable": true,
            "description": "Background color of the item",
            "example": "#000000"
          },
          "foregroundColor": {
            "type": "string",
            "nullable": true,
            "description": "Foreground color of the item",
            "example": "#FFFFFF"
          },
          "selectedForegroundColor": {
            "type": "string",
            "nullable": true,
            "description": "Selected foreground color of the item",
            "example": "#FFFFFF"
          },
          "selectedBackgroundColor": {
            "type": "string",
            "nullable": true,
            "description": "Selected background color of the item",
            "example": "#000000"
          },
          "caption": {
            "type": "string",
            "nullable": true,
            "description": "Caption of the item",
            "example": "Item 1"
          },
          "enabled": {
            "type": "boolean",
            "description": "Whether the item is enabled",
            "example": true
          },
          "productId": {
            "type": "string",
            "nullable": true,
            "description": "Product ID of the item"
          },
          "description": {
            "type": "string",
            "nullable": true,
            "description": "Description of the item",
            "example": "This is a note"
          },
          "imageUrl": {
            "type": "string",
            "nullable": true,
            "description": "Image URL of the item",
            "example": "https://example.com/image.jpg"
          },
          "disableVouchers": {
            "type": "boolean",
            "nullable": true,
            "description": "Whether vouchers are disabled for this item",
            "example": false
          },
          "excludeFromVoucherDiscounting": {
            "type": "boolean",
            "nullable": true,
            "description": "Whether this item should be excluded from voucher discounts",
            "example": false
          },
          "alcohol": {
            "type": "boolean",
            "description": "Whether this item contains alcohol",
            "example": false
          },
          "availabilityOverrides": {
            "type": "array",
            "nullable": true,
            "items": {
              "type": "object",
              "properties": {
                "name": {
                  "type": "string",
                  "description": "Name of the override",
                  "example": "Override 1"
                },
                "enabled": {
                  "type": "boolean",
                  "description": "Whether the override is enabled",
                  "example": true
                },
                "dispatchTypes": {
                  "type": "array",
                  "nullable": true,
                  "items": {
                    "type": "string",
                    "enum": [
                      "DineIn",
                      "TakeAway",
                      "Collection",
                      "Delivery"
                    ]
                  },
                  "description": "Dispatch types of the override",
                  "example": [
                    "Collection",
                    "Delivery"
                  ]
                },
                "propertyIds": {
                  "type": "array",
                  "nullable": true,
                  "items": {
                    "type": "string",
                    "pattern": "^p\\d+$",
                    "description": "Property ID in standard format",
                    "example": "p123"
                  },
                  "description": "Property IDs where the override is applicable",
                  "example": [
                    "p123",
                    "p124"
                  ]
                },
                "venueCodes": {
                  "type": "array",
                  "nullable": true,
                  "items": {
                    "type": "string",
                    "enum": [
                      "Property",
                      "MobileApp",
                      "WebApp",
                      "Deliveroo",
                      "UberEats",
                      "JustEats",
                      "ExternalApp",
                      "Flipdish"
                    ]
                  },
                  "description": "Venue codes where the override is applicable",
                  "example": [
                    "Property",
                    "UberEats"
                  ]
                },
                "mondayEnabled": {
                  "type": "boolean",
                  "nullable": true,
                  "description": "Whether the override is enabled on Monday",
                  "example": true
                },
                "tuesdayEnabled": {
                  "type": "boolean",
                  "nullable": true,
                  "description": "Whether the override is enabled on Tuesday",
                  "example": true
                },
                "wednesdayEnabled": {
                  "type": "boolean",
                  "nullable": true,
                  "description": "Whether the override is enabled on Wednesday",
                  "example": true
                },
                "thursdayEnabled": {
                  "type": "boolean",
                  "nullable": true,
                  "description": "Whether the override is enabled on Thursday",
                  "example": true
                },
                "fridayEnabled": {
                  "type": "boolean",
                  "nullable": true,
                  "description": "Whether the override is enabled on Friday",
                  "example": true
                },
                "saturdayEnabled": {
                  "type": "boolean",
                  "nullable": true,
                  "description": "Whether the override is enabled on Saturday",
                  "example": true
                },
                "sundayEnabled": {
                  "type": "boolean",
                  "nullable": true,
                  "description": "Whether the override is enabled on Sunday",
                  "example": true
                },
                "fromTime": {
                  "type": "string",
                  "nullable": true,
                  "description": "From time of the override",
                  "example": "10:00"
                },
                "toTime": {
                  "type": "string",
                  "nullable": true,
                  "description": "To time of the override",
                  "example": "10:00"
                }
              },
              "required": [
                "name",
                "enabled"
              ]
            },
            "description": "Overrides for the item",
            "example": []
          },
          "allergens": {
            "type": "array",
            "nullable": true,
            "items": {
              "type": "string",
              "enum": [
                "Alcohol",
                "Mild Spice",
                "Medium Spice",
                "Hot Spice",
                "Celery",
                "Crustaceans",
                "Egg",
                "Fish",
                "Gluten",
                "Lupin",
                "Milk",
                "Molluscs",
                "Mustard",
                "Nuts",
                "Peanuts",
                "Sesame",
                "Soybeans",
                "Sulphur Dioxide",
                "Wheat"
              ]
            },
            "description": "List of allergens present in this item",
            "example": [
              "Celery",
              "Gluten"
            ]
          },
          "cellLayoutType": {
            "type": "string",
            "nullable": true,
            "enum": [
              "Small",
              "Medium",
              "Large",
              "HiddenImage"
            ],
            "description": "Cell layout type of the item",
            "example": "Small"
          }
        },
        "required": [
          "enabled",
          "alcohol"
        ],
        "description": "Base schema for an item, including visuals, allergens and availability."
      },
      "CategoryItemResponseSchema": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseItemSchema"
          },
          {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "format": "uuid",
                "description": "ID of the item"
              },
              "modifierMembers": {
                "type": "array",
                "nullable": true,
                "items": {
                  "$ref": "#/components/schemas/ModifierMemberResponseSchema"
                },
                "description": "Modifier members of the item",
                "example": []
              },
              "pricingProfiles": {
                "type": "array",
                "nullable": true,
                "items": {
                  "$ref": "#/components/schemas/ItemPricingProfileResponseSchema"
                },
                "description": "Pricing profiles of the item",
                "example": []
              },
              "charges": {
                "type": "array",
                "nullable": true,
                "items": {
                  "$ref": "#/components/schemas/ItemChargeResponseSchema"
                },
                "description": "Charges of the item",
                "example": []
              }
            },
            "required": [
              "id"
            ]
          }
        ],
        "description": "Response schema representing a category item."
      },
      "BaseContainerSchema": {
        "type": "object",
        "properties": {
          "externalId": {
            "type": "string",
            "nullable": true,
            "description": "External ID"
          },
          "metadata": {
            "type": "string",
            "nullable": true,
            "description": "Metadata as json string"
          },
          "caption": {
            "type": "string",
            "nullable": true,
            "description": "Display caption for the container",
            "example": "Main Menu"
          },
          "enabled": {
            "type": "boolean",
            "description": "Whether the container is enabled",
            "example": true
          },
          "description": {
            "type": "string",
            "nullable": true,
            "description": "Optional Description about the container",
            "example": "Special instructions for staff"
          },
          "backgroundColor": {
            "type": "string",
            "nullable": true,
            "description": "Background color of the container",
            "example": "#FFFFFF"
          },
          "foregroundColor": {
            "type": "string",
            "nullable": true,
            "description": "Foreground color of the container",
            "example": "#000000"
          },
          "selectedBackgroundColor": {
            "type": "string",
            "nullable": true,
            "description": "Background color when container is selected",
            "example": "#E6E6E6"
          },
          "selectedForegroundColor": {
            "type": "string",
            "nullable": true,
            "description": "Foreground color when container is selected",
            "example": "#333333"
          }
        },
        "required": [
          "caption",
          "enabled"
        ],
        "description": "Base schema for containers such as categories and modifiers."
      },
      "ContainerResponseSchema": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseContainerSchema"
          },
          {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "format": "uuid",
                "description": "Unique identifier for the container"
              },
              "items": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/CategoryItemResponseSchema"
                },
                "description": "Array of items contained within this container"
              }
            },
            "required": [
              "id",
              "items"
            ]
          }
        ],
        "description": "Response schema representing a container and its items."
      },
      "CategoryResponseSchema": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ContainerResponseSchema"
          },
          {
            "type": "object",
            "properties": {
              "imageUrl": {
                "type": "string",
                "nullable": true,
                "description": "Image URL of the category",
                "example": "https://example.com/images/category.jpg"
              },
              "availabilityOverrides": {
                "type": "array",
                "nullable": true,
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string",
                      "description": "Name of the override",
                      "example": "Override 1"
                    },
                    "enabled": {
                      "type": "boolean",
                      "description": "Whether the override is enabled",
                      "example": true
                    },
                    "dispatchTypes": {
                      "type": "array",
                      "nullable": true,
                      "items": {
                        "type": "string",
                        "enum": [
                          "DineIn",
                          "TakeAway",
                          "Collection",
                          "Delivery"
                        ]
                      },
                      "description": "Dispatch types of the override",
                      "example": [
                        "Collection",
                        "Delivery"
                      ]
                    },
                    "propertyIds": {
                      "type": "array",
                      "nullable": true,
                      "items": {
                        "type": "string",
                        "pattern": "^p\\d+$",
                        "description": "Property ID in standard format",
                        "example": "p123"
                      },
                      "description": "Property IDs where the override is applicable",
                      "example": [
                        "p123",
                        "p124"
                      ]
                    },
                    "venueCodes": {
                      "type": "array",
                      "nullable": true,
                      "items": {
                        "type": "string",
                        "enum": [
                          "Property",
                          "MobileApp",
                          "WebApp",
                          "Deliveroo",
                          "UberEats",
                          "JustEats",
                          "ExternalApp",
                          "Flipdish"
                        ]
                      },
                      "description": "Venue codes where the override is applicable",
                      "example": [
                        "Property",
                        "UberEats"
                      ]
                    },
                    "mondayEnabled": {
                      "type": "boolean",
                      "nullable": true,
                      "description": "Whether the override is enabled on Monday",
                      "example": true
                    },
                    "tuesdayEnabled": {
                      "type": "boolean",
                      "nullable": true,
                      "description": "Whether the override is enabled on Tuesday",
                      "example": true
                    },
                    "wednesdayEnabled": {
                      "type": "boolean",
                      "nullable": true,
                      "description": "Whether the override is enabled on Wednesday",
                      "example": true
                    },
                    "thursdayEnabled": {
                      "type": "boolean",
                      "nullable": true,
                      "description": "Whether the override is enabled on Thursday",
                      "example": true
                    },
                    "fridayEnabled": {
                      "type": "boolean",
                      "nullable": true,
                      "description": "Whether the override is enabled on Friday",
                      "example": true
                    },
                    "saturdayEnabled": {
                      "type": "boolean",
                      "nullable": true,
                      "description": "Whether the override is enabled on Saturday",
                      "example": true
                    },
                    "sundayEnabled": {
                      "type": "boolean",
                      "nullable": true,
                      "description": "Whether the override is enabled on Sunday",
                      "example": true
                    },
                    "fromTime": {
                      "type": "string",
                      "nullable": true,
                      "description": "From time of the override",
                      "example": "10:00"
                    },
                    "toTime": {
                      "type": "string",
                      "nullable": true,
                      "description": "To time of the override",
                      "example": "10:00"
                    }
                  },
                  "required": [
                    "name",
                    "enabled"
                  ]
                },
                "description": "Availability overrides for the category",
                "example": []
              }
            }
          }
        ],
        "description": "Response schema representing a category with items and availability."
      },
      "ModifierResponseSchema": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ContainerResponseSchema"
          },
          {
            "type": "object",
            "properties": {
              "min": {
                "type": "number",
                "description": "The minimum number of items that can be selected",
                "example": 1
              },
              "max": {
                "type": "number",
                "description": "The maximum number of items that can be selected",
                "example": 1
              },
              "canSameItemBeSelectedMultipleTimes": {
                "type": "boolean",
                "nullable": true,
                "description": "Whether the same item can be selected multiple times",
                "example": false
              },
              "hiddenInOrderFlow": {
                "type": "boolean",
                "description": "Whether this modifier should be hidden in the order flow UI",
                "example": false
              }
            },
            "required": [
              "min",
              "max",
              "hiddenInOrderFlow"
            ]
          }
        ],
        "description": "Response schema representing a modifier and its configuration."
      },
      "BaseCategoryGroupSchema": {
        "type": "object",
        "properties": {
          "externalId": {
            "type": "string",
            "nullable": true,
            "description": "External ID"
          },
          "metadata": {
            "type": "string",
            "nullable": true,
            "description": "Metadata as json string"
          },
          "name": {
            "type": "string",
            "description": "Display name of the category group",
            "example": "Appetizers & Starters"
          },
          "description": {
            "type": "string",
            "nullable": true,
            "description": "Optional description of the category group",
            "example": "Light bites to start your meal"
          },
          "imageUrl": {
            "type": "string",
            "nullable": true,
            "description": "URL of the category group image",
            "example": "https://example.com/images/appetizers.jpg"
          },
          "categoryIds": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Array of category IDs that belong to this group"
          }
        },
        "required": [
          "name",
          "categoryIds"
        ],
        "description": "Base schema for grouping categories together for UI/UX."
      },
      "CategoryGroupResponseSchema": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseCategoryGroupSchema"
          },
          {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "format": "uuid",
                "description": "Unique identifier for the category group"
              }
            },
            "required": [
              "id"
            ]
          }
        ],
        "description": "Response schema representing a category group."
      },
      "MenuResponseSchema": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Name of the menu",
            "example": "Main Menu"
          },
          "description": {
            "type": "string",
            "nullable": true,
            "description": "Description of the menu",
            "example": "This is a note"
          },
          "metadata": {
            "type": "string",
            "nullable": true,
            "description": "Metadata as json string"
          },
          "integrationName": {
            "type": "string",
            "nullable": true,
            "description": "Name of the external integration associated with this menu (e.g. PixelPoint, Lightspeed, Captiva). Null means no integration.",
            "example": "PixelPoint"
          },
          "type": {
            "type": "string",
            "description": "Type of the menu",
            "example": "Store"
          },
          "id": {
            "type": "string",
            "format": "uuid",
            "description": "ID of the menu (auto-generated)"
          },
          "orgId": {
            "type": "string",
            "pattern": "^org\\d+$",
            "description": "Org ID in standard format",
            "example": "org123"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time",
            "description": "Creation date of the menu (auto-generated)",
            "example": "2021-01-01T16:00:00Z"
          },
          "updatedBy": {
            "type": "string",
            "nullable": true,
            "description": "Last updated by user (auto-generated)",
            "example": "user@example.com"
          },
          "updatedAt": {
            "type": "string",
            "nullable": true,
            "format": "date-time",
            "description": "Last updated date (auto-generated)",
            "example": "2021-01-01T16:00:00Z"
          },
          "revisionId": {
            "type": "number",
            "description": "Revision ID of the menu (auto-generated)",
            "example": 1
          },
          "categories": {
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/CategoryResponseSchema"
            },
            "description": "Categories for the menu",
            "example": []
          },
          "modifiers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ModifierResponseSchema"
            },
            "description": "Modifiers for the menu",
            "example": []
          },
          "categoryGroups": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CategoryGroupResponseSchema"
            },
            "description": "Category groups for the menu",
            "example": []
          }
        },
        "required": [
          "name",
          "type",
          "id",
          "orgId",
          "createdAt",
          "revisionId",
          "categories",
          "modifiers",
          "categoryGroups"
        ],
        "description": "Response schema representing a full menu."
      },
      "Menuupdatedsuccessfully": {
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/MenuResponseSchema"
          }
        },
        "required": [
          "data"
        ]
      },
      "UpdateModifierMemberSchema": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseModifierMemberSchema"
          },
          {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "format": "uuid",
                "description": "Unique identifier for the modifier member"
              }
            },
            "required": [
              "id"
            ]
          }
        ],
        "description": "Request schema to update a modifier member."
      },
      "UpdateItemPricingProfileSchema": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseItemPricingProfileSchema"
          },
          {
            "type": "object",
            "properties": {}
          }
        ],
        "description": "Request schema to update a pricing profile for a menu item."
      },
      "UpdateItemChargeSchema": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseItemChargeSchema"
          },
          {
            "type": "object",
            "properties": {}
          }
        ],
        "description": "Request schema to update a charge on a menu item."
      },
      "UpdateCategoryItemSchema": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseItemSchema"
          },
          {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "format": "uuid",
                "description": "ID of the item"
              },
              "modifierMembers": {
                "type": "array",
                "nullable": true,
                "items": {
                  "$ref": "#/components/schemas/UpdateModifierMemberSchema"
                },
                "description": "Modifier members of the item",
                "example": []
              },
              "pricingProfiles": {
                "type": "array",
                "nullable": true,
                "items": {
                  "$ref": "#/components/schemas/UpdateItemPricingProfileSchema"
                },
                "description": "Pricing profiles of the item",
                "example": []
              },
              "charges": {
                "type": "array",
                "nullable": true,
                "items": {
                  "$ref": "#/components/schemas/UpdateItemChargeSchema"
                },
                "description": "Charges of the item",
                "example": []
              }
            },
            "required": [
              "id"
            ]
          }
        ],
        "description": "Request schema to update an item within a category."
      },
      "UpdateContainerSchema": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseContainerSchema"
          },
          {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "format": "uuid",
                "description": "Unique identifier for the container"
              },
              "items": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/UpdateCategoryItemSchema"
                },
                "description": "Array of items contained within this container"
              }
            },
            "required": [
              "id",
              "items"
            ]
          }
        ],
        "description": "Request schema to update a container and its items."
      },
      "UpdateCategorySchema": {
        "allOf": [
          {
            "$ref": "#/components/schemas/UpdateContainerSchema"
          },
          {
            "type": "object",
            "properties": {
              "imageUrl": {
                "type": "string",
                "nullable": true,
                "description": "Image URL of the category",
                "example": "https://example.com/images/category.jpg"
              },
              "availabilityOverrides": {
                "type": "array",
                "nullable": true,
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string",
                      "description": "Name of the override",
                      "example": "Override 1"
                    },
                    "enabled": {
                      "type": "boolean",
                      "description": "Whether the override is enabled",
                      "example": true
                    },
                    "dispatchTypes": {
                      "type": "array",
                      "nullable": true,
                      "items": {
                        "type": "string",
                        "enum": [
                          "DineIn",
                          "TakeAway",
                          "Collection",
                          "Delivery"
                        ]
                      },
                      "description": "Dispatch types of the override",
                      "example": [
                        "Collection",
                        "Delivery"
                      ]
                    },
                    "propertyIds": {
                      "type": "array",
                      "nullable": true,
                      "items": {
                        "type": "string",
                        "pattern": "^p\\d+$",
                        "description": "Property ID in standard format",
                        "example": "p123"
                      },
                      "description": "Property IDs where the override is applicable",
                      "example": [
                        "p123",
                        "p124"
                      ]
                    },
                    "venueCodes": {
                      "type": "array",
                      "nullable": true,
                      "items": {
                        "type": "string",
                        "enum": [
                          "Property",
                          "MobileApp",
                          "WebApp",
                          "Deliveroo",
                          "UberEats",
                          "JustEats",
                          "ExternalApp",
                          "Flipdish"
                        ]
                      },
                      "description": "Venue codes where the override is applicable",
                      "example": [
                        "Property",
                        "UberEats"
                      ]
                    },
                    "mondayEnabled": {
                      "type": "boolean",
                      "nullable": true,
                      "description": "Whether the override is enabled on Monday",
                      "example": true
                    },
                    "tuesdayEnabled": {
                      "type": "boolean",
                      "nullable": true,
                      "description": "Whether the override is enabled on Tuesday",
                      "example": true
                    },
                    "wednesdayEnabled": {
                      "type": "boolean",
                      "nullable": true,
                      "description": "Whether the override is enabled on Wednesday",
                      "example": true
                    },
                    "thursdayEnabled": {
                      "type": "boolean",
                      "nullable": true,
                      "description": "Whether the override is enabled on Thursday",
                      "example": true
                    },
                    "fridayEnabled": {
                      "type": "boolean",
                      "nullable": true,
                      "description": "Whether the override is enabled on Friday",
                      "example": true
                    },
                    "saturdayEnabled": {
                      "type": "boolean",
                      "nullable": true,
                      "description": "Whether the override is enabled on Saturday",
                      "example": true
                    },
                    "sundayEnabled": {
                      "type": "boolean",
                      "nullable": true,
                      "description": "Whether the override is enabled on Sunday",
                      "example": true
                    },
                    "fromTime": {
                      "type": "string",
                      "nullable": true,
                      "description": "From time of the override",
                      "example": "10:00"
                    },
                    "toTime": {
                      "type": "string",
                      "nullable": true,
                      "description": "To time of the override",
                      "example": "10:00"
                    }
                  },
                  "required": [
                    "name",
                    "enabled"
                  ]
                },
                "description": "Availability overrides for the category",
                "example": []
              }
            }
          }
        ],
        "description": "Request schema to update a category with items and availability overrides."
      },
      "UpdateModifierSchema": {
        "allOf": [
          {
            "$ref": "#/components/schemas/UpdateContainerSchema"
          },
          {
            "type": "object",
            "properties": {
              "min": {
                "type": "number",
                "description": "The minimum number of items that can be selected",
                "example": 1
              },
              "max": {
                "type": "number",
                "description": "The maximum number of items that can be selected",
                "example": 1
              },
              "canSameItemBeSelectedMultipleTimes": {
                "type": "boolean",
                "nullable": true,
                "description": "Whether the same item can be selected multiple times",
                "example": false
              },
              "hiddenInOrderFlow": {
                "type": "boolean",
                "description": "Whether this modifier should be hidden in the order flow UI",
                "example": false
              }
            },
            "required": [
              "min",
              "max",
              "hiddenInOrderFlow"
            ]
          }
        ],
        "description": "Request schema to update a modifier with rules and items."
      },
      "UpdateCategoryGroupSchema": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseCategoryGroupSchema"
          },
          {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "format": "uuid",
                "description": "Unique identifier for the category group"
              }
            },
            "required": [
              "id"
            ]
          }
        ],
        "description": "Request schema to update a category group."
      },
      "BaseMenuSchema": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Name of the menu",
            "example": "Main Menu"
          },
          "description": {
            "type": "string",
            "nullable": true,
            "description": "Description of the menu",
            "example": "This is a note"
          },
          "metadata": {
            "type": "string",
            "nullable": true,
            "description": "Metadata as json string"
          },
          "integrationName": {
            "type": "string",
            "nullable": true,
            "description": "Name of the external integration associated with this menu (e.g. PixelPoint, Lightspeed, Captiva). Null means no integration.",
            "example": "PixelPoint"
          },
          "type": {
            "type": "string",
            "description": "Type of the menu",
            "example": "Store"
          }
        },
        "required": [
          "name",
          "type"
        ],
        "description": "Base schema for menu data, including name, type and metadata."
      },
      "UpdateMenuSchema": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseMenuSchema"
          },
          {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "format": "uuid",
                "description": "ID of the menu (required for updates)"
              },
              "categories": {
                "type": "array",
                "nullable": true,
                "items": {
                  "$ref": "#/components/schemas/UpdateCategorySchema"
                },
                "description": "Categories for the menu",
                "example": []
              },
              "modifiers": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/UpdateModifierSchema"
                },
                "description": "Modifiers for the menu",
                "example": []
              },
              "categoryGroups": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/UpdateCategoryGroupSchema"
                },
                "description": "Category groups for the menu",
                "example": []
              }
            },
            "required": [
              "id",
              "categories",
              "modifiers",
              "categoryGroups"
            ],
            "additionalProperties": false
          }
        ],
        "description": "Request schema to update a full menu with categories, modifiers and groups."
      }
    }
  },
  "paths": {
    "/menuManagement/orgs/{orgId}/menus/{menuId}": {
      "put": {
        "summary": "Update menu keeping the same revision",
        "description": "⚠️ **Beta Notice:** This endpoint is currently in beta and may change or be deprecated at any time without notice.\n\nUpdate menu keeping the same revision",
        "operationId": "put__menuManagement_orgs__orgId_menus__menuId_10",
        "tags": [
          "Menu Management"
        ],
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "parameters": [
          {
            "schema": {
              "type": "string",
              "pattern": "^org\\d+$",
              "description": "Organization ID in standard format",
              "example": "org123"
            },
            "required": true,
            "name": "orgId",
            "in": "path"
          },
          {
            "schema": {
              "type": "string",
              "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}$",
              "description": "Menu ID",
              "example": "123e4567-e89b-12d3-a456-426614174000"
            },
            "required": true,
            "name": "menuId",
            "in": "path"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateMenuSchema"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Menu updated successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Menuupdatedsuccessfully"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Authentication has been denied",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Successfully authenticated but access has been denied",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    }
  }
}
```