Overview
The Menu API provides comprehensive endpoints for managing your restaurant’s menu structure. The menu system is hierarchical:Base URL
Authentication
All menu endpoints require:- Bearer token authentication
- Tenant middleware (organization scoping)
- Branch context (specified via header or token)
Permissions
menu:read- View menu items, categories, and modifiersmenu:create- Create new menu items, categories, and modifiersmenu:update- Modify existing menu itemsmenu:delete- Remove menu items, categories, and modifiers
Menu Structure
Categories
Categories organize menu items into logical groups (e.g., “Appetizers”, “Main Dishes”, “Desserts”).Unique identifier
Category name (1-255 characters)
Category description (max 500 characters)
Category image URL
Display order (default: 0)
Whether category is visible to customers
Menu Items
Individual dishes or products available for order.Unique identifier
Parent category ID
Item name (1-255 characters)
Item description (max 1000 characters)
Price in cents (e.g., 2500 = S/. 25.00)
Item image URL
Current availability status
Estimated preparation time in minutes (1-120)
Modifier Groups
Groups of modifiers that can be applied to menu items (e.g., “Protein Choice”, “Extras”).Unique identifier
Group name (1-255 characters)
Minimum required selections (default: 0)
Maximum allowed selections (default: 1)
Whether customer must select from this group
Modifiers
Individual options within a modifier group (e.g., “Chicken +S/. 5”, “Extra Cheese +S/. 3”).Unique identifier
Parent modifier group ID
Modifier name (1-255 characters)
Additional price in cents (default: 0)
Current availability status
Price Format
All prices in the API are stored as integers in cents to avoid floating-point precision issues:- S/. 25.00 = 2500
- S/. 12.50 = 1250
- S/. 0.50 = 50
Always multiply decimal prices by 100 when sending to the API, and divide by 100 when displaying to users.
Example Menu Structure
Quick Start
- Create Categories: Organize your menu into logical sections
- Add Menu Items: Create items within each category
- Define Modifier Groups: Set up customization options
- Add Modifiers: Populate groups with specific choices
- Link to Items: Associate modifier groups with menu items
Common Workflows
Categories
Manage menu categories
Menu Items
Create and update dishes
Modifiers
Configure item customizations
API Endpoints
Categories
GET /menu/categories- List all categoriesPOST /menu/categories- Create categoryPATCH /menu/categories/:id- Update categoryDELETE /menu/categories/:id- Delete category
Menu Items
GET /menu/items- List items (optionally filter by category)POST /menu/items- Create itemPATCH /menu/items/:id- Update itemDELETE /menu/items/:id- Delete itemGET /menu/items/:id/modifier-groups- Get item’s modifier groupsPOST /menu/items/:id/modifier-groups- Link modifier group to itemDELETE /menu/items/:id/modifier-groups/:groupId- Unlink group
Modifier Groups
GET /menu/modifier-groups- List all groups with modifiersPOST /menu/modifier-groups- Create groupPATCH /menu/modifier-groups/:id- Update groupDELETE /menu/modifier-groups/:id- Delete group
Modifiers
POST /menu/modifiers- Create modifierPATCH /menu/modifiers/:id- Update modifierDELETE /menu/modifiers/:id- Delete modifier