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

# Cancel Menu Publish

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

Cancel an in-progress publish of a menu.

Take `menuPublishId` from `publishStatus`. A menu can have several publishes in flight, so only the one named in the path is cancelled.

Stages that have not run yet are stopped. Work already handed to a sales channel is not recalled, so read `salesChannels` for where each one ended up. Safe to repeat: a publish that has already finished reports `Succeeded` or `Failed` rather than `Cancelled`.

# 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"
        ]
      },
      "MenuPublishCancel": {
        "type": "object",
        "properties": {
          "menuId": {
            "type": "string",
            "format": "uuid",
            "description": "Menu ID",
            "example": "123e4567-e89b-12d3-a456-426614174000"
          },
          "menuPublishId": {
            "type": "string",
            "format": "uuid",
            "description": "Identifier of the publish the cancellation was applied to",
            "example": "123e4567-e89b-12d3-a456-426614174000"
          },
          "revisionId": {
            "type": "string",
            "description": "The revision that publish was publishing",
            "example": "24"
          },
          "status": {
            "type": "string",
            "enum": [
              "InProgress",
              "Succeeded",
              "Failed",
              "Cancelled",
              "NotPublished"
            ],
            "description": "Outcome of the publish as a whole once the cancellation was applied. `Cancelled` means the cancellation took effect. `Succeeded` or `Failed` mean the publish had already finished and there was nothing left to cancel. `InProgress` means at least one sales channel was still being processed - see `salesChannels` for which.",
            "example": "Cancelled"
          },
          "salesChannels": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "salesChannelId": {
                  "type": "string",
                  "description": "Sales Channel ID in standard format",
                  "example": "sc123"
                },
                "status": {
                  "type": "string",
                  "enum": [
                    "InProgress",
                    "Succeeded",
                    "Failed",
                    "Cancelled",
                    "NotPublished"
                  ],
                  "description": "Publish outcome for this sales channel. `InProgress` while it is still being processed; `Succeeded` when every stage completed; `Failed` or `Cancelled` if any stage did.",
                  "example": "InProgress"
                }
              },
              "required": [
                "salesChannelId",
                "status"
              ]
            },
            "description": "Per-sales-channel outcome of that publish once the cancellation was applied. A sales channel that had already finished keeps the outcome it reached; only the ones still being processed become `Cancelled`. Lists only the sales channels the publish targeted."
          }
        },
        "required": [
          "menuId",
          "menuPublishId",
          "revisionId",
          "status",
          "salesChannels"
        ]
      },
      "Cancellationresult": {
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/MenuPublishCancel"
          }
        },
        "required": [
          "data"
        ]
      }
    }
  },
  "paths": {
    "/menuManagement/orgs/{orgId}/menus/{menuId}/publishes/{menuPublishId}/cancel": {
      "post": {
        "summary": "Cancel Menu Publish",
        "description": "⚠️ **Beta Notice:** This endpoint is currently in beta and may change or be deprecated at any time without notice.\n\nCancel an in-progress publish of a menu.\n\nTake `menuPublishId` from `publishStatus`. A menu can have several publishes in flight, so only the one named in the path is cancelled.\n\nStages that have not run yet are stopped. Work already handed to a sales channel is not recalled, so read `salesChannels` for where each one ended up. Safe to repeat: a publish that has already finished reports `Succeeded` or `Failed` rather than `Cancelled`.",
        "operationId": "post__menuManagement_orgs__orgId_menus__menuId_publishes__menuPublishId_cancel_7",
        "tags": [
          "Menu Management"
        ],
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "parameters": [
          {
            "schema": {
              "type": "string",
              "description": "Organization ID",
              "example": "org123"
            },
            "required": true,
            "name": "orgId",
            "in": "path"
          },
          {
            "schema": {
              "type": "string",
              "format": "uuid",
              "description": "Menu ID",
              "example": "123e4567-e89b-12d3-a456-426614174000"
            },
            "required": true,
            "name": "menuId",
            "in": "path"
          },
          {
            "schema": {
              "type": "string",
              "format": "uuid",
              "description": "Menu publish ID",
              "example": "123e4567-e89b-12d3-a456-426614174000"
            },
            "required": true,
            "name": "menuPublishId",
            "in": "path"
          }
        ],
        "responses": {
          "200": {
            "description": "Cancellation result",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Cancellationresult"
                }
              }
            }
          },
          "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"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    }
  }
}
```