{
  "openapi": "3.0.4",
  "info": {
    "title": "SquirrelApi/Integration.Ordering (1.0.1014.2)",
    "version": "v1"
  },
  "servers": [
    {
      "url": "/api/integration/ordering"
    }
  ],
  "paths": {
    "/{storeMapValue}/validate": {
      "post": {
        "tags": [
          "Ordering"
        ],
        "summary": "Validates an online order for a given store map value (configured in BoH) and returns a validation result\r\nwith possible price and tax adjustments.",
        "operationId": "post-validate",
        "parameters": [
          {
            "name": "storeMapValue",
            "in": "path",
            "description": "The identifier for the store. It is configured in the back of house (BoH).",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "The order to validate.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/OrderRequestOrderingDto"
              },
              "example": {
                "order": {
                  "id": "",
                  "totalPaid": 40.32,
                  "subtotal": 39.2,
                  "tax": 4.2,
                  "tip": 3,
                  "storeId": 1,
                  "tableNumber": null,
                  "specialInstructions": "No onions please",
                  "promoIds": null,
                  "items": [
                    {
                      "id": 1,
                      "name": "Pop",
                      "price": 5,
                      "quantity": 1,
                      "itemPromoId": 1,
                      "modifiers": [ ]
                    },
                    {
                      "id": 2,
                      "name": "Beer",
                      "price": 7.5,
                      "quantity": 2,
                      "itemPromoId": 0,
                      "modifiers": [ ]
                    },
                    {
                      "id": 9,
                      "name": "Steak",
                      "price": 16,
                      "quantity": 1,
                      "itemPromoId": 0,
                      "modifiers": [
                        {
                          "id": 19,
                          "name": "French fries",
                          "price": 0,
                          "quantity": 1,
                          "modifiers": null
                        }
                      ]
                    }
                  ],
                  "isFuture": false,
                  "estimatedReadyTime": null,
                  "payments": [
                    {
                      "paymentId": 1,
                      "amount": 25.32,
                      "tip": 2
                    },
                    {
                      "paymentId": 3,
                      "amount": 15,
                      "tip": 1
                    }
                  ]
                },
                "printer": "1"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/OrderRequestOrderingDto"
              },
              "example": {
                "order": {
                  "id": "",
                  "totalPaid": 40.32,
                  "subtotal": 39.2,
                  "tax": 4.2,
                  "tip": 3,
                  "storeId": 1,
                  "tableNumber": null,
                  "specialInstructions": "No onions please",
                  "promoIds": null,
                  "items": [
                    {
                      "id": 1,
                      "name": "Pop",
                      "price": 5,
                      "quantity": 1,
                      "itemPromoId": 1,
                      "modifiers": [ ]
                    },
                    {
                      "id": 2,
                      "name": "Beer",
                      "price": 7.5,
                      "quantity": 2,
                      "itemPromoId": 0,
                      "modifiers": [ ]
                    },
                    {
                      "id": 9,
                      "name": "Steak",
                      "price": 16,
                      "quantity": 1,
                      "itemPromoId": 0,
                      "modifiers": [
                        {
                          "id": 19,
                          "name": "French fries",
                          "price": 0,
                          "quantity": 1,
                          "modifiers": null
                        }
                      ]
                    }
                  ],
                  "isFuture": false,
                  "estimatedReadyTime": null,
                  "payments": [
                    {
                      "paymentId": 1,
                      "amount": 25.32,
                      "tip": 2
                    },
                    {
                      "paymentId": 3,
                      "amount": 15,
                      "tip": 1
                    }
                  ]
                },
                "printer": "1"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/OrderRequestOrderingDto"
              },
              "example": {
                "order": {
                  "id": "",
                  "totalPaid": 40.32,
                  "subtotal": 39.2,
                  "tax": 4.2,
                  "tip": 3,
                  "storeId": 1,
                  "tableNumber": null,
                  "specialInstructions": "No onions please",
                  "promoIds": null,
                  "items": [
                    {
                      "id": 1,
                      "name": "Pop",
                      "price": 5,
                      "quantity": 1,
                      "itemPromoId": 1,
                      "modifiers": [ ]
                    },
                    {
                      "id": 2,
                      "name": "Beer",
                      "price": 7.5,
                      "quantity": 2,
                      "itemPromoId": 0,
                      "modifiers": [ ]
                    },
                    {
                      "id": 9,
                      "name": "Steak",
                      "price": 16,
                      "quantity": 1,
                      "itemPromoId": 0,
                      "modifiers": [
                        {
                          "id": 19,
                          "name": "French fries",
                          "price": 0,
                          "quantity": 1,
                          "modifiers": null
                        }
                      ]
                    }
                  ],
                  "isFuture": false,
                  "estimatedReadyTime": null,
                  "payments": [
                    {
                      "paymentId": 1,
                      "amount": 25.32,
                      "tip": 2
                    },
                    {
                      "paymentId": 3,
                      "amount": 15,
                      "tip": 1
                    }
                  ]
                },
                "printer": "1"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidateResponseOrderingDto"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrderingErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrderingErrorResponse"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrderingErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrderingErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/{storeMapValue}/order": {
      "post": {
        "tags": [
          "Ordering"
        ],
        "summary": "Places an online order",
        "operationId": "post-order",
        "parameters": [
          {
            "name": "storeMapValue",
            "in": "path",
            "description": "The identifier for the store. It is configured in the back of house (BoH).",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "The order to place",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/OrderRequestOrderingDto"
              },
              "example": {
                "order": {
                  "id": "",
                  "totalPaid": 40.32,
                  "subtotal": 39.2,
                  "tax": 4.2,
                  "tip": 3,
                  "storeId": 1,
                  "tableNumber": null,
                  "specialInstructions": "No onions please",
                  "promoIds": null,
                  "items": [
                    {
                      "id": 1,
                      "name": "Pop",
                      "price": 5,
                      "quantity": 1,
                      "itemPromoId": 1,
                      "modifiers": [ ]
                    },
                    {
                      "id": 2,
                      "name": "Beer",
                      "price": 7.5,
                      "quantity": 2,
                      "itemPromoId": 0,
                      "modifiers": [ ]
                    },
                    {
                      "id": 9,
                      "name": "Steak",
                      "price": 16,
                      "quantity": 1,
                      "itemPromoId": 0,
                      "modifiers": [
                        {
                          "id": 19,
                          "name": "French fries",
                          "price": 0,
                          "quantity": 1,
                          "modifiers": null
                        }
                      ]
                    }
                  ],
                  "isFuture": false,
                  "estimatedReadyTime": null,
                  "payments": [
                    {
                      "paymentId": 1,
                      "amount": 25.32,
                      "tip": 2
                    },
                    {
                      "paymentId": 3,
                      "amount": 15,
                      "tip": 1
                    }
                  ]
                },
                "printer": "1"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/OrderRequestOrderingDto"
              },
              "example": {
                "order": {
                  "id": "",
                  "totalPaid": 40.32,
                  "subtotal": 39.2,
                  "tax": 4.2,
                  "tip": 3,
                  "storeId": 1,
                  "tableNumber": null,
                  "specialInstructions": "No onions please",
                  "promoIds": null,
                  "items": [
                    {
                      "id": 1,
                      "name": "Pop",
                      "price": 5,
                      "quantity": 1,
                      "itemPromoId": 1,
                      "modifiers": [ ]
                    },
                    {
                      "id": 2,
                      "name": "Beer",
                      "price": 7.5,
                      "quantity": 2,
                      "itemPromoId": 0,
                      "modifiers": [ ]
                    },
                    {
                      "id": 9,
                      "name": "Steak",
                      "price": 16,
                      "quantity": 1,
                      "itemPromoId": 0,
                      "modifiers": [
                        {
                          "id": 19,
                          "name": "French fries",
                          "price": 0,
                          "quantity": 1,
                          "modifiers": null
                        }
                      ]
                    }
                  ],
                  "isFuture": false,
                  "estimatedReadyTime": null,
                  "payments": [
                    {
                      "paymentId": 1,
                      "amount": 25.32,
                      "tip": 2
                    },
                    {
                      "paymentId": 3,
                      "amount": 15,
                      "tip": 1
                    }
                  ]
                },
                "printer": "1"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/OrderRequestOrderingDto"
              },
              "example": {
                "order": {
                  "id": "",
                  "totalPaid": 40.32,
                  "subtotal": 39.2,
                  "tax": 4.2,
                  "tip": 3,
                  "storeId": 1,
                  "tableNumber": null,
                  "specialInstructions": "No onions please",
                  "promoIds": null,
                  "items": [
                    {
                      "id": 1,
                      "name": "Pop",
                      "price": 5,
                      "quantity": 1,
                      "itemPromoId": 1,
                      "modifiers": [ ]
                    },
                    {
                      "id": 2,
                      "name": "Beer",
                      "price": 7.5,
                      "quantity": 2,
                      "itemPromoId": 0,
                      "modifiers": [ ]
                    },
                    {
                      "id": 9,
                      "name": "Steak",
                      "price": 16,
                      "quantity": 1,
                      "itemPromoId": 0,
                      "modifiers": [
                        {
                          "id": 19,
                          "name": "French fries",
                          "price": 0,
                          "quantity": 1,
                          "modifiers": null
                        }
                      ]
                    }
                  ],
                  "isFuture": false,
                  "estimatedReadyTime": null,
                  "payments": [
                    {
                      "paymentId": 1,
                      "amount": 25.32,
                      "tip": 2
                    },
                    {
                      "paymentId": 3,
                      "amount": 15,
                      "tip": 1
                    }
                  ]
                },
                "printer": "1"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlaceOrderResponseOrderingDto"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrderingErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrderingErrorResponse"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrderingErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrderingErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/{storeMapValue}/order/{checkNumber}": {
      "post": {
        "tags": [
          "Ordering"
        ],
        "summary": "Adds items to an existing open check identified by its check number.\r\nThe check must be active (not closed). New items, modifiers, and optional promos\r\nare appended to the check. The check remains open after the operation.",
        "operationId": "post-add-to-order",
        "parameters": [
          {
            "name": "storeMapValue",
            "in": "path",
            "description": "The identifier for the store. It is configured in the back of house (BoH).",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "checkNumber",
            "in": "path",
            "description": "The POS check number of the existing open check (e.g. \"00010001\").",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "The items, optional promo IDs, and optional printer name.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AddToOrderRequestOrderingDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/AddToOrderRequestOrderingDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/AddToOrderRequestOrderingDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlaceOrderResponseOrderingDto"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrderingErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrderingErrorResponse"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrderingErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrderingErrorResponse"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "Ordering"
        ],
        "summary": "Retrieves details of an active check by its check number, including all non-voided line items,\r\ntotals, tax/service-charge/discount breakdowns, and the current amount due.",
        "operationId": "get-fetch-order",
        "parameters": [
          {
            "name": "storeMapValue",
            "in": "path",
            "description": "The identifier for the store. It is configured in the back of house (BoH).",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "checkNumber",
            "in": "path",
            "description": "The POS check number (e.g. \"00010001\").",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FetchOrderResponseOrderingDto"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrderingErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrderingErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrderingErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/{storeMapValue}/order/{checkNumber}/pay": {
      "post": {
        "tags": [
          "Ordering"
        ],
        "summary": "Applies one or more payments (tenders) to an existing open check.\r\nSupports partial payments — when the total amount paid does not cover the balance,\r\nthe check remains open with the updated amount due.\r\nWhen payments fully cover the balance the check is closed automatically.",
        "operationId": "post-pay-order",
        "parameters": [
          {
            "name": "storeMapValue",
            "in": "path",
            "description": "The identifier for the store. It is configured in the back of house (BoH).",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "checkNumber",
            "in": "path",
            "description": "The POS check number of the existing open check (e.g. \"00010001\").",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "One or more tenders to apply, each with PaymentId, Amount, and Tip.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PayOrderRequestOrderingDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/PayOrderRequestOrderingDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/PayOrderRequestOrderingDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PayOrderResponseOrderingDto"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrderingErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrderingErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrderingErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/{storeMapValue}/pricing": {
      "get": {
        "tags": [
          "Ordering"
        ],
        "summary": "Retrieves the current menu pricing from the ordering system for the specified store.",
        "operationId": "get-menu-pricing",
        "parameters": [
          {
            "name": "storeMapValue",
            "in": "path",
            "description": "The identifier for the store. It is configured in the back of house (BoH).",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "type",
            "in": "query",
            "description": "Optional filter by menu entry type (e.g., Item, Modifier, AddOn).",
            "schema": {
              "enum": [
                "Item",
                "Modifier",
                "AddOn",
                "NonRevenueItem",
                "GiftCard"
              ],
              "type": "string",
              "format": "int32",
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MenuPricingResponseOrderingDto"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrderingErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrderingErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrderingErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/{storeMapValue}/categories": {
      "get": {
        "tags": [
          "Ordering"
        ],
        "summary": "Retrieves the list of categories for the specified store.",
        "operationId": "get-ordering-categories",
        "parameters": [
          {
            "name": "storeMapValue",
            "in": "path",
            "description": "The identifier for the store. It is configured in the back of house (BoH).",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/CategoryResponseDto"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrderingErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrderingErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrderingErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/{storeMapValue}/departments": {
      "get": {
        "tags": [
          "Ordering"
        ],
        "summary": "Retrieves the list of departments for the specified store.",
        "operationId": "get-ordering-departments",
        "parameters": [
          {
            "name": "storeMapValue",
            "in": "path",
            "description": "The identifier for the store. It is configured in the back of house (BoH).",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/DepartmentResponseDto"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrderingErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrderingErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrderingErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/{storeMapValue}/mandatoryCharges": {
      "get": {
        "tags": [
          "Ordering"
        ],
        "summary": "Retrieves the list of mandatory charges (service charges and house charges) for the specified store.\r\nReturns all charges with fields to determine if a charge is dollar-based (Amount) or percent-based (Percentage).",
        "operationId": "get-ordering-mandatory-charges",
        "parameters": [
          {
            "name": "storeMapValue",
            "in": "path",
            "description": "The identifier for the store. It is configured in the back of house (BoH).",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "valueType",
            "in": "query",
            "description": "Optional filter by value type. Accepts string values: 'Amount' for dollar-based charges, \r\n            'Percentage' for percent-based charges. If not specified, all charges are returned.",
            "schema": {
              "enum": [
                "Amount",
                "Percentage"
              ],
              "type": "string",
              "format": "int32",
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/MandatoryChargeDto"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrderingErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrderingErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrderingErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/{storeMapValue}/employees": {
      "get": {
        "tags": [
          "Ordering"
        ],
        "summary": "Retrieves the list of employees for the specified store.",
        "operationId": "get-ordering-employees",
        "parameters": [
          {
            "name": "storeMapValue",
            "in": "path",
            "description": "The identifier for the store. It is configured in the back of house (BoH).",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/EmployeeResponseDto"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrderingErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrderingErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrderingErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/{storeMapValue}/tenders": {
      "get": {
        "tags": [
          "Ordering"
        ],
        "summary": "Retrieves the list of tenders (payment types) configured for the specified store.",
        "operationId": "get-ordering-tenders",
        "parameters": [
          {
            "name": "storeMapValue",
            "in": "path",
            "description": "The identifier for the store. It is configured in the back of house (BoH).",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/TenderResponseDto"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrderingErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrderingErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrderingErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/{storeMapValue}/taxClasses": {
      "get": {
        "tags": [
          "Ordering"
        ],
        "summary": "Retrieves the list of tax classes (tax groups) with their associated taxes for the specified store.",
        "operationId": "get-ordering-tax-classes",
        "parameters": [
          {
            "name": "storeMapValue",
            "in": "path",
            "description": "The identifier for the store. It is configured in the back of house (BoH).",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/TaxClassResponseDto"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrderingErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrderingErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrderingErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/{storeMapValue}/priceListSchedules": {
      "get": {
        "tags": [
          "Ordering"
        ],
        "summary": "Retrieves the list of price list schedules for the specified store,\r\nincluding price list names, time intervals, and day-of-week/time-slot mappings.",
        "operationId": "get-ordering-price-list-schedules",
        "parameters": [
          {
            "name": "storeMapValue",
            "in": "path",
            "description": "The identifier for the store. It is configured in the back of house (BoH).",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/PriceListScheduleDto"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrderingErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrderingErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrderingErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/{storeMapValue}/table/{tableNumber}": {
      "get": {
        "tags": [
          "Ordering"
        ],
        "summary": "Retrieves all active checks open on the specified table, including line items,\r\ntotals, tax/service-charge/discount breakdowns, and the amount due on each check.",
        "operationId": "get-fetch-table",
        "parameters": [
          {
            "name": "storeMapValue",
            "in": "path",
            "description": "The identifier for the store. It is configured in the back of house (BoH).",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "tableNumber",
            "in": "path",
            "description": "The table name/number as configured in the POS (e.g. \"T1\" or \"12\").",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FetchTableResponseOrderingDto"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrderingErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrderingErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrderingErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/{storeMapValue}/tables": {
      "get": {
        "tags": [
          "Ordering"
        ],
        "summary": "Retrieves all tables that currently have open checks, with per-check totals\r\nand tax/service-charge/discount breakdowns (no item details).\r\nDesigned for the pay-at-table overview flow.",
        "operationId": "get-fetch-tables",
        "parameters": [
          {
            "name": "storeMapValue",
            "in": "path",
            "description": "The identifier for the store. It is configured in the back of house (BoH).",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FetchTablesResponseOrderingDto"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrderingErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrderingErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrderingErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/{storeMapValue}/unavailableItems": {
      "get": {
        "tags": [
          "Ordering"
        ],
        "summary": "Retrieves a list of menu items that are currently unavailable (inhibited or sold out)\r\nfor the specified store.",
        "operationId": "get-unavailable-items",
        "parameters": [
          {
            "name": "storeMapValue",
            "in": "path",
            "description": "The identifier for the store. It is configured in the back of house (BoH).",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/UnavailableItemDto"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrderingErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrderingErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrderingErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/{storeMapValue}/health": {
      "get": {
        "tags": [
          "Health"
        ],
        "summary": "Checks the health of the connection to the ordering system for the specified store",
        "operationId": "get-store-health",
        "parameters": [
          {
            "name": "storeMapValue",
            "in": "path",
            "description": "The identifier for the store. It is configured in the back of house (BoH).",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HealthResponseOrderingDto"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrderingErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrderingErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrderingErrorResponse"
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "AddToOrderRequestOrderingDto": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ItemOrderingDto"
            },
            "nullable": true
          },
          "promoIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "nullable": true
          },
          "printer": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CategoryResponseDto": {
        "type": "object",
        "properties": {
          "categoryId": {
            "type": "integer",
            "format": "int32"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "parentCategoryId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "DepartmentResponseDto": {
        "type": "object",
        "properties": {
          "departmentId": {
            "type": "integer",
            "format": "int32"
          },
          "departmentName": {
            "type": "string",
            "nullable": true
          },
          "revenueTypeId": {
            "type": "integer",
            "format": "int32"
          },
          "revenueTypeName": {
            "enum": [
              "Checks",
              "Tables",
              "Takeout"
            ],
            "type": "string",
            "format": "int32"
          },
          "revenueName": {
            "type": "string",
            "nullable": true
          },
          "storeName": {
            "type": "string",
            "nullable": true
          },
          "externalDepartmentId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "externalStoreId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "DiscountBreakdownDto": {
        "type": "object",
        "properties": {
          "promoName": {
            "type": "string",
            "nullable": true
          },
          "amount": {
            "type": "number",
            "format": "double"
          }
        },
        "additionalProperties": false
      },
      "EmployeeResponseDto": {
        "type": "object",
        "properties": {
          "employeeId": {
            "type": "integer",
            "format": "int32"
          },
          "firstName": {
            "type": "string",
            "nullable": true
          },
          "lastName": {
            "type": "string",
            "nullable": true
          },
          "hireDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "lastDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "isEmployed": {
            "type": "boolean"
          },
          "externalEmployeeId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "FetchOrderItemDto": {
        "type": "object",
        "properties": {
          "menuEntryId": {
            "type": "integer",
            "format": "int32"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "quantity": {
            "type": "number",
            "format": "double"
          },
          "unitPrice": {
            "type": "number",
            "format": "double"
          },
          "grossPrice": {
            "type": "number",
            "format": "double"
          },
          "parentCheckItemId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "FetchOrderResponseOrderingDto": {
        "type": "object",
        "properties": {
          "totalAmount": {
            "type": "number",
            "format": "double"
          },
          "totalTaxAmount": {
            "type": "number",
            "format": "double"
          },
          "totalServiceChargeAmount": {
            "type": "number",
            "format": "double"
          },
          "totalDiscountAmount": {
            "type": "number",
            "format": "double"
          },
          "adjustedSubTotal": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "adjustedTax": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "taxBreakdown": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TaxBreakdownDto"
            },
            "nullable": true
          },
          "serviceChargeBreakdown": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ServiceChargeBreakdownDto"
            },
            "nullable": true
          },
          "discountBreakdown": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DiscountBreakdownDto"
            },
            "nullable": true
          },
          "checkNumber": {
            "type": "string",
            "nullable": true
          },
          "amountDue": {
            "type": "number",
            "format": "double"
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FetchOrderItemDto"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "FetchTableResponseOrderingDto": {
        "type": "object",
        "properties": {
          "tableNumber": {
            "type": "string",
            "nullable": true
          },
          "checks": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FetchOrderResponseOrderingDto"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "FetchTablesCheckSummaryDto": {
        "type": "object",
        "properties": {
          "totalAmount": {
            "type": "number",
            "format": "double"
          },
          "totalTaxAmount": {
            "type": "number",
            "format": "double"
          },
          "totalServiceChargeAmount": {
            "type": "number",
            "format": "double"
          },
          "totalDiscountAmount": {
            "type": "number",
            "format": "double"
          },
          "adjustedSubTotal": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "adjustedTax": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "taxBreakdown": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TaxBreakdownDto"
            },
            "nullable": true
          },
          "serviceChargeBreakdown": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ServiceChargeBreakdownDto"
            },
            "nullable": true
          },
          "discountBreakdown": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DiscountBreakdownDto"
            },
            "nullable": true
          },
          "checkNumber": {
            "type": "string",
            "nullable": true
          },
          "checkName": {
            "type": "string",
            "nullable": true
          },
          "amountDue": {
            "type": "number",
            "format": "double"
          }
        },
        "additionalProperties": false
      },
      "FetchTablesResponseOrderingDto": {
        "type": "object",
        "properties": {
          "tables": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FetchTablesTableDto"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "FetchTablesTableDto": {
        "type": "object",
        "properties": {
          "tableNumber": {
            "type": "string",
            "nullable": true
          },
          "checks": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FetchTablesCheckSummaryDto"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "HealthResponseOrderingDto": {
        "type": "object",
        "properties": {
          "online": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "ItemOrderingDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "price": {
            "type": "number",
            "format": "double"
          },
          "quantity": {
            "type": "number",
            "format": "double"
          },
          "itemPromoId": {
            "type": "integer",
            "format": "int32"
          },
          "modifiers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ModifierOrderingDto"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "MandatoryChargeDto": {
        "type": "object",
        "properties": {
          "mandatoryChargeId": {
            "type": "integer",
            "format": "int32"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "mandatoryChargeTypeId": {
            "type": "integer",
            "format": "int32"
          },
          "mandatoryChargeTypeName": {
            "enum": [
              "Service",
              "House"
            ],
            "type": "string",
            "format": "int32"
          },
          "valueTypeId": {
            "type": "integer",
            "format": "int32"
          },
          "valueTypeName": {
            "enum": [
              "Amount",
              "Percentage"
            ],
            "type": "string",
            "format": "int32"
          },
          "amount": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "percent": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "taxGroupId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "roundingId": {
            "type": "integer",
            "format": "int32"
          },
          "applyOnlyFromSeatCount": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "MenuItemPriceOrderingDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "price": {
            "type": "number",
            "format": "double"
          },
          "inhibited": {
            "type": "boolean"
          },
          "countdownCount": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "active": {
            "type": "boolean"
          },
          "menuEntryTypeId": {
            "type": "integer",
            "format": "int32"
          },
          "menuEntryTypeName": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "MenuPricingResponseOrderingDto": {
        "type": "object",
        "properties": {
          "priceList": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MenuItemPriceOrderingDto"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ModifierOrderingDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "price": {
            "type": "number",
            "format": "double"
          },
          "quantity": {
            "type": "number",
            "format": "double"
          },
          "modifiers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ModifierOrderingDto"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "OrderOrderingDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "nullable": true
          },
          "totalPaid": {
            "type": "number",
            "format": "double"
          },
          "subtotal": {
            "type": "number",
            "format": "double"
          },
          "tax": {
            "type": "number",
            "format": "double"
          },
          "tip": {
            "type": "number",
            "format": "double"
          },
          "storeId": {
            "type": "integer",
            "format": "int32"
          },
          "tableNumber": {
            "type": "string",
            "nullable": true
          },
          "specialInstructions": {
            "type": "string",
            "nullable": true
          },
          "promoIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "nullable": true
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ItemOrderingDto"
            },
            "nullable": true
          },
          "isFuture": {
            "type": "boolean"
          },
          "estimatedReadyTime": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "payments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PaymentOrderingDto"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "OrderRequestOrderingDto": {
        "type": "object",
        "properties": {
          "order": {
            "$ref": "#/components/schemas/OrderOrderingDto"
          },
          "printer": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "OrderingErrorResponse": {
        "type": "object",
        "properties": {
          "code": {
            "type": "string",
            "nullable": true
          },
          "message": {
            "type": "string",
            "nullable": true
          },
          "reference": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "PayOrderRequestOrderingDto": {
        "type": "object",
        "properties": {
          "payments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PaymentOrderingDto"
            },
            "nullable": true
          },
          "printer": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "PayOrderResponseOrderingDto": {
        "type": "object",
        "properties": {
          "totalAmount": {
            "type": "number",
            "format": "double"
          },
          "totalTaxAmount": {
            "type": "number",
            "format": "double"
          },
          "totalServiceChargeAmount": {
            "type": "number",
            "format": "double"
          },
          "totalDiscountAmount": {
            "type": "number",
            "format": "double"
          },
          "adjustedSubTotal": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "adjustedTax": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "taxBreakdown": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TaxBreakdownDto"
            },
            "nullable": true
          },
          "serviceChargeBreakdown": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ServiceChargeBreakdownDto"
            },
            "nullable": true
          },
          "discountBreakdown": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DiscountBreakdownDto"
            },
            "nullable": true
          },
          "checkNumber": {
            "type": "string",
            "nullable": true
          },
          "amountDue": {
            "type": "number",
            "format": "double"
          },
          "isClosed": {
            "type": "boolean"
          },
          "receiptLines": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "PaymentOrderingDto": {
        "type": "object",
        "properties": {
          "paymentId": {
            "type": "integer",
            "format": "int32"
          },
          "amount": {
            "type": "number",
            "format": "double"
          },
          "tip": {
            "type": "number",
            "format": "double"
          }
        },
        "additionalProperties": false
      },
      "PlaceOrderResponseOrderingDto": {
        "type": "object",
        "properties": {
          "totalAmount": {
            "type": "number",
            "format": "double"
          },
          "totalTaxAmount": {
            "type": "number",
            "format": "double"
          },
          "totalServiceChargeAmount": {
            "type": "number",
            "format": "double"
          },
          "totalDiscountAmount": {
            "type": "number",
            "format": "double"
          },
          "adjustedSubTotal": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "adjustedTax": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "taxBreakdown": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TaxBreakdownDto"
            },
            "nullable": true
          },
          "serviceChargeBreakdown": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ServiceChargeBreakdownDto"
            },
            "nullable": true
          },
          "discountBreakdown": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DiscountBreakdownDto"
            },
            "nullable": true
          },
          "checkNumber": {
            "type": "string",
            "nullable": true
          },
          "receiptLines": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "estimatedReadyTime": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "computedFireTime": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "PriceListScheduleDto": {
        "type": "object",
        "properties": {
          "priceListScheduleId": {
            "type": "integer",
            "format": "int32"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "timeInterval": {
            "type": "integer",
            "format": "int32"
          },
          "schedules": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PriceListScheduleEntryDto"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "PriceListScheduleEntryDto": {
        "type": "object",
        "properties": {
          "dayOfWeekId": {
            "type": "integer",
            "format": "int32"
          },
          "dayOfWeekName": {
            "type": "string",
            "nullable": true
          },
          "startTime": {
            "type": "string",
            "format": "date-span"
          },
          "priceListId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "priceListName": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ServiceChargeBreakdownDto": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "nullable": true
          },
          "amount": {
            "type": "number",
            "format": "double"
          }
        },
        "additionalProperties": false
      },
      "TaxBreakdownDto": {
        "type": "object",
        "properties": {
          "taxName": {
            "type": "string",
            "nullable": true
          },
          "amount": {
            "type": "number",
            "format": "double"
          }
        },
        "additionalProperties": false
      },
      "TaxClassResponseDto": {
        "type": "object",
        "properties": {
          "taxClassId": {
            "type": "integer",
            "format": "int32"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "externalTaxClassId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "taxes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TaxResponseDto"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "TaxResponseDto": {
        "type": "object",
        "properties": {
          "taxId": {
            "type": "integer",
            "format": "int32"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "regularMinimumAmount": {
            "type": "number",
            "format": "double"
          },
          "regularPercentValue": {
            "type": "number",
            "format": "double"
          },
          "alternateMinimumAmount": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "alternatePercentValue": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "isInclusive": {
            "type": "boolean"
          },
          "externalTaxId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "TenderResponseDto": {
        "type": "object",
        "properties": {
          "paymentId": {
            "type": "integer",
            "format": "int32"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "paymentTypeId": {
            "type": "integer",
            "format": "int32"
          },
          "paymentTypeName": {
            "type": "string",
            "nullable": true
          },
          "currencyId": {
            "type": "integer",
            "format": "int32"
          },
          "openCashDrawer": {
            "type": "boolean"
          },
          "allowTips": {
            "type": "boolean"
          },
          "allowManualCardEntry": {
            "type": "boolean"
          },
          "allowOverTender": {
            "type": "boolean"
          },
          "allowCustomAmount": {
            "type": "boolean"
          },
          "isActive": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "UnavailableItemDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "menuEntryTypeId": {
            "type": "integer",
            "format": "int32"
          },
          "menuEntryTypeName": {
            "type": "string",
            "nullable": true
          },
          "reasonId": {
            "type": "integer",
            "format": "int32"
          },
          "reason": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ValidateResponseOrderingDto": {
        "type": "object",
        "properties": {
          "totalAmount": {
            "type": "number",
            "format": "double"
          },
          "totalTaxAmount": {
            "type": "number",
            "format": "double"
          },
          "totalServiceChargeAmount": {
            "type": "number",
            "format": "double"
          },
          "totalDiscountAmount": {
            "type": "number",
            "format": "double"
          },
          "adjustedSubTotal": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "adjustedTax": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "taxBreakdown": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TaxBreakdownDto"
            },
            "nullable": true
          },
          "serviceChargeBreakdown": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ServiceChargeBreakdownDto"
            },
            "nullable": true
          },
          "discountBreakdown": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DiscountBreakdownDto"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      }
    },
    "securitySchemes": {
      "Bearer": {
        "type": "oauth2",
        "flows": {
          "implicit": {
            "authorizationUrl": "https://login.microsoftonline.com/27b9fe6b-fff4-46d9-8cbb-cdec6cb22a17/oauth2/v2.0/authorize",
            "scopes": {
              "14537d62-5fe4-45f2-b674-ddc3ab96a914/user_impersonation": "user_impersonation"
            }
          }
        }
      }
    }
  },
  "security": [
    {
      "Bearer": [ ]
    }
  ],
  "tags": [
    {
      "name": "Health"
    },
    {
      "name": "Ordering"
    }
  ]
}