{
  "openapi": "3.1.0",
  "info": {
    "title": "Fetch API",
    "version": "v3.0: 3.30.0",
    "contact": {
      "name": "API Support Group",
      "email": "api@yellowdogsoftware.com"
    },
    "description": "_For differences between versions, see_ [Changelog](../../changelog/index.md).\n# \n![REST API logo](../../resources/rest-api-cloud-logo.png)\n<hr/>\n",
    "license": {
      "name": "proprietary"
    }
  },
  "servers": [
    {
      "url": "https://fetch.yellowdogsoftware.com/api/v3",
      "description": "Production server"
    }
  ],
  "paths": {
    "/accounting/{storeId}/{date}/returnToVendors": {
      "get": {
        "x-hideReplay": true,
        "operationId": "get-returntovendors",
        "tags": [
          "Accounting"
        ],
        "summary": "Gets a listing of Return to Vendors based on Store",
        "description": "#### Permission Requirements\n- Permission Path: **Reports > Standard Reports**\n",
        "parameters": [
          {
            "name": "storeId",
            "in": "path",
            "description": "Id of the Yellow Dog Store that is being fetched. The Store ID can be found from the Get All Stores Endpoint as the id Property of the Store Model.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "date",
            "in": "path",
            "description": "Date String in the local time of the Store",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "example": "2026-03-09T09:12:28Z"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.Dto.AccountingReturnToVendor"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden"
          },
          "429": {
            "description": "Rate limiting quota exceeded\r\n            \r\n            Apply pause on further requests to the api using a wait method for the amount of seconds \r\n            presented in the Response Header Key 'Retry-After'.\r\n            \r\n            To prevent running into further instances of this rate limiting, use the Response Headers \r\n            returned back from all other requests to ensure there is enough buffer.\r\n            \r\n            For further information see Rate Limiting Section of Getting Started of api documentation site."
          },
          "500": {
            "description": "An internal error has occured or the database is currently offline for\r\n            connections.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/accounting/{storeId}/{date}/invoices": {
      "get": {
        "x-hideReplay": true,
        "operationId": "get-invoices",
        "tags": [
          "Accounting"
        ],
        "summary": "Gets a listing of invoices of a store on a given date",
        "description": "#### Permission Requirements\n- Permission Path: **Reports > Standard Reports**\n",
        "parameters": [
          {
            "name": "storeId",
            "in": "path",
            "description": "Id of the Yellow Dog Store that is being fetched. The Store ID can be found from the Get All Stores Endpoint as the id Property of the Store Model.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "date",
            "in": "path",
            "description": "Date String in the local time of the store (YYYY-MM-DD) is recommended",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "example": "2026-03-09T09:12:28Z"
          },
          {
            "name": "nonPrepaidOnly",
            "in": "query",
            "description": "set to only respond with non-prepaid invoices",
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "includeReceipts",
            "in": "query",
            "description": "`includeReceipts` adds the variance between invoice total and receipt total, otherwise returns the invoice total in the debit field",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.Dto.AccountingInvoice"
                }
              }
            }
          },
          "400": {
            "description": "Improper values were supplied for this endpoint to process.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              }
            }
          },
          "403": {
            "description": "User does not have sufficient access for this endpoint: Visible Access required for Reports > Standard Reports."
          },
          "429": {
            "description": "Rate limiting quota exceeded\r\n            \r\n            Apply pause on further requests to the api using a wait method for the amount of seconds \r\n            presented in the Response Header Key 'Retry-After'.\r\n            \r\n            To prevent running into further instances of this rate limiting, use the Response Headers \r\n            returned back from all other requests to ensure there is enough buffer.\r\n            \r\n            For further information see Rate Limiting Section of Getting Started of api documentation site."
          },
          "500": {
            "description": "An internal error has occured or the database is currently offline for\r\n            connections.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/accounting/{storeId}/{date}/revenue": {
      "get": {
        "x-hideReplay": true,
        "operationId": "get-revenue",
        "tags": [
          "Accounting"
        ],
        "summary": "Gets revenue of a store on a given date",
        "description": "Gets revenue of a store on a given date, summarized by GL Account.\n#### Permission Requirements\n- Permission Path: **Reports > Standard Reports**\n",
        "parameters": [
          {
            "name": "storeId",
            "in": "path",
            "description": "Id of the Yellow Dog Store that is being fetched. The Store ID can be found from the Get All Stores Endpoint as the id Property of the Store Model.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "date",
            "in": "path",
            "description": "Date String in the local time of the store (YYYY-MM-DD) is recommended",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "example": "2026-03-09T09:12:28Z"
          },
          {
            "name": "types",
            "in": "query",
            "description": "Choose one or more of the following Journal Entry types (Sale, Tax, Tender)",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.Dto.AccountingRevenue"
                }
              }
            }
          },
          "400": {
            "description": "Improper values were supplied for this endpoint to process.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              }
            }
          },
          "403": {
            "description": "User does not have sufficient access for this endpoint: Visible Access required for Reports > Standard Reports."
          },
          "429": {
            "description": "Rate limiting quota exceeded\r\n            \r\n            Apply pause on further requests to the api using a wait method for the amount of seconds \r\n            presented in the Response Header Key 'Retry-After'.\r\n            \r\n            To prevent running into further instances of this rate limiting, use the Response Headers \r\n            returned back from all other requests to ensure there is enough buffer.\r\n            \r\n            For further information see Rate Limiting Section of Getting Started of api documentation site."
          },
          "500": {
            "description": "An internal error has occured or the database is currently offline for\r\n            connections.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/accounting/{storeId}/{date}/journalEntry": {
      "get": {
        "x-hideReplay": true,
        "operationId": "get-journalEntry",
        "tags": [
          "Accounting"
        ],
        "summary": "Journal Entries for a store",
        "description": "Gets a listing of journal entries of a store on a given date, summarized by GL Account.\n#### Permission Requirements\n- Permission Path: **Reports > Standard Reports**\n",
        "parameters": [
          {
            "name": "storeId",
            "in": "path",
            "description": "Id of the Yellow Dog Store that is being fetched. The Store ID can be found from the Get All Stores Endpoint as the id Property of the Store Model.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "date",
            "in": "path",
            "description": "Date String in the local time of the store (YYYY-MM-DD) is recommended",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "example": "2026-03-09T09:12:28Z"
          },
          {
            "name": "types",
            "in": "query",
            "description": "Choose one or more of the following Journal Entry types (PhysicalInventory, ManualAdjustment, CostOfGoodsSold, Transfer, Receipt, Restock)",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.Dto.AccountingJournalEntry"
                }
              }
            }
          },
          "400": {
            "description": "Improper values were supplied for this endpoint to process.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              }
            }
          },
          "403": {
            "description": "User does not have sufficient access for this endpoint: Visible Access required for Reports > Standard Reports."
          },
          "429": {
            "description": "Rate limiting quota exceeded\r\n            \r\n            Apply pause on further requests to the api using a wait method for the amount of seconds \r\n            presented in the Response Header Key 'Retry-After'.\r\n            \r\n            To prevent running into further instances of this rate limiting, use the Response Headers \r\n            returned back from all other requests to ensure there is enough buffer.\r\n            \r\n            For further information see Rate Limiting Section of Getting Started of api documentation site."
          },
          "500": {
            "description": "An internal error has occured or the database is currently offline for\r\n            connections.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/accounting/{storeId}/codes/{codeType}": {
      "get": {
        "x-hideReplay": true,
        "operationId": "get-codes",
        "tags": [
          "Accounting"
        ],
        "summary": "Gets a listing of accounts and their code data",
        "description": "#### Permission Requirements\n- Permission Path: **Reports > Standard Reports**\n",
        "parameters": [
          {
            "name": "storeId",
            "in": "path",
            "description": "Id of the Yellow Dog Store that is being fetched. The Store ID can be found from the Get All Stores Endpoint as the id Property of the Store Model.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "codeType",
            "in": "path",
            "description": "Type of account (only use ManualAdjust as the codeType)",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "ManualAdjust"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.Dto.AccountingCode"
                }
              }
            }
          },
          "400": {
            "description": "Improper values were supplied for this endpoint to process."
          },
          "403": {
            "description": "User does not have sufficient access for this endpoint: Visible Access required for Reports > Standard Reports."
          },
          "429": {
            "description": "Rate limiting quota exceeded\r\n            \r\n            Apply pause on further requests to the api using a wait method for the amount of seconds \r\n            presented in the Response Header Key 'Retry-After'.\r\n            \r\n            To prevent running into further instances of this rate limiting, use the Response Headers \r\n            returned back from all other requests to ensure there is enough buffer.\r\n            \r\n            For further information see Rate Limiting Section of Getting Started of api documentation site."
          },
          "500": {
            "description": "An internal error has occured or the database is currently offline for\r\n            connections.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/attachedFiles/{id}": {
      "get": {
        "x-hideReplay": true,
        "operationId": "get-attachedfiles-byid",
        "tags": [
          "AttachedFiles"
        ],
        "summary": "Gets image based on Id. This image can be associated to an Item or a Recipe.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "AttachedFile Id",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "image/png": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "429": {
            "description": "Rate limiting quota exceeded\r\n            \r\n            Apply pause on further requests to the api using a wait method for the amount of seconds \r\n            presented in the Response Header Key 'Retry-After'.\r\n            \r\n            To prevent running into further instances of this rate limiting, use the Response Headers \r\n            returned back from all other requests to ensure there is enough buffer.\r\n            \r\n            For further information see Rate Limiting Section of Getting Started of api documentation site."
          },
          "500": {
            "description": "An internal error has occured or the database is currently offline for\r\n            connections.",
            "content": {
              "image/png": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/countsheets": {
      "get": {
        "x-hideReplay": true,
        "operationId": "get-countsheets-all",
        "tags": [
          "CountSheets"
        ],
        "summary": "Getting Count Sheets",
        "parameters": [
          {
            "name": "PageNumber",
            "in": "query",
            "description": "Page Number for the result set.\r\n\r\nThis is expected to be an integer value greater than 0. Defaults to 1 when not passed in.\r\n\r\nFor more information see the Getting Started Section for Pagination.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "PageSize",
            "in": "query",
            "description": "Page Size\r\n- Default page size: 100 \r\n- Max page size: 500\r\n\r\nThis is expected to be an integer value greater than 0. Defaults to 100 when not passed in.\r\n\r\nFor more information see the Getting Started Section for Pagination.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "Expand",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "Filter",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "OrderBy",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Api.Models.Dto.CountSheetGet"
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limiting quota exceeded\r\n            \r\n            Apply pause on further requests to the api using a wait method for the amount of seconds \r\n            presented in the Response Header Key 'Retry-After'.\r\n            \r\n            To prevent running into further instances of this rate limiting, use the Response Headers \r\n            returned back from all other requests to ensure there is enough buffer.\r\n            \r\n            For further information see Rate Limiting Section of Getting Started of api documentation site."
          },
          "500": {
            "description": "An internal error has occured or the database is currently offline for\r\n            connections.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/countsheets/{id}": {
      "get": {
        "x-hideReplay": true,
        "operationId": "get-countsheets-byid",
        "tags": [
          "CountSheets"
        ],
        "summary": "Getting a Count Sheet by Id",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "CountSheet Id",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "PageNumber",
            "in": "query",
            "description": "Page Number for the result set.\r\n\r\nThis is expected to be an integer value greater than 0. Defaults to 1 when not passed in.\r\n\r\nFor more information see the Getting Started Section for Pagination.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "PageSize",
            "in": "query",
            "description": "Page Size\r\n- Default page size: 100 \r\n- Max page size: 500\r\n\r\nThis is expected to be an integer value greater than 0. Defaults to 100 when not passed in.\r\n\r\nFor more information see the Getting Started Section for Pagination.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "Expand",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "Filter",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "OrderBy",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.Dto.CountSheetGet"
                }
              }
            }
          },
          "429": {
            "description": "Rate limiting quota exceeded\r\n            \r\n            Apply pause on further requests to the api using a wait method for the amount of seconds \r\n            presented in the Response Header Key 'Retry-After'.\r\n            \r\n            To prevent running into further instances of this rate limiting, use the Response Headers \r\n            returned back from all other requests to ensure there is enough buffer.\r\n            \r\n            For further information see Rate Limiting Section of Getting Started of api documentation site."
          },
          "500": {
            "description": "An internal error has occured or the database is currently offline for\r\n            connections.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/currency": {
      "get": {
        "x-hideReplay": true,
        "operationId": "get-currency",
        "tags": [
          "Currency"
        ],
        "summary": "Getting Currency",
        "parameters": [
          {
            "name": "Filter",
            "in": "query",
            "description": "### Filter Options:\r\n- currencyCode\r\n- date\r\n- exchangeRate\r\n- lastUpdated",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "OrderBy",
            "in": "query",
            "description": "### Order By Options:\r\n- currencyCode\r\n- date\r\n- lastUpdated",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "PageNumber",
            "in": "query",
            "description": "Page Number for the result set.\r\n\r\nThis is expected to be an integer value greater than 0. Defaults to 1 when not passed in.\r\n\r\nFor more information see the Getting Started Section for Pagination.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "PageSize",
            "in": "query",
            "description": "Page Size\r\n- Default page size: 100 \r\n- Max page size: 500\r\n\r\nThis is expected to be an integer value greater than 0. Defaults to 100 when not passed in.\r\n\r\nFor more information see the Getting Started Section for Pagination.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Api.Models.Dto.CurrencyGet"
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limiting quota exceeded\r\n            \r\n            Apply pause on further requests to the api using a wait method for the amount of seconds \r\n            presented in the Response Header Key 'Retry-After'.\r\n            \r\n            To prevent running into further instances of this rate limiting, use the Response Headers \r\n            returned back from all other requests to ensure there is enough buffer.\r\n            \r\n            For further information see Rate Limiting Section of Getting Started of api documentation site."
          },
          "500": {
            "description": "An internal error has occured or the database is currently offline for\r\n            connections.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              }
            }
          }
        }
      },
      "post": {
        "x-hideReplay": true,
        "operationId": "post-currency",
        "tags": [
          "Currency"
        ],
        "summary": "Creating new Currency Exchange Rate",
        "requestBody": {
          "description": "",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/Api.Models.Dto.CurrencyCreate"
                }
              }
            },
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/Api.Models.Dto.CurrencyCreate"
                }
              }
            },
            "text/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/Api.Models.Dto.CurrencyCreate"
                }
              }
            },
            "application/*+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/Api.Models.Dto.CurrencyCreate"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "201": {
            "description": "Created"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              }
            }
          },
          "429": {
            "description": "Rate limiting quota exceeded\r\n            \r\n            Apply pause on further requests to the api using a wait method for the amount of seconds \r\n            presented in the Response Header Key 'Retry-After'.\r\n            \r\n            To prevent running into further instances of this rate limiting, use the Response Headers \r\n            returned back from all other requests to ensure there is enough buffer.\r\n            \r\n            For further information see Rate Limiting Section of Getting Started of api documentation site."
          },
          "500": {
            "description": "An internal error has occured or the database is currently offline for\r\n            connections.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              }
            }
          }
        }
      },
      "put": {
        "x-hideReplay": true,
        "operationId": "put-currency",
        "tags": [
          "Currency"
        ],
        "summary": "Updating existing Currency Exchange Rate",
        "requestBody": {
          "description": "",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/Api.Models.Dto.CurrencyUpdate"
                }
              }
            },
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/Api.Models.Dto.CurrencyUpdate"
                }
              }
            },
            "text/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/Api.Models.Dto.CurrencyUpdate"
                }
              }
            },
            "application/*+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/Api.Models.Dto.CurrencyUpdate"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              }
            }
          },
          "429": {
            "description": "Rate limiting quota exceeded\r\n            \r\n            Apply pause on further requests to the api using a wait method for the amount of seconds \r\n            presented in the Response Header Key 'Retry-After'.\r\n            \r\n            To prevent running into further instances of this rate limiting, use the Response Headers \r\n            returned back from all other requests to ensure there is enough buffer.\r\n            \r\n            For further information see Rate Limiting Section of Getting Started of api documentation site."
          },
          "500": {
            "description": "An internal error has occured or the database is currently offline for\r\n            connections.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              }
            }
          }
        }
      },
      "delete": {
        "x-hideReplay": true,
        "operationId": "delete-currency",
        "tags": [
          "Currency"
        ],
        "summary": "Bulk delete Currency Exchange Rates",
        "requestBody": {
          "description": "List of Currency IDs to be deleted",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "string",
                  "format": "uuid"
                }
              }
            },
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "string",
                  "format": "uuid"
                }
              }
            },
            "text/json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "string",
                  "format": "uuid"
                }
              }
            },
            "application/*+json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "string",
                  "format": "uuid"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "Bad Request"
          },
          "429": {
            "description": "Rate limiting quota exceeded\r\n            \r\n            Apply pause on further requests to the api using a wait method for the amount of seconds \r\n            presented in the Response Header Key 'Retry-After'.\r\n            \r\n            To prevent running into further instances of this rate limiting, use the Response Headers \r\n            returned back from all other requests to ensure there is enough buffer.\r\n            \r\n            For further information see Rate Limiting Section of Getting Started of api documentation site."
          },
          "500": {
            "description": "An internal error has occured or the database is currently offline for\r\n            connections.",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/currency/effectiveExchangeRate/{currencyCode}": {
      "get": {
        "x-hideReplay": true,
        "operationId": "get-currency-exchange",
        "tags": [
          "Currency"
        ],
        "summary": "Getting Effective Exchange Rate",
        "parameters": [
          {
            "name": "currencyCode",
            "in": "path",
            "description": "",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "date",
            "in": "query",
            "description": "",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "number",
                  "format": "double"
                }
              }
            }
          },
          "429": {
            "description": "Rate limiting quota exceeded\r\n            \r\n            Apply pause on further requests to the api using a wait method for the amount of seconds \r\n            presented in the Response Header Key 'Retry-After'.\r\n            \r\n            To prevent running into further instances of this rate limiting, use the Response Headers \r\n            returned back from all other requests to ensure there is enough buffer.\r\n            \r\n            For further information see Rate Limiting Section of Getting Started of api documentation site."
          },
          "500": {
            "description": "An internal error has occured or the database is currently offline for\r\n            connections.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/currency/{id}": {
      "get": {
        "x-hideReplay": true,
        "operationId": "get-currency-byid",
        "tags": [
          "Currency"
        ],
        "summary": "Getting Currency by Id",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.Dto.CurrencyGet"
                }
              }
            }
          },
          "429": {
            "description": "Rate limiting quota exceeded\r\n            \r\n            Apply pause on further requests to the api using a wait method for the amount of seconds \r\n            presented in the Response Header Key 'Retry-After'.\r\n            \r\n            To prevent running into further instances of this rate limiting, use the Response Headers \r\n            returned back from all other requests to ensure there is enough buffer.\r\n            \r\n            For further information see Rate Limiting Section of Getting Started of api documentation site."
          },
          "500": {
            "description": "An internal error has occured or the database is currently offline for\r\n            connections.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              }
            }
          }
        }
      },
      "delete": {
        "x-hideReplay": true,
        "operationId": "delete-currency-byid",
        "tags": [
          "Currency"
        ],
        "summary": "Deleting a Currency Exchange Rate",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "Bad Request"
          },
          "429": {
            "description": "Rate limiting quota exceeded\r\n            \r\n            Apply pause on further requests to the api using a wait method for the amount of seconds \r\n            presented in the Response Header Key 'Retry-After'.\r\n            \r\n            To prevent running into further instances of this rate limiting, use the Response Headers \r\n            returned back from all other requests to ensure there is enough buffer.\r\n            \r\n            For further information see Rate Limiting Section of Getting Started of api documentation site."
          },
          "500": {
            "description": "An internal error has occured or the database is currently offline for\r\n            connections.",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/dimensions": {
      "get": {
        "x-hideReplay": true,
        "operationId": "get-dimensions",
        "tags": [
          "Dimensions"
        ],
        "summary": "Getting Dimensions",
        "parameters": [
          {
            "name": "PageNumber",
            "in": "query",
            "description": "Page Number for the result set.\r\n\r\nThis is expected to be an integer value greater than 0. Defaults to 1 when not passed in.\r\n\r\nFor more information see the Getting Started Section for Pagination.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "PageSize",
            "in": "query",
            "description": "Page Size\r\n- Default page size: 100 \r\n- Max page size: 500\r\n\r\nThis is expected to be an integer value greater than 0. Defaults to 100 when not passed in.\r\n\r\nFor more information see the Getting Started Section for Pagination.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "Expand",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "Filter",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "OrderBy",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Api.Models.Dto.DimensionGet"
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limiting quota exceeded\r\n            \r\n            Apply pause on further requests to the api using a wait method for the amount of seconds \r\n            presented in the Response Header Key 'Retry-After'.\r\n            \r\n            To prevent running into further instances of this rate limiting, use the Response Headers \r\n            returned back from all other requests to ensure there is enough buffer.\r\n            \r\n            For further information see Rate Limiting Section of Getting Started of api documentation site."
          },
          "500": {
            "description": "An internal error has occured or the database is currently offline for\r\n            connections.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              }
            }
          }
        }
      },
      "post": {
        "x-hideReplay": true,
        "operationId": "post-dimensions",
        "tags": [
          "Dimensions"
        ],
        "summary": "Creating new Dimensions",
        "requestBody": {
          "description": "",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/Api.Models.Dto.DimensionCreate"
                }
              }
            },
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/Api.Models.Dto.DimensionCreate"
                }
              }
            },
            "text/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/Api.Models.Dto.DimensionCreate"
                }
              }
            },
            "application/*+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/Api.Models.Dto.DimensionCreate"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Api.Models.Dto.Dimension"
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limiting quota exceeded\r\n            \r\n            Apply pause on further requests to the api using a wait method for the amount of seconds \r\n            presented in the Response Header Key 'Retry-After'.\r\n            \r\n            To prevent running into further instances of this rate limiting, use the Response Headers \r\n            returned back from all other requests to ensure there is enough buffer.\r\n            \r\n            For further information see Rate Limiting Section of Getting Started of api documentation site."
          },
          "500": {
            "description": "An internal error has occured or the database is currently offline for\r\n            connections.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              }
            }
          }
        }
      },
      "put": {
        "x-hideReplay": true,
        "operationId": "put-dimensions",
        "tags": [
          "Dimensions"
        ],
        "summary": "Creating new Dimensions",
        "requestBody": {
          "description": "",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/Api.Models.Dto.DimensionUpdate"
                }
              }
            },
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/Api.Models.Dto.DimensionUpdate"
                }
              }
            },
            "text/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/Api.Models.Dto.DimensionUpdate"
                }
              }
            },
            "application/*+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/Api.Models.Dto.DimensionUpdate"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Api.Models.Dto.DimensionUpdate"
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limiting quota exceeded\r\n            \r\n            Apply pause on further requests to the api using a wait method for the amount of seconds \r\n            presented in the Response Header Key 'Retry-After'.\r\n            \r\n            To prevent running into further instances of this rate limiting, use the Response Headers \r\n            returned back from all other requests to ensure there is enough buffer.\r\n            \r\n            For further information see Rate Limiting Section of Getting Started of api documentation site."
          },
          "500": {
            "description": "An internal error has occured or the database is currently offline for\r\n            connections.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/dimensions/{id}": {
      "get": {
        "x-hideReplay": true,
        "operationId": "get-dimensions-byid",
        "tags": [
          "Dimensions"
        ],
        "summary": "Getting Dimension by Id",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Dimension Id",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "PageNumber",
            "in": "query",
            "description": "Page Number for the result set.\r\n\r\nThis is expected to be an integer value greater than 0. Defaults to 1 when not passed in.\r\n\r\nFor more information see the Getting Started Section for Pagination.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "PageSize",
            "in": "query",
            "description": "Page Size\r\n- Default page size: 100 \r\n- Max page size: 500\r\n\r\nThis is expected to be an integer value greater than 0. Defaults to 100 when not passed in.\r\n\r\nFor more information see the Getting Started Section for Pagination.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "Expand",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "Filter",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "OrderBy",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.Dto.DimensionGet"
                }
              }
            }
          },
          "429": {
            "description": "Rate limiting quota exceeded\r\n            \r\n            Apply pause on further requests to the api using a wait method for the amount of seconds \r\n            presented in the Response Header Key 'Retry-After'.\r\n            \r\n            To prevent running into further instances of this rate limiting, use the Response Headers \r\n            returned back from all other requests to ensure there is enough buffer.\r\n            \r\n            For further information see Rate Limiting Section of Getting Started of api documentation site."
          },
          "500": {
            "description": "An internal error has occured or the database is currently offline for\r\n            connections.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              }
            }
          }
        }
      },
      "delete": {
        "x-hideReplay": true,
        "operationId": "delete-dimensions-byid",
        "tags": [
          "Dimensions"
        ],
        "summary": "Deleting a Dimension",
        "deprecated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Dimension Id",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "403": {
            "description": "Note that since Fetch v3.30.0, this endpoint has been deprecated. Please contact <api@yellowdogsoftware.com> for any special requests regarding this functionality."
          },
          "429": {
            "description": "Rate limiting quota exceeded\r\n            \r\n            Apply pause on further requests to the api using a wait method for the amount of seconds \r\n            presented in the Response Header Key 'Retry-After'.\r\n            \r\n            To prevent running into further instances of this rate limiting, use the Response Headers \r\n            returned back from all other requests to ensure there is enough buffer.\r\n            \r\n            For further information see Rate Limiting Section of Getting Started of api documentation site."
          },
          "500": {
            "description": "An internal error has occured or the database is currently offline for\r\n            connections.",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/flags": {
      "get": {
        "x-hideReplay": true,
        "operationId": "get-flags",
        "tags": [
          "Flags"
        ],
        "summary": "Getting Flags",
        "parameters": [
          {
            "name": "PageNumber",
            "in": "query",
            "description": "Page Number for the result set.\r\n\r\nThis is expected to be an integer value greater than 0. Defaults to 1 when not passed in.\r\n\r\nFor more information see the Getting Started Section for Pagination.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "PageSize",
            "in": "query",
            "description": "Page Size\r\n- Default page size: 100 \r\n- Max page size: 500\r\n\r\nThis is expected to be an integer value greater than 0. Defaults to 100 when not passed in.\r\n\r\nFor more information see the Getting Started Section for Pagination.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "Expand",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "Filter",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "OrderBy",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Api.Models.Dto.FlagGet"
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limiting quota exceeded\r\n            \r\n            Apply pause on further requests to the api using a wait method for the amount of seconds \r\n            presented in the Response Header Key 'Retry-After'.\r\n            \r\n            To prevent running into further instances of this rate limiting, use the Response Headers \r\n            returned back from all other requests to ensure there is enough buffer.\r\n            \r\n            For further information see Rate Limiting Section of Getting Started of api documentation site."
          },
          "500": {
            "description": "An internal error has occured or the database is currently offline for\r\n            connections.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/flags/{id}": {
      "get": {
        "x-hideReplay": true,
        "operationId": "get-flags-byid",
        "tags": [
          "Flags"
        ],
        "summary": "Getting Flag by Id",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Flag Id",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "PageNumber",
            "in": "query",
            "description": "Page Number for the result set.\r\n\r\nThis is expected to be an integer value greater than 0. Defaults to 1 when not passed in.\r\n\r\nFor more information see the Getting Started Section for Pagination.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "PageSize",
            "in": "query",
            "description": "Page Size\r\n- Default page size: 100 \r\n- Max page size: 500\r\n\r\nThis is expected to be an integer value greater than 0. Defaults to 100 when not passed in.\r\n\r\nFor more information see the Getting Started Section for Pagination.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "Expand",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "Filter",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "OrderBy",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.Dto.FlagGet"
                }
              }
            }
          },
          "429": {
            "description": "Rate limiting quota exceeded\r\n            \r\n            Apply pause on further requests to the api using a wait method for the amount of seconds \r\n            presented in the Response Header Key 'Retry-After'.\r\n            \r\n            To prevent running into further instances of this rate limiting, use the Response Headers \r\n            returned back from all other requests to ensure there is enough buffer.\r\n            \r\n            For further information see Rate Limiting Section of Getting Started of api documentation site."
          },
          "500": {
            "description": "An internal error has occured or the database is currently offline for\r\n            connections.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/inventory": {
      "post": {
        "x-hideReplay": true,
        "operationId": "post-track-inventory",
        "tags": [
          "Inventory"
        ],
        "summary": "Gets all Inventory",
        "description": " This endpoint is recommended for any frequent polling of item onhands. Although the `GET \r\n Items` endpoint includes a stores onhand value, the onhand value being changed does not \r\n trigger an update of the rowUpdated for that endpoint.\r\n \r\n This endpoint uses pagination to limit the amount of items that are returned in a response. \r\n The use of these values is similar to how the query string pagination works in other endpoints, \r\n however these are a component of the response body. \r\n \r\n Note: As they do not use a query string for pagination, the pagination headers used in other \r\n endpoints will not work for this. Recommended use case is to pull at a known pageSize and stop \r\n when the returned item array is less than the requested pageSize.\r\n \r\n ### Example Request Body for Common Usage Scenarios\r\n \r\n #### Get an Item's onhand in a particular Store\r\n ```json\r\n\t{\r\n     \"pageNumber\": 1,\r\n     \"pageSize\": 100,\r\n     \"stores\": [\r\n \t\t\t\":storeId\"\r\n     ],\r\n     \"items\": [\r\n \t\t\t\":itemId\"\r\n     ]\r\n }\t\r\n ```\r\n \r\n #### Get an Stores Onhands updated since a certain date\r\n \r\n ```json\r\n\t{\r\n     \"pageNumber\": 1,\r\n     \"pageSize\": 100,\r\n     \"stores\": [\r\n \t\t\t\":storeId\"\r\n     ],\r\n     \"rowUpdated\": \"2024-05-24\"\r\n \r\n }\t\r\n ```\r\n \r\n #### Get all Current onhands for all Stores and Items based on the last pulled date\r\n \r\n ```json\r\n\t{\r\n     \"pageNumber\": 1,\r\n     \"pageSize\": 100,\r\n     \"lastUpdated\": \"2024-03-05T06:06:58.529Z\"\r\n }\t\r\n ```\r\n \r\n or\r\n \r\n ```json\r\n\t{\r\n     \"pageNumber\": 1,\r\n     \"pageSize\": 100,\r\n     \"lastUpdated\": \"2024-03-05T06:06:58.529-05:00\"\r\n }\t\r\n ```\r\n \r\n or \r\n ```json\r\n\t{\r\n     \"pageNumber\": 1,\r\n     \"pageSize\": 100,\r\n     \"lastUpdated\": \"2020-05-29 00:00:00\"\r\n }\t\r\n ```\r\n \r\n \r\n #### Get the Current onhand for a particular Item across all Stores.\r\n \r\n ```json\r\n {\r\n    \"pageNumber\": 1,\r\n    \"pageSize\": 100,\r\n    \"items\": [\r\n      \":itemId\"\r\n    ]\r\n}\r\n ```",
        "requestBody": {
          "description": "",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/Api.Helpers.QueryParameters.InventoryQueryParameters"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Api.Helpers.QueryParameters.InventoryQueryParameters"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Api.Helpers.QueryParameters.InventoryQueryParameters"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Api.Helpers.QueryParameters.InventoryQueryParameters"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.Dto.Inventory"
                }
              }
            }
          },
          "429": {
            "description": "Rate limiting quota exceeded\r\n            \r\n            Apply pause on further requests to the api using a wait method for the amount of seconds \r\n            presented in the Response Header Key 'Retry-After'.\r\n            \r\n            To prevent running into further instances of this rate limiting, use the Response Headers \r\n            returned back from all other requests to ensure there is enough buffer.\r\n            \r\n            For further information see Rate Limiting Section of Getting Started of api documentation site."
          },
          "500": {
            "description": "An internal error has occured or the database is currently offline for\r\n            connections.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/invoices/ocr": {
      "post": {
        "x-hideReplay": true,
        "operationId": "post-invoices-ocr",
        "tags": [
          "Invoices"
        ],
        "summary": "Create a Staged Invoice via a file upload",
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "file": {
                    "type": "string",
                    "description": "",
                    "format": "binary"
                  }
                }
              },
              "encoding": {
                "file": {
                  "style": "form"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.Dto.StagedInvoiceBase"
                }
              }
            }
          },
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.Dto.StagedInvoiceBase"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "422": {
            "description": "Unprocessable Content"
          },
          "429": {
            "description": "Rate limiting quota exceeded\r\n            \r\n            Apply pause on further requests to the api using a wait method for the amount of seconds \r\n            presented in the Response Header Key 'Retry-After'.\r\n            \r\n            To prevent running into further instances of this rate limiting, use the Response Headers \r\n            returned back from all other requests to ensure there is enough buffer.\r\n            \r\n            For further information see Rate Limiting Section of Getting Started of api documentation site."
          },
          "500": {
            "description": "An internal error has occured or the database is currently offline for\r\n            connections.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/invoices/staged/{stagedInvoiceId}/lines": {
      "post": {
        "x-hideReplay": true,
        "operationId": "post-invoices-staged-byid-lines",
        "tags": [
          "Invoices"
        ],
        "summary": "Creates new staged invoice lines for a given staged invoice.",
        "parameters": [
          {
            "name": "stagedInvoiceId",
            "in": "path",
            "description": "The ID of the staged invoice.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "description": "The request body containing the staged invoice line data.",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/Api.Models.Dto.StagedInvoiceLineCreateRequest"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Api.Models.Dto.StagedInvoiceLineCreateRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Api.Models.Dto.StagedInvoiceLineCreateRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Api.Models.Dto.StagedInvoiceLineCreateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.Dto.StagedInvoiceBase"
                }
              }
            }
          },
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.Dto.StagedInvoiceBase"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "422": {
            "description": "Unprocessable Content"
          },
          "429": {
            "description": "Rate limiting quota exceeded\r\n            \r\n            Apply pause on further requests to the api using a wait method for the amount of seconds \r\n            presented in the Response Header Key 'Retry-After'.\r\n            \r\n            To prevent running into further instances of this rate limiting, use the Response Headers \r\n            returned back from all other requests to ensure there is enough buffer.\r\n            \r\n            For further information see Rate Limiting Section of Getting Started of api documentation site."
          },
          "500": {
            "description": "An internal error has occured or the database is currently offline for\r\n            connections.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/invoices/staged/{stagedInvoiceId}/original-document": {
      "get": {
        "x-hideReplay": true,
        "operationId": "get-invoices-staged-byid-original-document",
        "summary": "Find the original document for a staged invoice with the specified ID.",
        "tags": [
          "Invoices"
        ],
        "parameters": [
          {
            "name": "stagedInvoiceId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.Dto.AttachedLink"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "422": {
            "description": "Unprocessable Content"
          },
          "429": {
            "description": "Rate limiting quota exceeded\r\n            \r\n            Apply pause on further requests to the api using a wait method for the amount of seconds \r\n            presented in the Response Header Key 'Retry-After'.\r\n            \r\n            To prevent running into further instances of this rate limiting, use the Response Headers \r\n            returned back from all other requests to ensure there is enough buffer.\r\n            \r\n            For further information see Rate Limiting Section of Getting Started of api documentation site."
          },
          "500": {
            "description": "An internal error has occured or the database is currently offline for\r\n            connections.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/invoices/staged/{stagedInvoiceId}": {
      "put": {
        "x-hideReplay": true,
        "operationId": "put-invoices-staged-byid",
        "tags": [
          "Invoices"
        ],
        "summary": "Updates a staged invoice with the specified ID.",
        "description": "This endpoint requires the user to be authenticated and have the Api.Helpers.YdPolicyName.atLeast377 policy.\r\nThe updated staged invoice is returned in the response body if the operation is successful.\r\nIf the staged invoice was not modified, a 304 Not Modified status code is returned.\r\nIf a validation error occurs, a 422 Unprocessable Entity status code is returned.\r\nIf the database schema version is not version 377 or greater, a 403 Forbidden status code is returned.",
        "parameters": [
          {
            "name": "stagedInvoiceId",
            "in": "path",
            "description": "The ID of the staged invoice to update.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "description": "The updated staged invoice data.",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/Api.Models.Dto.StagedInvoiceUpdate"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Api.Models.Dto.StagedInvoiceUpdate"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Api.Models.Dto.StagedInvoiceUpdate"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Api.Models.Dto.StagedInvoiceUpdate"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.Dto.StagedInvoiceBase"
                }
              }
            }
          },
          "304": {
            "description": "Not Modified"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "422": {
            "description": "Unprocessable Content"
          },
          "429": {
            "description": "Rate limiting quota exceeded\r\n            \r\n            Apply pause on further requests to the api using a wait method for the amount of seconds \r\n            presented in the Response Header Key 'Retry-After'.\r\n            \r\n            To prevent running into further instances of this rate limiting, use the Response Headers \r\n            returned back from all other requests to ensure there is enough buffer.\r\n            \r\n            For further information see Rate Limiting Section of Getting Started of api documentation site."
          },
          "500": {
            "description": "An internal error has occured or the database is currently offline for\r\n            connections.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              }
            }
          }
        }
      },
      "patch": {
        "x-hideReplay": true,
        "operationId": "patch-invoices-staged-byid",
        "tags": [
          "Invoices"
        ],
        "summary": "Updates a staged invoice with the specified ID.",
        "parameters": [
          {
            "name": "stagedInvoiceId",
            "in": "path",
            "description": "The ID of the staged invoice to update.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "description": "The updated staged invoice data.",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/Api.Models.Dto.StagedInvoiceUpdate"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Api.Models.Dto.StagedInvoiceUpdate"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Api.Models.Dto.StagedInvoiceUpdate"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Api.Models.Dto.StagedInvoiceUpdate"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.Dto.StagedInvoiceBase"
                }
              }
            }
          },
          "304": {
            "description": "Not Modified"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "422": {
            "description": "Unprocessable Content"
          },
          "429": {
            "description": "Rate limiting quota exceeded\r\n            \r\n            Apply pause on further requests to the api using a wait method for the amount of seconds \r\n            presented in the Response Header Key 'Retry-After'.\r\n            \r\n            To prevent running into further instances of this rate limiting, use the Response Headers \r\n            returned back from all other requests to ensure there is enough buffer.\r\n            \r\n            For further information see Rate Limiting Section of Getting Started of api documentation site."
          },
          "500": {
            "description": "An internal error has occured or the database is currently offline for\r\n            connections.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/itemaliases": {
      "post": {
        "x-hideReplay": true,
        "operationId": "post-itemaliases",
        "tags": [
          "ItemAliases"
        ],
        "summary": "Adding Item Aliases",
        "description": "#### Permission Requirements\n- Permission Path: **Inventory Items > Item Editor > Additional UPCs Tab** (editor access required)\n",
        "requestBody": {
          "description": "",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/Api.Models.Dto.ItemAliasCreateRequest"
                }
              }
            },
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/Api.Models.Dto.ItemAliasCreateRequest"
                }
              }
            },
            "text/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/Api.Models.Dto.ItemAliasCreateRequest"
                }
              }
            },
            "application/*+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/Api.Models.Dto.ItemAliasCreateRequest"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Api.Models.Dto.ItemAliasCreateResponse"
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limiting quota exceeded\r\n            \r\n            Apply pause on further requests to the api using a wait method for the amount of seconds \r\n            presented in the Response Header Key 'Retry-After'.\r\n            \r\n            To prevent running into further instances of this rate limiting, use the Response Headers \r\n            returned back from all other requests to ensure there is enough buffer.\r\n            \r\n            For further information see Rate Limiting Section of Getting Started of api documentation site."
          },
          "500": {
            "description": "An internal error has occured or the database is currently offline for\r\n            connections.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/items": {
      "get": {
        "x-hideReplay": true,
        "operationId": "get-items",
        "tags": [
          "Items"
        ],
        "summary": "Gets all Items",
        "description": "<details id=\"GetItems-ReqDesc-OneOfThreeEp\">\n<summary> Three Endpoints Retrieve Item Data </summary>\n\n{% table %}\n---\n- [GET /items](/rest/fetch/api/items/get-items)\n- Multiple items from any store unless filtered\n---\n- [GET /items/{itemId}](/rest/fetch/api/items/get-items-byid)\n- A specific item from any store\n---\n- [GET /stores/{storeId}/items](/rest/fetch/api/stores/get-stores-items)\n- Multiple items from a specific store unless filtered\n{% /table %}\n</details>\n\n\n<details id=\"GetItems-ReqDesc-CaveatsReDel\">\n<summary> Caveats Regarding Deleted Items </summary>\n\n- Items marked as deleted are not returned in the response.\n- Yellow Dog keeps deleted items in an archive and allows them to be undeleted.\n</details>\n\n\n<br/>\n\n\n#### Parameters and Headers\nThis endpoint supports standard\n[paginaton query parameters and response headers](/rest/user-guide/04-headers-params/pagination).\nIn addition, it supports item specific use of the query parameters listed below.\n\n<details id=\"GetItems-ReqDesc-PaginationExamples\">\n<summary> Using Pagination with 'lastUpdated' </summary>\n\n##### Paginate through all items\n\n`GET /items?Expand=Stores&Expand=Vendors&orderBy=sku&pageNumber=1&pageSize=100`\n\nFor populating your initial datastore, it is best to make a call through all pages of the\nitems endpoint with the proper expansion query parameters.\nFrom this point forward, you should be able to use the following `lastUpdated`\nexample to refresh\nyour datastore with only the changes that have occured in the item configuration.\n\n##### Limit Subsequent Item Pulls with `lastUpdated`\n\n`GET /items?Expand=Stores&Expand=Vendors&orderBy=sku&filter=lastUpdated>=20260401`\n\nThis request will return all the items that have a lastUpdated later than `2026-04-01`.\nIt is highly recommended that you use a request like this for updating your data store\nfor the latest item configurations.\nIt is recommended that the lastUpdated filter value be set as the last time the item refresh cycle began.\n</details>\n",
        "parameters": [
          {
            "name": "Filter",
            "in": "query",
            "description": "<details id=\"GetItemsByid-Query-Filter\">\n<summary> Options: active, lastUpdated, levelId, webAvailable </summary>\n\n{% table %}\n---\n- active\n- boolean\n- When `true`, the response only includes `active` items. When not specified, defaults to `false` to include both `active` and `inactive` items.\n---\n- lastUpdated\n- [timestamp](/rest/user-guide/02-timestamps)\n- Limits response to items updated since the given timestamp.\n---\n- levelId\n- GUID/UUID\n- Limits response to items with the specified `level.id` property.\n---\n- webAvailable\n- boolean\n- When `true`, the response only includes items available for web sales. When not specified, defaults to `false` to include all items.\n{% /table %}\n\n</details>\n",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Expand",
            "in": "query",
            "description": "<details id=\"GetItemsByid-Query-Expand\">\n<summary> Options: stores, vendors, images, extended-item, dimensions, GTIN </summary>\n\nCombine a list of one or more `Expand` option flags by separating them with commas as follows:\n\n`?Expand=dimensions,vendors`\n\n{% table %}\n---\n- stores\n- Expand the `stores` array. This is needed for POS integrations in order to get the stores an item is available to as well as store-specific item properties,\n  such as retail price and interfaces (third party codes assigned to the item in the store)\n---\n- vendors\n- Expand the `vendors` array.\n---\n- images\n- Expand the `images` array.\n---\n- extended-item\n- Expand multiple properties including shortDescription, isEvergreen, style, expirationDays, reference, attributes, etc.\n---\n- dimensions\n- Expand the `dimensions` array.\n---\n- GTIN\n- Expand the `epcGTIN` array.\n{% /table %}\n\n</details>\n",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "OrderBy",
            "in": "query",
            "description": "<details id=\"GetItemsByid-Query-OrderBy\">\n<summary> Options: sku, description, itemId </summary>\n\nSpecify one `OrderBy` option flags as follows:\n`?OrderBy=sku`\n\n{% table %}\n---\n- sku\n- Order items in the response by `sku`.\n---\n- description\n- Order items in the response by `description`.\n---\n- itemId\n- Order items in the response by `itemId`.\n{% /table %}\n\n</details>\n",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Api.Models.Dto.Item.ItemGetLegacy"
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limiting quota exceeded\r\n            \r\n            Apply pause on further requests to the api using a wait method for the amount of seconds \r\n            presented in the Response Header Key 'Retry-After'.\r\n            \r\n            To prevent running into further instances of this rate limiting, use the Response Headers \r\n            returned back from all other requests to ensure there is enough buffer.\r\n            \r\n            For further information see Rate Limiting Section of Getting Started of api documentation site."
          },
          "500": {
            "description": "An internal error has occured or the database is currently offline for\r\n            connections.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              }
            }
          }
        }
      },
      "patch": {
        "x-hideReplay": true,
        "operationId": "patch-items",
        "tags": [
          "Items"
        ],
        "summary": "Upserts Items in bulk",
        "description": "This endpoint allows for bulk upserting of item configuration changes.\r\n\r\nCreating items does have a different set of fields that are required than updating. \r\n            \r\n### Creating an Item\r\nThe fields that are required to create an item are as followed: itemSku, defaultVendorCode, defaultVendorCost, levelCode, description, initialStoreCode, and dimension1Desc.\r\n\r\n### Updating an Item\r\nThe only field that is required for an update is the itemSku field as that is what is used for matching to an existing item for updating. Any fields that are not supposed to be updated should be passed in as a `null` or omitted from the body of the request.\r\n            \r\n### Validation Errors\r\nAny kind of data validation will be passed back as a body response similar to the following.\r\n            \r\n```json\r\n{\r\n   \"Message\": \"Unable to import item configs at this time\",\r\n   \"Errors\": [\r\n    {\r\n       \"Message\": \"error processing item configurations\",\r\n       \"Extensions\": [\r\n        {\r\n            \"errorText\": \"Value:`317` does not match an existing vendor/manufacturer code.\",\r\n            \"field\": \"manufacturerCode\"\r\n        }\r\n    ]\r\n   }\r\n  ]\r\n}\r\n```\r\n            \r\nThis validation error reflects that the manufacturerCode value does not exist as a valid vendor code in the Yellow Dog Inventory Instance.\r\n            \r\nWhen a validation error occurs then the entire request will fail.\r\n            \r\n### Additional Notes\r\nProcessing the item changes can take up to 10 minutes to process due to the amount of background processing that needs to be done.",
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/Dingo.GraphQL.ImportItemConfigInput"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Dingo.GraphQL.ImportItemConfigInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Dingo.GraphQL.ImportItemConfigInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Dingo.GraphQL.ImportItemConfigInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "An error has occured."
          },
          "403": {
            "description": "User does not have sufficient access for this endpoint: Access API Administrator access is required."
          },
          "429": {
            "description": "Rate limiting quota exceeded\r\n            \r\n            Apply pause on further requests to the api using a wait method for the amount of seconds \r\n            presented in the Response Header Key 'Retry-After'.\r\n            \r\n            To prevent running into further instances of this rate limiting, use the Response Headers \r\n            returned back from all other requests to ensure there is enough buffer.\r\n            \r\n            For further information see Rate Limiting Section of Getting Started of api documentation site."
          },
          "500": {
            "description": "An internal error has occured or the database is currently offline for\r\n            connections.",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/items/{id}": {
      "get": {
        "x-hideReplay": true,
        "operationId": "get-items-byid",
        "tags": [
          "Items"
        ],
        "summary": "Gets an Item by Id",
        "description": "<details id=\"GetItemsByid-ReqDesc-OneOfThreeEp\">\n<summary> Three Endpoints Retrieve Item Data </summary>\n\n{% table %}\n---\n- [GET /items](/rest/fetch/api/items/get-items)\n- Multiple items from any store unless filtered\n---\n- [GET /items/{itemId}](/rest/fetch/api/items/get-items-byid)\n- A specific item from any store\n---\n- [GET /stores/{storeId}/items](/rest/fetch/api/stores/get-stores-items)\n- Multiple items from a specific store unless filtered\n{% /table %}\n</details>\n\n\n<details id=\"GetItemsByid-ReqDesc-CaveatsReDel\">\n<summary> Caveats Regarding Deleted Items </summary>\n\n- Items marked as deleted are not returned in the response.\n- Yellow Dog keeps deleted items in an archive and allows them to be undeleted.\n</details>\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "A valid item `id` must appear in the path.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Expand",
            "in": "query",
            "description": "<details id=\"GetItemsByid-Query-Expand\">\n<summary> Options: stores, vendors, images, extended-item, dimensions, GTIN </summary>\n\nCombine a list of one or more `Expand` option flags by separating them with commas as follows:\n`?Expand=dimensions,vendors`\n\n{% table %}\n---\n- stores\n- Expand the `stores` array.\n---\n- vendors\n- Expand the `vendors` array.\n---\n- images\n- Expand the `images` array.\n---\n- extended-item\n- Expand multiple properties including shortDescription, isEvergreen, style, expirationDays, reference, attributes, etc.\n---\n- dimensions\n- Expand the `dimensions` array.\n---\n- GTIN\n- Expand the `epcGTIN` array.\n{% /table %}\n\n</details>\n",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.Dto.Item.ItemGetLegacy"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Rate limiting quota exceeded\r\n            \r\n            Apply pause on further requests to the api using a wait method for the amount of seconds \r\n            presented in the Response Header Key 'Retry-After'.\r\n            \r\n            To prevent running into further instances of this rate limiting, use the Response Headers \r\n            returned back from all other requests to ensure there is enough buffer.\r\n            \r\n            For further information see Rate Limiting Section of Getting Started of api documentation site."
          },
          "500": {
            "description": "An internal error has occured or the database is currently offline for\r\n            connections.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/items/store-configs": {
      "patch": {
        "x-hideReplay": true,
        "operationId": "patch-items-store-configs",
        "tags": [
          "Items"
        ],
        "summary": "Upserts Item Store Configs",
        "requestBody": {
          "description": "",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/Dingo.GraphQL.ImportItemStoreConfigInput"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Dingo.GraphQL.ImportItemStoreConfigInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Dingo.GraphQL.ImportItemStoreConfigInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Dingo.GraphQL.ImportItemStoreConfigInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "403": {
            "description": "User does not have sufficient access for this endpoint: Access API Administrator access is required."
          },
          "429": {
            "description": "Rate limiting quota exceeded\r\n            \r\n            Apply pause on further requests to the api using a wait method for the amount of seconds \r\n            presented in the Response Header Key 'Retry-After'.\r\n            \r\n            To prevent running into further instances of this rate limiting, use the Response Headers \r\n            returned back from all other requests to ensure there is enough buffer.\r\n            \r\n            For further information see Rate Limiting Section of Getting Started of api documentation site."
          },
          "500": {
            "description": "An internal error has occured or the database is currently offline for\r\n            connections.",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/items/{itemId}/images": {
      "post": {
        "x-hideReplay": true,
        "operationId": "post-items-images",
        "tags": [
          "Items"
        ],
        "summary": "Adds an Image as an Attached File to an Item.",
        "description": "User's client *MUST* be 366+ with cloud storage enabled.\n#### Permission Requirements\n- Permission Path: **Inventory Items > Item Editor > Pictures Tab** (editor access required)\n",
        "parameters": [
          {
            "name": "itemId",
            "in": "path",
            "description": "Item Id",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "description",
            "in": "query",
            "description": "Description or Title of the Image file",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "file": {
                    "type": "string",
                    "description": "Image file",
                    "format": "binary"
                  }
                }
              },
              "encoding": {
                "file": {
                  "style": "form"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.Dto.GenericObject"
                }
              }
            }
          },
          "429": {
            "description": "Rate limiting quota exceeded\r\n            \r\n            Apply pause on further requests to the api using a wait method for the amount of seconds \r\n            presented in the Response Header Key 'Retry-After'.\r\n            \r\n            To prevent running into further instances of this rate limiting, use the Response Headers \r\n            returned back from all other requests to ensure there is enough buffer.\r\n            \r\n            For further information see Rate Limiting Section of Getting Started of api documentation site."
          },
          "500": {
            "description": "An internal error has occured or the database is currently offline for\r\n            connections.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/items/{itemId}/images/{imageId}": {
      "patch": {
        "x-hideReplay": true,
        "operationId": "patch-items-images-byid",
        "tags": [
          "Items"
        ],
        "summary": "Updates the Description of an Items Attached File",
        "description": "#### Permission Requirements\n- Permission Path: **Inventory Items > Item Editor > Pictures Tab** (editor access required)\n",
        "parameters": [
          {
            "name": "itemId",
            "in": "path",
            "description": "Item Id",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "imageId",
            "in": "path",
            "description": "Attached File Id",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "description": "New Description of the Attached File",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/Api.Models.Dto.AttachedFileMutation"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Api.Models.Dto.AttachedFileMutation"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Api.Models.Dto.AttachedFileMutation"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Api.Models.Dto.AttachedFileMutation"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.Dto.AttachedFile"
                }
              }
            }
          },
          "429": {
            "description": "Rate limiting quota exceeded\r\n            \r\n            Apply pause on further requests to the api using a wait method for the amount of seconds \r\n            presented in the Response Header Key 'Retry-After'.\r\n            \r\n            To prevent running into further instances of this rate limiting, use the Response Headers \r\n            returned back from all other requests to ensure there is enough buffer.\r\n            \r\n            For further information see Rate Limiting Section of Getting Started of api documentation site."
          },
          "500": {
            "description": "An internal error has occured or the database is currently offline for\r\n            connections.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              }
            }
          }
        }
      },
      "delete": {
        "x-hideReplay": true,
        "operationId": "delete-items-images-byid",
        "tags": [
          "Items"
        ],
        "summary": "Deletes an item's image",
        "description": "#### Permission Requirements\n- Permission Path: **Inventory Items > Item Editor > Pictures Tab** (editor access required)\n",
        "parameters": [
          {
            "name": "itemId",
            "in": "path",
            "description": "Item Id",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "imageId",
            "in": "path",
            "description": "Attached File Id",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "429": {
            "description": "Rate limiting quota exceeded\r\n            \r\n            Apply pause on further requests to the api using a wait method for the amount of seconds \r\n            presented in the Response Header Key 'Retry-After'.\r\n            \r\n            To prevent running into further instances of this rate limiting, use the Response Headers \r\n            returned back from all other requests to ensure there is enough buffer.\r\n            \r\n            For further information see Rate Limiting Section of Getting Started of api documentation site."
          },
          "500": {
            "description": "An internal error has occured or the database is currently offline for\r\n            connections.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/items/{id}/retails": {
      "post": {
        "x-hideReplay": true,
        "operationId": "post-items-retails",
        "tags": [
          "Items"
        ],
        "summary": "Adds a new record for an item's retail",
        "description": "This endpoint allows you to set a new retail price for an item in a store to take effect at a scheduled future time.\nIt will respond with an error if the given timestamp refers to a time in the past. Please use ISO 8601 compliant timestamps including a timezone suffix of \"Z\" for UTC or an offset to a local timezone as described in the [Getting Started --> Timestamps](https://developer.yellowdogsoftware.com/fetch/getting-started/02-timestamps) documentation.\n#### Permission Requirements\n- Permission Path: **Inventory Items > Item Editor > Retail Scheduler Tab** (editor access required)\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Item Id",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "description": "Item Retail Creation Object",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/Api.Models.Dto.Item.ItemRetailCreate"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Api.Models.Dto.Item.ItemRetailCreate"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Api.Models.Dto.Item.ItemRetailCreate"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Api.Models.Dto.Item.ItemRetailCreate"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.Dto.Item.ItemRetailCreateResponse"
                }
              }
            }
          },
          "429": {
            "description": "Rate limiting quota exceeded.\n\nApply pause on further requests to the api using a wait method for the amount of seconds presented in the Response Header Key 'Retry-After'. To prevent running into further instances of this rate limiting, use the Response Headers returned back from all other requests to ensure there is enough buffer.\n\nFor further information see Rate Limiting Section of Getting Started of api documentation site.\"\n"
          },
          "500": {
            "description": "An internal error has occured or the database is currently offline for\r\n            connections.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/manualadjusts": {
      "post": {
        "x-hideReplay": true,
        "operationId": "post-manualadjusts",
        "tags": [
          "ManualAdjusts"
        ],
        "summary": "Creates Manual Adjustments",
        "description": "#### Permission Requirements\n- Permission Path: **Inventory Items > Item List > Adjust Item OnHand**\n",
        "requestBody": {
          "description": "",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/Api.Models.Dto.ManualAdjustCreate"
                }
              }
            },
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/Api.Models.Dto.ManualAdjustCreate"
                }
              }
            },
            "text/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/Api.Models.Dto.ManualAdjustCreate"
                }
              }
            },
            "application/*+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/Api.Models.Dto.ManualAdjustCreate"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "429": {
            "description": "Rate limiting quota exceeded\r\n            \r\n            Apply pause on further requests to the api using a wait method for the amount of seconds \r\n            presented in the Response Header Key 'Retry-After'.\r\n            \r\n            To prevent running into further instances of this rate limiting, use the Response Headers \r\n            returned back from all other requests to ensure there is enough buffer.\r\n            \r\n            For further information see Rate Limiting Section of Getting Started of api documentation site."
          },
          "500": {
            "description": "An internal error has occured or the database is currently offline for\r\n            connections.",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/metainfo": {
      "get": {
        "x-hideReplay": true,
        "operationId": "get-metainfo",
        "tags": [
          "MetaInfo"
        ],
        "summary": "Get all Meta Information for YDI Interface",
        "description": "In Yellow Dog, the user is able to configure the Names that are used on buttons to make the user interface more friendly for their particular use. This endpoint will display the values of these name changes.\r\n\r\nCommon examples of this are:\r\n- Dimension 1 is named Size in the Yellow Dog Interface, Dimension 1 (Size) will be index 0 of the dimensions array.\r\n- Flag is named Location",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.Dto.MetaInfo"
                }
              }
            }
          },
          "429": {
            "description": "Rate limiting quota exceeded\r\n            \r\n            Apply pause on further requests to the api using a wait method for the amount of seconds \r\n            presented in the Response Header Key 'Retry-After'.\r\n            \r\n            To prevent running into further instances of this rate limiting, use the Response Headers \r\n            returned back from all other requests to ensure there is enough buffer.\r\n            \r\n            For further information see Rate Limiting Section of Getting Started of api documentation site."
          },
          "500": {
            "description": "An internal error has occured or the database is currently offline for\r\n            connections.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/productiongroups": {
      "get": {
        "x-hideReplay": true,
        "operationId": "get-productiongroups",
        "tags": [
          "ProductionGroups"
        ],
        "summary": "Get ProductionGroups",
        "description": "Production Groups indicate which team produces the recipe.",
        "parameters": [
          {
            "name": "Filter",
            "in": "query",
            "description": "### Filter Options:\r\n- rowUpdated (DateTime in v2, DateTimeOffset in v3: See Differences between v2 and v3 in \r\nGetting Started Section for more information)",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "PageNumber",
            "in": "query",
            "description": "Page Number for the result set.\r\n\r\nThis is expected to be an integer value greater than 0. Defaults to 1 when not passed in.\r\n\r\nFor more information see the Getting Started Section for Pagination.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "PageSize",
            "in": "query",
            "description": "Page Size\r\n- Default page size: 100 \r\n- Max page size: 500\r\n\r\nThis is expected to be an integer value greater than 0. Defaults to 100 when not passed in.\r\n\r\nFor more information see the Getting Started Section for Pagination.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "Expand",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "OrderBy",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Api.Models.Dto.ProductionGroup"
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limiting quota exceeded\r\n            \r\n            Apply pause on further requests to the api using a wait method for the amount of seconds \r\n            presented in the Response Header Key 'Retry-After'.\r\n            \r\n            To prevent running into further instances of this rate limiting, use the Response Headers \r\n            returned back from all other requests to ensure there is enough buffer.\r\n            \r\n            For further information see Rate Limiting Section of Getting Started of api documentation site."
          },
          "500": {
            "description": "An internal error has occured or the database is currently offline for\r\n            connections.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/purchaseOrders/{id}/requestTieredApproval": {
      "post": {
        "x-hideReplay": true,
        "operationId": "post-purchaseorders-tieredapproval-request",
        "tags": [
          "PurchaseOrders"
        ],
        "summary": "Starts the Tiered Purchase Order Approval process",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "CommDoc Id of Purchase Order",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Api.Models.SendGridUserResponse"
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limiting quota exceeded\r\n            \r\n            Apply pause on further requests to the api using a wait method for the amount of seconds \r\n            presented in the Response Header Key 'Retry-After'.\r\n            \r\n            To prevent running into further instances of this rate limiting, use the Response Headers \r\n            returned back from all other requests to ensure there is enough buffer.\r\n            \r\n            For further information see Rate Limiting Section of Getting Started of api documentation site."
          },
          "500": {
            "description": "An internal error has occured or the database is currently offline for\r\n            connections.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/purchaseOrders/tieredApproval": {
      "put": {
        "x-hideReplay": true,
        "operationId": "put-purchaseorders-tieredapproval",
        "tags": [
          "PurchaseOrders"
        ],
        "summary": "Approves a Purchase Order Tier",
        "requestBody": {
          "description": "",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/Api.Models.Dto.POTierApprovalPUT"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Api.Models.Dto.POTierApprovalPUT"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Api.Models.Dto.POTierApprovalPUT"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Api.Models.Dto.POTierApprovalPUT"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.Dto.POTierApprovalPUTResponse"
                }
              }
            }
          },
          "429": {
            "description": "Rate limiting quota exceeded\r\n            \r\n            Apply pause on further requests to the api using a wait method for the amount of seconds \r\n            presented in the Response Header Key 'Retry-After'.\r\n            \r\n            To prevent running into further instances of this rate limiting, use the Response Headers \r\n            returned back from all other requests to ensure there is enough buffer.\r\n            \r\n            For further information see Rate Limiting Section of Getting Started of api documentation site."
          },
          "500": {
            "description": "An internal error has occured or the database is currently offline for\r\n            connections.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/purchaseOrders": {
      "get": {
        "x-hideReplay": true,
        "operationId": "get-purchaseorders",
        "tags": [
          "PurchaseOrders"
        ],
        "summary": "Gets Purchase Orders",
        "description": "Example use cases\n`api/v2/purchaseOrders?pageNumber=1&pageSize=100&Filter=committed>2024-03-05T06:06:58.529Z&Filter=lastUpdated>2024-03-06&orderBy=committed`\nwill get the first page of purchase orders where the committed date is later than 2024-03-05T06:06:58.529Z AND the lastUpdated date is later than 2024-03-06T00:00:00Z, ordering by the committed date\n`/api/v2/purchaseOrders?pageNumber=1&pageSize=100&Filter=committed>2024-03-05T06:06:58.529Z&orderBy=committed`\nwill get the first page of purchase orders where the committed date is later than `2024-03-05T06:06:58.529Z` ordering by the committed date.\n#### Permission Requirements\n- Permission Path: **Purchasing > Purchase Orders**\n",
        "parameters": [
          {
            "name": "Filter",
            "in": "query",
            "description": "### Filter Options:\r\n- docNumber (string: allows for pulling based on a particular document number)\r\n- committed (DateTime in v2, DateTimeOffset in v3: See Differences between v2 and v3 in \r\nGetting Started Section for more information)\r\n- lastUpdated (DateTime in v2, DateTimeOffset in v3: See Differences between v2 and v3 in \r\nGetting Started Section for more information)\r\n- vendor (GUID: allows for filtering down to only a particular vendorId. This id can be found from the GET /vendors endpoint)",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "Expand",
            "in": "query",
            "description": "### Expand Options:\r\n- Items\r\n- Stores\r\n- Users\r\n- Vendors\r\n- LineDetails\r\n- ApprovalStatuses",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "OrderBy",
            "in": "query",
            "description": "### Order By Options:\r\n- committed\r\n- docNumber\r\n- lastUpdated",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "PageNumber",
            "in": "query",
            "description": "Page Number for the result set.\r\n\r\nThis is expected to be an integer value greater than 0. Defaults to 1 when not passed in.\r\n\r\nFor more information see the Getting Started Section for Pagination.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "PageSize",
            "in": "query",
            "description": "Page Size\r\n- Default page size: 100 \r\n- Max page size: 500\r\n\r\nThis is expected to be an integer value greater than 0. Defaults to 100 when not passed in.\r\n\r\nFor more information see the Getting Started Section for Pagination.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Api.Models.Dto.PurchaseOrderGet"
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limiting quota exceeded\r\n            \r\n            Apply pause on further requests to the api using a wait method for the amount of seconds \r\n            presented in the Response Header Key 'Retry-After'.\r\n            \r\n            To prevent running into further instances of this rate limiting, use the Response Headers \r\n            returned back from all other requests to ensure there is enough buffer.\r\n            \r\n            For further information see Rate Limiting Section of Getting Started of api documentation site."
          },
          "500": {
            "description": "An internal error has occured or the database is currently offline for\r\n            connections.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              }
            }
          }
        }
      },
      "post": {
        "x-hideReplay": true,
        "operationId": "post-purchaseorders",
        "tags": [
          "PurchaseOrders"
        ],
        "summary": "Creates Purchase Orders.",
        "description": "#### Permission Requirements\n- Permission Path: **Purchasing > Purchase Orders > Purchase Order List > Create**\n",
        "requestBody": {
          "description": "",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/Api.Models.Dto.PurchaseOrderCreate"
                }
              }
            },
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/Api.Models.Dto.PurchaseOrderCreate"
                }
              }
            },
            "text/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/Api.Models.Dto.PurchaseOrderCreate"
                }
              }
            },
            "application/*+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/Api.Models.Dto.PurchaseOrderCreate"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Api.Models.Dto.PurchaseOrderCreate"
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limiting quota exceeded\r\n            \r\n            Apply pause on further requests to the api using a wait method for the amount of seconds \r\n            presented in the Response Header Key 'Retry-After'.\r\n            \r\n            To prevent running into further instances of this rate limiting, use the Response Headers \r\n            returned back from all other requests to ensure there is enough buffer.\r\n            \r\n            For further information see Rate Limiting Section of Getting Started of api documentation site."
          },
          "500": {
            "description": "An internal error has occured or the database is currently offline for\r\n            connections.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/purchaseOrders/{id}": {
      "get": {
        "x-hideReplay": true,
        "operationId": "get-purchaseorders-byid",
        "tags": [
          "PurchaseOrders"
        ],
        "summary": "Get Purchase Order by Id",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "CommDoc Id of Purchase Order",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Expand",
            "in": "query",
            "description": "### Expand Options:\r\n- Items\r\n- Stores\r\n- Users\r\n- Vendors\r\n- LineDetails\r\n- ApprovalStatuses",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.Dto.PurchaseOrderGet"
                }
              }
            }
          },
          "429": {
            "description": "Rate limiting quota exceeded\r\n            \r\n            Apply pause on further requests to the api using a wait method for the amount of seconds \r\n            presented in the Response Header Key 'Retry-After'.\r\n            \r\n            To prevent running into further instances of this rate limiting, use the Response Headers \r\n            returned back from all other requests to ensure there is enough buffer.\r\n            \r\n            For further information see Rate Limiting Section of Getting Started of api documentation site."
          },
          "500": {
            "description": "An internal error has occured or the database is currently offline for\r\n            connections.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/purchaseOrders/byToken": {
      "get": {
        "x-hideReplay": true,
        "operationId": "get-purchaseorders-bytoken",
        "tags": [
          "PurchaseOrders"
        ],
        "summary": "Get Purchase Order by token",
        "parameters": [
          {
            "name": "Expand",
            "in": "query",
            "description": "### Expand Options:\r\n- Items\r\n- Stores\r\n- Users\r\n- Vendors\r\n- LineDetails\r\n- ApprovalStatuses",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.Dto.PurchaseOrderGet"
                }
              }
            }
          },
          "429": {
            "description": "Rate limiting quota exceeded\r\n            \r\n            Apply pause on further requests to the api using a wait method for the amount of seconds \r\n            presented in the Response Header Key 'Retry-After'.\r\n            \r\n            To prevent running into further instances of this rate limiting, use the Response Headers \r\n            returned back from all other requests to ensure there is enough buffer.\r\n            \r\n            For further information see Rate Limiting Section of Getting Started of api documentation site."
          },
          "500": {
            "description": "An internal error has occured or the database is currently offline for\r\n            connections.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/purchaseOrders/{id}/approvalStatus": {
      "get": {
        "x-hideReplay": true,
        "operationId": "get-purchaseorders-approvalstatus-byid",
        "tags": [
          "PurchaseOrders"
        ],
        "summary": "Get Purchase Order Approval Status by Id of Purchase Order",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Id of Purchase Order",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.Dto.CommdocApprovalStatuses"
                }
              }
            }
          },
          "429": {
            "description": "Rate limiting quota exceeded\r\n            \r\n            Apply pause on further requests to the api using a wait method for the amount of seconds \r\n            presented in the Response Header Key 'Retry-After'.\r\n            \r\n            To prevent running into further instances of this rate limiting, use the Response Headers \r\n            returned back from all other requests to ensure there is enough buffer.\r\n            \r\n            For further information see Rate Limiting Section of Getting Started of api documentation site."
          },
          "500": {
            "description": "An internal error has occured or the database is currently offline for\r\n            connections.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/purchaseOrders/approvalStatusByToken": {
      "get": {
        "x-hideReplay": true,
        "operationId": "get-purchaseorders-approvalstatus-bytoken",
        "tags": [
          "PurchaseOrders"
        ],
        "summary": "Get Purchase Order Approval Status using token",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.Dto.CommdocApprovalStatus"
                }
              }
            }
          },
          "429": {
            "description": "Rate limiting quota exceeded\r\n            \r\n            Apply pause on further requests to the api using a wait method for the amount of seconds \r\n            presented in the Response Header Key 'Retry-After'.\r\n            \r\n            To prevent running into further instances of this rate limiting, use the Response Headers \r\n            returned back from all other requests to ensure there is enough buffer.\r\n            \r\n            For further information see Rate Limiting Section of Getting Started of api documentation site."
          },
          "500": {
            "description": "An internal error has occured or the database is currently offline for\r\n            connections.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/purchaseOrders/updateCommitted": {
      "patch": {
        "x-hideReplay": true,
        "operationId": "patch-leafroute",
        "tags": [
          "PurchaseOrders"
        ],
        "summary": "Update Committed Purchase orders",
        "description": "Infrequently there are use cases where a previously committed purchase order would be allowed to have new lines added or other adjustments to the document.\nThe following properties of a committed purchase order are prohibited from being updated: - Commdoc - Committed Status - Committed Date Time - Vendor - Store - Arrival Log\nOnly purchase orders that have been committed but do not have any kind of purchasing activity against them will be allowed to be edited.\n#### Permission Requirements\n- Permission Path: **Purchasing > Purchase Orders > Purchase Order Editor**\n",
        "requestBody": {
          "description": "",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/Api.Models.Dto.PurchaseOrderPatch"
                }
              }
            },
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/Api.Models.Dto.PurchaseOrderPatch"
                }
              }
            },
            "text/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/Api.Models.Dto.PurchaseOrderPatch"
                }
              }
            },
            "application/*+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/Api.Models.Dto.PurchaseOrderPatch"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success"
          },
          "204": {
            "description": "An empty request was sent to the endpoint."
          },
          "403": {
            "description": "User does not have sufficient access for this endpoint: Edit After Commit Access required Purchasing > Purchase Orders > Purchase Order Editor."
          },
          "422": {
            "description": "Validation Error: See Response Body for further information.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Api.Models.PatchValidationError"
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limiting quota exceeded\r\n            \r\n            Apply pause on further requests to the api using a wait method for the amount of seconds \r\n            presented in the Response Header Key 'Retry-After'.\r\n            \r\n            To prevent running into further instances of this rate limiting, use the Response Headers \r\n            returned back from all other requests to ensure there is enough buffer.\r\n            \r\n            For further information see Rate Limiting Section of Getting Started of api documentation site."
          },
          "500": {
            "description": "An internal error has occured or the database is currently offline for\r\n            connections.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/receipts": {
      "get": {
        "x-hideReplay": true,
        "operationId": "get-receipts",
        "tags": [
          "Receipts"
        ],
        "summary": "Gets Receipts",
        "description": "#### Permission Requirements\n- Permission Path: **Purchasing > Receipts**\n",
        "parameters": [
          {
            "name": "Filter",
            "in": "query",
            "description": "### Filter Options:\n  - docNumber -- Example: ?Filter=docNumber=REC00118\n  - committed -- Example: ?Filter=committed>=2025-10-31\n  - lastUpdated -- Example: ?Filter=lastUpdated>2025-10-31T06:05:58.0123456-05:00\n  - vendor -- Example: ?Filter=vendor=4f8cbdf4-1fc2-11f0-af1d-0c9192383642\n##### For filter options that support timestamps (ie. committed & lastUpdated)\n  See [Working with Timestamps (v2 vs. v3)](https://developer.yellowdogsoftware.com/fetch/getting-started/02-timestamps)\n##### Example with combined options:\n  ```\n  GET /receipts?Filter=docNumber=REC00118,committed>=2025-10-31,vendor=4f8cbdf4-1fc2-11f0-af1d-0c9192383642\n  ```",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "Expand",
            "in": "query",
            "description": "### Expand Options:\r\n- Items\r\n- Stores\r\n- Users\r\n- Vendors",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "OrderBy",
            "in": "query",
            "description": "### Order By Options:\r\n- committed\r\n- docNumber\r\n- lastUpdated",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "PageNumber",
            "in": "query",
            "description": "Page Number for the result set.\r\n\r\nThis is expected to be an integer value greater than 0. Defaults to 1 when not passed in.\r\n\r\nFor more information see the Getting Started Section for Pagination.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "PageSize",
            "in": "query",
            "description": "Page Size\r\n- Default page size: 100 \r\n- Max page size: 500\r\n\r\nThis is expected to be an integer value greater than 0. Defaults to 100 when not passed in.\r\n\r\nFor more information see the Getting Started Section for Pagination.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Api.Models.Dto.ReceiptGet"
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limiting quota exceeded\r\n            \r\n            Apply pause on further requests to the api using a wait method for the amount of seconds \r\n            presented in the Response Header Key 'Retry-After'.\r\n            \r\n            To prevent running into further instances of this rate limiting, use the Response Headers \r\n            returned back from all other requests to ensure there is enough buffer.\r\n            \r\n            For further information see Rate Limiting Section of Getting Started of api documentation site."
          },
          "500": {
            "description": "An internal error has occured or the database is currently offline for\r\n            connections.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              }
            }
          }
        }
      },
      "post": {
        "x-hideReplay": true,
        "operationId": "post-receipts",
        "tags": [
          "Receipts"
        ],
        "summary": "Create Receipts",
        "description": "Using this endpoint will create uncommitted receipts. \r\nMarking a receipt as committed and thus making the associated adjustments to the item inventory will need to be performed using the Yellow Dog Inventory Client.\r\n\r\n### Requirements\r\nThe following properties must exist in the database in order to be uploaded to a receipt:\r\n* Store\r\n* Vendor\r\n* Items\r\n\r\nThe following requirements are needed for a receipt to be created using this method:\r\n* Only purchase orders that have been committed can be backlinked to a receipt\r\n\r\n### BackLinking\r\nOne common example of backlinking is when a process exists for a location to have a purchase order created for all receipts and purchases of inventory items. This is accomplished by creating a related document for a receipt.\r\n\r\nIn Yellow Dog Inventory, we track the linkage of purchasing documents by the individual lines of a document. To accomplish this, all lines of an existing purchasing document should be marked as the backlink of another document in the process.\r\n\r\nIn example:\r\nGiven an existing Committed Purchase Order of the following shape.\r\n```json\r\n{\r\n\t\"CommdocId\": \t\"123e4567-e89b-12d3-a456-426655440025\"\r\n\t\"type\": \"PurchaseOrder\",\r\n\t\"lines\": [\r\n\t\t{\r\n\t\t\t\"CommDocLineId\": \"456e0001-e89b-12d3-a456-426655440000\",\r\n\t\t\t\"quantity\": 15,\r\n\t\t\t\"ItemID\":\"789e0001-e89b-12d3-a456-426655440000\"\r\n\t\t}\r\n\t]\r\n}\r\n```\r\n\r\nCan be fully recieved by sending the following general shape. Notice that the backlinkLineId of the receipt line.\r\n```json\r\n{\r\n\t\"type\": \"Receipt\",\r\n\t...,\r\n\t\"lines\": [\r\n\t\t{\r\n\t\t\t\"quantity\": 15,\r\n\t\t\t\"ItemID\": \"789e0001-e89b-12d3-a456-426655440000\"\r\n\t\t\t\"backLinkLineID\": \"456e0001-e89b-12d3-a456-426655440000\"\r\n\t\t}\r\n\t]\r\n}\r\n```\r\n\r\n#### Permission Requirements\r\n\r\n- Permission Path: **Purchasing > Receipts > Receipt List > Create**",
        "requestBody": {
          "description": "",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/Api.Models.Dto.ReceiptCreate"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Api.Models.Dto.ReceiptCreate"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Api.Models.Dto.ReceiptCreate"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Api.Models.Dto.ReceiptCreate"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Api.Models.Dto.ReceiptGet"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "429": {
            "description": "Rate limiting quota exceeded\r\n            \r\n            Apply pause on further requests to the api using a wait method for the amount of seconds \r\n            presented in the Response Header Key 'Retry-After'.\r\n            \r\n            To prevent running into further instances of this rate limiting, use the Response Headers \r\n            returned back from all other requests to ensure there is enough buffer.\r\n            \r\n            For further information see Rate Limiting Section of Getting Started of api documentation site."
          },
          "500": {
            "description": "An internal error has occured or the database is currently offline for\r\n            connections.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/receipts/{id}": {
      "get": {
        "x-hideReplay": true,
        "operationId": "get-receipts-byid",
        "tags": [
          "Receipts"
        ],
        "summary": "Get Receipt by Id",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Id of Receipt",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Expand",
            "in": "query",
            "description": "### Expand Options:\r\n- Items\r\n- Stores\r\n- Users\r\n- Vendors",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.Dto.ReceiptGet"
                }
              }
            }
          },
          "429": {
            "description": "Rate limiting quota exceeded\r\n            \r\n            Apply pause on further requests to the api using a wait method for the amount of seconds \r\n            presented in the Response Header Key 'Retry-After'.\r\n            \r\n            To prevent running into further instances of this rate limiting, use the Response Headers \r\n            returned back from all other requests to ensure there is enough buffer.\r\n            \r\n            For further information see Rate Limiting Section of Getting Started of api documentation site."
          },
          "500": {
            "description": "An internal error has occured or the database is currently offline for\r\n            connections.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/recipes/{recipeId}/images": {
      "post": {
        "x-hideReplay": true,
        "operationId": "post-recipes-images",
        "tags": [
          "Recipes"
        ],
        "summary": "Adds an Image as an Attached File to a recipe\r\n\r\nUser's client *MUST* be 366+ with cloud storage enabled",
        "description": "#### Permission Requirements\n- Permission Path: **Recipes > Recipe Editor > Pictures and Links Tabs** (editor access required)\n",
        "parameters": [
          {
            "name": "recipeId",
            "in": "path",
            "description": "",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "description",
            "in": "query",
            "description": "Description or Title of the Image file",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "file": {
                    "type": "string",
                    "description": "Image file",
                    "format": "binary"
                  }
                }
              },
              "encoding": {
                "file": {
                  "style": "form"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.Dto.GenericObject"
                }
              }
            }
          },
          "429": {
            "description": "Rate limiting quota exceeded\r\n            \r\n            Apply pause on further requests to the api using a wait method for the amount of seconds \r\n            presented in the Response Header Key 'Retry-After'.\r\n            \r\n            To prevent running into further instances of this rate limiting, use the Response Headers \r\n            returned back from all other requests to ensure there is enough buffer.\r\n            \r\n            For further information see Rate Limiting Section of Getting Started of api documentation site."
          },
          "500": {
            "description": "An internal error has occured or the database is currently offline for\r\n            connections.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/recipes/{recipeId}/images/{imageId}": {
      "patch": {
        "x-hideReplay": true,
        "operationId": "op-recipes-images-byid",
        "tags": [
          "Recipes"
        ],
        "summary": "Updates image details of a recipe",
        "description": "#### Permission Requirements\n- Permission Path: **Recipes > Recipe Editor > Pictures and Links Tabs** (editor access required)\n",
        "parameters": [
          {
            "name": "recipeId",
            "in": "path",
            "description": "",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "imageId",
            "in": "path",
            "description": "",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "description": "",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/Api.Models.Dto.AttachedFileMutation"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Api.Models.Dto.AttachedFileMutation"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Api.Models.Dto.AttachedFileMutation"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Api.Models.Dto.AttachedFileMutation"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.Dto.AttachedFile"
                }
              }
            }
          },
          "429": {
            "description": "Rate limiting quota exceeded\r\n            \r\n            Apply pause on further requests to the api using a wait method for the amount of seconds \r\n            presented in the Response Header Key 'Retry-After'.\r\n            \r\n            To prevent running into further instances of this rate limiting, use the Response Headers \r\n            returned back from all other requests to ensure there is enough buffer.\r\n            \r\n            For further information see Rate Limiting Section of Getting Started of api documentation site."
          },
          "500": {
            "description": "An internal error has occured or the database is currently offline for\r\n            connections.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              }
            }
          }
        }
      },
      "delete": {
        "x-hideReplay": true,
        "operationId": "delete-recipes-images-byid",
        "tags": [
          "Recipes"
        ],
        "summary": "Deletes a recipe's image",
        "description": "#### Permission Requirements\n- Permission Path: **Recipes > Recipe Editor > Pictures and Links Tabs** (editor access required)\n",
        "parameters": [
          {
            "name": "recipeId",
            "in": "path",
            "description": "",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "imageId",
            "in": "path",
            "description": "",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "429": {
            "description": "Rate limiting quota exceeded\r\n            \r\n            Apply pause on further requests to the api using a wait method for the amount of seconds \r\n            presented in the Response Header Key 'Retry-After'.\r\n            \r\n            To prevent running into further instances of this rate limiting, use the Response Headers \r\n            returned back from all other requests to ensure there is enough buffer.\r\n            \r\n            For further information see Rate Limiting Section of Getting Started of api documentation site."
          },
          "500": {
            "description": "An internal error has occured or the database is currently offline for\r\n            connections.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/recipes": {
      "get": {
        "x-hideReplay": true,
        "operationId": "get-recipes",
        "tags": [
          "Recipes"
        ],
        "summary": "Gets Recipes",
        "description": "This endpoint only returns the list of Recipes, without Ingredients, AttachedFiles, and Links.\r\nIf the ingredients are needed, then make an another API call to GET Recipe By ID with the Expand=Ingredients option.\r\nIf the attached files are needed, then make an another API call to GET Recipe By ID with the Expand=AttachedFiles option.\r\nIf the links are needed, then make an another API call to GET Recipe By ID with the Expand=Links option.\r\nMultiple expand options can be used. For example: `/recipes/:id?Expand=Ingredients&Expand=AttachedFiles&Expand=Links`",
        "parameters": [
          {
            "name": "Filter",
            "in": "query",
            "description": "### Filter Options:\r\n- RecipeTypeID (UUID: This is the GUID of the RecipeType. Use GET RecipeType endpoint to get the GUID of RecipeType.)\r\n- LastUpdated (DateTime in v2, DateTimeOffset in v3: See Differences between v2 and v3 in Getting Started Section for more information.)\r\n- ProductionGroupID (UUID: This is the GUID of the ProductionGroup. Use GET ProductionGroup endpoint to get the GUID of ProductionGroup.)",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "OrderBy",
            "in": "query",
            "description": "### OrderBy Options:\r\n- Description (String: This is the description of the Recipe.)\r\n- rowCreated (DateTime in v2, DateTimeOffset in v3: See Differences between v2 and v3 in Getting Started Section for more information)\r\n- LastUpdated (DateTime in v2, DateTimeOffset in v3: See Differences between v2 and v3 in Getting Started Section for more information)",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "PageNumber",
            "in": "query",
            "description": "Page Number for the result set.\r\n\r\nThis is expected to be an integer value greater than 0. Defaults to 1 when not passed in.\r\n\r\nFor more information see the Getting Started Section for Pagination.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "PageSize",
            "in": "query",
            "description": "Page Size\r\n- Default page size: 100 \r\n- Max page size: 500\r\n\r\nThis is expected to be an integer value greater than 0. Defaults to 100 when not passed in.\r\n\r\nFor more information see the Getting Started Section for Pagination.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "Expand",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Api.Models.Dto.Recipe"
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limiting quota exceeded\r\n            \r\n            Apply pause on further requests to the api using a wait method for the amount of seconds \r\n            presented in the Response Header Key 'Retry-After'.\r\n            \r\n            To prevent running into further instances of this rate limiting, use the Response Headers \r\n            returned back from all other requests to ensure there is enough buffer.\r\n            \r\n            For further information see Rate Limiting Section of Getting Started of api documentation site."
          },
          "500": {
            "description": "An internal error has occured or the database is currently offline for\r\n            connections.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/recipes/{recipeId}": {
      "get": {
        "x-hideReplay": true,
        "operationId": "get-recipes-byid",
        "tags": [
          "Recipes"
        ],
        "summary": "Gets a Recipe By ID",
        "parameters": [
          {
            "name": "recipeId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Expand",
            "in": "query",
            "description": "##### Expand Options:\n  - Ingredients\n  - AttachedFiles\n  - Links\n  - Cost-Usage (requires database version 377+)\n",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "PageNumber",
            "in": "query",
            "description": "Page Number for the result set.\r\n\r\nThis is expected to be an integer value greater than 0. Defaults to 1 when not passed in.\r\n\r\nFor more information see the Getting Started Section for Pagination.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "PageSize",
            "in": "query",
            "description": "Page Size\r\n- Default page size: 100 \r\n- Max page size: 500\r\n\r\nThis is expected to be an integer value greater than 0. Defaults to 100 when not passed in.\r\n\r\nFor more information see the Getting Started Section for Pagination.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "Filter",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "OrderBy",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.Dto.RecipeDetail"
                }
              }
            }
          },
          "429": {
            "description": "Rate limiting quota exceeded\r\n            \r\n            Apply pause on further requests to the api using a wait method for the amount of seconds \r\n            presented in the Response Header Key 'Retry-After'.\r\n            \r\n            To prevent running into further instances of this rate limiting, use the Response Headers \r\n            returned back from all other requests to ensure there is enough buffer.\r\n            \r\n            For further information see Rate Limiting Section of Getting Started of api documentation site."
          },
          "500": {
            "description": "An internal error has occured or the database is currently offline for\r\n            connections.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/recipetypes": {
      "get": {
        "x-hideReplay": true,
        "operationId": "get-recipetypes",
        "tags": [
          "RecipeTypes"
        ],
        "summary": "Get RecipeTypes.",
        "description": "RecipeType is a way to organize recipes into groups.",
        "parameters": [
          {
            "name": "Filter",
            "in": "query",
            "description": "### Filter Options:\r\n- rowUpdated (DateTime in v2, DateTimeOffset in v3: See Differences between v2 and v3 in \r\nGetting Started Section for more information)",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "PageNumber",
            "in": "query",
            "description": "Page Number for the result set.\r\n\r\nThis is expected to be an integer value greater than 0. Defaults to 1 when not passed in.\r\n\r\nFor more information see the Getting Started Section for Pagination.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "PageSize",
            "in": "query",
            "description": "Page Size\r\n- Default page size: 100 \r\n- Max page size: 500\r\n\r\nThis is expected to be an integer value greater than 0. Defaults to 100 when not passed in.\r\n\r\nFor more information see the Getting Started Section for Pagination.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "Expand",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "OrderBy",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Api.Models.Dto.RecipeType"
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limiting quota exceeded\r\n            \r\n            Apply pause on further requests to the api using a wait method for the amount of seconds \r\n            presented in the Response Header Key 'Retry-After'.\r\n            \r\n            To prevent running into further instances of this rate limiting, use the Response Headers \r\n            returned back from all other requests to ensure there is enough buffer.\r\n            \r\n            For further information see Rate Limiting Section of Getting Started of api documentation site."
          },
          "500": {
            "description": "An internal error has occured or the database is currently offline for\r\n            connections.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/requests": {
      "post": {
        "x-hideReplay": true,
        "operationId": "post-requests",
        "tags": [
          "Requests"
        ],
        "summary": "Creates and commits a Request to be used in the Purchasing Document Workflow.",
        "description": "#### Permission Requirements\n- Permission Path: **Purchasing > Requests > Request List > Create**\n",
        "requestBody": {
          "description": "Object of the Request to be created",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/Api.Models.Dto.RequestCreate"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Api.Models.Dto.RequestCreate"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Api.Models.Dto.RequestCreate"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Api.Models.Dto.RequestCreate"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "429": {
            "description": "Rate limiting quota exceeded\r\n            \r\n            Apply pause on further requests to the api using a wait method for the amount of seconds \r\n            presented in the Response Header Key 'Retry-After'.\r\n            \r\n            To prevent running into further instances of this rate limiting, use the Response Headers \r\n            returned back from all other requests to ensure there is enough buffer.\r\n            \r\n            For further information see Rate Limiting Section of Getting Started of api documentation site."
          },
          "500": {
            "description": "An internal error has occured or the database is currently offline for\r\n            connections.",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/requests/{id}/Commit": {
      "patch": {
        "x-hideReplay": true,
        "operationId": "patch-requests-commit",
        "tags": [
          "Requests"
        ],
        "summary": "Commits a Request, this allows the Request to be used in future steps of the Purchasing Document Workflow",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "CommDoc Id of Request",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "429": {
            "description": "Rate limiting quota exceeded\r\n            \r\n            Apply pause on further requests to the api using a wait method for the amount of seconds \r\n            presented in the Response Header Key 'Retry-After'.\r\n            \r\n            To prevent running into further instances of this rate limiting, use the Response Headers \r\n            returned back from all other requests to ensure there is enough buffer.\r\n            \r\n            For further information see Rate Limiting Section of Getting Started of api documentation site."
          },
          "500": {
            "description": "An internal error has occured or the database is currently offline for\r\n            connections.",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/requests/{id}": {
      "get": {
        "x-hideReplay": true,
        "operationId": "get-requests-byid",
        "tags": [
          "Requests"
        ],
        "summary": "Getting Request Details By ID",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "CommDoc ID of Request",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "PageNumber",
            "in": "query",
            "description": "- PageNumber Starts at 1",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "PageSize",
            "in": "query",
            "description": "- Default page size: 100\r\n- Max page size: 500",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Dingo.GraphQL.IGetMyRequest_Me_Request"
                }
              }
            }
          },
          "429": {
            "description": "Rate limiting quota exceeded\r\n            \r\n            Apply pause on further requests to the api using a wait method for the amount of seconds \r\n            presented in the Response Header Key 'Retry-After'.\r\n            \r\n            To prevent running into further instances of this rate limiting, use the Response Headers \r\n            returned back from all other requests to ensure there is enough buffer.\r\n            \r\n            For further information see Rate Limiting Section of Getting Started of api documentation site."
          },
          "500": {
            "description": "An internal error has occured or the database is currently offline for\r\n            connections.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              }
            }
          }
        }
      },
      "patch": {
        "x-hideReplay": true,
        "operationId": "patch-requests-byid",
        "tags": [
          "Requests"
        ],
        "summary": "Updates an existing Request",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "CommDoc Id of Request",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "description": "Any alterations to the Request",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/Api.Models.Dto.RequestCreate"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Api.Models.Dto.RequestCreate"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Api.Models.Dto.RequestCreate"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Api.Models.Dto.RequestCreate"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "429": {
            "description": "Rate limiting quota exceeded\r\n            \r\n            Apply pause on further requests to the api using a wait method for the amount of seconds \r\n            presented in the Response Header Key 'Retry-After'.\r\n            \r\n            To prevent running into further instances of this rate limiting, use the Response Headers \r\n            returned back from all other requests to ensure there is enough buffer.\r\n            \r\n            For further information see Rate Limiting Section of Getting Started of api documentation site."
          },
          "500": {
            "description": "An internal error has occured or the database is currently offline for\r\n            connections.",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/sessions": {
      "get": {
        "x-hideReplay": true,
        "operationId": "get-sessions",
        "tags": [
          "Sessions"
        ],
        "summary": "Getting Sessions",
        "parameters": [
          {
            "name": "Filter",
            "in": "query",
            "description": "Filter results by MobileStatus. Accepts string values like \"Finalized\" and maps to enum value for DB. (Active = 1, Finalized = 2, Recount = 3, Processed = 4)",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "PageNumber",
            "in": "query",
            "description": "Page Number for the result set.\r\n\r\nThis is expected to be an integer value greater than 0. Defaults to 1 when not passed in.\r\n\r\nFor more information see the Getting Started Section for Pagination.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "PageSize",
            "in": "query",
            "description": "Page Size\r\n- Default page size: 100 \r\n- Max page size: 500\r\n\r\nThis is expected to be an integer value greater than 0. Defaults to 100 when not passed in.\r\n\r\nFor more information see the Getting Started Section for Pagination.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "Expand",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "OrderBy",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "enableSessionItemCountNullCoalescence",
            "in": "query",
            "schema": {
              "type": "boolean",
              "default": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Api.Models.Dto.SessionGet"
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limiting quota exceeded\r\n            \r\n            Apply pause on further requests to the api using a wait method for the amount of seconds \r\n            presented in the Response Header Key 'Retry-After'.\r\n            \r\n            To prevent running into further instances of this rate limiting, use the Response Headers \r\n            returned back from all other requests to ensure there is enough buffer.\r\n            \r\n            For further information see Rate Limiting Section of Getting Started of api documentation site."
          },
          "500": {
            "description": "An internal error has occured or the database is currently offline for\r\n            connections.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              }
            }
          }
        }
      },
      "post": {
        "x-hideReplay": true,
        "operationId": "post-sessions",
        "tags": [
          "Sessions"
        ],
        "summary": "Creating new Sessions",
        "requestBody": {
          "description": "",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/Api.Models.Dto.SessionCreate"
                }
              }
            },
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/Api.Models.Dto.SessionCreate"
                }
              }
            },
            "text/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/Api.Models.Dto.SessionCreate"
                }
              }
            },
            "application/*+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/Api.Models.Dto.SessionCreate"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "format": "uuid"
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limiting quota exceeded\r\n            \r\n            Apply pause on further requests to the api using a wait method for the amount of seconds \r\n            presented in the Response Header Key 'Retry-After'.\r\n            \r\n            To prevent running into further instances of this rate limiting, use the Response Headers \r\n            returned back from all other requests to ensure there is enough buffer.\r\n            \r\n            For further information see Rate Limiting Section of Getting Started of api documentation site."
          },
          "500": {
            "description": "An internal error has occured or the database is currently offline for\r\n            connections.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              }
            }
          }
        }
      },
      "put": {
        "x-hideReplay": true,
        "operationId": "put-sessions",
        "tags": [
          "Sessions"
        ],
        "summary": "Updating existing Sessions",
        "requestBody": {
          "description": "",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/Api.Models.Dto.SessionCreate"
                }
              }
            },
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/Api.Models.Dto.SessionCreate"
                }
              }
            },
            "text/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/Api.Models.Dto.SessionCreate"
                }
              }
            },
            "application/*+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/Api.Models.Dto.SessionCreate"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "429": {
            "description": "Rate limiting quota exceeded\r\n            \r\n            Apply pause on further requests to the api using a wait method for the amount of seconds \r\n            presented in the Response Header Key 'Retry-After'.\r\n            \r\n            To prevent running into further instances of this rate limiting, use the Response Headers \r\n            returned back from all other requests to ensure there is enough buffer.\r\n            \r\n            For further information see Rate Limiting Section of Getting Started of api documentation site."
          },
          "500": {
            "description": "An internal error has occured or the database is currently offline for connections.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/sessions/{id}": {
      "get": {
        "x-hideReplay": true,
        "operationId": "get-sessions-byid",
        "tags": [
          "Sessions"
        ],
        "summary": "Getting Session by Id",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Session Id",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "PageNumber",
            "in": "query",
            "description": "Page Number for the result set.\r\n\r\nThis is expected to be an integer value greater than 0. Defaults to 1 when not passed in.\r\n\r\nFor more information see the Getting Started Section for Pagination.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "PageSize",
            "in": "query",
            "description": "Page Size\r\n- Default page size: 100 \r\n- Max page size: 500\r\n\r\nThis is expected to be an integer value greater than 0. Defaults to 100 when not passed in.\r\n\r\nFor more information see the Getting Started Section for Pagination.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "Expand",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "Filter",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "OrderBy",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "enableSessionItemCountNullCoalescence",
            "in": "query",
            "schema": {
              "type": "boolean",
              "default": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.Dto.SessionGet"
                }
              }
            }
          },
          "429": {
            "description": "Rate limiting quota exceeded\r\n            \r\n            Apply pause on further requests to the api using a wait method for the amount of seconds \r\n            presented in the Response Header Key 'Retry-After'.\r\n            \r\n            To prevent running into further instances of this rate limiting, use the Response Headers \r\n            returned back from all other requests to ensure there is enough buffer.\r\n            \r\n            For further information see Rate Limiting Section of Getting Started of api documentation site."
          },
          "500": {
            "description": "An internal error has occured or the database is currently offline for\r\n            connections.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              }
            }
          }
        }
      },
      "delete": {
        "x-hideReplay": true,
        "operationId": "delete-sessions-byid",
        "tags": [
          "Sessions"
        ],
        "summary": "Deleting a Session",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Session Id",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "429": {
            "description": "Rate limiting quota exceeded\r\n            \r\n            Apply pause on further requests to the api using a wait method for the amount of seconds \r\n            presented in the Response Header Key 'Retry-After'.\r\n            \r\n            To prevent running into further instances of this rate limiting, use the Response Headers \r\n            returned back from all other requests to ensure there is enough buffer.\r\n            \r\n            For further information see Rate Limiting Section of Getting Started of api documentation site."
          },
          "500": {
            "description": "An internal error has occured or the database is currently offline for\r\n            connections.",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/sessions/{id}/sessionItems": {
      "post": {
        "x-hideReplay": true,
        "operationId": "post-sessions-sessionitems",
        "tags": [
          "Sessions"
        ],
        "summary": "Adding a Session Item to a Session",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Session Id",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "description": "creation params",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/Api.Models.Dto.SessionItemCreate2"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Api.Models.Dto.SessionItemCreate2"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Api.Models.Dto.SessionItemCreate2"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Api.Models.Dto.SessionItemCreate2"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.Dto.SessionItemMutationResponse"
                }
              }
            }
          },
          "429": {
            "description": "Rate limiting quota exceeded\r\n            \r\n            Apply pause on further requests to the api using a wait method for the amount of seconds \r\n            presented in the Response Header Key 'Retry-After'.\r\n            \r\n            To prevent running into further instances of this rate limiting, use the Response Headers \r\n            returned back from all other requests to ensure there is enough buffer.\r\n            \r\n            For further information see Rate Limiting Section of Getting Started of api documentation site."
          },
          "500": {
            "description": "An internal error has occured or the database is currently offline for\r\n            connections.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/sessions/{id}/sessionItems/{sessionItemId}/count": {
      "put": {
        "x-hideReplay": true,
        "operationId": "put-sessions-sessionitems-count",
        "tags": [
          "Sessions"
        ],
        "summary": "Updating values of a Session Item",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Session Id",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "sessionItemId",
            "in": "path",
            "description": "Session Item Id",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "description": "update params",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/Api.Models.Dto.SessionItemUpdate"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Api.Models.Dto.SessionItemUpdate"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Api.Models.Dto.SessionItemUpdate"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Api.Models.Dto.SessionItemUpdate"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.Dto.SessionItemMutationResponse"
                }
              }
            }
          },
          "429": {
            "description": "Rate limiting quota exceeded\r\n            \r\n            Apply pause on further requests to the api using a wait method for the amount of seconds \r\n            presented in the Response Header Key 'Retry-After'.\r\n            \r\n            To prevent running into further instances of this rate limiting, use the Response Headers \r\n            returned back from all other requests to ensure there is enough buffer.\r\n            \r\n            For further information see Rate Limiting Section of Getting Started of api documentation site."
          },
          "500": {
            "description": "An internal error has occured or the database is currently offline for\r\n            connections.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/stores": {
      "get": {
        "x-hideReplay": true,
        "operationId": "get-stores",
        "tags": [
          "Stores"
        ],
        "summary": "Gets Stores",
        "parameters": [
          {
            "name": "PageNumber",
            "in": "query",
            "description": "Page Number for the result set.\r\n\r\nThis is expected to be an integer value greater than 0. Defaults to 1 when not passed in.\r\n\r\nFor more information see the Getting Started Section for Pagination.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "PageSize",
            "in": "query",
            "description": "Page Size\r\n- Default page size: 100 \r\n- Max page size: 500\r\n\r\nThis is expected to be an integer value greater than 0. Defaults to 100 when not passed in.\r\n\r\nFor more information see the Getting Started Section for Pagination.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "Expand",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "Filter",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "OrderBy",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Api.Models.Dto.StoreGet"
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limiting quota exceeded\r\n            \r\n            Apply pause on further requests to the api using a wait method for the amount of seconds \r\n            presented in the Response Header Key 'Retry-After'.\r\n            \r\n            To prevent running into further instances of this rate limiting, use the Response Headers \r\n            returned back from all other requests to ensure there is enough buffer.\r\n            \r\n            For further information see Rate Limiting Section of Getting Started of api documentation site."
          },
          "500": {
            "description": "An internal error has occured or the database is currently offline for\r\n            connections.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/stores/{id}": {
      "get": {
        "x-hideReplay": true,
        "operationId": "get-stores-byid",
        "tags": [
          "Stores"
        ],
        "summary": "Gets Store by Id",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Store Id",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "PageNumber",
            "in": "query",
            "description": "Page Number for the result set.\r\n\r\nThis is expected to be an integer value greater than 0. Defaults to 1 when not passed in.\r\n\r\nFor more information see the Getting Started Section for Pagination.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "PageSize",
            "in": "query",
            "description": "Page Size\r\n- Default page size: 100 \r\n- Max page size: 500\r\n\r\nThis is expected to be an integer value greater than 0. Defaults to 100 when not passed in.\r\n\r\nFor more information see the Getting Started Section for Pagination.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "Expand",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "Filter",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "OrderBy",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.Dto.StoreGet"
                }
              }
            }
          },
          "429": {
            "description": "Rate limiting quota exceeded\r\n            \r\n            Apply pause on further requests to the api using a wait method for the amount of seconds \r\n            presented in the Response Header Key 'Retry-After'.\r\n            \r\n            To prevent running into further instances of this rate limiting, use the Response Headers \r\n            returned back from all other requests to ensure there is enough buffer.\r\n            \r\n            For further information see Rate Limiting Section of Getting Started of api documentation site."
          },
          "500": {
            "description": "An internal error has occured or the database is currently offline for\r\n            connections.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/stores/{id}/items": {
      "get": {
        "x-hideReplay": true,
        "operationId": "get-stores-items",
        "tags": [
          "Stores"
        ],
        "summary": "Gets Items for a Specific Store",
        "description": "<details id=\"GetstoreItems-ReqDesc-OneOfThreeEp\">\n<summary> Three Endpoints Retrieve Item Data </summary>\n\n{% table %}\n---\n- [GET /items](/rest/fetch/api/items/get-items)\n- Multiple items from any store unless filtered\n---\n- [GET /items/{itemId}](/rest/fetch/api/items/get-items-byid)\n- A specific item from any store\n---\n- [GET /stores/{storeId}/items](/rest/fetch/api/stores/get-stores-items)\n- Multiple items from a specific store unless filtered\n{% /table %}\n</details>\n\n\n<details id=\"GetstoreItems-ReqDesc-CaveatsReDel\">\n<summary> Caveats Regarding Deleted Items </summary>\n\n- Items marked as deleted are not returned in the response.\n- Yellow Dog keeps deleted items in an archive and allows them to be undeleted.\n</details>\n\n\n<br/>\n\n\n#### Parameters and Headers\nThis endpoint supports standard\n[paginaton query parameters and response headers](/rest/user-guide/04-headers-params/pagination).\nIn addition, it supports item specific use of the path and query parameters listed below.\n\n<details id=\"GetstoreItems-ReqDesc-PaginationExamples\">\n<summary> Using Pagination with 'lastUpdated' </summary>\n\n##### Paginate through all of this store's items\n\n`GET /stores/{storeId}/items?Expand=Stores&Expand=Vendors&orderBy=sku&pageNumber=1&pageSize=100`\n\nFor populating your initial datastore, it is best to make a call through all pages of the\nitems endpoint with the proper expansion query parameters.\nFrom this point forward, you should be able to use the following `lastUpdated`\nexample to refresh\nyour datastore with only the changes that have occured in the item configuration.\n\n##### Limit Subsequent Item Pulls with `lastUpdated`\n\n`GET /stores/{storeId}/items?Expand=Stores&Expand=Vendors&orderBy=sku&filter=lastUpdated>=20260401`\n\nThis request will return all the items that have a lastUpdated later than `2026-04-01`.\nIt is highly recommended that you use a request like this for updating your data store\nfor the latest item configurations.\nIt is recommended that the lastUpdated filter value be set as the last time the item refresh cycle began.\n</details>\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "A valid store `id` must appear in the path.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Filter",
            "in": "query",
            "description": "<details id=\"GetstoreItems-Query-Filter\">\n<summary> Options: active, lastUpdated, levelId, webAvailable </summary>\n\n{% table %}\n---\n- active\n- boolean\n- When `true`, the response only includes `active` items. When not specified, defaults to `false` to include all items.\n---\n- lastUpdated\n- [timestamp](/rest/user-guide/02-timestamps)\n- Limits response to items updated since the given timestamp.\n---\n- levelId\n- GUID/UUID\n- Limits response to items with the specified `level.id` property.\n---\n- webAvailable\n- boolean\n- When `true`, the response only includes items available for web sales. When not specified, defaults to `false` to include all items.\n{% /table %}\n\n</details>\n",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Expand",
            "in": "query",
            "description": "<details id=\"GetstoreItems-Query-Expand\">\n<summary> Options: stores, vendors, images, extended-item, dimensions, GTIN </summary>\n\nCombine a list of one or more `Expand` option flags by separating them with commas as follows:\n\n`?Expand=dimensions,vendors`\n\n{% table %}\n---\n- stores\n- Expand the `stores` array.\n---\n- vendors\n- Expand the `vendors` array.\n---\n- images\n- Expand the `images` array.\n---\n- extended-item\n- Expand multiple properties including shortDescription, isEvergreen, style, expirationDays, reference, attributes, etc.\n---\n- dimensions\n- Expand the `dimensions` array.\n---\n- GTIN\n- Expand the `epcGTIN` array.\n{% /table %}\n\n</details>\n",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "OrderBy",
            "in": "query",
            "description": "<details id=\"GetstoreItems-Query-OrderBy\">\n<summary> Options: sku, description, itemId </summary>\n\nSpecify one `OrderBy` option flags as follows:\n`?OrderBy=sku`\n\n{% table %}\n---\n- sku\n- Order items in the response by `sku`.\n---\n- description\n- Order items in the response by `description`.\n---\n- itemId\n- Order items in the response by `itemId`.\n{% /table %}\n\n</details>\n",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Api.Models.Dto.Item.ItemGetLegacy"
                  }
                }
              }
            }
          },
          "204": {
            "description": "No Content"
          },
          "429": {
            "description": "Rate limiting quota exceeded\r\n            \r\n            Apply pause on further requests to the api using a wait method for the amount of seconds \r\n            presented in the Response Header Key 'Retry-After'.\r\n            \r\n            To prevent running into further instances of this rate limiting, use the Response Headers \r\n            returned back from all other requests to ensure there is enough buffer.\r\n            \r\n            For further information see Rate Limiting Section of Getting Started of api documentation site."
          },
          "500": {
            "description": "An internal error has occured or the database is currently offline for\r\n            connections.",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/stores/{id}/interfaces/ThirdPartyCodes": {
      "get": {
        "x-hideReplay": true,
        "operationId": "get-stores-interfaces",
        "tags": [
          "Stores"
        ],
        "summary": "Gets a Store's ThirdPartyCodes",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Store Id",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Filter",
            "in": "query",
            "description": "### Filter Options:\r\n- code\r\n- type",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "OrderBy",
            "in": "query",
            "description": "### Order By Options:\r\n- code\r\n- type",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "PageNumber",
            "in": "query",
            "description": "Page Number for the result set.\r\n\r\nThis is expected to be an integer value greater than 0. Defaults to 1 when not passed in.\r\n\r\nFor more information see the Getting Started Section for Pagination.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "PageSize",
            "in": "query",
            "description": "Page Size\r\n- Default page size: 100 \r\n- Max page size: 500\r\n\r\nThis is expected to be an integer value greater than 0. Defaults to 100 when not passed in.\r\n\r\nFor more information see the Getting Started Section for Pagination.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.Dto.TPCodeGet"
                }
              }
            }
          },
          "429": {
            "description": "Rate limiting quota exceeded\r\n            \r\n            Apply pause on further requests to the api using a wait method for the amount of seconds \r\n            presented in the Response Header Key 'Retry-After'.\r\n            \r\n            To prevent running into further instances of this rate limiting, use the Response Headers \r\n            returned back from all other requests to ensure there is enough buffer.\r\n            \r\n            For further information see Rate Limiting Section of Getting Started of api documentation site."
          },
          "500": {
            "description": "An internal error has occured or the database is currently offline for\r\n            connections.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/third-party/{syncId}/items": {
      "post": {
        "x-hideReplay": true,
        "operationId": "post-third-party-items",
        "tags": [
          "ThirdParty"
        ],
        "summary": "Upserts Third Party Items (TPItems) in bulk",
        "description": "This endpoint allows for bulk upserting of TPItems.\r\n            \r\n### Creating a TPItems\r\nThe fields that are required to create a TPLocation are `type` and `code`\r\n\r\n### Updating a TPItems\r\ninclude the query parameter, `upsert=true`\r\n            \r\nWhen a validation error occurs, the entire request will fail.\r\n            \r\n### Additional Notes\r\nProcessing the item changes can take up to 10 minutes to process due to the amount of background processing that needs to be done.",
        "parameters": [
          {
            "name": "syncId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "upsert",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/Dingo.GraphQL.ThirdPartyItemCreateBulk"
                }
              }
            },
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/Dingo.GraphQL.ThirdPartyItemCreateBulk"
                }
              }
            },
            "text/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/Dingo.GraphQL.ThirdPartyItemCreateBulk"
                }
              }
            },
            "application/*+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/Dingo.GraphQL.ThirdPartyItemCreateBulk"
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Dingo.GraphQL.ICreateTPItems_CreateThirdPartyItems"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Dingo.GraphQL.ICreateTPItems_CreateThirdPartyItems"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Dingo.GraphQL.ICreateTPItems_CreateThirdPartyItems"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/StrawberryShake.IClientError"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/StrawberryShake.IClientError"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/StrawberryShake.IClientError"
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limiting quota exceeded\r\n            \r\n            Apply pause on further requests to the api using a wait method for the amount of seconds \r\n            presented in the Response Header Key 'Retry-After'.\r\n            \r\n            To prevent running into further instances of this rate limiting, use the Response Headers \r\n            returned back from all other requests to ensure there is enough buffer.\r\n            \r\n            For further information see Rate Limiting Section of Getting Started of api documentation site."
          },
          "500": {
            "description": "An internal error has occured or the database is currently offline for\r\n            connections.",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/third-party/{syncId}/locations": {
      "post": {
        "x-hideReplay": true,
        "operationId": "post-third-party-locations",
        "tags": [
          "ThirdParty"
        ],
        "summary": "Upserts Third Party Locations (TPLocations) in bulk",
        "description": "This endpoint allows for bulk upserting of TPLocations.\r\n            \r\n### Creating a TPLocations\r\nThe fields that are required to create a TPLocation are `type` and `code`\r\n            \r\n### Updating a TPLocations\r\ninclude the query parameter, `upsert=true`\r\n            \r\nWhen a validation error occurs, the entire request will fail.",
        "parameters": [
          {
            "name": "syncId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "upsert",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/Dingo.GraphQL.ThirdPartyLocationCreate"
                }
              }
            },
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/Dingo.GraphQL.ThirdPartyLocationCreate"
                }
              }
            },
            "text/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/Dingo.GraphQL.ThirdPartyLocationCreate"
                }
              }
            },
            "application/*+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/Dingo.GraphQL.ThirdPartyLocationCreate"
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Dingo.GraphQL.ICreateThirdPartyLocations_CreateThirdPartyLocations"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Dingo.GraphQL.ICreateThirdPartyLocations_CreateThirdPartyLocations"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Dingo.GraphQL.ICreateThirdPartyLocations_CreateThirdPartyLocations"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/StrawberryShake.IClientError"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/StrawberryShake.IClientError"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/StrawberryShake.IClientError"
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limiting quota exceeded\r\n            \r\n            Apply pause on further requests to the api using a wait method for the amount of seconds \r\n            presented in the Response Header Key 'Retry-After'.\r\n            \r\n            To prevent running into further instances of this rate limiting, use the Response Headers \r\n            returned back from all other requests to ensure there is enough buffer.\r\n            \r\n            For further information see Rate Limiting Section of Getting Started of api documentation site."
          },
          "500": {
            "description": "An internal error has occured or the database is currently offline for\r\n            connections.",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/interfaces/thirdPartyCodes": {
      "get": {
        "x-hideReplay": true,
        "operationId": "op-interfaces-thirdpartycodes",
        "tags": [
          "ThirdPartyCodes"
        ],
        "summary": "Gets all Third Party Codes",
        "parameters": [
          {
            "name": "Filter",
            "in": "query",
            "description": "### Filter Options:\r\n- code\r\n- type",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "OrderBy",
            "in": "query",
            "description": "### Order By Options:\r\n- code\r\n- type",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "PageNumber",
            "in": "query",
            "description": "Page Number for the result set.\r\n\r\nThis is expected to be an integer value greater than 0. Defaults to 1 when not passed in.\r\n\r\nFor more information see the Getting Started Section for Pagination.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "PageSize",
            "in": "query",
            "description": "Page Size\r\n- Default page size: 100 \r\n- Max page size: 500\r\n\r\nThis is expected to be an integer value greater than 0. Defaults to 100 when not passed in.\r\n\r\nFor more information see the Getting Started Section for Pagination.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Api.Models.Dto.TPCodeGet"
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limiting quota exceeded\r\n            \r\n            Apply pause on further requests to the api using a wait method for the amount of seconds \r\n            presented in the Response Header Key 'Retry-After'.\r\n            \r\n            To prevent running into further instances of this rate limiting, use the Response Headers \r\n            returned back from all other requests to ensure there is enough buffer.\r\n            \r\n            For further information see Rate Limiting Section of Getting Started of api documentation site."
          },
          "500": {
            "description": "An internal error has occured or the database is currently offline for\r\n            connections.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              }
            }
          }
        }
      },
      "post": {
        "x-hideReplay": true,
        "operationId": "post-interfaces-thirdpartycodes",
        "tags": [
          "ThirdPartyCodes"
        ],
        "summary": "Creates Third Party Codes",
        "description": "##### About Third-Party Interface Codes\n\nThird-Party Interface Codes serve multiple use cases, as described below.\nThe primary use case is to define POS specific annotations known as Third Party Codes / Interfaces that can be added to item data.\n \n<details id=\"tpcodes-and-enums\">\n<summary> Third-party interface codes and enumerated types explained </summary>\n\nUse the `POST /interfaces/thirdpartycodes` endpoint to define codes specific to your system to serve as \nenumerated values that can be assigned in Yellow Dog. Each one is associated with a\nspecified enumerated type. The developer defines the following properties:\n- The interface code will belong to an enumerated type specified by the \"type\" property.\n- A \"code\" property defines the enumerated value that this interface code will represent.\n- A \"description\" property allows a human-friendly name to be attached to each interface code in Yellow Dog's UI.\n- The interface code is scoped to a store specified by the \"store.id\" property.\n\nIf a new interface code is defined with a \"type\" name that has not yet been used in\nthe scope of the specified store, a new enumerated type will be created.\nInterface codes are simply enumerated values that get grouped into enumerated types\nwhere the \"type\" and \"store.id\" properties match.\n</details>\n\n\n<details id=\"tpcode-item-annotation\">\n<summary> Annotating items with third-party interface codes </summary>\n\nA software developer integrating a POS or other system with a Yellow Dog inventory\ndatabase may find it necessary to annotate inventory items with their own\nthird-party interface codes. For example, they may want to be able to associate\nparticular items with specific menus on a POS terminal or tax categories.\nThey will also need to a way to know which items are relevant to the integration and\nwhich items should be ignored.\n\n\nThe use of third-party interface codes to perform this annotation is a multi-step process:\n- First, the developer designs enumerated types name-spaced to their integration for the annotations they care about.\n- Second, they use the `POST /interfaces/thirdpartycodes` endpoint to define corresponding \"type\" and \"code\" properties.\n- Third, instructions are provided to customers regarding when and how to annotate items with the specific third-party codes.\n- Fourth, customers or support staff use drop down menus in the \"Interfaces\" tab associated with groups of items in `YDInv.exe` to apply one annotation per type.\n\n\nNote that name-spacing need only be applied to the \"type\" property.\nIf the name of the integrated product is \"ACME\" and the purpose of the enumerated type\nis a tax category, an appropriately name-spaced \"type\" property would be\n\"ACME_TaxCategory\" with an underscore character separating the name-space from the\npurpose name.\n\nThe instructions for annotating items will usually not expect items to be individually\nannotated with third-party interface codes. The codes will most often be applied to a\nlevel category, such as alcoholic beverages, so that all items belonging to that category\nwill inherit a specified interface code. Default codes can also be specified for all items\nin a store and be overridden by individually assigning a code to an item.\n</details>\n\n\n<details id=\"tpcode-negated-annotation\">\n<summary> Defining a none-of-the-above value </summary>\n\nWhen designing a list of enumerated values for a third-party code type that will be\nused to annotate items, it is important to ask whether all possible cases have been\ncovered. It is often the case that some kind of none-of-the-above value needs to be\nincluded to support items where the category itself is not relevant. Consider\n___Example A___, which is used to specify a tax category. In addition to county and\nstate tax categories, an untaxed category is defined as a catch-all for items where\ntaxation is not relevant.\n\nIn YDInv.exe, there is an inherent option to leave a third-party code type as \"not set\",\nmeaning that none of the available values is chosen for that enumerated type. This\ncannot be relied upon to serve as a none-of-the-above value because it does not provide\na way to override a default setting inherited from a level category or store. In order\nto support a none-of-the-above selection, there has to be an explicit value that\nrepresents it. This is true even if it is interpreted as having the same effect as\nleaving the third-party code type \"not set\".\n</details>\n\n\n<details id=\"tpcode-item-map\">\n<summary> Populating items into POS item map with the special \"ItemNumber\" type </summary>\n\nFor sales-only integrations that are not pulling item data from Yellow Dog's API, Yellow Dog \npopulates sold items that have an ItemNumber in the sales data into the POS Item Map so that \nthe client can map those sold items to recipes. This is often used by F&B sites, or in cases \nwhere the integration doesn't provide SKU in the sales data for direct item matching.\n\nIf the POS system integrating with Yellow Dog wants to allow the client to map unsold items \nin the POS Item Map as well, they can post a special third-party interface code type called \"ItemNumber\". \nThis feature is helpful for larger sites with many stores where all items would need to be sold in \nall stores in order to map sales via sold items. Posting ItemNumbers allows the client to map all \nPOS items to recipes in Yellow Dog stores even if they haven't been sold there yet. That means that\nthose POS items will match to the mapped Yellow Dog recipes automatically once they have been sold.\n\nThe ItemNumber third party code type serves as an enumerated type whose values are \nPOS specific item numbers to be populated into the `YDInv.exe` POS item map, which is \nscoped to a specific store.\nWhen using the `POST /interfaces/thirdpartycodes` endpoint to add POS items to an\nitem map, the usual interface code properties are specified and have the following\neffects:\n- \"type\" -- must be \"ItemNumber\".\n- \"code\" -- specifies a number that the POS uses to uniquely identify the item on its side\n- \"description\" -- will become the description field for the item\n- \"store.id\" -- applies to the POS item map for the specified store\n</details>\n\n\n<details id=\"tpcode-store-wild-card\">\n<summary> Always define the store.id property </summary>\n\nThough Yellow Dog's API will not prevent you from posting third party codes without a store.id, \nit is important to always include a valid store.id as part of your third party codes.\nThis will prevent confusion for the client regarding which store(s) they need to assign the interface codes on\nand whether certain codes are only available to specific stores or not. This is especially important for larger\nsites that have many stores in a single Yellow Dog database, and may have integrations with multiple POS systems. \n</details>\n\n\n<br/>\n\n\n##### Examples\n\nFor the examples that follow, select the corresponding sample payload from the pull-down\nmenu in the request pane.\n\n\n<details id=\"ex-tpcode-tax-category\">\n<summary> Example A: Defining tax categories </summary>\n\n___Example A___ defines a new enumerated type called \"ACME_TaxCategory\".\nThe \"ACME_\" prefix applies a name-space to associate this enumerated type with the POS\nintegration that defines it. Three enumerated values are added to this enumerated type\nto represent county, state, and untaxed tax categories.\nNote that each of the third-party interface codes created\nto represent these enumerated values are scoped to the same store.\nIt will be the only store that can annotate level data or items with this enumerated type.\nIt may also be the only store that this ACME POS is configured to use.\n</details>\n\n\n<details id=\"ex-tpcode-modifier\">\n<summary> Example B: Defining a modifier flag </summary>\n\n___Example B___ defines a new enumerated type called \"ACME_ModifierFlag\". As in\n___Example A___, the name-space prefix and descriptive name are separated by an\nunderscore character. Since this is type is a flag, it defines \"true\" and \"false\"\nenumerated values in the \"code\" properties. In this case, \"true\" and \"false\" are\njust name strings with no special function other that their descriptive qualities.\nAlternatively, \"enabled\" and \"disabled\" would also be reasonable values for an\nenumerated type that is serving as a flag.\n\nFor reasons described above in the section entitled \"Defining a none-of-the-above value\",\nit is necessary for any boolean flag type to explicitly define values for both the on and\noff state such that the off state has the same effect as leaving the value \"unset\".\n</details>\n\n\n<details id=\"ex-tpcode-item-map\">\n<summary> Example C: Adding items to the POS item map </summary>\n\nIn ___Example C___, there is no name-space prefix because the special \"ItemNumber\" type\nname is being used to add items to the POS item map of the specified store.\nThis is the only time that a developer\nshould specify an interface code type without a name-space prefix.\n\nNote that the section entitled \"Defining a none-of-the-above value\" does not apply to \nthe special \"ItemNumber\" type.\n</details>\n\n\n<br/>\n",
        "parameters": [
          {
            "name": "suppressOutput",
            "in": "query",
            "schema": {
              "type": "boolean",
              "default": true
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/Api.Models.Dto.TPCodeCreate"
                }
              },
              "examples": {
                "ex-a": {
                  "summary": "Example A: Defining tax categories",
                  "value": [
                    {
                      "type": "ACME_TaxCategory",
                      "code": "county",
                      "description": "sales tax collected by county",
                      "store": {
                        "id": "6a5386e3-f6f3-11e3-8ff2-000c29d58da6"
                      }
                    },
                    {
                      "type": "ACME_TaxCategory",
                      "code": "state",
                      "description": "sales tax collected by state",
                      "store": {
                        "id": "6a5386e3-f6f3-11e3-8ff2-000c29d58da6"
                      }
                    },
                    {
                      "type": "ACME_TaxCategory",
                      "code": "untaxed",
                      "description": "no applicable tax",
                      "store": {
                        "id": "6a5386e3-f6f3-11e3-8ff2-000c29d58da6"
                      }
                    }
                  ]
                },
                "ex-b": {
                  "summary": "Example B: Defining a modifier flag",
                  "value": [
                    {
                      "type": "ACME_ModifierFlag",
                      "code": "true",
                      "description": "Item is a modifier",
                      "store": {
                        "id": "6a5386e3-f6f3-11e3-8ff2-000c29d58da6"
                      }
                    },
                    {
                      "type": "ACME_ModifierFlag",
                      "code": "false",
                      "description": "Item is not a modifier",
                      "store": {
                        "id": "6a5386e3-f6f3-11e3-8ff2-000c29d58da6"
                      }
                    }
                  ]
                },
                "ex-c": {
                  "summary": "Example C: Adding to a POS item map",
                  "value": [
                    {
                      "type": "ItemNumber",
                      "code": "454501",
                      "description": "Biscuits and Gravy",
                      "store": {
                        "id": "6a5386e3-f6f3-11e3-8ff2-000c29d58da6"
                      }
                    },
                    {
                      "type": "ItemNumber",
                      "code": "454502",
                      "description": "50th Anniversary Souvenir Beverage Coaster",
                      "store": {
                        "id": "6a5386e3-f6f3-11e3-8ff2-000c29d58da6"
                      }
                    }
                  ]
                }
              }
            },
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/Api.Models.Dto.TPCodeCreate"
                }
              },
              "examples": {
                "ex-a": {
                  "summary": "Example A: Defining tax categories",
                  "value": [
                    {
                      "type": "ACME_TaxCategory",
                      "code": "county",
                      "description": "sales tax collected by county",
                      "store": {
                        "id": "6a5386e3-f6f3-11e3-8ff2-000c29d58da6"
                      }
                    },
                    {
                      "type": "ACME_TaxCategory",
                      "code": "state",
                      "description": "sales tax collected by state",
                      "store": {
                        "id": "6a5386e3-f6f3-11e3-8ff2-000c29d58da6"
                      }
                    },
                    {
                      "type": "ACME_TaxCategory",
                      "code": "untaxed",
                      "description": "no applicable tax",
                      "store": {
                        "id": "6a5386e3-f6f3-11e3-8ff2-000c29d58da6"
                      }
                    }
                  ]
                },
                "ex-b": {
                  "summary": "Example B: Defining a modifier flag",
                  "value": [
                    {
                      "type": "ACME_ModifierFlag",
                      "code": "true",
                      "description": "Item is a modifier",
                      "store": {
                        "id": "6a5386e3-f6f3-11e3-8ff2-000c29d58da6"
                      }
                    },
                    {
                      "type": "ACME_ModifierFlag",
                      "code": "false",
                      "description": "Item is not a modifier",
                      "store": {
                        "id": "6a5386e3-f6f3-11e3-8ff2-000c29d58da6"
                      }
                    }
                  ]
                },
                "ex-c": {
                  "summary": "Example C: Adding to a POS item map",
                  "value": [
                    {
                      "type": "ItemNumber",
                      "code": "454501",
                      "description": "Biscuits and Gravy",
                      "store": {
                        "id": "6a5386e3-f6f3-11e3-8ff2-000c29d58da6"
                      }
                    },
                    {
                      "type": "ItemNumber",
                      "code": "454502",
                      "description": "50th Anniversary Souvenir Beverage Coaster",
                      "store": {
                        "id": "6a5386e3-f6f3-11e3-8ff2-000c29d58da6"
                      }
                    }
                  ]
                }
              }
            },
            "text/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/Api.Models.Dto.TPCodeCreate"
                }
              },
              "examples": {
                "ex-a": {
                  "summary": "Example A: Defining tax categories",
                  "value": "[\n  {\n    \"type\": \"ACME_TaxCategory\",\n    \"code\": \"county\",\n    \"description\": \"sales tax collected by county\",\n    \"store\": {\n      \"id\": \"6a5386e3-f6f3-11e3-8ff2-000c29d58da6\"\n    },\n  },{\n    \"type\": \"ACME_TaxCategory\",\n    \"code\": \"state\",\n    \"description\": \"sales tax collected by state\",\n    \"store\": {\n      \"id\": \"6a5386e3-f6f3-11e3-8ff2-000c29d58da6\"\n    },\n  },{\n    \"type\": \"ACME_TaxCategory\",\n    \"code\": \"untaxed\",\n    \"description\": \"no applicable tax\",\n    \"store\": {\n      \"id\": \"6a5386e3-f6f3-11e3-8ff2-000c29d58da6\"\n    },\n  }\n]"
                },
                "ex-b": {
                  "summary": "Example B: Defining a modifier flag",
                  "value": "[\n  {\n    \"type\": \"ACME_ModifierFlag\",\n    \"code\": \"true\",\n    \"description\": \"Item is a modifier\",\n    \"store\": {\n      \"id\": \"6a5386e3-f6f3-11e3-8ff2-000c29d58da6\"\n    },\n  },{\n    \"type\": \"ACME_ModifierFlag\",\n    \"code\": \"false\",\n    \"description\": \"Item is not a modifier\",\n    \"store\": {\n      \"id\": \"6a5386e3-f6f3-11e3-8ff2-000c29d58da6\"\n    },\n  }\n]"
                },
                "ex-c": {
                  "summary": "Example C: Adding to a POS item map",
                  "value": "[\n  {\n    \"type\": \"ItemNumber\",\n    \"code\": \"454501\",\n    \"description\": \"Biscuits and Gravy\",\n    \"store\": {\n      \"id\": \"6a5386e3-f6f3-11e3-8ff2-000c29d58da6\"\n    },\n  },{\n    \"type\": \"ItemNumber\",\n    \"code\": \"454502\",\n    \"description\": \"50th Anniversary Souvenir Beverage Coaster\",\n    \"store\": {\n      \"id\": \"6a5386e3-f6f3-11e3-8ff2-000c29d58da6\"\n    },\n  }\n]"
                }
              }
            },
            "application/*+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/Api.Models.Dto.TPCodeCreate"
                }
              },
              "examples": {
                "ex-a": {
                  "summary": "Example A: Defining tax categories",
                  "value": [
                    {
                      "type": "ACME_TaxCategory",
                      "code": "county",
                      "description": "sales tax collected by county",
                      "store": {
                        "id": "6a5386e3-f6f3-11e3-8ff2-000c29d58da6"
                      }
                    },
                    {
                      "type": "ACME_TaxCategory",
                      "code": "state",
                      "description": "sales tax collected by state",
                      "store": {
                        "id": "6a5386e3-f6f3-11e3-8ff2-000c29d58da6"
                      }
                    },
                    {
                      "type": "ACME_TaxCategory",
                      "code": "untaxed",
                      "description": "no applicable tax",
                      "store": {
                        "id": "6a5386e3-f6f3-11e3-8ff2-000c29d58da6"
                      }
                    }
                  ]
                },
                "ex-b": {
                  "summary": "Example B: Defining a modifier flag",
                  "value": [
                    {
                      "type": "ACME_ModifierFlag",
                      "code": "true",
                      "description": "Item is a modifier",
                      "store": {
                        "id": "6a5386e3-f6f3-11e3-8ff2-000c29d58da6"
                      }
                    },
                    {
                      "type": "ACME_ModifierFlag",
                      "code": "false",
                      "description": "Item is not a modifier",
                      "store": {
                        "id": "6a5386e3-f6f3-11e3-8ff2-000c29d58da6"
                      }
                    }
                  ]
                },
                "ex-c": {
                  "summary": "Example C: Adding to a POS item map",
                  "value": [
                    {
                      "type": "ItemNumber",
                      "code": "454501",
                      "description": "Biscuits and Gravy",
                      "store": {
                        "id": "6a5386e3-f6f3-11e3-8ff2-000c29d58da6"
                      }
                    },
                    {
                      "type": "ItemNumber",
                      "code": "454502",
                      "description": "50th Anniversary Souvenir Beverage Coaster",
                      "store": {
                        "id": "6a5386e3-f6f3-11e3-8ff2-000c29d58da6"
                      }
                    }
                  ]
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Received Request with no values in the body."
          },
          "201": {
            "description": "Returns the newly created ThirdPartyCodes, if suppressOutput parameter is set to false.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Api.Models.Dto.TPCode"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Error has occured.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Rate limiting quota exceeded\r\n            \r\n            Apply pause on further requests to the api using a wait method for the amount of seconds \r\n            presented in the Response Header Key 'Retry-After'.\r\n            \r\n            To prevent running into further instances of this rate limiting, use the Response Headers \r\n            returned back from all other requests to ensure there is enough buffer.\r\n            \r\n            For further information see Rate Limiting Section of Getting Started of api documentation site."
          },
          "500": {
            "description": "An internal error has occured or the database is currently offline for\r\n            connections.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              }
            }
          }
        }
      },
      "put": {
        "x-hideReplay": true,
        "operationId": "put-interfaces-thirdpartycodes",
        "tags": [
          "ThirdPartyCodes"
        ],
        "summary": "Updates Third Party Codes",
        "parameters": [
          {
            "name": "suppressOutput",
            "in": "query",
            "schema": {
              "type": "boolean",
              "default": true
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/Api.Models.Dto.TPCodeUpdate"
                }
              }
            },
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/Api.Models.Dto.TPCodeUpdate"
                }
              }
            },
            "text/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/Api.Models.Dto.TPCodeUpdate"
                }
              }
            },
            "application/*+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/Api.Models.Dto.TPCodeUpdate"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Returns the updated ThirdPartyCodes, if suppressOutput parameter is set to false.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Api.Models.Dto.TPCode"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Error has occured.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Content",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ValidationResultModel"
                }
              }
            }
          },
          "429": {
            "description": "Rate limiting quota exceeded\r\n            \r\n            Apply pause on further requests to the api using a wait method for the amount of seconds \r\n            presented in the Response Header Key 'Retry-After'.\r\n            \r\n            To prevent running into further instances of this rate limiting, use the Response Headers \r\n            returned back from all other requests to ensure there is enough buffer.\r\n            \r\n            For further information see Rate Limiting Section of Getting Started of api documentation site."
          },
          "500": {
            "description": "An internal error has occured or the database is currently offline for\r\n            connections.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              }
            }
          }
        }
      },
      "delete": {
        "x-hideReplay": true,
        "operationId": "delete-interfaces-thirdpartycodes",
        "tags": [
          "ThirdPartyCodes"
        ],
        "summary": "Bulk delete Third Party Codes",
        "parameters": [
          {
            "name": "suppressOutput",
            "in": "query",
            "schema": {
              "type": "boolean",
              "default": true
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "string",
                  "format": "uuid"
                }
              }
            },
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "string",
                  "format": "uuid"
                }
              }
            },
            "text/json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "string",
                  "format": "uuid"
                }
              }
            },
            "application/*+json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "string",
                  "format": "uuid"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "429": {
            "description": "Rate limiting quota exceeded\r\n            \r\n            Apply pause on further requests to the api using a wait method for the amount of seconds \r\n            presented in the Response Header Key 'Retry-After'.\r\n            \r\n            To prevent running into further instances of this rate limiting, use the Response Headers \r\n            returned back from all other requests to ensure there is enough buffer.\r\n            \r\n            For further information see Rate Limiting Section of Getting Started of api documentation site."
          },
          "500": {
            "description": "An internal error has occured or the database is currently offline for\r\n            connections.",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/interfaces/thirdPartyCodes/{id}": {
      "get": {
        "x-hideReplay": true,
        "operationId": "get-interfaces-thirdpartycodes-byid",
        "tags": [
          "ThirdPartyCodes"
        ],
        "summary": "Gets Third Party Code by Id",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.Dto.TPCodeGet"
                }
              }
            }
          },
          "429": {
            "description": "Rate limiting quota exceeded\r\n            \r\n            Apply pause on further requests to the api using a wait method for the amount of seconds \r\n            presented in the Response Header Key 'Retry-After'.\r\n            \r\n            To prevent running into further instances of this rate limiting, use the Response Headers \r\n            returned back from all other requests to ensure there is enough buffer.\r\n            \r\n            For further information see Rate Limiting Section of Getting Started of api documentation site."
          },
          "500": {
            "description": "An internal error has occured or the database is currently offline for\r\n            connections.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              }
            }
          }
        }
      },
      "delete": {
        "x-hideReplay": true,
        "operationId": "delete-interfaces-thirdpartycodes-byid",
        "tags": [
          "ThirdPartyCodes"
        ],
        "summary": "Deleting a Third Party Code",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Third Party Code Id",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "429": {
            "description": "Rate limiting quota exceeded\r\n            \r\n            Apply pause on further requests to the api using a wait method for the amount of seconds \r\n            presented in the Response Header Key 'Retry-After'.\r\n            \r\n            To prevent running into further instances of this rate limiting, use the Response Headers \r\n            returned back from all other requests to ensure there is enough buffer.\r\n            \r\n            For further information see Rate Limiting Section of Getting Started of api documentation site."
          },
          "500": {
            "description": "An internal error has occured or the database is currently offline for\r\n            connections.",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/thirdPartySessions": {
      "get": {
        "x-hideReplay": true,
        "operationId": "get-thirdpartysessions",
        "tags": [
          "ThirdPartySessions"
        ],
        "summary": "Gets all Third Party Sessions",
        "parameters": [
          {
            "name": "Filter",
            "in": "query",
            "description": "### Filter Options:\r\n- code\r\n- dateTime",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "OrderBy",
            "in": "query",
            "description": "### Order By Options:\r\n- code\r\n- dateTime",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "PageNumber",
            "in": "query",
            "description": "Page Number for the result set.\r\n\r\nThis is expected to be an integer value greater than 0. Defaults to 1 when not passed in.\r\n\r\nFor more information see the Getting Started Section for Pagination.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "PageSize",
            "in": "query",
            "description": "Page Size\r\n- Default page size: 100 \r\n- Max page size: 500\r\n\r\nThis is expected to be an integer value greater than 0. Defaults to 100 when not passed in.\r\n\r\nFor more information see the Getting Started Section for Pagination.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Api.Models.Dto.TPSessionGet"
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limiting quota exceeded\r\n            \r\n            Apply pause on further requests to the api using a wait method for the amount of seconds \r\n            presented in the Response Header Key 'Retry-After'.\r\n            \r\n            To prevent running into further instances of this rate limiting, use the Response Headers \r\n            returned back from all other requests to ensure there is enough buffer.\r\n            \r\n            For further information see Rate Limiting Section of Getting Started of api documentation site."
          },
          "500": {
            "description": "An internal error has occured or the database is currently offline for\r\n            connections.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              }
            }
          }
        }
      },
      "post": {
        "x-hideReplay": true,
        "operationId": "post-thirdpartysessions",
        "tags": [
          "ThirdPartySessions"
        ],
        "summary": "Creates Third Party Sessions",
        "parameters": [
          {
            "name": "suppressOutput",
            "in": "query",
            "schema": {
              "type": "boolean",
              "default": true
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/Api.Models.Dto.TPSession"
                }
              }
            },
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/Api.Models.Dto.TPSession"
                }
              }
            },
            "text/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/Api.Models.Dto.TPSession"
                }
              }
            },
            "application/*+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/Api.Models.Dto.TPSession"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Api.Models.Dto.TPSessionGet"
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limiting quota exceeded\r\n            \r\n            Apply pause on further requests to the api using a wait method for the amount of seconds \r\n            presented in the Response Header Key 'Retry-After'.\r\n            \r\n            To prevent running into further instances of this rate limiting, use the Response Headers \r\n            returned back from all other requests to ensure there is enough buffer.\r\n            \r\n            For further information see Rate Limiting Section of Getting Started of api documentation site."
          },
          "500": {
            "description": "An internal error has occured or the database is currently offline for\r\n            connections.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/thirdPartySessions/{id}": {
      "get": {
        "x-hideReplay": true,
        "operationId": "get-thirdpartysessions-byid",
        "tags": [
          "ThirdPartySessions"
        ],
        "summary": "Gets Third Party Session by Id",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.Dto.TPSessionGet"
                }
              }
            }
          },
          "429": {
            "description": "Rate limiting quota exceeded\r\n            \r\n            Apply pause on further requests to the api using a wait method for the amount of seconds \r\n            presented in the Response Header Key 'Retry-After'.\r\n            \r\n            To prevent running into further instances of this rate limiting, use the Response Headers \r\n            returned back from all other requests to ensure there is enough buffer.\r\n            \r\n            For further information see Rate Limiting Section of Getting Started of api documentation site."
          },
          "500": {
            "description": "An internal error has occured or the database is currently offline for\r\n            connections.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/transactions": {
      "get": {
        "x-hideReplay": true,
        "operationId": "get-transactions",
        "tags": [
          "Transactions"
        ],
        "summary": "Getting all Transactions",
        "description": "This endpoint allows for pulling of raw transaction information that is stored in the Yellow \r\nDog Database. As this data is considered to be raw and not processed there is not a way to\r\ndetermine directly with certainty what items or recipes had inventory adjustments from this \r\nendpoint. Due to the various Point of Sale integrations that may be connected with the \r\ndatabase instance, there is not a guarentee that all transactions will match using the \r\ncriteria represented in the POST /transactions Endpoint documentation.",
        "parameters": [
          {
            "name": "Filter",
            "in": "query",
            "description": "Only one filter parameter field is allowed for this endpoint.\r\n- checkClosed (DateTime in v2, DateTimeOffset in v3: See Differences between v2 and v3 in \r\nGetting Started Section for more information)\r\n\r\n \r\nIt is recommended when pulling transactions to always supply a date range that has already \r\nbeen settle in the Point of Sale Systems that are connected to the instance of Yellow Dog. \r\nSince the CheckClosed Field of the system is a datetime based value supplying a filter as like soe \r\n`filter=checkClosed>=2020-05-29`\r\n\r\n### Transactions closed between two dates\r\n\r\nYou can use the filter options for checkClosed to return a specific time range of when they \r\nwere indicated to have been closed to the YellowDog Inventory System.\r\n\r\n`/transactions?filter=checkClosed>=2020-05-29,checkClosed<=2020-06-01`\r\n\r\n`/transactions?filter=checkClosed>=2020-05-29 00:00:00,checkClosed<=2020-06-01 00:00:00`\r\n\r\n`/transactions?filter=checkClosed>=2020-05-29T00:00:00-04:00,checkClosed<=2020-06-01T00:00:00-04:00`\r\n\r\nAll of these request uri stubs will return the same list of all transactions that reflect a\r\ncheck closed value between `2020-05-29T00:00:00-04:00` and `2020-06-01T00:00:00-04:00`",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "PageNumber",
            "in": "query",
            "description": "Page Number for the result set.\r\n\r\nThis is expected to be an integer value greater than 0. Defaults to 1 when not passed in.\r\n\r\nFor more information see the Getting Started Section for Pagination.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "PageSize",
            "in": "query",
            "description": "Page Size\r\n- Default page size: 100 \r\n- Max page size: 500\r\n\r\nThis is expected to be an integer value greater than 0. Defaults to 100 when not passed in.\r\n\r\nFor more information see the Getting Started Section for Pagination.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Api.Models.Dto.Transaction"
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limiting quota exceeded\r\n            \r\n            Apply pause on further requests to the api using a wait method for the amount of seconds \r\n            presented in the Response Header Key 'Retry-After'.\r\n            \r\n            To prevent running into further instances of this rate limiting, use the Response Headers \r\n            returned back from all other requests to ensure there is enough buffer.\r\n            \r\n            For further information see Rate Limiting Section of Getting Started of api documentation site."
          },
          "500": {
            "description": "An internal error has occured or the database is currently offline for\r\n            connections.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              }
            }
          }
        }
      },
      "post": {
        "x-hideReplay": true,
        "operationId": "post-transactions",
        "tags": [
          "Transactions"
        ],
        "summary": "Creates or Updates Transactions",
        "description": "##### Matching and Processing\n\nThis endpoint is all about submitting sales transactions to Yellow Dog.\n\n<details id=\"transaction-number\">\n<summary> Identifying sales transactions. </summary>\n\nThree properties in the request payload identify the transaction and its parts.\n  - transactionNumber\n  - thirdPartyId\n  - thirdPartyLineId\n  \nSee [Submit Sales via API](/rest/user-guide/05-pos-integrations/submit-sales)\nfor guidance in using these properties correctly.\n</details>\n\n\n<details id=\"matching-processing\">\n<summary> Match transaction lines to Yellow Dog Items via id,\nsku, or itemNumber. </summary>\n\nThis endpoint matches transaction lines to Yellow Dog Items by either the __id__,\n__sku__, or __itemNumber__ field.\n\n- line[].item.id\n  - This will match a transaction line immediately to the Yellow Dog Item with the same id.\n  - This is the preferred method for matching Transaction Lines to the appropriate Yellow Dog Item\n    but would only be used by integrations that are also pulling item data from Yellow Dog's API.\n- line[].sku\n  - This will match a transaction line to the Yellow Dog Item with the same SKU.\n  - This is the most common method of matching sales to items in Retail and Concessions environments.\n  - Yellow Dog can also be configured to match line[].sku to the Yellow Dog item with the same UPC.\n  \n- line[].itemNumber\n  - This will match a transaction line to a Yellow Dog Recipe using a Third Party ItemNumber.\n  - This can be performed by using the POS Item Map feature in Yellow Dog.\n  - This is the most common method of matching sales to items in F&B environments.\n\nOnly one of the three fields are required to have a non-null or non-whitespace value.\n</details>\n\n\n<details id=\"processing-after-closeout\">\n<summary> Processing depends on checkClosed and closeout dates. </summary>\n\nOnly transactions with a __checkClosed__ date later than the current closeout date will\nbe processed. This setting can be found in the Stores Tab of YDInv.\n</details>\n\n\n<details id=\"processing-hourly\">\n<summary> Periodic processing of transactions </summary>\n\nTransactions are added to the specified Yellow Dog database in real time as they\nare received but the impact of these sales on inventory is calculated by a separate\nperiodic process.\nThis process can be configured to run at least daily and as often as multiple\ntimes per hour depending on database complexity.\n</details>\n\n\n<br/>\n\n\n##### Examples\n\nFor the examples that follow, select the corresponding sample payload from the pull-down\nmenu in the request pane.\n\n\n<details id=\"transaction-with-multiple-lines\">\n<summary> Example A: Sending a transaction with multiple lines </summary>\n\nIn ___Example A___, there was a sale of a Burger and a bottle of water.\nThe expected total for the transaction with all the lines will have a retail of $17.00.\n</details>\n\n\n<details id=\"transaction-with-item-modifier-lines\">\n<summary> Example B: A transaction with item modifier lines </summary>\n\nIn ___Example B___, there was a sale of a Burger with the additional modifiers for adding\ncheese and bacon.\nAs part of the inventory processing the use of the modifiers will allow for the\nprocessing of the transactions to deduct the 2 cheese and 2 bacon appropriately.\nIn this example the expected total for the transaction with all the lines will have\na retail of $23.00.\n</details>\n\n\n<details id=\"transaction-with-check-wide-discount\">\n<summary> Example C: A transaction with a Check-Wide Discount </summary>\n\nIn ___Example C___, there was a sale of a Burger with the additional modifiers for adding\ncheese and bacon.\nThere was also a discount set for 20% off the entire check.\nNotice how the itemDiscount is set for each line of the transaction.\nThis allows for proper setting of the item price.\nIn this example the expected total for the transaction with all the lines will have a\nretail of $18.40.\n</details>\n\n\n<details id=\"handling-return\">\n<summary> Examples D&E: Handling of Refunded Return </summary>\n\nIn this example, there was a sale of a Tee Shirt that was then returned with refund\nthe following day.\nTo properly handle the deduction and then increment of inventory for the two actions,\nthere should be two separate transactions sent to the api.\nHere, ___Example D___ shows the initial sale and ___Example E___ shows the return.\nIdeally, the transactions should be marked for the appropriate times that they\nhappened at.\nNotice that in this example the __thirdPartyId__ and __thirdPartyLineId__ are different values\nbetween the sale and the refund.\n</details>\n\n\n<details id=\"handling-void\">\n<summary> Examples F&G: Handling of a Void or a Cancellation </summary>\n\nIn this example, there was a sale of a Tee Shirt that was canceled or voided without a\ndecrement of inventory.\nThis could have been an accidential addition of an item for the transaction.\nHere, ___Example F___ shows the initial sale and ___Example G___ shows the cancellation.\nSince this this event is not supposed to impact the inventory onhand, it is\nappropriate to set the quantity of the existing line to 0 as an update to the original\ntransaction.\nNotice that in this example the __thirdPartyId__ and __thirdPartyLineId__ are the same values\nbetween the sale and the voided line.\n</details>\n\n\n<br/>\n",
        "parameters": [
          {
            "name": "suppressOutput",
            "in": "query",
            "description": "If true the api will not respond with transactions created or updated in the response. \r\nErrors are still shown if applicable.",
            "schema": {
              "type": "boolean",
              "default": true
            }
          }
        ],
        "requestBody": {
          "description": "",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/Api.Models.Dto.TransactionUpsert"
                }
              },
              "examples": {
                "ex-a": {
                  "summary": "Example A: Transaction with Multiple Lines",
                  "value": [
                    {
                      "thirdPartyId": "thirdpartyUniqueIDForEntireTicket",
                      "transactionNumber": "454545",
                      "checkClosed": "2021-03-11T15:38:55Z",
                      "employeeNumber": "OneRing",
                      "employeeName": "Bilbo Baggins",
                      "tender": "Cash",
                      "registerNumber": "1",
                      "registerName": "Shire",
                      "reference": "Transaction with Multiple Lines",
                      "store": {
                        "id": "6a5386e3-f6f3-11e3-8ff2-000c29d58da6"
                      },
                      "lines": [
                        {
                          "thirdPartyLineId": "thirdpartyUniqueIDForEntireTicket_1",
                          "itemNumber": "101",
                          "itemDescription": "Burger",
                          "itemRetail": 15,
                          "baseRetail": 15,
                          "itemDiscount": 0,
                          "quantity": 1,
                          "lineNumber": 1
                        },
                        {
                          "thirdPartyLineId": "thirdpartyUniqueIDForEntireTicket_2",
                          "itemNumber": "100",
                          "itemDescription": "Btl Water 20 oz.",
                          "itemRetail": 2,
                          "baseRetail": 2,
                          "itemDiscount": 0,
                          "quantity": 1,
                          "lineNumber": 2
                        }
                      ]
                    }
                  ]
                },
                "ex-b": {
                  "summary": "Example B: Transaction with a Modified Line",
                  "value": [
                    {
                      "thirdPartyId": "thirdpartyUniqueIDForEntireTicket",
                      "transactionNumber": "59999",
                      "checkClosed": "2021-03-11T15:38:55Z",
                      "employeeNumber": "OneRing",
                      "employeeName": "Bilbo Baggins",
                      "tender": "Cash",
                      "registerNumber": "1",
                      "registerName": "Shire",
                      "reference": "Transaction with a Modified Line",
                      "store": {
                        "id": "6a5386e3-f6f3-11e3-8ff2-000c29d58da6"
                      },
                      "lines": [
                        {
                          "thirdPartyLineId": "thirdpartyUniqueIDForEntireTicket_1",
                          "itemNumber": "101",
                          "itemDescription": "Burger",
                          "itemRetail": 15,
                          "baseRetail": 15,
                          "itemDiscount": 0,
                          "quantity": 1,
                          "lineNumber": 1
                        },
                        {
                          "thirdPartyLineId": "thirdpartyUniqueIDForEntireTicket_1_Mod1",
                          "itemNumber": "102",
                          "itemDescription": "Add Cheese",
                          "itemRetail": 1,
                          "baseRetail": 1,
                          "itemDiscount": 0,
                          "quantity": 2,
                          "lineNumber": 1,
                          "modifier": "thirdpartyUniqueIDForEntireTicket_1"
                        },
                        {
                          "thirdPartyLineId": "thirdpartyUniqueIDForEntireTicket_1_Mod2",
                          "itemNumber": "103",
                          "itemDescription": "Add Bacon",
                          "itemRetail": 3,
                          "baseRetail": 3,
                          "itemDiscount": 0,
                          "quantity": 2,
                          "lineNumber": 1,
                          "modifier": "thirdpartyUniqueIDForEntireTicket_1"
                        }
                      ]
                    }
                  ]
                },
                "ex-c": {
                  "summary": "Example C: A Check-Wide Discount",
                  "value": [
                    {
                      "thirdPartyId": "thirdpartyUniqueIDForEntireTicket",
                      "transactionNumber": "60000",
                      "checkClosed": "2021-03-11T15:38:55Z",
                      "employeeNumber": "OneRing",
                      "employeeName": "Bilbo Baggins",
                      "tender": "Cash",
                      "registerNumber": "1",
                      "registerName": "Shire",
                      "reference": "Transaction with checkwide discount",
                      "store": {
                        "id": "6a5386e3-f6f3-11e3-8ff2-000c29d58da6"
                      },
                      "lines": [
                        {
                          "thirdPartyLineId": "thirdpartyUniqueIDForEntireTicket_1",
                          "itemNumber": "101",
                          "itemDescription": "Burger",
                          "itemRetail": 15,
                          "baseRetail": 15,
                          "itemDiscount": -3,
                          "quantity": 1,
                          "lineNumber": 1
                        },
                        {
                          "thirdPartyLineId": "thirdpartyUniqueIDForEntireTicket_1_Mod1",
                          "itemNumber": "102",
                          "itemDescription": "Add Cheese",
                          "itemRetail": 1,
                          "baseRetail": 1,
                          "itemDiscount": -0.2,
                          "quantity": 2,
                          "lineNumber": 1,
                          "modifier": "thirdpartyUniqueIDForEntireTicket_1"
                        },
                        {
                          "thirdPartyLineId": "thirdpartyUniqueIDForEntireTicket_1_Mod2",
                          "itemNumber": "103",
                          "itemDescription": "Add Bacon",
                          "itemRetail": 3,
                          "baseRetail": 3,
                          "itemDiscount": -0.6,
                          "quantity": 2,
                          "lineNumber": 1,
                          "modifier": "thirdpartyUniqueIDForEntireTicket_1"
                        }
                      ]
                    }
                  ]
                },
                "ex-d": {
                  "summary": "Example D: Initial sale before demonstrating a return",
                  "value": [
                    {
                      "thirdPartyId": "thirdpartyUniqueIDForEntireTicket",
                      "transactionNumber": "454546",
                      "checkClosed": "2021-03-11T15:38:55Z",
                      "employeeNumber": "OneRing",
                      "employeeName": "Bilbo Baggins",
                      "tender": "Cash",
                      "registerNumber": "1",
                      "registerName": "Shire",
                      "reference": "A completed sale of an item that could be returned in a separate transaction",
                      "store": {
                        "id": "6a5386e3-f6f3-11e3-8ff2-000c29d58da6"
                      },
                      "lines": [
                        {
                          "thirdPartyLineId": "thirdpartyUniqueIDForEntireTicket_1",
                          "itemNumber": "201-L",
                          "itemDescription": "Ill Carry You Mr. Frodo Tee Shirt-Large",
                          "itemRetail": 30,
                          "baseRetail": 30,
                          "itemDiscount": 0,
                          "quantity": 1,
                          "lineNumber": 1
                        }
                      ]
                    }
                  ]
                },
                "ex-e": {
                  "summary": "Example E: Return with refund of the previous sale",
                  "value": [
                    {
                      "thirdPartyId": "thirdpartyUniqueIDForEntireTicket_RETURN",
                      "transactionNumber": "454547",
                      "checkClosed": "2021-03-12T15:38:55Z",
                      "employeeNumber": "OneRing",
                      "employeeName": "Bilbo Baggins",
                      "tender": "Cash",
                      "registerNumber": "1",
                      "registerName": "Shire",
                      "reference": "A new transaction that returns an item sold in a previous transaction",
                      "store": {
                        "id": "6a5386e3-f6f3-11e3-8ff2-000c29d58da6"
                      },
                      "lines": [
                        {
                          "thirdPartyLineId": "thirdpartyUniqueIDForEntireTicket_RETURN_1",
                          "itemNumber": "201-L",
                          "itemDescription": "Ill Carry You Mr. Frodo Tee Shirt-Large",
                          "itemRetail": 30,
                          "baseRetail": 30,
                          "itemDiscount": 0,
                          "quantity": -1,
                          "lineNumber": 1
                        }
                      ]
                    }
                  ]
                },
                "ex-f": {
                  "summary": "Example F: Initial sale before demonstrating a void",
                  "value": [
                    {
                      "thirdPartyId": "thirdpartyUniqueIDForEntireTicket",
                      "transactionNumber": "454548",
                      "checkClosed": "2021-03-11T15:38:55Z",
                      "employeeNumber": "OneRing",
                      "employeeName": "Bilbo Baggins",
                      "tender": "Cash",
                      "registerNumber": "1",
                      "registerName": "Shire",
                      "reference": "A completed sale that could be voided by updating this transaction",
                      "store": {
                        "id": "6a5386e3-f6f3-11e3-8ff2-000c29d58da6"
                      },
                      "lines": [
                        {
                          "thirdPartyLineId": "thirdpartyUniqueIDForEntireTicket_1",
                          "itemNumber": "201-L",
                          "itemDescription": "Ill Carry You Mr. Frodo Tee Shirt-Large",
                          "itemRetail": 30,
                          "baseRetail": 30,
                          "itemDiscount": 0,
                          "quantity": 1,
                          "lineNumber": 1
                        }
                      ]
                    }
                  ]
                },
                "ex-g": {
                  "summary": "Example G: Voiding out a previously sent line item",
                  "value": [
                    {
                      "thirdPartyId": "thirdpartyUniqueIDForEntireTicket",
                      "transactionNumber": "454548",
                      "checkClosed": "2021-03-11T15:38:55Z",
                      "employeeNumber": "OneRing",
                      "employeeName": "Bilbo Baggins",
                      "tender": "Cash",
                      "registerNumber": "1",
                      "registerName": "Shire",
                      "reference": "Voiding a previous transaction by updating quantity to zero",
                      "store": {
                        "id": "6a5386e3-f6f3-11e3-8ff2-000c29d58da6"
                      },
                      "lines": [
                        {
                          "thirdPartyLineId": "thirdpartyUniqueIDForEntireTicket_1",
                          "itemNumber": "201-L",
                          "itemDescription": "Ill Carry You Mr. Frodo Tee Shirt-Large",
                          "itemRetail": 30,
                          "baseRetail": 30,
                          "itemDiscount": 0,
                          "quantity": 0,
                          "lineNumber": 1
                        }
                      ]
                    }
                  ]
                }
              }
            },
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/Api.Models.Dto.TransactionUpsert"
                }
              },
              "examples": {
                "ex-a": {
                  "summary": "Example A: Transaction with Multiple Lines",
                  "value": [
                    {
                      "thirdPartyId": "thirdpartyUniqueIDForEntireTicket",
                      "transactionNumber": "454545",
                      "checkClosed": "2021-03-11T15:38:55Z",
                      "employeeNumber": "OneRing",
                      "employeeName": "Bilbo Baggins",
                      "tender": "Cash",
                      "registerNumber": "1",
                      "registerName": "Shire",
                      "reference": "Transaction with Multiple Lines",
                      "store": {
                        "id": "6a5386e3-f6f3-11e3-8ff2-000c29d58da6"
                      },
                      "lines": [
                        {
                          "thirdPartyLineId": "thirdpartyUniqueIDForEntireTicket_1",
                          "itemNumber": "101",
                          "itemDescription": "Burger",
                          "itemRetail": 15,
                          "baseRetail": 15,
                          "itemDiscount": 0,
                          "quantity": 1,
                          "lineNumber": 1
                        },
                        {
                          "thirdPartyLineId": "thirdpartyUniqueIDForEntireTicket_2",
                          "itemNumber": "100",
                          "itemDescription": "Btl Water 20 oz.",
                          "itemRetail": 2,
                          "baseRetail": 2,
                          "itemDiscount": 0,
                          "quantity": 1,
                          "lineNumber": 2
                        }
                      ]
                    }
                  ]
                },
                "ex-b": {
                  "summary": "Example B: Transaction with a Modified Line",
                  "value": [
                    {
                      "thirdPartyId": "thirdpartyUniqueIDForEntireTicket",
                      "transactionNumber": "59999",
                      "checkClosed": "2021-03-11T15:38:55Z",
                      "employeeNumber": "OneRing",
                      "employeeName": "Bilbo Baggins",
                      "tender": "Cash",
                      "registerNumber": "1",
                      "registerName": "Shire",
                      "reference": "Transaction with a Modified Line",
                      "store": {
                        "id": "6a5386e3-f6f3-11e3-8ff2-000c29d58da6"
                      },
                      "lines": [
                        {
                          "thirdPartyLineId": "thirdpartyUniqueIDForEntireTicket_1",
                          "itemNumber": "101",
                          "itemDescription": "Burger",
                          "itemRetail": 15,
                          "baseRetail": 15,
                          "itemDiscount": 0,
                          "quantity": 1,
                          "lineNumber": 1
                        },
                        {
                          "thirdPartyLineId": "thirdpartyUniqueIDForEntireTicket_1_Mod1",
                          "itemNumber": "102",
                          "itemDescription": "Add Cheese",
                          "itemRetail": 1,
                          "baseRetail": 1,
                          "itemDiscount": 0,
                          "quantity": 2,
                          "lineNumber": 1,
                          "modifier": "thirdpartyUniqueIDForEntireTicket_1"
                        },
                        {
                          "thirdPartyLineId": "thirdpartyUniqueIDForEntireTicket_1_Mod2",
                          "itemNumber": "103",
                          "itemDescription": "Add Bacon",
                          "itemRetail": 3,
                          "baseRetail": 3,
                          "itemDiscount": 0,
                          "quantity": 2,
                          "lineNumber": 1,
                          "modifier": "thirdpartyUniqueIDForEntireTicket_1"
                        }
                      ]
                    }
                  ]
                },
                "ex-c": {
                  "summary": "Example C: A Check-Wide Discount",
                  "value": [
                    {
                      "thirdPartyId": "thirdpartyUniqueIDForEntireTicket",
                      "transactionNumber": "60000",
                      "checkClosed": "2021-03-11T15:38:55Z",
                      "employeeNumber": "OneRing",
                      "employeeName": "Bilbo Baggins",
                      "tender": "Cash",
                      "registerNumber": "1",
                      "registerName": "Shire",
                      "reference": "Transaction with checkwide discount",
                      "store": {
                        "id": "6a5386e3-f6f3-11e3-8ff2-000c29d58da6"
                      },
                      "lines": [
                        {
                          "thirdPartyLineId": "thirdpartyUniqueIDForEntireTicket_1",
                          "itemNumber": "101",
                          "itemDescription": "Burger",
                          "itemRetail": 15,
                          "baseRetail": 15,
                          "itemDiscount": -3,
                          "quantity": 1,
                          "lineNumber": 1
                        },
                        {
                          "thirdPartyLineId": "thirdpartyUniqueIDForEntireTicket_1_Mod1",
                          "itemNumber": "102",
                          "itemDescription": "Add Cheese",
                          "itemRetail": 1,
                          "baseRetail": 1,
                          "itemDiscount": -0.2,
                          "quantity": 2,
                          "lineNumber": 1,
                          "modifier": "thirdpartyUniqueIDForEntireTicket_1"
                        },
                        {
                          "thirdPartyLineId": "thirdpartyUniqueIDForEntireTicket_1_Mod2",
                          "itemNumber": "103",
                          "itemDescription": "Add Bacon",
                          "itemRetail": 3,
                          "baseRetail": 3,
                          "itemDiscount": -0.6,
                          "quantity": 2,
                          "lineNumber": 1,
                          "modifier": "thirdpartyUniqueIDForEntireTicket_1"
                        }
                      ]
                    }
                  ]
                },
                "ex-d": {
                  "summary": "Example D: Initial sale before demonstrating a return",
                  "value": [
                    {
                      "thirdPartyId": "thirdpartyUniqueIDForEntireTicket",
                      "transactionNumber": "454546",
                      "checkClosed": "2021-03-11T15:38:55Z",
                      "employeeNumber": "OneRing",
                      "employeeName": "Bilbo Baggins",
                      "tender": "Cash",
                      "registerNumber": "1",
                      "registerName": "Shire",
                      "reference": "A completed sale of an item that could be returned in a separate transaction",
                      "store": {
                        "id": "6a5386e3-f6f3-11e3-8ff2-000c29d58da6"
                      },
                      "lines": [
                        {
                          "thirdPartyLineId": "thirdpartyUniqueIDForEntireTicket_1",
                          "itemNumber": "201-L",
                          "itemDescription": "Ill Carry You Mr. Frodo Tee Shirt-Large",
                          "itemRetail": 30,
                          "baseRetail": 30,
                          "itemDiscount": 0,
                          "quantity": 1,
                          "lineNumber": 1
                        }
                      ]
                    }
                  ]
                },
                "ex-e": {
                  "summary": "Example E: Return with refund of the previous sale",
                  "value": [
                    {
                      "thirdPartyId": "thirdpartyUniqueIDForEntireTicket_RETURN",
                      "transactionNumber": "454547",
                      "checkClosed": "2021-03-12T15:38:55Z",
                      "employeeNumber": "OneRing",
                      "employeeName": "Bilbo Baggins",
                      "tender": "Cash",
                      "registerNumber": "1",
                      "registerName": "Shire",
                      "reference": "A new transaction that returns an item sold in a previous transaction",
                      "store": {
                        "id": "6a5386e3-f6f3-11e3-8ff2-000c29d58da6"
                      },
                      "lines": [
                        {
                          "thirdPartyLineId": "thirdpartyUniqueIDForEntireTicket_RETURN_1",
                          "itemNumber": "201-L",
                          "itemDescription": "Ill Carry You Mr. Frodo Tee Shirt-Large",
                          "itemRetail": 30,
                          "baseRetail": 30,
                          "itemDiscount": 0,
                          "quantity": -1,
                          "lineNumber": 1
                        }
                      ]
                    }
                  ]
                },
                "ex-f": {
                  "summary": "Example F: Initial sale before demonstrating a void",
                  "value": [
                    {
                      "thirdPartyId": "thirdpartyUniqueIDForEntireTicket",
                      "transactionNumber": "454548",
                      "checkClosed": "2021-03-11T15:38:55Z",
                      "employeeNumber": "OneRing",
                      "employeeName": "Bilbo Baggins",
                      "tender": "Cash",
                      "registerNumber": "1",
                      "registerName": "Shire",
                      "reference": "A completed sale that could be voided by updating this transaction",
                      "store": {
                        "id": "6a5386e3-f6f3-11e3-8ff2-000c29d58da6"
                      },
                      "lines": [
                        {
                          "thirdPartyLineId": "thirdpartyUniqueIDForEntireTicket_1",
                          "itemNumber": "201-L",
                          "itemDescription": "Ill Carry You Mr. Frodo Tee Shirt-Large",
                          "itemRetail": 30,
                          "baseRetail": 30,
                          "itemDiscount": 0,
                          "quantity": 1,
                          "lineNumber": 1
                        }
                      ]
                    }
                  ]
                },
                "ex-g": {
                  "summary": "Example G: Voiding out a previously sent line item",
                  "value": [
                    {
                      "thirdPartyId": "thirdpartyUniqueIDForEntireTicket",
                      "transactionNumber": "454548",
                      "checkClosed": "2021-03-11T15:38:55Z",
                      "employeeNumber": "OneRing",
                      "employeeName": "Bilbo Baggins",
                      "tender": "Cash",
                      "registerNumber": "1",
                      "registerName": "Shire",
                      "reference": "Voiding a previous transaction by updating quantity to zero",
                      "store": {
                        "id": "6a5386e3-f6f3-11e3-8ff2-000c29d58da6"
                      },
                      "lines": [
                        {
                          "thirdPartyLineId": "thirdpartyUniqueIDForEntireTicket_1",
                          "itemNumber": "201-L",
                          "itemDescription": "Ill Carry You Mr. Frodo Tee Shirt-Large",
                          "itemRetail": 30,
                          "baseRetail": 30,
                          "itemDiscount": 0,
                          "quantity": 0,
                          "lineNumber": 1
                        }
                      ]
                    }
                  ]
                }
              }
            },
            "text/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/Api.Models.Dto.TransactionUpsert"
                }
              },
              "examples": {
                "ex-a": {
                  "summary": "Example A: Transaction with Multiple Lines",
                  "value": "[\n  {\n    \"thirdPartyId\": \"thirdpartyUniqueIDForEntireTicket\",\n    \"transactionNumber\": \"454545\",\n    \"checkClosed\": \"2021-03-11T15:38:55Z\",\n    \"employeeNumber\": \"OneRing\",\n    \"employeeName\": \"Bilbo Baggins\",\n    \"tender\": \"Cash\",\n    \"registerNumber\": \"1\",\n    \"registerName\": \"Shire\",\n    \"reference\": \"Transaction with Multiple Lines\",\n    \"store\": {\n      \"id\": \"6a5386e3-f6f3-11e3-8ff2-000c29d58da6\"\n    },\n    \"lines\": [\n      {\n        \"thirdPartyLineId\": \"thirdpartyUniqueIDForEntireTicket_1\",\n        \"itemNumber\": \"101\",\n        \"itemDescription\": \"Burger\",\n        \"itemRetail\": 15.0,\n        \"baseRetail\": 15.0,\n        \"itemDiscount\": 0,\n        \"quantity\": 1,\n        \"lineNumber\": 1\n      },{\n        \"thirdPartyLineId\": \"thirdpartyUniqueIDForEntireTicket_2\",\n        \"itemNumber\": \"100\",\n        \"itemDescription\": \"Btl Water 20 oz.\",\n        \"itemRetail\": 2.0,\n        \"baseRetail\": 2.0,\n        \"itemDiscount\": 0,\n        \"quantity\": 1,\n        \"lineNumber\": 2\n      }\n    ]\n  }\n]"
                },
                "ex-b": {
                  "summary": "Example B: Transaction with a Modified Line",
                  "value": "[\n  {\n    \"thirdPartyId\": \"thirdpartyUniqueIDForEntireTicket\",\n    \"transactionNumber\": \"59999\",\n    \"checkClosed\": \"2021-03-11T15:38:55Z\",\n    \"employeeNumber\": \"OneRing\",\n    \"employeeName\": \"Bilbo Baggins\",\n    \"tender\": \"Cash\",\n    \"registerNumber\": \"1\",\n    \"registerName\": \"Shire\",\n    \"reference\": \"Transaction with a Modified Line\",\n    \"store\": {\n      \"id\": \"6a5386e3-f6f3-11e3-8ff2-000c29d58da6\"\n    },\n    \"lines\": [\n      {\n        \"thirdPartyLineId\": \"thirdpartyUniqueIDForEntireTicket_1\",\n        \"itemNumber\": \"101\",\n        \"itemDescription\": \"Burger\",\n        \"itemRetail\": 15,\n        \"baseRetail\": 15,\n        \"itemDiscount\": 0,\n        \"quantity\": 1,\n        \"lineNumber\": 1\n      },{\n        \"thirdPartyLineId\": \"thirdpartyUniqueIDForEntireTicket_1_Mod1\",\n        \"itemNumber\": \"102\",\n        \"itemDescription\": \"Add Cheese\",\n        \"itemRetail\": 1,\n        \"baseRetail\": 1,\n        \"itemDiscount\": 0,\n        \"quantity\": 2,\n        \"lineNumber\": 1,\n        \"modifier\": \"thirdpartyUniqueIDForEntireTicket_1\"\n      },{\n        \"thirdPartyLineId\": \"thirdpartyUniqueIDForEntireTicket_1_Mod2\",\n        \"itemNumber\": \"103\",\n        \"itemDescription\": \"Add Bacon\",\n        \"itemRetail\": 3,\n        \"baseRetail\": 3,\n        \"itemDiscount\": 0,\n        \"quantity\": 2,\n        \"lineNumber\": 1,\n        \"modifier\": \"thirdpartyUniqueIDForEntireTicket_1\"\n      }\n    ]\n  }\n]"
                },
                "ex-c": {
                  "summary": "Example C: A Check-Wide Discount",
                  "value": "[\n  {\n    \"thirdPartyId\": \"thirdpartyUniqueIDForEntireTicket\",\n    \"transactionNumber\": \"60000\",\n    \"checkClosed\": \"2021-03-11T15:38:55Z\",\n    \"employeeNumber\": \"OneRing\",\n    \"employeeName\": \"Bilbo Baggins\",\n    \"tender\": \"Cash\",\n    \"registerNumber\": \"1\",\n    \"registerName\": \"Shire\",\n    \"reference\": \"Transaction with checkwide 20% discount\",\n    \"store\": {\n      \"id\": \"6a5386e3-f6f3-11e3-8ff2-000c29d58da6\"\n    },\n    \"lines\": [\n      {\n        \"thirdPartyLineId\": \"thirdpartyUniqueIDForEntireTicket_1\",\n        \"itemNumber\": \"101\",\n        \"itemDescription\": \"Burger\",\n        \"itemRetail\": 15,\n        \"baseRetail\": 15,\n        \"itemDiscount\": -3,\n        \"quantity\": 1,\n        \"lineNumber\": 1\n      },{\n        \"thirdPartyLineId\": \"thirdpartyUniqueIDForEntireTicket_1_Mod1\",\n        \"itemNumber\": \"102\",\n        \"itemDescription\": \"Add Cheese\",\n        \"itemRetail\": 1,\n        \"baseRetail\": 1,\n        \"itemDiscount\": -0.2,\n        \"quantity\": 2,\n        \"lineNumber\": 1,\n        \"modifier\": \"thirdpartyUniqueIDForEntireTicket_1\"\n      },{\n        \"thirdPartyLineId\": \"thirdpartyUniqueIDForEntireTicket_1_Mod2\",\n        \"itemNumber\": \"103\",\n        \"itemDescription\": \"Add Bacon\",\n        \"itemRetail\": 3,\n        \"baseRetail\": 3,\n        \"itemDiscount\": -0.6,\n        \"quantity\": 2,\n        \"lineNumber\": 1,\n        \"modifier\": \"thirdpartyUniqueIDForEntireTicket_1\"\n      }\n    ]\n  }\n]"
                },
                "ex-d": {
                  "summary": "Example D: Initial sale before demonstrating a return",
                  "value": "[\n  {\n    \"thirdPartyId\": \"thirdpartyUniqueIDForEntireTicket\",\n    \"transactionNumber\": \"454546\",\n    \"checkClosed\": \"2021-03-11T15:38:55Z\",\n    \"employeeNumber\": \"OneRing\",\n    \"employeeName\": \"Bilbo Baggins\",\n    \"tender\": \"Cash\",\n    \"registerNumber\": \"1\",\n    \"registerName\": \"Shire\",\n    \"reference\": \"A completed sale of an item that could be returned in a separate transaction\",\n    \"store\": {\n      \"id\": \"6a5386e3-f6f3-11e3-8ff2-000c29d58da6\"\n    },\n    \"lines\": [\n      {\n        \"thirdPartyLineId\": \"thirdpartyUniqueIDForEntireTicket_1\",\n        \"itemNumber\": \"201-L\",\n        \"itemDescription\": \"Ill Carry You Mr. Frodo Tee Shirt-Large\",\n        \"itemRetail\": 30,\n        \"baseRetail\": 30,\n        \"itemDiscount\": 0,\n        \"quantity\": 1,\n        \"lineNumber\": 1\n      }\n    ]\n  }\n]"
                },
                "ex-e": {
                  "summary": "Example E: Return with refund of the previous sale",
                  "value": "[\n  {\n    \"thirdPartyId\": \"thirdpartyUniqueIDForEntireTicket_RETURN\",\n    \"transactionNumber\": \"454547\",\n    \"checkClosed\": \"2021-03-11T15:38:55Z\",\n    \"employeeNumber\": \"OneRing\",\n    \"employeeName\": \"Bilbo Baggins\",\n    \"tender\": \"Cash\",\n    \"registerNumber\": \"1\",\n    \"registerName\": \"Shire\",\n    \"reference\": \"A new transaction that returns an item sold in a previous transaction\",\n    \"store\": {\n      \"id\": \"6a5386e3-f6f3-11e3-8ff2-000c29d58da6\"\n    },\n    \"lines\": [\n      {\n        \"thirdPartyLineId\": \"thirdpartyUniqueIDForEntireTicket_RETURN_1\",\n        \"itemNumber\": \"201-L\",\n        \"itemDescription\": \"Ill Carry You Mr. Frodo Tee Shirt-Large\",\n        \"itemRetail\": 30,\n        \"baseRetail\": 30,\n        \"itemDiscount\": 0,\n        \"quantity\": -1,\n        \"lineNumber\": 1\n      }\n    ]\n  }\n]"
                },
                "ex-f": {
                  "summary": "Example F: Initial sale before demonstrating a void",
                  "value": "[\n  {\n    \"thirdPartyId\": \"thirdpartyUniqueIDForEntireTicket\",\n    \"transactionNumber\": \"454548\",\n    \"checkClosed\": \"2021-03-11T15:38:55Z\",\n    \"employeeNumber\": \"OneRing\",\n    \"employeeName\": \"Bilbo Baggins\",\n    \"tender\": \"Cash\",\n    \"registerNumber\": \"1\",\n    \"registerName\": \"Shire\",\n    \"reference\": \"A completed sale that could be voided by updating this transaction\",\n    \"store\": {\n      \"id\": \"6a5386e3-f6f3-11e3-8ff2-000c29d58da6\"\n    },\n    \"lines\": [\n      {\n        \"thirdPartyLineId\": \"thirdpartyUniqueIDForEntireTicket_1\",\n        \"itemNumber\": \"201-L\",\n        \"itemDescription\": \"Ill Carry You Mr. Frodo Tee Shirt-Large\",\n        \"itemRetail\": 30,\n        \"baseRetail\": 30,\n        \"itemDiscount\": 0,\n        \"quantity\": 1,\n        \"lineNumber\": 1\n      }\n    ]\n  }\n]"
                },
                "ex-g": {
                  "summary": "Example G: Voiding out a previously sent line item",
                  "value": "[\n  {\n    \"thirdPartyId\": \"thirdpartyUniqueIDForEntireTicket\",\n    \"transactionNumber\": \"454548\",\n    \"checkClosed\": \"2021-03-11T15:38:55Z\",\n    \"employeeNumber\": \"OneRing\",\n    \"employeeName\": \"Bilbo Baggins\",\n    \"tender\": \"Cash\",\n    \"registerNumber\": \"1\",\n    \"registerName\": \"Shire\",\n    \"reference\": \"Voiding a previous transaction by updating quantity to zero\",\n    \"store\": {\n      \"id\": \"6a5386e3-f6f3-11e3-8ff2-000c29d58da6\"\n    },\n    \"lines\": [\n      {\n        \"thirdPartyLineId\": \"thirdpartyUniqueIDForEntireTicket_1\",\n        \"itemNumber\": \"201-L\",\n        \"itemDescription\": \"Ill Carry You Mr. Frodo Tee Shirt-Large\",\n        \"itemRetail\": 30,\n        \"baseRetail\": 30,\n        \"itemDiscount\": 0,\n        \"quantity\": 0,\n        \"lineNumber\": 1\n      }\n    ]\n  }\n]"
                }
              }
            },
            "application/*+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/Api.Models.Dto.TransactionUpsert"
                }
              },
              "examples": {
                "ex-a": {
                  "summary": "Example A: Transaction with Multiple Lines",
                  "value": [
                    {
                      "thirdPartyId": "thirdpartyUniqueIDForEntireTicket",
                      "transactionNumber": "454545",
                      "checkClosed": "2021-03-11T15:38:55Z",
                      "employeeNumber": "OneRing",
                      "employeeName": "Bilbo Baggins",
                      "tender": "Cash",
                      "registerNumber": "1",
                      "registerName": "Shire",
                      "reference": "Transaction with Multiple Lines",
                      "store": {
                        "id": "6a5386e3-f6f3-11e3-8ff2-000c29d58da6"
                      },
                      "lines": [
                        {
                          "thirdPartyLineId": "thirdpartyUniqueIDForEntireTicket_1",
                          "itemNumber": "101",
                          "itemDescription": "Burger",
                          "itemRetail": 15,
                          "baseRetail": 15,
                          "itemDiscount": 0,
                          "quantity": 1,
                          "lineNumber": 1
                        },
                        {
                          "thirdPartyLineId": "thirdpartyUniqueIDForEntireTicket_2",
                          "itemNumber": "100",
                          "itemDescription": "Btl Water 20 oz.",
                          "itemRetail": 2,
                          "baseRetail": 2,
                          "itemDiscount": 0,
                          "quantity": 1,
                          "lineNumber": 2
                        }
                      ]
                    }
                  ]
                },
                "ex-b": {
                  "summary": "Example B: Transaction with a Modified Line",
                  "value": [
                    {
                      "thirdPartyId": "thirdpartyUniqueIDForEntireTicket",
                      "transactionNumber": "59999",
                      "checkClosed": "2021-03-11T15:38:55Z",
                      "employeeNumber": "OneRing",
                      "employeeName": "Bilbo Baggins",
                      "tender": "Cash",
                      "registerNumber": "1",
                      "registerName": "Shire",
                      "reference": "Transaction with a Modified Line",
                      "store": {
                        "id": "6a5386e3-f6f3-11e3-8ff2-000c29d58da6"
                      },
                      "lines": [
                        {
                          "thirdPartyLineId": "thirdpartyUniqueIDForEntireTicket_1",
                          "itemNumber": "101",
                          "itemDescription": "Burger",
                          "itemRetail": 15,
                          "baseRetail": 15,
                          "itemDiscount": 0,
                          "quantity": 1,
                          "lineNumber": 1
                        },
                        {
                          "thirdPartyLineId": "thirdpartyUniqueIDForEntireTicket_1_Mod1",
                          "itemNumber": "102",
                          "itemDescription": "Add Cheese",
                          "itemRetail": 1,
                          "baseRetail": 1,
                          "itemDiscount": 0,
                          "quantity": 2,
                          "lineNumber": 1,
                          "modifier": "thirdpartyUniqueIDForEntireTicket_1"
                        },
                        {
                          "thirdPartyLineId": "thirdpartyUniqueIDForEntireTicket_1_Mod2",
                          "itemNumber": "103",
                          "itemDescription": "Add Bacon",
                          "itemRetail": 3,
                          "baseRetail": 3,
                          "itemDiscount": 0,
                          "quantity": 2,
                          "lineNumber": 1,
                          "modifier": "thirdpartyUniqueIDForEntireTicket_1"
                        }
                      ]
                    }
                  ]
                },
                "ex-c": {
                  "summary": "Example C: A Check-Wide Discount",
                  "value": [
                    {
                      "thirdPartyId": "thirdpartyUniqueIDForEntireTicket",
                      "transactionNumber": "60000",
                      "checkClosed": "2021-03-11T15:38:55Z",
                      "employeeNumber": "OneRing",
                      "employeeName": "Bilbo Baggins",
                      "tender": "Cash",
                      "registerNumber": "1",
                      "registerName": "Shire",
                      "reference": "Transaction with checkwide discount",
                      "store": {
                        "id": "6a5386e3-f6f3-11e3-8ff2-000c29d58da6"
                      },
                      "lines": [
                        {
                          "thirdPartyLineId": "thirdpartyUniqueIDForEntireTicket_1",
                          "itemNumber": "101",
                          "itemDescription": "Burger",
                          "itemRetail": 15,
                          "baseRetail": 15,
                          "itemDiscount": -3,
                          "quantity": 1,
                          "lineNumber": 1
                        },
                        {
                          "thirdPartyLineId": "thirdpartyUniqueIDForEntireTicket_1_Mod1",
                          "itemNumber": "102",
                          "itemDescription": "Add Cheese",
                          "itemRetail": 1,
                          "baseRetail": 1,
                          "itemDiscount": -0.2,
                          "quantity": 2,
                          "lineNumber": 1,
                          "modifier": "thirdpartyUniqueIDForEntireTicket_1"
                        },
                        {
                          "thirdPartyLineId": "thirdpartyUniqueIDForEntireTicket_1_Mod2",
                          "itemNumber": "103",
                          "itemDescription": "Add Bacon",
                          "itemRetail": 3,
                          "baseRetail": 3,
                          "itemDiscount": -0.6,
                          "quantity": 2,
                          "lineNumber": 1,
                          "modifier": "thirdpartyUniqueIDForEntireTicket_1"
                        }
                      ]
                    }
                  ]
                },
                "ex-d": {
                  "summary": "Example D: Initial sale before demonstrating a return",
                  "value": [
                    {
                      "thirdPartyId": "thirdpartyUniqueIDForEntireTicket",
                      "transactionNumber": "454546",
                      "checkClosed": "2021-03-11T15:38:55Z",
                      "employeeNumber": "OneRing",
                      "employeeName": "Bilbo Baggins",
                      "tender": "Cash",
                      "registerNumber": "1",
                      "registerName": "Shire",
                      "reference": "A completed sale of an item that could be returned in a separate transaction",
                      "store": {
                        "id": "6a5386e3-f6f3-11e3-8ff2-000c29d58da6"
                      },
                      "lines": [
                        {
                          "thirdPartyLineId": "thirdpartyUniqueIDForEntireTicket_1",
                          "itemNumber": "201-L",
                          "itemDescription": "Ill Carry You Mr. Frodo Tee Shirt-Large",
                          "itemRetail": 30,
                          "baseRetail": 30,
                          "itemDiscount": 0,
                          "quantity": 1,
                          "lineNumber": 1
                        }
                      ]
                    }
                  ]
                },
                "ex-e": {
                  "summary": "Example E: Return with refund of the previous sale",
                  "value": [
                    {
                      "thirdPartyId": "thirdpartyUniqueIDForEntireTicket_RETURN",
                      "transactionNumber": "454547",
                      "checkClosed": "2021-03-12T15:38:55Z",
                      "employeeNumber": "OneRing",
                      "employeeName": "Bilbo Baggins",
                      "tender": "Cash",
                      "registerNumber": "1",
                      "registerName": "Shire",
                      "reference": "A new transaction that returns an item sold in a previous transaction",
                      "store": {
                        "id": "6a5386e3-f6f3-11e3-8ff2-000c29d58da6"
                      },
                      "lines": [
                        {
                          "thirdPartyLineId": "thirdpartyUniqueIDForEntireTicket_RETURN_1",
                          "itemNumber": "201-L",
                          "itemDescription": "Ill Carry You Mr. Frodo Tee Shirt-Large",
                          "itemRetail": 30,
                          "baseRetail": 30,
                          "itemDiscount": 0,
                          "quantity": -1,
                          "lineNumber": 1
                        }
                      ]
                    }
                  ]
                },
                "ex-f": {
                  "summary": "Example F: Initial sale before demonstrating a void",
                  "value": [
                    {
                      "thirdPartyId": "thirdpartyUniqueIDForEntireTicket",
                      "transactionNumber": "454548",
                      "checkClosed": "2021-03-11T15:38:55Z",
                      "employeeNumber": "OneRing",
                      "employeeName": "Bilbo Baggins",
                      "tender": "Cash",
                      "registerNumber": "1",
                      "registerName": "Shire",
                      "reference": "A completed sale that could be voided by updating this transaction",
                      "store": {
                        "id": "6a5386e3-f6f3-11e3-8ff2-000c29d58da6"
                      },
                      "lines": [
                        {
                          "thirdPartyLineId": "thirdpartyUniqueIDForEntireTicket_1",
                          "itemNumber": "201-L",
                          "itemDescription": "Ill Carry You Mr. Frodo Tee Shirt-Large",
                          "itemRetail": 30,
                          "baseRetail": 30,
                          "itemDiscount": 0,
                          "quantity": 1,
                          "lineNumber": 1
                        }
                      ]
                    }
                  ]
                },
                "ex-g": {
                  "summary": "Example G: Voiding out a previously sent line item",
                  "value": [
                    {
                      "thirdPartyId": "thirdpartyUniqueIDForEntireTicket",
                      "transactionNumber": "454548",
                      "checkClosed": "2021-03-11T15:38:55Z",
                      "employeeNumber": "OneRing",
                      "employeeName": "Bilbo Baggins",
                      "tender": "Cash",
                      "registerNumber": "1",
                      "registerName": "Shire",
                      "reference": "Voiding a previous transaction by updating quantity to zero",
                      "store": {
                        "id": "6a5386e3-f6f3-11e3-8ff2-000c29d58da6"
                      },
                      "lines": [
                        {
                          "thirdPartyLineId": "thirdpartyUniqueIDForEntireTicket_1",
                          "itemNumber": "201-L",
                          "itemDescription": "Ill Carry You Mr. Frodo Tee Shirt-Large",
                          "itemRetail": 30,
                          "baseRetail": 30,
                          "itemDiscount": 0,
                          "quantity": 0,
                          "lineNumber": 1
                        }
                      ]
                    }
                  ]
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "201": {
            "description": "Created"
          },
          "400": {
            "description": "Bad Request"
          },
          "422": {
            "description": "Unprocessable Content",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ValidationResultModel"
                }
              }
            }
          },
          "429": {
            "description": "Rate limiting quota exceeded\r\n            \r\n            Apply pause on further requests to the api using a wait method for the amount of seconds \r\n            presented in the Response Header Key 'Retry-After'.\r\n            \r\n            To prevent running into further instances of this rate limiting, use the Response Headers \r\n            returned back from all other requests to ensure there is enough buffer.\r\n            \r\n            For further information see Rate Limiting Section of Getting Started of api documentation site."
          },
          "500": {
            "description": "An internal error has occured or the database is currently offline for\r\n            connections.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/transactions/store/{storeId}": {
      "get": {
        "x-hideReplay": true,
        "operationId": "get-transactions-store",
        "tags": [
          "Transactions"
        ],
        "summary": "Gets Transactions by Store",
        "parameters": [
          {
            "name": "storeId",
            "in": "path",
            "description": "Id of the Yellow Dog Store that is being fetched. The Store ID can be found from the Get All Stores Endpoint as the id Property of the Store Model.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Filter",
            "in": "query",
            "description": "Only one filter parameter field is allowed for this endpoint.\r\n- checkClosed (DateTime in v2, DateTimeOffset in v3: See Differences between v2 and v3 in \r\nGetting Started Section for more information)\r\n\r\n \r\nIt is recommended when pulling transactions to always supply a date range that has already \r\nbeen settle in the Point of Sale Systems that are connected to the instance of Yellow Dog. \r\nSince the CheckClosed Field of the system is a datetime based value supplying a filter as like soe \r\n`filter=checkClosed>=2020-05-29`\r\n\r\n### Transactions closed between two dates\r\n\r\nYou can use the filter options for checkClosed to return a specific time range of when they \r\nwere indicated to have been closed to the YellowDog Inventory System.\r\n\r\n`/transactions?filter=checkClosed>=2020-05-29,checkClosed<=2020-06-01`\r\n\r\n`/transactions?filter=checkClosed>=2020-05-29 00:00:00,checkClosed<=2020-06-01 00:00:00`\r\n\r\n`/transactions?filter=checkClosed>=2020-05-29T00:00:00-04:00,checkClosed<=2020-06-01T00:00:00-04:00`\r\n\r\nAll of these request uri stubs will return the same list of all transactions that reflect a\r\ncheck closed value between `2020-05-29T00:00:00-04:00` and `2020-06-01T00:00:00-04:00`",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "PageNumber",
            "in": "query",
            "description": "Page Number for the result set.\r\n\r\nThis is expected to be an integer value greater than 0. Defaults to 1 when not passed in.\r\n\r\nFor more information see the Getting Started Section for Pagination.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "PageSize",
            "in": "query",
            "description": "Page Size\r\n- Default page size: 100 \r\n- Max page size: 500\r\n\r\nThis is expected to be an integer value greater than 0. Defaults to 100 when not passed in.\r\n\r\nFor more information see the Getting Started Section for Pagination.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Api.Models.Dto.Transaction"
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limiting quota exceeded\r\n            \r\n            Apply pause on further requests to the api using a wait method for the amount of seconds \r\n            presented in the Response Header Key 'Retry-After'.\r\n            \r\n            To prevent running into further instances of this rate limiting, use the Response Headers \r\n            returned back from all other requests to ensure there is enough buffer.\r\n            \r\n            For further information see Rate Limiting Section of Getting Started of api documentation site."
          },
          "500": {
            "description": "An internal error has occured or the database is currently offline for\r\n            connections.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/transactions/{thirdPartyId}": {
      "get": {
        "x-hideReplay": true,
        "operationId": "get-transactions-byid",
        "tags": [
          "Transactions"
        ],
        "summary": "Gets Transaction by ThirdPartyId",
        "description": "This endpoint is intended to be used for looking up a specific Transaction record.",
        "parameters": [
          {
            "name": "thirdPartyId",
            "in": "path",
            "description": "This field serves as a globally unique identifier for a transaction and its lines.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.Dto.Transaction"
                }
              }
            }
          },
          "429": {
            "description": "Rate limiting quota exceeded\r\n            \r\n            Apply pause on further requests to the api using a wait method for the amount of seconds \r\n            presented in the Response Header Key 'Retry-After'.\r\n            \r\n            To prevent running into further instances of this rate limiting, use the Response Headers \r\n            returned back from all other requests to ensure there is enough buffer.\r\n            \r\n            For further information see Rate Limiting Section of Getting Started of api documentation site."
          },
          "500": {
            "description": "An internal error has occured or the database is currently offline for\r\n            connections.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/transfers/{id}/Accept": {
      "patch": {
        "x-hideReplay": true,
        "operationId": "patch-transfers-accept",
        "tags": [
          "Transfers"
        ],
        "summary": "Accepts a Transfer",
        "description": "Accepting a Transfer is an indication that the Store on the receiving side of the Item movement has been received at the quantities indicated by the accepting quantity.\n#### Permission Requirements\n- Permission Path: **Purchasing > Transfers > Transfer Editor > Accept**\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "CommDoc Id of Transfer",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "description": "Any alterations to the accepting Transfer",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/Api.Models.Dto.TransferAccept"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Api.Models.Dto.TransferAccept"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Api.Models.Dto.TransferAccept"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Api.Models.Dto.TransferAccept"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "403": {
            "description": "User does not have sufficient access for this endpoint: Access required Purchasing > Transfers > TransferEditor > Accept."
          },
          "429": {
            "description": "Rate limiting quota exceeded\r\n            \r\n            Apply pause on further requests to the api using a wait method for the amount of seconds \r\n            presented in the Response Header Key 'Retry-After'.\r\n            \r\n            To prevent running into further instances of this rate limiting, use the Response Headers \r\n            returned back from all other requests to ensure there is enough buffer.\r\n            \r\n            For further information see Rate Limiting Section of Getting Started of api documentation site."
          },
          "500": {
            "description": "An internal error has occured or the database is currently offline for\r\n            connections.",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/transfers/{id}/Issue": {
      "patch": {
        "x-hideReplay": true,
        "operationId": "patch-transfers-issue",
        "tags": [
          "Transfers"
        ],
        "summary": "Issues a Transfer",
        "description": "Issuing a Transfer is an indication that the Store on the sending side of the Item movement has been sent to the Store on the receiving side.\n#### Permission Requirements\n- Permission Path: **Purchasing > Transfers > Transfer Editor > Issue**\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "CommDoc Id of Transfer",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "403": {
            "description": "User does not have sufficient access for this endpoint: Access required Purchasing > Transfers > TransferEditor > Issue."
          },
          "429": {
            "description": "Rate limiting quota exceeded\r\n            \r\n            Apply pause on further requests to the api using a wait method for the amount of seconds \r\n            presented in the Response Header Key 'Retry-After'.\r\n            \r\n            To prevent running into further instances of this rate limiting, use the Response Headers \r\n            returned back from all other requests to ensure there is enough buffer.\r\n            \r\n            For further information see Rate Limiting Section of Getting Started of api documentation site."
          },
          "500": {
            "description": "An internal error has occured or the database is currently offline for\r\n            connections.",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/transfers": {
      "get": {
        "x-hideReplay": true,
        "operationId": "get-transfers",
        "tags": [
          "Transfers"
        ],
        "summary": "Gets Transfers",
        "description": "Example use cases\n`api/v2/transfers?pageNumber=1&pageSize=100&Filter=committed>2024-03-05T06:06:58.529Z&Filter=lastUpdated>2024-03-06&orderBy=committed`\nwill get the first page of transfers where the committed date is later than 2024-03-05T06:06:58.529Z AND the lastUpdated date is later than 2024-03-06T00:00:00Z, ordering by the committed date\n`/api/v2/transfers?pageNumber=1&pageSize=100&Filter=committed>2024-03-05T06:06:58.529Z&orderBy=committed`\nwill get the first page of transfers where the committed date is later than `2024-03-05T06:06:58.529Z` ordering by the committed date.\n#### Permission Requirements\n- Permission Path: **Purchasing > Transfers**\n",
        "parameters": [
          {
            "name": "Filter",
            "in": "query",
            "description": "### Filter Options:\r\n- DocNumber (string: allows for pulling based on a particular document number)\r\n- Committed (Issued DateTime in v2, DateTimeOffset in v3: See Differences between v2 and v3 in Getting Started Section for more information)\r\n- Committed2 (Accepted DateTime in v2, DateTimeOffset in v3: See Differences between v2 and v3 in Getting Started Section for more information)\r\n- LastUpdated(DateTime in v2, DateTimeOffset in v3: See Differences between v2 and v3 in Getting Started Section for more information)\r\n- Store (GUID: allows for filtering down to only a particular issuingStoreId. This id can be found from the GET /stores endpoint)\r\n- Store2 (GUID: allows for filtering down to only a particular acceptedStoreId. This id can be found from the GET /stores endpoint)",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "Expand",
            "in": "query",
            "description": "### Expand Options:\r\n- Lines\r\n- Items",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "OrderBy",
            "in": "query",
            "description": "### Order By Options:\r\n- Committed\r\n- DocNumber\r\n- LastUpdated",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "PageNumber",
            "in": "query",
            "description": "Page Number for the result set.\r\n\r\nThis is expected to be an integer value greater than 0. Defaults to 1 when not passed in.\r\n\r\nFor more information see the Getting Started Section for Pagination.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "PageSize",
            "in": "query",
            "description": "Page Size\r\n- Default page size: 100 \r\n- Max page size: 500\r\n\r\nThis is expected to be an integer value greater than 0. Defaults to 100 when not passed in.\r\n\r\nFor more information see the Getting Started Section for Pagination.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Api.Models.Dto.Transfer"
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limiting quota exceeded\r\n            \r\n            Apply pause on further requests to the api using a wait method for the amount of seconds \r\n            presented in the Response Header Key 'Retry-After'.\r\n            \r\n            To prevent running into further instances of this rate limiting, use the Response Headers \r\n            returned back from all other requests to ensure there is enough buffer.\r\n            \r\n            For further information see Rate Limiting Section of Getting Started of api documentation site."
          },
          "500": {
            "description": "An internal error has occured or the database is currently offline for\r\n            connections.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              }
            }
          }
        }
      },
      "post": {
        "x-hideReplay": true,
        "operationId": "post-transfers",
        "tags": [
          "Transfers"
        ],
        "summary": "Creates a Transfer",
        "description": "#### Permission Requirements\n- Permission Path: **Purchasing > Transfers > Transfer Editor > Issue**\n",
        "requestBody": {
          "description": "Object Representing a Transfer to be created",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/Api.Models.Dto.TransferCreate"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Api.Models.Dto.TransferCreate"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Api.Models.Dto.TransferCreate"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Api.Models.Dto.TransferCreate"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.Dto.Transfer"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.Dto.Transfer"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.Dto.Transfer"
                }
              }
            }
          },
          "403": {
            "description": "User does not have sufficient access for this endpoint: Access required Purchasing > Transfers > TransferEditor > Issue."
          },
          "429": {
            "description": "Rate limiting quota exceeded\r\n            \r\n            Apply pause on further requests to the api using a wait method for the amount of seconds \r\n            presented in the Response Header Key 'Retry-After'.\r\n            \r\n            To prevent running into further instances of this rate limiting, use the Response Headers \r\n            returned back from all other requests to ensure there is enough buffer.\r\n            \r\n            For further information see Rate Limiting Section of Getting Started of api documentation site."
          },
          "500": {
            "description": "An internal error has occured or the database is currently offline for\r\n            connections.",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/transfers/{id}/lines": {
      "post": {
        "x-hideReplay": true,
        "operationId": "post-transfers-lines",
        "tags": [
          "Transfers"
        ],
        "summary": "Add Additional lines to an existing Transfer that has not been committed",
        "description": "#### Permission Requirements\n- Permission Path: **Purchasing > Transfers > Transfer Editor > Issue**\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "CommDoc Id of Transfer",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "description": "new lines to be added to Transfer",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/Api.Models.Dto.CommDocLineCreate"
                }
              }
            },
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/Api.Models.Dto.CommDocLineCreate"
                }
              }
            },
            "text/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/Api.Models.Dto.CommDocLineCreate"
                }
              }
            },
            "application/*+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/Api.Models.Dto.CommDocLineCreate"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Api.Models.Dto.CommdocLine"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Api.Models.Dto.CommdocLine"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Api.Models.Dto.CommdocLine"
                  }
                }
              }
            }
          },
          "403": {
            "description": "User does not have sufficient access for this endpoint: Access required Purchasing > Transfers > TransferEditor > Issue."
          },
          "429": {
            "description": "Rate limiting quota exceeded\r\n            \r\n            Apply pause on further requests to the api using a wait method for the amount of seconds \r\n            presented in the Response Header Key 'Retry-After'.\r\n            \r\n            To prevent running into further instances of this rate limiting, use the Response Headers \r\n            returned back from all other requests to ensure there is enough buffer.\r\n            \r\n            For further information see Rate Limiting Section of Getting Started of api documentation site."
          },
          "500": {
            "description": "An internal error has occured or the database is currently offline for\r\n            connections.",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              }
            }
          }
        }
      },
      "patch": {
        "x-hideReplay": true,
        "operationId": "patch-transfers-lines",
        "tags": [
          "Transfers"
        ],
        "summary": "Updates existing lines of a given Transfer",
        "description": "#### Permission Requirements\n- Permission Path: **Purchasing > Transfers > Transfer Editor > Issue**\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "CommDoc Id of Transfer",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "description": "Any alterations to a Transfer",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/Api.Models.Dto.CommDocLineUpdate"
                }
              }
            },
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/Api.Models.Dto.CommDocLineUpdate"
                }
              }
            },
            "text/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/Api.Models.Dto.CommDocLineUpdate"
                }
              }
            },
            "application/*+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/Api.Models.Dto.CommDocLineUpdate"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Api.Models.Dto.CommdocLine"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Api.Models.Dto.CommdocLine"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Api.Models.Dto.CommdocLine"
                  }
                }
              }
            }
          },
          "403": {
            "description": "User does not have sufficient access for this endpoint: Access required Purchasing > Transfers > TransferEditor > Issue."
          },
          "429": {
            "description": "Rate limiting quota exceeded\r\n            \r\n            Apply pause on further requests to the api using a wait method for the amount of seconds \r\n            presented in the Response Header Key 'Retry-After'.\r\n            \r\n            To prevent running into further instances of this rate limiting, use the Response Headers \r\n            returned back from all other requests to ensure there is enough buffer.\r\n            \r\n            For further information see Rate Limiting Section of Getting Started of api documentation site."
          },
          "500": {
            "description": "An internal error has occured or the database is currently offline for\r\n            connections.",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              }
            }
          }
        }
      },
      "delete": {
        "x-hideReplay": true,
        "operationId": "delete-transfers-lines",
        "tags": [
          "Transfers"
        ],
        "summary": "Delete existing lines from a Transfer",
        "description": "#### Permission Requirements\n- Permission Path: **Purchasing > Transfers > Transfer Editor > Issue**\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "CommDoc Id of Transfer",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "description": "unique identifiers of lines to be deleted",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "string",
                  "format": "uuid"
                }
              }
            },
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "string",
                  "format": "uuid"
                }
              }
            },
            "text/json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "string",
                  "format": "uuid"
                }
              }
            },
            "application/*+json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "string",
                  "format": "uuid"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Api.Models.Dto.CommdocLine"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Api.Models.Dto.CommdocLine"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Api.Models.Dto.CommdocLine"
                  }
                }
              }
            }
          },
          "403": {
            "description": "User does not have sufficient access for this endpoint: Access required Purchasing > Transfers > TransferEditor > Issue."
          },
          "429": {
            "description": "Rate limiting quota exceeded\r\n            \r\n            Apply pause on further requests to the api using a wait method for the amount of seconds \r\n            presented in the Response Header Key 'Retry-After'.\r\n            \r\n            To prevent running into further instances of this rate limiting, use the Response Headers \r\n            returned back from all other requests to ensure there is enough buffer.\r\n            \r\n            For further information see Rate Limiting Section of Getting Started of api documentation site."
          },
          "500": {
            "description": "An internal error has occured or the database is currently offline for\r\n            connections.",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/transfers/{id}": {
      "get": {
        "x-hideReplay": true,
        "operationId": "get-transfers-byid",
        "tags": [
          "Transfers"
        ],
        "summary": "Gets a Transfer By ID",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Expand",
            "in": "query",
            "description": "### Expand Options:\r\n- Lines\r\n- Items",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "PageNumber",
            "in": "query",
            "description": "Page Number for the result set.\r\n\r\nThis is expected to be an integer value greater than 0. Defaults to 1 when not passed in.\r\n\r\nFor more information see the Getting Started Section for Pagination.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "PageSize",
            "in": "query",
            "description": "Page Size\r\n- Default page size: 100 \r\n- Max page size: 500\r\n\r\nThis is expected to be an integer value greater than 0. Defaults to 100 when not passed in.\r\n\r\nFor more information see the Getting Started Section for Pagination.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "Filter",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "OrderBy",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.Dto.Transfer"
                }
              }
            }
          },
          "429": {
            "description": "Rate limiting quota exceeded\r\n            \r\n            Apply pause on further requests to the api using a wait method for the amount of seconds \r\n            presented in the Response Header Key 'Retry-After'.\r\n            \r\n            To prevent running into further instances of this rate limiting, use the Response Headers \r\n            returned back from all other requests to ensure there is enough buffer.\r\n            \r\n            For further information see Rate Limiting Section of Getting Started of api documentation site."
          },
          "500": {
            "description": "An internal error has occured or the database is currently offline for\r\n            connections.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              }
            }
          }
        }
      },
      "patch": {
        "x-hideReplay": true,
        "operationId": "patch-transfers-byid",
        "tags": [
          "Transfers"
        ],
        "summary": "Updates an existing Transfer",
        "description": "#### Permission Requirements\n- Permission Path: **Purchasing > Transfers > Transfer Editor > Issue**\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "CommDoc Id of Transfer",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "description": "Updated data regarding Transfer",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/Api.Models.Dto.TransferUpdate"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Api.Models.Dto.TransferUpdate"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Api.Models.Dto.TransferUpdate"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Api.Models.Dto.TransferUpdate"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.Dto.Transfer"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.Dto.Transfer"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.Dto.Transfer"
                }
              }
            }
          },
          "400": {
            "description": "Error processing request, see response message for further information.",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              }
            }
          },
          "403": {
            "description": "User does not have sufficient access for this endpoint: Access required Purchasing > Transfers > TransferEditor > Issue."
          },
          "429": {
            "description": "Rate limiting quota exceeded\r\n            \r\n            Apply pause on further requests to the api using a wait method for the amount of seconds \r\n            presented in the Response Header Key 'Retry-After'.\r\n            \r\n            To prevent running into further instances of this rate limiting, use the Response Headers \r\n            returned back from all other requests to ensure there is enough buffer.\r\n            \r\n            For further information see Rate Limiting Section of Getting Started of api documentation site."
          },
          "500": {
            "description": "An internal error has occured or the database is currently offline for\r\n            connections.",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/vendors": {
      "get": {
        "x-hideReplay": true,
        "operationId": "get-vendors",
        "tags": [
          "Vendors"
        ],
        "summary": "Getting Vendors",
        "parameters": [
          {
            "name": "Filter",
            "in": "query",
            "description": "### Filter Options:\r\n- code\r\n- description\r\n- url\r\n- collectsTax\r\n- notes\r\n- created\r\n- lastUpdated",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "OrderBy",
            "in": "query",
            "description": "### Order By Options:\r\n- code\r\n- created\r\n- lastUpdated",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "PageNumber",
            "in": "query",
            "description": "Page Number for the result set.\r\n\r\nThis is expected to be an integer value greater than 0. Defaults to 1 when not passed in.\r\n\r\nFor more information see the Getting Started Section for Pagination.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "PageSize",
            "in": "query",
            "description": "Page Size\r\n- Default page size: 100 \r\n- Max page size: 500\r\n\r\nThis is expected to be an integer value greater than 0. Defaults to 100 when not passed in.\r\n\r\nFor more information see the Getting Started Section for Pagination.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Api.Models.Dto.VendorGet"
                  }
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Content",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ValidationResultModel"
                }
              }
            }
          },
          "429": {
            "description": "Rate limiting quota exceeded\r\n            \r\n            Apply pause on further requests to the api using a wait method for the amount of seconds \r\n            presented in the Response Header Key 'Retry-After'.\r\n            \r\n            To prevent running into further instances of this rate limiting, use the Response Headers \r\n            returned back from all other requests to ensure there is enough buffer.\r\n            \r\n            For further information see Rate Limiting Section of Getting Started of api documentation site."
          },
          "500": {
            "description": "An internal error has occured or the database is currently offline for\r\n            connections.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              }
            }
          }
        }
      },
      "post": {
        "x-hideReplay": true,
        "operationId": "post-vendors",
        "tags": [
          "Vendors"
        ],
        "summary": "Creating new Vendors",
        "requestBody": {
          "description": "Object Used to Create Vendors",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/Api.Models.Dto.VendorCreate"
                }
              }
            },
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/Api.Models.Dto.VendorCreate"
                }
              }
            },
            "text/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/Api.Models.Dto.VendorCreate"
                }
              }
            },
            "application/*+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/Api.Models.Dto.VendorCreate"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Api.Models.Dto.VendorGet"
                  }
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Content",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ValidationResultModel"
                }
              }
            }
          },
          "429": {
            "description": "Rate limiting quota exceeded\r\n            \r\n            Apply pause on further requests to the api using a wait method for the amount of seconds \r\n            presented in the Response Header Key 'Retry-After'.\r\n            \r\n            To prevent running into further instances of this rate limiting, use the Response Headers \r\n            returned back from all other requests to ensure there is enough buffer.\r\n            \r\n            For further information see Rate Limiting Section of Getting Started of api documentation site."
          },
          "500": {
            "description": "An internal error has occured or the database is currently offline for\r\n            connections.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              }
            }
          }
        }
      },
      "put": {
        "x-hideReplay": true,
        "operationId": "put-vendors",
        "tags": [
          "Vendors"
        ],
        "summary": "Updating existing Vendors",
        "description": "If the stores array is null or empty, then Store associations will not be updated.\r\nIf you want to set the availability of a store for a given vendor, add elements to the `stores` field, with the `Available` value set.",
        "requestBody": {
          "description": "Object Used to update an existing Vendors",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/Api.Models.Dto.VendorUpdate"
                }
              }
            },
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/Api.Models.Dto.VendorUpdate"
                }
              }
            },
            "text/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/Api.Models.Dto.VendorUpdate"
                }
              }
            },
            "application/*+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/Api.Models.Dto.VendorUpdate"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Api.Models.Dto.VendorGet"
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limiting quota exceeded\r\n            \r\n            Apply pause on further requests to the api using a wait method for the amount of seconds \r\n            presented in the Response Header Key 'Retry-After'.\r\n            \r\n            To prevent running into further instances of this rate limiting, use the Response Headers \r\n            returned back from all other requests to ensure there is enough buffer.\r\n            \r\n            For further information see Rate Limiting Section of Getting Started of api documentation site."
          },
          "500": {
            "description": "An internal error has occured or the database is currently offline for\r\n            connections.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              }
            }
          }
        }
      },
      "delete": {
        "x-hideReplay": true,
        "operationId": "delete-vendors",
        "tags": [
          "Vendors"
        ],
        "summary": "Bulk delete Vendors",
        "deprecated": true,
        "requestBody": {
          "description": "List of Vendor Ids to be deleted",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "string",
                  "format": "uuid"
                }
              }
            },
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "string",
                  "format": "uuid"
                }
              }
            },
            "text/json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "string",
                  "format": "uuid"
                }
              }
            },
            "application/*+json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "string",
                  "format": "uuid"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "403": {
            "description": "Note that since Fetch v3.30.0, this endpoint has been deprecated. Please contact <api@yellowdogsoftware.com> for any special requests regarding this functionality."
          },
          "429": {
            "description": "Rate limiting quota exceeded\r\n            \r\n            Apply pause on further requests to the api using a wait method for the amount of seconds \r\n            presented in the Response Header Key 'Retry-After'.\r\n            \r\n            To prevent running into further instances of this rate limiting, use the Response Headers \r\n            returned back from all other requests to ensure there is enough buffer.\r\n            \r\n            For further information see Rate Limiting Section of Getting Started of api documentation site."
          },
          "500": {
            "description": "An internal error has occured or the database is currently offline for\r\n            connections.",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/vendors/{id}": {
      "get": {
        "x-hideReplay": true,
        "operationId": "get-vendors-byid",
        "tags": [
          "Vendors"
        ],
        "summary": "Getting Vendor by Id",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Vendor Id",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.Dto.VendorGet"
                }
              }
            }
          },
          "429": {
            "description": "Rate limiting quota exceeded\r\n            \r\n            Apply pause on further requests to the api using a wait method for the amount of seconds \r\n            presented in the Response Header Key 'Retry-After'.\r\n            \r\n            To prevent running into further instances of this rate limiting, use the Response Headers \r\n            returned back from all other requests to ensure there is enough buffer.\r\n            \r\n            For further information see Rate Limiting Section of Getting Started of api documentation site."
          },
          "500": {
            "description": "An internal error has occured or the database is currently offline for\r\n            connections.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              }
            }
          }
        }
      },
      "delete": {
        "x-hideReplay": true,
        "operationId": "delete-vendors-byid",
        "tags": [
          "Vendors"
        ],
        "summary": "Deleting a Vendor",
        "deprecated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Vendor Id",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "403": {
            "description": "Note that since Fetch v3.30.0, this endpoint has been deprecated. Please contact <api@yellowdogsoftware.com> for any special requests regarding this functionality."
          },
          "429": {
            "description": "Rate limiting quota exceeded\r\n            \r\n            Apply pause on further requests to the api using a wait method for the amount of seconds \r\n            presented in the Response Header Key 'Retry-After'.\r\n            \r\n            To prevent running into further instances of this rate limiting, use the Response Headers \r\n            returned back from all other requests to ensure there is enough buffer.\r\n            \r\n            For further information see Rate Limiting Section of Getting Started of api documentation site."
          },
          "500": {
            "description": "An internal error has occured or the database is currently offline for\r\n            connections.",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Api.Models.ErrorResponse"
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "Api.Models.Dto.AccountingUser": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "employeeNumber": {
            "type": [
              "string",
              "null"
            ]
          },
          "firstName": {
            "type": [
              "string",
              "null"
            ]
          },
          "middleName": {
            "type": [
              "string",
              "null"
            ]
          },
          "lastName": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "additionalProperties": false
      },
      "Api.Models.Dto.AccountingVendor": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "code": {
            "type": [
              "string",
              "null"
            ]
          },
          "description": {
            "type": [
              "string",
              "null"
            ]
          },
          "accountingId": {
            "type": [
              "string",
              "null"
            ]
          },
          "reference": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "additionalProperties": false
      },
      "Api.Models.Dto.AccountingStore": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "code": {
            "type": [
              "string",
              "null"
            ]
          },
          "description": {
            "type": [
              "string",
              "null"
            ]
          },
          "accountingId": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "additionalProperties": false
      },
      "Api.Models.Dto.AccountingLine": {
        "type": "object",
        "properties": {
          "type": {
            "type": [
              "string",
              "null"
            ]
          },
          "glAccount": {
            "type": [
              "string",
              "null"
            ]
          },
          "credit": {
            "type": "number",
            "format": "double"
          },
          "debit": {
            "type": "number",
            "format": "double"
          }
        },
        "additionalProperties": false
      },
      "Api.Models.Dto.AccountingReturnToVendor": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "docNumber": {
            "type": [
              "string",
              "null"
            ]
          },
          "date": {
            "type": "string",
            "format": "date-time"
          },
          "paid": {
            "type": "boolean"
          },
          "prepaid": {
            "type": "boolean"
          },
          "paymentDue": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "billed": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time",
            "description": "When working with v376 and earlier versions of YDInv.exe, this 'billed' property is mapped to the 'Billed Date' field of the invoice UI. <br/> When working with v377 or later versions of YDInv.exe, this 'billed' property is mapped to the 'Billed Date' field of the invoice UI."
          },
          "invoiceDate": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "committed": {
            "type": "string",
            "format": "date-time"
          },
          "created": {
            "type": "string",
            "format": "date-time"
          },
          "lastUpdated": {
            "type": "string",
            "format": "date-time"
          },
          "reference": {
            "type": [
              "string",
              "null"
            ]
          },
          "description": {
            "type": [
              "string",
              "null"
            ]
          },
          "instructions": {
            "type": [
              "string",
              "null"
            ]
          },
          "notes": {
            "type": [
              "string",
              "null"
            ]
          },
          "totalAmount": {
            "type": "number",
            "format": "double"
          },
          "currencyCode": {
            "type": [
              "string",
              "null"
            ]
          },
          "committedByUser": {
            "$ref": "#/components/schemas/Api.Models.Dto.AccountingUser"
          },
          "createdByUser": {
            "$ref": "#/components/schemas/Api.Models.Dto.AccountingUser"
          },
          "vendor": {
            "$ref": "#/components/schemas/Api.Models.Dto.AccountingVendor"
          },
          "store": {
            "$ref": "#/components/schemas/Api.Models.Dto.AccountingStore"
          },
          "lines": {
            "type": [
              "array",
              "null"
            ],
            "items": {
              "$ref": "#/components/schemas/Api.Models.Dto.AccountingLine"
            }
          }
        },
        "additionalProperties": false
      },
      "Api.Models.ErrorMessage": {
        "type": "object",
        "properties": {
          "message": {
            "type": [
              "string",
              "null"
            ]
          },
          "extensions": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "additionalProperties": false
      },
      "Api.Models.ErrorResponse": {
        "type": "object",
        "properties": {
          "message": {
            "type": [
              "string",
              "null"
            ]
          },
          "errors": {
            "type": [
              "array",
              "null"
            ],
            "items": {
              "$ref": "#/components/schemas/Api.Models.ErrorMessage"
            }
          }
        },
        "additionalProperties": false
      },
      "Api.Models.Dto.AccountingInvoice": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "docNumber": {
            "type": [
              "string",
              "null"
            ]
          },
          "date": {
            "type": "string",
            "format": "date-time"
          },
          "paid": {
            "type": "boolean"
          },
          "prepaid": {
            "type": "boolean"
          },
          "paymentDue": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "billed": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time",
            "description": "When working with v376 and earlier versions of YDInv.exe, this 'billed' property is mapped to the 'Billed Date' field of the invoice UI. <br/> When working with v377 or later versions of YDInv.exe, this 'billed' property is mapped to the 'Billed Date' field of the invoice UI."
          },
          "invoiceDate": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "committed": {
            "type": "string",
            "format": "date-time"
          },
          "created": {
            "type": "string",
            "format": "date-time"
          },
          "lastUpdated": {
            "type": "string",
            "format": "date-time"
          },
          "reference": {
            "type": [
              "string",
              "null"
            ]
          },
          "description": {
            "type": [
              "string",
              "null"
            ]
          },
          "instructions": {
            "type": [
              "string",
              "null"
            ]
          },
          "notes": {
            "type": [
              "string",
              "null"
            ]
          },
          "totalAmount": {
            "type": "number",
            "format": "double"
          },
          "currencyCode": {
            "type": [
              "string",
              "null"
            ]
          },
          "committedByUser": {
            "$ref": "#/components/schemas/Api.Models.Dto.AccountingUser"
          },
          "createdByUser": {
            "$ref": "#/components/schemas/Api.Models.Dto.AccountingUser"
          },
          "vendor": {
            "$ref": "#/components/schemas/Api.Models.Dto.AccountingVendor"
          },
          "store": {
            "$ref": "#/components/schemas/Api.Models.Dto.AccountingStore"
          },
          "lines": {
            "type": [
              "array",
              "null"
            ],
            "items": {
              "$ref": "#/components/schemas/Api.Models.Dto.AccountingLine"
            }
          }
        },
        "additionalProperties": false
      },
      "Api.Models.Dto.AccountingRevenue": {
        "type": "object",
        "properties": {
          "date": {
            "type": "string",
            "format": "date-time"
          },
          "store": {
            "$ref": "#/components/schemas/Api.Models.Dto.AccountingStore"
          },
          "lines": {
            "type": [
              "array",
              "null"
            ],
            "items": {
              "$ref": "#/components/schemas/Api.Models.Dto.AccountingLine"
            }
          }
        },
        "additionalProperties": false
      },
      "Api.Models.Dto.AccountingJournalEntry": {
        "type": "object",
        "properties": {
          "date": {
            "type": "string",
            "format": "date-time"
          },
          "store": {
            "$ref": "#/components/schemas/Api.Models.Dto.AccountingStore"
          },
          "lines": {
            "type": [
              "array",
              "null"
            ],
            "items": {
              "$ref": "#/components/schemas/Api.Models.Dto.AccountingLine"
            }
          }
        },
        "additionalProperties": false
      },
      "Api.Models.Dto.AccountingCodeStore": {
        "type": "object",
        "properties": {
          "accountGLCode": {
            "type": [
              "string",
              "null"
            ]
          },
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "code": {
            "type": [
              "string",
              "null"
            ]
          },
          "description": {
            "type": [
              "string",
              "null"
            ]
          },
          "accountingId": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "additionalProperties": false
      },
      "Api.Models.Dto.AccountingCode": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "description": {
            "type": [
              "string",
              "null"
            ]
          },
          "type": {
            "type": [
              "string",
              "null"
            ]
          },
          "placement": {
            "type": "integer",
            "format": "int32"
          },
          "store": {
            "$ref": "#/components/schemas/Api.Models.Dto.AccountingCodeStore"
          }
        },
        "additionalProperties": false
      },
      "Api.Models.Dto.CountSheetItemGet": {
        "type": "object",
        "properties": {
          "countSheetID": {
            "type": "string",
            "description": "countSheetID is the unique identifier for the CountSheet; formatted as GUID (example: 433ef432-f63e-4c26-a29f-39d4079d9fc9)",
            "format": "uuid"
          },
          "flagID": {
            "type": [
              "string",
              "null"
            ],
            "format": "uuid"
          },
          "flagCode": {
            "type": [
              "string",
              "null"
            ]
          },
          "flagDescription": {
            "type": [
              "string",
              "null"
            ]
          },
          "itemID": {
            "type": "string",
            "format": "uuid"
          },
          "placement": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "Api.Models.Dto.CountSheetGet": {
        "type": "object",
        "properties": {
          "countSheetID": {
            "type": "string",
            "description": "countSheetID is the unique identifier for the CountSheet; formatted as GUID (example: 433ef432-f63e-4c26-a29f-39d4079d9fc9)",
            "format": "uuid"
          },
          "description": {
            "type": [
              "string",
              "null"
            ]
          },
          "storeID": {
            "type": "string",
            "format": "uuid"
          },
          "countSheetItems": {
            "type": [
              "array",
              "null"
            ],
            "items": {
              "$ref": "#/components/schemas/Api.Models.Dto.CountSheetItemGet"
            }
          }
        },
        "additionalProperties": false
      },
      "Api.Models.Dto.CurrencyGet": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "currencyCode": {
            "type": [
              "string",
              "null"
            ]
          },
          "date": {
            "type": "string",
            "format": "date-time"
          },
          "exchangeRate": {
            "type": "number",
            "format": "double"
          },
          "lastUpdated": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "Api.Models.Dto.CurrencyUpdate": {
        "required": [
          "currencyCode",
          "date",
          "exchangeRate",
          "id"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "currencyCode": {
            "maxLength": 256,
            "minLength": 0,
            "type": "string"
          },
          "date": {
            "type": "string",
            "format": "date-time"
          },
          "exchangeRate": {
            "type": "number",
            "format": "double"
          }
        },
        "additionalProperties": false
      },
      "Api.Models.Dto.CurrencyCreate": {
        "required": [
          "currencyCode",
          "date",
          "exchangeRate"
        ],
        "type": "object",
        "properties": {
          "currencyCode": {
            "maxLength": 256,
            "minLength": 0,
            "type": "string"
          },
          "date": {
            "type": "string",
            "format": "date-time"
          },
          "exchangeRate": {
            "type": "number",
            "format": "double"
          }
        },
        "additionalProperties": false
      },
      "Api.Models.Dto.DimensionGet": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "DimensionID is the unique identifier for the Dimension; formatted as GUID (example: 433ef432-f63e-4c26-a29f-39d4079d9fc9)",
            "format": "uuid"
          },
          "lastUpdated": {
            "type": "string",
            "description": "DateTime when the row was updated in Yellow Dog, in ISO 8601 format",
            "format": "date-time"
          },
          "type": {
            "type": [
              "string",
              "null"
            ],
            "description": "Determines which Dimension type is being used. There are up to 10 user-defined \"Types\" available."
          },
          "description": {
            "type": [
              "string",
              "null"
            ],
            "description": "Description of the Dimension"
          }
        },
        "additionalProperties": false
      },
      "Api.Models.Dto.DimensionUpdate": {
        "required": [
          "description",
          "type"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "DimensionID is the unique identifier for the Dimension; formatted as GUID (example: 433ef432-f63e-4c26-a29f-39d4079d9fc9)",
            "format": "uuid"
          },
          "type": {
            "minLength": 1,
            "type": "string",
            "description": "Determines which Dimension type is being used. This returns the names of Dimension1-10. Please refer to the MetaInfo Endpoint for what these types are viewed as in Yellow Dog."
          },
          "description": {
            "minLength": 1,
            "type": "string",
            "description": "Description of the Dimension"
          }
        },
        "additionalProperties": false
      },
      "Api.Models.Dto.DimensionCreate": {
        "type": "object",
        "properties": {
          "type": {
            "type": [
              "string",
              "null"
            ],
            "description": "Determines which Dimension type is being used. There are up to 10 user-defined \"Types\" available."
          },
          "description": {
            "type": [
              "string",
              "null"
            ],
            "description": "Description of the Dimension"
          }
        },
        "additionalProperties": false
      },
      "Api.Models.Dto.Dimension": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "DimensionID is the unique identifier for the Dimension; formatted as GUID (example: 433ef432-f63e-4c26-a29f-39d4079d9fc9)",
            "format": "uuid"
          },
          "type": {
            "type": [
              "string",
              "null"
            ],
            "description": "Determines which Dimension type is being used. There are up to 10 user-defined \"Types\" available."
          },
          "description": {
            "type": [
              "string",
              "null"
            ],
            "description": "Description of the Dimension"
          }
        },
        "additionalProperties": false
      },
      "Api.Models.Dto.FlagGet": {
        "type": "object",
        "properties": {
          "flagID": {
            "type": "string",
            "description": "FlagID is the unique identifier for the Flag; formatted as GUID (example: 433ef432-f63e-4c26-a29f-39d4079d9fc9)",
            "format": "uuid"
          },
          "code": {
            "type": [
              "string",
              "null"
            ],
            "description": "Main number associated with the Flag in the Yellow Dog UI; not required to be unique"
          },
          "placement": {
            "type": "integer",
            "description": "An item can have multiple Flag assignments.",
            "format": "int32"
          },
          "description": {
            "type": [
              "string",
              "null"
            ],
            "description": "Description of the Flag"
          },
          "rowUpdated": {
            "type": "string",
            "description": "DateTime when the row was last updated in Yellow Dog, in ISO 8601 format",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "Api.Helpers.QueryParameters.InventoryQueryParameters": {
        "type": "object",
        "properties": {
          "stores": {
            "type": [
              "array",
              "null"
            ],
            "items": {
              "type": "string",
              "format": "uuid"
            },
            "description": "- List of StoreIDs"
          },
          "items": {
            "type": [
              "array",
              "null"
            ],
            "items": {
              "type": "string",
              "format": "uuid"
            },
            "description": "- List of ItemIDs\r\n- If provided the LastUpdated field will be ignored."
          },
          "lastUpdated": {
            "type": [
              "string",
              "null"
            ],
            "description": "When provided this will limit the response to only include items that have had an on hand adjustment since this passed in date.\r\n\r\n*This is ignored if any values are passed in the Items parameter*",
            "format": "date-time"
          },
          "pageNumber": {
            "type": "integer",
            "description": "- PageNumber Starts at 1",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "description": "- Default page size: 100\r\n- Max page size: 500",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "Api.Models.Dto.StoreInventory": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Id of the Store",
            "format": "uuid"
          },
          "onHand": {
            "type": "number",
            "description": "Current on hand value for the Item in the Store referenced.",
            "format": "double"
          }
        },
        "additionalProperties": false
      },
      "Api.Models.Dto.Inventory": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Id of the Item",
            "format": "uuid"
          },
          "stores": {
            "type": [
              "array",
              "null"
            ],
            "items": {
              "$ref": "#/components/schemas/Api.Models.Dto.StoreInventory"
            },
            "description": "Listing of the Item's on-hand value per store."
          }
        },
        "additionalProperties": false
      },
      "Api.Models.Dto.StagedInvoiceBase": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "creationKey": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "additionalProperties": false
      },
      "Api.Models.Dto.StagedInvoicePostLine": {
        "type": "object",
        "properties": {
          "lineType": {
            "type": [
              "string",
              "null"
            ]
          },
          "lineNumber": {
            "type": [
              "integer",
              "null"
            ],
            "format": "int64"
          },
          "lineIdentifier": {
            "type": [
              "string",
              "null"
            ]
          },
          "vendorPNMatch": {
            "type": [
              "string",
              "null"
            ],
            "description": "Gets the Vendor Part Number Match (SKU)"
          },
          "reference": {
            "type": [
              "string",
              "null"
            ]
          },
          "description": {
            "type": [
              "string",
              "null"
            ]
          },
          "quantity": {
            "type": [
              "number",
              "null"
            ],
            "format": "double"
          },
          "sizeMatch": {
            "type": [
              "string",
              "null"
            ]
          },
          "beanAccountMatch": {
            "type": [
              "string",
              "null"
            ]
          },
          "vendorPrice": {
            "type": [
              "number",
              "null"
            ],
            "format": "double"
          },
          "expenseAmount": {
            "type": [
              "number",
              "null"
            ],
            "format": "double"
          },
          "upc": {
            "type": [
              "string",
              "null"
            ]
          },
          "packSize": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "additionalProperties": false
      },
      "Api.Models.Dto.StagedInvoiceLineCreateRequest": {
        "type": "object",
        "properties": {
          "lines": {
            "minItems": 1,
            "type": [
              "array",
              "null"
            ],
            "items": {
              "$ref": "#/components/schemas/Api.Models.Dto.StagedInvoicePostLine"
            },
            "description": "Gets the list of invoice lines."
          }
        },
        "additionalProperties": false,
        "description": "Represents a request to stage an invoice."
      },
      "Api.Models.Dto.AttachedLink": {
        "type": "object",
        "properties": {
          "attachedLinkID": {
            "type": "string",
            "format": "uuid"
          },
          "ownerID": {
            "type": "string",
            "format": "uuid"
          },
          "url": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "additionalProperties": false
      },
      "Api.Models.Dto.StagedInvoiceUpdate": {
        "type": "object",
        "properties": {
          "status": {
            "type": [
              "string",
              "null"
            ],
            "description": "Sets the status of the invoice.\r\nThe status can be one of the following values:\r\n- `Initialized`\r\n- `New`\r\n- `InProcess`\r\n- `ConvertedOpen`\r\n– `ConvertedCommitted`\r\n- `Removed`\r\n- `Unknown`\r\n- `Failed`"
          },
          "storeMatch": {
            "type": [
              "string",
              "null"
            ],
            "description": "Sets the store match of the invoice. (what will be used to match to match to a yellow dog store)"
          },
          "vendorMatch": {
            "type": [
              "string",
              "null"
            ],
            "description": "Sets the vendor match of the invoice. (what will be used to match to match to a yellow dog vendor)"
          },
          "code": {
            "type": [
              "string",
              "null"
            ],
            "description": "Sets the code (AKA, Invoice Number) of the invoice."
          },
          "description": {
            "type": [
              "string",
              "null"
            ],
            "description": "Sets the description of the invoice."
          },
          "reference": {
            "type": [
              "string",
              "null"
            ],
            "description": "Sets the reference of the invoice."
          },
          "instructions": {
            "type": [
              "string",
              "null"
            ],
            "description": "Sets the instructions of the invoice."
          },
          "notes": {
            "type": [
              "string",
              "null"
            ],
            "description": "Sets the notes of the invoice."
          },
          "receivedAt": {
            "type": [
              "string",
              "null"
            ],
            "description": "Sets when the invoice was received.",
            "format": "date-time"
          },
          "invoicedAt": {
            "type": [
              "string",
              "null"
            ],
            "description": "Sets when the invoice was invoiced.",
            "format": "date-time"
          },
          "dueAt": {
            "type": [
              "string",
              "null"
            ],
            "description": "Sets when the invoice is due.",
            "format": "date-time"
          },
          "totalAmount": {
            "type": "number",
            "description": "Sets the total amount of the invoice.",
            "format": "double"
          },
          "customerNumber": {
            "maxLength": 256,
            "type": [
              "string",
              "null"
            ],
            "description": "sets the customer number from the invoice"
          },
          "currencyCode": {
            "pattern": "^[A-Z]{3}$",
            "type": [
              "string",
              "null"
            ],
            "description": "Sets the currency Code"
          },
          "purchaseOrderNumber": {
            "type": [
              "string",
              "null"
            ],
            "description": "Sets the purchase order number"
          }
        },
        "additionalProperties": false,
        "description": "Represents a staged invoice for updating."
      },
      "Api.Models.Dto.ItemAliasCreateRequest": {
        "required": [
          "code",
          "itemID"
        ],
        "type": "object",
        "properties": {
          "itemID": {
            "type": "string",
            "format": "uuid"
          },
          "code": {
            "minLength": 1,
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "Api.Models.Dto.ItemAliasCreateResponse": {
        "required": [
          "code",
          "itemID"
        ],
        "type": "object",
        "properties": {
          "itemAliasID": {
            "type": [
              "string",
              "null"
            ],
            "format": "uuid"
          },
          "created": {
            "type": "boolean"
          },
          "itemID": {
            "type": "string",
            "format": "uuid"
          },
          "code": {
            "minLength": 1,
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "Api.Models.Dto.Item.ItemDimension": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "DimensionID is the unique identifier for the Dimension; formatted as GUID (example: 433ef432-f63e-4c26-a29f-39d4079d9fc9)",
            "format": "uuid"
          },
          "description": {
            "type": [
              "string",
              "null"
            ],
            "description": "Description of the Dimension"
          }
        },
        "additionalProperties": false
      },
      "Api.Models.Dto.Item.ItemLevel": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "LevelID is the unique identifier for the Level; formatted as GUID (example: 433ef432-f63e-4c26-a29f-39d4079d9fc9)",
            "format": "uuid"
          },
          "code": {
            "type": [
              "string",
              "null"
            ]
          },
          "description": {
            "type": [
              "string",
              "null"
            ],
            "description": "Description of the Level to which the item belongs"
          }
        },
        "additionalProperties": false,
        "description": "Level is a hierarchy of groupings that are used for reporting and third party interface purposes"
      },
      "Api.Models.Dto.GenericObject": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          }
        },
        "additionalProperties": false
      },
      "Api.Models.Dto.Item.WebProperties": {
        "type": "object",
        "properties": {
          "title": {
            "type": [
              "string",
              "null"
            ],
            "description": "Main item description for the item in the web cart; limited to 256 characters; can be HTML if the user specifies formatting in text areas"
          },
          "description": {
            "type": [
              "string",
              "null"
            ],
            "description": "A short text description for the item, to be displayed in the web cart; can be HTML if the user specifies formatting in text areas"
          },
          "extendedDescription": {
            "type": [
              "string",
              "null"
            ],
            "description": "A longer text description for the item, to be displayed in the web cart; can be HTML if the user specifies formatting in text areas"
          },
          "availableDate": {
            "type": [
              "string",
              "null"
            ],
            "description": "DateTime when the item will start to be available to the web cart, in ISO 8601 format",
            "format": "date-time"
          },
          "expiresDate": {
            "type": [
              "string",
              "null"
            ],
            "description": "DateTime when the item will stop being available to the web cart, in ISO 8601 format.",
            "format": "date-time"
          },
          "sale": {
            "type": "boolean",
            "description": "True= This item is on sale and should be sold at either the ItemSaleRetail or ItemSalePercentOff, whichever is present; False=This item should be sold at it's store retail price."
          },
          "itemSaleRetail": {
            "type": [
              "number",
              "null"
            ],
            "description": "Web Sale price; used only when Sale=True; an item can only have either ItemSaleRetail or ItemSalePercentOff, not both",
            "format": "double"
          },
          "itemSalePercentOff": {
            "type": [
              "number",
              "null"
            ],
            "description": "Web sale discount percentage; used when Sale=True; an item can only have either ItemSaleRetail or ItemSalePercentOff, not both",
            "format": "double"
          },
          "saleBegins": {
            "type": [
              "string",
              "null"
            ],
            "description": "DateTime when the Web Sale will begin, in ISO 8601 format",
            "format": "date-time"
          },
          "saleEnds": {
            "type": [
              "string",
              "null"
            ],
            "description": "DateTime when the Web Sale will end, in ISO 8601 format",
            "format": "date-time"
          },
          "available": {
            "type": "boolean",
            "description": "True=This item is available to be sold in the Web Cart; False=This item is not available to be sold in the web cart"
          },
          "flagA": {
            "type": "boolean",
            "description": "True=This item should be designated as Flag A in the web cart; False=This item should not be designated as Flag A in the web cart"
          },
          "flagB": {
            "type": "boolean",
            "description": "True=This item should be designated as Flag B in the web cart; False=This item should not be designated as Flag B in the web cart"
          },
          "flagC": {
            "type": "boolean",
            "description": "True=This item should be designated as Flag C in the web cart; False=This item should not be designated as Flag C in the web cart"
          },
          "tags": {
            "type": [
              "string",
              "null"
            ]
          },
          "productType": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "additionalProperties": false
      },
      "System.Collections.Generic.KeyValuePair": {
        "type": "object",
        "properties": {
          "key": {
            "type": [
              "string",
              "null"
            ]
          },
          "value": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "additionalProperties": false
      },
      "Api.Models.Dto.Item.Item2StoreGetLegacy": {
        "type": "object",
        "properties": {
          "_Interfaces": {
            "type": [
              "string",
              "null"
            ],
            "writeOnly": true
          },
          "id": {
            "type": "string",
            "description": "Yellow Dog's primary key for the Store; always unique; formatted as GUID (example: 433ef432-f63e-4c26-a29f-39d4079d9fc9)",
            "format": "uuid"
          },
          "bin": {
            "type": [
              "string",
              "null"
            ]
          },
          "reorderPoint": {
            "type": "number",
            "format": "double"
          },
          "parLevel": {
            "type": "number",
            "format": "double"
          },
          "tariffCode": {
            "type": [
              "string",
              "null"
            ]
          },
          "description": {
            "type": [
              "string",
              "null"
            ],
            "description": "Main store description in Yellow Dog"
          },
          "code": {
            "type": [
              "string",
              "null"
            ],
            "description": "Main number associated with the store in the Yellow Dog UI; unique per database"
          },
          "revenueCenterNumber": {
            "type": [
              "string",
              "null"
            ],
            "description": "The code used by the third party system that corresponds to their store/location ID"
          },
          "onHand": {
            "type": "number",
            "description": "___WARNING: This value represents a count of inventory that may be hours old because it is not refreshed frequently.___ The latest on hand information for this item or any items since a specified time is accomplished using the `POST /inventory` endpoint.",
            "format": "double"
          },
          "retailPrice1": {
            "type": "number",
            "format": "double"
          },
          "retailPrice2": {
            "type": "number",
            "format": "double"
          },
          "retailPrice3": {
            "type": "number",
            "format": "double"
          },
          "retailPrice4": {
            "type": "number",
            "format": "double"
          },
          "retailPrice5": {
            "type": "number",
            "format": "double"
          },
          "retailPrice6": {
            "type": "number",
            "format": "double"
          },
          "retailPrice7": {
            "type": "number",
            "format": "double"
          },
          "retailPrice8": {
            "type": "number",
            "format": "double"
          },
          "retailPrice9": {
            "type": "number",
            "format": "double"
          },
          "retailPrice10": {
            "type": "number",
            "format": "double"
          },
          "flags": {
            "type": [
              "array",
              "null"
            ],
            "items": {
              "type": "string"
            },
            "description": "Flags designate storage locations, such as Walk-In, Storage Closet, Freezer, etc., making ordering and physical inventories easier"
          },
          "interfaces": {
            "type": [
              "object",
              "null"
            ],
            "additionalProperties": {
              "type": [
                "string",
                "null"
              ]
            },
            "description": "These are values that can be set differently per third party system; these values correspond to Yellow Dog's Generic Level A-C and Code A-G, \r\nwhich can be individually named in Yellow Dog to fit your system's naming scheme. For example, if your system has a Major Category, you can \r\nrename Generic Level A to Major Category, and you may have Major Category codes and descriptions like 200 Retail, 300 Golf, etc.",
            "readOnly": true
          },
          "additionalInterfaces": {
            "type": [
              "array",
              "null"
            ],
            "items": {
              "$ref": "#/components/schemas/System.Collections.Generic.KeyValuePair"
            },
            "description": "List of interfaces that appear to be set to two values \r\n\r\nIn some scenarios it is possible for an Interface to be set to two different values. \r\nWhen this happens the initial value received is added to the Interfaces property:value. \r\nAny additional settings will be added to the AdditionalInterfaces as a list of KeyValuePairs.",
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "Api.Models.Dto.Item.Item2VendorGet": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Yellow Dog's primary key for the Vendor; always unique; formatted as GUID (example: 4c3ef432-f63e-4c26-a29f-39d4079d9fc9)",
            "format": "uuid"
          },
          "code": {
            "type": [
              "string",
              "null"
            ],
            "description": "Main number associated with the vendor in the Yellow Dog UI; unique per database"
          },
          "description": {
            "type": [
              "string",
              "null"
            ],
            "description": "Main vendor description in Yellow Dog"
          },
          "sku": {
            "type": [
              "string",
              "null"
            ],
            "description": "Vendor's unique ID for the item"
          },
          "price": {
            "type": "number",
            "description": "Vendor's Price for the item",
            "format": "double"
          },
          "isPrimary": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "Api.Models.Dto.Item.ItemImage": {
        "type": "object",
        "properties": {
          "placement": {
            "type": "integer",
            "format": "int64"
          },
          "id": {
            "type": [
              "string",
              "null"
            ],
            "format": "uuid"
          },
          "description": {
            "type": [
              "string",
              "null"
            ]
          },
          "imageURL": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "additionalProperties": false
      },
      "Api.Models.Dto.Item.ItemAttrGet": {
        "type": "object",
        "required": [
          "description",
          "datatype",
          "value",
          "attributeCount",
          "helpText",
          "id"
        ],
        "properties": {
          "description": {
            "type": [
              "string",
              "null"
            ],
            "description": "A descriptive name for the attribute type. Serves as the key in each key-value pair."
          },
          "datatype": {
            "type": "string",
            "description": "This string identifies a type for the attribute value."
          },
          "value": {
            "type": [
              "string",
              "boolean",
              "integer",
              "number",
              "array"
            ],
            "items": {
              "type": "string"
            },
            "description": "This string identifies a type for the attribute value."
          },
          "string": {
            "type": "string",
            "description": "If present, the attribute type is a text string whose value appears in this property."
          },
          "bool": {
            "type": "boolean",
            "description": "If present, the attribute type is boolean with a value of `true` or `false` appearing in this property."
          },
          "int": {
            "type": "integer",
            "format": "int32",
            "description": "If present, the attribute type is an integer whose value appears in this property."
          },
          "float": {
            "type": "number",
            "format": "double",
            "description": "If present, the attribute type is a real number whose value appears in this property."
          },
          "date": {
            "type": "string",
            "format": "date",
            "description": "If present, the attribute type is an ISO 8601 date string whose value appears in this property."
          },
          "time": {
            "type": "string",
            "format": "time",
            "description": "If present, the attribute type is a real number whose value appears in this property."
          },
          "datetime": {
            "type": "string",
            "format": "date-time",
            "description": "If present, the attribute type is a real number whose value appears in this property."
          },
          "select": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "If present, the attribute type is a set of up to ten checkbox options whose value appears in this property as an array of strings corresponding to the checkboxes that are selected for the item."
          },
          "attributeCount": {
            "type": "integer",
            "format": "int32",
            "description": "When datatype is `select`, this is a count of selections in the value array. This count is `1` if the item contains an attribute of any other datatype."
          },
          "helpText": {
            "type": "string",
            "description": "Contains a copy of the helpText property from the corresponding attribute type definition."
          },
          "id": {
            "type": "string",
            "format": "uuid",
            "description": "Uniquely identified the corresponding attribute type definition.."
          }
        },
        "additionalProperties": false
      },
      "Api.Models.Dto.Item.ItemGetLegacy": {
        "required": [
          "id"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Yellow Dog's primary key for the Item; always unique. When pushing items to the API, if an ItemID is present, Yellow Dog will update or create an item. If ItemID is not present, Yellow Dog will create an item and provide the ItemID in response. ItemID is formatted as a GUID (example: 433ef432-f63e-4c26-a29f-39d4079d9fc9)",
            "format": "uuid"
          },
          "description": {
            "type": [
              "string",
              "null"
            ],
            "description": "Main item description in Yellow Dog"
          },
          "posDescription1": {
            "type": [
              "string",
              "null"
            ],
            "description": "Shorter item description for POS terminals; usually limited to 16 characters"
          },
          "posDescription2": {
            "type": [
              "string",
              "null"
            ],
            "description": "Shorter item description for POS terminals; usually limited to 12 characters"
          },
          "sku": {
            "type": [
              "string",
              "null"
            ],
            "description": "Main number associated with the item in the Yellow Dog UI; auto generated by Yellow Dog when the item is created; unique per database"
          },
          "noCount": {
            "type": "boolean",
            "description": "When true, this item's on hand will always report as zero, and no costs or inventory adjustments will be stored."
          },
          "shippingWeight": {
            "type": "number",
            "description": "Shipping Weight of the item. The unit of measure is not specified; this field contains a number only.",
            "format": "double"
          },
          "shippingHeight": {
            "type": "number",
            "description": "Shipping Height of the item. The unit of measure is not specified; this field contains a number only.",
            "format": "double"
          },
          "shippingWidth": {
            "type": "number",
            "description": "Shipping Width of the item. The unit of measure is not specified; this field contains a number only.",
            "format": "double"
          },
          "shippingLength": {
            "type": "number",
            "description": "Shipping Length of the item. The unit of measure is not specified; this field contains a number only.",
            "format": "double"
          },
          "uom": {
            "type": [
              "string",
              "null"
            ],
            "description": "Unit of Measure; additional text field used to describe the way an item is measured; not often used because we use Dimension 1 for item size"
          },
          "childCount": {
            "type": "number",
            "description": "Set how much the parent the Child Item of a Parent/Child relationship.\r\nExamples: \r\n- Parent Child where the Parent is an Each and the Child is a 2 Pack of the Parent the childCount is .5 (1/2).\r\n- Parent Child where the Parent is an Each and the Child is a Case Size of 24 the childCount is 0.041666666667 (1/24)",
            "format": "double"
          },
          "childUsage": {
            "type": "number",
            "description": "This is the expected usage amount of a child item. \r\nThis should be the decimal representation of the percentage.This defaults to 1.0 (100%)",
            "format": "double"
          },
          "upc": {
            "type": [
              "array",
              "null"
            ],
            "items": {
              "type": "string"
            },
            "readOnly": true
          },
          "active": {
            "type": "boolean",
            "description": "True=Item is active in Yellow Dog; False=Item is inactive in Yellow Dog; inactive items can have an on hand count, but are not sold at the POS; this is generally used for seasonal or special event items that are only sold at specific times"
          },
          "lastUpdated": {
            "type": [
              "string",
              "null"
            ],
            "description": "DateTime when this item was last updated in Yellow Dog, in ISO 8601 format. This is not \r\nimpacted by changes of an Item's onhand value. This is used to indicate when a change to an \r\nitems configuration has been adjusted. \r\n\r\n\r\nExample Scenarios that would trigger a lastUpdated value change:\r\n- Changing an Item's Dimension\r\n- Making an Item available to a Store\r\n- Adjusting the Item's Retail Price for a Store\r\n- Adjusting the Item's Default Retail Price\r\n- Changing the Item's Level Assignment\r\n- Adjusting an Interface for an Item's Store\r\n\r\nExample Scenarios that would *not* trigger a lastUpdated value change:\r\n- Item being Sold as part of a Transaction\r\n- Item included on an Invoice, Receipt, Purchasing Order Document",
            "format": "date-time"
          },
          "dimension1": {
            "$ref": "#/components/schemas/Api.Models.Dto.Item.ItemDimension"
          },
          "dimension2": {
            "$ref": "#/components/schemas/Api.Models.Dto.Item.ItemDimension"
          },
          "dimension3": {
            "$ref": "#/components/schemas/Api.Models.Dto.Item.ItemDimension"
          },
          "dimension4": {
            "$ref": "#/components/schemas/Api.Models.Dto.Item.ItemDimension"
          },
          "dimension5": {
            "$ref": "#/components/schemas/Api.Models.Dto.Item.ItemDimension"
          },
          "dimension6": {
            "$ref": "#/components/schemas/Api.Models.Dto.Item.ItemDimension"
          },
          "dimension7": {
            "$ref": "#/components/schemas/Api.Models.Dto.Item.ItemDimension"
          },
          "dimension8": {
            "$ref": "#/components/schemas/Api.Models.Dto.Item.ItemDimension"
          },
          "dimension9": {
            "$ref": "#/components/schemas/Api.Models.Dto.Item.ItemDimension"
          },
          "dimension10": {
            "$ref": "#/components/schemas/Api.Models.Dto.Item.ItemDimension"
          },
          "level": {
            "$ref": "#/components/schemas/Api.Models.Dto.Item.ItemLevel"
          },
          "level1": {
            "$ref": "#/components/schemas/Api.Models.Dto.Item.ItemLevel"
          },
          "level2": {
            "$ref": "#/components/schemas/Api.Models.Dto.Item.ItemLevel"
          },
          "level3": {
            "$ref": "#/components/schemas/Api.Models.Dto.Item.ItemLevel"
          },
          "level4": {
            "$ref": "#/components/schemas/Api.Models.Dto.Item.ItemLevel"
          },
          "parentItem": {
            "$ref": "#/components/schemas/Api.Models.Dto.GenericObject"
          },
          "recipe": {
            "$ref": "#/components/schemas/Api.Models.Dto.GenericObject"
          },
          "matrix": {
            "$ref": "#/components/schemas/Api.Models.Dto.GenericObject"
          },
          "webProperties": {
            "$ref": "#/components/schemas/Api.Models.Dto.Item.WebProperties"
          },
          "stores": {
            "type": [
              "array",
              "null"
            ],
            "items": {
              "$ref": "#/components/schemas/Api.Models.Dto.Item.Item2StoreGetLegacy"
            },
            "description": "Items have specific store availability and can have different on hand counts, retail prices, and costs per store\r\n\r\nThis is only available when expand vendors is passed in the query string.\r\nexample: /items?Expand=Stores"
          },
          "vendors": {
            "type": [
              "array",
              "null"
            ],
            "items": {
              "$ref": "#/components/schemas/Api.Models.Dto.Item.Item2VendorGet"
            },
            "description": "Items are assigned to at least one specific vendor in Yellow Dog.\r\n\r\nThis is only available when expand vendors is passed in the query string.\r\nexample: /items?Expand=Vendors"
          },
          "images": {
            "type": [
              "array",
              "null"
            ],
            "items": {
              "$ref": "#/components/schemas/Api.Models.Dto.Item.ItemImage"
            }
          },
          "shortDescription": {
            "type": [
              "string",
              "null"
            ],
            "description": "Short Description of the item; this is a free form text field that should describe the item in less characters than the item.Description.\r\n\r\nThis is commonly used for smaller screen devices or when a more concise description is needed.\r\n\r\nThis value is only available when the expand option `extended-item` is passed in the query string\r\nexample: `/items?Expand=extended-item`"
          },
          "isEvergreen": {
            "type": [
              "boolean",
              "null"
            ],
            "description": "Evergreen items are items that do not expire or do not \"Age\". This indicator is used to help\r\n manage the items that are always good for inventory or do not turn by season/year.\r\n\r\nThis value is only available when the expand option `extended-item` is passed in the query string\r\nexample: `/items?Expand=extended-item`"
          },
          "style": {
            "type": [
              "string",
              "null"
            ],
            "description": "Style code of the item. This is used to group like items together, such as a matrix of shirts that all have the same Style code/number.\r\n\r\nThis value is only available when the expand option `extended-item` is passed in the query string\r\nexample: `/items?Expand=extended-item`"
          },
          "expirationDays": {
            "type": [
              "number",
              "null"
            ],
            "description": "Generally, how many days before this type of item expires once added to inventory.\r\n\r\nThis value is only available when the expand option `extended-item` is passed in the query string\r\nexample: `/items?Expand=extended-item`",
            "format": "double"
          },
          "reference": {
            "type": [
              "string",
              "null"
            ],
            "description": "Free text field for additional reference notes or identifiers. Reference has no specific \r\nbusiness use within YDI. Use this field to record other necessary, customer-specific \r\ninformation.\r\n\r\nThis value is only available when the expand option `extended-item` is passed in the query string\r\nexample: `/items?Expand=extended-item`"
          },
          "attributes": {
            "type": [
              "array",
              "null"
            ],
            "items": {
              "$ref": "#/components/schemas/Api.Models.Dto.Item.ItemAttrGet"
            },
            "description": "The item attributes property is essentially an array of key-value pairs with some extra details. The key of each key-value pair is given by its `description` property. The value appears in its `value` property. Note that the type of this value depends on the type given when the attribute was defined. This type is specified by the `datatype` property as a string name. The example given shows an attributes array with one element of each of eight datatypes: `string`, `bool`, `int`, `float`, `date`, `time`, `datetime`, and `select`. A duplicate copy of the value appears in a property whose name corresponds to the datatype. An `id` property contains a GUID that can serve as an alternate key. This id does not change even if the description property is edited. A `helpText` property is a copy of the corresponding property in the attribute type definition. An `attributeCount` property is a count of values associated with this instance of the attribute. With the `select` datatype, attributeCount is the number of elements in the attribute value's array of strings corresponding to names defined for up to ten checkboxes. \r\n\r\n Users of the YdInv app can specify item attribute type definitions which become available to all items in the database. When editting items, they can then select item specific values for each each of these attribute types. \r\n\r\n Data only appears in this `attributes` array when the expand option `extended-item` is passed in the query string. For example: `/items?Expand=extended-item`",
            "example": [
              {
                "description": "Fair Trade Statement",
                "datatype": "string",
                "value": "This product is sourced from fair trade growers and is certified by Fair Trade International.",
                "string": "This product is sourced from fair trade growers and is certified by Fair Trade International.",
                "attributeCount": 1,
                "helpText": "Provides a statement concerning fair trade sourcing.",
                "id": "01234567-dddd-eeee-ffff-aaaabbbb0001"
              },
              {
                "description": "Contains Alcohol",
                "datatype": "bool",
                "value": true,
                "bool": true,
                "attributeCount": 1,
                "helpText": "Specifies whether this product contains alcohol.",
                "id": "01234567-dddd-eeee-ffff-aaaabbbb0002"
              },
              {
                "description": "Maximum stacked units",
                "datatype": "int",
                "value": 5,
                "int": 5,
                "attributeCount": 1,
                "helpText": "Specifies how many of these items may be stacked vertically.",
                "id": "01234567-dddd-eeee-ffff-aaaabbbb0003"
              },
              {
                "description": "Case weight in pounds",
                "datatype": "float",
                "value": 31.5,
                "float": 31.5,
                "attributeCount": 1,
                "helpText": "Specifies the weight of one case of this item in pounds.",
                "id": "01234567-dddd-eeee-ffff-aaaabbbb0004"
              },
              {
                "description": "Release date",
                "datatype": "date",
                "value": "2025-10-20",
                "date": "2025-10-20",
                "attributeCount": 1,
                "helpText": "Specifies the original release date of this item.",
                "id": "01234567-dddd-eeee-ffff-aaaabbbb0005"
              },
              {
                "description": "Last call cutoff",
                "datatype": "time",
                "value": "22:00:00",
                "time": "22:00:00",
                "attributeCount": 1,
                "helpText": "After this time of day, in local time, the product is not for sale until the next day.",
                "id": "01234567-dddd-eeee-ffff-aaaabbbb0006"
              },
              {
                "description": "Online ticket availability",
                "datatype": "datetime",
                "value": "2025-10-20T14:45:06Z",
                "datetime": "2025-10-20T14:45:06Z",
                "attributeCount": 1,
                "helpText": "This ticket item goes open for online sales at this time.",
                "id": "01234567-dddd-eeee-ffff-aaaabbbb0007"
              },
              {
                "description": "Allergen Information",
                "datatype": "select",
                "value": [
                  "Contains Gluten",
                  "Contains Peanuts",
                  "Contains Soy"
                ],
                "select": [
                  "Contains Gluten",
                  "Contains Peanuts",
                  "Contains Soy"
                ],
                "attributeCount": 3,
                "helpText": "Identifies ingredients that may cause allercic reactions.",
                "id": "01234567-dddd-eeee-ffff-aaaabbbb0008"
              }
            ]
          },
          "dimensions": {
            "description": "This value is only available when the expand option `Dimensions` is passed in the query string\r\nexample: `/items?Expand=Dimensions`",
            "type": [
              "object",
              "null"
            ],
            "additionalProperties": {
              "$ref": "#/components/schemas/Api.Models.Dto.Item.ItemDimension"
            }
          },
          "epcGTIN": {
            "type": [
              "array",
              "null"
            ],
            "items": {
              "type": "string"
            },
            "description": "GTIN (Global Trade Item Number) values for the item; returns as an array of 14-digit GTIN codes\r\n\r\nThis value is only available when the expand option `GTIN` is passed in the query string\r\nand requires database version 377 or above\r\nexample: `/items?Expand=GTIN`"
          }
        },
        "additionalProperties": false
      },
      "Dingo.GraphQL.ItemConfigInput": {
        "type": "object",
        "properties": {
          "itemSku": {
            "type": [
              "string",
              "null"
            ],
            "description": "SKU of the ItemThis must be an item that already exists in the database or it must be provided when importing the item.This can be found by opening up Yellow Dog Inventory and looking at the sku column in the Inventory Items screen."
          },
          "defaultVendorCode": {
            "type": [
              "string",
              "null"
            ],
            "description": "Sets the default vendor for an item.This Vendor Code must already exist in the Database.This is required for creating an item."
          },
          "defaultVendorCost": {
            "type": "number",
            "description": "Sets the Default Vendors Cost for this item.This is required for creating an item.",
            "format": "double"
          },
          "levelCode": {
            "type": [
              "string",
              "null"
            ],
            "description": "Fully qualified notation of the level.'30 Food / 10 Meat / 15 Beef' is the valid value for a Level of the following structure- Department: 30 Food- Category: 10 Meat- Subcategory: 15 BeefThis must already exist as a Level in the Database.This is required for creating an item."
          },
          "dimension1Desc": {
            "type": [
              "string",
              "null"
            ],
            "description": "Description of the 1st dimension of the item. This is usually the Size.This must already exist as a Dimension 1 in the Database.This is required for creating an item."
          },
          "dimension2Desc": {
            "type": [
              "string",
              "null"
            ],
            "description": "Description of the 2nd dimension of the item. This is usually the Color.This must already exist as a Dimension in the Database."
          },
          "dimension3Desc": {
            "type": [
              "string",
              "null"
            ],
            "description": "Description of the 3rd dimension of the itemThis must already exist as a Dimension in the Database."
          },
          "dimension4Desc": {
            "type": [
              "string",
              "null"
            ],
            "description": "Description of the 4th dimension of the item.This must already exist as a Dimension in the Database."
          },
          "dimension5Desc": {
            "type": [
              "string",
              "null"
            ],
            "description": "Description of the 5th dimension of the itemThis must already exist as a Dimension in the Database."
          },
          "dimension6Desc": {
            "type": [
              "string",
              "null"
            ],
            "description": "Description of the 6th dimension of the itemThis must already exist as a Dimension in the Database."
          },
          "dimension7Desc": {
            "type": [
              "string",
              "null"
            ],
            "description": "Description of the 7th dimension of the itemThis must already exist as a Dimension in the Database."
          },
          "dimension8Desc": {
            "type": [
              "string",
              "null"
            ],
            "description": "Description of the 8th dimension of the itemThis must already exist as a Dimension in the Database."
          },
          "dimension9Desc": {
            "type": [
              "string",
              "null"
            ],
            "description": "Description of the 9th dimension of the itemThis must already exist as a Dimension in the Database."
          },
          "dimension10Desc": {
            "type": [
              "string",
              "null"
            ],
            "description": "Description of the 10th dimension of the itemThis must already exist as a Dimension in the Database."
          },
          "description": {
            "type": [
              "string",
              "null"
            ],
            "description": "Description of the item. This is required when creating an item."
          },
          "shortDescription": {
            "type": [
              "string",
              "null"
            ],
            "description": "Short Description of the Item"
          },
          "posDescription1": {
            "type": [
              "string",
              "null"
            ],
            "description": "POS 1 Description of the Item. This is often used as the description of the item in the point of sale, but that depends on the point of sale integration."
          },
          "posDescription2": {
            "type": [
              "string",
              "null"
            ],
            "description": "POS 2 Description of the Item. This is sometimes used as a secondary description of the item in the point of sale, but that depends on the point of sale integration."
          },
          "reference1": {
            "type": [
              "string",
              "null"
            ],
            "description": "Free text field for additional reference notes or identifiers. Reference has no specific business use within YDI. Use this field to record other necessary, customer-specific information."
          },
          "reference2": {
            "type": [
              "string",
              "null"
            ],
            "description": "Free text field for additional reference notes or identifiers. Reference has no specific business use within YDI. Use this field to record other necessary, customer-specific information."
          },
          "reference3": {
            "type": [
              "string",
              "null"
            ],
            "description": "Free text field for additional reference notes or identifiers. Reference has no specific business use within YDI. Use this field to record other necessary, customer-specific information."
          },
          "reference4": {
            "type": [
              "string",
              "null"
            ],
            "description": "Free text field for additional reference notes or identifiers. Reference has no specific business use within YDI. Use this field to record other necessary, customer-specific information."
          },
          "msrp": {
            "type": [
              "number",
              "null"
            ],
            "description": "Manufacturer's Suggested Retail Price of the item.",
            "format": "double"
          },
          "uom": {
            "type": [
              "string",
              "null"
            ],
            "description": "Unit of Measure for this item."
          },
          "expirationDays": {
            "type": [
              "number",
              "null"
            ],
            "description": "Expiration Days of the item. This can be found in YDInv in the Item Editor > F&B Other tab.",
            "format": "double"
          },
          "notes": {
            "type": [
              "string",
              "null"
            ],
            "description": "Notes for the item are located in the Item Editor > Other Details tab in YDInv."
          },
          "childCount": {
            "type": [
              "number",
              "null"
            ],
            "description": "Set how much the parent the Child Item of a Parent/Child relationship.Examples:  - Parent Child where the Parent is an Each and the Child is a 2 Pack of the Parent the childCount is .5 (1/2).  - Parent Child where the Parent is a Each and the Child is a Case Size of 24 the childCount is 0.041666666667 (1/24)Defaults to 1.",
            "format": "double"
          },
          "childUsage": {
            "type": [
              "number",
              "null"
            ],
            "description": "This is the expected usage amount of a child item. This should be the decimal representation of the percentage.This defaults to 1.0 (100%)",
            "format": "double"
          },
          "isActive": {
            "type": [
              "boolean",
              "null"
            ],
            "description": "Defaults to True."
          },
          "isPrintLabels": {
            "type": [
              "boolean",
              "null"
            ],
            "description": "When false this item will not automatically generate labels while being recieved."
          },
          "isNoCount": {
            "type": [
              "boolean",
              "null"
            ],
            "description": "When true, this item's on hand will always report as zero, and no costs or inventory adjustments will be stored."
          },
          "isPurchaseOrderEnabled": {
            "type": [
              "boolean",
              "null"
            ],
            "description": "Defaults to True. When true, this item can be added to Purchase Orders."
          },
          "isPosEnabled": {
            "type": [
              "boolean",
              "null"
            ],
            "description": "Defaults to False. When false, this item can not be sent to the point of sale."
          },
          "isPhysicalInventoryEnabled": {
            "type": [
              "boolean",
              "null"
            ],
            "description": "Defaults to True. When true, this item can be added to Physical Inventories."
          },
          "isManualAdjustEnabled": {
            "type": [
              "boolean",
              "null"
            ],
            "description": "Defaults to True. When true, this item can be adjusted in the Manual Adjustment editor."
          },
          "isTransferEnabled": {
            "type": [
              "boolean",
              "null"
            ],
            "description": "Defaults to True. When true, this item can be added to Transfers."
          },
          "isPrdTransferItem": {
            "type": [
              "boolean",
              "null"
            ],
            "description": "Production Transfer Items are recipe items that will subtract ingredients from the Production store and add on hand to the destination store when used in a Transfer."
          },
          "isRecipeIngredientItem": {
            "type": [
              "boolean",
              "null"
            ],
            "description": "When true, this item can be used as an ingredient in recipes."
          },
          "syncTrigger": {
            "type": [
              "string",
              "null"
            ]
          },
          "converted": {
            "type": [
              "string",
              "null"
            ],
            "description": "This is a unique ID for the item. This value is not visible in YDInv and is generally only used by Yellow Dog Guides."
          },
          "placement": {
            "type": [
              "integer",
              "null"
            ],
            "format": "int32"
          },
          "shippingWeight": {
            "type": [
              "number",
              "null"
            ],
            "description": "Shipping Weight of the item.",
            "format": "double"
          },
          "shippingHeight": {
            "type": [
              "number",
              "null"
            ],
            "description": "Shipping Height of the item.",
            "format": "double"
          },
          "shippingWidth": {
            "type": [
              "number",
              "null"
            ],
            "description": "Shipping Width of the item.",
            "format": "double"
          },
          "shippingLength": {
            "type": [
              "number",
              "null"
            ],
            "description": "Shipping Length of the item.",
            "format": "double"
          },
          "style": {
            "type": [
              "string",
              "null"
            ],
            "description": "Style code of the item. This is used to group like items together, such as a matrix of shirts that all have the same Style code/number."
          },
          "isEvergreen": {
            "type": [
              "boolean",
              "null"
            ],
            "description": "Evergreen items are items that do not expire or do not \"Age\". This indicator is used to help manage the items that are always good for inventory or do not turn by season/year."
          },
          "isChargeable": {
            "type": [
              "boolean",
              "null"
            ],
            "description": "Chargeable items are used with Stand Sheets, to control which items are counted by the Stand Operators when reconciling."
          },
          "isRequestEnabled": {
            "type": [
              "boolean",
              "null"
            ],
            "description": "Defaults to True. When true, this item can be added to Requests."
          },
          "isNonChargeable": {
            "type": [
              "boolean",
              "null"
            ],
            "description": "Non-Chargeable items are used with Stand Sheets, to control which items are counted by the Stand Operators when reconciling."
          },
          "isSupplies": {
            "type": [
              "boolean",
              "null"
            ],
            "description": "Supply items are used with Stand Sheets, to control which items are counted by the Stand Operators when reconciling."
          },
          "isRestockSize": {
            "type": [
              "boolean",
              "null"
            ],
            "description": "Specified which item size of a parent/child is used for restocking standing."
          },
          "startingRetail": {
            "type": [
              "number",
              "null"
            ],
            "description": "This value can appear on labels and some reports.  Used to compare current price against starting price (for Sales, Markdowns, clearance, etc).",
            "format": "double"
          },
          "allowDecimalQuantity": {
            "type": [
              "boolean",
              "null"
            ],
            "description": "If true, this item can be pulled into a purchase order with a fractional quantity.By default, the quantity will be rounded to a whole number when added to a PO by Par level.Defaults to true."
          },
          "defaultRetailPrice": {
            "type": [
              "number",
              "null"
            ],
            "description": "Item Retail to be used when new stores are added to an items availability.This it propagated to the Stores as the item's retail. Additional changes to that stores retail can be made in the Item Editor's Stores Tab.",
            "format": "double"
          },
          "isPreferredPurchasingSize": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "upc1": {
            "type": [
              "string",
              "null"
            ],
            "description": "Inserts or updates the UPC for the item in the first position for this item.If a UPC already exists for the Item this will overwrite it.This can be found in the Item Editor of Yellow Dog Inventory.Additional codes that can be used by the POS for searching or scanning for items. Can be codes other than UPC, such as old label SKUs. These codes must be unique per Item."
          },
          "parentItemSku": {
            "type": [
              "string",
              "null"
            ],
            "description": "Creates a relationship of parent/child items.This field should be populated with the parent item's SKU when you want the line item in the file to be a child of that item.Note that the parent and/or child can be created in the same import; the parent item or child item do not have to be created before the file that is setting up this relationship."
          },
          "vendorPartNumber": {
            "type": [
              "string",
              "null"
            ],
            "description": "The default vendors part number for an item.In previous versions of YDInv this was referred to as a Vendor SKU."
          },
          "webpropertyTitle": {
            "type": [
              "string",
              "null"
            ],
            "description": "Use of this field on the website is dependent on the Ecommerce integration. In YDInv, this is the Title in the Item Editor > Web Properties tab."
          },
          "webpropertyDescription": {
            "type": [
              "string",
              "null"
            ],
            "description": "Use of this field on the website is dependent on the Ecommerce integration. In YDInv, this is the Short Description in the Item Editor > Web Properties tab."
          },
          "webpropertyExtendedDescription": {
            "type": [
              "string",
              "null"
            ],
            "description": "Use of this field on the website is dependent on the Ecommerce integration. In YDInv, this is the Extended Description in the Item Editor > Web Properties tab."
          },
          "webpropertyAvailableDate": {
            "type": [
              "string",
              "null"
            ],
            "description": "Use of this field on the website is dependent on the Ecommerce integration. In YDInv, this is the Available From Date in the Item Editor > Web Properties tab.",
            "format": "date-time"
          },
          "webpropertyExpiresDate": {
            "type": [
              "string",
              "null"
            ],
            "description": "In YDInv, this is the Available To Date in the Item Editor > Web Properties tab. Use of this field on the website is dependent on the Ecommerce integration.",
            "format": "date-time"
          },
          "webpropertyItemSaleRetail": {
            "type": [
              "number",
              "null"
            ],
            "description": "In YDInv, this is the Sale Retail field in the Item Editor > Web Properties tab. Use of this field on the website is dependent on the Ecommerce integration.",
            "format": "double"
          },
          "webpropertyItemSalePercentOff": {
            "type": [
              "number",
              "null"
            ],
            "description": "In YDInv, this is the Percent Off field in the Item Editor > Web Properties tab. Use of this field on the website is dependent on the Ecommerce integration.",
            "format": "double"
          },
          "webpropertySale": {
            "type": [
              "boolean",
              "null"
            ],
            "description": "In YDInv, this is the On Sale checkbox in the Item Editor > Web Properties tab. Use of this field on the website is dependent on the Ecommerce integration."
          },
          "webpropertySaleBegins": {
            "type": [
              "string",
              "null"
            ],
            "description": "In YDInv, this is the Sale From Date in the Item Editor > Web Properties tab. Use of this field on the website is dependent on the Ecommerce integration.",
            "format": "date-time"
          },
          "webpropertySaleEnds": {
            "type": [
              "string",
              "null"
            ],
            "description": "In YDInv, this is the Sale To Date in the Item Editor > Web Properties tab. Use of this field on the website is dependent on the Ecommerce integration.",
            "format": "date-time"
          },
          "webpropertyFlagA": {
            "type": [
              "boolean",
              "null"
            ],
            "description": "In YDInv, this is the New Item Checkbox in the Item Editor > Web Properties tab. Use of this field on the website is dependent on the Ecommerce integration."
          },
          "webpropertyFlagB": {
            "type": [
              "boolean",
              "null"
            ],
            "description": "In YDInv, this is the Last Chance Checkbox in the Item Editor > Web Properties tab. Use of this field on the website is dependent on the Ecommerce integration."
          },
          "webpropertyFlagC": {
            "type": [
              "boolean",
              "null"
            ],
            "description": "In YDInv, this is the Taxable Checkbox in the Item Editor > Web Properties tab. Use of this field on the website is dependent on the Ecommerce integration."
          },
          "webpropertyAvailable": {
            "type": [
              "boolean",
              "null"
            ],
            "description": "In YDInv, this is the Send to Website Checkbox in the Item Editor > Web Properties tab. This is normally used to make the item available to the website, but this functionality depends on the Ecommerce integration."
          },
          "webpropertyPlacement": {
            "type": [
              "integer",
              "null"
            ],
            "description": "In YDInv, this is the Placement order of items in a matrix in the Matrix Editor > Web Properties tab. Most often this is used to determine the primary matrix item, which holds the interface settings for the matrix, and, when only one image can be pushed to a POS/Web Cart, this item's image would be the one used. All of this is dependent on the POS/ECommerce integration.",
            "format": "int32"
          },
          "webpropertyTags": {
            "type": [
              "string",
              "null"
            ],
            "description": "In YDInv, this is the Tags field in the Item Editor > Web Properties tab. Use of this field on the website depends on the Ecommerce integration."
          },
          "webpropertyProductType": {
            "type": [
              "string",
              "null"
            ],
            "description": "In YDInv, this is the Product Type field in the Item Editor > Web Properties tab. Use of this field on the website depends on the Ecommerce integration."
          },
          "manufacturerCode": {
            "type": [
              "string",
              "null"
            ],
            "description": "The Code of the Manufacturer.This must already exist as a Vendor in YDInv. The manufacturer is typically the company that creates the product. It is not required for ordering."
          },
          "initialStoreCode": {
            "type": [
              "string",
              "null"
            ],
            "description": "Code of the storeThis must be a store that already exists in the database and is not deleted."
          }
        },
        "additionalProperties": false,
        "description": "Input used for setting Item configurations"
      },
      "Dingo.GraphQL.ImportItemConfigInput": {
        "type": "object",
        "properties": {
          "importData": {
            "type": [
              "array",
              "null"
            ],
            "items": {
              "$ref": "#/components/schemas/Dingo.GraphQL.ItemConfigInput"
            },
            "description": "Values to be used for setting the imports"
          }
        },
        "additionalProperties": false,
        "description": "Input used for setting configurations of  items and storesSee mutation documentation for additional notes."
      },
      "Microsoft.AspNetCore.Mvc.ProblemDetails": {
        "type": "object",
        "properties": {
          "type": {
            "type": [
              "string",
              "null"
            ]
          },
          "title": {
            "type": [
              "string",
              "null"
            ]
          },
          "status": {
            "type": [
              "integer",
              "null"
            ],
            "format": "int32"
          },
          "detail": {
            "type": [
              "string",
              "null"
            ]
          },
          "instance": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "additionalProperties": {}
      },
      "Dingo.GraphQL.ItemStoreConfigInput": {
        "type": "object",
        "properties": {
          "itemSku": {
            "type": [
              "string",
              "null"
            ],
            "description": "SKU of the ItemThis must be an item that already exists in the database, is not a removed status. This can be found by opening up Yellow Dog Inventory and looking at the sku column in the Inventory Items screen."
          },
          "storeCode": {
            "type": [
              "string",
              "null"
            ],
            "description": "Code of the storeThis must be a store that already exists in the database and is not deleted"
          },
          "isAvailable": {
            "type": [
              "boolean",
              "null"
            ],
            "description": "marked true when the item is available for the store"
          },
          "bin": {
            "type": [
              "string",
              "null"
            ],
            "description": "free text field for identifying where in the store this item can be found"
          },
          "reorderPoint": {
            "type": [
              "number",
              "null"
            ],
            "description": "Used to identify when a store should reorder a item based on the available onhand.When the Stores current onhand is equal to or less than this set amount, views and lists that show items that need to be ordered will include this.Currently, this updates the Reorder Point of the specified SKU ONLY and does NOT keep child and parent Reorder Points in sync. If you want a child and a parent's Reorder Point updated, you must include those related SKUs as separate lines in the file with their own specific Reorder Point.See parLevel documentation for breakdown of usage scenarios.",
            "format": "double"
          },
          "parLevel": {
            "type": [
              "number",
              "null"
            ],
            "description": "The target onhand amount to have after a purchase for this store.This is used in conjunction with the reorderPoint value. This is the quantity that a recommended purchase amount is based on.Example Scenarios:1. Item A has a current Onhand of 2, a reorder point of 4, and a par level of 7. The recommended purchase amount used by the system would be 5.2. Item B has a current Onhand of 4, a reorder point of 4, and a par level of 7. The recommended purchase amount used by the system would be 3.3. Item C has a current Onhand of 5, a reorder point of 4, and a par level of 7. This item would not be recommended for purchase since the current onhand is greater than the reorder point.Par Level must be equal to or higher than the reorderPoint.Currently, this updates the Par Level of the specified SKU ONLY and does NOT keep child and parent Par Levels in sync. If you want a child and a parent's Par Level updated, you must include those related SKUs as separate lines in the file with their own specific Par Level.",
            "format": "double"
          },
          "isNoCount": {
            "type": [
              "boolean",
              "null"
            ],
            "description": "In this store this item will never hold an onhand value. Changing this setting will cause reports looking in the past to change."
          },
          "isNonRestock": {
            "type": [
              "boolean",
              "null"
            ],
            "description": "When set to true, the item will not appear in auto-restocks for the store. This is a Stands Workflow dependent field."
          },
          "maxCapacity": {
            "type": [
              "number",
              "null"
            ],
            "description": "The maximum capacity of an item at this store. This is used to try to only allow a maximum onhand to be available in a store.Max Capacity is required to be equal to or higher than the parLevel. However, a Max Capacity of 0 is treated as an unlimited amount that can be stored in the store.",
            "format": "double"
          },
          "automaticParAlgorithm": {
            "type": [
              "string",
              "null"
            ]
          },
          "tariffCode": {
            "type": [
              "string",
              "null"
            ],
            "description": "Mostly used with E-Commerce integrations when there are additional taxes relating to sales outside of the country"
          }
        },
        "additionalProperties": false,
        "description": "Input used for setting Item & Store Intersection configurations"
      },
      "Dingo.GraphQL.ImportItemStoreConfigInput": {
        "type": "object",
        "properties": {
          "importData": {
            "type": [
              "array",
              "null"
            ],
            "items": {
              "$ref": "#/components/schemas/Dingo.GraphQL.ItemStoreConfigInput"
            },
            "description": "Values to be used for setting the imports"
          }
        },
        "additionalProperties": false,
        "description": "Input used for setting configurations of the intersection of items and storesSee mutation documentation for additional notes."
      },
      "Api.Models.Dto.AttachedFileMutation": {
        "required": [
          "description"
        ],
        "type": "object",
        "properties": {
          "description": {
            "minLength": 1,
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "Api.Models.Dto.AttachedFile": {
        "type": "object",
        "properties": {
          "placement": {
            "type": "integer",
            "format": "int32"
          },
          "rowDeleted": {
            "type": "boolean"
          },
          "attachedFileID": {
            "type": [
              "string",
              "null"
            ],
            "format": "uuid"
          },
          "ownerID": {
            "type": "string",
            "format": "uuid"
          },
          "description": {
            "type": [
              "string",
              "null"
            ]
          },
          "fileData": {
            "type": [
              "string",
              "null"
            ]
          },
          "isPicture": {
            "type": "boolean"
          },
          "originalFile": {
            "type": [
              "string",
              "null"
            ]
          },
          "imageURL": {
            "type": [
              "string",
              "null"
            ]
          },
          "mimeType": {
            "type": [
              "string",
              "null"
            ],
            "description": "Content type of the file that is being used on upload of an image.\r\n\r\nThis is expected to be blank when it is coming from the database."
          }
        },
        "additionalProperties": false
      },
      "Api.Models.Dto.Item.ItemRetailCreate": {
        "required": [
          "date",
          "retail1",
          "storeId"
        ],
        "type": "object",
        "properties": {
          "storeId": {
            "type": "string",
            "format": "uuid"
          },
          "date": {
            "type": "string",
            "format": "date-time"
          },
          "retail1": {
            "type": "number",
            "format": "double"
          }
        },
        "additionalProperties": false
      },
      "Api.Models.Dto.Item.ItemRetailCreateResponse": {
        "required": [
          "date",
          "retail1",
          "storeId"
        ],
        "type": "object",
        "properties": {
          "userId": {
            "type": "string",
            "format": "uuid"
          },
          "itemID": {
            "type": "string",
            "format": "uuid"
          },
          "storeId": {
            "type": "string",
            "format": "uuid"
          },
          "date": {
            "type": "string",
            "format": "date-time"
          },
          "retail1": {
            "type": "number",
            "format": "double"
          }
        },
        "additionalProperties": false
      },
      "Api.Models.Dto.ManualAdjustCreate": {
        "required": [
          "beanAccountID",
          "itemID",
          "storeID"
        ],
        "type": "object",
        "properties": {
          "itemID": {
            "type": "string",
            "description": "Yellow Dog's Item ID for the item; formatted as GUID (example: 433ef432-f63e-4c26-a29f-39d4079d9fc9)",
            "format": "uuid"
          },
          "storeID": {
            "type": "string",
            "description": "Yellow Dog's primary key for the Store; always unique; formatted as GUID (example: 433ef432-f63e-4c26-a29f-39d4079d9fc9)",
            "format": "uuid"
          },
          "beanAccountID": {
            "type": "string",
            "description": "This is used to define the accounting reason for the adjustment.\r\nBeanAccountId can be retrieved from the /api/v3/accounting/{storeId}/codes/ManualAdjust endpoint, using the specified the storeId.",
            "format": "uuid"
          },
          "newOnHand": {
            "type": [
              "number",
              "null"
            ],
            "description": "sets a new on hand value for given item at given store",
            "format": "double"
          },
          "adjustment": {
            "type": [
              "number",
              "null"
            ],
            "description": "The adjustment amount that will be added to current on-hand\r\n- sets the adjustment for the item at that store\r\n- NewOnHand takes precedence over Adjustment. If both are set, NewOnHand's Value will be used, not Adjustment",
            "format": "double"
          },
          "itemCost": {
            "type": [
              "number",
              "null"
            ],
            "description": "The cost of the item\r\nNew Item Cost (defaults to -1 if a value is not provided)",
            "format": "double"
          },
          "reference": {
            "type": [
              "string",
              "null"
            ],
            "description": "User defined reason why the adjustment was performed"
          }
        },
        "additionalProperties": false
      },
      "Api.Models.Dto.MetaInfo": {
        "type": "object",
        "properties": {
          "dimensions": {
            "type": [
              "array",
              "null"
            ],
            "items": {
              "type": "string"
            }
          },
          "genericInterfacesCodes": {
            "type": [
              "array",
              "null"
            ],
            "items": {
              "type": "string"
            },
            "readOnly": true
          },
          "genericInterfacesLevels": {
            "type": [
              "array",
              "null"
            ],
            "items": {
              "type": "string"
            },
            "readOnly": true
          },
          "levels": {
            "type": [
              "array",
              "null"
            ],
            "items": {
              "type": "string"
            },
            "readOnly": true
          },
          "webItemFlags": {
            "type": [
              "array",
              "null"
            ],
            "items": {
              "type": "string"
            },
            "readOnly": true
          },
          "store": {
            "type": [
              "string",
              "null"
            ]
          },
          "manufacturer": {
            "type": [
              "string",
              "null"
            ]
          },
          "vendor": {
            "type": [
              "string",
              "null"
            ]
          },
          "flag": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "additionalProperties": false
      },
      "Api.Models.Dto.ProductionGroup": {
        "type": "object",
        "properties": {
          "productionGroupID": {
            "type": "string",
            "format": "uuid"
          },
          "code": {
            "type": [
              "string",
              "null"
            ]
          },
          "description": {
            "type": [
              "string",
              "null"
            ]
          },
          "rowUpdated": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "Api.Models.SendGridUserResponse": {
        "type": "object",
        "properties": {
          "userId": {
            "type": "string",
            "format": "uuid"
          },
          "emailSent": {
            "type": "boolean"
          },
          "notified": {
            "type": "boolean",
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "Api.Models.Dto.POTierApprovalPUT": {
        "required": [
          "approved"
        ],
        "type": "object",
        "properties": {
          "approved": {
            "type": "boolean"
          },
          "notes": {
            "maxLength": 256,
            "minLength": 0,
            "type": [
              "string",
              "null"
            ]
          }
        },
        "additionalProperties": false
      },
      "Api.Models.Dto.POTierApprovalPUTResponse": {
        "required": [
          "approved"
        ],
        "type": "object",
        "properties": {
          "updated": {
            "type": "boolean"
          },
          "usersNotified": {
            "type": [
              "array",
              "null"
            ],
            "items": {
              "$ref": "#/components/schemas/Api.Models.SendGridUserResponse"
            }
          },
          "isFinalTier": {
            "type": "boolean"
          },
          "errors": {
            "type": [
              "array",
              "null"
            ],
            "items": {
              "type": "string"
            }
          },
          "approved": {
            "type": "boolean"
          },
          "notes": {
            "maxLength": 256,
            "minLength": 0,
            "type": [
              "string",
              "null"
            ]
          }
        },
        "additionalProperties": false
      },
      "Api.Models.Dto.CommdocLine": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "thirdPartyLineID": {
            "type": [
              "string",
              "null"
            ]
          },
          "lineNumber": {
            "type": "integer",
            "format": "int32"
          },
          "vendorPrice": {
            "type": [
              "number",
              "null"
            ],
            "format": "double"
          },
          "quantity": {
            "type": [
              "number",
              "null"
            ],
            "format": "double"
          },
          "notes": {
            "type": [
              "string",
              "null"
            ]
          },
          "backLinkLineID": {
            "type": [
              "string",
              "null"
            ]
          },
          "item": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "additionalProperties": false
      },
      "Api.Models.Dto.CommdocApprovalStatus": {
        "type": "object",
        "properties": {
          "status": {
            "type": [
              "string",
              "null"
            ]
          },
          "dateTime": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "notes": {
            "type": [
              "string",
              "null"
            ]
          },
          "type": {
            "type": [
              "string",
              "null"
            ]
          },
          "tier": {
            "type": [
              "integer",
              "null"
            ],
            "format": "int32"
          },
          "userID": {
            "type": [
              "string",
              "null"
            ],
            "format": "uuid"
          }
        },
        "additionalProperties": false
      },
      "Api.Models.Dto.PurchaseOrderGet": {
        "type": "object",
        "properties": {
          "status": {
            "description": "Status of Purchase Order",
            "type": [
              "string",
              "null"
            ]
          },
          "commit": {
            "type": "boolean"
          },
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "thirdPartyID": {
            "type": [
              "string",
              "null"
            ]
          },
          "docNumber": {
            "type": [
              "string",
              "null"
            ]
          },
          "reference": {
            "type": [
              "string",
              "null"
            ]
          },
          "description": {
            "type": [
              "string",
              "null"
            ]
          },
          "instructions": {
            "type": [
              "string",
              "null"
            ]
          },
          "totalAmount": {
            "type": "number",
            "format": "double"
          },
          "lines": {
            "type": [
              "array",
              "null"
            ],
            "items": {
              "$ref": "#/components/schemas/Api.Models.Dto.CommdocLine"
            }
          },
          "created": {
            "type": "string",
            "format": "date-time"
          },
          "lastUpdated": {
            "type": "string",
            "format": "date-time"
          },
          "vendor": {
            "type": [
              "string",
              "null"
            ]
          },
          "createdByUser": {
            "type": [
              "string",
              "null"
            ]
          },
          "notes": {
            "type": [
              "string",
              "null"
            ]
          },
          "store": {
            "type": [
              "string",
              "null"
            ]
          },
          "committed": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "committedByUser": {
            "type": [
              "string",
              "null"
            ]
          },
          "startShip": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "cancelShip": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "backOrdered": {
            "type": "boolean"
          },
          "canceled": {
            "type": "boolean"
          },
          "paid": {
            "type": "boolean"
          },
          "approvalStatuses": {
            "type": [
              "array",
              "null"
            ],
            "items": {
              "$ref": "#/components/schemas/Api.Models.Dto.CommdocApprovalStatus"
            }
          },
          "buyer": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "additionalProperties": false
      },
      "Api.Models.Dto.PurchaseOrderLinesCreate": {
        "required": [
          "item",
          "quantity",
          "vendorPrice"
        ],
        "type": "object",
        "properties": {
          "commdocID": {
            "type": "string",
            "format": "uuid"
          },
          "commdocLineID": {
            "type": "string",
            "format": "uuid"
          },
          "thirdPartyLineID": {
            "type": [
              "string",
              "null"
            ]
          },
          "lineNumber": {
            "type": "integer",
            "format": "int32"
          },
          "vendorPrice": {
            "type": "number",
            "format": "double"
          },
          "quantity": {
            "type": "number",
            "format": "double"
          },
          "notes": {
            "type": [
              "string",
              "null"
            ]
          },
          "backLinkLineID": {
            "type": "string",
            "format": "uuid"
          },
          "item": {
            "$ref": "#/components/schemas/Api.Models.Dto.GenericObject"
          }
        },
        "additionalProperties": false
      },
      "Api.Models.Dto.PurchaseOrderCreate": {
        "required": [
          "docNumber",
          "lines",
          "store",
          "totalAmount",
          "vendor"
        ],
        "type": "object",
        "properties": {
          "thirdPartyID": {
            "type": [
              "string",
              "null"
            ]
          },
          "docNumber": {
            "minLength": 1,
            "type": "string"
          },
          "totalAmount": {
            "type": "number",
            "format": "double"
          },
          "lines": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Api.Models.Dto.PurchaseOrderLinesCreate"
            }
          },
          "startShip": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time",
            "default": "1911-11-11 00:00:00.000"
          },
          "cancelShip": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time",
            "default": "1911-11-11 00:00:00.000"
          },
          "reference": {
            "type": [
              "string",
              "null"
            ]
          },
          "description": {
            "type": [
              "string",
              "null"
            ]
          },
          "instructions": {
            "type": [
              "string",
              "null"
            ]
          },
          "notes": {
            "type": [
              "string",
              "null"
            ]
          },
          "backOrdered": {
            "type": "boolean"
          },
          "canceled": {
            "type": "boolean"
          },
          "invoicedEDI": {
            "type": "boolean"
          },
          "committed": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "vendor": {
            "$ref": "#/components/schemas/Api.Models.Dto.GenericObject"
          },
          "store": {
            "$ref": "#/components/schemas/Api.Models.Dto.GenericObject"
          }
        },
        "additionalProperties": false
      },
      "Api.Models.Dto.CommdocApprovalStatuses": {
        "type": "object",
        "properties": {
          "currentTier": {
            "type": [
              "integer",
              "null"
            ],
            "format": "int32"
          },
          "approvalStatuses": {
            "type": [
              "array",
              "null"
            ],
            "items": {
              "$ref": "#/components/schemas/Api.Models.Dto.CommdocApprovalStatus"
            }
          }
        },
        "additionalProperties": false
      },
      "Api.Models.Dto.PurchaseOrderLinePatch": {
        "type": "object",
        "properties": {
          "commdocLineID": {
            "type": "string",
            "description": "Should be populated when editing an already existing CommdocLineID.",
            "format": "uuid"
          },
          "itemID": {
            "type": "string",
            "description": "ONLY to be used when adding a new line. \r\n\r\nAny alterations to existing lines should be handled via the CommdocLineID property as that is an explicit match.\r\n\r\nWhen Items are added using this method it will be appended to the end of the existing lines of the existing commdoc.",
            "format": "uuid"
          },
          "vendorPrice": {
            "type": [
              "number",
              "null"
            ],
            "format": "double"
          },
          "quantity": {
            "type": [
              "number",
              "null"
            ],
            "format": "double"
          },
          "notes": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "additionalProperties": false,
        "description": "SummaryPurchaseOrderLinePatch"
      },
      "Api.Models.Dto.PurchaseOrderPatch": {
        "required": [
          "commdocID"
        ],
        "type": "object",
        "properties": {
          "commdocID": {
            "type": "string",
            "format": "uuid"
          },
          "reference": {
            "type": [
              "string",
              "null"
            ]
          },
          "description": {
            "type": [
              "string",
              "null"
            ]
          },
          "instructions": {
            "type": [
              "string",
              "null"
            ]
          },
          "notes": {
            "type": [
              "string",
              "null"
            ]
          },
          "backOrdered": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "canceled": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "invoicedEDI": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "startShip": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time",
            "default": "1911-11-11 00:00:00.000"
          },
          "cancelShip": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time",
            "default": "1911-11-11 00:00:00.000"
          },
          "lines": {
            "type": [
              "array",
              "null"
            ],
            "items": {
              "$ref": "#/components/schemas/Api.Models.Dto.PurchaseOrderLinePatch"
            },
            "description": "When populated this will alter the lines of the purchase order.\r\n\r\nTo add additional items to a purchase order you would add an object to the array with a shape like\r\n```json\r\n{\r\n\t\"ItemID\": \"12345678-1234-1234-1234-12345678123\",\r\n\t\"Quantity\": 15,\r\n\t\"VendorPrice\": 1.50\r\n}\r\n```\r\nThe result set back will include the generated CommdocLineId that can be used in subsequent update requests for this Purchase Order line.\r\n\r\n\r\nTo alter existing items of a purchase order you would add an object to the array with a shape like\r\n```json\r\n{\r\n\t\"CommDocLineId\": \"87654321-1234-1234-1234-12345678123\",\r\n\t\"Quantity\": 15,\r\n\t\"VendorPrice\": 1.50\r\n}\r\n```"
          }
        },
        "additionalProperties": false
      },
      "Api.Models.PatchValidationError": {
        "type": "object",
        "properties": {
          "errorText": {
            "type": [
              "string",
              "null"
            ]
          },
          "field": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "additionalProperties": false
      },
      "Api.Models.Dto.BackLinkLine": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "lineNumber": {
            "type": "integer",
            "description": "The position this line appears in the back linked document",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "Api.Models.Dto.BackLinkDoc": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "type": {
            "type": [
              "string",
              "null"
            ]
          },
          "docNumber": {
            "type": [
              "string",
              "null"
            ]
          },
          "line": {
            "$ref": "#/components/schemas/Api.Models.Dto.BackLinkLine"
          }
        },
        "additionalProperties": false
      },
      "Api.Models.Dto.ReceiptLineGet": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "thirdPartyLineID": {
            "type": [
              "string",
              "null"
            ]
          },
          "lineNumber": {
            "type": "integer",
            "format": "int32"
          },
          "vendorPrice": {
            "type": [
              "number",
              "null"
            ],
            "format": "double"
          },
          "quantity": {
            "type": [
              "number",
              "null"
            ],
            "format": "double"
          },
          "notes": {
            "type": [
              "string",
              "null"
            ]
          },
          "backLinkDoc": {
            "$ref": "#/components/schemas/Api.Models.Dto.BackLinkDoc"
          },
          "item": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "additionalProperties": false
      },
      "Api.Models.Dto.ReceiptGet": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "thirdPartyID": {
            "type": [
              "string",
              "null"
            ]
          },
          "docNumber": {
            "type": [
              "string",
              "null"
            ]
          },
          "reference": {
            "type": [
              "string",
              "null"
            ]
          },
          "description": {
            "type": [
              "string",
              "null"
            ]
          },
          "instructions": {
            "type": [
              "string",
              "null"
            ]
          },
          "notes": {
            "type": [
              "string",
              "null"
            ]
          },
          "lines": {
            "type": [
              "array",
              "null"
            ],
            "items": {
              "$ref": "#/components/schemas/Api.Models.Dto.ReceiptLineGet"
            }
          },
          "vendor": {
            "type": [
              "string",
              "null"
            ]
          },
          "store": {
            "type": [
              "string",
              "null"
            ]
          },
          "committed": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "committedByUser": {
            "type": [
              "string",
              "null"
            ]
          },
          "paid": {
            "type": "boolean"
          },
          "createdByUser": {
            "type": [
              "string",
              "null"
            ]
          },
          "created": {
            "type": "string",
            "format": "date-time"
          },
          "lastUpdated": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "Api.Models.Dto.ReceiptLineCreate": {
        "required": [
          "itemID",
          "quantity",
          "vendorPrice"
        ],
        "type": "object",
        "properties": {
          "vendorPrice": {
            "type": "number",
            "format": "double"
          },
          "quantity": {
            "type": "number",
            "format": "double"
          },
          "itemID": {
            "type": "string",
            "format": "uuid"
          },
          "backLinkLineID": {
            "type": [
              "string",
              "null"
            ],
            "format": "uuid"
          },
          "lineNumber": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "Api.Models.Dto.ReceiptCreate": {
        "required": [
          "docNumber",
          "lines",
          "storeID",
          "vendorID"
        ],
        "type": "object",
        "properties": {
          "docNumber": {
            "minLength": 1,
            "type": "string"
          },
          "vendorID": {
            "type": "string",
            "format": "uuid"
          },
          "storeID": {
            "type": "string",
            "format": "uuid"
          },
          "lines": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Api.Models.Dto.ReceiptLineCreate"
            }
          },
          "reference": {
            "type": [
              "string",
              "null"
            ]
          },
          "description": {
            "type": [
              "string",
              "null"
            ]
          },
          "instructions": {
            "type": [
              "string",
              "null"
            ]
          },
          "notes": {
            "type": [
              "string",
              "null"
            ]
          },
          "paid": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "Api.Models.Dto.RecipeYield": {
        "type": "object",
        "properties": {
          "yieldID": {
            "type": "string",
            "description": "Unique ID of the Yellow Dog Yield where the item was counted; formatted as GUID (example: 433ef432-f63e-4c26-a29f-39d4079d9fc9)",
            "format": "uuid"
          },
          "netWeight": {
            "type": "number",
            "description": "The yield weight of the item or recipe.",
            "format": "double"
          },
          "netWeightUnit": {
            "description": "The unit of the yield weight of the item or recipe.",
            "type": [
              "string",
              "null"
            ]
          },
          "netVolume": {
            "type": "number",
            "description": "The yield volume of the item or recipe",
            "format": "double"
          },
          "netVolumeUnit": {
            "description": "The unit of the yield volume of the item or recipe",
            "type": [
              "string",
              "null"
            ]
          },
          "netPortion": {
            "type": "number",
            "description": "The portion of the item or recipe.",
            "format": "double"
          },
          "netPortionUnit": {
            "description": ".\r\n            The unit of the portion of the item or recipe.",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "additionalProperties": false
      },
      "Api.Models.Dto.Recipe": {
        "type": "object",
        "properties": {
          "recipeID": {
            "type": [
              "string",
              "null"
            ],
            "description": "Unique ID of the Yellow Dog Recipe; formatted as GUID (example: 433ef432-f63e-4c26-a29f-39d4079d9fc9)",
            "format": "uuid"
          },
          "description": {
            "type": [
              "string",
              "null"
            ],
            "description": "Description of the Recipe."
          },
          "instructions": {
            "type": [
              "string",
              "null"
            ],
            "description": "Instruction of the Recipe."
          },
          "recipeTypeID": {
            "type": [
              "string",
              "null"
            ],
            "description": "Unique ID of the Yellow Dog RecipeType; formatted as GUID (example: 433ef432-f63e-4c26-a29f-39d4079d9fc9) \r\nShow which type of recipe this is.",
            "format": "uuid"
          },
          "productionGroupID": {
            "type": [
              "string",
              "null"
            ],
            "description": "Unique ID of the Yellow Dog ProductionGroup; formatted as GUID (example: 433ef432-f63e-4c26-a29f-39d4079d9fc9) \r\nAssign Production Group to set a default value when the recipe is used in the Production Worksheet.",
            "format": "uuid"
          },
          "yield": {
            "$ref": "#/components/schemas/Api.Models.Dto.RecipeYield"
          },
          "notes": {
            "type": [
              "string",
              "null"
            ],
            "description": "Notes of the Recipe."
          },
          "actualPrice": {
            "type": [
              "number",
              "null"
            ],
            "description": "Actual of the Recipe.",
            "format": "double"
          },
          "inactive": {
            "type": "boolean",
            "description": "Show whether this recipe has been deactivated or not."
          },
          "rowCreated": {
            "type": "string",
            "description": "DateTime when the Recipe was created in Yellow Dog, in ISO 8601 format",
            "format": "date-time"
          },
          "lastUpdated": {
            "type": "string",
            "description": "DateTime when the Recipe was last updated in Yellow Dog, in ISO 8601 format",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "Api.Models.Dto.RecipeIngredientRecipe": {
        "type": "object",
        "properties": {
          "ownerRecipeID": {
            "type": "string",
            "description": "Unique ID of the Yellow Dog Recipe; formatted as GUID (example: 433ef432-f63e-4c26-a29f-39d4079d9fc9)\r\nIt is the ID of the recipe.",
            "format": "uuid"
          },
          "recipeID": {
            "type": "string",
            "description": "Unique ID of the Yellow Dog Item; formatted as GUID (example: 433ef432-f63e-4c26-a29f-39d4079d9fc9) \r\nIt is the ID of the ingredient recipe.",
            "format": "uuid"
          },
          "description": {
            "type": [
              "string",
              "null"
            ],
            "description": "Description of the Recipe."
          },
          "quantity": {
            "type": "number",
            "description": "Quantity of the ingredient recipe.",
            "format": "double"
          },
          "referenceYieldValue": {
            "type": [
              "string",
              "null"
            ],
            "description": "Reference yield value of the ingredient recipe."
          },
          "referenceYieldUnit": {
            "type": [
              "string",
              "null"
            ],
            "description": "Reference yield unit of the ingredient recipe."
          },
          "notes": {
            "type": [
              "string",
              "null"
            ],
            "description": "Notes of the ingredient recipe."
          },
          "lastUpdated": {
            "type": "string",
            "description": "DateTime when the RecipeIngredient was last updated in Yellow Dog, in ISO 8601 format",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "Api.Models.Dto.RecipeIngredientItem": {
        "type": "object",
        "properties": {
          "ownerRecipeID": {
            "type": "string",
            "description": "Unique ID of the Yellow Dog Recipe; formatted as GUID (example: 433ef432-f63e-4c26-a29f-39d4079d9fc9)\r\nIt is the ID of the recipe.",
            "format": "uuid"
          },
          "itemID": {
            "type": "string",
            "description": "Unique ID of the Yellow Dog Item; formatted as GUID (example: 433ef432-f63e-4c26-a29f-39d4079d9fc9) \r\nIt is the ID of the ingredient item.",
            "format": "uuid"
          },
          "description": {
            "type": [
              "string",
              "null"
            ],
            "description": "Description of the Item."
          },
          "quantity": {
            "type": "number",
            "description": "Quantity of the ingredient item.",
            "format": "double"
          },
          "referenceYieldValue": {
            "type": [
              "string",
              "null"
            ],
            "description": "Reference yield value of the ingredient item."
          },
          "referenceYieldUnit": {
            "type": [
              "string",
              "null"
            ],
            "description": "Reference yield unit of the ingredient item."
          },
          "notes": {
            "type": [
              "string",
              "null"
            ],
            "description": "Notes of the ingredient item."
          },
          "lastUpdated": {
            "type": "string",
            "description": "DateTime when the RecipeIngredient was last updated in Yellow Dog, in ISO 8601 format",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "Api.Models.Dto.RecipeIngredients": {
        "type": "object",
        "properties": {
          "recipes": {
            "type": [
              "array",
              "null"
            ],
            "items": {
              "$ref": "#/components/schemas/Api.Models.Dto.RecipeIngredientRecipe"
            },
            "description": "The list of ingredient recipes."
          },
          "items": {
            "type": [
              "array",
              "null"
            ],
            "items": {
              "$ref": "#/components/schemas/Api.Models.Dto.RecipeIngredientItem"
            },
            "description": "The list of ingredient items."
          }
        },
        "additionalProperties": false
      },
      "Api.Models.Dto.RecipeAttachedFile": {
        "type": "object",
        "properties": {
          "attachedFileID": {
            "type": "string",
            "description": "Unique ID of the Yellow Dog AttachedFile; formatted as GUID (example: 433ef432-f63e-4c26-a29f-39d4079d9fc9)",
            "format": "uuid"
          },
          "ownerID": {
            "type": "string",
            "description": "Unique ID of the Owner of the AttachedFile; formatted as GUID (example: 433ef432-f63e-4c26-a29f-39d4079d9fc9) \r\nIn this case, it's the ID of Recipe.",
            "format": "uuid"
          },
          "description": {
            "type": [
              "string",
              "null"
            ],
            "description": "Description of the AttachedFile."
          },
          "imageURL": {
            "type": [
              "string",
              "null"
            ],
            "description": "URL of the AttachedFile."
          },
          "lastUpdated": {
            "type": "string",
            "description": "DateTime when the AttachedFile was last updated in Yellow Dog, in ISO 8601 format",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "Api.Models.Dto.RecipeLink": {
        "type": "object",
        "properties": {
          "recipeLinkID": {
            "type": "string",
            "description": "Unique ID of the Yellow Dog RecipeLink; formatted as GUID (example: 433ef432-f63e-4c26-a29f-39d4079d9fc9)",
            "format": "uuid"
          },
          "recipeID": {
            "type": "string",
            "description": "Unique ID of the Yellow Dog Recipe; formatted as GUID (example: 433ef432-f63e-4c26-a29f-39d4079d9fc9)",
            "format": "uuid"
          },
          "description": {
            "type": [
              "string",
              "null"
            ],
            "description": "Description of the RecipeLink."
          },
          "url": {
            "type": [
              "string",
              "null"
            ],
            "description": "URL of the RecipeLink."
          },
          "notes": {
            "type": [
              "string",
              "null"
            ],
            "description": "Notes of the RecipeLink."
          },
          "lastUpdated": {
            "type": "string",
            "description": "DateTime when the RecipeLink was last updated in Yellow Dog, in ISO 8601 format",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "Api.Models.Dto.RecipeCostingStore": {
        "type": "object",
        "properties": {
          "storeId": {
            "type": "string",
            "description": "Unique ID of the Yellow Dog Store; formatted as GUID (example: 433ef432-f63e-4c26-a29f-39d4079d9fc9)",
            "format": "uuid"
          },
          "cost": {
            "type": "number",
            "description": "The calculated cost of the recipe for this store.",
            "format": "double"
          },
          "lastUpdated": {
            "type": "string",
            "description": "DateTime when the cost was last updated in Yellow Dog, in ISO 8601 format",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "Api.Models.Dto.RecipeCosting": {
        "type": "object",
        "description": "Includes the following cost details when using the \"Expand=Cost-Usage\" expansion parameter with a v377 or later version of a Yellow Dog database. Details will be empty when these conditions are not satisfied.\n",
        "properties": {
          "averageAcrossAllStores": {
            "type": "number",
            "description": "Average cost of the recipe across all stores that the user has access to. Costing is updated at least nightly and reflects the cost of the ingredients if it were to be deducted at time of update. In FIFO this is using the current costs of the ingredients in the current bucket. Cost attribution for sales transactions that use Recipes occur dynamically and there is no guarantee that this cost will be used across all deductions over a given time period.\n",
            "format": "double"
          },
          "lastUpdated": {
            "type": "string",
            "description": "DateTime when the average cost was last calculated, usually part of the nightly maintenance routine, in ISO 8601 format",
            "format": "date-time"
          },
          "stores": {
            "type": [
              "array",
              "null"
            ],
            "items": {
              "$ref": "#/components/schemas/Api.Models.Dto.RecipeCostingStore"
            },
            "description": "List of stores with their individual recipe costs."
          }
        },
        "additionalProperties": false
      },
      "Api.Models.Dto.RecipeUsageItem": {
        "type": "object",
        "properties": {
          "itemId": {
            "type": "string",
            "description": "Unique ID of the Yellow Dog Item that uses this recipe; formatted as GUID (example: 433ef432-f63e-4c26-a29f-39d4079d9fc9)",
            "format": "uuid"
          }
        },
        "additionalProperties": false
      },
      "Api.Models.Dto.RecipeUsage": {
        "type": "object",
        "description": "The following array includes usage details when the \"Expand=Cost-Usage\" expansion parameter is used with a v377 or later version of a Yellow Dog database. The array will be empty when these conditions are not satisfied.\n",
        "properties": {
          "itemsUsingThisRecipe": {
            "type": [
              "array",
              "null"
            ],
            "items": {
              "$ref": "#/components/schemas/Api.Models.Dto.RecipeUsageItem"
            },
            "description": "Lists items that have their RecipeID property matching this recipe's ID.\n"
          }
        },
        "additionalProperties": false
      },
      "Api.Models.Dto.RecipeDetail": {
        "type": "object",
        "properties": {
          "recipeID": {
            "type": [
              "string",
              "null"
            ],
            "description": "Unique ID of the Yellow Dog Recipe; formatted as GUID (example: 433ef432-f63e-4c26-a29f-39d4079d9fc9)",
            "format": "uuid"
          },
          "description": {
            "type": [
              "string",
              "null"
            ],
            "description": "Description of the Recipe."
          },
          "instructions": {
            "type": [
              "string",
              "null"
            ],
            "description": "Instruction of the Recipe."
          },
          "recipeTypeID": {
            "type": [
              "string",
              "null"
            ],
            "description": "Unique ID of the Yellow Dog RecipeType; formatted as GUID (example: 433ef432-f63e-4c26-a29f-39d4079d9fc9) \r\nShow which type of recipe this is.",
            "format": "uuid"
          },
          "productionGroupID": {
            "type": [
              "string",
              "null"
            ],
            "description": "Unique ID of the Yellow Dog ProductionGroup; formatted as GUID (example: 433ef432-f63e-4c26-a29f-39d4079d9fc9) \r\nAssign Production Group to set a default value when the recipe is used in the Production Worksheet.",
            "format": "uuid"
          },
          "yield": {
            "$ref": "#/components/schemas/Api.Models.Dto.RecipeYield"
          },
          "notes": {
            "type": [
              "string",
              "null"
            ],
            "description": "Notes of the Recipe."
          },
          "actualPrice": {
            "type": [
              "number",
              "null"
            ],
            "description": "Actual of the Recipe.",
            "format": "double"
          },
          "inactive": {
            "type": "boolean",
            "description": "Show whether this recipe has been deactivated or not."
          },
          "rowCreated": {
            "type": "string",
            "description": "DateTime when the Recipe was created in Yellow Dog, in ISO 8601 format",
            "format": "date-time"
          },
          "lastUpdated": {
            "type": "string",
            "description": "DateTime when the Recipe was last updated in Yellow Dog, in ISO 8601 format",
            "format": "date-time"
          },
          "ingredients": {
            "$ref": "#/components/schemas/Api.Models.Dto.RecipeIngredients"
          },
          "attachedFiles": {
            "type": [
              "array",
              "null"
            ],
            "items": {
              "$ref": "#/components/schemas/Api.Models.Dto.RecipeAttachedFile"
            },
            "description": "The list of the files attached to this recipe."
          },
          "links": {
            "type": [
              "array",
              "null"
            ],
            "items": {
              "$ref": "#/components/schemas/Api.Models.Dto.RecipeLink"
            },
            "description": "The list of links included in this recipe."
          },
          "costing": {
            "$ref": "#/components/schemas/Api.Models.Dto.RecipeCosting"
          },
          "usage": {
            "$ref": "#/components/schemas/Api.Models.Dto.RecipeUsage"
          }
        },
        "additionalProperties": false
      },
      "Api.Models.Dto.RecipeType": {
        "type": "object",
        "properties": {
          "recipeTypeID": {
            "type": "string",
            "format": "uuid"
          },
          "code": {
            "type": [
              "string",
              "null"
            ]
          },
          "description": {
            "type": [
              "string",
              "null"
            ]
          },
          "rowUpdated": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "Api.Models.Dto.FetchAPICommdocLine": {
        "type": "object",
        "properties": {
          "commdocLineID": {
            "type": [
              "string",
              "null"
            ],
            "format": "uuid"
          },
          "commdocID": {
            "type": [
              "string",
              "null"
            ],
            "format": "uuid"
          },
          "backLinkLineID": {
            "type": [
              "string",
              "null"
            ],
            "format": "uuid"
          },
          "itemID": {
            "type": [
              "string",
              "null"
            ],
            "format": "uuid"
          },
          "vendorPrice": {
            "type": [
              "number",
              "null"
            ],
            "format": "double"
          },
          "lastVendorPrice": {
            "type": [
              "number",
              "null"
            ],
            "format": "double"
          },
          "quantity": {
            "type": [
              "number",
              "null"
            ],
            "format": "double"
          },
          "lineNumber": {
            "type": [
              "integer",
              "null"
            ],
            "format": "int32"
          },
          "notes": {
            "type": [
              "string",
              "null"
            ]
          },
          "converted": {
            "type": [
              "string",
              "null"
            ]
          },
          "computedCost": {
            "type": [
              "number",
              "null"
            ],
            "format": "double"
          },
          "rowDeleted": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "Api.Models.Dto.RequestCreate": {
        "type": "object",
        "properties": {
          "lines": {
            "type": [
              "array",
              "null"
            ],
            "items": {
              "$ref": "#/components/schemas/Api.Models.Dto.FetchAPICommdocLine"
            }
          },
          "doCommit": {
            "type": "boolean"
          },
          "RequestType": {
            "type": [
              "string",
              "null"
            ],
            "description": "Valid Request Types: \"Purchase\", \"Transfer\", null"
          },
          "commit": {
            "type": "boolean"
          },
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "thirdPartyID": {
            "type": [
              "string",
              "null"
            ]
          },
          "docNumber": {
            "type": [
              "string",
              "null"
            ]
          },
          "reference": {
            "type": [
              "string",
              "null"
            ]
          },
          "description": {
            "type": [
              "string",
              "null"
            ]
          },
          "instructions": {
            "type": [
              "string",
              "null"
            ]
          },
          "totalAmount": {
            "type": "number",
            "format": "double"
          },
          "created": {
            "type": "string",
            "format": "date-time"
          },
          "lastUpdated": {
            "type": "string",
            "format": "date-time"
          },
          "vendor": {
            "type": [
              "string",
              "null"
            ]
          },
          "createdByUser": {
            "type": [
              "string",
              "null"
            ]
          },
          "notes": {
            "type": [
              "string",
              "null"
            ]
          },
          "store": {
            "type": [
              "string",
              "null"
            ]
          },
          "committed": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "committedByUser": {
            "type": [
              "string",
              "null"
            ]
          },
          "needBy": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "Dingo.GraphQL.RequestStatus": {
        "enum": [
          0,
          1,
          2,
          3,
          4,
          5,
          6,
          7,
          8,
          9,
          10,
          11,
          12,
          13,
          14,
          15,
          16,
          17,
          18,
          19
        ],
        "type": "integer",
        "format": "int32"
      },
      "Dingo.GraphQL.IGetMyRequest_Me_Request_Store": {
        "type": "object",
        "properties": {
          "code": {
            "type": [
              "string",
              "null"
            ],
            "readOnly": true
          },
          "description": {
            "type": [
              "string",
              "null"
            ],
            "readOnly": true
          },
          "id": {
            "type": [
              "string",
              "null"
            ],
            "readOnly": true
          },
          "requestEmailAddress": {
            "type": [
              "string",
              "null"
            ],
            "description": "375+ only\r\ndefaults to null\r\nrecipient email used when sending out request information for this store",
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "Dingo.GraphQL.IGetMyRequest_Me_Request_Requestor": {
        "type": "object",
        "properties": {
          "code": {
            "type": [
              "string",
              "null"
            ],
            "readOnly": true
          },
          "id": {
            "type": [
              "string",
              "null"
            ],
            "readOnly": true
          },
          "name": {
            "type": [
              "string",
              "null"
            ],
            "readOnly": true
          },
          "email": {
            "type": [
              "string",
              "null"
            ],
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "Dingo.GraphQL.YdRequestType": {
        "enum": [
          0,
          1,
          2
        ],
        "type": "integer",
        "format": "int32"
      },
      "Dingo.GraphQL.IGetMyRequest_Me_Request_Lines_Nodes_Item": {
        "type": "object",
        "properties": {
          "id": {
            "type": [
              "string",
              "null"
            ],
            "readOnly": true
          },
          "description": {
            "type": [
              "string",
              "null"
            ],
            "readOnly": true
          },
          "dimension1": {
            "type": [
              "string",
              "null"
            ],
            "readOnly": true
          },
          "dimension2": {
            "type": [
              "string",
              "null"
            ],
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "Dingo.GraphQL.IGetMyRequest_Me_Request_Lines_Nodes": {
        "type": "object",
        "properties": {
          "id": {
            "type": [
              "string",
              "null"
            ],
            "readOnly": true
          },
          "item": {
            "$ref": "#/components/schemas/Dingo.GraphQL.IGetMyRequest_Me_Request_Lines_Nodes_Item"
          },
          "quantity": {
            "type": [
              "number",
              "null"
            ],
            "format": "double",
            "readOnly": true
          },
          "vendorPrice": {
            "type": [
              "number",
              "null"
            ],
            "format": "double",
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "Dingo.GraphQL.IGetMyRequest_Me_Request_Lines": {
        "type": "object",
        "properties": {
          "id": {
            "type": [
              "string",
              "null"
            ],
            "readOnly": true
          },
          "count": {
            "type": "integer",
            "format": "int32",
            "readOnly": true
          },
          "uniqueItemCount": {
            "type": "integer",
            "format": "int32",
            "readOnly": true
          },
          "totalQuantity": {
            "type": "number",
            "format": "double",
            "readOnly": true
          },
          "totalVendorPrice": {
            "type": "number",
            "format": "double",
            "readOnly": true
          },
          "nodes": {
            "type": [
              "array",
              "null"
            ],
            "items": {
              "$ref": "#/components/schemas/Dingo.GraphQL.IGetMyRequest_Me_Request_Lines_Nodes"
            },
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "Dingo.GraphQL.IGetMyRequest_Me_Request": {
        "type": "object",
        "properties": {
          "id": {
            "type": [
              "string",
              "null"
            ],
            "readOnly": true
          },
          "code": {
            "type": [
              "string",
              "null"
            ],
            "readOnly": true
          },
          "description": {
            "type": [
              "string",
              "null"
            ],
            "readOnly": true
          },
          "dueAt": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time",
            "readOnly": true
          },
          "instructions": {
            "type": [
              "string",
              "null"
            ],
            "readOnly": true
          },
          "notes": {
            "type": [
              "string",
              "null"
            ],
            "readOnly": true
          },
          "reference": {
            "type": [
              "string",
              "null"
            ],
            "readOnly": true
          },
          "requestedAt": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time",
            "readOnly": true
          },
          "createdAt": {
            "type": "string",
            "format": "date-time",
            "readOnly": true
          },
          "status": {
            "$ref": "#/components/schemas/Dingo.GraphQL.RequestStatus"
          },
          "store": {
            "$ref": "#/components/schemas/Dingo.GraphQL.IGetMyRequest_Me_Request_Store"
          },
          "requestor": {
            "$ref": "#/components/schemas/Dingo.GraphQL.IGetMyRequest_Me_Request_Requestor"
          },
          "requestType": {
            "$ref": "#/components/schemas/Dingo.GraphQL.YdRequestType"
          },
          "lines": {
            "$ref": "#/components/schemas/Dingo.GraphQL.IGetMyRequest_Me_Request_Lines"
          }
        },
        "additionalProperties": false
      },
      "Api.Helpers.MobileStatus": {
        "enum": [
          0,
          1,
          2,
          3,
          4
        ],
        "type": "integer",
        "format": "int32"
      },
      "Api.Models.Dto.SessionItemGet": {
        "type": "object",
        "properties": {
          "sessionItemID": {
            "type": "string",
            "description": "Yellow Dog's SessionID for the Item Counted in the Session; formatted as GUID (example: 433ef432-f63e-4c26-a29f-39d4079d9fc9)",
            "format": "uuid"
          },
          "sessionID": {
            "type": "string",
            "description": "Yellow Dog's SessionID for the Session; formatted as GUID (example: 433ef432-f63e-4c26-a29f-39d4079d9fc9)",
            "format": "uuid"
          },
          "itemID": {
            "type": "string",
            "description": "Yellow Dog's Item ID for the item; formatted as GUID (example: 433ef432-f63e-4c26-a29f-39d4079d9fc9)",
            "format": "uuid"
          },
          "count": {
            "type": [
              "number",
              "null"
            ],
            "format": "double"
          },
          "flagID": {
            "type": [
              "string",
              "null"
            ],
            "description": "FlagID is the unique identifier for the Flag; formatted as GUID (example: 433ef432-f63e-4c26-a29f-39d4079d9fc9)",
            "format": "uuid"
          },
          "levelID": {
            "type": [
              "string",
              "null"
            ],
            "format": "uuid"
          }
        },
        "additionalProperties": false
      },
      "Api.Models.Dto.SessionGet": {
        "type": "object",
        "properties": {
          "sessionID": {
            "type": "string",
            "description": "Yellow Dog's SessionID for the Session; formatted as GUID (example: 433ef432-f63e-4c26-a29f-39d4079d9fc9)",
            "format": "uuid"
          },
          "storeID": {
            "type": [
              "string",
              "null"
            ],
            "description": "Unique ID of the Yellow Dog store where the item was counted; formatted as GUID (example: 433ef432-f63e-4c26-a29f-39d4079d9fc9)",
            "format": "uuid"
          },
          "description": {
            "type": [
              "string",
              "null"
            ],
            "description": "Description of the Session (I.E. January Inventory)"
          },
          "userID": {
            "type": "string",
            "description": "Yellow Dog's UserID for the User; formatted as GUID (example: 433ef432-f63e-4c26-a29f-39d4079d9fc9)",
            "format": "uuid"
          },
          "device": {
            "type": [
              "string",
              "null"
            ],
            "description": "The device used to perform the count session"
          },
          "mobileStatus": {
            "$ref": "#/components/schemas/Api.Helpers.MobileStatus"
          },
          "lastUpdated": {
            "type": "string",
            "description": "DateTime when this item was last updated in Yellow Dog, in ISO 8601 format",
            "format": "date-time"
          },
          "countSheetID": {
            "type": [
              "string",
              "null"
            ],
            "description": "Yellow Dog's CountSheetID for the Session; formatted as GUID (example: 433ef432-f63e-4c26-a29f-39d4079d9fc9)",
            "format": "uuid"
          },
          "sessionItems": {
            "type": [
              "array",
              "null"
            ],
            "items": {
              "$ref": "#/components/schemas/Api.Models.Dto.SessionItemGet"
            }
          }
        },
        "additionalProperties": false
      },
      "Api.Models.Dto.SessionItemCreate": {
        "type": "object",
        "properties": {
          "sessionItemID": {
            "type": "string",
            "description": "Yellow Dog's SessionID for the Item Counted in the Session; formatted as GUID (example: 433ef432-f63e-4c26-a29f-39d4079d9fc9)",
            "format": "uuid"
          },
          "sessionID": {
            "type": "string",
            "description": "Yellow Dog's SessionID for the Session; formatted as GUID (example: 433ef432-f63e-4c26-a29f-39d4079d9fc9)",
            "format": "uuid"
          },
          "itemID": {
            "type": [
              "string",
              "null"
            ],
            "description": "Yellow Dog's Item ID for the item; formatted as GUID (example: 433ef432-f63e-4c26-a29f-39d4079d9fc9)",
            "format": "uuid"
          },
          "count": {
            "maximum": 99999999999.9999,
            "minimum": -99999999999.9999,
            "type": [
              "number",
              "null"
            ],
            "format": "double"
          },
          "flagID": {
            "type": [
              "string",
              "null"
            ],
            "description": "FlagID is the unique identifier for the Flag; formatted as GUID (example: 433ef432-f63e-4c26-a29f-39d4079d9fc9)",
            "format": "uuid"
          },
          "levelID": {
            "type": [
              "string",
              "null"
            ],
            "format": "uuid"
          },
          "rowDeleted": {
            "type": "boolean",
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "Api.Models.Dto.SessionCreate": {
        "type": "object",
        "properties": {
          "sessionID": {
            "type": "string",
            "description": "Yellow Dog's SessionID for the Session; formatted as GUID (example: 433ef432-f63e-4c26-a29f-39d4079d9fc9)",
            "format": "uuid"
          },
          "storeID": {
            "type": [
              "string",
              "null"
            ],
            "description": "Unique ID of the Yellow Dog store where the item was counted; formatted as GUID (example: 433ef432-f63e-4c26-a29f-39d4079d9fc9)",
            "format": "uuid"
          },
          "description": {
            "type": [
              "string",
              "null"
            ],
            "description": "Description of the Session (I.E. January Inventory)"
          },
          "userID": {
            "type": "string",
            "description": "Yellow Dog's UserID for the User; formatted as GUID (example: 433ef432-f63e-4c26-a29f-39d4079d9fc9)",
            "format": "uuid"
          },
          "device": {
            "type": [
              "string",
              "null"
            ],
            "description": "The device used to perform the count session"
          },
          "countSheetID": {
            "type": [
              "string",
              "null"
            ],
            "description": "Yellow Dog's CountSheetID for the Session; formatted as GUID (example: 433ef432-f63e-4c26-a29f-39d4079d9fc9)",
            "format": "uuid"
          },
          "mobileStatus": {
            "$ref": "#/components/schemas/Api.Helpers.MobileStatus"
          },
          "sessionItems": {
            "type": [
              "array",
              "null"
            ],
            "items": {
              "$ref": "#/components/schemas/Api.Models.Dto.SessionItemCreate"
            }
          }
        },
        "additionalProperties": false
      },
      "Api.Models.Dto.SessionItemCreate2": {
        "required": [
          "count",
          "itemID"
        ],
        "type": "object",
        "properties": {
          "itemID": {
            "type": "string",
            "format": "uuid"
          },
          "count": {
            "type": "number",
            "format": "double"
          }
        },
        "additionalProperties": false
      },
      "Api.Models.Dto.SessionItemMutationResponse": {
        "type": "object",
        "properties": {
          "sessionItemID": {
            "type": "string",
            "description": "Yellow Dog's SessionID for the Item Counted in the Session; formatted as GUID (example: 433ef432-f63e-4c26-a29f-39d4079d9fc9)",
            "format": "uuid"
          },
          "sessionID": {
            "type": "string",
            "description": "Yellow Dog's SessionID for the Session; formatted as GUID (example: 433ef432-f63e-4c26-a29f-39d4079d9fc9)",
            "format": "uuid"
          },
          "itemID": {
            "type": [
              "string",
              "null"
            ],
            "description": "Yellow Dog's Item ID for the item; formatted as GUID (example: 433ef432-f63e-4c26-a29f-39d4079d9fc9)",
            "format": "uuid"
          },
          "count": {
            "type": [
              "number",
              "null"
            ],
            "format": "double"
          }
        },
        "additionalProperties": false
      },
      "Api.Models.Dto.SessionItemUpdate": {
        "required": [
          "count"
        ],
        "type": "object",
        "properties": {
          "count": {
            "type": "number",
            "format": "double"
          }
        },
        "additionalProperties": false
      },
      "Api.Models.Dto.StoreGet": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Yellow Dog's primary key for the Store; always unique; formatted as GUID (example: 433ef432-f63e-4c26-a29f-39d4079d9fc9)",
            "format": "uuid"
          },
          "code": {
            "type": [
              "string",
              "null"
            ],
            "description": "Main number associated with the Store in the Yellow Dog UI; unique per database"
          },
          "name": {
            "type": [
              "string",
              "null"
            ],
            "description": "Name of the store"
          },
          "noOnHand": {
            "type": "boolean",
            "description": "on hand counts are allowed or not allowed in the store (used for stores that are only transfer destinations to relieve inventory from another store)"
          },
          "revenueCenter": {
            "type": [
              "string",
              "null"
            ],
            "description": "Code generated by the Point of Sale that is used to map transaction and adjustment data"
          },
          "notes": {
            "type": [
              "string",
              "null"
            ],
            "description": "User-defined notes about the store"
          },
          "created": {
            "type": "string",
            "description": "The date the store was created in Yellow Dog Inventory",
            "format": "date-time"
          },
          "accountingID": {
            "type": [
              "string",
              "null"
            ],
            "description": "Free text field used for identifying what the id for this store is in an accounting system. This is found in the Store Editor as the field called Accounting ID"
          },
          "companyID": {
            "type": [
              "string",
              "null"
            ],
            "description": "Free text field used for identifying what the ID of the company is. This is found in the Store Editor as the field called CompanyID."
          }
        },
        "additionalProperties": false
      },
      "Api.Models.Dto.TPStore": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "code": {
            "type": [
              "string",
              "null"
            ]
          },
          "name": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "additionalProperties": false
      },
      "Api.Models.Dto.TPCodeGet": {
        "required": [
          "code",
          "description",
          "type"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "A unique identifier for the TPCode Record\r\n            \r\nThis is autogenerated by Yellow Dog on creation of the record.",
            "format": "uuid"
          },
          "type": {
            "minLength": 1,
            "type": "string",
            "description": "The Type of code being entered. This should be titled specifically for the third party integrator in Pascal case.\r\n            \r\nA common way to type specifically is to prepend the Type with the name of the integration.\r\n\r\nThis will be displayed in the Interfaces tab under the Accounting/Other section as \"Integration Name Tax Grouping\""
          },
          "code": {
            "minLength": 1,
            "type": "string",
            "description": "Identifier used by the Integrator to match certain behavior on their side of the integration."
          },
          "description": {
            "minLength": 1,
            "type": "string",
            "description": "User friendly description that will be displayed to the user as part of a drop down box titled by the `type`"
          },
          "store": {
            "$ref": "#/components/schemas/Api.Models.Dto.TPStore"
          }
        },
        "additionalProperties": false
      },
      "Dingo.GraphQL.ThirdPartyItemCreateBulk": {
        "type": "object",
        "properties": {
          "type": {
            "type": [
              "string",
              "null"
            ],
            "description": "arbitrary item type from the third party"
          },
          "code": {
            "type": [
              "string",
              "null"
            ]
          },
          "alternateCode": {
            "type": [
              "string",
              "null"
            ]
          },
          "description": {
            "type": [
              "string",
              "null"
            ]
          },
          "canMapToRecipes": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "canMapToTransactions": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "parentCode": {
            "type": [
              "string",
              "null"
            ],
            "description": "Third Party's code for parent Third Party Item of this Third Party Item"
          }
        },
        "additionalProperties": false
      },
      "Dingo.GraphQL.ICreateTPItems_CreateThirdPartyItems_SyncConfig": {
        "type": "object",
        "properties": {
          "id": {
            "type": [
              "string",
              "null"
            ],
            "readOnly": true
          },
          "description": {
            "type": [
              "string",
              "null"
            ],
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "Dingo.GraphQL.ICreateTPItems_CreateThirdPartyItems": {
        "type": "object",
        "properties": {
          "id": {
            "type": [
              "integer",
              "null"
            ],
            "format": "int32",
            "readOnly": true
          },
          "code": {
            "type": [
              "string",
              "null"
            ],
            "readOnly": true
          },
          "type": {
            "type": [
              "string",
              "null"
            ],
            "description": "arbitrary item type from the third party",
            "readOnly": true
          },
          "description": {
            "type": [
              "string",
              "null"
            ],
            "readOnly": true
          },
          "createdAt": {
            "type": "string",
            "format": "date-time",
            "readOnly": true
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time",
            "readOnly": true
          },
          "canMapToRecipes": {
            "type": "boolean",
            "readOnly": true
          },
          "canMapToTransactions": {
            "type": "boolean",
            "readOnly": true
          },
          "syncConfig": {
            "$ref": "#/components/schemas/Dingo.GraphQL.ICreateTPItems_CreateThirdPartyItems_SyncConfig"
          }
        },
        "additionalProperties": false
      },
      "StrawberryShake.Location": {
        "type": "object",
        "properties": {
          "line": {
            "type": "integer",
            "format": "int32"
          },
          "column": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "StrawberryShake.IClientError": {
        "type": "object",
        "properties": {
          "message": {
            "type": [
              "string",
              "null"
            ],
            "readOnly": true
          },
          "code": {
            "type": [
              "string",
              "null"
            ],
            "readOnly": true
          },
          "path": {
            "type": [
              "array",
              "null"
            ],
            "items": {},
            "readOnly": true
          },
          "locations": {
            "type": [
              "array",
              "null"
            ],
            "items": {
              "$ref": "#/components/schemas/StrawberryShake.Location"
            },
            "readOnly": true
          },
          "exception": {
            "type": [
              "string",
              "null"
            ],
            "readOnly": true
          },
          "extensions": {
            "type": [
              "object",
              "null"
            ],
            "additionalProperties": {
              "type": [
                "object",
                "null"
              ]
            },
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "Dingo.GraphQL.ThirdPartyLocationCreate": {
        "type": "object",
        "properties": {
          "type": {
            "type": [
              "string",
              "null"
            ]
          },
          "code": {
            "type": [
              "string",
              "null"
            ]
          },
          "description": {
            "type": [
              "string",
              "null"
            ]
          },
          "parentCode": {
            "type": [
              "string",
              "null"
            ],
            "description": "Third Party's code for parent location of this location"
          },
          "alternateCode": {
            "type": [
              "string",
              "null"
            ]
          },
          "storeId": {
            "type": [
              "string",
              "null"
            ],
            "description": "YD Store ID"
          },
          "storeCode": {
            "type": [
              "string",
              "null"
            ],
            "description": "YD Store Code for use with Import TP Locations"
          }
        },
        "additionalProperties": false
      },
      "Dingo.GraphQL.ICreateThirdPartyLocations_CreateThirdPartyLocations_Store": {
        "type": "object",
        "properties": {
          "id": {
            "type": [
              "string",
              "null"
            ],
            "readOnly": true
          },
          "code": {
            "type": [
              "string",
              "null"
            ],
            "readOnly": true
          },
          "description": {
            "type": [
              "string",
              "null"
            ],
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "Dingo.GraphQL.ICreateThirdPartyLocations_CreateThirdPartyLocations_SyncConfig": {
        "type": "object",
        "properties": {
          "id": {
            "type": [
              "string",
              "null"
            ],
            "readOnly": true
          },
          "description": {
            "type": [
              "string",
              "null"
            ],
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "Dingo.GraphQL.ICreateThirdPartyLocations_CreateThirdPartyLocations": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32",
            "readOnly": true
          },
          "code": {
            "type": [
              "string",
              "null"
            ],
            "readOnly": true
          },
          "type": {
            "type": [
              "string",
              "null"
            ],
            "readOnly": true
          },
          "description": {
            "type": [
              "string",
              "null"
            ],
            "readOnly": true
          },
          "createdAt": {
            "type": "string",
            "format": "date-time",
            "readOnly": true
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time",
            "readOnly": true
          },
          "store": {
            "$ref": "#/components/schemas/Dingo.GraphQL.ICreateThirdPartyLocations_CreateThirdPartyLocations_Store"
          },
          "syncConfig": {
            "$ref": "#/components/schemas/Dingo.GraphQL.ICreateThirdPartyLocations_CreateThirdPartyLocations_SyncConfig"
          }
        },
        "additionalProperties": false
      },
      "Api.Models.Dto.TPCodeUpdate": {
        "required": [
          "code",
          "description",
          "type"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "A unique identifier for the TPCode Record\r\n            \r\nThis is autogenerated by Yellow Dog on creation of the record.",
            "format": "uuid"
          },
          "type": {
            "minLength": 1,
            "type": "string",
            "description": "The Type of code being entered. This should be titled specifically for the third party integrator in Pascal case.\r\n            \r\nA common way to type specifically is to prepend the Type with the name of the integration.\r\n\r\nThis will be displayed in the Interfaces tab under the Accounting/Other section as \"Integration Name Tax Grouping\""
          },
          "code": {
            "minLength": 1,
            "type": "string",
            "description": "Identifier used by the Integrator to match certain behavior on their side of the integration."
          },
          "description": {
            "minLength": 1,
            "type": "string",
            "description": "User friendly description that will be displayed to the user as part of a drop down box titled by the `type`"
          },
          "store": {
            "$ref": "#/components/schemas/Api.Models.Dto.GenericObject"
          }
        },
        "additionalProperties": false
      },
      "Api.Models.Dto.TPCode": {
        "required": [
          "code",
          "description",
          "type"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "A unique identifier for the TPCode Record\r\n            \r\nThis is autogenerated by Yellow Dog on creation of the record.",
            "format": "uuid"
          },
          "type": {
            "minLength": 1,
            "type": "string",
            "description": "The Type of code being entered. This should be titled specifically for the third party integrator in Pascal case.\r\n            \r\nA common way to type specifically is to prepend the Type with the name of the integration.\r\n\r\nThis will be displayed in the Interfaces tab under the Accounting/Other section as \"Integration Name Tax Grouping\""
          },
          "code": {
            "minLength": 1,
            "type": "string",
            "description": "Identifier used by the Integrator to match certain behavior on their side of the integration."
          },
          "description": {
            "minLength": 1,
            "type": "string",
            "description": "User friendly description that will be displayed to the user as part of a drop down box titled by the `type`"
          },
          "store": {
            "$ref": "#/components/schemas/Api.Models.Dto.TPStore"
          }
        },
        "additionalProperties": false
      },
      "Api.Models.ValidationError": {
        "type": "object",
        "properties": {
          "field": {
            "type": [
              "string",
              "null"
            ]
          },
          "message": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "additionalProperties": false
      },
      "Api.Models.ValidationResultModel": {
        "type": "object",
        "properties": {
          "message": {
            "type": [
              "string",
              "null"
            ],
            "readOnly": true
          },
          "errors": {
            "type": [
              "array",
              "null"
            ],
            "items": {
              "$ref": "#/components/schemas/Api.Models.ValidationError"
            },
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "Api.Models.Dto.TPCodeCreate": {
        "required": [
          "code",
          "description",
          "type"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "A unique identifier for the TPCode Record\r\n            \r\nThis is autogenerated by Yellow Dog on creation of the record.",
            "format": "uuid"
          },
          "type": {
            "minLength": 1,
            "type": "string",
            "description": "The Type of code being entered. This should be titled specifically for the third party integrator in Pascal case.\r\n            \r\nA common way to type specifically is to prepend the Type with the name of the integration.\r\n\r\nThis will be displayed in the Interfaces tab under the Accounting/Other section as \"Integration Name Tax Grouping\""
          },
          "code": {
            "minLength": 1,
            "type": "string",
            "description": "Identifier used by the Integrator to match certain behavior on their side of the integration."
          },
          "description": {
            "minLength": 1,
            "type": "string",
            "description": "User friendly description that will be displayed to the user as part of a drop down box titled by the `type`"
          },
          "store": {
            "$ref": "#/components/schemas/Api.Models.Dto.GenericObject"
          }
        },
        "additionalProperties": false
      },
      "Api.Models.Dto.TPManufacturer": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "sku": {
            "type": [
              "string",
              "null"
            ]
          },
          "name": {
            "type": [
              "string",
              "null"
            ]
          },
          "cost": {
            "type": [
              "number",
              "null"
            ],
            "format": "double"
          }
        },
        "additionalProperties": false
      },
      "Api.Models.Dto.TPVendor": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "sku": {
            "type": [
              "string",
              "null"
            ]
          },
          "name": {
            "type": [
              "string",
              "null"
            ]
          },
          "cost": {
            "type": [
              "number",
              "null"
            ],
            "format": "double"
          }
        },
        "additionalProperties": false
      },
      "Api.Models.Dto.TPItem": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "upc": {
            "type": [
              "string",
              "null"
            ]
          },
          "sku": {
            "type": [
              "string",
              "null"
            ]
          },
          "description": {
            "type": [
              "string",
              "null"
            ]
          },
          "category": {
            "type": [
              "string",
              "null"
            ]
          },
          "subCategory": {
            "type": [
              "string",
              "null"
            ]
          },
          "retail": {
            "type": [
              "number",
              "null"
            ],
            "format": "double"
          },
          "unit": {
            "type": [
              "string",
              "null"
            ]
          },
          "manufacturer": {
            "$ref": "#/components/schemas/Api.Models.Dto.TPManufacturer"
          },
          "vendor": {
            "$ref": "#/components/schemas/Api.Models.Dto.TPVendor"
          }
        },
        "additionalProperties": false
      },
      "Api.Models.Dto.TPGenericCount": {
        "type": "object",
        "properties": {
          "value": {
            "type": [
              "number",
              "null"
            ],
            "format": "double"
          },
          "unit": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "additionalProperties": false
      },
      "Api.Models.Dto.TPSessionItem": {
        "required": [
          "counted",
          "item"
        ],
        "type": "object",
        "properties": {
          "flag": {
            "type": [
              "string",
              "null"
            ]
          },
          "device": {
            "type": [
              "string",
              "null"
            ]
          },
          "dateTime": {
            "type": "string",
            "format": "date-time"
          },
          "item": {
            "$ref": "#/components/schemas/Api.Models.Dto.TPItem"
          },
          "counted": {
            "type": "number",
            "format": "double"
          },
          "countedWeight": {
            "$ref": "#/components/schemas/Api.Models.Dto.TPGenericCount"
          },
          "countedVolume": {
            "$ref": "#/components/schemas/Api.Models.Dto.TPGenericCount"
          },
          "fullWeight": {
            "$ref": "#/components/schemas/Api.Models.Dto.TPGenericCount"
          },
          "tareWeight": {
            "$ref": "#/components/schemas/Api.Models.Dto.TPGenericCount"
          }
        },
        "additionalProperties": false
      },
      "Api.Models.Dto.TPSessionGet": {
        "required": [
          "description",
          "lines"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "code": {
            "type": [
              "string",
              "null"
            ]
          },
          "source": {
            "type": [
              "string",
              "null"
            ]
          },
          "description": {
            "minLength": 1,
            "type": "string"
          },
          "dateTime": {
            "type": "string",
            "format": "date-time"
          },
          "store": {
            "$ref": "#/components/schemas/Api.Models.Dto.TPStore"
          },
          "lines": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Api.Models.Dto.TPSessionItem"
            }
          },
          "createdByUser": {
            "$ref": "#/components/schemas/Api.Models.Dto.GenericObject"
          }
        },
        "additionalProperties": false
      },
      "Api.Models.Dto.TPSession": {
        "required": [
          "description",
          "lines"
        ],
        "type": "object",
        "properties": {
          "code": {
            "type": [
              "string",
              "null"
            ]
          },
          "source": {
            "type": [
              "string",
              "null"
            ]
          },
          "description": {
            "minLength": 1,
            "type": "string"
          },
          "dateTime": {
            "type": "string",
            "format": "date-time"
          },
          "store": {
            "$ref": "#/components/schemas/Api.Models.Dto.TPStore"
          },
          "lines": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Api.Models.Dto.TPSessionItem"
            }
          }
        },
        "additionalProperties": false
      },
      "Api.Models.Dto.TransactionLine": {
        "type": "object",
        "properties": {
          "thirdPartyLineId": {
            "maxLength": 256,
            "minLength": 0,
            "type": [
              "string",
              "null"
            ],
            "description": "Unique identifier for this transaction line. When provided this should be globally unique across all transactions. \r\n\r\nWhen the unique identifier from a third party only contains incrementing integers, it is \r\nrequired that there be additional data points to ensure that the incrementing integers are\r\nunique across all transactions as additional integrations or instances of the same integration are maintained.\r\n\r\nIn cases like this the recommended format for thirdPartyLineIds is as followed\r\n`uniqueSiteNameOrId_uniqueRevenueCenterId_transactionNumber_transactionLineNumber`\r\n\r\nAlternatively we have seen GUIDs, cuids or other unique identifiers that are not necessarily\r\n auto incrementing integers used successfully in the past for the thirdPartyLineIds."
          },
          "itemNumber": {
            "maxLength": 256,
            "minLength": 0,
            "type": [
              "string",
              "null"
            ],
            "description": "Third Party Item ID or number; any unique number associated with your item"
          },
          "sku": {
            "maxLength": 256,
            "minLength": 0,
            "type": [
              "string",
              "null"
            ],
            "description": "Yellow Dog SKU"
          },
          "itemDescription": {
            "maxLength": 256,
            "minLength": 0,
            "type": [
              "string",
              "null"
            ],
            "description": "Item Description"
          },
          "itemRetail": {
            "type": [
              "number",
              "null"
            ],
            "description": "Unit Retail for the item",
            "format": "double"
          },
          "baseRetail": {
            "type": [
              "number",
              "null"
            ],
            "description": "Standard unit retail for the item; usually the same as ItemRetail.\r\n\r\nIn some cases, an item might be sold at a different ItemRetail than the standard price, but it is not actually discounted; in this case, the BaseRetail would be different than the ItemRetail",
            "format": "double",
            "deprecated": true
          },
          "itemDiscount": {
            "type": [
              "number",
              "null"
            ],
            "description": "Unit Discount for the item. Should always be negative",
            "format": "double"
          },
          "discountDescription": {
            "maxLength": 256,
            "minLength": 0,
            "type": [
              "string",
              "null"
            ],
            "description": "Discount Description, comma separated list of any discount descriptions or names that were applied to this line"
          },
          "quantity": {
            "type": [
              "number",
              "null"
            ],
            "description": "Quantity sold, negative designates a return",
            "format": "double"
          },
          "transactionLineNumber": {
            "maxLength": 256,
            "minLength": 0,
            "type": [
              "string",
              "null"
            ],
            "description": "Transaction line number is associated to the individual line of the transaction"
          },
          "lineNumber": {
            "maximum": 2147483647,
            "minimum": 0,
            "type": [
              "integer",
              "null"
            ],
            "description": "Transaction line number, can be an index or a number that is associated to the individual line of the transaction",
            "format": "int32",
            "readOnly": true,
            "deprecated": true
          },
          "modifier": {
            "maxLength": 256,
            "minLength": 0,
            "type": [
              "string",
              "null"
            ],
            "description": "This field should contain the ThirdPartyLineID of the line it is modifying."
          },
          "item": {
            "$ref": "#/components/schemas/Api.Models.Dto.GenericObject"
          }
        },
        "additionalProperties": false
      },
      "Api.Models.Dto.Transaction": {
        "required": [
          "checkClosed",
          "lines",
          "store",
          "transactionNumber"
        ],
        "type": "object",
        "properties": {
          "thirdPartyId": {
            "maxLength": 256,
            "minLength": 0,
            "type": [
              "string",
              "null"
            ],
            "description": "This field serves as a globally unique identifier for a transaction and its lines. \r\nThis ensures all lines associated with a transaction can also be associated to the POS sales event"
          },
          "transactionNumber": {
            "maxLength": 256,
            "minLength": 0,
            "type": "string",
            "description": "Unique ID representing a collection of multiple lines from a single transaction, also commonly referred to as a check number. This number is usually a receipt and can be used to match up POS transactions to on hand affecting events"
          },
          "checkClosed": {
            "type": "string",
            "description": "The DateTime that the check was closed or made effective at the point of sale, in ISO 8601 format",
            "format": "date-time"
          },
          "employeeNumber": {
            "maxLength": 256,
            "minLength": 0,
            "type": [
              "string",
              "null"
            ],
            "description": "Alpha numeric code for the Employee that closed the transaction (if available)"
          },
          "employeeName": {
            "maxLength": 256,
            "minLength": 0,
            "type": [
              "string",
              "null"
            ],
            "description": "Name of the Employee that closed the transaction (if available)"
          },
          "tender": {
            "maxLength": 256,
            "minLength": 0,
            "type": [
              "string",
              "null"
            ],
            "description": "Method of payment, if there are multiple Tenders, provide a comma separated list of all the tenders used in the Transaction (if available)"
          },
          "registerNumber": {
            "maxLength": 256,
            "minLength": 0,
            "type": [
              "string",
              "null"
            ],
            "description": "Identifier of the register or pos station that the Transaction was closed on (if available)"
          },
          "registerName": {
            "maxLength": 256,
            "minLength": 0,
            "type": [
              "string",
              "null"
            ],
            "description": "Name of the register or pos station that the Transaction was closed on (if available)"
          },
          "reference": {
            "maxLength": 256,
            "minLength": 0,
            "type": [
              "string",
              "null"
            ],
            "description": "Field for recording any notes or additional information about the line"
          },
          "store": {
            "$ref": "#/components/schemas/Api.Models.Dto.GenericObject"
          },
          "lines": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Api.Models.Dto.TransactionLine"
            },
            "description": "Array of individual lines representing the items that were included in this transaction"
          }
        },
        "additionalProperties": false
      },
      "Api.Models.Dto.TransactionLineUpsert": {
        "required": [
          "itemRetail",
          "lineNumber",
          "quantity"
        ],
        "type": "object",
        "properties": {
          "thirdPartyLineId": {
            "maxLength": 256,
            "minLength": 0,
            "type": [
              "string",
              "null"
            ],
            "description": "Unique identifier for this transaction line. When provided this should be globally unique across all transactions. \r\n\r\nWhen the unique identifier from a third party only contains incrementing integers, it is \r\nrequired that there be additional data points to ensure that the incrementing integers are\r\nunique across all transactions as additional integrations or instances of the same integration are maintained.\r\n\r\nIn cases like this the recommended format for thirdPartyLineIds is as followed\r\n`uniqueSiteNameOrId_uniqueRevenueCenterId_transactionNumber_transactionLineNumber`\r\n\r\nAlternatively we have seen GUIDs, cuids or other unique identifiers that are not necessarily\r\n auto incrementing integers used successfully in the past for the thirdPartyLineIds."
          },
          "itemNumber": {
            "maxLength": 256,
            "minLength": 0,
            "type": [
              "string",
              "null"
            ],
            "description": "Third Party Item ID or number; any unique number associated with your item"
          },
          "sku": {
            "maxLength": 256,
            "minLength": 0,
            "type": [
              "string",
              "null"
            ],
            "description": "Yellow Dog SKU"
          },
          "itemDescription": {
            "maxLength": 256,
            "minLength": 0,
            "type": [
              "string",
              "null"
            ],
            "description": "Item Description"
          },
          "itemRetail": {
            "type": "number",
            "description": "Unit Retail for the item",
            "format": "double"
          },
          "baseRetail": {
            "type": [
              "number",
              "null"
            ],
            "description": "As of 2026, this property is deprecated. We recommend that it be omitted from request payloads going forward.\n",
            "format": "double",
            "deprecated": true
          },
          "itemDiscount": {
            "type": [
              "number",
              "null"
            ],
            "description": "Unit Discount for the item. Should always be negative",
            "format": "double"
          },
          "discountDescription": {
            "maxLength": 256,
            "minLength": 0,
            "type": [
              "string",
              "null"
            ],
            "description": "Discount Description, comma separated list of any discount descriptions or names that were applied to this line"
          },
          "quantity": {
            "type": "number",
            "description": "Quantity sold, negative designates a return",
            "format": "double"
          },
          "lineNumber": {
            "maximum": 2147483647,
            "minimum": 0,
            "type": "integer",
            "description": "Transaction line number, can be an index or a number that is associated to the individual line of the transaction",
            "format": "int32"
          },
          "modifier": {
            "maxLength": 256,
            "minLength": 0,
            "type": [
              "string",
              "null"
            ],
            "description": "This field should contain the ThirdPartyLineID of the line it is modifying."
          },
          "item": {
            "$ref": "#/components/schemas/Api.Models.Dto.GenericObject"
          }
        },
        "additionalProperties": false
      },
      "Api.Models.Dto.TransactionUpsert": {
        "required": [
          "checkClosed",
          "lines",
          "store",
          "transactionNumber"
        ],
        "type": "object",
        "properties": {
          "thirdPartyId": {
            "maxLength": 256,
            "minLength": 0,
            "type": [
              "string",
              "null"
            ],
            "description": "This field serves as a globally unique identifier for a transaction and its lines.\r\nThis ensures all lines associated with a transaction can also be associated to the POS sales event"
          },
          "transactionNumber": {
            "maxLength": 256,
            "minLength": 0,
            "type": "string",
            "description": "Unique ID representing a collection of multiple lines from a single transaction, also commonly referred to as a check number. This number is usually a receipt and can be used to match up POS transactions to on hand affecting events"
          },
          "checkClosed": {
            "type": "string",
            "description": "The DateTime that the check was closed or made effective at the point of sale, in ISO 8601 format.\r\n\r\nFor example, to effectively post a checkclosed datetime of 2024-07-02 14:11:52.9366717 in PST when the offset for PST is -07:00, you could post any of the following:\r\n            \r\n- 2024-07-02T14:11:52.9366717-07:00\r\n- 2024-07-02 14:11:52.9366717-07:00\r\n- 2024-07-02T21:11:52.9366717Z\r\n- 2024-07-02 21:11:52.9366717Z",
            "format": "date-time"
          },
          "employeeNumber": {
            "maxLength": 256,
            "minLength": 0,
            "type": [
              "string",
              "null"
            ],
            "description": "Alpha numeric code for the Employee that closed the transaction (if available)"
          },
          "employeeName": {
            "maxLength": 256,
            "minLength": 0,
            "type": [
              "string",
              "null"
            ],
            "description": "Name of the Employee that closed the transaction (if available)"
          },
          "tender": {
            "maxLength": 256,
            "minLength": 0,
            "type": [
              "string",
              "null"
            ],
            "description": "Method of payment, if there are multiple Tenders, provide a comma separated list of all unique tenders used in the Transaction (if available)"
          },
          "registerNumber": {
            "maxLength": 256,
            "minLength": 0,
            "type": [
              "string",
              "null"
            ],
            "description": "Identifier of the register or pos station that the Transaction was closed on (if available)"
          },
          "registerName": {
            "maxLength": 256,
            "minLength": 0,
            "type": [
              "string",
              "null"
            ],
            "description": "Name of the register or pos station that the Transaction was closed on (if available)"
          },
          "reference": {
            "maxLength": 256,
            "minLength": 0,
            "type": [
              "string",
              "null"
            ],
            "description": "Field for recording any notes or additional information about the line"
          },
          "store": {
            "$ref": "#/components/schemas/Api.Models.Dto.GenericObject"
          },
          "lines": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Api.Models.Dto.TransactionLineUpsert"
            },
            "description": "Array of individual lines representing the items that were included in this transaction"
          }
        },
        "additionalProperties": false
      },
      "Api.Models.Dto.CommDocLineUpdate": {
        "type": "object",
        "required": [
          "id",
          "quantity"
        ],
        "properties": {
          "id": {
            "type": [
              "string",
              "null"
            ],
            "format": "uuid"
          },
          "quantity": {
            "type": "number",
            "format": "double"
          },
          "notes": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "additionalProperties": false
      },
      "Api.Models.Dto.TransferAccept": {
        "type": "object",
        "properties": {
          "lines": {
            "type": [
              "array",
              "null"
            ],
            "items": {
              "$ref": "#/components/schemas/Api.Models.Dto.CommDocLineUpdate"
            }
          },
          "doCommit": {
            "type": "boolean"
          },
          "commit": {
            "type": "boolean"
          },
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "thirdPartyID": {
            "type": [
              "string",
              "null"
            ]
          },
          "docNumber": {
            "type": [
              "string",
              "null"
            ]
          },
          "reference": {
            "type": [
              "string",
              "null"
            ]
          },
          "description": {
            "type": [
              "string",
              "null"
            ]
          },
          "instructions": {
            "type": [
              "string",
              "null"
            ]
          },
          "totalAmount": {
            "type": "number",
            "format": "double"
          },
          "created": {
            "type": "string",
            "format": "date-time"
          },
          "lastUpdated": {
            "type": "string",
            "format": "date-time"
          },
          "vendor": {
            "type": [
              "string",
              "null"
            ]
          },
          "createdByUser": {
            "type": [
              "string",
              "null"
            ]
          },
          "notes": {
            "type": [
              "string",
              "null"
            ]
          },
          "store": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "additionalProperties": false
      },
      "Api.Models.Dto.Level": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "code": {
            "type": [
              "string",
              "null"
            ]
          },
          "description": {
            "type": [
              "string",
              "null"
            ]
          },
          "position": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "Api.Models.Dto.CommdocLineItem": {
        "type": "object",
        "properties": {
          "id": {
            "type": [
              "string",
              "null"
            ],
            "format": "uuid"
          },
          "sku": {
            "type": [
              "string",
              "null"
            ]
          },
          "description": {
            "type": [
              "string",
              "null"
            ]
          },
          "parLevel": {
            "type": "number",
            "format": "double"
          },
          "reorderPoint": {
            "type": "number",
            "format": "double"
          },
          "retail": {
            "type": "number",
            "format": "double"
          },
          "onHand": {
            "type": "number",
            "format": "double"
          },
          "levels": {
            "type": [
              "array",
              "null"
            ],
            "items": {
              "$ref": "#/components/schemas/Api.Models.Dto.Level"
            }
          },
          "dimensions": {
            "type": [
              "array",
              "null"
            ],
            "items": {
              "$ref": "#/components/schemas/Api.Models.Dto.Dimension"
            }
          },
          "vendorSKU": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "additionalProperties": false
      },
      "Api.Models.Dto.TransferLine": {
        "type": "object",
        "properties": {
          "commdocLineID": {
            "description": "Yellow Dog's unique ID of the CommdocLine; formatted as GUID (example: 433ef432-f63e-4c26-a29f-39d4079d9fc9)",
            "type": "string",
            "format": "uuid"
          },
          "storeID": {
            "description": "Yellow Dog's unique ID of the Store; formatted as GUID (example: 433ef432-f63e-4c26-a29f-39d4079d9fc9)",
            "type": "string",
            "format": "uuid"
          },
          "commdocID": {
            "description": "Yellow Dog's unique ID of the Transfer; formatted as GUID (example: 433ef432-f63e-4c26-a29f-39d4079d9fc9) \r\nIn DB, Commodc is the group of Transfer, Recipe, and PurchaseOrder.",
            "type": "string",
            "format": "uuid"
          },
          "thirdPartyLineID": {
            "description": "Reference field used by third party integrators or storing a unique CommdocLineID.",
            "type": [
              "string",
              "null"
            ]
          },
          "lineNumber": {
            "description": "Line number of the CommdocLine.",
            "type": "integer",
            "format": "int32"
          },
          "vendorPrice": {
            "description": "Vendor Price of the Commdoc Line Item.",
            "type": [
              "number",
              "null"
            ],
            "format": "double"
          },
          "quantityIssued": {
            "description": "Quantity Issued\r\nQuantity shortage can be calculated by subtracting QuantityAccepted from QuantityIssued.",
            "type": [
              "number",
              "null"
            ],
            "format": "double"
          },
          "quantityAccepted": {
            "description": "Quantity Accepted\r\nQuantity shortage can be calculated by subtracting QuantityAccepted from QuantityIssued.",
            "type": [
              "number",
              "null"
            ],
            "format": "double"
          },
          "notes": {
            "description": "Notes are used to store other information about the Transfer.",
            "type": [
              "string",
              "null"
            ]
          },
          "backLinkID": {
            "description": "Unique ID of the back-linked Purchasing document.",
            "type": [
              "string",
              "null"
            ],
            "format": "uuid"
          },
          "backLinkType": {
            "description": "Type of Purchasing document that the BackLinkId References",
            "type": [
              "string",
              "null"
            ]
          },
          "backLinkDocNumber": {
            "description": "Document Number of the back linked Purchase Order for the CommdocLine.",
            "type": [
              "string",
              "null"
            ]
          },
          "backLinkLineID": {
            "description": "Unique ID of the back linked CommdocLine for the CommdocLine.",
            "type": [
              "string",
              "null"
            ],
            "format": "uuid"
          },
          "backLinkLineNumber": {
            "description": "Line number of the back linked Purchase Order for the CommdocLine.",
            "type": [
              "string",
              "null"
            ]
          },
          "itemID": {
            "description": "Yellow Dog's unique ID of the Item; formatted as GUID (example: 433ef432-f63e-4c26-a29f-39d4079d9fc9)",
            "type": "string",
            "format": "uuid"
          },
          "item": {
            "$ref": "#/components/schemas/Api.Models.Dto.CommdocLineItem"
          }
        },
        "additionalProperties": false
      },
      "Api.Models.Dto.Transfer": {
        "type": "object",
        "properties": {
          "id": {
            "description": "Yellow Dog's unique ID of the Commdoc; formatted as GUID (example: 433ef432-f63e-4c26-a29f-39d4079d9fc9)",
            "type": "string",
            "format": "uuid"
          },
          "thirdPartyID": {
            "description": "",
            "type": [
              "string",
              "null"
            ]
          },
          "docNumber": {
            "description": "The document number of the Transfer.",
            "type": [
              "string",
              "null"
            ]
          },
          "reference": {
            "description": "Reference is used to store a secondary code for the Transfer such the supplier's document number.",
            "type": [
              "string",
              "null"
            ]
          },
          "description": {
            "description": "This is an arbitrary description of the Transfer.",
            "type": [
              "string",
              "null"
            ]
          },
          "instructions": {
            "description": "Instructions can be printed on the document printout.",
            "type": [
              "string",
              "null"
            ]
          },
          "commit": {
            "description": "Indicates whether the Transfer is committed or not.",
            "type": "boolean"
          },
          "committed": {
            "description": "DateTime when the Transfer was issued in Yellow Dog, in ISO 8601 format.",
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "committed2": {
            "description": "DateTime when the Transfer was accepted in Yellow Dog, in ISO 8601 format.",
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "notes": {
            "description": "Note is used to store other information about the Transfer.",
            "type": [
              "string",
              "null"
            ]
          },
          "needBy": {
            "description": "DateTime when the Transfer is needed by, in ISO 8601 format",
            "type": "string",
            "format": "date-time"
          },
          "due": {
            "description": "DateTime when the Transfer is needed by, in ISO 8601 format",
            "type": [
              "string",
              "null"
            ],
            "format": "date-time",
            "readOnly": true,
            "deprecated": true
          },
          "expectedArrival": {
            "description": "DateTime when the arrival of the transfer is expected, in ISO 8601 format",
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "created": {
            "description": "DateTime when the Transfer was created in Yellow Dog, in ISO 8601 format",
            "type": "string",
            "format": "date-time"
          },
          "lastUpdated": {
            "description": "DateTime when the Transfer was last updated in Yellow Dog, in ISO 8601 format",
            "type": "string",
            "format": "date-time"
          },
          "vendor": {
            "description": "Unique ID of the Yellow Dog Store; formatted as GUID (example: 433ef432-f63e-4c26-a29f-39d4079d9fc9)",
            "type": [
              "string",
              "null"
            ],
            "deprecated": true
          },
          "store": {
            "description": "Unique ID of the Yellow Dog Store; formatted as GUID (example: 433ef432-f63e-4c26-a29f-39d4079d9fc9)\r\nThe store that issued the Transfer.",
            "type": [
              "string",
              "null"
            ]
          },
          "store2": {
            "description": "Unique ID of the Yellow Dog Store; formatted as GUID (example: 433ef432-f63e-4c26-a29f-39d4079d9fc9)\r\nThe store that accepted the Transfer.",
            "type": [
              "string",
              "null"
            ]
          },
          "createdByUser": {
            "description": "Unique ID of the user who created the Transfer",
            "type": [
              "string",
              "null"
            ]
          },
          "committedByUser": {
            "description": "Unique ID of the user who issued the Transfer",
            "type": [
              "string",
              "null"
            ]
          },
          "committed2ByUser": {
            "description": "Unique ID of the user who accepted the Transfer",
            "type": [
              "string",
              "null"
            ]
          },
          "totalAmountIssued": {
            "type": "number",
            "description": "Total Amount Issued\r\nTotalAmountShortage can be calculated by subtracting TotalAmountAccepted from TotalAmountIssued.",
            "format": "double"
          },
          "totalAmountAccepted": {
            "type": "number",
            "description": "Total Amount Accepted\r\nTotalAmountShortage can be calculated by subtracting TotalAmountAccepted from TotalAmountIssued.",
            "format": "double"
          },
          "status": {
            "description": "Status of the Transfer.",
            "type": [
              "string",
              "null"
            ]
          },
          "lines": {
            "description": "List of Commdoc Lines which belongs to the Transfer.",
            "type": [
              "array",
              "null"
            ],
            "items": {
              "$ref": "#/components/schemas/Api.Models.Dto.TransferLine"
            }
          }
        },
        "additionalProperties": false
      },
      "Api.Models.Dto.CommDocLineCreate": {
        "type": "object",
        "required": [
          "itemID",
          "quantity"
        ],
        "properties": {
          "itemID": {
            "type": "string",
            "format": "uuid"
          },
          "quantity": {
            "type": "number",
            "format": "double"
          }
        },
        "additionalProperties": false
      },
      "Api.Models.Dto.TransferCreate": {
        "type": "object",
        "required": [
          "due",
          "fromStore",
          "lines",
          "toStore"
        ],
        "properties": {
          "lines": {
            "minItems": 1,
            "type": [
              "array",
              "null"
            ],
            "items": {
              "$ref": "#/components/schemas/Api.Models.Dto.CommDocLineCreate"
            }
          },
          "commit": {
            "type": "boolean"
          },
          "thirdPartyID": {
            "type": [
              "string",
              "null"
            ]
          },
          "reference": {
            "type": [
              "string",
              "null"
            ]
          },
          "description": {
            "type": [
              "string",
              "null"
            ]
          },
          "instructions": {
            "type": [
              "string",
              "null"
            ]
          },
          "totalAmount": {
            "type": "number",
            "format": "double"
          },
          "notes": {
            "type": [
              "string",
              "null"
            ]
          },
          "fromStore": {
            "type": "string",
            "format": "uuid"
          },
          "toStore": {
            "type": "string",
            "format": "uuid"
          },
          "due": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "Api.Models.Dto.TransferUpdate": {
        "type": "object",
        "properties": {
          "commit": {
            "type": "boolean"
          },
          "reference": {
            "type": [
              "string",
              "null"
            ]
          },
          "description": {
            "type": [
              "string",
              "null"
            ]
          },
          "instructions": {
            "type": [
              "string",
              "null"
            ]
          },
          "notes": {
            "type": [
              "string",
              "null"
            ]
          },
          "due": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "Api.Models.Dto.VendorContact": {
        "type": "object",
        "properties": {
          "contact": {
            "maxLength": 256,
            "minLength": 0,
            "type": [
              "string",
              "null"
            ]
          },
          "phone": {
            "maxLength": 256,
            "minLength": 0,
            "type": [
              "string",
              "null"
            ]
          },
          "fax": {
            "maxLength": 256,
            "minLength": 0,
            "type": [
              "string",
              "null"
            ]
          },
          "mobile": {
            "maxLength": 256,
            "minLength": 0,
            "type": [
              "string",
              "null"
            ]
          },
          "email": {
            "maxLength": 256,
            "minLength": 0,
            "type": [
              "string",
              "null"
            ]
          },
          "street": {
            "maxLength": 256,
            "minLength": 0,
            "type": [
              "string",
              "null"
            ]
          },
          "city": {
            "maxLength": 256,
            "minLength": 0,
            "type": [
              "string",
              "null"
            ]
          },
          "state": {
            "maxLength": 256,
            "minLength": 0,
            "type": [
              "string",
              "null"
            ]
          },
          "zip": {
            "maxLength": 256,
            "minLength": 0,
            "type": [
              "string",
              "null"
            ]
          },
          "country": {
            "maxLength": 256,
            "minLength": 0,
            "type": [
              "string",
              "null"
            ]
          },
          "other": {
            "maxLength": 256,
            "minLength": 0,
            "type": [
              "string",
              "null"
            ]
          }
        },
        "additionalProperties": false
      },
      "Api.Models.Dto.Vendor2Store": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "available": {
            "type": "boolean"
          },
          "accountingId": {
            "maxLength": 256,
            "minLength": 0,
            "type": [
              "string",
              "null"
            ]
          },
          "taxNumber": {
            "maxLength": 256,
            "minLength": 0,
            "type": [
              "string",
              "null"
            ]
          },
          "terms": {
            "maxLength": 256,
            "minLength": 0,
            "type": [
              "string",
              "null"
            ]
          },
          "reference": {
            "maxLength": 256,
            "minLength": 0,
            "type": [
              "string",
              "null"
            ]
          }
        },
        "additionalProperties": false
      },
      "Api.Models.Dto.VendorGet": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Yellow Dog's primary key for the Vendor; always unique; formatted as GUID (example: 433ef432-f63e-4c26-a29f-39d4079d9fc9)",
            "format": "uuid"
          },
          "code": {
            "type": [
              "string",
              "null"
            ],
            "description": "Main number associated with the vendor in the Yellow Dog UI; unique per database"
          },
          "description": {
            "type": [
              "string",
              "null"
            ],
            "description": "Main vendor description in Yellow Dog"
          },
          "url": {
            "type": [
              "string",
              "null"
            ],
            "description": "Vendors URL"
          },
          "collectsTax": {
            "type": "boolean",
            "description": "Does the Vendor collect tax or not"
          },
          "notes": {
            "type": [
              "string",
              "null"
            ],
            "description": "Additional about the vendor"
          },
          "approved": {
            "type": "boolean",
            "description": "Is the vendor approved to be used by certain users/stores"
          },
          "currencyCode": {
            "type": [
              "string",
              "null"
            ]
          },
          "created": {
            "type": "string",
            "description": "DateTime when this item was created in Yellow Dog, in ISO 8601 format",
            "format": "date-time"
          },
          "lastUpdated": {
            "type": "string",
            "format": "date-time"
          },
          "orderFrom": {
            "$ref": "#/components/schemas/Api.Models.Dto.VendorContact"
          },
          "returnTo": {
            "$ref": "#/components/schemas/Api.Models.Dto.VendorContact"
          },
          "stores": {
            "type": [
              "array",
              "null"
            ],
            "items": {
              "$ref": "#/components/schemas/Api.Models.Dto.Vendor2Store"
            }
          }
        },
        "additionalProperties": false
      },
      "Api.Models.Dto.VendorUpdate": {
        "required": [
          "id",
          "code",
          "description"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Yellow Dog's primary key for the Vendor; always unique; formatted as GUID (example: 433ef432-f63e-4c26-a29f-39d4079d9fc9)",
            "format": "uuid"
          },
          "code": {
            "maxLength": 256,
            "minLength": 0,
            "type": "string",
            "description": "Main number associated with the vendor in the Yellow Dog UI; unique per database"
          },
          "description": {
            "maxLength": 256,
            "minLength": 0,
            "type": "string",
            "description": "Main vendor description in Yellow Dog"
          },
          "url": {
            "maxLength": 256,
            "minLength": 0,
            "type": [
              "string",
              "null"
            ],
            "description": "Vendors URL"
          },
          "collectsTax": {
            "type": "boolean",
            "description": "Does the Vendor collect tax or not"
          },
          "notes": {
            "type": [
              "string",
              "null"
            ],
            "description": "Additional about the vendor"
          },
          "approved": {
            "type": "boolean",
            "description": "Is the vendor approved to be used by certain users/stores"
          },
          "currencyCode": {
            "maxLength": 256,
            "minLength": 0,
            "type": [
              "string",
              "null"
            ]
          },
          "orderFrom": {
            "$ref": "#/components/schemas/Api.Models.Dto.VendorContact"
          },
          "returnTo": {
            "$ref": "#/components/schemas/Api.Models.Dto.VendorContact"
          },
          "stores": {
            "type": [
              "array",
              "null"
            ],
            "items": {
              "$ref": "#/components/schemas/Api.Models.Dto.Vendor2Store"
            }
          }
        },
        "additionalProperties": false
      },
      "Api.Models.Dto.VendorCreate": {
        "required": [
          "code",
          "description"
        ],
        "type": "object",
        "properties": {
          "code": {
            "maxLength": 256,
            "minLength": 0,
            "type": "string",
            "description": "Main number associated with the vendor in the Yellow Dog UI; unique per database"
          },
          "description": {
            "maxLength": 256,
            "minLength": 0,
            "type": "string",
            "description": "Main vendor description in Yellow Dog"
          },
          "url": {
            "maxLength": 256,
            "minLength": 0,
            "type": [
              "string",
              "null"
            ],
            "description": "Vendors URL"
          },
          "collectsTax": {
            "type": "boolean",
            "description": "Does the Vendor collect tax or not"
          },
          "notes": {
            "type": [
              "string",
              "null"
            ],
            "description": "Additional about the vendor"
          },
          "approved": {
            "type": "boolean",
            "description": "Is the vendor approved to be used by certain users/stores"
          },
          "currencyCode": {
            "maxLength": 256,
            "minLength": 0,
            "type": [
              "string",
              "null"
            ]
          },
          "orderFrom": {
            "$ref": "#/components/schemas/Api.Models.Dto.VendorContact"
          },
          "returnTo": {
            "$ref": "#/components/schemas/Api.Models.Dto.VendorContact"
          },
          "stores": {
            "type": [
              "array",
              "null"
            ],
            "items": {
              "$ref": "#/components/schemas/Api.Models.Dto.Vendor2Store"
            }
          }
        },
        "additionalProperties": false
      }
    },
    "securitySchemes": {
      "Auth API User Token": {
        "type": "http",
        "description": "JWT Authorization header using the Bearer scheme, use the Auth API for retrieving this token.\nPermission access for Fetch API endpoints is managed by each client organization. Yellow Dog cannot make user permission changes for YD users under our security policy. API  users must work with their organization's administrator to ensure they have the correct permissions to access the endpoints they need.",
        "scheme": "bearer",
        "bearerFormat": "JWT"
      }
    }
  },
  "security": [
    {
      "Auth API User Token": []
    }
  ],
  "tags": [
    {
      "name": "Accounting",
      "description": "Accounting Export Reports that can be consumed by 3rd Party accounting systems"
    },
    {
      "name": "AttachedFiles",
      "description": "Items and Recipes are able to have images associated to them."
    },
    {
      "name": "CountSheets",
      "description": "A dynamic list of Items that are designed to aide with physical inventories. Countsheets are based on a static list of items, Levels, and Flags"
    },
    {
      "name": "Currency",
      "description": "Operations used to manage currency conversion for the database. These are used when multiple currencies are used in a database."
    },
    {
      "name": "Dimensions",
      "description": "Attributes that are available for assigning to an Item. Attributes can be like a Size or Color."
    },
    {
      "name": "Flags",
      "description": "Flags allow you to indicate storage locations, making ordering and physical inventories easier."
    },
    {
      "name": "Inventory",
      "description": "Item Inventory OnHand information."
    },
    {
      "name": "Invoices",
      "description": "A Purchasing document"
    },
    {
      "name": "ItemAliases",
      "description": "UPCs or additional SKUs to for an Item."
    },
    {
      "name": "Items",
      "description": "Product information that is tracked in Yellow Dog Inventory."
    },
    {
      "name": "ManualAdjusts",
      "description": "A Manual Adjustment will affect an Item's OnHand."
    },
    {
      "name": "MetaInfo",
      "description": "Database specific configuration information"
    },
    {
      "name": "ProductionGroups",
      "description": "Collections of production groups."
    },
    {
      "name": "PurchaseOrders",
      "description": "A Purchasing document"
    },
    {
      "name": "Receipts",
      "description": "A Receiving document"
    },
    {
      "name": "Recipes",
      "description": "Collections of items and recipes, with quantities, that are used to create other items."
    },
    {
      "name": "RecipeTypes",
      "description": "Collections of RecipeTypes."
    },
    {
      "name": "Requests",
      "description": "A requisition for purchasing or transfering an item."
    },
    {
      "name": "Sessions",
      "description": "Associate a count to an Item, these sessions can be used for Purchasing Documents or Physical Inventories."
    },
    {
      "name": "Stores",
      "description": "Business Entities or locations of a single business entity that need to maintain their own inventory records."
    },
    {
      "name": "ThirdPartyCodes",
      "description": "Additional configuration options that control item, store or level behavior with third-party integrations"
    },
    {
      "name": "ThirdParty",
      "description": "Third Party Mappings with Yellow Dog Inventory"
    },
    {
      "name": "ThirdPartySessions",
      "description": "Records that increment or decrement inventory based on customer interactions with a store"
    },
    {
      "name": "Transactions",
      "description": "Records that increment or decrement inventory based on customer interactions with a store"
    },
    {
      "name": "Transfers",
      "description": "A record of movement of Items from one Store to another."
    },
    {
      "name": "Vendors",
      "description": "Vendors, Suppliers, Distributors, or Manufacturors that provide Items into the Inventory."
    }
  ]
}