Menu V3
The Menu V3 API provides enhanced menu management with improved product codes and schedule handling.
IMPORTANT! This API resource is under development. Please reach out your Shift4 technical representative for more details.
Overview
The image below presents a high level overview of how Menu creation and update work via our API.
Online Ordering V3 represents the next generation of Shift4's ordering API with refinements and new capabilities. V3 maintains similar conceptual structure to V2 while introducing enhanced features.
API Endpoint
GET /online-ordering/v3/{locationId}/menu
Response: 200 OK
Returns consolidated menu object containing schedules, categories, items, modifier sets, modifiers, and taxes.
Response Structure
{
"schedules": [<MenuSchedule>],
"categories": [<MenuCategory>],
"items": [<MenuItem>],
"modifierSets": [<MenuModifierSet>],
"modifiers": [<MenuModifier>],
"taxes": [<MenuTax>]
}
Data Models
Menu Schedule
Defines availability windows with hours and periods supporting cross-day boundaries.
| Field | Type | Required | Description |
|---|---|---|---|
ref | string | Yes | Unique schedule identifier per location |
name | string | Yes | Display name for diners |
available | boolean | Yes | Visibility flag for online ordering |
hours | array | Yes | Operating hours sorted Monday-Sunday |
periods | array | No | Multi-day boundary periods with isOvernight flag |
categories | array | Yes | Associated menu categories |
Menu Category
Represents item groupings (appetizers, drinks, etc.).
| Field | Type | Required | Description |
|---|---|---|---|
ref | string | Yes | Unique category identifier |
name | string | Yes | Display name for customers |
description | string | No | Optional category description |
available | boolean | Yes | Availability flag |
Menu Item
Individual offerings with comprehensive metadata.
| Field | Type | Required | Description |
|---|---|---|---|
ref | string | Yes | Unique item identifier |
name | string | Yes | Item display name |
description | string | No | Optional item description |
available | boolean | Yes | Visibility status |
price | number | No | Price in US cents |
upc | string | No | Universal product code |
sku | string | No | Stock keeping unit |
customLabels | array | No | User-assigned labels |
tags | array | No | Item classifications |
modifierSets | array | Yes | Associated modifier sets |
taxRefs | array | No | Tax references |
imageUrl800x800 | string | No | 800x800px secure image URL |
imageUrl1600x900 | string | No | 1600x900px source image |
imageUrl1600x1600 | string | No | 1600x1600px source image |
Menu Modifier Set
Selection model with configuration options.
| Field | Type | Required | Description |
|---|---|---|---|
ref | string | Yes | Unique modifier set identifier |
name | string | Yes | Display name |
description | string | No | Optional description |
minModifiersPerSet | number | No | Minimum selections (null = unrestricted) |
maxModifiersPerSet | number | No | Maximum selections (null = unrestricted) |
available | boolean | Yes | Visibility flag |
Menu Modifier
Individual selections or modifications.
| Field | Type | Required | Description |
|---|---|---|---|
ref | string | Yes | Unique modifier identifier |
name | string | Yes | Display name |
description | string | No | Optional description |
sku | string | No | Stock keeping unit |
available | boolean | Yes | Availability status |
Menu Tax
Tax rates with type specification.
| Field | Type | Required | Description |
|---|---|---|---|
ref | string | Yes | Unique tax identifier |
name | string | Yes | Tax name |
rate | object | Yes | Tax rate details object |
isHidden | boolean | No | Visibility flag |
Tax Rate:
| Field | Type | Required | Description |
|---|---|---|---|
type | string | Yes | "amount" or "percent" |
percent | integer | Conditional | Divide by 10,000 for percentage value |
amount | integer | Conditional | Amount in US cents |
Differences from V2
Key Changes
- Field Naming: V3 uses
refinstead ofguidfor identifiers - Schedule Periods: Added
isOvernightboolean to explicitly handle cross-day boundaries - Tax Visibility: Added
isHiddenflag for taxes - Product Codes: Added
upcandskufields to items and modifiers - Development Status: V3 is under active development
Technical Specifications
- Currency: All monetary amounts in US cents
- Sorting: Array order indicates display sequence
- Timezone: Schedule times use local timezone
- Image Requirements: HTTPS-secured JPEG, PNG, or GIF formats
- Multi-format Support: Three image sizes for different display contexts