Menu

Use this endpoint to upload or update a client’s full menu (categories, products, variants, modifiers, and attributes) in one request.

This page mirrors the structure and tone of the existing Product documentation and fits into the same navigation under API Documentation.


Endpoint

PUT /v2/upload/client/products

Uploads a complete menu payload and performs upserts by identifiers:

  • integration_id for categories, sub‑categories, and modifier groups

  • pid for products and product variants

If a record with the same identifier exists, it is updated; otherwise, it is created. Records not present in the payload are left unchanged unless replace mode is explicitly enabled.


Authentication

All requests require a valid Bearer token.

Authorization: Bearer <token>
Content-Type: application/json

Request Body

A single JSON document containing the client’s menu. Top‑level properties:

Field
Type
Required
Description

title

string

Menu name for ease of identification

integration_id

string

Menu ID

branches

object array

Optional object list of branch number identifiers.

type

array

Identifies the type of menu, options are DELIVERY | COLLECTION | DINE-IN

menu_categories

array

Hierarchy of categories and sub‑categories.

condiment_groups

array

Typically this is a list of products that enhances the hero product

products

array

Products with variants and references to categories and condiment groups.

attributes

array

Lookup catalogs (e.g., tax codes, preparation methods).

Category Model

Condiment Group Model

Product Model

Attributes Catalog


Example — Minimal Payload


Responses

200 OK

422 Validation Error


Validation Rules

  • The menu integration_id must be unique per tenant.

  • If branches are not provided, the menu applies across all branches.

  • If the menu type is not provided, the menu will be applied across all three types DELIVERY | COLLECTION | DINE-IN

  • menu_categories is a required array to group all products

  • condiment_groups are optional

  • All products are required to have the following:

    • A unique sku

    • A unique pid

    • A title.

    • A non negative price.

    • If provided, image_url must be HTTPS.

Last updated