{
  "openapi": "3.0.4",
  "info": {
    "title": "inFlow Cloud API",
    "description": "# Overview\r\n\r\n## Introduction\r\nThe inFlow API allows you to read and write data to your inFlow. Like most modern APIs, it’s organized around REST and JSON, but there are some concepts to learn.\r\n\r\n## Getting access to the API\r\nYou will need:\r\n\r\n-   an active inFlow account with the API access add-on, or an inFlow trial\r\n-   administrator rights to that account\r\n\r\nThen, you can go to [https://app.inflowinventory.com/options/integrations](https://app.inflowinventory.com/options/integrations) and generate an API key. This API key grants access to your inFlow account (until revoked), so please keep it safe! You will also need your `companyId`, an identifier for your inFlow account, which is also available on that same page in the API keys section once an API key has been generated.\r\n\r\n## Support\r\nIf you need help, you can email us at [support@inflowinventory.com](mailto:support@inflowinventory.com).\r\n\r\nAlthough we will try to maintain API stability and reliability, we cannot make any guarantees.\r\n\r\n## Endpoint\r\nThe base URL for the inFlow API is https://cloudapi.inflowinventory.com/. HTTPS is required for security. Most API calls will also need your `companyId` in the route. The API does not support CORS for browser apps.\r\n\r\n## HTTP headers fields\r\nYou should set (at least) the following 3 HTTP header fields in your inFlow API calls (other headers may be set optionally, see below for more details)\r\n\r\n`Authorization: Bearer {YOUR_API_KEY_HERE}`\r\n\r\n`Content-Type: application/json`\r\n\r\n`Accept: application/json;version=2026-04-13`\r\n\r\nThe current API version is `2026-04-13`, which should be included in the Accept HTTP header. From time to time, we may need to make breaking changes on our API. Prior to this, if you have generated an API key, we will email all administrators of your inFlow account with information about this change.\r\n\r\n## Optional headers fields\r\nThere are some headers/tags you can send with your requests that can change default behavior of the API.\r\n\r\n`X-OverrideAllowNegativeInventory: TRUE` \r\n\r\nSetting this to true, will allow picking an amount of products that would make inventory levels in that location go into a negative quantity. By default this is `FALSE` and you will receive an error `422 - Negative Inventory` if not overridden.\r\n\r\n## Read requests\r\ninFlow API read requests use the HTTP GET verb and return one or more entities in JSON format.\r\n\r\n### Including related entities\r\nBy default, API calls to fetch an entity (e.g. a product) do not automatically fetch related entities (e.g. product prices or images). You can specify which entities to include by including a query parameter `Include`, separating the requested relationship entities with a comma. You can also specify nested relationships with a period.  \r\n\r\ne.g. `?include=inventoryLines.location,defaultImage`\r\n\r\n### Filtering\r\nMost API calls that return multiple entities offer several filtering options. Adding these to the query parameters will filter the returned results.\r\n\r\ne.g. `?filter[isActive]=true&filter[name]=shirt`\r\n\r\n## Write requests\r\ninFlow API write requests typically use the PUT HTTP verb and can be used for either inserting or updating entities from the body of the HTTP request.  \r\n\r\n### Inserting, updating, and identifiers\r\ninFlow entities use a globally unique identifier (GUID), also called a universally unique identifier (UUID). You should generate a new GUID when calling the API to insert a new entity (most programming languages will have a built-in or add-on package to do so), or reference an existing GUID to update an entity.\r\n\r\n### Optional properties\r\nMost entity properties are optional, and any missing properties will be set to default values when inserting, or left as-is when updating.\r\n\r\n### Timestamps\r\nMany inFlow entities include a `timestamp` property. This is a machine-readable stamp of when the entity was last modified which can be used for concurrency. If you include the timestamp property in your API write request, your request will fail if the timestamp is no longer the latest version, protecting you against making unintended modifications. To disable this feature, exclude the timestamp property in your API write request.\r\n\r\n## MCP Server (AI Agent Integration)\r\n\r\ninFlow provides a [Model Context Protocol](https://modelcontextprotocol.io/) (MCP) server that exposes all public API operations as tools for AI agents. This lets AI assistants like Claude, ChatGPT, and Cursor interact with your inFlow data using natural language.\r\n\r\n### Endpoint\r\n\r\n`https://cloudapi.inflowinventory.com/mcp`\r\n\r\n### Authentication\r\n\r\nThe MCP server uses the same API key authentication as the REST API. Pass your API key as a Bearer token in the `Authorization` header.\r\n\r\n### Client Configuration\r\n\r\n**Claude Desktop** (add to your MCP server config):\r\n```json\r\n{\r\n  \"mcpServers\": {\r\n    \"inflow\": {\r\n      \"command\": \"npx\",\r\n      \"args\": [\r\n        \"mcp-remote\",\r\n        \"https://cloudapi.inflowinventory.com/mcp\",\r\n        \"--header\",\r\n        \"Authorization:${INFLOW_TOKEN}\"\r\n      ],\r\n      \"env\": {\r\n        \"INFLOW_TOKEN\": \"Bearer YOUR_API_KEY\"\r\n      }\r\n    }\r\n  }\r\n}\r\n```\r\n\r\nClaude Desktop connects to remote MCP servers through the [`mcp-remote`](https://www.npmjs.com/package/mcp-remote) proxy, which is downloaded automatically by `npx`. The `INFLOW_TOKEN` env var keeps the `Bearer` prefix out of the `--header` argument, which `mcp-remote` splits on `:`.\r\n\r\n**Claude Code** (CLI):\r\n```\r\nclaude mcp add --transport http inflow https://cloudapi.inflowinventory.com/mcp --header \"Authorization: Bearer YOUR_API_KEY\"\r\n```\r\n\r\n**Cursor** (Settings > Tools & Integrations > Add Custom MCP):\r\n```json\r\n{\r\n  \"mcpServers\": {\r\n    \"inflow\": {\r\n      \"url\": \"https://cloudapi.inflowinventory.com/mcp\",\r\n      \"headers\": {\r\n        \"Authorization\": \"Bearer YOUR_API_KEY\"\r\n      }\r\n    }\r\n  }\r\n}\r\n```\r\n\r\n## Rate limiting\r\nIf you send too many API requests in a short time, the inFlow API will return HTTP status code `429 Too Many Requests`.\r\n\r\nIf you encounter this limit, we encourage you to try to reduce the number of API calls required, or contact us for help if you are unable to do so. Best practices are also to implement retry logic with exponential backoff in your application.\r\n\r\nCurrently, the limit is set to 60 requests per minute. If you have already implemented optimizations and are still encountering this limit, you can email us at [support@inflowinventory.com](mailto:support@inflowinventory.com) to ask about an increased limit.\r\n",
    "x-logo": {
      "url": "/redoc/inflow-logo.png",
      "altText": "inFlow Cloud"
    }
  },
  "servers": [
    {
      "url": "https://cloudapi.inflowinventory.com"
    }
  ],
  "paths": {
    "/{companyId}/report-settings": {
      "get": {
        "tags": [
          "Report"
        ],
        "summary": "List saved reports",
        "parameters": [
          {
            "name": "companyId",
            "in": "path",
            "description": "Your inFlow account companyId",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "request",
            "in": "query",
            "schema": {
              "$ref": "#/components/schemas/GetCollectionRequest"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/NewSavedReportSettings"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/{companyId}/report/generate-saved-report/{newSavedReportSettingsId}": {
      "post": {
        "tags": [
          "Report"
        ],
        "summary": "Generate a report",
        "parameters": [
          {
            "name": "companyId",
            "in": "path",
            "description": "Your inFlow account companyId",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "newSavedReportSettingsId",
            "in": "path",
            "description": "The saved report ID to generate a report for",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "generateReportType",
            "in": "query",
            "description": "The type of report to generate",
            "schema": {
              "enum": [
                "Json",
                "Pdf",
                "Csv"
              ],
              "type": "string",
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BatchJob"
                }
              }
            }
          }
        }
      }
    },
    "/{companyId}/batch-job/{batchJobId}": {
      "get": {
        "tags": [
          "Report"
        ],
        "summary": "Get a generated report",
        "description": "```batchJobId``` is required, this is generated when the Generate a report endpoint is called.",
        "parameters": [
          {
            "name": "companyId",
            "in": "path",
            "description": "Your inFlow account companyId",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "batchJobId",
            "in": "path",
            "description": "The batch job ID to be fetched",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "hoursToExpiry",
            "in": "query",
            "description": "The length of time (hours) that the link should last before expiring",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BatchJob"
                }
              }
            }
          }
        }
      }
    },
    "/{companyId}/adjustment-reasons": {
      "get": {
        "tags": [
          "AdjustmentReason"
        ],
        "summary": "List adjustment reasons",
        "description": "Relationships can be included via the ```include``` query parameter.\n\n",
        "parameters": [
          {
            "name": "companyId",
            "in": "path",
            "description": "Your inFlow account companyId",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "request",
            "in": "query",
            "description": "Additional query parameter options",
            "schema": {
              "$ref": "#/components/schemas/GetCollectionRequest"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/AdjustmentReasonObjectSubset"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/{companyId}/adjustment-reasons/{adjustmentReasonId}": {
      "get": {
        "tags": [
          "AdjustmentReason"
        ],
        "summary": "Get adjustment reasons",
        "description": "Relationships can be included via the ```include``` query parameter.\n\n",
        "parameters": [
          {
            "name": "companyId",
            "in": "path",
            "description": "Your inFlow account companyId",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "adjustmentReasonId",
            "in": "path",
            "description": "The AdjustmentReasonId to be fetched",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdjustmentReasonObjectSubset"
                }
              }
            }
          }
        }
      }
    },
    "/{companyId}/categories": {
      "get": {
        "tags": [
          "Categories"
        ],
        "summary": "List categories",
        "description": "Relationships can be included via the ```include``` query parameter.",
        "parameters": [
          {
            "name": "companyId",
            "in": "path",
            "description": "Your inFlow account companyId",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "request",
            "in": "query",
            "description": "Additional query parameter options",
            "schema": {
              "$ref": "#/components/schemas/GetCollectionRequest"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Category"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/{companyId}/categories/{categoryId}": {
      "get": {
        "tags": [
          "Categories"
        ],
        "summary": "Get a category",
        "description": "Relationships can be included via the ```include``` query parameter.\n\n",
        "parameters": [
          {
            "name": "companyId",
            "in": "path",
            "description": "Your inFlow account companyId",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "categoryId",
            "in": "path",
            "description": "The categoryId to be fetched",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Category"
                }
              }
            }
          }
        }
      }
    },
    "/{companyId}/currencies": {
      "get": {
        "tags": [
          "Currency"
        ],
        "summary": "List currencies",
        "parameters": [
          {
            "name": "companyId",
            "in": "path",
            "description": "Your inFlow account companyId",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "request",
            "in": "query",
            "description": "Additional query parameter options",
            "schema": {
              "$ref": "#/components/schemas/GetCollectionRequest"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Currency"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/{companyId}/currencies/{currencyId}": {
      "get": {
        "tags": [
          "Currency"
        ],
        "summary": "Get a currency",
        "parameters": [
          {
            "name": "companyId",
            "in": "path",
            "description": "Your inFlow account companyId",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "request",
            "in": "query",
            "description": "Additional query parameter options",
            "schema": {
              "$ref": "#/components/schemas/GetDetailsRequest"
            }
          },
          {
            "name": "currencyId",
            "in": "path",
            "description": "The currencyId to be fetched",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Currency"
                }
              }
            }
          }
        }
      }
    },
    "/{companyId}/customers": {
      "get": {
        "tags": [
          "Customer"
        ],
        "summary": "List customers",
        "description": "Relationships can be included via the ```include``` query parameter.\n\n\nOptions for filtering this list:\n\n```filter[name]```\n\n```filter[contactName]```\n\n```filter[phone]```\n\n```filter[email]```\n\n```filter[website]```\n\n```filter[address]```\n\n```filter[city]```\n\n```filter[state]```\n\n```filter[postalCode]```\n\n```filter[country]```\n\n```filter[pricingSchemeId]```\n\n```filter[defaultLocationId]```\n\n```filter[isActive]```\n\n```filter[smart]``` (search across name and contact name)\n\n```filter[lastOrder]``` (number of days since the customer has last ordered)\n\n",
        "parameters": [
          {
            "name": "request",
            "in": "query",
            "description": "Additional query parameter options",
            "schema": {
              "$ref": "#/components/schemas/GetCollectionRequest"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "Your inFlow account companyId",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Customer"
                  }
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "Customer"
        ],
        "summary": "Insert or update a customer",
        "description": "```customerId``` property is required, please generate a GUID when inserting.",
        "parameters": [
          {
            "name": "companyId",
            "in": "path",
            "description": "Your inFlow account companyId",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "description": "A customer to insert or update",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Customer"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Customer"
                }
              }
            }
          }
        }
      }
    },
    "/{companyId}/customers/{customerId}": {
      "get": {
        "tags": [
          "Customer"
        ],
        "summary": "Get a customer",
        "description": "Relationships can be included via the ```include``` query parameter.\n\n",
        "parameters": [
          {
            "name": "customerId",
            "in": "path",
            "description": "The customerId to be fetched",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Customer"
                }
              }
            }
          }
        }
      }
    },
    "/{companyId}/custom-field-definitions": {
      "get": {
        "tags": [
          "CustomFieldDefinitions"
        ],
        "summary": "Get custom field definitions",
        "parameters": [
          {
            "name": "request",
            "in": "query",
            "description": "Additional query parameter options",
            "schema": {
              "$ref": "#/components/schemas/GetCollectionRequest"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "Your inFlow Cloud account companyId",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/CustomFieldDefinition"
                  }
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "CustomFieldDefinitions"
        ],
        "summary": "Insert or update custom field definition",
        "parameters": [
          {
            "name": "companyId",
            "in": "path",
            "description": "Your inFlow Cloud account companyId",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "description": "A custom field definition to insert or update",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CustomFieldDefinition"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomFieldDefinition"
                }
              }
            }
          }
        }
      }
    },
    "/{companyId}/custom-field-dropdown-options": {
      "put": {
        "tags": [
          "CustomFieldDefinitions"
        ],
        "summary": "Set custom field dropdown options",
        "parameters": [
          {
            "name": "companyId",
            "in": "path",
            "description": "Your inFlow Cloud account companyId",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CustomFieldDropdownOptionsDetailsObjectSubset"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomFieldDropdownOptionsDetails"
                }
              }
            }
          }
        }
      }
    },
    "/{companyId}/custom-field-dropdown-options/{entityType}": {
      "get": {
        "tags": [
          "CustomFieldDefinitions"
        ],
        "summary": "Get all dropdown custom field options for an entity",
        "parameters": [
          {
            "name": "companyId",
            "in": "path",
            "description": "Your inFlow Cloud account companyId",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "entityType",
            "in": "path",
            "description": "The entity type of the custom field, e.g. ```product```",
            "required": true,
            "schema": {
              "enum": [
                "SalesOrder",
                "PurchaseOrder",
                "Product",
                "Vendor",
                "Customer",
                "CountSheet",
                "StockTransfer",
                "StockAdjustment",
                "StockCount",
                "ManufacturingOrder"
              ],
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/CustomFieldDropdownOptionsDetailsObjectSubset"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/{companyId}/custom-fields": {
      "get": {
        "tags": [
          "CustomFields"
        ],
        "summary": "Get custom field labels",
        "description": "```customFieldsId``` refers to the companyID, not customfieldsID.\n\n",
        "parameters": [
          {
            "name": "companyId",
            "in": "path",
            "description": "Your inFlow account companyId",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomFields"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "CustomFields"
        ],
        "summary": "Insert or Update custom field labels",
        "description": "```customFieldsId``` refers to the companyID, not customfieldsID.\n\n",
        "parameters": [
          {
            "name": "companyId",
            "in": "path",
            "description": "Your inFlow account companyId",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CustomFields"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomFields"
                }
              }
            }
          }
        }
      }
    },
    "/{companyId}/locations": {
      "get": {
        "tags": [
          "Location"
        ],
        "summary": "List locations",
        "description": "Relationships can be included via the ```include``` query parameter.\n\n",
        "parameters": [
          {
            "name": "companyId",
            "in": "path",
            "description": "Your inFlow account companyId",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "request",
            "in": "query",
            "description": "Additional query parameter options",
            "schema": {
              "$ref": "#/components/schemas/GetCollectionRequest"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Location"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/{companyId}/locations/{locationId}": {
      "get": {
        "tags": [
          "Location"
        ],
        "summary": "Get a location",
        "description": "Relationships can be included via the ```include``` query parameter.\n\n",
        "parameters": [
          {
            "name": "companyId",
            "in": "path",
            "description": "Your inFlow account companyId",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "locationId",
            "in": "path",
            "description": "The locationId to be fetched",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Location"
                }
              }
            }
          }
        }
      }
    },
    "/{companyId}/locations/{locationId}/products/{productId}/suggested-sublocations": {
      "get": {
        "tags": [
          "Location"
        ],
        "summary": "Get suggested sublocations for a given product and location",
        "parameters": [
          {
            "name": "request",
            "in": "query",
            "description": "Additional query parameter options",
            "schema": {
              "$ref": "#/components/schemas/GetCollectionRequest"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "Your inFlow account companyId",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "locationId",
            "in": "path",
            "description": "The location to fetch suggested sublocations for",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "productId",
            "in": "path",
            "description": "The product to fetch suggested sublocations and stock levels for",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/SuggestedSublocationsWithInventoryObjectSubset"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/{companyId}/locations/{locationId}/suggested-sublocations": {
      "get": {
        "tags": [
          "Location"
        ],
        "summary": "Get suggested sublocations",
        "description": "Get a list of known sublocations within this location. Sublocations are typically represented just as a string, and do not need to be registered/created in advance.",
        "parameters": [
          {
            "name": "request",
            "in": "query",
            "description": "Additional query parameter options",
            "schema": {
              "$ref": "#/components/schemas/GetCollectionRequest"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "Your inFlow account companyId",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "locationId",
            "in": "path",
            "description": "The location to fetch suggested sublocations for",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SuggestedSublocationsObjectSubset"
                }
              }
            }
          }
        }
      }
    },
    "/{companyId}/manufacturing-orders": {
      "put": {
        "tags": [
          "ManufacturingOrder"
        ],
        "summary": "Insert or update a manufacture order",
        "description": "```manufacturingOrderId``` property is required, please generate a GUID when inserting.",
        "parameters": [
          {
            "name": "companyId",
            "in": "path",
            "description": "Your inFlow account companyId",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "fillDefaultBom",
            "in": "query",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "description": "A manufacture order to insert or update",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ManufacturingOrder"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ManufacturingOrder"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "ManufacturingOrder"
        ],
        "summary": "List manufacture orders",
        "description": "Relationships can be included via the ```include``` query parameter.\n\n\nOptions for filtering this list:\n\n```filter[manufacturingOrderNumber]```\n\n```filter[status] array of statuses```\n\n```filter[isPrioritized]```\n\n```filter[orderDate] ``` date range object with ```fromDate``` and ```toDate```\n\n```filter[dueDate] ``` date range object with ```fromDate``` and ```toDate```\n\n```filter[locationId]```\n\n```filter[assignedTo]```\n\n```filter[isActive]```\n\n```filter[hasPlannedOperations]```\n\n",
        "parameters": [
          {
            "name": "request",
            "in": "query",
            "description": "Additional query parameter options",
            "schema": {
              "$ref": "#/components/schemas/GetCollectionRequest"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ManufacturingOrder"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/{companyId}/manufacturing-orders/{manufacturingOrderId}": {
      "get": {
        "tags": [
          "ManufacturingOrder"
        ],
        "summary": "Get a manufacture order",
        "description": "Relationships can be included via the ```include``` query parameter.\n\n",
        "parameters": [
          {
            "name": "detailsRequest",
            "in": "query",
            "schema": {
              "$ref": "#/components/schemas/GetDetailsRequest"
            }
          },
          {
            "name": "manufacturingOrderId",
            "in": "path",
            "description": "The manufacturingOrderId to be fetched",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ManufacturingOrder"
                }
              }
            }
          }
        }
      }
    },
    "/{companyId}/operation-types": {
      "get": {
        "tags": [
          "OperationType"
        ],
        "summary": "List OperationTypes",
        "parameters": [
          {
            "name": "companyId",
            "in": "path",
            "description": "Your inFlow account companyId",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "request",
            "in": "query",
            "description": "Additional query parameter options",
            "schema": {
              "$ref": "#/components/schemas/GetCollectionRequest"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/OperationTypeObjectSubset"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/{companyId}/operation-types/{operationTypeId}": {
      "get": {
        "tags": [
          "OperationType"
        ],
        "summary": "Get an OperationType",
        "description": "Relationships can be included via the ```include``` query parameter.\n\n",
        "parameters": [
          {
            "name": "companyId",
            "in": "path",
            "description": "Your inFlow account companyId",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "operationTypeId",
            "in": "path",
            "description": "The operationTypeId to be fetched",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OperationTypeObjectSubset"
                }
              }
            }
          }
        }
      }
    },
    "/{companyId}/payment-terms": {
      "get": {
        "tags": [
          "PaymentTerms"
        ],
        "summary": "List payment terms",
        "description": "Relationships can be included via the ```include``` query parameter.\n\n",
        "parameters": [
          {
            "name": "companyId",
            "in": "path",
            "description": "Your inFlow account companyId",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "request",
            "in": "query",
            "description": "Additional query parameter options",
            "schema": {
              "$ref": "#/components/schemas/GetCollectionRequest"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/PaymentTerms"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/{companyId}/payment-terms/{paymentTermsId}": {
      "get": {
        "tags": [
          "PaymentTerms"
        ],
        "summary": "Get payment terms",
        "description": "Relationships can be included via the ```include``` query parameter.\n\n",
        "parameters": [
          {
            "name": "companyId",
            "in": "path",
            "description": "Your inFlow account companyId",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "paymentTermsId",
            "in": "path",
            "description": "The paymentTermsId to be fetched",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentTerms"
                }
              }
            }
          }
        }
      }
    },
    "/{companyId}/pricing-schemes": {
      "get": {
        "tags": [
          "PricingScheme"
        ],
        "summary": "List pricing schemes",
        "description": "Relationships can be included via the ```include``` query parameter.\n\n",
        "parameters": [
          {
            "name": "companyId",
            "in": "path",
            "description": "Your inFlow account companyId",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "request",
            "in": "query",
            "description": "Additional query parameter options",
            "schema": {
              "$ref": "#/components/schemas/GetCollectionRequest"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/PricingScheme"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/{companyId}/pricing-schemes/{pricingSchemeId}": {
      "get": {
        "tags": [
          "PricingScheme"
        ],
        "summary": "Get a pricing scheme",
        "description": "Relationships can be included via the ```include``` query parameter.\n\n",
        "parameters": [
          {
            "name": "companyId",
            "in": "path",
            "description": "Your inFlow account companyId",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "pricingSchemeId",
            "in": "path",
            "description": "The pricingSchemeId to be fetched",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PricingScheme"
                }
              }
            }
          }
        }
      }
    },
    "/{companyId}/products": {
      "get": {
        "tags": [
          "Product"
        ],
        "summary": "List products",
        "description": "Relationships can be included via the ```include``` query parameter.\n\n\nOptions for filtering this list:\n\n```filter[name]```\n\n```filter[description]```\n\n```filter[isActive]```\n\n```filter[barcode]```\n\n```filter[itemType]```\n\n```filter[categoryId]```\n\n```filter[lastModifiedDateTime]``` (Ex. filter[lastModifiedDateTime]={\"fromDate\":\"2022-01-01\", \"toDate\":\"2023-01-01\"}) \n\n```filter[smart]``` (full-text search on name, description, category, barcode and SKU)\n\n",
        "parameters": [
          {
            "name": "companyId",
            "in": "path",
            "description": "Your inFlow account companyId",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "request",
            "in": "query",
            "description": "Additional query parameter options",
            "schema": {
              "$ref": "#/components/schemas/GetCollectionRequest"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Product"
                  }
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "Product"
        ],
        "summary": "Insert or update product",
        "description": "```productId``` property is required, please generate a GUID when inserting.",
        "parameters": [
          {
            "name": "companyId",
            "in": "path",
            "description": "Your inFlow account companyId",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "description": "A product to insert or update",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Product"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Product"
                }
              }
            }
          }
        }
      }
    },
    "/{companyId}/products/{productId}": {
      "get": {
        "tags": [
          "Product"
        ],
        "summary": "Get a product",
        "description": "Relationships can be included via the ```include``` query parameter.\n\n",
        "parameters": [
          {
            "name": "companyId",
            "in": "path",
            "description": "Your inFlow account companyId",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "productId",
            "in": "path",
            "description": "The productId to be fetched",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Product"
                }
              }
            }
          }
        }
      }
    },
    "/{companyId}/products/{productId}/summary": {
      "get": {
        "tags": [
          "Product"
        ],
        "summary": "Get product inventory summary",
        "parameters": [
          {
            "name": "companyId",
            "in": "path",
            "description": "Your inFlow account companyId",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "productId",
            "in": "path",
            "description": "The productId to fetch information for",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "locationId",
            "in": "query",
            "description": "(Optional) the locationId to fetch information for",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductSummaryResponseModel"
                }
              }
            }
          }
        }
      }
    },
    "/{companyId}/products/summary": {
      "post": {
        "tags": [
          "Product"
        ],
        "summary": "Get multiple product inventory summaries",
        "parameters": [
          {
            "name": "companyId",
            "in": "path",
            "description": "Your inFlow account companyId",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "description": "The product id, location id combinations to fetch information for. Up to 100 at a time",
          "content": {
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ProductSummaryKey"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ProductSummaryResponseModel"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/{companyId}/product-cost-adjustments": {
      "get": {
        "tags": [
          "ProductCostAdjustment"
        ],
        "summary": "List product cost adjustments",
        "description": "Relationships can be included via the ```include``` query parameter.",
        "parameters": [
          {
            "name": "companyId",
            "in": "path",
            "description": "Your inFlow account companyId",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "request",
            "in": "query",
            "description": "Additional query parameter options",
            "schema": {
              "$ref": "#/components/schemas/GetCollectionRequest"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ProductCostAdjustment"
                  }
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "ProductCostAdjustment"
        ],
        "summary": "Insert or update product cost adjustment",
        "description": "```productCostAdjustmentId``` property is required, please generate a GUID when inserting.",
        "parameters": [
          {
            "name": "companyId",
            "in": "path",
            "description": "Your inFlow account companyId",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "description": "A product cost adjustment to insert or update",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProductCostAdjustment"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductCostAdjustment"
                }
              }
            }
          }
        }
      }
    },
    "/{companyId}/product-cost-adjustments/{productCostAdjustmentId}": {
      "get": {
        "tags": [
          "ProductCostAdjustment"
        ],
        "summary": "Get a product cost adjustment",
        "description": "Relationships can be included via the ```include``` query parameter.\n\n",
        "parameters": [
          {
            "name": "companyId",
            "in": "path",
            "description": "Your inFlow account companyId",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "productCostAdjustmentId",
            "in": "path",
            "description": "The productCostAdjustmentId to be fetched",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductCostAdjustment"
                }
              }
            }
          }
        }
      }
    },
    "/{companyId}/product-groups": {
      "get": {
        "tags": [
          "ProductGroup"
        ],
        "summary": "List all product groups.",
        "parameters": [
          {
            "name": "companyId",
            "in": "path",
            "description": "The company ID.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "request",
            "in": "query",
            "description": "Collection request parameters (paging, sorting, filtering).",
            "schema": {
              "$ref": "#/components/schemas/GetCollectionRequest"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ProductGroup"
                  }
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "ProductGroup"
        ],
        "summary": "Create or update a product group.",
        "parameters": [
          {
            "name": "companyId",
            "in": "path",
            "description": "The company ID.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "description": "The product group data to create or update.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProductGroup"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductGroup"
                }
              }
            }
          }
        }
      }
    },
    "/{companyId}/product-groups/{productGroupId}": {
      "get": {
        "tags": [
          "ProductGroup"
        ],
        "summary": "Get a single product group by ID.",
        "parameters": [
          {
            "name": "companyId",
            "in": "path",
            "description": "The company ID.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "productGroupId",
            "in": "path",
            "description": "The product group ID.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductGroup"
                }
              }
            }
          }
        }
      }
    },
    "/{companyId}/product-groups/{productGroupId}/quantities/{locationId}": {
      "get": {
        "tags": [
          "ProductGroup"
        ],
        "summary": "Get variant quantities for a product group, optionally filtered by location.",
        "parameters": [
          {
            "name": "companyId",
            "in": "path",
            "description": "The company ID.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "productGroupId",
            "in": "path",
            "description": "The product group ID.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "locationId",
            "in": "query",
            "description": "Optional location ID to filter quantities by.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ProductGroupVariantQuantities"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/{companyId}/purchase-orders": {
      "get": {
        "tags": [
          "PurchaseOrder"
        ],
        "summary": "List purchase orders",
        "description": "Relationships can be included via the ```include``` query parameter.\n\n\nOptions for filtering this list:\n\n```filter[orderNumber]```\n\n```filter[inventoryStatus] array of statuses```\n\n```filter[paymentStatus]``` array of statuses\n\n```filter[vendorId]```\n\n```filter[orderDate] ``` date range object with ```fromDate``` and ```toDate```\n\n```filter[vendorOrderNumber]```\n\n```filter[locationId]```\n\n```filter[requestShipDate]``` date range object with ```fromDate``` and ```toDate```\n\n```filter[total]``` number range object with ```fromDate``` and ```toDate```\n\n```filter[balance]``` number range object with ```fromDate``` and ```toDate```\n\n```filter[isActive]```\n\n```filter[smart]``` (search on order number and vendor name)\n\n",
        "parameters": [
          {
            "name": "companyId",
            "in": "path",
            "description": "Your inFlow account companyId",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "request",
            "in": "query",
            "description": "Additional query parameter options",
            "schema": {
              "$ref": "#/components/schemas/GetCollectionRequest"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/PurchaseOrder"
                  }
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "PurchaseOrder"
        ],
        "summary": "Insert or update purchase order",
        "description": "```purchaseOrderId``` property is required, please generate a GUID when inserting.\n\n```vendorId``` property is required, which should be the primary identifier for a vendor.\n\n\nMany of the properties, e.g. Subtotal, and tax amounts, are optional and will be calculated by inFlow if you exclude the properties.",
        "parameters": [
          {
            "name": "companyId",
            "in": "path",
            "description": "Your inFlow account companyId",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "description": "A purchase order to insert or update",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PurchaseOrder"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PurchaseOrder"
                }
              }
            }
          }
        }
      }
    },
    "/{companyId}/purchase-orders/{purchaseOrderId}": {
      "get": {
        "tags": [
          "PurchaseOrder"
        ],
        "summary": "Get a purchase order",
        "description": "Relationships can be included via the ```include``` query parameter.\n\n",
        "parameters": [
          {
            "name": "companyId",
            "in": "path",
            "description": "Your inFlow account companyId",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "purchaseOrderId",
            "in": "path",
            "description": "The purchaseOrderId to be fetched",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PurchaseOrder"
                }
              }
            }
          }
        }
      }
    },
    "/{companyId}/sales-orders": {
      "get": {
        "tags": [
          "SalesOrder"
        ],
        "summary": "List sales orders",
        "description": "Relationships can be included via the ```include``` query parameter.\n\n\nOptions for filtering this list:\n\n```filter[orderNumber]```\n\n```filter[inventoryStatus] array of statuses```\n\n```filter[paymentStatus]``` array of statuses\n\n```filter[customerId]```\n\n```filter[orderDate]``` date range object with ```fromDate``` and ```toDate```\n\n```filter[poNumber]```\n\n```filter[locationId]```\n\n```filter[requestedShipDate]``` date range object with ```fromDate``` and ```toDate```\n\n```filter[invoicedDate]``` date range object with ```fromDate``` and ```toDate```\n\n```filter[total]``` number range object with ```fromDate``` and ```toDate```\n\n```filter[balance]``` number range object with ```fromDate``` and ```toDate```\n\n```filter[isActive]```\n\n```filter[smart]``` (search on order number and customer name)\n\n",
        "parameters": [
          {
            "name": "companyId",
            "in": "path",
            "description": "Your inFlow account companyId",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "request",
            "in": "query",
            "description": "Additional query parameter options",
            "schema": {
              "$ref": "#/components/schemas/GetCollectionRequest"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/SalesOrder"
                  }
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "SalesOrder"
        ],
        "summary": "Insert or update sales order",
        "description": "```salesOrderId``` property is required, please generate a GUID when inserting.\n\n```customerId``` property is required, which should be the primary identifier for a customer.\n\n```source``` property is required, which should be where this order originated from, i.e. the name of your app.\n\n\nMany of the properties, e.g. Subtotal, and tax amounts, are optional and will be calculated by inFlow if you exclude the properties.\n\n```X-OverrideAllowNegativeInventory: TRUE``` Setting this header to true will allow picking an amount of products that would make inventory levels in that location go into a negative. By default this is ```FALSE```.",
        "parameters": [
          {
            "name": "companyId",
            "in": "path",
            "description": "Your inFlow account companyId",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "description": "A sales order to insert or update",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SalesOrder"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SalesOrder"
                }
              }
            }
          }
        }
      }
    },
    "/{companyId}/sales-orders/{salesOrderId}": {
      "get": {
        "tags": [
          "SalesOrder"
        ],
        "summary": "Get a sales order",
        "description": "Relationships can be included via the ```include``` query parameter.\n\n\n\n",
        "parameters": [
          {
            "name": "companyId",
            "in": "path",
            "description": "Your inFlow account companyId",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "salesOrderId",
            "in": "path",
            "description": "The salesOrderId to be fetched",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SalesOrder"
                }
              }
            }
          }
        }
      }
    },
    "/{companyId}/stock-adjustments": {
      "get": {
        "tags": [
          "StockAdjustment"
        ],
        "summary": "List stock adjustments",
        "description": "Relationships can be included via the ```include``` query parameter.\n\n\nOptions for filtering this list:\n\n```filter[adjustmentNumber]```\n\n",
        "parameters": [
          {
            "name": "companyId",
            "in": "path",
            "description": "Your inFlow account companyId",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "request",
            "in": "query",
            "description": "Additional query parameter options",
            "schema": {
              "$ref": "#/components/schemas/GetCollectionRequest"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/StockAdjustment"
                  }
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "StockAdjustment"
        ],
        "summary": "Insert or update a stock adjustment",
        "description": "```stockAdjustmentId``` property is required, please generate a GUID when inserting.",
        "parameters": [
          {
            "name": "companyId",
            "in": "path",
            "description": "Your inFlow account companyId",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "description": "A stock adjustment to insert or update",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/StockAdjustment"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StockAdjustment"
                }
              }
            }
          }
        }
      }
    },
    "/{companyId}/stock-adjustments/{stockAdjustmentId}": {
      "get": {
        "tags": [
          "StockAdjustment"
        ],
        "summary": "Get a stock adjustment",
        "description": "Relationships can be included via the ```include``` query parameter.\n\n",
        "parameters": [
          {
            "name": "companyId",
            "in": "path",
            "description": "Your inFlow account companyId",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "stockAdjustmentId",
            "in": "path",
            "description": "The stockAdjustmentId to be fetched",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StockAdjustment"
                }
              }
            }
          }
        }
      }
    },
    "/{companyId}/count-sheets/{countSheetId}": {
      "get": {
        "tags": [
          "StockCount"
        ],
        "summary": "Get a count sheet",
        "description": "Relationships can be included via the ```include``` query parameter.\n\n",
        "parameters": [
          {
            "name": "companyId",
            "in": "path",
            "description": "Your inFlow account companyId",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "countSheetId",
            "in": "path",
            "description": "The countSheetId to be fetched",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CountSheet"
                }
              }
            }
          }
        }
      }
    },
    "/{companyId}/stock-counts": {
      "get": {
        "tags": [
          "StockCount"
        ],
        "summary": "List stock counts",
        "description": "Relationships can be included via the ```include``` query parameter.\n\n\nOptions for filtering this list:\n\n```filter[stockCountNumber]```\n\n",
        "parameters": [
          {
            "name": "companyId",
            "in": "path",
            "description": "Your inFlow account companyId",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "request",
            "in": "query",
            "description": "Additional query parameter options",
            "schema": {
              "$ref": "#/components/schemas/GetCollectionRequest"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/StockCount"
                  }
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "StockCount"
        ],
        "summary": "Insert or update a stock count",
        "description": "```StockCountId``` property is required, please generate a GUID when inserting.",
        "parameters": [
          {
            "name": "companyId",
            "in": "path",
            "description": "Your inFlow account companyId",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "description": "A stock count to insert or update",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/StockCount"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StockCount"
                }
              }
            }
          }
        }
      }
    },
    "/{companyId}/stock-counts/{stockCountId}": {
      "get": {
        "tags": [
          "StockCount"
        ],
        "summary": "Get a stock count",
        "description": "Relationships can be included via the ```include``` query parameter.\n\n",
        "parameters": [
          {
            "name": "companyId",
            "in": "path",
            "description": "Your inFlow account companyId",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "stockCountId",
            "in": "path",
            "description": "The stockCountId to be fetched",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StockCount"
                }
              }
            }
          }
        }
      }
    },
    "/{companyId}/stock-counts/{stockCountId}/count-sheet": {
      "put": {
        "tags": [
          "StockCount"
        ],
        "summary": "Insert or update a count sheet",
        "description": "```CountSheetId``` property is required, please generate a GUID when inserting.",
        "parameters": [
          {
            "name": "request",
            "in": "query",
            "description": "Additional query parameter options",
            "schema": {
              "$ref": "#/components/schemas/GetDetailsRequest"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "Your inFlow account companyId",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "stockCountId",
            "in": "path",
            "description": "The stockCountId to insert or update the count sheet on",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "description": "The count sheet to insert or update",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CountSheet"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CountSheet"
                }
              }
            }
          }
        }
      }
    },
    "/{companyId}/stock-counts/{stockCountId}/count-sheets/{countSheetId}": {
      "delete": {
        "tags": [
          "StockCount"
        ],
        "summary": "Delete a count sheet",
        "parameters": [
          {
            "name": "companyId",
            "in": "path",
            "description": "",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "stockCountId",
            "in": "path",
            "description": "The stockCountId which contains the sheet to be deleted",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "countSheetId",
            "in": "path",
            "description": "The countSheetId to be deleted",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StockCount"
                }
              }
            }
          }
        }
      }
    },
    "/{companyId}/stockroom-scans": {
      "get": {
        "tags": [
          "StockroomScan"
        ],
        "summary": "List stockroom scans",
        "description": "Relationships can be included via the ```include``` query parameter.\n\n\nOptions for filtering this list:\n\n```filter[stockroomScanNumber]```\n\n",
        "parameters": [
          {
            "name": "companyId",
            "in": "path",
            "description": "Your inFlow Cloud account companyId",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "request",
            "in": "query",
            "description": "Additional query parameter options",
            "schema": {
              "$ref": "#/components/schemas/GetCollectionRequest"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/StockroomScanObjectSubset"
                  }
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "StockroomScan"
        ],
        "summary": "Insert or update a stockroom scan",
        "description": "```stockroomScanId``` property is required, please generate a GUID when inserting.",
        "parameters": [
          {
            "name": "companyId",
            "in": "path",
            "description": "Your inFlow Cloud account companyId",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "description": "A stockroom scan to insert or update",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/StockroomScanObjectSubset"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StockroomScanObjectSubset"
                }
              }
            }
          }
        }
      }
    },
    "/{companyId}/stockroom-users": {
      "get": {
        "tags": [
          "StockroomUser"
        ],
        "summary": "List stockroom users",
        "description": "Relationships can be included via the ```include``` query parameter.\n\n",
        "parameters": [
          {
            "name": "companyId",
            "in": "path",
            "description": "Your inFlow Cloud account companyId",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "request",
            "in": "query",
            "description": "Additional query parameter options",
            "schema": {
              "$ref": "#/components/schemas/GetCollectionRequest"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/StockroomUserObjectSubset"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/{companyId}/stockroom-users/{stockroomUserId}": {
      "get": {
        "tags": [
          "StockroomUser"
        ],
        "summary": "Get stockroom users",
        "description": "Relationships can be included via the ```include``` query parameter.\n\n",
        "parameters": [
          {
            "name": "companyId",
            "in": "path",
            "description": "Your inFlow Cloud account companyId",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "stockroomUserId",
            "in": "path",
            "description": "The StockroomUserId to be fetched",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StockroomUserObjectSubset"
                }
              }
            }
          }
        }
      }
    },
    "/{companyId}/stock-transfers": {
      "get": {
        "tags": [
          "StockTransfer"
        ],
        "summary": "List stock transfers",
        "description": "Relationships can be included via the ```include``` query parameter.\n\n\nOptions for filtering this list:\n\n```filter[transferNumber]```\n\n",
        "parameters": [
          {
            "name": "companyId",
            "in": "path",
            "description": "Your inFlow account companyId",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "request",
            "in": "query",
            "description": "Additional query parameter options",
            "schema": {
              "$ref": "#/components/schemas/GetCollectionRequest"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/StockTransfer"
                  }
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "StockTransfer"
        ],
        "summary": "Insert or update a stock transfer",
        "description": "```stockTransferId``` property is required, please generate a GUID when inserting.\n\n```fromLocationId``` property is required, please provide the location the products will be transferred from.\n\n```toLocationId``` property is required, please provide the location the products will be transferred to.\n\n",
        "parameters": [
          {
            "name": "companyId",
            "in": "path",
            "description": "Your inFlow account companyId",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "description": "A stock transfer to insert or update",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/StockTransfer"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StockTransfer"
                }
              }
            }
          }
        }
      }
    },
    "/{companyId}/stock-transfers/{stockTransferId}": {
      "get": {
        "tags": [
          "StockTransfer"
        ],
        "summary": "Get a stock transfer",
        "description": "Relationships can be included via the ```include``` query parameter.\n\n",
        "parameters": [
          {
            "name": "companyId",
            "in": "path",
            "description": "Your inFlow account companyId",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "stockTransferId",
            "in": "path",
            "description": "The stockTransferId to be fetched",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StockTransfer"
                }
              }
            }
          }
        }
      }
    },
    "/{companyId}/tax-codes": {
      "get": {
        "tags": [
          "TaxCode"
        ],
        "summary": "List tax codes",
        "description": "Relationships can be included via the ```include``` query parameter.\n\n",
        "parameters": [
          {
            "name": "companyId",
            "in": "path",
            "description": "Your inFlow account companyId",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "request",
            "in": "query",
            "description": "Additional query parameter options",
            "schema": {
              "$ref": "#/components/schemas/GetCollectionRequest"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/TaxCode"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/{companyId}/tax-codes/{taxCodeId}": {
      "get": {
        "tags": [
          "TaxCode"
        ],
        "summary": "Get a tax code",
        "description": "Relationships can be included via the ```include``` query parameter.\n\n",
        "parameters": [
          {
            "name": "companyId",
            "in": "path",
            "description": "Your inFlow account companyId",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "taxCodeId",
            "in": "path",
            "description": "The taxCodeId to be fetched",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TaxCode"
                }
              }
            }
          }
        }
      }
    },
    "/{companyId}/taxing-schemes": {
      "get": {
        "tags": [
          "TaxingScheme"
        ],
        "summary": "List taxing schemes",
        "description": "Relationships can be included via the ```include``` query parameter.\n\n\nOptions for filtering this list:\n\n```filter[name]```\n\n",
        "parameters": [
          {
            "name": "companyId",
            "in": "path",
            "description": "Your inFlow account companyId",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "request",
            "in": "query",
            "description": "Additional query parameter options",
            "schema": {
              "$ref": "#/components/schemas/GetCollectionRequest"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/TaxingScheme"
                  }
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "TaxingScheme"
        ],
        "summary": "Insert or update taxing scheme",
        "description": "Relationships can be included via the ```include``` query parameter.\n\n",
        "parameters": [
          {
            "name": "companyId",
            "in": "path",
            "description": "Your inFlow account companyId",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "description": "A taxing scheme to insert or update",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TaxingScheme"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TaxingScheme"
                }
              }
            }
          }
        }
      }
    },
    "/{companyId}/taxing-schemes/{taxingSchemeId}": {
      "get": {
        "tags": [
          "TaxingScheme"
        ],
        "summary": "Get a taxing scheme",
        "description": "Relationships can be included via the ```include``` query parameter.\n\n",
        "parameters": [
          {
            "name": "companyId",
            "in": "path",
            "description": "Your inFlow account companyId",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "taxingSchemeId",
            "in": "path",
            "description": "The taxingSchemeId to be fetched",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TaxingScheme"
                }
              }
            }
          }
        }
      }
    },
    "/{companyId}/team-members": {
      "get": {
        "tags": [
          "TeamMember"
        ],
        "summary": "List team members in your inFlow account.",
        "description": "This only includes inFlow users, not other types (e.g. API keys) that can be returned by\n```LastModifiedBy```.",
        "parameters": [
          {
            "name": "request",
            "in": "query",
            "description": "Additional query parameter options",
            "schema": {
              "$ref": "#/components/schemas/GetCollectionRequest"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/TeamMember"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/{companyId}/vendors": {
      "get": {
        "tags": [
          "Vendor"
        ],
        "summary": "List vendors",
        "description": "Relationships can be included via the ```include``` query parameter.\n\n\nOptions for filtering this list:\n\n```filter[name]```\n\n```filter[contactName]```\n\n```filter[phone]```\n\n```filter[email]```\n\n```filter[website]```\n\n```filter[address]```\n\n```filter[city]```\n\n```filter[state]```\n\n```filter[postalCode]```\n\n```filter[country]```\n\n```filter[isActive]```\n\n```filter[smart]``` (search across name and contact name)\n\n",
        "parameters": [
          {
            "name": "request",
            "in": "query",
            "description": "Additional query parameter options",
            "schema": {
              "$ref": "#/components/schemas/GetCollectionRequest"
            }
          },
          {
            "name": "companyId",
            "in": "path",
            "description": "Your inFlow account companyId",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Vendor"
                  }
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "Vendor"
        ],
        "summary": "Insert or update a vendor",
        "description": "```vendorId``` property is required, please generate a GUID when inserting.",
        "parameters": [
          {
            "name": "companyId",
            "in": "path",
            "description": "Your inFlow account companyId",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "description": "A vendor to insert or update",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Vendor"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Vendor"
                }
              }
            }
          }
        }
      }
    },
    "/{companyId}/vendors/{vendorId}": {
      "get": {
        "tags": [
          "Vendor"
        ],
        "summary": "Get a vendor",
        "description": "Relationships can be included via the ```include``` query parameter.\n\n",
        "parameters": [
          {
            "name": "companyId",
            "in": "path",
            "description": "Your inFlow account companyId",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "vendorId",
            "in": "path",
            "description": "The vendorId to be fetched",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Vendor"
                }
              }
            }
          }
        }
      }
    },
    "/{companyId}/webhooks": {
      "get": {
        "tags": [
          "WebHooks"
        ],
        "summary": "List all subscribed webhooks.",
        "parameters": [
          {
            "name": "companyId",
            "in": "path",
            "description": "Your inFlow account companyId",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/WebHookSubscription"
                  }
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "WebHooks"
        ],
        "summary": "Subscribe to a webhook",
        "parameters": [
          {
            "name": "companyId",
            "in": "path",
            "description": "Your inFlow account companyId",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "description": "Additional query parameter options",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebHookSubscriptionRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WebHookSubscription"
                }
              }
            }
          }
        }
      }
    },
    "/{companyId}/webhooks/{webHookId}": {
      "get": {
        "tags": [
          "WebHooks"
        ],
        "summary": "Get a webhook subscription",
        "parameters": [
          {
            "name": "companyId",
            "in": "path",
            "description": "Your inFlow account companyId",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "webHookId",
            "in": "path",
            "description": "Webhook ID",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WebHookSubscription"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "WebHooks"
        ],
        "summary": "Unsubscribe from a webhook.",
        "parameters": [
          {
            "name": "companyId",
            "in": "path",
            "description": "Your inFlow account companyId",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "webHookId",
            "in": "path",
            "description": "Webhook ID",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "Address": {
        "type": "object",
        "properties": {
          "address1": {
            "type": "string",
            "description": "The first line of the street address",
            "example": "36 Wonderland Ave."
          },
          "address2": {
            "type": "string",
            "description": "The second line of the street address",
            "example": "Unit 207"
          },
          "city": {
            "type": "string",
            "description": "The city of this address",
            "example": "Toronto"
          },
          "state": {
            "type": "string",
            "description": "The state or province of this address",
            "example": "Ontario"
          },
          "country": {
            "type": "string",
            "description": "The Country of this address",
            "example": "Canada"
          },
          "postalCode": {
            "type": "string",
            "description": "The postal code or zip code of this address",
            "example": "90210"
          },
          "remarks": {
            "type": "string",
            "description": "Any additional remarks about this address"
          },
          "addressType": {
            "enum": [
              "Commercial",
              "Residential"
            ],
            "type": "string",
            "description": "Whether this is a residential or commercial address",
            "nullable": true
          }
        }
      },
      "AdjustmentReason": {
        "type": "object",
        "properties": {
          "adjustmentReasonId": {
            "type": "string",
            "description": "The primary identifier for this adjustment reason. <a href=\"#section/Overview/Write-requests\">When inserting, you should specify this by generating a GUID</a>. Not shown to users",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "isActive": {
            "type": "boolean",
            "description": "Adjustment reasons with ```IsActive = false``` are deactivated and hidden away for new usage."
          },
          "isInternal": {
            "type": "boolean",
            "description": "Whether this is a system-generated adjustment reason. Internal adjustment reasons cannot be modified. This is read-only."
          },
          "name": {
            "type": "string",
            "description": "A short description of this adjustment reason"
          }
        }
      },
      "AdjustmentReasonObjectSubset": {
        "type": "object",
        "properties": {
          "attributes": {
            "type": "object",
            "additionalProperties": {
              "nullable": true
            },
            "nullable": true
          },
          "relationships": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/IObjectSubset"
              },
              "nullable": true
            },
            "nullable": true
          },
          "meta": {
            "type": "object",
            "additionalProperties": {
              "nullable": true
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Attachment": {
        "type": "object",
        "properties": {
          "attachmentId": {
            "type": "string",
            "description": "The attachmentId to be fetched.",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "attachmentUrl": {
            "type": "string",
            "description": "The Url associated with the attachment"
          },
          "fileName": {
            "type": "string",
            "description": "The human-readable name for this attachment."
          },
          "fileSize": {
            "$ref": "#/components/schemas/Int64"
          },
          "lastModDttm": {
            "type": "string",
            "description": "The DateTimeOffset when this attachment was last modified.",
            "format": "date-time",
            "example": "2020-01-31"
          },
          "lastModifiedById": {
            "type": "string",
            "description": "The inFlow Team Member, system process, or API key that last modified this attachment.",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "lastModifiedBy": {
            "$ref": "#/components/schemas/TeamMember"
          }
        }
      },
      "BatchJob": {
        "type": "object",
        "properties": {
          "batchJobId": {
            "type": "string",
            "description": "The unique identifier of the batch job",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "createDate": {
            "type": "string",
            "description": "When the batch job was created",
            "format": "date-time",
            "example": "2020-01-31"
          },
          "endDate": {
            "type": "string",
            "description": "When the batch job was completed",
            "format": "date-time",
            "nullable": true,
            "example": "2020-01-31"
          },
          "errorId": {
            "type": "string",
            "description": "The ID of the error if an error occurred"
          },
          "errorMessage": {
            "type": "string",
            "description": "The error message of the batch job, if any error occurred during processing the batch job. This will be null if the batch job is still in progress or completed successfully."
          },
          "progress": {
            "type": "string",
            "description": "The progress message of the batch job"
          },
          "result": {
            "type": "string",
            "description": "The batch job result"
          },
          "startDate": {
            "type": "string",
            "description": "When the batch job was started",
            "format": "date-time",
            "nullable": true,
            "example": "2020-01-31"
          },
          "status": {
            "enum": [
              "NotStarted",
              "InProgress",
              "Success",
              "Error"
            ],
            "type": "string",
            "description": "The status of the batch job"
          }
        }
      },
      "Category": {
        "type": "object",
        "properties": {
          "categoryId": {
            "type": "string",
            "description": "The primary identifier for this category. Not shown to users",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "isDefault": {
            "type": "boolean",
            "description": "Only one category, your company-wide default, should have ```IsDefault = true```."
          },
          "name": {
            "type": "string",
            "description": "A human-readable name for this category.",
            "example": "Bestsellers"
          },
          "parentCategoryId": {
            "type": "string",
            "format": "uuid",
            "nullable": true,
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "timestamp": {
            "type": "string",
            "description": "You can optionally include the last-known timestamp when modifying to protect against concurrent modifications.",
            "format": "rowversion",
            "example": "0000000000310AB6"
          },
          "parentCategory": {
            "$ref": "#/components/schemas/Category"
          }
        }
      },
      "CountSheet": {
        "type": "object",
        "properties": {
          "assignedToTeamMemberId": {
            "type": "string",
            "format": "uuid",
            "nullable": true,
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "completedDate": {
            "type": "string",
            "description": "The date this sheet was completed",
            "format": "date-time",
            "nullable": true,
            "example": "2020-01-31"
          },
          "countSheetId": {
            "type": "string",
            "description": "The primary identifier for this count sheet. <a href=\"#section/Overview/Write-requests\">When inserting, you should specify this by generating a GUID</a>. Not shown to users",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "isCancelled": {
            "type": "boolean",
            "description": "Whether this count sheet is cancelled (being cancelled voids inventory adjustments)"
          },
          "isCompleted": {
            "type": "boolean",
            "description": "Whether this count sheet is completed (inventory adjustmentments are made when completed)"
          },
          "lastModifiedById": {
            "type": "string",
            "description": "The inFlow Team Member, system process, or API key that last modified this count sheet. This is set automatically, and cannot be set through the API.",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "remarks": {
            "type": "string",
            "description": "Any extra comments on this count sheet"
          },
          "sheetNumber": {
            "type": "integer",
            "description": "The number of this sheet as part of the stock count",
            "format": "int32",
            "example": 1
          },
          "startedDate": {
            "type": "string",
            "description": "The date this sheet was started",
            "format": "date-time",
            "nullable": true,
            "example": "2020-01-31"
          },
          "status": {
            "enum": [
              "Open",
              "InProgress",
              "Completed"
            ],
            "type": "string",
            "description": "The status of this count sheet"
          },
          "stockCountId": {
            "type": "string",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "timestamp": {
            "type": "string",
            "description": "You can optionally include the last-known timestamp when modifying to protect against concurrent modifications.",
            "format": "rowversion",
            "example": "0000000000310AB6"
          },
          "assignedToTeamMember": {
            "$ref": "#/components/schemas/TeamMember"
          },
          "lastModifiedBy": {
            "$ref": "#/components/schemas/TeamMember"
          },
          "lines": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "countedQuantity": {
                  "$ref": "#/components/schemas/QuantityWithUom"
                },
                "countSheetLineId": {
                  "type": "string",
                  "description": "The primary identifier for this count sheet line. . <a href=\"#section/Overview/Write-requests\">When inserting, you should specify this by generating a GUID</a>. Not shown to users",
                  "format": "uuid",
                  "example": "00000000-0000-0000-0000-000000000000"
                },
                "description": {
                  "type": "string",
                  "description": "A human-readable description for the product being counted (can be customized specifically for this count sheet)"
                },
                "productId": {
                  "type": "string",
                  "format": "uuid",
                  "example": "00000000-0000-0000-0000-000000000000"
                },
                "snapshotQuantity": {
                  "$ref": "#/components/schemas/QuantityWithUom"
                },
                "sublocation": {
                  "type": "string",
                  "description": "The sublocation this inventory is being counted for",
                  "example": "C-19"
                },
                "timestamp": {
                  "type": "string",
                  "description": "You can optionally include the last-known timestamp when modifying to protect against concurrent modifications.",
                  "format": "rowversion",
                  "example": "0000000000310AB6"
                },
                "product": {
                  "$ref": "#/components/schemas/Product"
                }
              }
            },
            "description": "Lines representing which inventory levels are being adjusted"
          },
          "stockCount": {
            "$ref": "#/components/schemas/StockCount"
          }
        }
      },
      "CountSheetLine": {
        "type": "object",
        "properties": {
          "countedQuantity": {
            "$ref": "#/components/schemas/QuantityWithUom"
          },
          "countSheetLineId": {
            "type": "string",
            "description": "The primary identifier for this count sheet line. . <a href=\"#section/Overview/Write-requests\">When inserting, you should specify this by generating a GUID</a>. Not shown to users",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "description": {
            "type": "string",
            "description": "A human-readable description for the product being counted (can be customized specifically for this count sheet)"
          },
          "productId": {
            "type": "string",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "snapshotQuantity": {
            "$ref": "#/components/schemas/QuantityWithUom"
          },
          "sublocation": {
            "type": "string",
            "description": "The sublocation this inventory is being counted for",
            "example": "C-19"
          },
          "timestamp": {
            "type": "string",
            "description": "You can optionally include the last-known timestamp when modifying to protect against concurrent modifications.",
            "format": "rowversion",
            "example": "0000000000310AB6"
          },
          "product": {
            "$ref": "#/components/schemas/Product"
          }
        }
      },
      "Currency": {
        "type": "object",
        "properties": {
          "currencyId": {
            "type": "string",
            "description": "The primary identifier for this currency. Not shown to users",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "decimalPlaces": {
            "type": "integer",
            "description": "The number of decimal places typically shown with this currency",
            "format": "int32",
            "example": 2
          },
          "decimalSeparator": {
            "type": "string",
            "description": "The symbol used to separate decimals with this currency",
            "example": "."
          },
          "isoCode": {
            "type": "string",
            "description": "The ISO 4217 code for this currency",
            "example": "USD"
          },
          "isSymbolFirst": {
            "type": "boolean",
            "description": "Whether the symbol is shown prior to the numerical value for this currency"
          },
          "name": {
            "type": "string",
            "description": "A descriptive name of this currency",
            "example": "US Dollar"
          },
          "negativeType": {
            "enum": [
              "Leading",
              "LeadingInsideSymbol",
              "TrailingInsideSymbol",
              "Trailing",
              "Bracketed"
            ],
            "type": "string",
            "description": "How negative numbers are shown for this currency"
          },
          "symbol": {
            "type": "string",
            "description": "A short symbol representing this currency",
            "example": "$"
          },
          "thousandsSeparator": {
            "type": "string",
            "description": "The symbol used to separate thousands with this currency",
            "example": ","
          },
          "timestamp": {
            "type": "string",
            "description": "You can optionally include the last-known timestamp when modifying to protect against concurrent modifications.",
            "format": "rowversion",
            "example": "0000000000310AB6"
          },
          "currencyConversions": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "currencyConversionId": {
                  "type": "string",
                  "description": "The primary identifier for this currency conversion. Not shown to users"
                },
                "currencyId": {
                  "type": "string",
                  "format": "uuid",
                  "example": "00000000-0000-0000-0000-000000000000"
                },
                "exchangeRate": {
                  "type": "string",
                  "description": "How many units of this currency 1 home currency unit is worth",
                  "format": "decimal",
                  "example": 1.29
                },
                "isManual": {
                  "type": "boolean",
                  "description": "True if this exchange rate is overridden and manually set, false if it's automatically sourced\nWhen this is true, then the entire record should be treated as read-only."
                },
                "timestamp": {
                  "type": "string",
                  "description": "You can optionally include the last-known timestamp when modifying to protect against concurrent modifications.",
                  "format": "rowversion",
                  "example": "0000000000310AB6"
                },
                "currency": {
                  "$ref": "#/components/schemas/Currency"
                }
              }
            },
            "description": "A list of conversion rates related to this currency."
          }
        }
      },
      "CurrencyConversion": {
        "type": "object",
        "properties": {
          "currencyConversionId": {
            "type": "string",
            "description": "The primary identifier for this currency conversion. Not shown to users"
          },
          "currencyId": {
            "type": "string",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "exchangeRate": {
            "type": "string",
            "description": "How many units of this currency 1 home currency unit is worth",
            "format": "decimal",
            "example": 1.29
          },
          "isManual": {
            "type": "boolean",
            "description": "True if this exchange rate is overridden and manually set, false if it's automatically sourced\nWhen this is true, then the entire record should be treated as read-only."
          },
          "timestamp": {
            "type": "string",
            "description": "You can optionally include the last-known timestamp when modifying to protect against concurrent modifications.",
            "format": "rowversion",
            "example": "0000000000310AB6"
          },
          "currency": {
            "$ref": "#/components/schemas/Currency"
          }
        }
      },
      "CustomFieldDefinition": {
        "type": "object",
        "properties": {
          "categoryId": {
            "type": "string",
            "format": "uuid",
            "nullable": true,
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "customFieldDefinitionId": {
            "type": "string",
            "description": "The primary identifier for this custom field definition. <a href=\"#section/Overview/Write-requests\">When inserting, you can insert any value here, it will be ignored</a>. Not shown to users"
          },
          "customFieldType": {
            "enum": [
              "Text",
              "Dropdown",
              "Date",
              "Checkbox",
              "Numeric"
            ],
            "type": "string",
            "description": "The type of custom field and how it will be displayed to the user"
          },
          "entityType": {
            "enum": [
              "SalesOrder",
              "PurchaseOrder",
              "Product",
              "Vendor",
              "Customer",
              "CountSheet",
              "StockTransfer",
              "StockAdjustment",
              "StockCount",
              "ManufacturingOrder"
            ],
            "type": "string",
            "description": "The entity type of the custom field, e.g. ```product```"
          },
          "isActive": {
            "type": "boolean",
            "description": "Whether this custom field is active and should be displayed"
          },
          "label": {
            "type": "string",
            "description": "Human-readable name for this custom field."
          },
          "propertyName": {
            "type": "string",
            "description": "The property name for the custom field, should be one of custom1 through custom10"
          },
          "category": {
            "$ref": "#/components/schemas/Category"
          }
        }
      },
      "CustomFieldDropdownOptionsDetails": {
        "type": "object",
        "properties": {
          "dropdownOptions": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "The list of valid options for this custom field"
          },
          "entityType": {
            "enum": [
              "SalesOrder",
              "PurchaseOrder",
              "Product",
              "Vendor",
              "Customer",
              "CountSheet",
              "StockTransfer",
              "StockAdjustment",
              "StockCount",
              "ManufacturingOrder"
            ],
            "type": "string",
            "description": "The entity type (e.g. Product) that this custom field applies to"
          },
          "id": {
            "type": "string",
            "description": "Ignored"
          },
          "propertyName": {
            "type": "string",
            "description": "The property name of the custom field.  Should be one of Custom1, Custom2, ... Custom10"
          }
        }
      },
      "CustomFieldDropdownOptionsDetailsObjectSubset": {
        "type": "object",
        "properties": {
          "attributes": {
            "type": "object",
            "additionalProperties": {
              "nullable": true
            },
            "nullable": true
          },
          "relationships": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/IObjectSubset"
              },
              "nullable": true
            },
            "nullable": true
          },
          "meta": {
            "type": "object",
            "additionalProperties": {
              "nullable": true
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CustomFieldPrintValues": {
        "type": "object",
        "properties": {
          "custom1Print": {
            "type": "boolean",
            "description": "Determines if the first custom field should be printed for this type."
          },
          "custom2Print": {
            "type": "boolean",
            "description": "Determines if the second custom field should be printed for this type."
          },
          "custom3Print": {
            "type": "boolean",
            "description": "Determines if the third custom field should be printed for this type."
          }
        }
      },
      "CustomFields": {
        "type": "object",
        "properties": {
          "customFieldsId": {
            "type": "string",
            "description": "Although the name of the ID is custom fields, this value represents the company ID.",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "purchaseOrderCustomFieldPrintLabels": {
            "$ref": "#/components/schemas/CustomFieldPrintValues"
          },
          "salesOrderCustomFieldPrintLabels": {
            "$ref": "#/components/schemas/CustomFieldPrintValues"
          },
          "stockAdjustmentCustomFieldPrintLabels": {
            "$ref": "#/components/schemas/CustomFieldPrintValues"
          },
          "stockTransferCustomFieldPrintLabels": {
            "$ref": "#/components/schemas/CustomFieldPrintValues"
          },
          "workOrderCustomFieldPrintLabels": {
            "$ref": "#/components/schemas/CustomFieldPrintValues"
          }
        }
      },
      "Customer": {
        "type": "object",
        "properties": {
          "contactName": {
            "type": "string",
            "description": "Name of your primary contact for this customer (if it's a business)",
            "example": "John Smith"
          },
          "customerId": {
            "type": "string",
            "description": "The primary identifier for this customer. <a href=\"#section/Overview/Write-requests\">When inserting, you should specify this by generating a GUID</a>. Not shown to users",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "customFields": {
            "$ref": "#/components/schemas/LargeCustomFieldValues"
          },
          "defaultBillingAddressId": {
            "type": "string",
            "format": "uuid",
            "nullable": true,
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "defaultCarrier": {
            "type": "string",
            "description": "The default shipment method for this customer",
            "example": "FedEx"
          },
          "defaultLocationId": {
            "type": "string",
            "format": "uuid",
            "nullable": true,
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "defaultPaymentMethod": {
            "type": "string",
            "description": "The default payment method that this customer uses to pay you for sales orders",
            "example": "Mastercard"
          },
          "defaultPaymentTermsId": {
            "type": "string",
            "format": "uuid",
            "nullable": true,
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "defaultSalesRep": {
            "type": "string",
            "description": "The sales rep for your company that should be assigned to orders from this customer by default\nNote: this can only be set when legacy free-form sales rep values are allowed."
          },
          "defaultSalesRepTeamMemberId": {
            "type": "string",
            "format": "uuid",
            "nullable": true,
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "defaultShippingAddressId": {
            "type": "string",
            "format": "uuid",
            "nullable": true,
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "discount": {
            "type": "string",
            "description": "Percentage discount that you give by default on orders by this customer",
            "format": "decimal",
            "example": 10
          },
          "email": {
            "type": "string",
            "description": "Primary contact email for this customer",
            "example": "john@acmewidget.com"
          },
          "fax": {
            "type": "string",
            "description": "Fax number for this customer",
            "example": "555-123-4567"
          },
          "isActive": {
            "type": "boolean",
            "description": "Vendors with ```IsActive = false``` are deactivated and hidden away for new usage."
          },
          "lastModifiedById": {
            "type": "string",
            "description": "The inFlow Team Member, system process, or API key that last modified this customer. This is set automatically, and cannot be set through the API.",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "lastModifiedDttm": {
            "type": "string",
            "description": "The DateTimeOffset when this customer was last modified. This is set automatically, and cannot be set through the API.",
            "format": "date-time",
            "example": "2020-01-31"
          },
          "name": {
            "type": "string",
            "description": "Customer's name (human-readable, typically a person or business name)",
            "example": "Acme Widget Co."
          },
          "phone": {
            "type": "string",
            "description": "Phone number for this customer",
            "example": "555-123-4567"
          },
          "pricingSchemeId": {
            "type": "string",
            "format": "uuid",
            "nullable": true,
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "remarks": {
            "type": "string",
            "description": "Any additional remarks regarding this vendor"
          },
          "taxExemptNumber": {
            "type": "string",
            "description": "A government number/identifier documenting why this customer has special tax privileges"
          },
          "taxingSchemeId": {
            "type": "string",
            "format": "uuid",
            "nullable": true,
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "timestamp": {
            "type": "string",
            "description": "You can optionally include the last-known timestamp when modifying to protect against concurrent modifications.",
            "format": "rowversion",
            "example": "0000000000310AB6"
          },
          "website": {
            "type": "string",
            "description": "Vendor's website",
            "example": "www.acmewidget.com"
          },
          "addresses": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "address": {
                  "$ref": "#/components/schemas/Address"
                },
                "customerAddressId": {
                  "type": "string",
                  "description": "The primary identifier for this customer address. <a href=\"#section/Overview/Write-requests\">When inserting, you should specify this by generating a GUID</a>. Not shown to users",
                  "format": "uuid",
                  "example": "00000000-0000-0000-0000-000000000000"
                },
                "customerId": {
                  "type": "string",
                  "format": "uuid",
                  "example": "00000000-0000-0000-0000-000000000000"
                },
                "name": {
                  "type": "string",
                  "description": "A descriptive name of this address, e.g. \"New York Store\""
                },
                "timestamp": {
                  "type": "string",
                  "description": "You can optionally include the last-known timestamp when modifying to protect against concurrent modifications.",
                  "format": "rowversion",
                  "example": "0000000000310AB6"
                },
                "customer": {
                  "$ref": "#/components/schemas/Customer"
                }
              }
            },
            "description": "All addresses for this customer."
          },
          "attachments": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "attachmentId": {
                  "type": "string",
                  "description": "The attachmentId to be fetched.",
                  "format": "uuid",
                  "example": "00000000-0000-0000-0000-000000000000"
                },
                "attachmentUrl": {
                  "type": "string",
                  "description": "The Url associated with the attachment"
                },
                "fileName": {
                  "type": "string",
                  "description": "The human-readable name for this attachment."
                },
                "fileSize": {
                  "$ref": "#/components/schemas/Int64"
                },
                "lastModDttm": {
                  "type": "string",
                  "description": "The DateTimeOffset when this attachment was last modified.",
                  "format": "date-time",
                  "example": "2020-01-31"
                },
                "lastModifiedById": {
                  "type": "string",
                  "description": "The inFlow Team Member, system process, or API key that last modified this attachment.",
                  "format": "uuid",
                  "example": "00000000-0000-0000-0000-000000000000"
                },
                "lastModifiedBy": {
                  "$ref": "#/components/schemas/TeamMember"
                }
              }
            },
            "description": "File attachments included with this customer. (This is a read-only attribute.)"
          },
          "balances": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "balance": {
                  "type": "string",
                  "format": "decimal",
                  "example": "19.99"
                },
                "currencyId": {
                  "type": "string",
                  "format": "uuid",
                  "nullable": true,
                  "example": "00000000-0000-0000-0000-000000000000"
                },
                "customerBalanceId": {
                  "type": "string"
                },
                "customerId": {
                  "type": "string",
                  "format": "uuid",
                  "example": "00000000-0000-0000-0000-000000000000"
                },
                "currency": {
                  "$ref": "#/components/schemas/Currency"
                },
                "customer": {
                  "$ref": "#/components/schemas/Customer"
                }
              }
            },
            "description": "How much this customer owes you (potentially in one or more currencies)"
          },
          "credits": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "credit": {
                  "type": "string",
                  "format": "decimal",
                  "example": "19.99"
                },
                "currencyId": {
                  "type": "string",
                  "format": "uuid",
                  "nullable": true,
                  "example": "00000000-0000-0000-0000-000000000000"
                },
                "customerCreditId": {
                  "type": "string"
                },
                "customerId": {
                  "type": "string",
                  "format": "uuid",
                  "example": "00000000-0000-0000-0000-000000000000"
                },
                "currency": {
                  "$ref": "#/components/schemas/Currency"
                },
                "customer": {
                  "$ref": "#/components/schemas/Customer"
                }
              }
            },
            "description": "How much in store credit this customer has with you (potentially in one or more currencies)"
          },
          "defaultBillingAddress": {
            "$ref": "#/components/schemas/CustomerAddress"
          },
          "defaultLocation": {
            "$ref": "#/components/schemas/Location"
          },
          "defaultPaymentTerms": {
            "$ref": "#/components/schemas/PaymentTerms"
          },
          "defaultSalesRepTeamMember": {
            "$ref": "#/components/schemas/TeamMember"
          },
          "defaultShippingAddress": {
            "$ref": "#/components/schemas/CustomerAddress"
          },
          "dues": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "amount1To30": {
                  "type": "string",
                  "format": "decimal",
                  "example": "19.99"
                },
                "amount31To60": {
                  "type": "string",
                  "format": "decimal",
                  "example": "19.99"
                },
                "amount61Plus": {
                  "type": "string",
                  "format": "decimal",
                  "example": "19.99"
                },
                "amountCurrent": {
                  "type": "string",
                  "format": "decimal",
                  "example": "19.99"
                },
                "currencyId": {
                  "type": "string",
                  "format": "uuid",
                  "example": "00000000-0000-0000-0000-000000000000"
                },
                "customerDueId": {
                  "type": "string"
                },
                "currency": {
                  "$ref": "#/components/schemas/Currency"
                }
              }
            },
            "description": "How much this customer owes you (potentially in one or more currencies)"
          },
          "lastModifiedBy": {
            "$ref": "#/components/schemas/TeamMember"
          },
          "orderHistory": {
            "$ref": "#/components/schemas/CustomerOrderHistory"
          },
          "pricingScheme": {
            "$ref": "#/components/schemas/PricingScheme"
          },
          "taxingScheme": {
            "$ref": "#/components/schemas/TaxingScheme"
          }
        }
      },
      "CustomerAddress": {
        "type": "object",
        "properties": {
          "address": {
            "$ref": "#/components/schemas/Address"
          },
          "customerAddressId": {
            "type": "string",
            "description": "The primary identifier for this customer address. <a href=\"#section/Overview/Write-requests\">When inserting, you should specify this by generating a GUID</a>. Not shown to users",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "customerId": {
            "type": "string",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "name": {
            "type": "string",
            "description": "A descriptive name of this address, e.g. \"New York Store\""
          },
          "timestamp": {
            "type": "string",
            "description": "You can optionally include the last-known timestamp when modifying to protect against concurrent modifications.",
            "format": "rowversion",
            "example": "0000000000310AB6"
          },
          "customer": {
            "$ref": "#/components/schemas/Customer"
          }
        }
      },
      "CustomerBalance": {
        "type": "object",
        "properties": {
          "balance": {
            "type": "string",
            "format": "decimal",
            "example": "19.99"
          },
          "currencyId": {
            "type": "string",
            "format": "uuid",
            "nullable": true,
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "customerBalanceId": {
            "type": "string"
          },
          "customerId": {
            "type": "string",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "currency": {
            "$ref": "#/components/schemas/Currency"
          },
          "customer": {
            "$ref": "#/components/schemas/Customer"
          }
        }
      },
      "CustomerCredit": {
        "type": "object",
        "properties": {
          "credit": {
            "type": "string",
            "format": "decimal",
            "example": "19.99"
          },
          "currencyId": {
            "type": "string",
            "format": "uuid",
            "nullable": true,
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "customerCreditId": {
            "type": "string"
          },
          "customerId": {
            "type": "string",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "currency": {
            "$ref": "#/components/schemas/Currency"
          },
          "customer": {
            "$ref": "#/components/schemas/Customer"
          }
        }
      },
      "CustomerDue": {
        "type": "object",
        "properties": {
          "amount1To30": {
            "type": "string",
            "format": "decimal",
            "example": "19.99"
          },
          "amount31To60": {
            "type": "string",
            "format": "decimal",
            "example": "19.99"
          },
          "amount61Plus": {
            "type": "string",
            "format": "decimal",
            "example": "19.99"
          },
          "amountCurrent": {
            "type": "string",
            "format": "decimal",
            "example": "19.99"
          },
          "currencyId": {
            "type": "string",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "customerDueId": {
            "type": "string"
          },
          "currency": {
            "$ref": "#/components/schemas/Currency"
          }
        }
      },
      "CustomerOrderHistory": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "lastOrderDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "example": "2020-01-31"
          }
        }
      },
      "Dictionary`2": {
        "type": "object",
        "properties": {
          "comparer": {
            "$ref": "#/components/schemas/IEqualityComparer`1"
          },
          "count": {
            "type": "integer",
            "format": "int32",
            "example": "100"
          },
          "capacity": {
            "type": "integer",
            "format": "int32",
            "example": "100"
          },
          "keys": {
            "$ref": "#/components/schemas/KeyCollection"
          },
          "values": {
            "$ref": "#/components/schemas/ValueCollection"
          },
          "item": {
            "type": "string",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          }
        }
      },
      "GetCollectionRequest": {
        "type": "object",
        "properties": {
          "includeCount": {
            "type": "boolean",
            "description": "`true` to return the total number of entries for these filters in the X-listCount header."
          },
          "count": {
            "type": "integer",
            "description": "Maximum number of entities to return. Max 100 per request.",
            "format": "int32"
          },
          "after": {
            "type": "string",
            "description": "For pagination: Use an entityId to filter results to those sorted after that entity",
            "nullable": true
          },
          "before": {
            "type": "string",
            "description": "For pagination: Use an entityId to filter results to those sorted before that entity",
            "nullable": true
          },
          "start": {
            "type": "string",
            "description": "For pagination: Use an entityId to filter results to those sorted after and including that entity",
            "nullable": true
          },
          "skip": {
            "type": "integer",
            "description": "For pagination: A number of records to skip",
            "format": "int32",
            "nullable": true
          },
          "sort": {
            "type": "string",
            "description": "Property name to sort by",
            "nullable": true
          },
          "sortDesc": {
            "type": "boolean",
            "description": "`true` if the sort order should be descending"
          }
        },
        "additionalProperties": false
      },
      "GetDetailsRequest": {
        "type": "object",
        "additionalProperties": false
      },
      "IEqualityComparer`1": {
        "type": "object"
      },
      "IObjectSubset": {
        "type": "object",
        "properties": {
          "attributes": {
            "type": "object",
            "additionalProperties": {
              "nullable": true
            },
            "nullable": true,
            "readOnly": true
          },
          "relationships": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/IObjectSubset"
              },
              "nullable": true
            },
            "nullable": true,
            "readOnly": true
          },
          "meta": {
            "type": "object",
            "additionalProperties": {
              "nullable": true
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Image": {
        "type": "object",
        "properties": {
          "imageId": {
            "type": "string",
            "description": "The primary identifier for this image. Not shown to users.",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "largeUrl": {
            "type": "string",
            "description": "The url to find the to the large size of the image (a rectangle in the same aspect ratio as the original but shrunk to a maximum height and width of 960)"
          },
          "mediumUncroppedUrl": {
            "type": "string",
            "description": "The url to find the to the medium uncropped size of the image (a rectangle in the same aspect ratio as the original but shrunk to a maximum height and width of 256)"
          },
          "mediumUrl": {
            "type": "string",
            "description": "The url to find the to the medium size of the image (256x256)"
          },
          "originalUrl": {
            "type": "string",
            "description": "The url to find the unmodified source of the original image"
          },
          "smallUrl": {
            "type": "string",
            "description": "The url to find the to the small size of the image (128x128)"
          },
          "thumbUrl": {
            "type": "string",
            "description": "The url to find the to the thumb size of the image (48x48)"
          }
        }
      },
      "Inclusions": {
        "type": "object",
        "properties": {
          "include": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "relationshipOnly": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Int64": {
        "type": "object"
      },
      "InventoryLine": {
        "type": "object",
        "properties": {
          "inventoryLineId": {
            "type": "string",
            "description": "The primary identifier for this inventory line. Not shown to users."
          },
          "locationId": {
            "type": "string",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "productId": {
            "type": "string",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "quantityOnHand": {
            "type": "string",
            "description": "The units of this product stored in this location and sublocation in standard unit of measure.",
            "format": "decimal",
            "example": "19.99"
          },
          "serial": {
            "type": "string",
            "description": "The serial number, if it's a serialized product with ```TrackSerials = true``` (other serial numbers will be in other inventory lines)."
          },
          "sublocation": {
            "type": "string",
            "description": "The sublocation (e.g. bin number) where inventory is stored",
            "example": "A-12-B"
          },
          "timestamp": {
            "type": "string",
            "description": "You can optionally include the last-known timestamp when modifying to protect against concurrent modifications.",
            "format": "rowversion",
            "example": "0000000000310AB6"
          },
          "location": {
            "$ref": "#/components/schemas/Location"
          },
          "product": {
            "$ref": "#/components/schemas/Product"
          }
        }
      },
      "ItemBom": {
        "type": "object",
        "properties": {
          "childProductId": {
            "type": "string",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "itemBomId": {
            "type": "string",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "productId": {
            "type": "string",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "quantity": {
            "$ref": "#/components/schemas/QuantityWithUom"
          },
          "timestamp": {
            "type": "string",
            "format": "rowversion",
            "example": "0000000000310AB6"
          },
          "childProduct": {
            "$ref": "#/components/schemas/Product"
          },
          "product": {
            "$ref": "#/components/schemas/Product"
          }
        }
      },
      "KeyCollection": {
        "type": "object",
        "properties": {
          "count": {
            "type": "integer",
            "format": "int32",
            "example": "100"
          }
        }
      },
      "LargeCustomFieldValues": {
        "type": "object",
        "properties": {
          "custom1": {
            "type": "string",
            "description": "The first custom field value (as defined in settings) for this type."
          },
          "custom2": {
            "type": "string",
            "description": "The second custom field value (as defined in settings) for this type."
          },
          "custom3": {
            "type": "string",
            "description": "The third custom field value (as defined in settings) for this type."
          },
          "custom4": {
            "type": "string",
            "description": "The fourth custom field value (as defined in settings) for this type."
          },
          "custom5": {
            "type": "string",
            "description": "The fifth custom field value (as defined in settings) for this type."
          },
          "custom6": {
            "type": "string",
            "description": "The sixth custom field value (as defined in settings) for this type."
          },
          "custom7": {
            "type": "string",
            "description": "The seventh custom field value (as defined in settings) for this type."
          },
          "custom8": {
            "type": "string",
            "description": "The eighth custom field value (as defined in settings) for this type."
          },
          "custom9": {
            "type": "string",
            "description": "The ninth custom field value (as defined in settings) for this type."
          },
          "custom10": {
            "type": "string",
            "description": "The tenth custom field value (as defined in settings) for this type."
          }
        }
      },
      "Location": {
        "type": "object",
        "properties": {
          "address": {
            "$ref": "#/components/schemas/Address"
          },
          "isActive": {
            "type": "boolean",
            "description": "Locations with ```IsActive = false``` are deactivated and hidden away for new usage, but inventory is not removed from that location."
          },
          "isDefault": {
            "type": "boolean",
            "description": "Only one location, your company-wide default, should have ```IsDefault = true```."
          },
          "locationId": {
            "type": "string",
            "description": "The primary identifier for this location. <a href=\"#section/Overview/Write-requests\">When inserting, you should specify this by generating a GUID</a>. Not shown to users",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "name": {
            "type": "string",
            "description": "Human-readable name for this location. A location most typically represents a warehouse or store."
          },
          "timestamp": {
            "type": "string",
            "description": "You can optionally include the last-known timestamp when modifying to protect against concurrent modifications.",
            "format": "rowversion",
            "example": "0000000000310AB6"
          }
        }
      },
      "ManufacturingOrder": {
        "type": "object",
        "properties": {
          "assignedToTeamMemberId": {
            "type": "string",
            "format": "uuid",
            "nullable": true,
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "completedDate": {
            "type": "string",
            "description": "The date this order was completed.",
            "format": "date-time",
            "nullable": true,
            "example": "2020-01-31"
          },
          "currencyId": {
            "type": "string",
            "format": "uuid",
            "nullable": true,
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "customFields": {
            "$ref": "#/components/schemas/LargeCustomFieldValues"
          },
          "dueDate": {
            "type": "string",
            "description": "The due date this order should be completed by.",
            "format": "date-time",
            "nullable": true,
            "example": "2020-01-31"
          },
          "extraCosts": {
            "type": "string",
            "description": "Deprecated - use operation costs instead. Any extra costs for this order, in your home currency.",
            "format": "decimal",
            "nullable": true,
            "example": "19.99"
          },
          "isCancelled": {
            "type": "boolean",
            "description": "Whether this order is cancelled (being cancelled voids any inventory movements)"
          },
          "isCompleted": {
            "type": "boolean",
            "description": "Whether this order is completed (put-away lines do not take effect until completed)"
          },
          "isPrioritized": {
            "type": "boolean",
            "description": "Whether this order is prioritized for completion. (This is a read-only attribute.)"
          },
          "lastModifiedById": {
            "type": "string",
            "description": "The inFlow Team Member, system process, or API key that last modified this manufacture order. This is set automatically, and cannot be set through the API.",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "locationId": {
            "type": "string",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "manufacturingOrderId": {
            "type": "string",
            "description": "The primary identifier for this manufacture order. <a href=\"#section/Overview/Write-requests\">When inserting, you should specify this by generating a GUID</a>. Not shown to users",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "manufacturingOrderNumber": {
            "type": "string",
            "description": "An identifier for this manufacture order and shown on printed documents.",
            "example": "MO-000123"
          },
          "numFinishedProducts": {
            "type": "integer",
            "description": "The total number of finished product (by different kind) of this order",
            "format": "int32",
            "example": "100"
          },
          "orderDate": {
            "type": "string",
            "description": "The date this manufacture order was created.",
            "format": "date-time",
            "example": "2020-01-31"
          },
          "pickRemarks": {
            "type": "string",
            "description": "Any extra comments on this order regarding picking raw materials"
          },
          "primaryFinishedProductId": {
            "type": "string",
            "format": "uuid",
            "nullable": true,
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "putAwayRemarks": {
            "type": "string",
            "description": "Any extra comments on this order regarding putting finished products away"
          },
          "remarks": {
            "type": "string",
            "description": "Any extra comments on this order"
          },
          "splitPartNumber": {
            "type": "integer",
            "description": "Deprecated - to be deleted",
            "format": "int32",
            "nullable": true,
            "example": "100"
          },
          "status": {
            "enum": [
              "Open",
              "InProgress",
              "Completed"
            ],
            "type": "string",
            "description": "The status of this order"
          },
          "timestamp": {
            "type": "string",
            "description": "You can optionally include the last-known timestamp when modifying to protect against concurrent modifications.",
            "format": "rowversion",
            "example": "0000000000310AB6"
          },
          "assignedToTeamMember": {
            "$ref": "#/components/schemas/TeamMember"
          },
          "attachments": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "attachmentId": {
                  "type": "string",
                  "description": "The attachmentId to be fetched.",
                  "format": "uuid",
                  "example": "00000000-0000-0000-0000-000000000000"
                },
                "attachmentUrl": {
                  "type": "string",
                  "description": "The Url associated with the attachment"
                },
                "fileName": {
                  "type": "string",
                  "description": "The human-readable name for this attachment."
                },
                "fileSize": {
                  "$ref": "#/components/schemas/Int64"
                },
                "lastModDttm": {
                  "type": "string",
                  "description": "The DateTimeOffset when this attachment was last modified.",
                  "format": "date-time",
                  "example": "2020-01-31"
                },
                "lastModifiedById": {
                  "type": "string",
                  "description": "The inFlow Team Member, system process, or API key that last modified this attachment.",
                  "format": "uuid",
                  "example": "00000000-0000-0000-0000-000000000000"
                },
                "lastModifiedBy": {
                  "$ref": "#/components/schemas/TeamMember"
                }
              }
            },
            "description": "File attachments included with this manufacturing order. (This is a read-only attribute.)"
          },
          "currency": {
            "$ref": "#/components/schemas/Currency"
          },
          "lastModifiedBy": {
            "$ref": "#/components/schemas/TeamMember"
          },
          "lines": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "description": {
                  "type": "string",
                  "description": "A human-readable description for the product (can be customized specifically this order)"
                },
                "manufacturingOrderId": {
                  "type": "string",
                  "format": "uuid",
                  "example": "00000000-0000-0000-0000-000000000000"
                },
                "manufacturingOrderLineId": {
                  "type": "string",
                  "description": "The primary identifier for this manufacture order line. <a href=\"#section/Overview/Write-requests\">When inserting, you should specify this by generating a GUID</a>. Not shown to users",
                  "format": "uuid",
                  "example": "00000000-0000-0000-0000-000000000000"
                },
                "parentManufacturingOrderLineId": {
                  "type": "string",
                  "format": "uuid",
                  "nullable": true,
                  "example": "00000000-0000-0000-0000-000000000000"
                },
                "productId": {
                  "type": "string",
                  "description": "The assembly being created or raw material being consumed",
                  "format": "uuid",
                  "example": "00000000-0000-0000-0000-000000000000"
                },
                "quantity": {
                  "$ref": "#/components/schemas/QuantityWithUom"
                },
                "timestamp": {
                  "type": "string",
                  "description": "You can optionally include the last-known timestamp when modifying to protect against concurrent modifications.",
                  "format": "rowversion",
                  "example": "0000000000310AB6"
                },
                "manufacturingOrderOperations": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "completedDate": {
                        "type": "string",
                        "description": "The date this operation was completed, or null if it's not completed.",
                        "format": "date-time",
                        "nullable": true,
                        "example": "2020-01-31"
                      },
                      "cost": {
                        "type": "string",
                        "description": "A fixed per-unit operation cost, in home currency.",
                        "format": "decimal",
                        "nullable": true,
                        "example": "19.99"
                      },
                      "estimatedPerHourCost": {
                        "type": "string",
                        "description": "Estimated variable per-hour operation cost, in home currency, e.g. worker salary.",
                        "format": "decimal",
                        "nullable": true,
                        "example": "19.99"
                      },
                      "estimatedSeconds": {
                        "type": "string",
                        "description": "The estimated time required to complete this operation, per-unit.",
                        "format": "decimal",
                        "nullable": true,
                        "example": "19.99"
                      },
                      "instructions": {
                        "type": "string",
                        "description": "Instructions for completing this operation"
                      },
                      "manufacturingOrderOperationId": {
                        "type": "string",
                        "description": "The primary identifier for this manufacturing order operation. <a href=\"#section/Overview/Write-requests\">When inserting, you should specify this by generating a GUID</a>. Not shown to users",
                        "format": "uuid",
                        "example": "00000000-0000-0000-0000-000000000000"
                      },
                      "operationTypeId": {
                        "type": "string",
                        "format": "uuid",
                        "example": "00000000-0000-0000-0000-000000000000"
                      },
                      "remarks": {
                        "type": "string",
                        "description": "Remarks for this operation"
                      },
                      "timestamp": {
                        "type": "string",
                        "description": "You can optionally include the last-known timestamp when modifying to protect against concurrent modifications.",
                        "format": "rowversion",
                        "example": "0000000000310AB6"
                      },
                      "trackTime": {
                        "type": "boolean",
                        "description": "If the operation tracks time."
                      },
                      "manufacturingOrderOperationTimesheets": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "endTime": {
                              "type": "string",
                              "description": "End time for this operation timesheet (if done)",
                              "format": "date-time",
                              "nullable": true,
                              "example": "2020-01-31"
                            },
                            "manufacturingOrderOperationTimesheetId": {
                              "type": "string",
                              "description": "The primary identifier for this manufacturing order operation timesheet. <a href=\"#section/Overview/Write-requests\">When inserting, you should specify this by generating a GUID</a>. Not shown to users",
                              "format": "uuid",
                              "example": "00000000-0000-0000-0000-000000000000"
                            },
                            "perHourCost": {
                              "type": "string",
                              "description": "Estimated variable per-hour operation cost, in home currency, e.g. worker salary.",
                              "format": "decimal",
                              "nullable": true,
                              "example": "19.99"
                            },
                            "startTime": {
                              "type": "string",
                              "description": "Start time for this operation timesheet",
                              "format": "date-time",
                              "example": "2020-01-31"
                            },
                            "timestamp": {
                              "type": "string",
                              "description": "You can optionally include the last-known timestamp when modifying to protect against concurrent modifications.",
                              "format": "rowversion",
                              "example": "0000000000310AB6"
                            },
                            "userId": {
                              "type": "string",
                              "description": "The inFlow Team Member ID that worked on this operation timesheet",
                              "format": "uuid",
                              "nullable": true,
                              "example": "00000000-0000-0000-0000-000000000000"
                            },
                            "user": {
                              "$ref": "#/components/schemas/TeamMember"
                            }
                          }
                        },
                        "description": "Operations (tasks) required to complete this assembly."
                      },
                      "operationType": {
                        "$ref": "#/components/schemas/OperationType"
                      }
                    }
                  },
                  "description": "Operations (tasks) required to complete this assembly."
                },
                "parentManufacturingOrderLine": {
                  "$ref": "#/components/schemas/ManufacturingOrderLine"
                },
                "product": {
                  "$ref": "#/components/schemas/Product"
                }
              }
            },
            "description": "Lines representing the definition of the finished products and raw materials.\nTo specify child lines within these lines, add a property called ```manufacturingOrderLines``` within these lines, an array recursively containing other ManufacturingOrderLines."
          },
          "location": {
            "$ref": "#/components/schemas/Location"
          },
          "pickLines": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "description": {
                  "type": "string",
                  "description": "A human-readable description for the product being picked (can be customized specifically this order)"
                },
                "locationId": {
                  "type": "string",
                  "format": "uuid",
                  "example": "00000000-0000-0000-0000-000000000000"
                },
                "manufacturingOrderId": {
                  "type": "string",
                  "format": "uuid",
                  "example": "00000000-0000-0000-0000-000000000000"
                },
                "manufacturingOrderPickLineId": {
                  "type": "string",
                  "description": "The primary identifier for this manufacture order pick line. <a href=\"#section/Overview/Write-requests\">When inserting, you should specify this by generating a GUID</a>. Not shown to users",
                  "format": "uuid",
                  "example": "00000000-0000-0000-0000-000000000000"
                },
                "pickDate": {
                  "type": "string",
                  "description": "The date that this line was picked",
                  "format": "date-time",
                  "example": "2020-01-31"
                },
                "productId": {
                  "type": "string",
                  "format": "uuid",
                  "example": "00000000-0000-0000-0000-000000000000"
                },
                "quantity": {
                  "$ref": "#/components/schemas/QuantityWithUom"
                },
                "sublocation": {
                  "type": "string",
                  "description": "The sublocation this product is being picked from",
                  "example": "C-19"
                },
                "timestamp": {
                  "type": "string",
                  "description": "You can optionally include the last-known timestamp when modifying to protect against concurrent modifications.",
                  "format": "rowversion",
                  "example": "0000000000310AB6"
                },
                "location": {
                  "$ref": "#/components/schemas/Location"
                },
                "product": {
                  "$ref": "#/components/schemas/Product"
                }
              }
            },
            "description": "Lines representing which raw materials have been picked from your warehouse"
          },
          "pickMatchings": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "lastModifiedById": {
                  "type": "string",
                  "description": "The inFlow Team Member, system process, or API key that last modified this stock transfer. This is set automatically, and cannot be set through the API.",
                  "format": "uuid",
                  "example": "00000000-0000-0000-0000-000000000000"
                },
                "manufacturingOrderId": {
                  "type": "string",
                  "format": "uuid",
                  "example": "00000000-0000-0000-0000-000000000000"
                },
                "manufacturingOrderLineId": {
                  "type": "string",
                  "format": "uuid",
                  "example": "00000000-0000-0000-0000-000000000000"
                },
                "manufacturingOrderPickLineId": {
                  "type": "string",
                  "format": "uuid",
                  "example": "00000000-0000-0000-0000-000000000000"
                },
                "manufacturingOrderPickMatchingId": {
                  "type": "string",
                  "description": "The primary identifier for this manufacturing order pick matching. <a href=\"#section/Overview/Write-requests\">When inserting, you should specify this by generating a GUID</a>. Not shown to users",
                  "format": "uuid",
                  "example": "00000000-0000-0000-0000-000000000000"
                },
                "matchedQuantity": {
                  "type": "string",
                  "format": "decimal",
                  "example": "19.99"
                },
                "serial": {
                  "type": "string"
                },
                "timestamp": {
                  "type": "string",
                  "description": "You can optionally include the last-known timestamp when modifying to protect against concurrent modifications.",
                  "format": "rowversion",
                  "example": "0000000000310AB6"
                },
                "lastModifiedBy": {
                  "$ref": "#/components/schemas/TeamMember"
                },
                "manufacturingOrder": {
                  "$ref": "#/components/schemas/ManufacturingOrder"
                },
                "manufacturingOrderLine": {
                  "$ref": "#/components/schemas/ManufacturingOrderLine"
                },
                "manufacturingOrderPickLine": {
                  "$ref": "#/components/schemas/ManufacturingOrderPickLine"
                }
              }
            },
            "description": "Lines representing which pick lines correspond to which order lines"
          },
          "primaryFinishedProduct": {
            "$ref": "#/components/schemas/Product"
          },
          "putLines": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "description": {
                  "type": "string",
                  "description": "A human-readable description for the product being put away (can be customized specifically this order)"
                },
                "locationId": {
                  "type": "string",
                  "format": "uuid",
                  "example": "00000000-0000-0000-0000-000000000000"
                },
                "manufacturingOrderId": {
                  "type": "string",
                  "format": "uuid",
                  "example": "00000000-0000-0000-0000-000000000000"
                },
                "manufacturingOrderPutLineId": {
                  "type": "string",
                  "description": "The primary identifier for this manufacture order put away line. <a href=\"#section/Overview/Write-requests\">When inserting, you should specify this by generating a GUID</a>. Not shown to users",
                  "format": "uuid",
                  "example": "00000000-0000-0000-0000-000000000000"
                },
                "productId": {
                  "type": "string",
                  "description": "The product that was put away",
                  "format": "uuid",
                  "example": "00000000-0000-0000-0000-000000000000"
                },
                "quantity": {
                  "$ref": "#/components/schemas/QuantityWithUom"
                },
                "sublocation": {
                  "type": "string",
                  "description": "The sublocation this product is being put away into",
                  "example": "C-19"
                },
                "timestamp": {
                  "type": "string",
                  "description": "You can optionally include the last-known timestamp when modifying to protect against concurrent modifications.",
                  "format": "rowversion",
                  "example": "0000000000310AB6"
                },
                "location": {
                  "$ref": "#/components/schemas/Location"
                },
                "product": {
                  "$ref": "#/components/schemas/Product"
                }
              }
            },
            "description": "Lines representing which finished products have been put away"
          }
        }
      },
      "ManufacturingOrderLine": {
        "type": "object",
        "properties": {
          "description": {
            "type": "string",
            "description": "A human-readable description for the product (can be customized specifically this order)"
          },
          "manufacturingOrderId": {
            "type": "string",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "manufacturingOrderLineId": {
            "type": "string",
            "description": "The primary identifier for this manufacture order line. <a href=\"#section/Overview/Write-requests\">When inserting, you should specify this by generating a GUID</a>. Not shown to users",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "parentManufacturingOrderLineId": {
            "type": "string",
            "format": "uuid",
            "nullable": true,
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "productId": {
            "type": "string",
            "description": "The assembly being created or raw material being consumed",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "quantity": {
            "$ref": "#/components/schemas/QuantityWithUom"
          },
          "timestamp": {
            "type": "string",
            "description": "You can optionally include the last-known timestamp when modifying to protect against concurrent modifications.",
            "format": "rowversion",
            "example": "0000000000310AB6"
          },
          "manufacturingOrderOperations": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "completedDate": {
                  "type": "string",
                  "description": "The date this operation was completed, or null if it's not completed.",
                  "format": "date-time",
                  "nullable": true,
                  "example": "2020-01-31"
                },
                "cost": {
                  "type": "string",
                  "description": "A fixed per-unit operation cost, in home currency.",
                  "format": "decimal",
                  "nullable": true,
                  "example": "19.99"
                },
                "estimatedPerHourCost": {
                  "type": "string",
                  "description": "Estimated variable per-hour operation cost, in home currency, e.g. worker salary.",
                  "format": "decimal",
                  "nullable": true,
                  "example": "19.99"
                },
                "estimatedSeconds": {
                  "type": "string",
                  "description": "The estimated time required to complete this operation, per-unit.",
                  "format": "decimal",
                  "nullable": true,
                  "example": "19.99"
                },
                "instructions": {
                  "type": "string",
                  "description": "Instructions for completing this operation"
                },
                "manufacturingOrderOperationId": {
                  "type": "string",
                  "description": "The primary identifier for this manufacturing order operation. <a href=\"#section/Overview/Write-requests\">When inserting, you should specify this by generating a GUID</a>. Not shown to users",
                  "format": "uuid",
                  "example": "00000000-0000-0000-0000-000000000000"
                },
                "operationTypeId": {
                  "type": "string",
                  "format": "uuid",
                  "example": "00000000-0000-0000-0000-000000000000"
                },
                "remarks": {
                  "type": "string",
                  "description": "Remarks for this operation"
                },
                "timestamp": {
                  "type": "string",
                  "description": "You can optionally include the last-known timestamp when modifying to protect against concurrent modifications.",
                  "format": "rowversion",
                  "example": "0000000000310AB6"
                },
                "trackTime": {
                  "type": "boolean",
                  "description": "If the operation tracks time."
                },
                "manufacturingOrderOperationTimesheets": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "endTime": {
                        "type": "string",
                        "description": "End time for this operation timesheet (if done)",
                        "format": "date-time",
                        "nullable": true,
                        "example": "2020-01-31"
                      },
                      "manufacturingOrderOperationTimesheetId": {
                        "type": "string",
                        "description": "The primary identifier for this manufacturing order operation timesheet. <a href=\"#section/Overview/Write-requests\">When inserting, you should specify this by generating a GUID</a>. Not shown to users",
                        "format": "uuid",
                        "example": "00000000-0000-0000-0000-000000000000"
                      },
                      "perHourCost": {
                        "type": "string",
                        "description": "Estimated variable per-hour operation cost, in home currency, e.g. worker salary.",
                        "format": "decimal",
                        "nullable": true,
                        "example": "19.99"
                      },
                      "startTime": {
                        "type": "string",
                        "description": "Start time for this operation timesheet",
                        "format": "date-time",
                        "example": "2020-01-31"
                      },
                      "timestamp": {
                        "type": "string",
                        "description": "You can optionally include the last-known timestamp when modifying to protect against concurrent modifications.",
                        "format": "rowversion",
                        "example": "0000000000310AB6"
                      },
                      "userId": {
                        "type": "string",
                        "description": "The inFlow Team Member ID that worked on this operation timesheet",
                        "format": "uuid",
                        "nullable": true,
                        "example": "00000000-0000-0000-0000-000000000000"
                      },
                      "user": {
                        "$ref": "#/components/schemas/TeamMember"
                      }
                    }
                  },
                  "description": "Operations (tasks) required to complete this assembly."
                },
                "operationType": {
                  "$ref": "#/components/schemas/OperationType"
                }
              }
            },
            "description": "Operations (tasks) required to complete this assembly."
          },
          "parentManufacturingOrderLine": {
            "$ref": "#/components/schemas/ManufacturingOrderLine"
          },
          "product": {
            "$ref": "#/components/schemas/Product"
          }
        }
      },
      "ManufacturingOrderOperation": {
        "type": "object",
        "properties": {
          "completedDate": {
            "type": "string",
            "description": "The date this operation was completed, or null if it's not completed.",
            "format": "date-time",
            "nullable": true,
            "example": "2020-01-31"
          },
          "cost": {
            "type": "string",
            "description": "A fixed per-unit operation cost, in home currency.",
            "format": "decimal",
            "nullable": true,
            "example": "19.99"
          },
          "estimatedPerHourCost": {
            "type": "string",
            "description": "Estimated variable per-hour operation cost, in home currency, e.g. worker salary.",
            "format": "decimal",
            "nullable": true,
            "example": "19.99"
          },
          "estimatedSeconds": {
            "type": "string",
            "description": "The estimated time required to complete this operation, per-unit.",
            "format": "decimal",
            "nullable": true,
            "example": "19.99"
          },
          "instructions": {
            "type": "string",
            "description": "Instructions for completing this operation"
          },
          "manufacturingOrderOperationId": {
            "type": "string",
            "description": "The primary identifier for this manufacturing order operation. <a href=\"#section/Overview/Write-requests\">When inserting, you should specify this by generating a GUID</a>. Not shown to users",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "operationTypeId": {
            "type": "string",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "remarks": {
            "type": "string",
            "description": "Remarks for this operation"
          },
          "timestamp": {
            "type": "string",
            "description": "You can optionally include the last-known timestamp when modifying to protect against concurrent modifications.",
            "format": "rowversion",
            "example": "0000000000310AB6"
          },
          "trackTime": {
            "type": "boolean",
            "description": "If the operation tracks time."
          },
          "manufacturingOrderOperationTimesheets": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "endTime": {
                  "type": "string",
                  "description": "End time for this operation timesheet (if done)",
                  "format": "date-time",
                  "nullable": true,
                  "example": "2020-01-31"
                },
                "manufacturingOrderOperationTimesheetId": {
                  "type": "string",
                  "description": "The primary identifier for this manufacturing order operation timesheet. <a href=\"#section/Overview/Write-requests\">When inserting, you should specify this by generating a GUID</a>. Not shown to users",
                  "format": "uuid",
                  "example": "00000000-0000-0000-0000-000000000000"
                },
                "perHourCost": {
                  "type": "string",
                  "description": "Estimated variable per-hour operation cost, in home currency, e.g. worker salary.",
                  "format": "decimal",
                  "nullable": true,
                  "example": "19.99"
                },
                "startTime": {
                  "type": "string",
                  "description": "Start time for this operation timesheet",
                  "format": "date-time",
                  "example": "2020-01-31"
                },
                "timestamp": {
                  "type": "string",
                  "description": "You can optionally include the last-known timestamp when modifying to protect against concurrent modifications.",
                  "format": "rowversion",
                  "example": "0000000000310AB6"
                },
                "userId": {
                  "type": "string",
                  "description": "The inFlow Team Member ID that worked on this operation timesheet",
                  "format": "uuid",
                  "nullable": true,
                  "example": "00000000-0000-0000-0000-000000000000"
                },
                "user": {
                  "$ref": "#/components/schemas/TeamMember"
                }
              }
            },
            "description": "Operations (tasks) required to complete this assembly."
          },
          "operationType": {
            "$ref": "#/components/schemas/OperationType"
          }
        }
      },
      "ManufacturingOrderOperationTimesheet": {
        "type": "object",
        "properties": {
          "endTime": {
            "type": "string",
            "description": "End time for this operation timesheet (if done)",
            "format": "date-time",
            "nullable": true,
            "example": "2020-01-31"
          },
          "manufacturingOrderOperationTimesheetId": {
            "type": "string",
            "description": "The primary identifier for this manufacturing order operation timesheet. <a href=\"#section/Overview/Write-requests\">When inserting, you should specify this by generating a GUID</a>. Not shown to users",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "perHourCost": {
            "type": "string",
            "description": "Estimated variable per-hour operation cost, in home currency, e.g. worker salary.",
            "format": "decimal",
            "nullable": true,
            "example": "19.99"
          },
          "startTime": {
            "type": "string",
            "description": "Start time for this operation timesheet",
            "format": "date-time",
            "example": "2020-01-31"
          },
          "timestamp": {
            "type": "string",
            "description": "You can optionally include the last-known timestamp when modifying to protect against concurrent modifications.",
            "format": "rowversion",
            "example": "0000000000310AB6"
          },
          "userId": {
            "type": "string",
            "description": "The inFlow Team Member ID that worked on this operation timesheet",
            "format": "uuid",
            "nullable": true,
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "user": {
            "$ref": "#/components/schemas/TeamMember"
          }
        }
      },
      "ManufacturingOrderPickLine": {
        "type": "object",
        "properties": {
          "description": {
            "type": "string",
            "description": "A human-readable description for the product being picked (can be customized specifically this order)"
          },
          "locationId": {
            "type": "string",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "manufacturingOrderId": {
            "type": "string",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "manufacturingOrderPickLineId": {
            "type": "string",
            "description": "The primary identifier for this manufacture order pick line. <a href=\"#section/Overview/Write-requests\">When inserting, you should specify this by generating a GUID</a>. Not shown to users",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "pickDate": {
            "type": "string",
            "description": "The date that this line was picked",
            "format": "date-time",
            "example": "2020-01-31"
          },
          "productId": {
            "type": "string",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "quantity": {
            "$ref": "#/components/schemas/QuantityWithUom"
          },
          "sublocation": {
            "type": "string",
            "description": "The sublocation this product is being picked from",
            "example": "C-19"
          },
          "timestamp": {
            "type": "string",
            "description": "You can optionally include the last-known timestamp when modifying to protect against concurrent modifications.",
            "format": "rowversion",
            "example": "0000000000310AB6"
          },
          "location": {
            "$ref": "#/components/schemas/Location"
          },
          "product": {
            "$ref": "#/components/schemas/Product"
          }
        }
      },
      "ManufacturingOrderPickMatching": {
        "type": "object",
        "properties": {
          "lastModifiedById": {
            "type": "string",
            "description": "The inFlow Team Member, system process, or API key that last modified this stock transfer. This is set automatically, and cannot be set through the API.",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "manufacturingOrderId": {
            "type": "string",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "manufacturingOrderLineId": {
            "type": "string",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "manufacturingOrderPickLineId": {
            "type": "string",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "manufacturingOrderPickMatchingId": {
            "type": "string",
            "description": "The primary identifier for this manufacturing order pick matching. <a href=\"#section/Overview/Write-requests\">When inserting, you should specify this by generating a GUID</a>. Not shown to users",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "matchedQuantity": {
            "type": "string",
            "format": "decimal",
            "example": "19.99"
          },
          "serial": {
            "type": "string"
          },
          "timestamp": {
            "type": "string",
            "description": "You can optionally include the last-known timestamp when modifying to protect against concurrent modifications.",
            "format": "rowversion",
            "example": "0000000000310AB6"
          },
          "lastModifiedBy": {
            "$ref": "#/components/schemas/TeamMember"
          },
          "manufacturingOrder": {
            "$ref": "#/components/schemas/ManufacturingOrder"
          },
          "manufacturingOrderLine": {
            "$ref": "#/components/schemas/ManufacturingOrderLine"
          },
          "manufacturingOrderPickLine": {
            "$ref": "#/components/schemas/ManufacturingOrderPickLine"
          }
        }
      },
      "ManufacturingOrderPutLine": {
        "type": "object",
        "properties": {
          "description": {
            "type": "string",
            "description": "A human-readable description for the product being put away (can be customized specifically this order)"
          },
          "locationId": {
            "type": "string",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "manufacturingOrderId": {
            "type": "string",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "manufacturingOrderPutLineId": {
            "type": "string",
            "description": "The primary identifier for this manufacture order put away line. <a href=\"#section/Overview/Write-requests\">When inserting, you should specify this by generating a GUID</a>. Not shown to users",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "productId": {
            "type": "string",
            "description": "The product that was put away",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "quantity": {
            "$ref": "#/components/schemas/QuantityWithUom"
          },
          "sublocation": {
            "type": "string",
            "description": "The sublocation this product is being put away into",
            "example": "C-19"
          },
          "timestamp": {
            "type": "string",
            "description": "You can optionally include the last-known timestamp when modifying to protect against concurrent modifications.",
            "format": "rowversion",
            "example": "0000000000310AB6"
          },
          "location": {
            "$ref": "#/components/schemas/Location"
          },
          "product": {
            "$ref": "#/components/schemas/Product"
          }
        }
      },
      "NewSavedReportSettings": {
        "type": "object",
        "properties": {
          "createdUserId": {
            "type": "string",
            "description": "The ID of the user that created the report",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "customReportId": {
            "type": "string",
            "description": "The custom report ID (if it is a custom report)",
            "format": "uuid",
            "nullable": true,
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "description": {
            "type": "string",
            "description": "The description of the report"
          },
          "isShared": {
            "type": "boolean",
            "description": "Whether the report is shared with the company"
          },
          "lastModifiedById": {
            "type": "string",
            "description": "The inFlow Team Member, system process, or API key that last modified this sales order. This is set automatically, and cannot be set through the API.",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "name": {
            "type": "string",
            "description": "The name of the report"
          },
          "newSavedReportSettingsId": {
            "type": "string",
            "description": "The primary identifier for the saved report. <a href=\"#section/Overview/Write-requests\">When inserting, you should specify this by generating a GUID</a>. Not shown to users",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "reportType": {
            "type": "string",
            "description": "The standard report type"
          },
          "timestamp": {
            "type": "string",
            "description": "You can optionally include the last-known timestamp when modifying to protect against concurrent modifications.",
            "format": "rowversion",
            "example": "0000000000310AB6"
          },
          "createdUser": {
            "$ref": "#/components/schemas/TeamMember"
          },
          "lastModifiedBy": {
            "$ref": "#/components/schemas/TeamMember"
          }
        }
      },
      "OperationType": {
        "type": "object",
        "properties": {
          "estimatedPerHourCost": {
            "type": "string",
            "description": "The estimated per-hour cost (typically labor) when this manufacturing operation is performed. Only visible to those with cost access rights. This can be overridden by more specific user or operation costs.",
            "format": "decimal",
            "nullable": true,
            "example": "19.99"
          },
          "isActive": {
            "type": "boolean",
            "description": "Operation types with ```IsActive = false``` are deactivated and hidden away for new usage."
          },
          "isDefault": {
            "type": "boolean",
            "description": "Only one operation type, your company-wide default, should have ```IsDefault = true```."
          },
          "name": {
            "type": "string",
            "description": "Operation type name (human-readable)",
            "example": "Assembly"
          },
          "operationTypeId": {
            "type": "string",
            "description": "The primary identifier for this operation type. Not shown to users",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "timestamp": {
            "type": "string",
            "description": "You can optionally include the last-known timestamp when modifying to protect against concurrent modifications.",
            "format": "rowversion",
            "example": "0000000000310AB6"
          },
          "trackTime": {
            "type": "boolean",
            "description": "Whether the operation should track the time spent on it. If true, users will be able to log time against this operation when performing work orders."
          }
        }
      },
      "OperationTypeObjectSubset": {
        "type": "object",
        "properties": {
          "attributes": {
            "type": "object",
            "additionalProperties": {
              "nullable": true
            },
            "nullable": true
          },
          "relationships": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/IObjectSubset"
              },
              "nullable": true
            },
            "nullable": true
          },
          "meta": {
            "type": "object",
            "additionalProperties": {
              "nullable": true
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "PaymentTerms": {
        "type": "object",
        "properties": {
          "daysDue": {
            "type": "integer",
            "description": "How many days from invoice until the payment is due",
            "format": "int32",
            "example": 30
          },
          "isActive": {
            "type": "boolean",
            "description": "Payment terms ```IsActive = false``` are deactivated and hidden away for new usage."
          },
          "name": {
            "type": "string",
            "description": "Payment terms name (human-readable, typically include how many days until due)",
            "example": "NET 30"
          },
          "paymentTermsId": {
            "type": "string",
            "description": "The primary identifier for these payment terms. Not shown to users",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "timestamp": {
            "type": "string",
            "description": "You can optionally include the last-known timestamp when modifying to protect against concurrent modifications.",
            "format": "rowversion",
            "example": "0000000000310AB6"
          }
        }
      },
      "PercentOrFixedAmount": {
        "type": "object",
        "properties": {
          "value": {
            "type": "string",
            "description": "Numerical value",
            "format": "decimal",
            "example": "19.99"
          },
          "isPercent": {
            "type": "boolean",
            "description": "If ```true```, interpret the ```Value``` as a percentage, otherwise, as a currency amount"
          }
        }
      },
      "PricingScheme": {
        "type": "object",
        "properties": {
          "currencyId": {
            "type": "string",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "isActive": {
            "type": "boolean",
            "description": "Pricing schemes with ```IsActive = false``` are deactivated and hidden away for new usage."
          },
          "isDefault": {
            "type": "boolean",
            "description": "Only one pricing scheme, your company-wide default, should have ```IsDefault = true```."
          },
          "isTaxInclusive": {
            "type": "boolean",
            "description": "Set ```IsTaxInclusive``` if prices should be interpreted as tax-inclusive, otherwise tax will be added on top of listed prices."
          },
          "name": {
            "type": "string",
            "description": "Human-readable name for this pricing scheme. Not shown to customers on invoices, etc.",
            "example": "Retail price"
          },
          "pricingSchemeId": {
            "type": "string",
            "description": "The primary identifier for this pricing scheme. Not shown to users",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "timestamp": {
            "type": "string",
            "description": "You can optionally include the last-known timestamp when modifying to protect against concurrent modifications.",
            "format": "rowversion",
            "example": "0000000000310AB6"
          },
          "currency": {
            "$ref": "#/components/schemas/Currency"
          },
          "productPrices": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "fixedMarkup": {
                  "type": "string",
                  "description": "For FixedMarkup, the percentage markup over the product cost. For FixedPrice, empty.",
                  "format": "decimal",
                  "nullable": true,
                  "example": "19.99"
                },
                "priceType": {
                  "enum": [
                    "FixedPrice",
                    "FixedMarkup"
                  ],
                  "type": "string",
                  "description": "Most commonly ```FixedPrice``` for a set price, or ```FixedMarkup``` to automatically fluctuate as a markup over the product cost."
                },
                "pricingSchemeId": {
                  "type": "string",
                  "format": "uuid",
                  "example": "00000000-0000-0000-0000-000000000000"
                },
                "productId": {
                  "type": "string",
                  "format": "uuid",
                  "example": "00000000-0000-0000-0000-000000000000"
                },
                "productPriceId": {
                  "type": "string",
                  "description": "The primary identifier for this product price. <a href=\"#section/Overview/Write-requests\">When inserting, you should specify this by generating a GUID</a>. Not shown to users",
                  "format": "uuid",
                  "example": "00000000-0000-0000-0000-000000000000"
                },
                "timestamp": {
                  "type": "string",
                  "description": "You can optionally include the last-known timestamp when modifying to protect against concurrent modifications.",
                  "format": "rowversion",
                  "example": "0000000000310AB6"
                },
                "unitPrice": {
                  "type": "string",
                  "description": "For FixedPrice, the price for 1 sales unit of measure in the pricing scheme's currency. For FixedMarkup, empty.",
                  "format": "decimal",
                  "nullable": true,
                  "example": "19.99"
                },
                "pricingScheme": {
                  "$ref": "#/components/schemas/PricingScheme"
                },
                "product": {
                  "$ref": "#/components/schemas/Product"
                }
              }
            },
            "description": "The list of prices under this pricing scheme."
          }
        }
      },
      "Product": {
        "type": "object",
        "properties": {
          "autoAssemble": {
            "type": "boolean",
            "description": "Only relevant for products with a bill of materials.  Whether this product should be automatically by manufacture order when it's picked from a location where it's not in stock."
          },
          "categoryId": {
            "type": "string",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "createdDttm": {
            "type": "string",
            "description": "Created datetime of this product.",
            "format": "date-time",
            "example": "2020-01-31"
          },
          "customFields": {
            "$ref": "#/components/schemas/LargeCustomFieldValues"
          },
          "defaultImageId": {
            "type": "string",
            "format": "uuid",
            "nullable": true,
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "description": {
            "type": "string",
            "description": "A human-readable description for this product.",
            "example": "Red toy sports car"
          },
          "height": {
            "type": "string",
            "description": "Height of this product (unit depends on global setting)",
            "format": "decimal",
            "nullable": true,
            "example": "19.99"
          },
          "hsTariffNumber": {
            "type": "string",
            "description": "Harmonized Tariff Schedule code for customs when exporting this item.  Used to pre-fill for customs forms when shipping."
          },
          "includeQuantityBuildable": {
            "type": "boolean",
            "description": "Only relevant for products with a bill of materials.  Whether this product should add the Quantity Buildable when showing quantities."
          },
          "isActive": {
            "type": "boolean",
            "description": "Products with ```IsActive = false``` are deactivated and hidden away for future usage."
          },
          "isManufacturable": {
            "type": "boolean",
            "description": "Whether this product can be manufactured. This is a read-only property that is calculated based on whether this product has a bill of materials defined."
          },
          "itemType": {
            "enum": [
              "StockedProduct",
              "NonstockedProduct",
              "Service"
            ],
            "type": "string",
            "description": "The type of this item. Cannot be changed once set. Stocked Product is most common."
          },
          "lastModifiedById": {
            "type": "string",
            "description": "The inFlow Team Member, system process, or API key that last modified this product. This is set automatically, and cannot be set through the API.",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "lastModifiedDateTime": {
            "type": "string",
            "description": "Last modified datetime of this product.",
            "format": "date-time",
            "example": "2020-01-31"
          },
          "lastVendorId": {
            "type": "string",
            "format": "uuid",
            "nullable": true,
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "length": {
            "type": "string",
            "description": "Length of this product (unit depends on global setting)",
            "format": "decimal",
            "nullable": true,
            "example": "19.99"
          },
          "name": {
            "type": "string",
            "description": "An item name or title that should be human readable. Must be unique.",
            "example": "1948 6\" Toy Car - Red"
          },
          "originCountry": {
            "type": "string",
            "description": "2-character country code for country of origin.  Used to pre-fill for customs forms when shipping."
          },
          "productId": {
            "type": "string",
            "description": "The primary identifier for this product. <a href=\"#section/Overview/Write-requests\">When inserting, you should specify this by generating a GUID</a>. Not shown to users",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "purchasingUom": {
            "$ref": "#/components/schemas/UnitOfMeasure"
          },
          "remarks": {
            "type": "string",
            "description": "A space for any extra remarks about this product."
          },
          "salesUom": {
            "$ref": "#/components/schemas/UnitOfMeasure"
          },
          "sku": {
            "type": "string",
            "description": "A SKU (stock-keeping-unit) code that represents a product in a concise, machine-friendly, way. Optional, but must be unique if specified.",
            "example": "CAR-1948-R"
          },
          "standardUomName": {
            "type": "string",
            "description": "Standard unit of measure for tracking this product",
            "example": "\"ea.\""
          },
          "timestamp": {
            "type": "string",
            "description": "You can optionally include the last-known timestamp when modifying to protect against concurrent modifications.",
            "format": "rowversion",
            "example": "0000000000310AB6"
          },
          "totalQuantityOnHand": {
            "type": "string",
            "description": "The total inventory quantity on hand across all locations for this product.  Note that the InventoryLines relationship must be included for this attribute to be populated.",
            "format": "decimal",
            "example": "19.99"
          },
          "trackSerials": {
            "type": "boolean",
            "description": "Whether this product requires serial numbers. Cannot be changed once set. Only possible for Stocked Products."
          },
          "weight": {
            "type": "string",
            "description": "Weight of this product (unit depends on global setting)",
            "format": "decimal",
            "nullable": true,
            "example": "19.99"
          },
          "width": {
            "type": "string",
            "description": "Width of this product (unit depends on global setting)",
            "format": "decimal",
            "nullable": true,
            "example": "19.99"
          },
          "attachments": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "attachmentId": {
                  "type": "string",
                  "description": "The attachmentId to be fetched.",
                  "format": "uuid",
                  "example": "00000000-0000-0000-0000-000000000000"
                },
                "attachmentUrl": {
                  "type": "string",
                  "description": "The Url associated with the attachment"
                },
                "fileName": {
                  "type": "string",
                  "description": "The human-readable name for this attachment."
                },
                "fileSize": {
                  "$ref": "#/components/schemas/Int64"
                },
                "lastModDttm": {
                  "type": "string",
                  "description": "The DateTimeOffset when this attachment was last modified.",
                  "format": "date-time",
                  "example": "2020-01-31"
                },
                "lastModifiedById": {
                  "type": "string",
                  "description": "The inFlow Team Member, system process, or API key that last modified this attachment.",
                  "format": "uuid",
                  "example": "00000000-0000-0000-0000-000000000000"
                },
                "lastModifiedBy": {
                  "$ref": "#/components/schemas/TeamMember"
                }
              }
            },
            "description": "File attachments included with this customer. (This is a read-only attribute.)"
          },
          "category": {
            "$ref": "#/components/schemas/Category"
          },
          "cost": {
            "$ref": "#/components/schemas/ProductCost"
          },
          "defaultImage": {
            "$ref": "#/components/schemas/Image"
          },
          "defaultPrice": {
            "$ref": "#/components/schemas/ProductPrice"
          },
          "images": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "imageId": {
                  "type": "string",
                  "description": "The primary identifier for this image. Not shown to users.",
                  "format": "uuid",
                  "example": "00000000-0000-0000-0000-000000000000"
                },
                "largeUrl": {
                  "type": "string",
                  "description": "The url to find the to the large size of the image (a rectangle in the same aspect ratio as the original but shrunk to a maximum height and width of 960)"
                },
                "mediumUncroppedUrl": {
                  "type": "string",
                  "description": "The url to find the to the medium uncropped size of the image (a rectangle in the same aspect ratio as the original but shrunk to a maximum height and width of 256)"
                },
                "mediumUrl": {
                  "type": "string",
                  "description": "The url to find the to the medium size of the image (256x256)"
                },
                "originalUrl": {
                  "type": "string",
                  "description": "The url to find the unmodified source of the original image"
                },
                "smallUrl": {
                  "type": "string",
                  "description": "The url to find the to the small size of the image (128x128)"
                },
                "thumbUrl": {
                  "type": "string",
                  "description": "The url to find the to the thumb size of the image (48x48)"
                }
              }
            }
          },
          "inventoryLines": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "inventoryLineId": {
                  "type": "string",
                  "description": "The primary identifier for this inventory line. Not shown to users."
                },
                "locationId": {
                  "type": "string",
                  "format": "uuid",
                  "example": "00000000-0000-0000-0000-000000000000"
                },
                "productId": {
                  "type": "string",
                  "format": "uuid",
                  "example": "00000000-0000-0000-0000-000000000000"
                },
                "quantityOnHand": {
                  "type": "string",
                  "description": "The units of this product stored in this location and sublocation in standard unit of measure.",
                  "format": "decimal",
                  "example": "19.99"
                },
                "serial": {
                  "type": "string",
                  "description": "The serial number, if it's a serialized product with ```TrackSerials = true``` (other serial numbers will be in other inventory lines)."
                },
                "sublocation": {
                  "type": "string",
                  "description": "The sublocation (e.g. bin number) where inventory is stored",
                  "example": "A-12-B"
                },
                "timestamp": {
                  "type": "string",
                  "description": "You can optionally include the last-known timestamp when modifying to protect against concurrent modifications.",
                  "format": "rowversion",
                  "example": "0000000000310AB6"
                },
                "location": {
                  "$ref": "#/components/schemas/Location"
                },
                "product": {
                  "$ref": "#/components/schemas/Product"
                }
              }
            }
          },
          "itemBoms": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "childProductId": {
                  "type": "string",
                  "format": "uuid",
                  "example": "00000000-0000-0000-0000-000000000000"
                },
                "itemBomId": {
                  "type": "string",
                  "format": "uuid",
                  "example": "00000000-0000-0000-0000-000000000000"
                },
                "productId": {
                  "type": "string",
                  "format": "uuid",
                  "example": "00000000-0000-0000-0000-000000000000"
                },
                "quantity": {
                  "$ref": "#/components/schemas/QuantityWithUom"
                },
                "timestamp": {
                  "type": "string",
                  "format": "rowversion",
                  "example": "0000000000310AB6"
                },
                "childProduct": {
                  "$ref": "#/components/schemas/Product"
                },
                "product": {
                  "$ref": "#/components/schemas/Product"
                }
              }
            }
          },
          "lastModifiedBy": {
            "$ref": "#/components/schemas/TeamMember"
          },
          "lastVendor": {
            "$ref": "#/components/schemas/Vendor"
          },
          "prices": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "fixedMarkup": {
                  "type": "string",
                  "description": "For FixedMarkup, the percentage markup over the product cost. For FixedPrice, empty.",
                  "format": "decimal",
                  "nullable": true,
                  "example": "19.99"
                },
                "priceType": {
                  "enum": [
                    "FixedPrice",
                    "FixedMarkup"
                  ],
                  "type": "string",
                  "description": "Most commonly ```FixedPrice``` for a set price, or ```FixedMarkup``` to automatically fluctuate as a markup over the product cost."
                },
                "pricingSchemeId": {
                  "type": "string",
                  "format": "uuid",
                  "example": "00000000-0000-0000-0000-000000000000"
                },
                "productId": {
                  "type": "string",
                  "format": "uuid",
                  "example": "00000000-0000-0000-0000-000000000000"
                },
                "productPriceId": {
                  "type": "string",
                  "description": "The primary identifier for this product price. <a href=\"#section/Overview/Write-requests\">When inserting, you should specify this by generating a GUID</a>. Not shown to users",
                  "format": "uuid",
                  "example": "00000000-0000-0000-0000-000000000000"
                },
                "timestamp": {
                  "type": "string",
                  "description": "You can optionally include the last-known timestamp when modifying to protect against concurrent modifications.",
                  "format": "rowversion",
                  "example": "0000000000310AB6"
                },
                "unitPrice": {
                  "type": "string",
                  "description": "For FixedPrice, the price for 1 sales unit of measure in the pricing scheme's currency. For FixedMarkup, empty.",
                  "format": "decimal",
                  "nullable": true,
                  "example": "19.99"
                },
                "pricingScheme": {
                  "$ref": "#/components/schemas/PricingScheme"
                },
                "product": {
                  "$ref": "#/components/schemas/Product"
                }
              }
            }
          },
          "productBarcodes": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "barcode": {
                  "type": "string",
                  "description": "The numeric or text value of this barcode value."
                },
                "lineNum": {
                  "type": "integer",
                  "format": "int32",
                  "example": "100"
                },
                "productBarcodeId": {
                  "type": "string",
                  "format": "uuid",
                  "example": "00000000-0000-0000-0000-000000000000"
                },
                "productId": {
                  "type": "string",
                  "format": "uuid",
                  "example": "00000000-0000-0000-0000-000000000000"
                },
                "timestamp": {
                  "type": "string",
                  "format": "rowversion",
                  "example": "0000000000310AB6"
                },
                "product": {
                  "$ref": "#/components/schemas/Product"
                }
              }
            }
          },
          "productOperations": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "cost": {
                  "type": "string",
                  "description": "A fixed per-unit operation cost, in home currency.",
                  "format": "decimal",
                  "nullable": true,
                  "example": "19.99"
                },
                "estimatedPerHourCost": {
                  "type": "string",
                  "description": "Variable per-hour operation cost, in home currency, e.g. worker salary",
                  "format": "decimal",
                  "nullable": true,
                  "example": "19.99"
                },
                "estimatedSeconds": {
                  "type": "string",
                  "description": "An estimate of time required to complete this operation. Used together with PerHourCost in calculating the operation costs.",
                  "format": "decimal",
                  "nullable": true,
                  "example": "19.99"
                },
                "instructions": {
                  "type": "string"
                },
                "lineNum": {
                  "type": "integer",
                  "format": "int32",
                  "example": "100"
                },
                "operationTypeId": {
                  "type": "string",
                  "format": "uuid",
                  "example": "00000000-0000-0000-0000-000000000000"
                },
                "productId": {
                  "type": "string",
                  "format": "uuid",
                  "example": "00000000-0000-0000-0000-000000000000"
                },
                "productOperationId": {
                  "type": "string",
                  "format": "uuid",
                  "example": "00000000-0000-0000-0000-000000000000"
                },
                "timestamp": {
                  "type": "string",
                  "format": "rowversion",
                  "example": "0000000000310AB6"
                },
                "trackTime": {
                  "type": "boolean"
                },
                "operationType": {
                  "$ref": "#/components/schemas/OperationType"
                },
                "product": {
                  "$ref": "#/components/schemas/Product"
                }
              }
            }
          },
          "productVariant": {
            "$ref": "#/components/schemas/ProductVariant"
          },
          "reorderSettings": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "defaultSublocation": {
                  "type": "string",
                  "description": "The default sublocation this product will be received into for this location."
                },
                "enableReordering": {
                  "type": "boolean",
                  "description": "When ```true```, reordering is enabled. When ```false```, reordering is explicitly disabled. When ```null```, then the user will be prompted to set up reorder settings if the product has insufficient stock for current orders.",
                  "nullable": true
                },
                "fromLocationId": {
                  "type": "string",
                  "format": "uuid",
                  "nullable": true,
                  "example": "00000000-0000-0000-0000-000000000000"
                },
                "locationId": {
                  "type": "string",
                  "format": "uuid",
                  "example": "00000000-0000-0000-0000-000000000000"
                },
                "productId": {
                  "type": "string",
                  "format": "uuid",
                  "example": "00000000-0000-0000-0000-000000000000"
                },
                "reorderMethod": {
                  "enum": [
                    "PurchaseOrder",
                    "WorkOrder",
                    "StockTransfer"
                  ],
                  "type": "string",
                  "description": "The method by which this product should be reordered when low in stock (PurchaseOrder, WorkOrder, or StockTransfer)"
                },
                "reorderPoint": {
                  "type": "string",
                  "description": "If stock levels (including pending orders) fall below the reorder point, then inFlow will suggest replenishing this item in this location.  Ignored if EnableReordering is ```false```.",
                  "format": "decimal",
                  "example": "19.99"
                },
                "reorderQuantity": {
                  "type": "string",
                  "description": "This is the minimum units of the product which will be reordered for this location when the quantity falls below the reorder point.",
                  "format": "decimal",
                  "nullable": true,
                  "example": "19.99"
                },
                "reorderSettingsId": {
                  "type": "string",
                  "description": "The primary identifier for this reorder settings. <a href=\"#section/Overview/Write-requests\">When inserting, you should specify this by generating a GUID</a>. Not shown to users",
                  "format": "uuid",
                  "example": "00000000-0000-0000-0000-000000000000"
                },
                "timestamp": {
                  "type": "string",
                  "description": "You can optionally include the last-known timestamp when modifying to protect against concurrent modifications.",
                  "format": "rowversion",
                  "example": "0000000000310AB6"
                },
                "vendorId": {
                  "type": "string",
                  "format": "uuid",
                  "nullable": true,
                  "example": "00000000-0000-0000-0000-000000000000"
                },
                "fromLocation": {
                  "$ref": "#/components/schemas/Location"
                },
                "location": {
                  "$ref": "#/components/schemas/Location"
                },
                "product": {
                  "$ref": "#/components/schemas/Product"
                },
                "vendor": {
                  "$ref": "#/components/schemas/Vendor"
                }
              }
            }
          },
          "taxCodes": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "productId": {
                  "type": "string",
                  "format": "uuid",
                  "example": "00000000-0000-0000-0000-000000000000"
                },
                "productTaxCodeId": {
                  "type": "string",
                  "description": "The primary identifier for this product tax code. <a href=\"#section/Overview/Write-requests\">When inserting, you should specify this by generating a GUID</a>. Not shown to users",
                  "format": "uuid",
                  "example": "00000000-0000-0000-0000-000000000000"
                },
                "taxCodeId": {
                  "type": "string",
                  "format": "uuid",
                  "nullable": true,
                  "example": "00000000-0000-0000-0000-000000000000"
                },
                "taxingSchemeId": {
                  "type": "string",
                  "format": "uuid",
                  "example": "00000000-0000-0000-0000-000000000000"
                },
                "timestamp": {
                  "type": "string",
                  "description": "You can optionally include the last-known timestamp when modifying to protect against concurrent modifications.",
                  "format": "rowversion",
                  "example": "0000000000310AB6"
                },
                "product": {
                  "$ref": "#/components/schemas/Product"
                },
                "taxCode": {
                  "$ref": "#/components/schemas/TaxCode"
                },
                "taxingScheme": {
                  "$ref": "#/components/schemas/TaxingScheme"
                }
              }
            }
          },
          "vendorItems": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "cost": {
                  "type": "string",
                  "description": "The cost for 1 purchasing unit of measure of this item, in the vendor's currency.",
                  "format": "decimal",
                  "nullable": true,
                  "example": 19.99
                },
                "leadTimeDays": {
                  "type": "integer",
                  "description": "The lead time for this product and vendor in days.  If blank, it falls back to the vendor's default lead time.",
                  "format": "int32",
                  "nullable": true,
                  "example": "100"
                },
                "lineNum": {
                  "type": "integer",
                  "description": "The order by which this vendor item is sorted",
                  "format": "int32",
                  "nullable": true,
                  "example": "100"
                },
                "productId": {
                  "type": "string",
                  "format": "uuid",
                  "example": "00000000-0000-0000-0000-000000000000"
                },
                "timestamp": {
                  "type": "string",
                  "description": "You can optionally include the last-known timestamp when modifying to protect against concurrent modifications.",
                  "format": "rowversion",
                  "example": "0000000000310AB6"
                },
                "vendorId": {
                  "type": "string",
                  "format": "uuid",
                  "example": "00000000-0000-0000-0000-000000000000"
                },
                "vendorItemCode": {
                  "type": "string",
                  "description": "The code by which this vendor refers to this item",
                  "example": "ABC-123"
                },
                "vendorItemId": {
                  "type": "string",
                  "description": "The primary identifier for this vendor item. <a href=\"#section/Overview/Write-requests\">When inserting, you should specify this by generating a GUID</a>. Not shown to users",
                  "format": "uuid",
                  "example": "00000000-0000-0000-0000-000000000000"
                },
                "product": {
                  "$ref": "#/components/schemas/Product"
                },
                "vendor": {
                  "$ref": "#/components/schemas/Vendor"
                }
              }
            },
            "description": "A list of vendors that sell this item to you"
          }
        }
      },
      "ProductBarcode": {
        "type": "object",
        "properties": {
          "barcode": {
            "type": "string",
            "description": "The numeric or text value of this barcode value."
          },
          "lineNum": {
            "type": "integer",
            "format": "int32",
            "example": "100"
          },
          "productBarcodeId": {
            "type": "string",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "productId": {
            "type": "string",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "timestamp": {
            "type": "string",
            "format": "rowversion",
            "example": "0000000000310AB6"
          },
          "product": {
            "$ref": "#/components/schemas/Product"
          }
        }
      },
      "ProductCost": {
        "type": "object",
        "properties": {
          "cost": {
            "type": "string",
            "description": "The inventory cost in the home currency for 1 standard unit of measure of this product. Read-only.",
            "format": "decimal",
            "nullable": true,
            "example": "19.99"
          },
          "productCostId": {
            "type": "string",
            "description": "Identifier for this product cost. Read-only."
          },
          "productId": {
            "type": "string",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "product": {
            "$ref": "#/components/schemas/Product"
          }
        }
      },
      "ProductCostAdjustment": {
        "type": "object",
        "properties": {
          "dateTime": {
            "type": "string",
            "description": "The effective date of this adjustment",
            "format": "date-time",
            "example": "2020-01-31"
          },
          "lastModifiedById": {
            "type": "string",
            "description": "The inFlow Team Member, system process, or API key that last modified this product cost adjustment. This is set automatically, and cannot be set through the API.",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "productCostAdjustmentId": {
            "type": "string",
            "description": "The primary identifier for this product cost adjustment. <a href=\"#section/Overview/Write-requests\">When inserting, you should specify this by generating a GUID</a>. Not shown to users",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "productId": {
            "type": "string",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "serial": {
            "type": "string",
            "description": "For serialized products, the serial number whose cost is being adjusted."
          },
          "timestamp": {
            "type": "string",
            "description": "You can optionally include the last-known timestamp when modifying to protect against concurrent modifications.",
            "format": "rowversion",
            "example": "0000000000310AB6"
          },
          "unitCost": {
            "type": "string",
            "description": "The new target inventory cost per standard unit of measure",
            "format": "decimal",
            "example": "19.99"
          },
          "lastModifiedBy": {
            "$ref": "#/components/schemas/TeamMember"
          },
          "product": {
            "$ref": "#/components/schemas/Product"
          }
        }
      },
      "ProductGroup": {
        "type": "object",
        "properties": {
          "categoryId": {
            "type": "string",
            "description": "The category ID.",
            "format": "uuid",
            "nullable": true,
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "defaultImageId": {
            "type": "string",
            "description": "The default image ID.",
            "format": "uuid",
            "nullable": true,
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "defaultProductId": {
            "type": "string",
            "description": "The default product ID.",
            "format": "uuid",
            "nullable": true,
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "isActive": {
            "type": "boolean",
            "description": "Product groups with ```IsActive = false``` are deactivated and hidden away for future usage."
          },
          "name": {
            "type": "string",
            "description": "The name of the product group that should be human readable. Must be unique."
          },
          "productGroupId": {
            "type": "string",
            "description": "The primary identifier for this product group. <a href=\"#section/Overview/Write-requests\">When inserting, you should specify this by generating a GUID</a>. Not shown to users",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "timestamp": {
            "type": "string",
            "description": "You can optionally include the last-known timestamp when modifying to protect against concurrent modifications.",
            "format": "rowversion",
            "example": "0000000000310AB6"
          },
          "category": {
            "$ref": "#/components/schemas/Category"
          },
          "defaultImage": {
            "$ref": "#/components/schemas/Image"
          },
          "defaultProduct": {
            "$ref": "#/components/schemas/Product"
          },
          "images": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "imageId": {
                  "type": "string",
                  "format": "uuid",
                  "example": "00000000-0000-0000-0000-000000000000"
                },
                "productGroupId": {
                  "type": "string",
                  "format": "uuid",
                  "example": "00000000-0000-0000-0000-000000000000"
                },
                "productGroupImageId": {
                  "type": "string",
                  "format": "uuid",
                  "example": "00000000-0000-0000-0000-000000000000"
                },
                "image": {
                  "$ref": "#/components/schemas/Image"
                },
                "productGroup": {
                  "$ref": "#/components/schemas/ProductGroup"
                }
              }
            },
            "description": "Images associated with this product group."
          },
          "options": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "lineNum": {
                  "type": "integer",
                  "description": "The display order of this option within the product group.",
                  "format": "int32",
                  "example": "100"
                },
                "name": {
                  "type": "string",
                  "description": "The name of the option (e.g. \"Size\", \"Color\")."
                },
                "productGroupOptionId": {
                  "type": "string",
                  "description": "The unique identifier of the option.",
                  "format": "uuid",
                  "example": "00000000-0000-0000-0000-000000000000"
                },
                "optionValues": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "lineNum": {
                        "type": "integer",
                        "description": "The display order of this value within its option.",
                        "format": "int32",
                        "example": "100"
                      },
                      "productGroupOptionValueId": {
                        "type": "string",
                        "description": "The unique identifier of the option value.",
                        "format": "uuid",
                        "example": "00000000-0000-0000-0000-000000000000"
                      },
                      "value": {
                        "type": "string",
                        "description": "The display value (e.g. \"Red\", \"Large\")."
                      }
                    }
                  },
                  "description": "The possible values for this option (e.g. \"Small\", \"Medium\", \"Large\")."
                }
              }
            },
            "description": "The variant options defined for this product group (e.g. Size, Color)."
          },
          "productVariants": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "defaultPrice": {
                  "type": "string",
                  "description": "The default selling price for this variant.",
                  "format": "decimal",
                  "nullable": true,
                  "example": "19.99"
                },
                "productGroupId": {
                  "type": "string",
                  "description": "The product group ID.",
                  "format": "uuid",
                  "example": "00000000-0000-0000-0000-000000000000"
                },
                "productId": {
                  "type": "string",
                  "description": "The product ID.",
                  "format": "uuid",
                  "example": "00000000-0000-0000-0000-000000000000"
                },
                "productVariantId": {
                  "type": "string",
                  "description": "The unique identifier of the product variant, in the format \"ProductGroupId_ProductId\"."
                },
                "variantOption": {
                  "$ref": "#/components/schemas/Dictionary`2"
                },
                "product": {
                  "$ref": "#/components/schemas/Product"
                },
                "productGroup": {
                  "$ref": "#/components/schemas/ProductGroup"
                }
              }
            },
            "description": "The product variants belonging to this product group."
          }
        }
      },
      "ProductGroupImage": {
        "type": "object",
        "properties": {
          "imageId": {
            "type": "string",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "productGroupId": {
            "type": "string",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "productGroupImageId": {
            "type": "string",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "image": {
            "$ref": "#/components/schemas/Image"
          },
          "productGroup": {
            "$ref": "#/components/schemas/ProductGroup"
          }
        }
      },
      "ProductGroupOption": {
        "type": "object",
        "properties": {
          "lineNum": {
            "type": "integer",
            "description": "The display order of this option within the product group.",
            "format": "int32",
            "example": "100"
          },
          "name": {
            "type": "string",
            "description": "The name of the option (e.g. \"Size\", \"Color\")."
          },
          "productGroupOptionId": {
            "type": "string",
            "description": "The unique identifier of the option.",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "optionValues": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "lineNum": {
                  "type": "integer",
                  "description": "The display order of this value within its option.",
                  "format": "int32",
                  "example": "100"
                },
                "productGroupOptionValueId": {
                  "type": "string",
                  "description": "The unique identifier of the option value.",
                  "format": "uuid",
                  "example": "00000000-0000-0000-0000-000000000000"
                },
                "value": {
                  "type": "string",
                  "description": "The display value (e.g. \"Red\", \"Large\")."
                }
              }
            },
            "description": "The possible values for this option (e.g. \"Small\", \"Medium\", \"Large\")."
          }
        }
      },
      "ProductGroupOptionValue": {
        "type": "object",
        "properties": {
          "lineNum": {
            "type": "integer",
            "description": "The display order of this value within its option.",
            "format": "int32",
            "example": "100"
          },
          "productGroupOptionValueId": {
            "type": "string",
            "description": "The unique identifier of the option value.",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "value": {
            "type": "string",
            "description": "The display value (e.g. \"Red\", \"Large\")."
          }
        }
      },
      "ProductGroupVariantQuantities": {
        "type": "object",
        "properties": {
          "productId": {
            "type": "string",
            "format": "uuid"
          },
          "quantityAvailable": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "quantityOnHand": {
            "type": "number",
            "format": "double",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ProductOperation": {
        "type": "object",
        "properties": {
          "cost": {
            "type": "string",
            "description": "A fixed per-unit operation cost, in home currency.",
            "format": "decimal",
            "nullable": true,
            "example": "19.99"
          },
          "estimatedPerHourCost": {
            "type": "string",
            "description": "Variable per-hour operation cost, in home currency, e.g. worker salary",
            "format": "decimal",
            "nullable": true,
            "example": "19.99"
          },
          "estimatedSeconds": {
            "type": "string",
            "description": "An estimate of time required to complete this operation. Used together with PerHourCost in calculating the operation costs.",
            "format": "decimal",
            "nullable": true,
            "example": "19.99"
          },
          "instructions": {
            "type": "string"
          },
          "lineNum": {
            "type": "integer",
            "format": "int32",
            "example": "100"
          },
          "operationTypeId": {
            "type": "string",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "productId": {
            "type": "string",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "productOperationId": {
            "type": "string",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "timestamp": {
            "type": "string",
            "format": "rowversion",
            "example": "0000000000310AB6"
          },
          "trackTime": {
            "type": "boolean"
          },
          "operationType": {
            "$ref": "#/components/schemas/OperationType"
          },
          "product": {
            "$ref": "#/components/schemas/Product"
          }
        }
      },
      "ProductPrice": {
        "type": "object",
        "properties": {
          "fixedMarkup": {
            "type": "string",
            "description": "For FixedMarkup, the percentage markup over the product cost. For FixedPrice, empty.",
            "format": "decimal",
            "nullable": true,
            "example": "19.99"
          },
          "priceType": {
            "enum": [
              "FixedPrice",
              "FixedMarkup"
            ],
            "type": "string",
            "description": "Most commonly ```FixedPrice``` for a set price, or ```FixedMarkup``` to automatically fluctuate as a markup over the product cost."
          },
          "pricingSchemeId": {
            "type": "string",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "productId": {
            "type": "string",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "productPriceId": {
            "type": "string",
            "description": "The primary identifier for this product price. <a href=\"#section/Overview/Write-requests\">When inserting, you should specify this by generating a GUID</a>. Not shown to users",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "timestamp": {
            "type": "string",
            "description": "You can optionally include the last-known timestamp when modifying to protect against concurrent modifications.",
            "format": "rowversion",
            "example": "0000000000310AB6"
          },
          "unitPrice": {
            "type": "string",
            "description": "For FixedPrice, the price for 1 sales unit of measure in the pricing scheme's currency. For FixedMarkup, empty.",
            "format": "decimal",
            "nullable": true,
            "example": "19.99"
          },
          "pricingScheme": {
            "$ref": "#/components/schemas/PricingScheme"
          },
          "product": {
            "$ref": "#/components/schemas/Product"
          }
        }
      },
      "ProductSummaryKey": {
        "type": "object",
        "properties": {
          "productId": {
            "type": "string",
            "format": "uuid"
          },
          "locationId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ProductSummaryResponseModel": {
        "type": "object",
        "properties": {
          "productId": {
            "type": "string",
            "description": "The product whose inventory is being represented here",
            "format": "uuid"
          },
          "locationId": {
            "type": "string",
            "description": "The location whose inventory is being represented here, or null if this is a summary across all locations",
            "format": "uuid",
            "nullable": true
          },
          "imageSmallUrl": {
            "type": "string",
            "description": "URL for a small image of the product",
            "nullable": true
          },
          "quantityOnHand": {
            "type": "number",
            "description": "This number is the total you have physically available (including Qty reserved) minus any items that have already been picked in a sales order (i.e. what’s still on your warehouse shelves).",
            "format": "double",
            "nullable": true
          },
          "quantityOnOrder": {
            "type": "number",
            "description": "This number is how many you've ordered but haven't received.",
            "format": "double",
            "nullable": true
          },
          "quantityOnPurchaseOrder": {
            "type": "number",
            "description": "A breakdown of QuantityOnOrder into only those ordered from vendors but haven't received.",
            "format": "double",
            "nullable": true
          },
          "quantityOnWorkOrder": {
            "type": "number",
            "description": "A breakdown of QuantityOnOrder into only those on manufacture orders that haven't been finished yet.",
            "format": "double",
            "nullable": true
          },
          "quantityOnTransferOrder": {
            "type": "number",
            "description": "A breakdown of QuantityOnOrder into only those expected to be received on a stock transfer (only when a locationId is specified).",
            "format": "double",
            "nullable": true
          },
          "quantityReserved": {
            "type": "number",
            "description": "This number is the total stock reserved for use that haven't been picked or used yet.",
            "format": "double"
          },
          "quantityReservedForSales": {
            "type": "number",
            "description": "A breakdown of QuantityReserved into only those reserved for sales orders.",
            "format": "double"
          },
          "quantityReservedForManufacturing": {
            "type": "number",
            "description": "A breakdown of QuantityReserved into only those reserved for raw materials of manufacture orders.",
            "format": "double"
          },
          "quantityReservedForTransfers": {
            "type": "number",
            "description": "A breakdown of QuantityReserved into only those reserved to be picked for a stock transfer (only when a locationId is specified).",
            "format": "double"
          },
          "quantityReservedForBuilds": {
            "type": "number",
            "description": "A breakdown of QuantityReserved into only those parts needed for bills of materials on products with negative anticipated inventory.",
            "format": "double"
          },
          "quantityAvailable": {
            "type": "number",
            "description": "This number is how many of the products you’ll have left if you fulfill all open outgoing orders. This may include QuantityBuildable (for manufactured products set to combine quantities) and QuantityReservedForBuilds.",
            "format": "double"
          },
          "rawQuantityAvailable": {
            "type": "number",
            "description": "This number is how many of the products you’ll have left if you fulfill all open outgoing orders, excluding QuantityBuildable and QuantityReservedForBuilds.",
            "format": "double"
          },
          "quantityPicked": {
            "type": "number",
            "description": "This number is the total that has already been picked in sales orders/work orders and is awaiting shipment (think of them as sitting in a box waiting to be shipped out).",
            "format": "double",
            "nullable": true
          },
          "quantityInTransit": {
            "type": "number",
            "description": "These are specific items that have been sent via Transfer Stock and are still in the Transit status (i.e. you’ve sent the transfer, but it has not been received at the other location yet).",
            "format": "double",
            "nullable": true
          },
          "quantityBuildable": {
            "type": "number",
            "description": "For manufactured products, the quantity buildable is how many units can be built based on the stock of raw materials. If this is blank, then it means can infinite can be built (e.g. if it's composed only of services).",
            "format": "double",
            "nullable": true
          },
          "quantityExpiring": {
            "type": "number",
            "description": "For products that track lots and expiry dates, the quantity expiring is the quantity past expiry date or past sell-by date",
            "format": "double",
            "nullable": true
          },
          "quantityAnticipated": {
            "type": "number",
            "description": "Quantity on hand—quantity reserved + quantity on order",
            "format": "double",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Key summary information about a product's inventory, optionally at a specific location."
      },
      "ProductTaxCode": {
        "type": "object",
        "properties": {
          "productId": {
            "type": "string",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "productTaxCodeId": {
            "type": "string",
            "description": "The primary identifier for this product tax code. <a href=\"#section/Overview/Write-requests\">When inserting, you should specify this by generating a GUID</a>. Not shown to users",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "taxCodeId": {
            "type": "string",
            "format": "uuid",
            "nullable": true,
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "taxingSchemeId": {
            "type": "string",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "timestamp": {
            "type": "string",
            "description": "You can optionally include the last-known timestamp when modifying to protect against concurrent modifications.",
            "format": "rowversion",
            "example": "0000000000310AB6"
          },
          "product": {
            "$ref": "#/components/schemas/Product"
          },
          "taxCode": {
            "$ref": "#/components/schemas/TaxCode"
          },
          "taxingScheme": {
            "$ref": "#/components/schemas/TaxingScheme"
          }
        }
      },
      "ProductVariant": {
        "type": "object",
        "properties": {
          "defaultPrice": {
            "type": "string",
            "description": "The default selling price for this variant.",
            "format": "decimal",
            "nullable": true,
            "example": "19.99"
          },
          "productGroupId": {
            "type": "string",
            "description": "The product group ID.",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "productId": {
            "type": "string",
            "description": "The product ID.",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "productVariantId": {
            "type": "string",
            "description": "The unique identifier of the product variant, in the format \"ProductGroupId_ProductId\"."
          },
          "variantOption": {
            "$ref": "#/components/schemas/Dictionary`2"
          },
          "product": {
            "$ref": "#/components/schemas/Product"
          },
          "productGroup": {
            "$ref": "#/components/schemas/ProductGroup"
          }
        }
      },
      "PurchaseOrder": {
        "type": "object",
        "properties": {
          "amountPaid": {
            "type": "string",
            "description": "The amount that you have paid this vendor.",
            "format": "decimal",
            "example": "19.99"
          },
          "approverTeamMemberId": {
            "type": "string",
            "format": "uuid",
            "nullable": true,
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "assignedToTeamMemberId": {
            "type": "string",
            "format": "uuid",
            "nullable": true,
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "balance": {
            "type": "string",
            "description": "The remaining amount that you owe this vendor.",
            "format": "decimal",
            "example": "19.99"
          },
          "calculateTax2OnTax1": {
            "type": "boolean",
            "description": "Whether a secondary tax should be compounded on top of the primary tax"
          },
          "carrier": {
            "type": "string",
            "description": "The carrier or shipping method for this order",
            "example": "FedEx"
          },
          "contactName": {
            "type": "string",
            "description": "The name of the vendor's employee that you should contact for this order"
          },
          "currencyId": {
            "type": "string",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "customFields": {
            "$ref": "#/components/schemas/LargeCustomFieldValues"
          },
          "dueDate": {
            "type": "string",
            "description": "The date by which payment is due",
            "format": "date-time",
            "nullable": true,
            "example": "2020-01-31"
          },
          "email": {
            "type": "string",
            "description": "The email address for the vendor that you should contact for this order"
          },
          "exchangeRate": {
            "type": "string",
            "description": "The exchange rate between the currency in this order and your home currency effective for this order",
            "format": "decimal",
            "example": 1.24
          },
          "exchangeRateAutoPulled": {
            "type": "string",
            "description": "If this exchange rate was automatically pulled, then the date it was set, otherwise null.",
            "format": "date-time",
            "nullable": true,
            "example": "2020-01-31"
          },
          "freight": {
            "type": "string",
            "description": "The amount this vendor charges you for shipping",
            "format": "decimal",
            "nullable": true,
            "example": "19.99"
          },
          "inventoryStatus": {
            "enum": [
              "Quote",
              "Unapproved",
              "Unfulfilled",
              "Started",
              "Fulfilled"
            ],
            "type": "string",
            "description": "The inventory-related status of this order"
          },
          "isCancelled": {
            "type": "boolean",
            "description": "Whether this order is cancelled (being cancelled voids any payments and inventory movements)"
          },
          "isCompleted": {
            "type": "boolean",
            "description": "Whether this order is completed (fully received)"
          },
          "isQuote": {
            "type": "boolean",
            "description": "Whether this order is a quote"
          },
          "isTaxInclusive": {
            "type": "boolean",
            "description": "When ```true```, then prices should be treated as tax-inclusive."
          },
          "lastModifiedById": {
            "type": "string",
            "description": "The inFlow Team Member, system process, or API key that last modified this purchase order. This is set automatically, and cannot be set through the API.",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "locationId": {
            "type": "string",
            "format": "uuid",
            "nullable": true,
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "nonVendorCosts": {
            "$ref": "#/components/schemas/PercentOrFixedAmount"
          },
          "orderDate": {
            "type": "string",
            "description": "The date this order was placed.",
            "format": "date-time",
            "example": "2020-01-31"
          },
          "orderNumber": {
            "type": "string",
            "description": "An identifier for this purchase order and shown on printed documents.",
            "example": "PO-000123"
          },
          "orderRemarks": {
            "type": "string",
            "description": "Any extra comments on this order"
          },
          "paymentStatus": {
            "enum": [
              "Quote",
              "Unapproved",
              "Unpaid",
              "Partial",
              "Paid",
              "Owing"
            ],
            "type": "string",
            "description": "The total amount the customer should pay, including taxes and shipping"
          },
          "paymentTermsId": {
            "type": "string",
            "format": "uuid",
            "nullable": true,
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "phone": {
            "type": "string",
            "description": "The phone number for the vendor that you should contact for this order"
          },
          "purchaseOrderId": {
            "type": "string",
            "description": "The primary identifier for this purchase order. <a href=\"#section/Overview/Write-requests\">When inserting, you should specify this by generating a GUID</a>. Not shown to users",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "receiveRemarks": {
            "type": "string",
            "description": "Any extra comments on this order regarding receiving"
          },
          "requestShipDate": {
            "type": "string",
            "description": "The date that you request that this order be shipped",
            "format": "date-time",
            "nullable": true,
            "example": "2020-01-31"
          },
          "returnExtra": {
            "type": "string",
            "description": "The amount that this vendor refunds you for returns related to shipping",
            "format": "decimal",
            "example": "19.99"
          },
          "returnFee": {
            "type": "string",
            "description": "The amount this vendor charges you for return fees",
            "format": "decimal",
            "example": "19.99"
          },
          "returnRemarks": {
            "type": "string",
            "description": "Any extra comments on this order regarding returns"
          },
          "shipToAddress": {
            "$ref": "#/components/schemas/Address"
          },
          "shipToCompanyName": {
            "type": "string",
            "description": "The ship-to company name shown on printed documents, e.g. for dropshipping"
          },
          "showShipping": {
            "type": "boolean",
            "description": "Whether this order will be shipped; this controls whether certain fields will be shown."
          },
          "subTotal": {
            "type": "string",
            "description": "The total of line items for this order",
            "format": "decimal",
            "example": "19.99"
          },
          "tax1": {
            "type": "string",
            "description": "The calculated primary tax amount for this order",
            "format": "decimal",
            "example": "19.99"
          },
          "tax1Name": {
            "type": "string",
            "description": "A short name for display of the primary tax",
            "example": "VAT"
          },
          "tax1OnShipping": {
            "type": "boolean",
            "description": "Whether the primary tax applies to shipping/freight costs"
          },
          "tax1Rate": {
            "type": "string",
            "description": "The default percentage primary tax for this order.",
            "format": "decimal",
            "nullable": true,
            "example": "19.99"
          },
          "tax2": {
            "type": "string",
            "description": "The calculated secondary tax amount for this order",
            "format": "decimal",
            "example": "19.99"
          },
          "tax2Name": {
            "type": "string",
            "description": "A short name for display of the secondary tax",
            "example": "PST"
          },
          "tax2OnShipping": {
            "type": "boolean",
            "description": "Whether the secondary tax applies to shipping/freight costs"
          },
          "tax2Rate": {
            "type": "string",
            "description": "The default percentage secondary tax for this order.",
            "format": "decimal",
            "nullable": true,
            "example": "19.99"
          },
          "taxingSchemeId": {
            "type": "string",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "timestamp": {
            "type": "string",
            "description": "You can optionally include the last-known timestamp when modifying to protect against concurrent modifications.",
            "format": "rowversion",
            "example": "0000000000310AB6"
          },
          "total": {
            "type": "string",
            "description": "The total amount you should pay, including taxes and shipping",
            "format": "decimal",
            "example": "19.99"
          },
          "unstockRemarks": {
            "type": "string",
            "description": "Any extra comments on this order regarding unstocking"
          },
          "vendorAddress": {
            "$ref": "#/components/schemas/Address"
          },
          "vendorId": {
            "type": "string",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "vendorOrderNumber": {
            "type": "string",
            "description": "The vendor's number for this order."
          },
          "approverTeamMember": {
            "$ref": "#/components/schemas/TeamMember"
          },
          "assignedToTeamMember": {
            "$ref": "#/components/schemas/TeamMember"
          },
          "attachments": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "attachmentId": {
                  "type": "string",
                  "description": "The attachmentId to be fetched.",
                  "format": "uuid",
                  "example": "00000000-0000-0000-0000-000000000000"
                },
                "attachmentUrl": {
                  "type": "string",
                  "description": "The Url associated with the attachment"
                },
                "fileName": {
                  "type": "string",
                  "description": "The human-readable name for this attachment."
                },
                "fileSize": {
                  "$ref": "#/components/schemas/Int64"
                },
                "lastModDttm": {
                  "type": "string",
                  "description": "The DateTimeOffset when this attachment was last modified.",
                  "format": "date-time",
                  "example": "2020-01-31"
                },
                "lastModifiedById": {
                  "type": "string",
                  "description": "The inFlow Team Member, system process, or API key that last modified this attachment.",
                  "format": "uuid",
                  "example": "00000000-0000-0000-0000-000000000000"
                },
                "lastModifiedBy": {
                  "$ref": "#/components/schemas/TeamMember"
                }
              }
            },
            "description": "File attachments included with this purchase order. (This is a read-only attribute.)"
          },
          "currency": {
            "$ref": "#/components/schemas/Currency"
          },
          "lastModifiedBy": {
            "$ref": "#/components/schemas/TeamMember"
          },
          "lines": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "description": {
                  "type": "string",
                  "description": "A human-readable description for the product being ordered or returned (can be customized specifically this order)"
                },
                "discount": {
                  "$ref": "#/components/schemas/PercentOrFixedAmount"
                },
                "productHeight": {
                  "type": "string",
                  "description": "The per-standard-unit height of the product being ordered.  Used as an estimate when purchasing cost is split by volume.  Ignored for lines with negative quantity.",
                  "format": "decimal",
                  "nullable": true,
                  "example": "19.99"
                },
                "productId": {
                  "type": "string",
                  "format": "uuid",
                  "example": "00000000-0000-0000-0000-000000000000"
                },
                "productLength": {
                  "type": "string",
                  "description": "The per-standard-unit length of the product being ordered.  Used as an estimate when purchasing cost is split by volume.  Ignored for lines with negative quantity.",
                  "format": "decimal",
                  "nullable": true,
                  "example": "19.99"
                },
                "productWeight": {
                  "type": "string",
                  "description": "The per-standard-unit weight of the product being ordered.  Used as an estimate when purchasing cost is split by weight.  Ignored for lines with negative quantity.",
                  "format": "decimal",
                  "nullable": true,
                  "example": "19.99"
                },
                "productWidth": {
                  "type": "string",
                  "description": "The per-standard-unit width of the product being ordered.  Used as an estimate when purchasing cost is split by volume.  Ignored for lines with negative quantity.",
                  "format": "decimal",
                  "nullable": true,
                  "example": "19.99"
                },
                "purchaseOrderLineId": {
                  "type": "string",
                  "description": "The primary identifier for this purchase order line. <a href=\"#section/Overview/Write-requests\">When inserting, you should specify this by generating a GUID</a>. Not shown to users",
                  "format": "uuid",
                  "example": "00000000-0000-0000-0000-000000000000"
                },
                "quantity": {
                  "$ref": "#/components/schemas/QuantityWithUom"
                },
                "returnDate": {
                  "type": "string",
                  "description": "For lines with negative quantities, the date the item was returned.",
                  "format": "date-time",
                  "nullable": true,
                  "example": "2020-01-31"
                },
                "serviceCompleted": {
                  "type": "boolean",
                  "description": "For service lines, whether the service has been completed. Should be null if not a service, or not-null if a service.",
                  "nullable": true
                },
                "subTotal": {
                  "type": "string",
                  "description": "The subtotal for this line (calculated from Quantity, UnitPrice and Discount)",
                  "format": "decimal",
                  "example": "19.99"
                },
                "tax1Rate": {
                  "type": "string",
                  "description": "The primary tax rate charged for this line",
                  "format": "decimal",
                  "example": "19.99"
                },
                "tax2Rate": {
                  "type": "string",
                  "description": "The secondary tax rate charged for this line",
                  "format": "decimal",
                  "example": "19.99"
                },
                "taxCodeId": {
                  "type": "string",
                  "format": "uuid",
                  "example": "00000000-0000-0000-0000-000000000000"
                },
                "timestamp": {
                  "type": "string",
                  "description": "You can optionally include the last-known timestamp when modifying to protect against concurrent modifications.",
                  "format": "rowversion",
                  "example": "0000000000310AB6"
                },
                "unitPrice": {
                  "type": "string",
                  "description": "The price charged per unit of measure",
                  "format": "decimal",
                  "example": "19.99"
                },
                "vendorItemCode": {
                  "type": "string",
                  "description": "The code that this vendor uses to refer to the product"
                },
                "product": {
                  "$ref": "#/components/schemas/Product"
                },
                "taxCode": {
                  "$ref": "#/components/schemas/TaxCode"
                }
              }
            },
            "description": "Lines representing which goods have been ordered and returned"
          },
          "location": {
            "$ref": "#/components/schemas/Location"
          },
          "paymentLines": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "amount": {
                  "type": "string",
                  "format": "decimal",
                  "example": "19.99"
                },
                "datePaid": {
                  "type": "string",
                  "format": "date-time",
                  "example": "2020-01-31"
                },
                "paymentMethod": {
                  "type": "string"
                },
                "paymentType": {
                  "enum": [
                    "Payment",
                    "BatchPayment",
                    "ApplyCredit",
                    "ConvertToCredit",
                    "Refund",
                    "InFlowPay",
                    "Exchange"
                  ],
                  "type": "string"
                },
                "purchaseOrderPaymentHistoryLineId": {
                  "type": "string",
                  "format": "uuid",
                  "example": "00000000-0000-0000-0000-000000000000"
                },
                "referenceNumber": {
                  "type": "string"
                },
                "remarks": {
                  "type": "string"
                },
                "timestamp": {
                  "type": "string",
                  "format": "rowversion",
                  "example": "0000000000310AB6"
                }
              }
            },
            "description": "Lines representing a history of payment details for this order."
          },
          "paymentTerms": {
            "$ref": "#/components/schemas/PaymentTerms"
          },
          "receiveLines": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "description": {
                  "type": "string",
                  "description": "A human-readable description for the product being received (can be customized specifically this order)"
                },
                "locationId": {
                  "type": "string",
                  "format": "uuid",
                  "example": "00000000-0000-0000-0000-000000000000"
                },
                "productHeight": {
                  "type": "string",
                  "description": "The per-standard-unit height of the product being received.  Used when purchasing cost is split by volume.",
                  "format": "decimal",
                  "nullable": true,
                  "example": "19.99"
                },
                "productId": {
                  "type": "string",
                  "format": "uuid",
                  "example": "00000000-0000-0000-0000-000000000000"
                },
                "productLength": {
                  "type": "string",
                  "description": "The per-standard-unit length of the product being received.  Used when purchasing cost is split by volume.",
                  "format": "decimal",
                  "nullable": true,
                  "example": "19.99"
                },
                "productWeight": {
                  "type": "string",
                  "description": "The per-standard-unit weight of the product being received.  Used when purchasing cost is split by weight.",
                  "format": "decimal",
                  "nullable": true,
                  "example": "19.99"
                },
                "productWidth": {
                  "type": "string",
                  "description": "The per-standard-unit width of the product being received.  Used when purchasing cost is split by volume.",
                  "format": "decimal",
                  "nullable": true,
                  "example": "19.99"
                },
                "purchaseOrderReceiveLineId": {
                  "type": "string",
                  "description": "The primary identifier for this purchase order receive line. <a href=\"#section/Overview/Write-requests\">When inserting, you should specify this by generating a GUID</a>. Not shown to users",
                  "format": "uuid",
                  "example": "00000000-0000-0000-0000-000000000000"
                },
                "quantity": {
                  "$ref": "#/components/schemas/QuantityWithUom"
                },
                "receiveDate": {
                  "type": "string",
                  "description": "The date that this line was received",
                  "format": "date-time",
                  "example": "2020-01-31"
                },
                "sublocation": {
                  "type": "string",
                  "description": "The sublocation this product is being received into",
                  "example": "C-19"
                },
                "timestamp": {
                  "type": "string",
                  "description": "You can optionally include the last-known timestamp when modifying to protect against concurrent modifications.",
                  "format": "rowversion",
                  "example": "0000000000310AB6"
                },
                "vendorItemCode": {
                  "type": "string",
                  "description": "The code that this vendor uses to refer to the product"
                },
                "location": {
                  "$ref": "#/components/schemas/Location"
                },
                "product": {
                  "$ref": "#/components/schemas/Product"
                }
              }
            },
            "description": "Lines representing which goods have been received into your warehouse"
          },
          "taxingScheme": {
            "$ref": "#/components/schemas/TaxingScheme"
          },
          "unstockLines": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "description": {
                  "type": "string",
                  "description": "A human-readable description for the product being unstocked (can be customized specifically this order)"
                },
                "locationId": {
                  "type": "string",
                  "description": "The location this product is being unstocked from",
                  "format": "uuid",
                  "example": "00000000-0000-0000-0000-000000000000"
                },
                "productId": {
                  "type": "string",
                  "format": "uuid",
                  "example": "00000000-0000-0000-0000-000000000000"
                },
                "purchaseOrderUnstockLineId": {
                  "type": "string",
                  "description": "The primary identifier for this purchase order unstock line. <a href=\"#section/Overview/Write-requests\">When inserting, you should specify this by generating a GUID</a>. Not shown to users",
                  "format": "uuid",
                  "example": "00000000-0000-0000-0000-000000000000"
                },
                "quantity": {
                  "$ref": "#/components/schemas/QuantityWithUom"
                },
                "sublocation": {
                  "type": "string",
                  "description": "The sublocation this product is being unstocked from",
                  "example": "C-19"
                },
                "timestamp": {
                  "type": "string",
                  "description": "You can optionally include the last-known timestamp when modifying to protect against concurrent modifications.",
                  "format": "rowversion",
                  "example": "0000000000310AB6"
                },
                "unstockDate": {
                  "type": "string",
                  "description": "The date that this line was removed from stock",
                  "format": "date-time",
                  "example": "2020-01-31"
                },
                "vendorItemCode": {
                  "type": "string",
                  "description": "The code that this vendor uses to refer to the product"
                },
                "location": {
                  "$ref": "#/components/schemas/Location"
                },
                "product": {
                  "$ref": "#/components/schemas/Product"
                }
              }
            },
            "description": "Lines representing which returned items have been unstocked"
          },
          "vendor": {
            "$ref": "#/components/schemas/Vendor"
          }
        }
      },
      "PurchaseOrderLine": {
        "type": "object",
        "properties": {
          "description": {
            "type": "string",
            "description": "A human-readable description for the product being ordered or returned (can be customized specifically this order)"
          },
          "discount": {
            "$ref": "#/components/schemas/PercentOrFixedAmount"
          },
          "productHeight": {
            "type": "string",
            "description": "The per-standard-unit height of the product being ordered.  Used as an estimate when purchasing cost is split by volume.  Ignored for lines with negative quantity.",
            "format": "decimal",
            "nullable": true,
            "example": "19.99"
          },
          "productId": {
            "type": "string",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "productLength": {
            "type": "string",
            "description": "The per-standard-unit length of the product being ordered.  Used as an estimate when purchasing cost is split by volume.  Ignored for lines with negative quantity.",
            "format": "decimal",
            "nullable": true,
            "example": "19.99"
          },
          "productWeight": {
            "type": "string",
            "description": "The per-standard-unit weight of the product being ordered.  Used as an estimate when purchasing cost is split by weight.  Ignored for lines with negative quantity.",
            "format": "decimal",
            "nullable": true,
            "example": "19.99"
          },
          "productWidth": {
            "type": "string",
            "description": "The per-standard-unit width of the product being ordered.  Used as an estimate when purchasing cost is split by volume.  Ignored for lines with negative quantity.",
            "format": "decimal",
            "nullable": true,
            "example": "19.99"
          },
          "purchaseOrderLineId": {
            "type": "string",
            "description": "The primary identifier for this purchase order line. <a href=\"#section/Overview/Write-requests\">When inserting, you should specify this by generating a GUID</a>. Not shown to users",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "quantity": {
            "$ref": "#/components/schemas/QuantityWithUom"
          },
          "returnDate": {
            "type": "string",
            "description": "For lines with negative quantities, the date the item was returned.",
            "format": "date-time",
            "nullable": true,
            "example": "2020-01-31"
          },
          "serviceCompleted": {
            "type": "boolean",
            "description": "For service lines, whether the service has been completed. Should be null if not a service, or not-null if a service.",
            "nullable": true
          },
          "subTotal": {
            "type": "string",
            "description": "The subtotal for this line (calculated from Quantity, UnitPrice and Discount)",
            "format": "decimal",
            "example": "19.99"
          },
          "tax1Rate": {
            "type": "string",
            "description": "The primary tax rate charged for this line",
            "format": "decimal",
            "example": "19.99"
          },
          "tax2Rate": {
            "type": "string",
            "description": "The secondary tax rate charged for this line",
            "format": "decimal",
            "example": "19.99"
          },
          "taxCodeId": {
            "type": "string",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "timestamp": {
            "type": "string",
            "description": "You can optionally include the last-known timestamp when modifying to protect against concurrent modifications.",
            "format": "rowversion",
            "example": "0000000000310AB6"
          },
          "unitPrice": {
            "type": "string",
            "description": "The price charged per unit of measure",
            "format": "decimal",
            "example": "19.99"
          },
          "vendorItemCode": {
            "type": "string",
            "description": "The code that this vendor uses to refer to the product"
          },
          "product": {
            "$ref": "#/components/schemas/Product"
          },
          "taxCode": {
            "$ref": "#/components/schemas/TaxCode"
          }
        }
      },
      "PurchaseOrderPaymentHistoryLine": {
        "type": "object",
        "properties": {
          "amount": {
            "type": "string",
            "format": "decimal",
            "example": "19.99"
          },
          "datePaid": {
            "type": "string",
            "format": "date-time",
            "example": "2020-01-31"
          },
          "paymentMethod": {
            "type": "string"
          },
          "paymentType": {
            "enum": [
              "Payment",
              "BatchPayment",
              "ApplyCredit",
              "ConvertToCredit",
              "Refund",
              "InFlowPay",
              "Exchange"
            ],
            "type": "string"
          },
          "purchaseOrderPaymentHistoryLineId": {
            "type": "string",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "referenceNumber": {
            "type": "string"
          },
          "remarks": {
            "type": "string"
          },
          "timestamp": {
            "type": "string",
            "format": "rowversion",
            "example": "0000000000310AB6"
          }
        }
      },
      "PurchaseOrderReceiveLine": {
        "type": "object",
        "properties": {
          "description": {
            "type": "string",
            "description": "A human-readable description for the product being received (can be customized specifically this order)"
          },
          "locationId": {
            "type": "string",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "productHeight": {
            "type": "string",
            "description": "The per-standard-unit height of the product being received.  Used when purchasing cost is split by volume.",
            "format": "decimal",
            "nullable": true,
            "example": "19.99"
          },
          "productId": {
            "type": "string",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "productLength": {
            "type": "string",
            "description": "The per-standard-unit length of the product being received.  Used when purchasing cost is split by volume.",
            "format": "decimal",
            "nullable": true,
            "example": "19.99"
          },
          "productWeight": {
            "type": "string",
            "description": "The per-standard-unit weight of the product being received.  Used when purchasing cost is split by weight.",
            "format": "decimal",
            "nullable": true,
            "example": "19.99"
          },
          "productWidth": {
            "type": "string",
            "description": "The per-standard-unit width of the product being received.  Used when purchasing cost is split by volume.",
            "format": "decimal",
            "nullable": true,
            "example": "19.99"
          },
          "purchaseOrderReceiveLineId": {
            "type": "string",
            "description": "The primary identifier for this purchase order receive line. <a href=\"#section/Overview/Write-requests\">When inserting, you should specify this by generating a GUID</a>. Not shown to users",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "quantity": {
            "$ref": "#/components/schemas/QuantityWithUom"
          },
          "receiveDate": {
            "type": "string",
            "description": "The date that this line was received",
            "format": "date-time",
            "example": "2020-01-31"
          },
          "sublocation": {
            "type": "string",
            "description": "The sublocation this product is being received into",
            "example": "C-19"
          },
          "timestamp": {
            "type": "string",
            "description": "You can optionally include the last-known timestamp when modifying to protect against concurrent modifications.",
            "format": "rowversion",
            "example": "0000000000310AB6"
          },
          "vendorItemCode": {
            "type": "string",
            "description": "The code that this vendor uses to refer to the product"
          },
          "location": {
            "$ref": "#/components/schemas/Location"
          },
          "product": {
            "$ref": "#/components/schemas/Product"
          }
        }
      },
      "PurchaseOrderUnstockLine": {
        "type": "object",
        "properties": {
          "description": {
            "type": "string",
            "description": "A human-readable description for the product being unstocked (can be customized specifically this order)"
          },
          "locationId": {
            "type": "string",
            "description": "The location this product is being unstocked from",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "productId": {
            "type": "string",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "purchaseOrderUnstockLineId": {
            "type": "string",
            "description": "The primary identifier for this purchase order unstock line. <a href=\"#section/Overview/Write-requests\">When inserting, you should specify this by generating a GUID</a>. Not shown to users",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "quantity": {
            "$ref": "#/components/schemas/QuantityWithUom"
          },
          "sublocation": {
            "type": "string",
            "description": "The sublocation this product is being unstocked from",
            "example": "C-19"
          },
          "timestamp": {
            "type": "string",
            "description": "You can optionally include the last-known timestamp when modifying to protect against concurrent modifications.",
            "format": "rowversion",
            "example": "0000000000310AB6"
          },
          "unstockDate": {
            "type": "string",
            "description": "The date that this line was removed from stock",
            "format": "date-time",
            "example": "2020-01-31"
          },
          "vendorItemCode": {
            "type": "string",
            "description": "The code that this vendor uses to refer to the product"
          },
          "location": {
            "$ref": "#/components/schemas/Location"
          },
          "product": {
            "$ref": "#/components/schemas/Product"
          }
        }
      },
      "QuantityWithUom": {
        "type": "object",
        "properties": {
          "standardQuantity": {
            "type": "string",
            "description": "The quantity measured in the standard unit of measure for the associated product",
            "format": "decimal",
            "nullable": true,
            "example": "19.99"
          },
          "uomQuantity": {
            "type": "string",
            "description": "The quantity measured in the unit of measure to be shown",
            "format": "decimal",
            "nullable": true,
            "example": "19.99"
          },
          "uom": {
            "type": "string",
            "description": "The name of the unit of measure to be shown",
            "example": "cases"
          },
          "serialNumbers": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "For serialized products, a list of serial numbers (should be one serial number per standard quantity)"
          }
        }
      },
      "ReorderSettings": {
        "type": "object",
        "properties": {
          "defaultSublocation": {
            "type": "string",
            "description": "The default sublocation this product will be received into for this location."
          },
          "enableReordering": {
            "type": "boolean",
            "description": "When ```true```, reordering is enabled. When ```false```, reordering is explicitly disabled. When ```null```, then the user will be prompted to set up reorder settings if the product has insufficient stock for current orders.",
            "nullable": true
          },
          "fromLocationId": {
            "type": "string",
            "format": "uuid",
            "nullable": true,
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "locationId": {
            "type": "string",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "productId": {
            "type": "string",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "reorderMethod": {
            "enum": [
              "PurchaseOrder",
              "WorkOrder",
              "StockTransfer"
            ],
            "type": "string",
            "description": "The method by which this product should be reordered when low in stock (PurchaseOrder, WorkOrder, or StockTransfer)"
          },
          "reorderPoint": {
            "type": "string",
            "description": "If stock levels (including pending orders) fall below the reorder point, then inFlow will suggest replenishing this item in this location.  Ignored if EnableReordering is ```false```.",
            "format": "decimal",
            "example": "19.99"
          },
          "reorderQuantity": {
            "type": "string",
            "description": "This is the minimum units of the product which will be reordered for this location when the quantity falls below the reorder point.",
            "format": "decimal",
            "nullable": true,
            "example": "19.99"
          },
          "reorderSettingsId": {
            "type": "string",
            "description": "The primary identifier for this reorder settings. <a href=\"#section/Overview/Write-requests\">When inserting, you should specify this by generating a GUID</a>. Not shown to users",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "timestamp": {
            "type": "string",
            "description": "You can optionally include the last-known timestamp when modifying to protect against concurrent modifications.",
            "format": "rowversion",
            "example": "0000000000310AB6"
          },
          "vendorId": {
            "type": "string",
            "format": "uuid",
            "nullable": true,
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "fromLocation": {
            "$ref": "#/components/schemas/Location"
          },
          "location": {
            "$ref": "#/components/schemas/Location"
          },
          "product": {
            "$ref": "#/components/schemas/Product"
          },
          "vendor": {
            "$ref": "#/components/schemas/Vendor"
          }
        }
      },
      "SalesOrder": {
        "type": "object",
        "properties": {
          "amountPaid": {
            "type": "string",
            "description": "The amount that this customer has paid you.",
            "format": "decimal",
            "example": "19.99"
          },
          "assignedToTeamMemberId": {
            "type": "string",
            "format": "uuid",
            "nullable": true,
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "balance": {
            "type": "string",
            "description": "The remaining amount that the customer owes you.",
            "format": "decimal",
            "example": "19.99"
          },
          "billingAddress": {
            "$ref": "#/components/schemas/Address"
          },
          "calculateTax2OnTax1": {
            "type": "boolean",
            "description": "Whether a secondary tax should be compounded on top of the primary tax",
            "nullable": true
          },
          "confirmerTeamMemberId": {
            "type": "string",
            "format": "uuid",
            "nullable": true,
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "contactName": {
            "type": "string",
            "description": "The name of the customer's employee that you should contact for this order"
          },
          "currencyId": {
            "type": "string",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "customerId": {
            "type": "string",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "customFields": {
            "$ref": "#/components/schemas/LargeCustomFieldValues"
          },
          "dueDate": {
            "type": "string",
            "description": "The date by which payment is due",
            "format": "date-time",
            "nullable": true,
            "example": "2020-01-31"
          },
          "email": {
            "type": "string",
            "description": "The email address for the customer that you should contact for this order"
          },
          "exchangeRate": {
            "type": "string",
            "description": "The exchange rate between the currency in this order and your home currency effective for this order",
            "format": "decimal",
            "example": 1.24
          },
          "exchangeRateAutoPulled": {
            "type": "string",
            "description": "If this exchange rate was automatically pulled, then the date it was set, otherwise null.",
            "format": "date-time",
            "nullable": true,
            "example": "2020-01-31"
          },
          "externalId": {
            "type": "string",
            "description": "An optional external identifier, for use in integrating with other systems"
          },
          "inventoryStatus": {
            "enum": [
              "Unconfirmed",
              "Quote",
              "Unfulfilled",
              "Started",
              "Fulfilled"
            ],
            "type": "string",
            "description": "The inventory-related status of this order. This is a read-only attribute.\nThe inventoryStatus is calculated based on whether all products have been added to pickLines. For orders with shipping, all products also have to be added to packLines and shipLines to mark the order fulfilled."
          },
          "invoicedDate": {
            "type": "string",
            "description": "The date that you sent an invoice for this customer",
            "format": "date-time",
            "nullable": true,
            "example": "2020-01-31"
          },
          "isCancelled": {
            "type": "boolean",
            "description": "Whether this order is cancelled (being cancelled voids any payments and inventory movements)"
          },
          "isCompleted": {
            "type": "boolean",
            "description": "Whether this order is completed (fully shipped and returns processed)"
          },
          "isFullyPicked": {
            "type": "boolean",
            "description": "Whether every non-service order line has matching pick lines (same product, description, serials, quantity).\nUsed by the Ready to Ship listing tab. Read-only / calculated."
          },
          "isInvoiced": {
            "type": "boolean",
            "description": "Whether you have issued an invoice to this customer for this order."
          },
          "isPicking": {
            "type": "boolean",
            "description": "Whether this order is currently being picked. When true, inventory is allocated and the order is locked for editing."
          },
          "isPrioritized": {
            "type": "boolean",
            "description": "Whether this order is prioritized for fulfillment. (This is a read-only attribute.)"
          },
          "isQuote": {
            "type": "boolean",
            "description": "When ```true```, then treat this as a sales quote (where the customer hasn't agreed to purchase yet) instead of an order."
          },
          "isTaxInclusive": {
            "type": "boolean",
            "description": "When ```true```, then prices should be treated as tax-inclusive."
          },
          "lastModifiedById": {
            "type": "string",
            "description": "The inFlow Team Member, system process, or API key that last modified this sales order. This is set automatically, and cannot be set through the API.",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "locationId": {
            "type": "string",
            "format": "uuid",
            "nullable": true,
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "needsConfirmation": {
            "type": "boolean",
            "description": "When the following conditions are met, then this order needs confirmation before it should be fulfilled: needsConfirmation = True; confirmerTeamMemberId = Null; isQuote = False"
          },
          "nonCustomerCost": {
            "$ref": "#/components/schemas/PercentOrFixedAmount"
          },
          "orderDate": {
            "type": "string",
            "description": "The date this order was placed.",
            "format": "date-time",
            "example": "2020-01-31"
          },
          "orderFreight": {
            "type": "string",
            "description": "The amount you charge this customer for shipping",
            "format": "decimal",
            "nullable": true,
            "example": "19.99"
          },
          "orderNumber": {
            "type": "string",
            "description": "An identifier for this sales order and shown on printed documents.",
            "example": "SO-000123"
          },
          "orderRemarks": {
            "type": "string",
            "description": "Any extra comments on this order"
          },
          "packRemarks": {
            "type": "string",
            "description": "Any extra comments on this order regarding packing"
          },
          "paymentStatus": {
            "enum": [
              "Unconfirmed",
              "Quote",
              "Uninvoiced",
              "Invoiced",
              "Partial",
              "Paid",
              "Owing"
            ],
            "type": "string",
            "description": "The payment-related status of this order"
          },
          "paymentTermsId": {
            "type": "string",
            "format": "uuid",
            "nullable": true,
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "phone": {
            "type": "string",
            "description": "The phone number for the customer that you should contact for this order"
          },
          "pickRemarks": {
            "type": "string",
            "description": "Any extra comments on this order regarding picking"
          },
          "poNumber": {
            "type": "string",
            "description": "The customer's Purchase Order number for this order."
          },
          "pricingSchemeId": {
            "type": "string",
            "format": "uuid",
            "nullable": true,
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "requestedShipDate": {
            "type": "string",
            "description": "The date that you should ship this order",
            "format": "date-time",
            "nullable": true,
            "example": "2020-01-31"
          },
          "restockRemarks": {
            "type": "string",
            "description": "Any extra comments on this order regarding restocking"
          },
          "returnFee": {
            "type": "string",
            "description": "The amount you charge to this customer for return fees",
            "format": "decimal",
            "nullable": true,
            "example": "19.99"
          },
          "returnFreight": {
            "type": "string",
            "description": "The amount that you refund to this customer for returns related to shipping",
            "format": "decimal",
            "nullable": true,
            "example": "19.99"
          },
          "returnRemarks": {
            "type": "string",
            "description": "Any extra comments on this order regarding returns"
          },
          "salesOrderId": {
            "type": "string",
            "description": "The primary identifier for this sales order. <a href=\"#section/Overview/Write-requests\">When inserting, you should specify this by generating a GUID</a>. Not shown to users",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "salesRep": {
            "type": "string",
            "description": "The name of the sales rep at your company in charge of this order.\nNote: this can only be set when legacy free-form sales rep values are allowed."
          },
          "salesRepTeamMemberId": {
            "type": "string",
            "format": "uuid",
            "nullable": true,
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "sameBillingAndShipping": {
            "type": "boolean",
            "description": "When ```true```, then the shipping address should be the same as the billing address."
          },
          "shippingAddress": {
            "$ref": "#/components/schemas/Address"
          },
          "shipRemarks": {
            "type": "string",
            "description": "Any extra comments on this order regarding shipping"
          },
          "shipToCompanyName": {
            "type": "string",
            "description": "The ship-to company name shown on printed documents"
          },
          "showShipping": {
            "type": "boolean",
            "description": "Whether this order will be shipped; this controls whether certain fields like Shipping Address will be shown."
          },
          "source": {
            "type": "string",
            "description": "Where this order originated from, i.e. the name of your app",
            "example": "Acme Widget Co. internal system"
          },
          "subTotal": {
            "type": "string",
            "description": "The total of line items for this order",
            "format": "decimal",
            "example": "19.99"
          },
          "tax1": {
            "type": "string",
            "description": "The calculated primary tax amount for this order",
            "format": "decimal",
            "example": "19.99"
          },
          "tax1Name": {
            "type": "string",
            "description": "A short name for display of the primary tax",
            "example": "VAT"
          },
          "tax1OnShipping": {
            "type": "boolean",
            "description": "Whether the primary tax applies to shipping/freight costs"
          },
          "tax1Rate": {
            "type": "string",
            "description": "The default percentage primary tax for this order.",
            "format": "decimal",
            "nullable": true,
            "example": "19.99"
          },
          "tax2": {
            "type": "string",
            "description": "The calculated secondary tax amount for this order",
            "format": "decimal",
            "example": "19.99"
          },
          "tax2Name": {
            "type": "string",
            "description": "A short name for display of the secondary tax",
            "example": "PST"
          },
          "tax2OnShipping": {
            "type": "boolean",
            "description": "Whether the secondary tax applies to shipping/freight costs"
          },
          "tax2Rate": {
            "type": "string",
            "description": "The default percentage secondary tax for this order.",
            "format": "decimal",
            "nullable": true,
            "example": "19.99"
          },
          "taxingSchemeId": {
            "type": "string",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "timestamp": {
            "type": "string",
            "description": "You can optionally include the last-known timestamp when modifying to protect against concurrent modifications.",
            "format": "rowversion",
            "example": "0000000000310AB6"
          },
          "total": {
            "type": "string",
            "description": "The total amount the customer should pay, including taxes and shipping",
            "format": "decimal",
            "example": "19.99"
          },
          "assignedToTeamMember": {
            "$ref": "#/components/schemas/TeamMember"
          },
          "attachments": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "attachmentId": {
                  "type": "string",
                  "description": "The attachmentId to be fetched.",
                  "format": "uuid",
                  "example": "00000000-0000-0000-0000-000000000000"
                },
                "attachmentUrl": {
                  "type": "string",
                  "description": "The Url associated with the attachment"
                },
                "fileName": {
                  "type": "string",
                  "description": "The human-readable name for this attachment."
                },
                "fileSize": {
                  "$ref": "#/components/schemas/Int64"
                },
                "lastModDttm": {
                  "type": "string",
                  "description": "The DateTimeOffset when this attachment was last modified.",
                  "format": "date-time",
                  "example": "2020-01-31"
                },
                "lastModifiedById": {
                  "type": "string",
                  "description": "The inFlow Team Member, system process, or API key that last modified this attachment.",
                  "format": "uuid",
                  "example": "00000000-0000-0000-0000-000000000000"
                },
                "lastModifiedBy": {
                  "$ref": "#/components/schemas/TeamMember"
                }
              }
            },
            "description": "File attachments included with this sales order. (This is a read-only attribute.)"
          },
          "confirmerTeamMember": {
            "$ref": "#/components/schemas/TeamMember"
          },
          "costOfGoodsSold": {
            "$ref": "#/components/schemas/SalesOrderCostOfGoodsSold"
          },
          "currency": {
            "$ref": "#/components/schemas/Currency"
          },
          "customer": {
            "$ref": "#/components/schemas/Customer"
          },
          "lastModifiedBy": {
            "$ref": "#/components/schemas/TeamMember"
          },
          "lines": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "description": {
                  "type": "string",
                  "description": "A human-readable description for the product being ordered or returned (can be customized specifically this order)"
                },
                "discount": {
                  "$ref": "#/components/schemas/PercentOrFixedAmount"
                },
                "isDiscarded": {
                  "type": "boolean",
                  "description": "For lines with negative quantities, ```true``` if the items should be discarded, not restocked (e.g. for damaged items)"
                },
                "productId": {
                  "type": "string",
                  "format": "uuid",
                  "example": "00000000-0000-0000-0000-000000000000"
                },
                "quantity": {
                  "$ref": "#/components/schemas/QuantityWithUom"
                },
                "returnDate": {
                  "type": "string",
                  "description": "For lines with negative quantities, the date the item was returned.",
                  "format": "date-time",
                  "nullable": true,
                  "example": "2020-01-31"
                },
                "salesOrderLineId": {
                  "type": "string",
                  "description": "The primary identifier for this sales order line. <a href=\"#section/Overview/Write-requests\">When inserting, you should specify this by generating a GUID</a>. Not shown to users",
                  "format": "uuid",
                  "example": "00000000-0000-0000-0000-000000000000"
                },
                "serviceCompleted": {
                  "type": "boolean",
                  "description": "For service lines, whether the service has been completed. Should be null if not a service, or not-null if a service.",
                  "nullable": true
                },
                "subTotal": {
                  "type": "string",
                  "description": "The subtotal for this line (calculated from Quantity, UnitPrice and Discount)",
                  "format": "decimal",
                  "example": "19.99"
                },
                "tax1Rate": {
                  "type": "string",
                  "description": "The primary tax rate charged for this line",
                  "format": "decimal",
                  "example": "19.99"
                },
                "tax2Rate": {
                  "type": "string",
                  "description": "The secondary tax rate charged for this line",
                  "format": "decimal",
                  "example": "19.99"
                },
                "taxCodeId": {
                  "type": "string",
                  "format": "uuid",
                  "example": "00000000-0000-0000-0000-000000000000"
                },
                "timestamp": {
                  "type": "string",
                  "description": "You can optionally include the last-known timestamp when modifying to protect against concurrent modifications.",
                  "format": "rowversion",
                  "example": "0000000000310AB6"
                },
                "unitPrice": {
                  "type": "string",
                  "description": "The price charged per unit of measure",
                  "format": "decimal",
                  "example": "19.99"
                },
                "product": {
                  "$ref": "#/components/schemas/Product"
                },
                "taxCode": {
                  "$ref": "#/components/schemas/TaxCode"
                }
              }
            },
            "description": "Lines representing which goods have been ordered and returned"
          },
          "location": {
            "$ref": "#/components/schemas/Location"
          },
          "packLines": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "containerNumber": {
                  "type": "string",
                  "description": "The container/box number that this product is being packed into"
                },
                "description": {
                  "type": "string",
                  "description": "A human-readable description for the product being packed (can be customized specifically this order)"
                },
                "productId": {
                  "type": "string",
                  "format": "uuid",
                  "example": "00000000-0000-0000-0000-000000000000"
                },
                "quantity": {
                  "$ref": "#/components/schemas/QuantityWithUom"
                },
                "salesOrderPackLineId": {
                  "type": "string",
                  "description": "The primary identifier for this sales order pack line. <a href=\"#section/Overview/Write-requests\">When inserting, you should specify this by generating a GUID</a>. Not shown to users",
                  "format": "uuid",
                  "example": "00000000-0000-0000-0000-000000000000"
                },
                "timestamp": {
                  "type": "string",
                  "description": "You can optionally include the last-known timestamp when modifying to protect against concurrent modifications.",
                  "format": "rowversion",
                  "example": "0000000000310AB6"
                },
                "product": {
                  "$ref": "#/components/schemas/Product"
                }
              }
            },
            "description": "Lines representing which goods have been packed into which boxes for shipping"
          },
          "paymentLines": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "amount": {
                  "type": "string",
                  "description": "The amount being paid",
                  "format": "decimal",
                  "example": "19.99"
                },
                "datePaid": {
                  "type": "string",
                  "description": "The date this payment or refund was made",
                  "format": "date-time",
                  "example": "2020-01-31"
                },
                "lineNum": {
                  "type": "integer",
                  "description": "A number representing the sequence of this payment line",
                  "format": "int32",
                  "example": 1
                },
                "paymentMethod": {
                  "type": "string",
                  "description": "Method of payment",
                  "example": "Mastercard"
                },
                "paymentType": {
                  "enum": [
                    "Payment",
                    "BatchPayment",
                    "ApplyCredit",
                    "ConvertToCredit",
                    "Refund",
                    "InFlowPay",
                    "Exchange"
                  ],
                  "type": "string",
                  "description": "The type of payment or refund"
                },
                "referenceNumber": {
                  "type": "string",
                  "description": "A reference number for this payment, e.g. check number",
                  "example": "0043"
                },
                "remarks": {
                  "type": "string",
                  "description": "Any extra remarks about this payment"
                },
                "salesOrderPaymentHistoryLineId": {
                  "type": "string",
                  "description": "The primary identifier for this sales order payment history line. <a href=\"#section/Overview/Write-requests\">When inserting, you should specify this by generating a GUID</a>. Not shown to users",
                  "format": "uuid",
                  "example": "00000000-0000-0000-0000-000000000000"
                },
                "timestamp": {
                  "type": "string",
                  "description": "You can optionally include the last-known timestamp when modifying to protect against concurrent modifications.",
                  "format": "rowversion",
                  "example": "0000000000310AB6"
                }
              }
            },
            "description": "Lines representing a history of payment details for this order."
          },
          "paymentTerms": {
            "$ref": "#/components/schemas/PaymentTerms"
          },
          "pickAllocationFailures": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "hasExpiredLotsInStock": {
                  "type": "boolean",
                  "description": "Whether the product has expired lots in stock (excluded from allocation)"
                },
                "lineNum": {
                  "type": "integer",
                  "description": "Line number shared with PickLines and PickAllocationLines for UI ordering",
                  "format": "int32",
                  "example": "100"
                },
                "productId": {
                  "type": "string",
                  "format": "uuid",
                  "example": "00000000-0000-0000-0000-000000000000"
                },
                "quantity": {
                  "$ref": "#/components/schemas/QuantityWithUom"
                },
                "salesOrderPickAllocationFailureId": {
                  "type": "string",
                  "description": "The primary identifier for this allocation failure line.",
                  "format": "uuid",
                  "example": "00000000-0000-0000-0000-000000000000"
                },
                "timestamp": {
                  "type": "string",
                  "description": "You can optionally include the last-known timestamp when modifying to protect against concurrent modifications.",
                  "format": "rowversion",
                  "example": "0000000000310AB6"
                },
                "product": {
                  "$ref": "#/components/schemas/Product"
                }
              }
            },
            "description": "Lines representing inventory that could not be allocated for picking (out of stock)"
          },
          "pickAllocationLines": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "lineNum": {
                  "type": "integer",
                  "description": "Line number shared with PickLines and PickAllocationFailures for UI ordering",
                  "format": "int32",
                  "example": "100"
                },
                "locationId": {
                  "type": "string",
                  "format": "uuid",
                  "example": "00000000-0000-0000-0000-000000000000"
                },
                "productId": {
                  "type": "string",
                  "format": "uuid",
                  "example": "00000000-0000-0000-0000-000000000000"
                },
                "quantity": {
                  "$ref": "#/components/schemas/QuantityWithUom"
                },
                "salesOrderPickAllocationLineId": {
                  "type": "string",
                  "description": "The primary identifier for this allocation line.",
                  "format": "uuid",
                  "example": "00000000-0000-0000-0000-000000000000"
                },
                "sublocation": {
                  "type": "string",
                  "description": "The sublocation this product is allocated from"
                },
                "timestamp": {
                  "type": "string",
                  "description": "You can optionally include the last-known timestamp when modifying to protect against concurrent modifications.",
                  "format": "rowversion",
                  "example": "0000000000310AB6"
                },
                "location": {
                  "$ref": "#/components/schemas/Location"
                },
                "product": {
                  "$ref": "#/components/schemas/Product"
                }
              }
            },
            "description": "Lines representing inventory allocated for picking (created when picking starts)"
          },
          "pickLines": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "description": {
                  "type": "string",
                  "description": "A human-readable description for the product being picked (can be customized specifically this order)"
                },
                "lineNum": {
                  "type": "integer",
                  "description": "The display order position of this pick line within the pick list.",
                  "format": "int32",
                  "example": "100"
                },
                "locationId": {
                  "type": "string",
                  "format": "uuid",
                  "example": "00000000-0000-0000-0000-000000000000"
                },
                "pickDate": {
                  "type": "string",
                  "description": "The date that this line was picked",
                  "format": "date-time",
                  "example": "2020-01-31"
                },
                "productId": {
                  "type": "string",
                  "format": "uuid",
                  "example": "00000000-0000-0000-0000-000000000000"
                },
                "quantity": {
                  "$ref": "#/components/schemas/QuantityWithUom"
                },
                "salesOrderPickLineId": {
                  "type": "string",
                  "description": "The primary identifier for this sales order pick line. <a href=\"#section/Overview/Write-requests\">When inserting, you should specify this by generating a GUID</a>. Not shown to users",
                  "format": "uuid",
                  "example": "00000000-0000-0000-0000-000000000000"
                },
                "sublocation": {
                  "type": "string",
                  "description": "The sublocation this product is being picked from",
                  "example": "C-19"
                },
                "timestamp": {
                  "type": "string",
                  "description": "You can optionally include the last-known timestamp when modifying to protect against concurrent modifications.",
                  "format": "rowversion",
                  "example": "0000000000310AB6"
                },
                "location": {
                  "$ref": "#/components/schemas/Location"
                },
                "product": {
                  "$ref": "#/components/schemas/Product"
                }
              }
            },
            "description": "Lines representing which goods have been picked from your warehouse"
          },
          "pricingScheme": {
            "$ref": "#/components/schemas/PricingScheme"
          },
          "restockLines": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "description": {
                  "type": "string",
                  "description": "A human-readable description for the product being restocked (can be customized specifically this order)"
                },
                "locationId": {
                  "type": "string",
                  "format": "uuid",
                  "example": "00000000-0000-0000-0000-000000000000"
                },
                "productId": {
                  "type": "string",
                  "format": "uuid",
                  "example": "00000000-0000-0000-0000-000000000000"
                },
                "quantity": {
                  "$ref": "#/components/schemas/QuantityWithUom"
                },
                "restockDate": {
                  "type": "string",
                  "description": "The date that this item was restocked",
                  "format": "date-time",
                  "example": "2020-01-31"
                },
                "salesOrderRestockLineId": {
                  "type": "string",
                  "description": "The primary identifier for this sales order restock line. <a href=\"#section/Overview/Write-requests\">When inserting, you should specify this by generating a GUID</a>. Not shown to users",
                  "format": "uuid",
                  "example": "00000000-0000-0000-0000-000000000000"
                },
                "sublocation": {
                  "type": "string",
                  "description": "The sublocation that this item is being restocked into",
                  "example": "C-19"
                },
                "timestamp": {
                  "type": "string",
                  "description": "You can optionally include the last-known timestamp when modifying to protect against concurrent modifications.",
                  "format": "rowversion",
                  "example": "0000000000310AB6"
                },
                "location": {
                  "$ref": "#/components/schemas/Location"
                },
                "product": {
                  "$ref": "#/components/schemas/Product"
                }
              }
            },
            "description": "Lines representing which returned items have been restocked"
          },
          "salesRepTeamMember": {
            "$ref": "#/components/schemas/TeamMember"
          },
          "shipLines": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "carrier": {
                  "type": "string",
                  "description": "The carrier or shipping method for these items",
                  "example": "FedEx"
                },
                "containers": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "A list of container numbers (see ```SalesOrderPackLine```) being shipped"
                },
                "easyPostConfirmationEmailAddress": {
                  "type": "string",
                  "description": "The email address associated with the shipment, will be used for the EasyPost confirmation email when the shipment starts."
                },
                "easyPostShipmentId": {
                  "type": "string",
                  "description": "A shipment ID from EasyPost.  Read-only (should only be set by inFlow system calls)."
                },
                "easyPostShipmentStatus": {
                  "enum": [
                    "Manual",
                    "Open",
                    "Purchased"
                  ],
                  "type": "string",
                  "description": "Whether this shipment has been integrated with EasyPost, and if so, whether the label has been purchased.  Read-only (should only be set by inFlow system calls)."
                },
                "salesOrderShipLineId": {
                  "type": "string",
                  "description": "The primary identifier for this sales order ship line. <a href=\"#section/Overview/Write-requests\">When inserting, you should specify this by generating a GUID</a>. Not shown to users",
                  "format": "uuid",
                  "example": "00000000-0000-0000-0000-000000000000"
                },
                "shippedDate": {
                  "type": "string",
                  "description": "The date these items were shipped",
                  "format": "date-time",
                  "nullable": true,
                  "example": "2020-01-31"
                },
                "timestamp": {
                  "type": "string",
                  "description": "You can optionally include the last-known timestamp when modifying to protect against concurrent modifications.",
                  "format": "rowversion",
                  "example": "0000000000310AB6"
                },
                "trackingNumber": {
                  "type": "string",
                  "description": "The tracking number associated with shipment"
                }
              }
            },
            "description": "Lines representing which boxes have been shipped"
          },
          "taxingScheme": {
            "$ref": "#/components/schemas/TaxingScheme"
          }
        }
      },
      "SalesOrderCostOfGoodsSold": {
        "type": "object",
        "properties": {
          "costOfGoodsSold": {
            "type": "string",
            "description": "For completed orders, the cost of goods sold in your home currency",
            "format": "decimal",
            "nullable": true,
            "example": "19.99"
          },
          "salesOrderCostOfGoodsSoldId": {
            "type": "string",
            "description": "The primary identifier of this cost information."
          },
          "salesOrderId": {
            "type": "string",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "salesOrder": {
            "$ref": "#/components/schemas/SalesOrder"
          }
        }
      },
      "SalesOrderLine": {
        "type": "object",
        "properties": {
          "description": {
            "type": "string",
            "description": "A human-readable description for the product being ordered or returned (can be customized specifically this order)"
          },
          "discount": {
            "$ref": "#/components/schemas/PercentOrFixedAmount"
          },
          "isDiscarded": {
            "type": "boolean",
            "description": "For lines with negative quantities, ```true``` if the items should be discarded, not restocked (e.g. for damaged items)"
          },
          "productId": {
            "type": "string",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "quantity": {
            "$ref": "#/components/schemas/QuantityWithUom"
          },
          "returnDate": {
            "type": "string",
            "description": "For lines with negative quantities, the date the item was returned.",
            "format": "date-time",
            "nullable": true,
            "example": "2020-01-31"
          },
          "salesOrderLineId": {
            "type": "string",
            "description": "The primary identifier for this sales order line. <a href=\"#section/Overview/Write-requests\">When inserting, you should specify this by generating a GUID</a>. Not shown to users",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "serviceCompleted": {
            "type": "boolean",
            "description": "For service lines, whether the service has been completed. Should be null if not a service, or not-null if a service.",
            "nullable": true
          },
          "subTotal": {
            "type": "string",
            "description": "The subtotal for this line (calculated from Quantity, UnitPrice and Discount)",
            "format": "decimal",
            "example": "19.99"
          },
          "tax1Rate": {
            "type": "string",
            "description": "The primary tax rate charged for this line",
            "format": "decimal",
            "example": "19.99"
          },
          "tax2Rate": {
            "type": "string",
            "description": "The secondary tax rate charged for this line",
            "format": "decimal",
            "example": "19.99"
          },
          "taxCodeId": {
            "type": "string",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "timestamp": {
            "type": "string",
            "description": "You can optionally include the last-known timestamp when modifying to protect against concurrent modifications.",
            "format": "rowversion",
            "example": "0000000000310AB6"
          },
          "unitPrice": {
            "type": "string",
            "description": "The price charged per unit of measure",
            "format": "decimal",
            "example": "19.99"
          },
          "product": {
            "$ref": "#/components/schemas/Product"
          },
          "taxCode": {
            "$ref": "#/components/schemas/TaxCode"
          }
        }
      },
      "SalesOrderPackLine": {
        "type": "object",
        "properties": {
          "containerNumber": {
            "type": "string",
            "description": "The container/box number that this product is being packed into"
          },
          "description": {
            "type": "string",
            "description": "A human-readable description for the product being packed (can be customized specifically this order)"
          },
          "productId": {
            "type": "string",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "quantity": {
            "$ref": "#/components/schemas/QuantityWithUom"
          },
          "salesOrderPackLineId": {
            "type": "string",
            "description": "The primary identifier for this sales order pack line. <a href=\"#section/Overview/Write-requests\">When inserting, you should specify this by generating a GUID</a>. Not shown to users",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "timestamp": {
            "type": "string",
            "description": "You can optionally include the last-known timestamp when modifying to protect against concurrent modifications.",
            "format": "rowversion",
            "example": "0000000000310AB6"
          },
          "product": {
            "$ref": "#/components/schemas/Product"
          }
        }
      },
      "SalesOrderPaymentHistoryLine": {
        "type": "object",
        "properties": {
          "amount": {
            "type": "string",
            "description": "The amount being paid",
            "format": "decimal",
            "example": "19.99"
          },
          "datePaid": {
            "type": "string",
            "description": "The date this payment or refund was made",
            "format": "date-time",
            "example": "2020-01-31"
          },
          "lineNum": {
            "type": "integer",
            "description": "A number representing the sequence of this payment line",
            "format": "int32",
            "example": 1
          },
          "paymentMethod": {
            "type": "string",
            "description": "Method of payment",
            "example": "Mastercard"
          },
          "paymentType": {
            "enum": [
              "Payment",
              "BatchPayment",
              "ApplyCredit",
              "ConvertToCredit",
              "Refund",
              "InFlowPay",
              "Exchange"
            ],
            "type": "string",
            "description": "The type of payment or refund"
          },
          "referenceNumber": {
            "type": "string",
            "description": "A reference number for this payment, e.g. check number",
            "example": "0043"
          },
          "remarks": {
            "type": "string",
            "description": "Any extra remarks about this payment"
          },
          "salesOrderPaymentHistoryLineId": {
            "type": "string",
            "description": "The primary identifier for this sales order payment history line. <a href=\"#section/Overview/Write-requests\">When inserting, you should specify this by generating a GUID</a>. Not shown to users",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "timestamp": {
            "type": "string",
            "description": "You can optionally include the last-known timestamp when modifying to protect against concurrent modifications.",
            "format": "rowversion",
            "example": "0000000000310AB6"
          }
        }
      },
      "SalesOrderPickAllocationFailure": {
        "type": "object",
        "properties": {
          "hasExpiredLotsInStock": {
            "type": "boolean",
            "description": "Whether the product has expired lots in stock (excluded from allocation)"
          },
          "lineNum": {
            "type": "integer",
            "description": "Line number shared with PickLines and PickAllocationLines for UI ordering",
            "format": "int32",
            "example": "100"
          },
          "productId": {
            "type": "string",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "quantity": {
            "$ref": "#/components/schemas/QuantityWithUom"
          },
          "salesOrderPickAllocationFailureId": {
            "type": "string",
            "description": "The primary identifier for this allocation failure line.",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "timestamp": {
            "type": "string",
            "description": "You can optionally include the last-known timestamp when modifying to protect against concurrent modifications.",
            "format": "rowversion",
            "example": "0000000000310AB6"
          },
          "product": {
            "$ref": "#/components/schemas/Product"
          }
        }
      },
      "SalesOrderPickAllocationLine": {
        "type": "object",
        "properties": {
          "lineNum": {
            "type": "integer",
            "description": "Line number shared with PickLines and PickAllocationFailures for UI ordering",
            "format": "int32",
            "example": "100"
          },
          "locationId": {
            "type": "string",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "productId": {
            "type": "string",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "quantity": {
            "$ref": "#/components/schemas/QuantityWithUom"
          },
          "salesOrderPickAllocationLineId": {
            "type": "string",
            "description": "The primary identifier for this allocation line.",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "sublocation": {
            "type": "string",
            "description": "The sublocation this product is allocated from"
          },
          "timestamp": {
            "type": "string",
            "description": "You can optionally include the last-known timestamp when modifying to protect against concurrent modifications.",
            "format": "rowversion",
            "example": "0000000000310AB6"
          },
          "location": {
            "$ref": "#/components/schemas/Location"
          },
          "product": {
            "$ref": "#/components/schemas/Product"
          }
        }
      },
      "SalesOrderPickLine": {
        "type": "object",
        "properties": {
          "description": {
            "type": "string",
            "description": "A human-readable description for the product being picked (can be customized specifically this order)"
          },
          "lineNum": {
            "type": "integer",
            "description": "The display order position of this pick line within the pick list.",
            "format": "int32",
            "example": "100"
          },
          "locationId": {
            "type": "string",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "pickDate": {
            "type": "string",
            "description": "The date that this line was picked",
            "format": "date-time",
            "example": "2020-01-31"
          },
          "productId": {
            "type": "string",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "quantity": {
            "$ref": "#/components/schemas/QuantityWithUom"
          },
          "salesOrderPickLineId": {
            "type": "string",
            "description": "The primary identifier for this sales order pick line. <a href=\"#section/Overview/Write-requests\">When inserting, you should specify this by generating a GUID</a>. Not shown to users",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "sublocation": {
            "type": "string",
            "description": "The sublocation this product is being picked from",
            "example": "C-19"
          },
          "timestamp": {
            "type": "string",
            "description": "You can optionally include the last-known timestamp when modifying to protect against concurrent modifications.",
            "format": "rowversion",
            "example": "0000000000310AB6"
          },
          "location": {
            "$ref": "#/components/schemas/Location"
          },
          "product": {
            "$ref": "#/components/schemas/Product"
          }
        }
      },
      "SalesOrderRestockLine": {
        "type": "object",
        "properties": {
          "description": {
            "type": "string",
            "description": "A human-readable description for the product being restocked (can be customized specifically this order)"
          },
          "locationId": {
            "type": "string",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "productId": {
            "type": "string",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "quantity": {
            "$ref": "#/components/schemas/QuantityWithUom"
          },
          "restockDate": {
            "type": "string",
            "description": "The date that this item was restocked",
            "format": "date-time",
            "example": "2020-01-31"
          },
          "salesOrderRestockLineId": {
            "type": "string",
            "description": "The primary identifier for this sales order restock line. <a href=\"#section/Overview/Write-requests\">When inserting, you should specify this by generating a GUID</a>. Not shown to users",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "sublocation": {
            "type": "string",
            "description": "The sublocation that this item is being restocked into",
            "example": "C-19"
          },
          "timestamp": {
            "type": "string",
            "description": "You can optionally include the last-known timestamp when modifying to protect against concurrent modifications.",
            "format": "rowversion",
            "example": "0000000000310AB6"
          },
          "location": {
            "$ref": "#/components/schemas/Location"
          },
          "product": {
            "$ref": "#/components/schemas/Product"
          }
        }
      },
      "SalesOrderShipLine": {
        "type": "object",
        "properties": {
          "carrier": {
            "type": "string",
            "description": "The carrier or shipping method for these items",
            "example": "FedEx"
          },
          "containers": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "A list of container numbers (see ```SalesOrderPackLine```) being shipped"
          },
          "easyPostConfirmationEmailAddress": {
            "type": "string",
            "description": "The email address associated with the shipment, will be used for the EasyPost confirmation email when the shipment starts."
          },
          "easyPostShipmentId": {
            "type": "string",
            "description": "A shipment ID from EasyPost.  Read-only (should only be set by inFlow system calls)."
          },
          "easyPostShipmentStatus": {
            "enum": [
              "Manual",
              "Open",
              "Purchased"
            ],
            "type": "string",
            "description": "Whether this shipment has been integrated with EasyPost, and if so, whether the label has been purchased.  Read-only (should only be set by inFlow system calls)."
          },
          "salesOrderShipLineId": {
            "type": "string",
            "description": "The primary identifier for this sales order ship line. <a href=\"#section/Overview/Write-requests\">When inserting, you should specify this by generating a GUID</a>. Not shown to users",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "shippedDate": {
            "type": "string",
            "description": "The date these items were shipped",
            "format": "date-time",
            "nullable": true,
            "example": "2020-01-31"
          },
          "timestamp": {
            "type": "string",
            "description": "You can optionally include the last-known timestamp when modifying to protect against concurrent modifications.",
            "format": "rowversion",
            "example": "0000000000310AB6"
          },
          "trackingNumber": {
            "type": "string",
            "description": "The tracking number associated with shipment"
          }
        }
      },
      "StockAdjustment": {
        "type": "object",
        "properties": {
          "adjustmentNumber": {
            "type": "string",
            "description": "An identifier for this stock adjustment and shown on printed documents.",
            "example": "SA-000123"
          },
          "adjustmentReasonId": {
            "type": "string",
            "format": "uuid",
            "nullable": true,
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "customFields": {
            "$ref": "#/components/schemas/LargeCustomFieldValues"
          },
          "date": {
            "type": "string",
            "description": "The effective date of this stock adjustment.",
            "format": "date-time",
            "example": "2020-01-31"
          },
          "isCancelled": {
            "type": "boolean",
            "description": "Whether this adjustment is cancelled (being cancelled voids inventory movements)"
          },
          "lastModifiedById": {
            "type": "string",
            "description": "The inFlow Team Member, system process, or API key that last modified this stock adjustment. This is set automatically, and cannot be set through the API.",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "locationId": {
            "type": "string",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "remarks": {
            "type": "string",
            "description": "Any extra comments on this stock adjustment"
          },
          "stockAdjustmentId": {
            "type": "string",
            "description": "The primary identifier for this stock adjustment. . <a href=\"#section/Overview/Write-requests\">When inserting, you should specify this by generating a GUID</a>. Not shown to users",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "timestamp": {
            "type": "string",
            "description": "You can optionally include the last-known timestamp when modifying to protect against concurrent modifications.",
            "format": "rowversion",
            "example": "0000000000310AB6"
          },
          "adjustmentReason": {
            "$ref": "#/components/schemas/AdjustmentReason"
          },
          "attachments": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "attachmentId": {
                  "type": "string",
                  "description": "The attachmentId to be fetched.",
                  "format": "uuid",
                  "example": "00000000-0000-0000-0000-000000000000"
                },
                "attachmentUrl": {
                  "type": "string",
                  "description": "The Url associated with the attachment"
                },
                "fileName": {
                  "type": "string",
                  "description": "The human-readable name for this attachment."
                },
                "fileSize": {
                  "$ref": "#/components/schemas/Int64"
                },
                "lastModDttm": {
                  "type": "string",
                  "description": "The DateTimeOffset when this attachment was last modified.",
                  "format": "date-time",
                  "example": "2020-01-31"
                },
                "lastModifiedById": {
                  "type": "string",
                  "description": "The inFlow Team Member, system process, or API key that last modified this attachment.",
                  "format": "uuid",
                  "example": "00000000-0000-0000-0000-000000000000"
                },
                "lastModifiedBy": {
                  "$ref": "#/components/schemas/TeamMember"
                }
              }
            },
            "description": "File attachments included with this stock adjustment. (This is a read-only attribute.)"
          },
          "lastModifiedBy": {
            "$ref": "#/components/schemas/TeamMember"
          },
          "lines": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "description": {
                  "type": "string",
                  "description": "A human-readable description for the product being adjusted (can be customized specifically for this adjustment)"
                },
                "productId": {
                  "type": "string",
                  "format": "uuid",
                  "example": "00000000-0000-0000-0000-000000000000"
                },
                "quantity": {
                  "$ref": "#/components/schemas/QuantityWithUom"
                },
                "stockAdjustmentLineId": {
                  "type": "string",
                  "description": "The primary identifier for this stock adjustment line. . <a href=\"#section/Overview/Write-requests\">When inserting, you should specify this by generating a GUID</a>. Not shown to users",
                  "format": "uuid",
                  "example": "00000000-0000-0000-0000-000000000000"
                },
                "sublocation": {
                  "type": "string",
                  "description": "The sublocation this inventory is being adjusted in",
                  "example": "C-19"
                },
                "timestamp": {
                  "type": "string",
                  "description": "You can optionally include the last-known timestamp when modifying to protect against concurrent modifications.",
                  "format": "rowversion",
                  "example": "0000000000310AB6"
                },
                "product": {
                  "$ref": "#/components/schemas/Product"
                }
              }
            },
            "description": "Lines representing which inventory levels are being adjusted"
          },
          "location": {
            "$ref": "#/components/schemas/Location"
          }
        }
      },
      "StockAdjustmentLine": {
        "type": "object",
        "properties": {
          "description": {
            "type": "string",
            "description": "A human-readable description for the product being adjusted (can be customized specifically for this adjustment)"
          },
          "productId": {
            "type": "string",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "quantity": {
            "$ref": "#/components/schemas/QuantityWithUom"
          },
          "stockAdjustmentLineId": {
            "type": "string",
            "description": "The primary identifier for this stock adjustment line. . <a href=\"#section/Overview/Write-requests\">When inserting, you should specify this by generating a GUID</a>. Not shown to users",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "sublocation": {
            "type": "string",
            "description": "The sublocation this inventory is being adjusted in",
            "example": "C-19"
          },
          "timestamp": {
            "type": "string",
            "description": "You can optionally include the last-known timestamp when modifying to protect against concurrent modifications.",
            "format": "rowversion",
            "example": "0000000000310AB6"
          },
          "product": {
            "$ref": "#/components/schemas/Product"
          }
        }
      },
      "StockCount": {
        "type": "object",
        "properties": {
          "assignedToTeamMemberId": {
            "type": "string",
            "format": "uuid",
            "nullable": true,
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "completedDate": {
            "type": "string",
            "description": "The date this stock count was completed",
            "format": "date-time",
            "nullable": true,
            "example": "2020-01-31"
          },
          "isCancelled": {
            "type": "boolean",
            "description": "Whether this count sheet is cancelled (being cancelled voids inventory adjustments)"
          },
          "isCompleted": {
            "type": "boolean",
            "description": "Whether this stock count is completed (inventory adjustmentments are made when completed)"
          },
          "isPrepared": {
            "type": "boolean",
            "description": "Whether or not the user has gone through the prepare count modal"
          },
          "isReviewed": {
            "type": "boolean",
            "description": "Whether this stock count has been reviewed"
          },
          "isStarted": {
            "type": "boolean",
            "description": "Whether this stock count is ready for counting"
          },
          "lastModifiedById": {
            "type": "string",
            "description": "The inFlow Team Member, system process, or API key that last modified this stock count. This is set automatically, and cannot be set through the API.",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "locationId": {
            "type": "string",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "remarks": {
            "type": "string",
            "description": "Any extra comments on this stock count"
          },
          "startedDate": {
            "type": "string",
            "description": "The date this stock count was started",
            "format": "date-time",
            "nullable": true,
            "example": "2020-01-31"
          },
          "status": {
            "enum": [
              "Open",
              "InProgress",
              "InReview",
              "Completed"
            ],
            "type": "string",
            "description": "The status of this stock count"
          },
          "stockCountId": {
            "type": "string",
            "description": "The primary identifier for this stock count. <a href=\"#section/Overview/Write-requests\">When inserting, you should specify this by generating a GUID</a>. Not shown to users",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "stockCountNumber": {
            "type": "string",
            "description": "The number of this stock count",
            "example": "SC-000123"
          },
          "timestamp": {
            "type": "string",
            "description": "You can optionally include the last-known timestamp when modifying to protect against concurrent modifications.",
            "format": "rowversion",
            "example": "0000000000310AB6"
          },
          "assignedToTeamMember": {
            "$ref": "#/components/schemas/TeamMember"
          },
          "attachments": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "attachmentId": {
                  "type": "string",
                  "description": "The attachmentId to be fetched.",
                  "format": "uuid",
                  "example": "00000000-0000-0000-0000-000000000000"
                },
                "attachmentUrl": {
                  "type": "string",
                  "description": "The Url associated with the attachment"
                },
                "fileName": {
                  "type": "string",
                  "description": "The human-readable name for this attachment."
                },
                "fileSize": {
                  "$ref": "#/components/schemas/Int64"
                },
                "lastModDttm": {
                  "type": "string",
                  "description": "The DateTimeOffset when this attachment was last modified.",
                  "format": "date-time",
                  "example": "2020-01-31"
                },
                "lastModifiedById": {
                  "type": "string",
                  "description": "The inFlow Team Member, system process, or API key that last modified this attachment.",
                  "format": "uuid",
                  "example": "00000000-0000-0000-0000-000000000000"
                },
                "lastModifiedBy": {
                  "$ref": "#/components/schemas/TeamMember"
                }
              }
            },
            "description": "File attachments included with this stock count. (This is a read-only attribute.)"
          },
          "lastModifiedBy": {
            "$ref": "#/components/schemas/TeamMember"
          },
          "location": {
            "$ref": "#/components/schemas/Location"
          },
          "sheets": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "assignedToTeamMemberId": {
                  "type": "string",
                  "format": "uuid",
                  "nullable": true,
                  "example": "00000000-0000-0000-0000-000000000000"
                },
                "completedDate": {
                  "type": "string",
                  "description": "The date this sheet was completed",
                  "format": "date-time",
                  "nullable": true,
                  "example": "2020-01-31"
                },
                "countSheetId": {
                  "type": "string",
                  "description": "The primary identifier for this count sheet. <a href=\"#section/Overview/Write-requests\">When inserting, you should specify this by generating a GUID</a>. Not shown to users",
                  "format": "uuid",
                  "example": "00000000-0000-0000-0000-000000000000"
                },
                "isCancelled": {
                  "type": "boolean",
                  "description": "Whether this count sheet is cancelled (being cancelled voids inventory adjustments)"
                },
                "isCompleted": {
                  "type": "boolean",
                  "description": "Whether this count sheet is completed (inventory adjustmentments are made when completed)"
                },
                "lastModifiedById": {
                  "type": "string",
                  "description": "The inFlow Team Member, system process, or API key that last modified this count sheet. This is set automatically, and cannot be set through the API.",
                  "format": "uuid",
                  "example": "00000000-0000-0000-0000-000000000000"
                },
                "remarks": {
                  "type": "string",
                  "description": "Any extra comments on this count sheet"
                },
                "sheetNumber": {
                  "type": "integer",
                  "description": "The number of this sheet as part of the stock count",
                  "format": "int32",
                  "example": 1
                },
                "startedDate": {
                  "type": "string",
                  "description": "The date this sheet was started",
                  "format": "date-time",
                  "nullable": true,
                  "example": "2020-01-31"
                },
                "status": {
                  "enum": [
                    "Open",
                    "InProgress",
                    "Completed"
                  ],
                  "type": "string",
                  "description": "The status of this count sheet"
                },
                "stockCountId": {
                  "type": "string",
                  "format": "uuid",
                  "example": "00000000-0000-0000-0000-000000000000"
                },
                "timestamp": {
                  "type": "string",
                  "description": "You can optionally include the last-known timestamp when modifying to protect against concurrent modifications.",
                  "format": "rowversion",
                  "example": "0000000000310AB6"
                },
                "assignedToTeamMember": {
                  "$ref": "#/components/schemas/TeamMember"
                },
                "lastModifiedBy": {
                  "$ref": "#/components/schemas/TeamMember"
                },
                "lines": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "countedQuantity": {
                        "$ref": "#/components/schemas/QuantityWithUom"
                      },
                      "countSheetLineId": {
                        "type": "string",
                        "description": "The primary identifier for this count sheet line. . <a href=\"#section/Overview/Write-requests\">When inserting, you should specify this by generating a GUID</a>. Not shown to users",
                        "format": "uuid",
                        "example": "00000000-0000-0000-0000-000000000000"
                      },
                      "description": {
                        "type": "string",
                        "description": "A human-readable description for the product being counted (can be customized specifically for this count sheet)"
                      },
                      "productId": {
                        "type": "string",
                        "format": "uuid",
                        "example": "00000000-0000-0000-0000-000000000000"
                      },
                      "snapshotQuantity": {
                        "$ref": "#/components/schemas/QuantityWithUom"
                      },
                      "sublocation": {
                        "type": "string",
                        "description": "The sublocation this inventory is being counted for",
                        "example": "C-19"
                      },
                      "timestamp": {
                        "type": "string",
                        "description": "You can optionally include the last-known timestamp when modifying to protect against concurrent modifications.",
                        "format": "rowversion",
                        "example": "0000000000310AB6"
                      },
                      "product": {
                        "$ref": "#/components/schemas/Product"
                      }
                    }
                  },
                  "description": "Lines representing which inventory levels are being adjusted"
                },
                "stockCount": {
                  "$ref": "#/components/schemas/StockCount"
                }
              }
            },
            "description": "Count sheets that are part of this stock count"
          }
        }
      },
      "StockTransfer": {
        "type": "object",
        "properties": {
          "assignedToTeamMemberId": {
            "type": "string",
            "format": "uuid",
            "nullable": true,
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "customFields": {
            "$ref": "#/components/schemas/LargeCustomFieldValues"
          },
          "fromLocationId": {
            "type": "string",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "isCancelled": {
            "type": "boolean",
            "description": "Whether this adjustment is cancelled (being cancelled voids inventory movements)"
          },
          "lastModifiedById": {
            "type": "string",
            "description": "The inFlow Team Member, system process, or API key that last modified this stock transfer. This is set automatically, and cannot be set through the API.",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "receivedDate": {
            "type": "string",
            "description": "The date stock was added to the destination location.",
            "format": "date-time",
            "nullable": true,
            "example": "2020-01-31"
          },
          "remarks": {
            "type": "string",
            "description": "Any extra comments on this stock transfer"
          },
          "sentDate": {
            "type": "string",
            "description": "The date stock was removed from the source location.",
            "format": "date-time",
            "nullable": true,
            "example": "2020-01-31"
          },
          "status": {
            "enum": [
              "Open",
              "InTransit",
              "Completed"
            ],
            "type": "string",
            "description": "The status of the stock transfer (this determines when stock is removed and added)"
          },
          "stockTransferId": {
            "type": "string",
            "description": "The primary identifier for this stock transfer. . <a href=\"#section/Overview/Write-requests\">When inserting, you should specify this by generating a GUID</a>. Not shown to users",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "timestamp": {
            "type": "string",
            "description": "You can optionally include the last-known timestamp when modifying to protect against concurrent modifications.",
            "format": "rowversion",
            "example": "0000000000310AB6"
          },
          "toLocationId": {
            "type": "string",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "transferDate": {
            "type": "string",
            "description": "The date this stock transfer was requested.",
            "format": "date-time",
            "example": "2020-01-31"
          },
          "transferNumber": {
            "type": "string",
            "description": "An identifier for this stock transfer and shown on printed documents.",
            "example": "ST-000123"
          },
          "assignedToTeamMember": {
            "$ref": "#/components/schemas/TeamMember"
          },
          "attachments": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "attachmentId": {
                  "type": "string",
                  "description": "The attachmentId to be fetched.",
                  "format": "uuid",
                  "example": "00000000-0000-0000-0000-000000000000"
                },
                "attachmentUrl": {
                  "type": "string",
                  "description": "The Url associated with the attachment"
                },
                "fileName": {
                  "type": "string",
                  "description": "The human-readable name for this attachment."
                },
                "fileSize": {
                  "$ref": "#/components/schemas/Int64"
                },
                "lastModDttm": {
                  "type": "string",
                  "description": "The DateTimeOffset when this attachment was last modified.",
                  "format": "date-time",
                  "example": "2020-01-31"
                },
                "lastModifiedById": {
                  "type": "string",
                  "description": "The inFlow Team Member, system process, or API key that last modified this attachment.",
                  "format": "uuid",
                  "example": "00000000-0000-0000-0000-000000000000"
                },
                "lastModifiedBy": {
                  "$ref": "#/components/schemas/TeamMember"
                }
              }
            },
            "description": "File attachments included with this stock transfer. (This is a read-only attribute.)"
          },
          "fromLocation": {
            "$ref": "#/components/schemas/Location"
          },
          "lastModifiedBy": {
            "$ref": "#/components/schemas/TeamMember"
          },
          "lines": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "description": {
                  "type": "string",
                  "description": "A human-readable description for the product being adjusted (can be customized specifically for this transfer)"
                },
                "fromSublocation": {
                  "type": "string",
                  "description": "The sublocation (within the source location) where inventory is being moved from",
                  "example": "C-19"
                },
                "productId": {
                  "type": "string",
                  "format": "uuid",
                  "example": "00000000-0000-0000-0000-000000000000"
                },
                "quantity": {
                  "$ref": "#/components/schemas/QuantityWithUom"
                },
                "stockTransferLineId": {
                  "type": "string",
                  "description": "The primary identifier for this stock transfer line. <a href=\"#section/Overview/Write-requests\">When inserting, you should specify this by generating a GUID</a>. Not shown to users",
                  "format": "uuid",
                  "example": "00000000-0000-0000-0000-000000000000"
                },
                "timestamp": {
                  "type": "string",
                  "description": "You can optionally include the last-known timestamp when modifying to protect against concurrent modifications.",
                  "format": "rowversion",
                  "example": "0000000000310AB6"
                },
                "toSublocation": {
                  "type": "string",
                  "description": "The sublocation (within the destination location) where inventory is being moved to",
                  "example": "A-09"
                },
                "product": {
                  "$ref": "#/components/schemas/Product"
                }
              }
            },
            "description": "Lines representing which the inventory movements"
          },
          "toLocation": {
            "$ref": "#/components/schemas/Location"
          }
        }
      },
      "StockTransferLine": {
        "type": "object",
        "properties": {
          "description": {
            "type": "string",
            "description": "A human-readable description for the product being adjusted (can be customized specifically for this transfer)"
          },
          "fromSublocation": {
            "type": "string",
            "description": "The sublocation (within the source location) where inventory is being moved from",
            "example": "C-19"
          },
          "productId": {
            "type": "string",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "quantity": {
            "$ref": "#/components/schemas/QuantityWithUom"
          },
          "stockTransferLineId": {
            "type": "string",
            "description": "The primary identifier for this stock transfer line. <a href=\"#section/Overview/Write-requests\">When inserting, you should specify this by generating a GUID</a>. Not shown to users",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "timestamp": {
            "type": "string",
            "description": "You can optionally include the last-known timestamp when modifying to protect against concurrent modifications.",
            "format": "rowversion",
            "example": "0000000000310AB6"
          },
          "toSublocation": {
            "type": "string",
            "description": "The sublocation (within the destination location) where inventory is being moved to",
            "example": "A-09"
          },
          "product": {
            "$ref": "#/components/schemas/Product"
          }
        }
      },
      "StockroomScanObjectSubset": {
        "type": "object",
        "properties": {
          "attributes": {
            "type": "object",
            "additionalProperties": {
              "nullable": true
            },
            "nullable": true
          },
          "relationships": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/IObjectSubset"
              },
              "nullable": true
            },
            "nullable": true
          },
          "meta": {
            "type": "object",
            "additionalProperties": {
              "nullable": true
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "StockroomUserObjectSubset": {
        "type": "object",
        "properties": {
          "attributes": {
            "type": "object",
            "additionalProperties": {
              "nullable": true
            },
            "nullable": true
          },
          "relationships": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/IObjectSubset"
              },
              "nullable": true
            },
            "nullable": true
          },
          "meta": {
            "type": "object",
            "additionalProperties": {
              "nullable": true
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "SuggestedSublocationsObjectSubset": {
        "type": "object",
        "properties": {
          "attributes": {
            "type": "object",
            "additionalProperties": {
              "nullable": true
            },
            "nullable": true
          },
          "relationships": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/IObjectSubset"
              },
              "nullable": true
            },
            "nullable": true
          },
          "meta": {
            "type": "object",
            "additionalProperties": {
              "nullable": true
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "SuggestedSublocationsWithInventoryObjectSubset": {
        "type": "object",
        "properties": {
          "attributes": {
            "type": "object",
            "additionalProperties": {
              "nullable": true
            },
            "nullable": true
          },
          "relationships": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/IObjectSubset"
              },
              "nullable": true
            },
            "nullable": true
          },
          "meta": {
            "type": "object",
            "additionalProperties": {
              "nullable": true
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "TaxCode": {
        "type": "object",
        "properties": {
          "isActive": {
            "type": "boolean",
            "description": "Tax codes with ```IsActive = false``` are deactivated and hidden away for new usage."
          },
          "name": {
            "type": "string",
            "description": "Human-readable name for this tax code.",
            "example": "Taxable"
          },
          "tax1Rate": {
            "type": "string",
            "description": "Percentage of the primary tax for this tax code.",
            "format": "decimal",
            "example": "19.99"
          },
          "tax2Rate": {
            "type": "string",
            "description": "Percentage of the secondary tax for this tax code.",
            "format": "decimal",
            "example": "19.99"
          },
          "taxCodeId": {
            "type": "string",
            "description": "The primary identifier for this tax code. <b>When inserting a tax code, you should specify this by generating a GUID</b>. Not shown to users",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "taxingSchemeId": {
            "type": "string",
            "description": "The taxing scheme that this tax code is for",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "timestamp": {
            "type": "string",
            "description": "You can optionally include the last-known timestamp when modifying to protect against concurrent modifications.",
            "format": "rowversion",
            "example": "0000000000310AB6"
          },
          "taxingScheme": {
            "$ref": "#/components/schemas/TaxingScheme"
          }
        }
      },
      "TaxingScheme": {
        "type": "object",
        "properties": {
          "calculateTax2OnTax1": {
            "type": "boolean",
            "description": "Whether a secondary tax should be compounded on top of the primary tax"
          },
          "defaultTaxCodeId": {
            "type": "string",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "isActive": {
            "type": "boolean",
            "description": "Taxing schemes with ```IsActive = false``` are deactivated and hidden away for new usage."
          },
          "isDefault": {
            "type": "boolean",
            "description": "Only one taxing scheme, your company-wide default, should have ```IsDefault = true```."
          },
          "name": {
            "type": "string",
            "description": "Human-readable name for this pricing scheme. Not shown to customers on invoices, etc.",
            "example": "NYC sales tax"
          },
          "tax1Name": {
            "type": "string",
            "description": "A short name for display of the primary tax",
            "example": "VAT"
          },
          "tax1OnShipping": {
            "type": "boolean",
            "description": "Whether the primary tax applies to shipping/freight costs"
          },
          "tax2Name": {
            "type": "string",
            "description": "A short name for display of the secondary tax",
            "example": "PST"
          },
          "tax2OnShipping": {
            "type": "boolean",
            "description": "Whether the secondary tax applies to shipping/freight costs"
          },
          "taxingSchemeId": {
            "type": "string",
            "description": "The primary identifier for this taxing scheme. <a href=\"#section/Overview/Write-requests\">When inserting, you should specify this by generating a GUID</a>. Not shown to users",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "timestamp": {
            "type": "string",
            "description": "You can optionally include the last-known timestamp when modifying to protect against concurrent modifications.",
            "format": "rowversion",
            "example": "0000000000310AB6"
          },
          "defaultTaxCode": {
            "$ref": "#/components/schemas/TaxCode"
          },
          "taxCodes": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "isActive": {
                  "type": "boolean",
                  "description": "Tax codes with ```IsActive = false``` are deactivated and hidden away for new usage."
                },
                "name": {
                  "type": "string",
                  "description": "Human-readable name for this tax code.",
                  "example": "Taxable"
                },
                "tax1Rate": {
                  "type": "string",
                  "description": "Percentage of the primary tax for this tax code.",
                  "format": "decimal",
                  "example": "19.99"
                },
                "tax2Rate": {
                  "type": "string",
                  "description": "Percentage of the secondary tax for this tax code.",
                  "format": "decimal",
                  "example": "19.99"
                },
                "taxCodeId": {
                  "type": "string",
                  "description": "The primary identifier for this tax code. <b>When inserting a tax code, you should specify this by generating a GUID</b>. Not shown to users",
                  "format": "uuid",
                  "example": "00000000-0000-0000-0000-000000000000"
                },
                "taxingSchemeId": {
                  "type": "string",
                  "description": "The taxing scheme that this tax code is for",
                  "format": "uuid",
                  "example": "00000000-0000-0000-0000-000000000000"
                },
                "timestamp": {
                  "type": "string",
                  "description": "You can optionally include the last-known timestamp when modifying to protect against concurrent modifications.",
                  "format": "rowversion",
                  "example": "0000000000310AB6"
                },
                "taxingScheme": {
                  "$ref": "#/components/schemas/TaxingScheme"
                }
              }
            },
            "description": "A list of other potential tax codes (percentages) for this taxing scheme, e.g. for tax-exempt items"
          }
        }
      },
      "TeamMember": {
        "type": "object",
        "properties": {
          "accessAllLocations": {
            "type": "boolean",
            "description": "Whether this team member has access to all locations"
          },
          "accessLocationIds": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid",
              "example": "00000000-0000-0000-0000-000000000000"
            },
            "description": "If CanAccessAllLocations is false, then the list of Location ids that this team member has access to."
          },
          "accessRights": {
            "type": "array",
            "items": {
              "enum": [
                "SALES_SalesOrder_View",
                "SALES_SalesOrder_Edit",
                "SALES_SalesOrder_Pick",
                "SALES_SalesOrder_Approve",
                "SALES_SalesOrder_Prioritization",
                "SALES_Customer_View",
                "SALES_Customer_Edit",
                "SALES_SalesPrices_Edit",
                "PUR_PurchaseOrder_View",
                "PUR_PurchaseOrder_Edit",
                "PUR_PurchaseOrder_Receive",
                "PUR_Vendor_View",
                "PUR_Vendor_Edit",
                "INV_ReorderStock_Edit",
                "INV_CountSheet_View",
                "INV_CountSheet_Edit",
                "INV_CountSheet_Only",
                "INV_TransferStock_View",
                "INV_TransferStock_Edit",
                "INV_TransferStock_Approve",
                "INV_AdjustStock_View",
                "INV_AdjustStock_Edit",
                "INV_CurrentStock_View",
                "INV_History_View",
                "INV_Product_View",
                "INV_Product_Edit",
                "INV_CostInfo_View",
                "INV_CostInfo_Edit",
                "INV_ProductCategory_Edit",
                "INV_WorkOrder_View",
                "INV_WorkOrder_Edit",
                "INV_WorkOrder_Mobile",
                "INV_WorkOrder_Prioritization",
                "INV_StockroomScan_View",
                "INV_StockroomScan_Edit",
                "INV_EstimatedLaborHours_View",
                "INV_EstimatedLaborHours_Edit",
                "INV_ActualLaborHours_View",
                "INV_ActualLaborHours_Edit",
                "INV_CurrentOperations_View",
                "INV_CurrentOperations_Edit",
                "SETG_Settings_View",
                "SETG_Settings_Edit",
                "SETG_Import_Edit",
                "SETG_Export_Edit",
                "SETG_Backup_Edit",
                "SETG_PrintSettings_View",
                "SETG_PrintSettings_Edit",
                "SETG_RestoreReset_Edit",
                "SETG_Integration_Edit",
                "RPT_Reports_View"
              ],
              "type": "string"
            },
            "description": "A list of access rights given to this team member."
          },
          "canBeSalesRep": {
            "type": "boolean",
            "description": "Whether this team member should be included as a choice for sales rep."
          },
          "email": {
            "type": "string",
            "description": "The email address associated with this user."
          },
          "isActive": {
            "type": "boolean",
            "description": "Whether this user is currently an active inFlow user."
          },
          "isInternal": {
            "type": "boolean",
            "description": "Whether this user is an internal inFlow system account"
          },
          "name": {
            "type": "string",
            "description": "The name of this inFlow user.",
            "example": "John Doe"
          },
          "teamMemberId": {
            "type": "string",
            "description": "The primary identifier for this user. Not shown to users",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          }
        }
      },
      "UnitOfMeasure": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Name of this alternate unit of measure"
          },
          "conversionRatio": {
            "$ref": "#/components/schemas/UomConversionRatio"
          }
        }
      },
      "UomConversionRatio": {
        "type": "object",
        "properties": {
          "standardQuantity": {
            "type": "string",
            "description": "A quantity in the standard unit of measure such that the two parts are equal",
            "format": "decimal",
            "example": "19.99"
          },
          "uomQuantity": {
            "type": "string",
            "description": "A quantity in this unit of measure such that the two parts are equal",
            "format": "decimal",
            "example": "19.99"
          }
        }
      },
      "ValueCollection": {
        "type": "object",
        "properties": {
          "count": {
            "type": "integer",
            "format": "int32",
            "example": "100"
          }
        }
      },
      "Vendor": {
        "type": "object",
        "properties": {
          "contactName": {
            "type": "string",
            "description": "Name of your primary contact for this vendor",
            "example": "John Smith"
          },
          "currencyId": {
            "type": "string",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "customFields": {
            "$ref": "#/components/schemas/LargeCustomFieldValues"
          },
          "defaultAddressId": {
            "type": "string",
            "format": "uuid",
            "nullable": true,
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "defaultCarrier": {
            "type": "string",
            "description": "The default shipment method for this vendor",
            "example": "FedEx"
          },
          "defaultPaymentMethod": {
            "type": "string",
            "description": "The default payment method that you use to pay for purchase orders with this vendor",
            "example": "Mastercard"
          },
          "defaultPaymentTermsId": {
            "type": "string",
            "format": "uuid",
            "nullable": true,
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "discount": {
            "type": "string",
            "description": "Percentage discount that you receive by default on orders to this vendor",
            "format": "decimal",
            "example": 10
          },
          "email": {
            "type": "string",
            "description": "Primary contact email for this vendor",
            "example": "john@acmewidget.com"
          },
          "fax": {
            "type": "string",
            "description": "Fax number for this vendor",
            "example": "555-123-4567"
          },
          "isActive": {
            "type": "boolean",
            "description": "Vendors with ```IsActive = false``` are deactivated and hidden away for new usage."
          },
          "isTaxInclusivePricing": {
            "type": "boolean",
            "description": "Whether this vendor's prices are tax-inclusive, or whether tax should be added on top of those prices."
          },
          "lastModifiedById": {
            "type": "string",
            "description": "The inFlow Team Member, system process, or API key that last modified this vendor. This is set automatically, and cannot be set through the API.",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "lastModifiedDttm": {
            "type": "string",
            "description": "The last time this vendor was modified. This is set automatically, and cannot be set through the API.",
            "format": "date-time",
            "example": "2020-01-31"
          },
          "leadTimeDays": {
            "type": "integer",
            "description": "For reordering purposes, how many days it typically takes to receive shipments from this vendor.",
            "format": "int32",
            "nullable": true,
            "example": 14
          },
          "name": {
            "type": "string",
            "description": "Vendor's name (human-readable, typically a business name)",
            "example": "Acme Widget Co."
          },
          "phone": {
            "type": "string",
            "description": "Phone number for this vendor",
            "example": "555-123-4567"
          },
          "remarks": {
            "type": "string",
            "description": "Any additional remarks regarding this vendor"
          },
          "taxingSchemeId": {
            "type": "string",
            "format": "uuid",
            "nullable": true,
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "timestamp": {
            "type": "string",
            "description": "You can optionally include the last-known timestamp when modifying to protect against concurrent modifications.",
            "format": "rowversion",
            "example": "0000000000310AB6"
          },
          "vendorId": {
            "type": "string",
            "description": "The primary identifier for this vendor. <a href=\"#section/Overview/Write-requests\">When inserting, you should specify this by generating a GUID</a>. Not shown to users",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "website": {
            "type": "string",
            "description": "Vendor's website",
            "example": "www.acmewidget.com"
          },
          "addresses": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "address": {
                  "$ref": "#/components/schemas/Address"
                },
                "name": {
                  "type": "string",
                  "description": "A descriptive name of this address, e.g. \"New York Store\""
                },
                "timestamp": {
                  "type": "string",
                  "description": "You can optionally include the last-known timestamp when modifying to protect against concurrent modifications.",
                  "format": "rowversion",
                  "example": "0000000000310AB6"
                },
                "vendorAddressId": {
                  "type": "string",
                  "description": "The primary identifier for this vendor address. <a href=\"#section/Overview/Write-requests\">When inserting, you should specify this by generating a GUID</a>. Not shown to users",
                  "format": "uuid",
                  "example": "00000000-0000-0000-0000-000000000000"
                },
                "vendorId": {
                  "type": "string",
                  "format": "uuid",
                  "example": "00000000-0000-0000-0000-000000000000"
                },
                "vendor": {
                  "$ref": "#/components/schemas/Vendor"
                }
              }
            },
            "description": "This list of all addresses (e.g. stores) for this vendor"
          },
          "attachments": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "attachmentId": {
                  "type": "string",
                  "description": "The attachmentId to be fetched.",
                  "format": "uuid",
                  "example": "00000000-0000-0000-0000-000000000000"
                },
                "attachmentUrl": {
                  "type": "string",
                  "description": "The Url associated with the attachment"
                },
                "fileName": {
                  "type": "string",
                  "description": "The human-readable name for this attachment."
                },
                "fileSize": {
                  "$ref": "#/components/schemas/Int64"
                },
                "lastModDttm": {
                  "type": "string",
                  "description": "The DateTimeOffset when this attachment was last modified.",
                  "format": "date-time",
                  "example": "2020-01-31"
                },
                "lastModifiedById": {
                  "type": "string",
                  "description": "The inFlow Team Member, system process, or API key that last modified this attachment.",
                  "format": "uuid",
                  "example": "00000000-0000-0000-0000-000000000000"
                },
                "lastModifiedBy": {
                  "$ref": "#/components/schemas/TeamMember"
                }
              }
            },
            "description": "File attachments included with this vendor. (This is a read-only attribute.)"
          },
          "balances": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "balance": {
                  "type": "string",
                  "description": "The amount that you owe this vendor in the specified currency.",
                  "format": "decimal",
                  "example": 500
                },
                "currencyId": {
                  "type": "string",
                  "format": "uuid",
                  "nullable": true,
                  "example": "00000000-0000-0000-0000-000000000000"
                },
                "vendorBalanceId": {
                  "type": "string",
                  "description": "The primary identifier for this vendor balance. Not shown to users"
                },
                "vendorId": {
                  "type": "string",
                  "format": "uuid",
                  "example": "00000000-0000-0000-0000-000000000000"
                },
                "currency": {
                  "$ref": "#/components/schemas/Currency"
                },
                "vendor": {
                  "$ref": "#/components/schemas/Vendor"
                }
              }
            },
            "description": "How much you owe this vendor (potentially in one or more currencies)"
          },
          "credits": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "credit": {
                  "type": "string",
                  "description": "The amount of store credit you have with this vendor in the specified currency.",
                  "format": "decimal",
                  "example": "19.99"
                },
                "currencyId": {
                  "type": "string",
                  "format": "uuid",
                  "nullable": true,
                  "example": "00000000-0000-0000-0000-000000000000"
                },
                "vendorCreditId": {
                  "type": "string",
                  "description": "The primary identifier for this vendor credit. Not shown to users"
                },
                "vendorId": {
                  "type": "string",
                  "format": "uuid",
                  "example": "00000000-0000-0000-0000-000000000000"
                },
                "currency": {
                  "$ref": "#/components/schemas/Currency"
                },
                "vendor": {
                  "$ref": "#/components/schemas/Vendor"
                }
              }
            },
            "description": "How much in store credit you have with this vendor (potentially in one or more currencies)"
          },
          "currency": {
            "$ref": "#/components/schemas/Currency"
          },
          "defaultAddress": {
            "$ref": "#/components/schemas/VendorAddress"
          },
          "defaultPaymentTerms": {
            "$ref": "#/components/schemas/PaymentTerms"
          },
          "dues": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "amount1To30": {
                  "type": "string",
                  "format": "decimal",
                  "example": "19.99"
                },
                "amount31To60": {
                  "type": "string",
                  "format": "decimal",
                  "example": "19.99"
                },
                "amount61Plus": {
                  "type": "string",
                  "format": "decimal",
                  "example": "19.99"
                },
                "amountCurrent": {
                  "type": "string",
                  "format": "decimal",
                  "example": "19.99"
                },
                "currencyId": {
                  "type": "string",
                  "format": "uuid",
                  "example": "00000000-0000-0000-0000-000000000000"
                },
                "vendorDueId": {
                  "type": "string"
                },
                "currency": {
                  "$ref": "#/components/schemas/Currency"
                }
              }
            },
            "description": "How much you owe this vendor (potentially in one or more currencies)"
          },
          "lastModifiedBy": {
            "$ref": "#/components/schemas/TeamMember"
          },
          "taxingScheme": {
            "$ref": "#/components/schemas/TaxingScheme"
          },
          "vendorItems": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "cost": {
                  "type": "string",
                  "description": "The cost for 1 purchasing unit of measure of this item, in the vendor's currency.",
                  "format": "decimal",
                  "nullable": true,
                  "example": 19.99
                },
                "leadTimeDays": {
                  "type": "integer",
                  "description": "The lead time for this product and vendor in days.  If blank, it falls back to the vendor's default lead time.",
                  "format": "int32",
                  "nullable": true,
                  "example": "100"
                },
                "lineNum": {
                  "type": "integer",
                  "description": "The order by which this vendor item is sorted",
                  "format": "int32",
                  "nullable": true,
                  "example": "100"
                },
                "productId": {
                  "type": "string",
                  "format": "uuid",
                  "example": "00000000-0000-0000-0000-000000000000"
                },
                "timestamp": {
                  "type": "string",
                  "description": "You can optionally include the last-known timestamp when modifying to protect against concurrent modifications.",
                  "format": "rowversion",
                  "example": "0000000000310AB6"
                },
                "vendorId": {
                  "type": "string",
                  "format": "uuid",
                  "example": "00000000-0000-0000-0000-000000000000"
                },
                "vendorItemCode": {
                  "type": "string",
                  "description": "The code by which this vendor refers to this item",
                  "example": "ABC-123"
                },
                "vendorItemId": {
                  "type": "string",
                  "description": "The primary identifier for this vendor item. <a href=\"#section/Overview/Write-requests\">When inserting, you should specify this by generating a GUID</a>. Not shown to users",
                  "format": "uuid",
                  "example": "00000000-0000-0000-0000-000000000000"
                },
                "product": {
                  "$ref": "#/components/schemas/Product"
                },
                "vendor": {
                  "$ref": "#/components/schemas/Vendor"
                }
              }
            },
            "description": "A list of items that this vendor sells to you"
          }
        }
      },
      "VendorAddress": {
        "type": "object",
        "properties": {
          "address": {
            "$ref": "#/components/schemas/Address"
          },
          "name": {
            "type": "string",
            "description": "A descriptive name of this address, e.g. \"New York Store\""
          },
          "timestamp": {
            "type": "string",
            "description": "You can optionally include the last-known timestamp when modifying to protect against concurrent modifications.",
            "format": "rowversion",
            "example": "0000000000310AB6"
          },
          "vendorAddressId": {
            "type": "string",
            "description": "The primary identifier for this vendor address. <a href=\"#section/Overview/Write-requests\">When inserting, you should specify this by generating a GUID</a>. Not shown to users",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "vendorId": {
            "type": "string",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "vendor": {
            "$ref": "#/components/schemas/Vendor"
          }
        }
      },
      "VendorBalance": {
        "type": "object",
        "properties": {
          "balance": {
            "type": "string",
            "description": "The amount that you owe this vendor in the specified currency.",
            "format": "decimal",
            "example": 500
          },
          "currencyId": {
            "type": "string",
            "format": "uuid",
            "nullable": true,
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "vendorBalanceId": {
            "type": "string",
            "description": "The primary identifier for this vendor balance. Not shown to users"
          },
          "vendorId": {
            "type": "string",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "currency": {
            "$ref": "#/components/schemas/Currency"
          },
          "vendor": {
            "$ref": "#/components/schemas/Vendor"
          }
        }
      },
      "VendorCredit": {
        "type": "object",
        "properties": {
          "credit": {
            "type": "string",
            "description": "The amount of store credit you have with this vendor in the specified currency.",
            "format": "decimal",
            "example": "19.99"
          },
          "currencyId": {
            "type": "string",
            "format": "uuid",
            "nullable": true,
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "vendorCreditId": {
            "type": "string",
            "description": "The primary identifier for this vendor credit. Not shown to users"
          },
          "vendorId": {
            "type": "string",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "currency": {
            "$ref": "#/components/schemas/Currency"
          },
          "vendor": {
            "$ref": "#/components/schemas/Vendor"
          }
        }
      },
      "VendorDue": {
        "type": "object",
        "properties": {
          "amount1To30": {
            "type": "string",
            "format": "decimal",
            "example": "19.99"
          },
          "amount31To60": {
            "type": "string",
            "format": "decimal",
            "example": "19.99"
          },
          "amount61Plus": {
            "type": "string",
            "format": "decimal",
            "example": "19.99"
          },
          "amountCurrent": {
            "type": "string",
            "format": "decimal",
            "example": "19.99"
          },
          "currencyId": {
            "type": "string",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "vendorDueId": {
            "type": "string"
          },
          "currency": {
            "$ref": "#/components/schemas/Currency"
          }
        }
      },
      "VendorItem": {
        "type": "object",
        "properties": {
          "cost": {
            "type": "string",
            "description": "The cost for 1 purchasing unit of measure of this item, in the vendor's currency.",
            "format": "decimal",
            "nullable": true,
            "example": 19.99
          },
          "leadTimeDays": {
            "type": "integer",
            "description": "The lead time for this product and vendor in days.  If blank, it falls back to the vendor's default lead time.",
            "format": "int32",
            "nullable": true,
            "example": "100"
          },
          "lineNum": {
            "type": "integer",
            "description": "The order by which this vendor item is sorted",
            "format": "int32",
            "nullable": true,
            "example": "100"
          },
          "productId": {
            "type": "string",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "timestamp": {
            "type": "string",
            "description": "You can optionally include the last-known timestamp when modifying to protect against concurrent modifications.",
            "format": "rowversion",
            "example": "0000000000310AB6"
          },
          "vendorId": {
            "type": "string",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "vendorItemCode": {
            "type": "string",
            "description": "The code by which this vendor refers to this item",
            "example": "ABC-123"
          },
          "vendorItemId": {
            "type": "string",
            "description": "The primary identifier for this vendor item. <a href=\"#section/Overview/Write-requests\">When inserting, you should specify this by generating a GUID</a>. Not shown to users",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "product": {
            "$ref": "#/components/schemas/Product"
          },
          "vendor": {
            "$ref": "#/components/schemas/Vendor"
          }
        }
      },
      "WebHookSubscription": {
        "type": "object",
        "properties": {
          "consecutiveFailureCount": {
            "type": "integer",
            "description": "Number of consecutive delivery failures. Resets to 0 on any successful delivery.",
            "format": "int32",
            "example": "100"
          },
          "events": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "A list of events that will trigger this webhook. Valid values are `customer.created`, `customer.updated`, `vendor.created`, `vendor.updated`, `purchaseOrder.created`, `purchaseOrder.updated`, `salesOrder.created`, `salesOrder.updated`, `product.created`, `product.updated`"
          },
          "isDisabled": {
            "type": "boolean",
            "description": "Whether this webhook has been automatically disabled due to repeated delivery failures."
          },
          "lastFailureMessage": {
            "type": "string",
            "description": "The last error message from a failed delivery attempt, if any."
          },
          "secret": {
            "type": "string",
            "description": "The secret key associated with this webhook subscription, used to generate the <a href=\"#tag/WebHooks\">HMAC header that is included with each webhook request</a>. Only returned at creation."
          },
          "url": {
            "type": "string",
            "description": "Webhook URL to call when an event gets triggered."
          },
          "webHookSubscriptionId": {
            "type": "string",
            "description": "The primary identifier for this webhook. <a href=\"#section/Overview/Write-requests\">When inserting, you should specify this by generating a GUID</a>.",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          }
        }
      },
      "WebHookSubscriptionRequest": {
        "type": "object",
        "properties": {
          "events": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "A list of events that will trigger this webhook. Valid values are `customer.created`, `customer.updated`, `vendor.created`, `vendor.updated`, `purchaseOrder.created`, `purchaseOrder.updated`, `salesOrder.created`, `salesOrder.updated`,  `product.created`, `product.updated`"
          },
          "url": {
            "type": "string",
            "description": "Webhook URL to call when an event gets triggered."
          },
          "webHookSubscriptionId": {
            "type": "string",
            "description": "The primary identifier for this webhook. <a href=\"#section/Overview/Write-requests\">When inserting, you should specify this by generating a GUID</a>.",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          },
          "webHookSubscriptionRequestId": {
            "type": "string",
            "format": "uuid",
            "example": "00000000-0000-0000-0000-000000000000"
          }
        }
      }
    }
  },
  "tags": [
    {
      "name": "AdjustmentReason",
      "description": "Adjustment reasons are pre-defined sets of reasons why stock adjustments may be made."
    },
    {
      "name": "Categories",
      "description": "A category is used for organizing products. Categories themselves can have parent categories and are arranged hierarchically into a tree structure."
    },
    {
      "name": "Currency",
      "description": "A currency, e.g. US dollar, Euro, along with its formatting rules. Read-only."
    },
    {
      "name": "Customer",
      "description": "A customer is an individual or business that you sell to."
    },
    {
      "name": "CustomFieldDefinitions"
    },
    {
      "name": "CustomFields"
    },
    {
      "name": "Location",
      "description": "A location most typically represents a warehouse or store.\nLocations can contain many sublocations, typically representing a bin number or shelf location. Sublocations do not need to be defined in advance.\ninFlow tracks inventory by location and sublocation."
    },
    {
      "name": "ManufacturingOrder",
      "description": "A manufacture order is for building finished products from raw materials, along with associated operations, picking, and put-away."
    },
    {
      "name": "OperationType",
      "description": "An OperationType is a type of work done in your manufacturing processes, e.g. assembly, welding."
    },
    {
      "name": "PaymentTerms",
      "description": "Payment terms describe details about payment, typically focusing on the number of days until payment is due. e.g.\nNET 30."
    },
    {
      "name": "PricingScheme",
      "description": "A pricing scheme is a set of prices that are commonly charged to customers, e.g. Retail price, Wholesale price, Canadian price."
    },
    {
      "name": "Product",
      "description": "A product is a type of physical good or service (depending on ```ItemType```) whose cost, inventory levels,\nsales, and movements can be tracked in inFlow."
    },
    {
      "name": "ProductCostAdjustment",
      "description": "A product cost adjustment is a recorded action that changes the inventory cost of a product"
    },
    {
      "name": "ProductGroup"
    },
    {
      "name": "PurchaseOrder",
      "description": "A purchase order is for tracking when you purchase goods or services from a vendor, along with associated payments, receiving, and returns."
    },
    {
      "name": "Report",
      "description": "Find and generate any of your saved reports."
    },
    {
      "name": "SalesOrder",
      "description": "A sales order is for tracking when a customer purchases goods or services from you, along with associated payments, fulfillments, and returns."
    },
    {
      "name": "StockAdjustment",
      "description": "A stock adjustment is a document that records some changes to inventory levels."
    },
    {
      "name": "StockCount",
      "description": "A stock count is a document that allows you to count the stock in a location."
    },
    {
      "name": "StockroomScan"
    },
    {
      "name": "StockroomUser",
      "description": "A stockroom user is someone who can perform stockroom scans in the inFlow Stockroom mobile app."
    },
    {
      "name": "StockTransfer",
      "description": "A stock transfer is a document that records inventory movements between locations/sublocations."
    },
    {
      "name": "TaxCode",
      "description": "A tax code is a named set of percentages for a taxing scheme, e.g. Taxable, Non-Taxable"
    },
    {
      "name": "TaxingScheme",
      "description": "A taxing scheme is a set of tax rules for sales or purchase orders, e.g. New York City sales tax"
    },
    {
      "name": "TeamMember"
    },
    {
      "name": "Vendor",
      "description": "A vendor is business (or individual) that you purchase from."
    },
    {
      "name": "WebHooks",
      "description": "Subscribe to webhooks to receive notifications when things are updated in inFlow.\n\n\nAll webhook requests will include a base64-encoded `x-inflow-hmac-sha256` header, which is generated using the webhook subscription's secret key and the data sent in the request. You may use this header to verify that the webhook request was sent by inFlow."
    }
  ]
}