---
title: "Notify the result of a Publish Menu event"
method: POST
path: "/v1/menus/publish"
tags: ["menus_endpoints"]
---

# Notify the result of a Publish Menu event

`POST /v1/menus/publish`

## Request

- Base URL: `https://partners.tryotter.com`
- URL: `https://partners.tryotter.com/v1/menus/publish`
- Auth: OAuth 2
  - Authorization code: `/v1/auth/oauth2/authorize`
  - Client credentials
  - Token URL: `/v1/auth/token` scopes: `menus.publish`
- TypeScript: <https://skmtc.dev/cloudkitchens/apis/otter-api/docs/v1/menus/publish/post.ts> (a function with typed inputs; its response is checked against the schema)

Successful callback response for the [**publish menu**](/docs/api-reference/reference/menu-publish-webhook) webhook. If an error occurred, please publish a [**callback error**](/docs/api-reference/reference/publish-error) instead. See [**failed event flow**](/docs/menus-integrations-failed-event-flow/) for details.
Rate limit: 8 requests per minute.

## Headers

- `X-Store-Id` string, required: The unique identifier of the store in your app. This ID, along with the `Application ID`, will be used to match the correct store when performing operations. It cannot be longer than 255 characters and must only contain printable ASCII characters. During on-boarding, this ID will be similar to `onboarding:905bb725-b141-4a9b-832a-1f254f772c94` (where the UUID is the Internal Store ID). During off-boarding, this field will be filled with the last known Store ID, or with an empty string, in case none is found. In that case, please fall back to the provided `internalStoreId` (a.k.a. Sku-Sku ID).
- `X-Event-Id` string, required: Unique identifier of the event that this callback refers to.

## Request body

- UpsertFullMenuEventCallback
  - `requestedToCreatedEntityIds` object, required: A map for entities created by the Upsert containing the IDs of the requested entities mapped to the IDs of entities created by the request. Our system will use the IDs returned in this map to send updates to these entities in future requests. **NOTE -** A empty map can be used on requestedToCreatedEntityIds to use the same menu IDs that were previously defined.

## Response `204`

The Publish menu event result was successfully processed

## Other responses

- `400`: The request is malformed.
- `401`: Invalid authorization.
- `403`: Authorization not valid for the requested resource.
- `404`: Resource not found.
- `422`: The request body is not valid.

---

[API](https://skmtc.dev/cloudkitchens/apis/otter-api.md) - [All operations](https://skmtc.dev/cloudkitchens/apis/otter-api/llms.txt) - [OpenAPI document](https://skmtc.dev/cloudkitchens/apis/otter-api/revisions/4c868194a467?raw)
