openapi: 3.0.3 info: title: Flipdish API - Apps Accounts CatalogGroups API version: v1.0 description: Flipdish Open API v1.0 — Apps operations. Flipdish is an online ordering and branded-app platform for restaurants and takeaways. This specification was derived from the official Flipdish Swagger document and grouped by resource domain. contact: name: Flipdish Support email: help@flipdish.com url: https://help.flipdish.com x-generated-from: https://api.flipdish.co/swagger/docs/v1.0 x-last-validated: '2026-06-02' servers: - url: https://api.flipdish.co description: Flipdish production API security: - oauth2: - api tags: - name: CatalogGroups description: Operations for Catalog Groups. paths: /api/v1.0/{appId}/catalog/groups/{catalogItemId}: get: tags: - CatalogGroups summary: Flipdish Get Group by Id description: Get Group by Id via the Flipdish Open API v1.0 (GET /api/v1.0/{appId}/catalog/groups/{catalogItemId}). operationId: GetGroupById parameters: - name: appId in: path description: The app id path parameter. required: true schema: type: string example: '500123' - name: catalogItemId in: path description: The catalog item id path parameter. required: true schema: type: string example: '500123' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/Group' examples: GetGroupById200Example: summary: Default GetGroupById 200 response x-microcks-default: true value: CatalogGroupId: '500123' CatalogItemId: '500123' IsArchived: true MinSelectCount: 3 MaxSelectCount: 3 Products: [] Metafields: [] GroupType: ModifierGroup Sku: string Name: Example Name AutogenerateDisplayText: true ImageFileName: Example Name '400': description: BadRequest content: application/json: schema: $ref: '#/components/schemas/FlipdishError' examples: GetGroupById400Example: summary: Default GetGroupById 400 response x-microcks-default: true value: error: errorMessage: Invalid or missing parameters. errorCode: BadRequest details: Validation failed for field 'storeId'. '401': description: Authentication has been denied for this request. content: application/json: schema: $ref: '#/components/schemas/FlipdishError' examples: GetGroupById401Example: summary: Default GetGroupById 401 response x-microcks-default: true value: error: errorMessage: Invalid or missing parameters. errorCode: BadRequest details: Validation failed for field 'storeId'. '403': description: Successful authentication, but authorization has been denied for this request. content: application/json: schema: $ref: '#/components/schemas/FlipdishError' examples: GetGroupById403Example: summary: Default GetGroupById 403 response x-microcks-default: true value: error: errorMessage: Invalid or missing parameters. errorCode: BadRequest details: Validation failed for field 'storeId'. '500': description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/FlipdishError' examples: GetGroupById500Example: summary: Default GetGroupById 500 response x-microcks-default: true value: error: errorMessage: Invalid or missing parameters. errorCode: BadRequest details: Validation failed for field 'storeId'. security: - oauth2: - api x-microcks-operation: delay: 0 dispatcher: FALLBACK post: tags: - CatalogGroups summary: Flipdish Update Group description: Update Group via the Flipdish Open API v1.0 (POST /api/v1.0/{appId}/catalog/groups/{catalogItemId}). operationId: UpdateGroup parameters: - name: appId in: path description: The app id path parameter. required: true schema: type: string example: '500123' - name: catalogItemId in: path description: The catalog item id path parameter. required: true schema: type: string example: '500123' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UpdateGroup' examples: UpdateGroupRequestExample: summary: Default UpdateGroup request x-microcks-default: true value: Sku: string Name: Example Name AutogenerateDisplayText: true ImageFileName: Example Name MinSelectCount: 3 MaxSelectCount: 3 Products: [] Metafields: [] responses: '200': description: OK '400': description: BadRequest content: application/json: schema: $ref: '#/components/schemas/FlipdishError' examples: UpdateGroup400Example: summary: Default UpdateGroup 400 response x-microcks-default: true value: error: errorMessage: Invalid or missing parameters. errorCode: BadRequest details: Validation failed for field 'storeId'. '401': description: Authentication has been denied for this request. content: application/json: schema: $ref: '#/components/schemas/FlipdishError' examples: UpdateGroup401Example: summary: Default UpdateGroup 401 response x-microcks-default: true value: error: errorMessage: Invalid or missing parameters. errorCode: BadRequest details: Validation failed for field 'storeId'. '403': description: Successful authentication, but authorization has been denied for this request. content: application/json: schema: $ref: '#/components/schemas/FlipdishError' examples: UpdateGroup403Example: summary: Default UpdateGroup 403 response x-microcks-default: true value: error: errorMessage: Invalid or missing parameters. errorCode: BadRequest details: Validation failed for field 'storeId'. '404': description: NotFound content: application/json: schema: $ref: '#/components/schemas/FlipdishError' examples: UpdateGroup404Example: summary: Default UpdateGroup 404 response x-microcks-default: true value: error: errorMessage: Invalid or missing parameters. errorCode: BadRequest details: Validation failed for field 'storeId'. '500': description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/FlipdishError' examples: UpdateGroup500Example: summary: Default UpdateGroup 500 response x-microcks-default: true value: error: errorMessage: Invalid or missing parameters. errorCode: BadRequest details: Validation failed for field 'storeId'. security: - oauth2: - api x-microcks-operation: delay: 0 dispatcher: FALLBACK /api/v1.0/{appId}/catalog/groups: get: tags: - CatalogGroups summary: Flipdish Get Groups description: Get Groups via the Flipdish Open API v1.0 (GET /api/v1.0/{appId}/catalog/groups). operationId: GetGroups parameters: - name: appId in: path description: The app id path parameter. required: true schema: type: string example: '500123' - name: groupTypes in: query description: The group types query parameter. required: true explode: true schema: type: array items: type: string enum: - ModifierGroup example: - ModifierGroup - name: searchTerm in: query description: The search term query parameter. required: false schema: type: string example: string - name: page in: query description: The page query parameter. required: false schema: type: integer format: int32 example: 1 - name: limit in: query description: The limit query parameter. required: false schema: type: integer format: int32 example: 1 responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/RestApiPaginationResult_Group_' examples: GetGroups200Example: summary: Default GetGroups 200 response x-microcks-default: true value: Page: 1 Limit: 1 TotalRecordCount: 12.5 Data: [] '400': description: BadRequest content: application/json: schema: $ref: '#/components/schemas/FlipdishError' examples: GetGroups400Example: summary: Default GetGroups 400 response x-microcks-default: true value: error: errorMessage: Invalid or missing parameters. errorCode: BadRequest details: Validation failed for field 'storeId'. '401': description: Authentication has been denied for this request. content: application/json: schema: $ref: '#/components/schemas/FlipdishError' examples: GetGroups401Example: summary: Default GetGroups 401 response x-microcks-default: true value: error: errorMessage: Invalid or missing parameters. errorCode: BadRequest details: Validation failed for field 'storeId'. '403': description: Successful authentication, but authorization has been denied for this request. content: application/json: schema: $ref: '#/components/schemas/FlipdishError' examples: GetGroups403Example: summary: Default GetGroups 403 response x-microcks-default: true value: error: errorMessage: Invalid or missing parameters. errorCode: BadRequest details: Validation failed for field 'storeId'. '500': description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/FlipdishError' examples: GetGroups500Example: summary: Default GetGroups 500 response x-microcks-default: true value: error: errorMessage: Invalid or missing parameters. errorCode: BadRequest details: Validation failed for field 'storeId'. security: - oauth2: - api x-microcks-operation: delay: 0 dispatcher: FALLBACK post: tags: - CatalogGroups summary: Flipdish Create Group description: Create Group via the Flipdish Open API v1.0 (POST /api/v1.0/{appId}/catalog/groups). operationId: CreateGroup parameters: - name: appId in: path description: The app id path parameter. required: true schema: type: string example: '500123' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateGroup' examples: CreateGroupRequestExample: summary: Default CreateGroup request x-microcks-default: true value: MinSelectCount: 3 MaxSelectCount: 3 Products: [] Metafields: [] GroupType: ModifierGroup Sku: string Name: Example Name AutogenerateDisplayText: true ImageFileName: Example Name responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/RestApiResult_Group_' examples: CreateGroup200Example: summary: Default CreateGroup 200 response x-microcks-default: true value: Data: CatalogGroupId: '500123' CatalogItemId: '500123' IsArchived: true MinSelectCount: 3 MaxSelectCount: 3 Products: [] Metafields: [] GroupType: ModifierGroup Sku: string Name: Example Name AutogenerateDisplayText: true ImageFileName: Example Name '400': description: BadRequest content: application/json: schema: $ref: '#/components/schemas/FlipdishError' examples: CreateGroup400Example: summary: Default CreateGroup 400 response x-microcks-default: true value: error: errorMessage: Invalid or missing parameters. errorCode: BadRequest details: Validation failed for field 'storeId'. '401': description: Authentication has been denied for this request. content: application/json: schema: $ref: '#/components/schemas/FlipdishError' examples: CreateGroup401Example: summary: Default CreateGroup 401 response x-microcks-default: true value: error: errorMessage: Invalid or missing parameters. errorCode: BadRequest details: Validation failed for field 'storeId'. '403': description: Successful authentication, but authorization has been denied for this request. content: application/json: schema: $ref: '#/components/schemas/FlipdishError' examples: CreateGroup403Example: summary: Default CreateGroup 403 response x-microcks-default: true value: error: errorMessage: Invalid or missing parameters. errorCode: BadRequest details: Validation failed for field 'storeId'. '500': description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/FlipdishError' examples: CreateGroup500Example: summary: Default CreateGroup 500 response x-microcks-default: true value: error: errorMessage: Invalid or missing parameters. errorCode: BadRequest details: Validation failed for field 'storeId'. security: - oauth2: - api x-microcks-operation: delay: 0 dispatcher: FALLBACK /api/v1.0/{appId}/catalog/groups/{catalogItemId}/archive: post: tags: - CatalogGroups summary: Flipdish Archive Group description: Archive Group via the Flipdish Open API v1.0 (POST /api/v1.0/{appId}/catalog/groups/{catalogItemId}/archive). operationId: ArchiveGroup parameters: - name: appId in: path description: The app id path parameter. required: true schema: type: string example: '500123' - name: catalogItemId in: path description: The catalog item id path parameter. required: true schema: type: string example: '500123' responses: '200': description: OK '400': description: BadRequest content: application/json: schema: $ref: '#/components/schemas/FlipdishError' examples: ArchiveGroup400Example: summary: Default ArchiveGroup 400 response x-microcks-default: true value: error: errorMessage: Invalid or missing parameters. errorCode: BadRequest details: Validation failed for field 'storeId'. '401': description: Authentication has been denied for this request. content: application/json: schema: $ref: '#/components/schemas/FlipdishError' examples: ArchiveGroup401Example: summary: Default ArchiveGroup 401 response x-microcks-default: true value: error: errorMessage: Invalid or missing parameters. errorCode: BadRequest details: Validation failed for field 'storeId'. '403': description: Successful authentication, but authorization has been denied for this request. content: application/json: schema: $ref: '#/components/schemas/FlipdishError' examples: ArchiveGroup403Example: summary: Default ArchiveGroup 403 response x-microcks-default: true value: error: errorMessage: Invalid or missing parameters. errorCode: BadRequest details: Validation failed for field 'storeId'. '404': description: NotFound content: application/json: schema: $ref: '#/components/schemas/FlipdishError' examples: ArchiveGroup404Example: summary: Default ArchiveGroup 404 response x-microcks-default: true value: error: errorMessage: Invalid or missing parameters. errorCode: BadRequest details: Validation failed for field 'storeId'. '500': description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/FlipdishError' examples: ArchiveGroup500Example: summary: Default ArchiveGroup 500 response x-microcks-default: true value: error: errorMessage: Invalid or missing parameters. errorCode: BadRequest details: Validation failed for field 'storeId'. security: - oauth2: - api x-microcks-operation: delay: 0 dispatcher: FALLBACK /api/v1.0/{appId}/catalog/groups/{catalogItemId}/duplicate: post: tags: - CatalogGroups summary: Flipdish Duplicate Group description: Duplicate Group via the Flipdish Open API v1.0 (POST /api/v1.0/{appId}/catalog/groups/{catalogItemId}/duplicate). operationId: DuplicateGroup parameters: - name: appId in: path description: The app id path parameter. required: true schema: type: string example: '500123' - name: catalogItemId in: path description: The catalog item id path parameter. required: true schema: type: string example: '500123' responses: '200': description: OK '400': description: BadRequest content: application/json: schema: $ref: '#/components/schemas/FlipdishError' examples: DuplicateGroup400Example: summary: Default DuplicateGroup 400 response x-microcks-default: true value: error: errorMessage: Invalid or missing parameters. errorCode: BadRequest details: Validation failed for field 'storeId'. '401': description: Authentication has been denied for this request. content: application/json: schema: $ref: '#/components/schemas/FlipdishError' examples: DuplicateGroup401Example: summary: Default DuplicateGroup 401 response x-microcks-default: true value: error: errorMessage: Invalid or missing parameters. errorCode: BadRequest details: Validation failed for field 'storeId'. '403': description: Successful authentication, but authorization has been denied for this request. content: application/json: schema: $ref: '#/components/schemas/FlipdishError' examples: DuplicateGroup403Example: summary: Default DuplicateGroup 403 response x-microcks-default: true value: error: errorMessage: Invalid or missing parameters. errorCode: BadRequest details: Validation failed for field 'storeId'. '404': description: NotFound content: application/json: schema: $ref: '#/components/schemas/FlipdishError' examples: DuplicateGroup404Example: summary: Default DuplicateGroup 404 response x-microcks-default: true value: error: errorMessage: Invalid or missing parameters. errorCode: BadRequest details: Validation failed for field 'storeId'. '500': description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/FlipdishError' examples: DuplicateGroup500Example: summary: Default DuplicateGroup 500 response x-microcks-default: true value: error: errorMessage: Invalid or missing parameters. errorCode: BadRequest details: Validation failed for field 'storeId'. security: - oauth2: - api x-microcks-operation: delay: 0 dispatcher: FALLBACK components: schemas: GroupReference: description: Reference to an existing {Flipdish.Menus.PublicModels.V1.Catalog.Groups.Group} required: - CatalogItemId - GroupType type: object properties: Group: $ref: '#/components/schemas/Group' CatalogItemId: description: Identifier of the ProductId to use as SubProduct maxLength: 30 minLength: 0 type: string example: '500123' GroupType: description: Type of the SupProduct enum: - ModifierGroup type: string example: ModifierGroup RestApiResult_Group_: description: Rest api result required: - Data type: object properties: Data: $ref: '#/components/schemas/Group' UpdateProductReference: description: Data to update a {Flipdish.Menus.PublicModels.V1.Catalog.Groups.UpdateProductReference} required: - CatalogItemId - ProductType type: object properties: CatalogItemId: description: Identifier of the CatalogItemId to use as SubProduct maxLength: 30 minLength: 0 type: string example: '500123' ProductType: description: Type of the SupProduct enum: - Product - Modifier type: string example: Product PreselectedQuantity: format: int32 description: Quantity of the modifier that will be set when the parent product is placed in the basket type: integer example: 3 Product: description: Product required: - ProductType - Sku - Name - Price type: object properties: CatalogItemId: description: Unique catalog Item id maxLength: 30 minLength: 0 type: string example: '500123' IsArchived: description: Returns true if the item is archived type: boolean example: true Groups: description: Collection of groups associated with this item type: array items: $ref: '#/components/schemas/GroupReference' example: [] Metafields: description: Collection of metafields type: array items: $ref: '#/components/schemas/Metafield' example: [] ProductType: description: Type of item (Product, Modifier, etc) enum: - Product - Modifier type: string example: Product Sku: description: Stock Keeping Unit (SKU) maxLength: 30 minLength: 0 type: string example: string Name: description: Product name maxLength: 300 minLength: 0 type: string example: Example Name Description: description: Product description maxLength: 3000 minLength: 0 type: string example: string Price: format: double description: Product price minimum: 0 type: number example: 12.5 ImageFileName: description: Image File Name maxLength: 512 minLength: 0 type: string example: Example Name Alcohol: description: Product contains alcohol type: boolean example: true RestApiPaginationResult_Group_: description: Rest api pagination result required: - Page - Limit - TotalRecordCount - Data type: object properties: Page: format: int32 description: Current page index type: integer example: 1 Limit: format: int32 description: Current page size type: integer example: 1 TotalRecordCount: format: int32 description: Total record count type: integer example: 12.5 Data: description: Generic data object. type: array items: $ref: '#/components/schemas/Group' example: [] ProductReference: description: Catalog Item associated required: - CatalogItemId - ProductType type: object properties: Item: $ref: '#/components/schemas/Product' Product: $ref: '#/components/schemas/Product' CatalogItemId: description: Identifier of the CatalogItemId to use as SubProduct maxLength: 30 minLength: 0 type: string example: '500123' ProductType: description: Type of the SupProduct enum: - Product - Modifier type: string example: Product PreselectedQuantity: format: int32 description: Quantity of the modifier that will be set when the parent product is placed in the basket type: integer example: 3 Metafield: description: Metafield required: - Key - Value type: object properties: Key: description: "Key of the metafield.\r\nAllowed characters: lowercase letters, numbers, hyphen, underscore and dot" type: string example: string Value: description: Value of the metafield. type: string example: string CreateProductReference: description: Information to create a reference to a {Flipdish.Menus.PublicModels.V1.Catalog.Product} required: - CatalogItemId - ProductType type: object properties: CatalogItemId: description: Identifier of the CatalogItemId to use as SubProduct maxLength: 30 minLength: 0 type: string example: '500123' ProductType: description: Type of the SupProduct enum: - Product - Modifier type: string example: Product PreselectedQuantity: format: int32 description: Quantity of the modifier that will be set when the parent product is placed in the basket type: integer example: 3 FlipdishError: type: object description: Standard Flipdish API error response. Errors are returned as a JSON object with a human-readable message and a programmatic error code (see https://developers.flipdish.com/docs/error-handling). properties: error: type: object description: Error detail object. properties: errorMessage: type: string description: Descriptive explanation of the issue. example: Invalid or missing parameters. errorCode: type: string description: Unique identifier for programmatic error handling. example: BadRequest details: type: string description: Additional context returned in non-production environments. example: Validation failed for field 'storeId'. CreateGroup: description: Create a Catalog Group required: - GroupType - Sku - Name type: object properties: MinSelectCount: format: int32 description: Minimum number of items that the user has to select type: integer example: 3 MaxSelectCount: format: int32 description: Maximum number of items that the user has to select type: integer nullable: true example: 3 Products: description: Collection of items associated with this group type: array items: $ref: '#/components/schemas/CreateProductReference' example: [] Metafields: description: Collection of metafields type: array items: $ref: '#/components/schemas/Metafield' example: [] GroupType: description: Type of group (ModifierGroup, etc) enum: - ModifierGroup type: string example: ModifierGroup Sku: description: Stock Keeping Unit (SKU) maxLength: 30 minLength: 0 type: string example: string Name: description: Group name maxLength: 300 minLength: 0 type: string example: Example Name AutogenerateDisplayText: description: Autogenerate display text in ordering applications type: boolean example: true ImageFileName: description: Image File Name maxLength: 512 minLength: 0 type: string example: Example Name Group: description: CatalogGroup required: - GroupType - Sku - Name type: object properties: CatalogGroupId: description: Unique catalog group id maxLength: 30 minLength: 0 type: string example: '500123' CatalogItemId: description: Unique catalog item id maxLength: 30 minLength: 0 type: string example: '500123' IsArchived: description: Returns true if the group is archived type: boolean example: true MinSelectCount: format: int32 description: Minimum number of items that the user has to select type: integer example: 3 MaxSelectCount: format: int32 description: Maximum number of items that the user has to select type: integer nullable: true example: 3 Products: description: Collection of items associated with this product type: array items: $ref: '#/components/schemas/ProductReference' example: [] Metafields: description: Collection of metafields type: array items: $ref: '#/components/schemas/Metafield' example: [] GroupType: description: Type of group (ModifierGroup, etc) enum: - ModifierGroup type: string example: ModifierGroup Sku: description: Stock Keeping Unit (SKU) maxLength: 30 minLength: 0 type: string example: string Name: description: Group name maxLength: 300 minLength: 0 type: string example: Example Name AutogenerateDisplayText: description: Autogenerate display text in ordering applications type: boolean example: true ImageFileName: description: Image File Name maxLength: 512 minLength: 0 type: string example: Example Name UpdateGroup: description: Update Catalog Group type: object properties: Sku: description: Stock Keeping Unit (SKU) maxLength: 30 minLength: 0 type: string example: string Name: description: Group name maxLength: 300 minLength: 0 type: string example: Example Name AutogenerateDisplayText: description: Autogenerate display text in ordering applications type: boolean nullable: true example: true ImageFileName: description: Image File Name maxLength: 512 minLength: 0 type: string example: Example Name MinSelectCount: format: int32 description: Minimum number of items that the user has to select type: integer nullable: true example: 3 MaxSelectCount: format: int32 description: Maximum number of items that the user has to select type: integer nullable: true example: 3 Products: description: Collection of items associated with this group type: array items: $ref: '#/components/schemas/UpdateProductReference' example: [] Metafields: description: Collection of metafields type: array items: $ref: '#/components/schemas/Metafield' example: [] securitySchemes: oauth2: type: oauth2 description: OAuth 2.0. Implicit grant for first-party portal apps; client credentials grant for server-to-server App Store apps (exchange Client ID + Secret Key for a bearer access token). flows: implicit: authorizationUrl: https://api.flipdish.co/identity/connect/authorize scopes: api: Access to the Flipdish API clientCredentials: tokenUrl: https://api.flipdish.co/identity/connect/token scopes: api: Access to the Flipdish API