{
  "openapi": "3.0.0",
  "x-stoplight": {
    "id": "929047a0ecf1b"
  },
  "info": {
    "title": "Flxpoint API",
    "version": "1.0",
    "description": "#### Welcome to Flxpoint's API Documentation\n\n",
    "contact": {
      "email": "api@flxpoint.com",
      "url": "https://app.flxpoint.com/contact",
      "name": "API Support"
    },
    "termsOfService": "http://flxpoint.com/terms-of-service"
  },
  "servers": [
    {
      "url": "https://api.flxpoint.com"
    },
    {
      "url": "http://localhost:8080"
    }
  ],
  "paths": {
    "/inventory/parents": {
      "parameters": [],
      "post": {
        "summary": "Create/Update Inventory",
        "operationId": "modifyInventory",
        "description": "Create or update up to 20 parents with variants at a time. This endpoint performs a full update of all data passed. Excluded fields will remain unchanged. This means that explicitly passing null for 'title' will null out title, but skipping passing any json for 'title' will preserve the previous value. For updating just variants (that already exist) with new prices/quantities see the `PUT Inventory Variants` endpoint.",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/InventoryParentSaveResponse"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "parameters": [
          {
            "name": "modifyParentOptions",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "none",
                "replace",
                "merge",
                "deleteIncluded"
              ]
            },
            "description": "Should options of the parent be modified"
          },
          {
            "name": "modifyVariantOptions",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "none",
                "replace",
                "merge",
                "deleteIncluded"
              ]
            },
            "description": "Should options of the variant be modified"
          },
          {
            "name": "modifyParentImages",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "none",
                "replace",
                "merge",
                "deleteIncluded"
              ]
            },
            "description": "Should images of the parent be modified"
          },
          {
            "name": "modifyVariantImages",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "none",
                "replace",
                "merge",
                "deleteIncluded"
              ]
            },
            "description": "Should images of the variant be modified"
          },
          {
            "name": "modifyParentCustomFields",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "none",
                "replace",
                "merge",
                "deleteIncluded"
              ]
            },
            "description": "Should custom fields of the parent be modified"
          },
          {
            "name": "modifyVariantCustomFields",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "none",
                "replace",
                "merge",
                "deleteIncluded"
              ]
            },
            "description": "Should custom fields of the variant be modified"
          },
          {
            "name": "modifyVariantCustomAggregateFields",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "none",
                "replace",
                "merge",
                "deleteIncluded"
              ]
            },
            "description": "Should custom aggregate fields of the variant be modified"
          },
          {
            "name": "modifyAttributes",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "none",
                "replace",
                "merge",
                "deleteIncluded"
              ]
            },
            "description": "Should attributes be modified"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "array",
                "maxItems": 100,
                "items": {
                  "$ref": "#/components/schemas/InventoryParentCreateOrUpdate"
                }
              },
              "examples": {
                "example-minimum": {
                  "value": [
                    {
                      "sku": "PARENT_SKU_A",
                      "variants": [
                        {
                          "sku": "VARIANT_SKU_A_1",
                          "quantity": 1
                        },
                        {
                          "sku": "VARIANT_SKU_A_2",
                          "quantity": 1
                        },
                        {
                          "sku": "VARIANT_SKU_A_3",
                          "quantity": 1
                        }
                      ]
                    },
                    {
                      "sku": "PARENT_SKU_B",
                      "variants": [
                        {
                          "sku": "VARIANT_SKU_B_1",
                          "quantity": 1
                        }
                      ]
                    },
                    {
                      "sku": "PARENT_SKU_C",
                      "variants": [
                        {
                          "sku": "VARIANT_SKU_C_1",
                          "quantity": 1
                        }
                      ]
                    }
                  ]
                }
              }
            }
          }
        },
        "tags": [
          "Inventory"
        ]
      }
    },
    "/inventory/variants": {
      "parameters": [],
      "get": {
        "summary": "Get Inventory Variants",
        "description": "This endpoint will fetch back a list of Inventory Variants. If values are provided for both `skus` and `ids` parameters only `ids` will be used.",
        "tags": [
          "Inventory"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/InventoryVariant"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "operationId": "getInventoryVariants",
        "parameters": [
          {
            "$ref": "#/components/parameters/page"
          },
          {
            "$ref": "#/components/parameters/pagesize"
          },
          {
            "schema": {
              "type": "integer"
            },
            "in": "query",
            "name": "sourceId",
            "description": "This will be automatically populated for Source API Tokens. Required if using an Account API Token"
          },
          {
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "in": "query",
            "name": "updatedAfter",
            "description": "Only retrieves back inventory records that hae been updated after the date specified"
          },
          {
            "$ref": "#/components/parameters/findbyskuspagesizebound"
          },
          {
            "$ref": "#/components/parameters/findbyupcspagesizebound"
          },
          {
            "$ref": "#/components/parameters/findbyids64pagesizebound"
          },
          {
            "$ref": "#/components/parameters/includeparent"
          },
          {
            "$ref": "#/components/parameters/includeimages"
          },
          {
            "$ref": "#/components/parameters/includeoptions"
          },
          {
            "$ref": "#/components/parameters/includeattributes"
          },
          {
            "$ref": "#/components/parameters/includecategories"
          },
          {
            "$ref": "#/components/parameters/includecustomfields"
          },
          {
            "$ref": "#/components/parameters/includecustomaggregates"
          },
          {
            "schema": {
              "type": "boolean",
              "default": true
            },
            "in": "query",
            "name": "includeLinkedProductVariants",
            "description": "If \"false\" is passed, the \"linkedProductVariants\" node will not be populated."
          },
          {
            "schema": {
              "type": "boolean",
              "default": false
            },
            "in": "query",
            "name": "filterNeedsDeleting",
            "description": "If \"true\" is passed, it will return inventory variants which are scheduled to delete."
          },
          {
            "schema": {
              "type": "boolean"
            },
            "in": "query",
            "name": "filterArchived",
            "description": "If \"true\" is passed, it will return only archived variants. If \"false\" is passed, only unarchived variants will be returned. The default value of null will return all variants."
          },
          {
            "schema": {
              "type": "string"
            },
            "in": "query",
            "name": "filterCustomFieldName",
            "description": "Filter inventory variants that contain a custom field matching the name provided."
          },
          {
            "schema": {
              "type": "string"
            },
            "in": "query",
            "name": "filterCustomFieldValue",
            "description": "Filter inventory variants that contain a custom field matching the value provided. Must be used in conjunction with a passed value for `filterCustomFieldName`, otherwise a `400` bad request will be returned."
          }
        ]
      },
      "put": {
        "summary": "Update Inventory Variants",
        "operationId": "updateInventoryVariants",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/UpdateInventoryVariantResponse"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          }
        },
        "description": "This endpoint is used to update inventory variants. (Up to 50 in one request)",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "array",
                "maxItems": 50,
                "items": {
                  "$ref": "#/components/schemas/UpdateInventoryVariantRequest"
                }
              },
              "examples": {
                "example-1": {
                  "value": [
                    {
                      "inventoryVariantId": 0,
                      "sku": "string",
                      "cost": 0,
                      "msrp": 0,
                      "map": 0,
                      "quantity": 0,
                      "shippingCost": 0,
                      "dropshipFee": 0,
                      "inventoryListPrice": 0,
                      "allowBackorders": true
                    }
                  ]
                }
              }
            }
          }
        },
        "tags": [
          "Inventory"
        ],
        "parameters": [
          {
            "schema": {
              "type": "string",
              "enum": [
                "none",
                "update",
                "updateNonNull"
              ],
              "default": "update"
            },
            "in": "query",
            "name": "modifyCost",
            "description": "Should the cost of the variant be modified"
          },
          {
            "schema": {
              "type": "string",
              "enum": [
                "none",
                "update",
                "updateNonNull"
              ],
              "default": "update"
            },
            "in": "query",
            "name": "modifyMsrp",
            "description": "Should the MSRP of the variant be modified"
          },
          {
            "schema": {
              "type": "string",
              "enum": [
                "none",
                "update",
                "updateNonNull"
              ],
              "default": "update"
            },
            "in": "query",
            "name": "modifyMap",
            "description": "Should the MAP of the variant be modified"
          },
          {
            "schema": {
              "type": "string",
              "enum": [
                "none",
                "update",
                "updateNonNull"
              ],
              "default": "update"
            },
            "in": "query",
            "name": "modifyQuantity",
            "description": "Should the quantity of the variant be modified"
          },
          {
            "schema": {
              "type": "string",
              "enum": [
                "none",
                "update",
                "updateNonNull"
              ],
              "default": "update"
            },
            "in": "query",
            "name": "modifyShippingCost",
            "description": "Should the shipping cost of the variant be modified"
          },
          {
            "schema": {
              "type": "string",
              "enum": [
                "none",
                "update",
                "updateNonNull"
              ],
              "default": "update"
            },
            "in": "query",
            "name": "modifyDropShipFee",
            "description": "Should the dropship fee of the variant be modified"
          },
          {
            "schema": {
              "type": "string",
              "enum": [
                "none",
                "update",
                "updateNonNull"
              ],
              "default": "update"
            },
            "in": "query",
            "name": "modifyInventoryListPrice",
            "description": "Should the inventory list price of the variant be modified"
          },
          {
            "schema": {
              "type": "string",
              "enum": [
                "none",
                "update",
                "updateNonNull"
              ],
              "default": "update"
            },
            "in": "query",
            "name": "modifyAllowBackorders",
            "description": "Should allow back orders of the variant be modified"
          },
          {
            "schema": {
              "type": "string"
            },
            "in": "query",
            "name": "modifyWeight",
            "description": "Should the weight of the variant be modified"
          },
          {
            "schema": {
              "type": "string"
            },
            "in": "query",
            "name": "modifyHeight",
            "description": "Should the height of the variant be modified"
          },
          {
            "schema": {
              "type": "string"
            },
            "in": "query",
            "name": "modifyLength",
            "description": "Should the length of the variant be modified"
          },
          {
            "schema": {
              "type": "string"
            },
            "in": "query",
            "name": "modifyWidth",
            "description": "Should the width of the variant be modified"
          },
          {
            "schema": {
              "type": "string"
            },
            "in": "query",
            "name": "modifyWeightUnit",
            "description": "Should the dimension unit of the variant be modified"
          },
          {
            "schema": {
              "type": "string"
            },
            "in": "query",
            "name": "modifyDimensionUnit",
            "description": "Should the weight unit of the variant be modified"
          },
          {
            "schema": {
              "type": "string",
              "enum": [
                "none",
                "update",
                "updateNonNull"
              ],
              "default": "updateNonNull"
            },
            "in": "query",
            "name": "modifyRequiresFfl",
            "description": "Should the `requiresFfl` field of the variant be modified"
          },
          {
            "name": "modifyCustomFields",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "none",
                "update",
                "merge",
                "deleteIncluded",
                "deleteAll"
              ]
            },
            "description": "Should custom fields of the variant be modified"
          }
        ]
      }
    },
    "/inventory/variant/{variantId}": {
      "parameters": [
        {
          "schema": {
            "type": "integer",
            "format": "int64"
          },
          "name": "variantId",
          "in": "path",
          "required": true
        }
      ],
      "get": {
        "summary": "Get Inventory Variant",
        "tags": [
          "Inventory"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InventoryVariant"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "operationId": "getInventoryVariantById",
        "parameters": [
          {
            "$ref": "#/components/parameters/includeparent"
          },
          {
            "$ref": "#/components/parameters/includeimages"
          },
          {
            "$ref": "#/components/parameters/includeoptions"
          },
          {
            "$ref": "#/components/parameters/includeattributes"
          },
          {
            "$ref": "#/components/parameters/includecategories"
          },
          {
            "$ref": "#/components/parameters/includecustomfields"
          },
          {
            "$ref": "#/components/parameters/includecustomaggregates"
          },
          {
            "schema": {
              "type": "boolean",
              "default": true
            },
            "in": "query",
            "name": "includeLinkedProductVariants",
            "description": "If \"false\" is passed, the \"linkedProductVariants\" node will not be populated."
          }
        ]
      },
      "delete": {
        "summary": "Delete Inventory Variant",
        "operationId": "deleteInventoryVariant",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeleteInventoryResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not Found"
          },
          "409": {
            "description": "Inventory variant is linked to product variant."
          }
        },
        "description": "Endpoint to delete inventory variants.",
        "parameters": [
          {
            "schema": {
              "type": "boolean",
              "default": true
            },
            "in": "query",
            "name": "deleteParentIfLastVariant",
            "description": "Delete the parent product if the variant being deleted is the last variant. Default `True`"
          }
        ],
        "tags": [
          "Inventory"
        ]
      }
    },
    "/inventory/parent/{parentId}": {
      "parameters": [
        {
          "schema": {
            "type": "integer"
          },
          "name": "parentId",
          "in": "path",
          "required": true
        }
      ],
      "delete": {
        "summary": "Delete Inventory Parent",
        "tags": [
          "Inventory"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeleteInventoryResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not Found"
          },
          "409": {
            "description": "Conflict"
          }
        },
        "operationId": "deleteInventoryParent",
        "description": "Endpoint to delete parent inventory and all of its variants."
      }
    },
    "/inventory/search/variant": {
      "get": {
        "summary": "[Deprecated] Search Inventory Variants",
        "description": "Deprecated, please use GET /inventory/variants",
        "deprecated": true,
        "tags": [
          "Inventory"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/InventoryVariant"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "operationId": "listInventoryVariants",
        "parameters": [
          {
            "schema": {
              "type": "integer"
            },
            "in": "query",
            "name": "filterSourceId",
            "description": "ID of source whose inventory is required"
          },
          {
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "in": "query",
            "name": "filterUpdatedAfter",
            "description": "Retrieve inventory variants updated after this date"
          },
          {
            "schema": {
              "type": "integer",
              "default": 1
            },
            "in": "query",
            "name": "filterPageNumber",
            "description": "Current Page"
          },
          {
            "schema": {
              "type": "integer",
              "default": 20,
              "minimum": 1,
              "maximum": 100
            },
            "in": "query",
            "name": "filterPageSize",
            "description": "Number of entries per page"
          },
          {
            "schema": {
              "type": "string"
            },
            "in": "query",
            "name": "filterByInventoryVariantIds",
            "description": "Inventory variant IDs separated by a comma"
          },
          {
            "schema": {
              "type": "array",
              "maxItems": 100,
              "example": "SKU123,SKU456,SKU789",
              "uniqueItems": true,
              "items": {
                "type": "string"
              }
            },
            "in": "query",
            "name": "filterBySkus",
            "description": "A list of Inventory Variant SKUs to filter on. Max must be less than or equal to filterPageSize. Recommended to not include full metadata while using this. This will work in conjunction with the other `filter` params EXCEPT `filterByIds`.",
            "style": "form",
            "explode": false
          },
          {
            "schema": {
              "type": "array",
              "maxItems": 100,
              "example": "123,456,789",
              "uniqueItems": true,
              "items": {
                "type": "integer",
                "format": "int64"
              }
            },
            "in": "query",
            "name": "ids",
            "description": "Finds elements matching these IDs. Max must be less than or equal to filterPageSize.",
            "style": "form",
            "explode": false
          },
          {
            "schema": {
              "type": "boolean",
              "default": false
            },
            "in": "query",
            "name": "includeParent",
            "description": "If \"true\" is passed, the \"parent\" node will be populated with Inventory Parent information. NOTE : The \"variants\" will be empty in this node to prevent circular references."
          },
          {
            "schema": {
              "type": "boolean",
              "default": true
            },
            "in": "query",
            "name": "includeImages",
            "description": "If \"false\" is passed, the \"image\" and \"parent.image\" nodes will not be populated"
          },
          {
            "schema": {
              "type": "boolean",
              "default": true
            },
            "in": "query",
            "name": "includeOptions",
            "description": "If \"false\" is passed, the \"options\" and \"parent.options\" nodes will not be populated"
          },
          {
            "schema": {
              "type": "boolean",
              "default": false
            },
            "in": "query",
            "name": "includeAttributes",
            "description": "If \"true\" is passed, the \"parent.attributes\" node will be populated. "
          },
          {
            "schema": {
              "type": "boolean",
              "default": false
            },
            "in": "query",
            "name": "includeCategories",
            "description": "If \"true\" is passed, the parent category nodes will be populated."
          },
          {
            "schema": {
              "type": "boolean",
              "default": false
            },
            "in": "query",
            "name": "includeCustomFields",
            "description": "If \"true\" is passed, the \"parent.customFields\" node will be populated. "
          },
          {
            "schema": {
              "type": "boolean",
              "default": true
            },
            "in": "query",
            "name": "includeCustomAggregates",
            "description": "If \"false\" is passed, the \"customAggregates\" node will not be populated. "
          },
          {
            "schema": {
              "type": "boolean",
              "default": true
            },
            "in": "query",
            "name": "includeLinkedProductVariants",
            "description": "If \"false\" is passed, the \"linkedProductvariants\" node will not be populated."
          },
          {
            "schema": {
              "type": "boolean",
              "default": false
            },
            "in": "query",
            "name": "filterNeedsDeleting",
            "description": "If \"true\" is passed, it will return inventory variants which are scheduled to delete."
          }
        ]
      },
      "parameters": []
    },
    "/inventory/variant/{variantId}/pair": {
      "parameters": [
        {
          "schema": {
            "type": "integer",
            "format": "int64"
          },
          "name": "variantId",
          "in": "path",
          "required": true
        }
      ],
      "get": {
        "summary": "[Deprecated] Get Inventory Pair",
        "tags": [
          "Inventory"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InventoryPair"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "operationId": "getInventoryVariantPairByVariantId",
        "parameters": [],
        "deprecated": true,
        "description": "Deprecated - recommended to use `/inventory/variants` endpoints with `includeParent`"
      }
    },
    "/inventory/{parentId}/{variantId}": {
      "parameters": [
        {
          "schema": {
            "type": "integer"
          },
          "name": "parentId",
          "in": "path",
          "required": true
        },
        {
          "schema": {
            "type": "integer",
            "format": "int64"
          },
          "name": "variantId",
          "in": "path",
          "required": true
        }
      ],
      "get": {
        "summary": "[Deprecated] Get Inventory Pair",
        "tags": [
          "Inventory"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InventoryPair"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "operationId": "getInventoryPair",
        "description": "Deprecated, use `/inventory/variant/{variantId}` with `includeParent`",
        "parameters": [],
        "deprecated": true
      }
    },
    "/inventory/{sourceId}/variant": {
      "parameters": [
        {
          "$ref": "#/components/parameters/sourceid"
        }
      ],
      "get": {
        "summary": "[Deprecated] Get Inventory Variant",
        "tags": [
          "Inventory"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InventoryVariant"
                }
              }
            }
          },
          "400": {
            "description": "If neither `findBySku` or `findById` is passed."
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "operationId": "getInventoryVariant",
        "parameters": [
          {
            "$ref": "#/components/parameters/findbysku"
          },
          {
            "in": "query",
            "name": "findById",
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "description": "Find a variant by ID"
          },
          {
            "schema": {
              "type": "boolean",
              "default": false
            },
            "in": "query",
            "name": "includeParent",
            "description": "If \"true\" is passed, the \"parent\" node will be populated with Inventory Parent information. NOTE : The \"variants\" will be empty in this node to prevent circular references."
          },
          {
            "schema": {
              "type": "boolean",
              "default": true
            },
            "in": "query",
            "name": "includeImages",
            "description": "If \"false\" is passed, the \"image\" and \"parent.image\" nodes will not be populated"
          },
          {
            "schema": {
              "type": "boolean",
              "default": true
            },
            "in": "query",
            "name": "includeOptions",
            "description": "If \"false\" is passed, the \"options\" and \"parent.options\" nodes will not be populated"
          },
          {
            "schema": {
              "type": "boolean",
              "default": false
            },
            "in": "query",
            "name": "includeAttributes",
            "description": "If \"true\" is passed, the \"parent.attributes\" node will be populated. "
          },
          {
            "schema": {
              "type": "boolean",
              "default": false
            },
            "in": "query",
            "name": "includeCategories",
            "description": "If \"true\" is passed, the parent category nodes will be populated."
          },
          {
            "schema": {
              "type": "boolean",
              "default": false
            },
            "in": "query",
            "name": "includeCustomFields",
            "description": "If \"true\" is passed, the \"parent.customFields\" node will be populated. "
          },
          {
            "schema": {
              "type": "boolean",
              "default": true
            },
            "in": "query",
            "description": "If \"false\" is passed, the \"customAggregates\" node will not be populated. ",
            "name": "includeCustomAggregates"
          }
        ],
        "deprecated": true,
        "description": "Deprecated. Use `GET /inventory/variant/{variantId}` to find by ID or `GET /inventory/variants` with `findBySKUs`"
      }
    },
    "/inventory/{sourceId}/parent": {
      "parameters": [
        {
          "$ref": "#/components/parameters/sourceid"
        }
      ],
      "get": {
        "summary": "[Deprecated] Get Inventory Parent",
        "tags": [
          "Inventory"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InventoryParent"
                }
              }
            }
          },
          "400": {
            "description": "If neither `findBySku` or `findById` is passed."
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "deprecated": true,
        "operationId": "getInventoryParent",
        "parameters": [
          {
            "$ref": "#/components/parameters/findbysku"
          },
          {
            "$ref": "#/components/parameters/findbyid"
          },
          {
            "$ref": "#/components/parameters/includevariants"
          }
        ],
        "description": ""
      }
    },
    "/inventory": {
      "parameters": [],
      "post": {
        "summary": "[Deprecated] Create/Update Inventory",
        "operationId": "postInventory",
        "deprecated": true,
        "description": "Create or update up to 20 parents with variants at a time. This endpoint performs a full update of all data passed. This means any null/missing values provided will also be updated. For updating just variants (that already exist) with new prices/quantities see the `PUT Inventory Variants` endpoint.",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/InventoryParentCreateOrUpdateResponse"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "parameters": [],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "array",
                "maxItems": 20,
                "items": {
                  "$ref": "#/components/schemas/InventoryParentCreateOrUpdate"
                }
              },
              "examples": {
                "example-minimum": {
                  "value": [
                    {
                      "sku": "PARENT_SKU_A",
                      "variants": [
                        {
                          "sku": "VARIANT_SKU_A_1",
                          "quantity": 1
                        },
                        {
                          "sku": "VARIANT_SKU_A_2",
                          "quantity": 1
                        },
                        {
                          "sku": "VARIANT_SKU_A_3",
                          "quantity": 1
                        }
                      ]
                    },
                    {
                      "sku": "PARENT_SKU_B",
                      "variants": [
                        {
                          "sku": "VARIANT_SKU_B_1",
                          "quantity": 1
                        }
                      ]
                    },
                    {
                      "sku": "PARENT_SKU_C",
                      "variants": [
                        {
                          "sku": "VARIANT_SKU_C_1",
                          "quantity": 1
                        }
                      ]
                    }
                  ]
                }
              }
            }
          }
        },
        "tags": [
          "Inventory"
        ]
      }
    },
    "/product/variants": {
      "parameters": [],
      "get": {
        "summary": "Get Product Variants",
        "description": "This endpoint will fetch back a list of Product Variants. You cannot use both `findBySKUs` and `findByIds` in a single request",
        "tags": [
          "Product"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ProductVariant"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "operationId": "getProductVariantsV2",
        "parameters": [
          {
            "$ref": "#/components/parameters/page"
          },
          {
            "$ref": "#/components/parameters/pagesize"
          },
          {
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "in": "query",
            "name": "updatedAfter",
            "description": "Only retrieves back inventory records that hae been updated after the date specified"
          },
          {
            "$ref": "#/components/parameters/findbyskuspagesizebound"
          },
          {
            "$ref": "#/components/parameters/findbyupcspagesizebound"
          },
          {
            "$ref": "#/components/parameters/findbyidspagesizebound"
          },
          {
            "schema": {
              "type": "boolean"
            },
            "in": "query",
            "name": "includeOverwrites",
            "description": "If `true` will include a list of Price/Quantity overwrites"
          },
          {
            "$ref": "#/components/parameters/includecustomaggregates"
          },
          {
            "$ref": "#/components/parameters/includecustomfields"
          },
          {
            "$ref": "#/components/parameters/includeimages"
          },
          {
            "$ref": "#/components/parameters/includeoptions"
          },
          {
            "schema": {
              "type": "boolean",
              "default": false
            },
            "in": "query",
            "name": "includeInventoryLinks",
            "description": "If `true`, `inventoryLinks` will be populated with a list of `Inventory Variant IDs` that this product is associated to."
          },
          {
            "schema": {
              "type": "boolean",
              "default": false
            },
            "in": "query",
            "name": "includeListingLinks",
            "description": "If `true`, `listingLinks` will be populated with a list of `Listing Variant IDs` that this product is associated to."
          },
          {
            "$ref": "#/components/parameters/includeparent"
          },
          {
            "$ref": "#/components/parameters/includeattributes"
          },
          {
            "$ref": "#/components/parameters/includecategories"
          },
          {
            "name": "includeBundleComponents",
            "schema": {
              "type": "boolean",
              "default": false
            },
            "in": "query",
            "description": "Use this to include `ProductBundleComponents` associated with the product variant. </br> By default they are not included."
          },
          {
            "$ref": "#/components/parameters/includetags"
          }
        ]
      }
    },
    "/product/parents": {
      "parameters": [],
      "get": {
        "summary": "Get Product Parents",
        "description": "This endpoint will fetch back a list of Product Parents.",
        "tags": [
          "Product"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ProductParent"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "operationId": "getProductParents",
        "parameters": [
          {
            "$ref": "#/components/parameters/page"
          },
          {
            "name": "pageSize",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "default": 20,
              "maximum": 50
            },
            "description": "number of elements per page"
          },
          {
            "$ref": "#/components/parameters/findbyskus"
          },
          {
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "in": "query",
            "name": "updatedAfter",
            "description": "Only retrieves back elements that have been updated after the date specified"
          },
          {
            "$ref": "#/components/parameters/includeimages"
          },
          {
            "$ref": "#/components/parameters/includeoptions"
          },
          {
            "$ref": "#/components/parameters/includeattributes"
          },
          {
            "$ref": "#/components/parameters/includecategories"
          },
          {
            "$ref": "#/components/parameters/includecustomfields"
          },
          {
            "$ref": "#/components/parameters/includevariants"
          },
          {
            "$ref": "#/components/parameters/includeoverwrites"
          },
          {
            "$ref": "#/components/parameters/includecustomaggregates"
          },
          {
            "$ref": "#/components/parameters/includetags"
          },
          {
            "schema": {
              "type": "boolean",
              "default": false
            },
            "in": "query",
            "name": "includeListingLinks",
            "description": "If `true`, `listingLinks` will be populated with a list of `Listing Parent IDs` that this product is associated to."
          },
          {
            "schema": {
              "type": "boolean"
            },
            "in": "query",
            "name": "deleting",
            "description": "If true will filter down to products being deleted"
          }
        ]
      }
    },
    "/product/variant/{variantId}": {
      "parameters": [
        {
          "schema": {
            "type": "integer"
          },
          "name": "variantId",
          "in": "path",
          "required": true
        }
      ],
      "get": {
        "summary": "Get Product Variant",
        "tags": [
          "Product"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductVariant"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "operationId": "getProductVariantById",
        "description": "Get a product variant by ID."
      },
      "delete": {
        "summary": "Delete Product Variant",
        "operationId": "deleteProductVariant",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeleteProductResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not Found"
          },
          "409": {
            "description": "Conflict"
          }
        },
        "parameters": [
          {
            "schema": {
              "type": "boolean",
              "default": true
            },
            "in": "query",
            "name": "deleteParentIfLastVariant",
            "description": "Determines when this is the last variant deleted and deletes the parent product. Default `True`"
          }
        ],
        "tags": [
          "Product"
        ],
        "description": "Endpoint to delete product variants."
      }
    },
    "/product/products/variant": {
      "post": {
        "summary": "Create/Update Product Variant",
        "operationId": "postProductVariant",
        "responses": {
          "200": {
            "description": "OK - Existing variant was updated OR the `restrictCreateOrUpdate` param was provided with a value of `createOnly` and the variant already existed in which case nothing was modified and the existing variant will be returned.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductVariant"
                }
              }
            }
          },
          "201": {
            "description": "CREATED - A new variant was created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductVariant"
                }
              }
            }
          },
          "204": {
            "description": "NO CONTENT - Only possible when using the `restrictCreateOrUpdate = updateOnly` param and the variant product does not exist. This will return an empty/null response body.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductVariant"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "409": {
            "description": "Conflict - If the SKU provided already exists on a different variant a conflict will be returned",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductVariant"
                }
              }
            }
          }
        },
        "description": "Create/Update a product variant. \n\n**Note on Bundles:** To create a bundle, you must set the `bundle` field to `true` in the initial creation request (this cannot be updated later). You do not need to pass `bundleProductVariantId` in the `bundleComponents` array during creation.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProductVariantCreateUpdateRequest"
              }
            }
          }
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/restrictcreateorupdate"
          },
          {
            "$ref": "#/components/parameters/modifycontent"
          },
          {
            "$ref": "#/components/parameters/modifyidentifiers"
          },
          {
            "$ref": "#/components/parameters/modifydimensions"
          },
          {
            "$ref": "#/components/parameters/modifyoptions"
          },
          {
            "$ref": "#/components/parameters/modifyimages"
          },
          {
            "$ref": "#/components/parameters/modifyinventorylinks"
          },
          {
            "$ref": "#/components/parameters/modifyquantityoverwrite"
          },
          {
            "$ref": "#/components/parameters/modifypriceoverwrite"
          },
          {
            "$ref": "#/components/parameters/modifybundlecomponents"
          },
          {
            "$ref": "#/components/parameters/modifyVariantCustomFields"
          },
          {
            "schema": {
              "type": "string",
              "enum": [
                "none",
                "update",
                "merge",
                "deleteIncluded",
                "deleteAll"
              ]
            },
            "in": "query",
            "name": "modifyProductAlternatives",
            "description": "Should product alternatives of the variant be modified"
          },
          {
            "$ref": "#/components/parameters/modifyRequiresFfl"
          }
        ],
        "tags": [
          "Product"
        ]
      },
      "get": {
        "summary": "[Deprecated] Get Product Variant",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductVariant"
                }
              }
            }
          },
          "400": {
            "description": "If neither `findBySku` or `findById` is passed."
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "operationId": "getProductVariant",
        "parameters": [
          {
            "$ref": "#/components/parameters/findbysku"
          },
          {
            "$ref": "#/components/parameters/findbyid"
          }
        ],
        "tags": [
          "Product"
        ],
        "deprecated": true,
        "description": "Deprecated, use `/product/variants` with `findBySku`"
      },
      "parameters": []
    },
    "/product/products/parent": {
      "get": {
        "summary": "Get Product Parent",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductParent"
                }
              }
            }
          },
          "400": {
            "description": "If neither `findBySku` or `findById` is passed."
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "operationId": "getProductParent",
        "parameters": [
          {
            "$ref": "#/components/parameters/findbysku"
          },
          {
            "$ref": "#/components/parameters/findbyid"
          },
          {
            "$ref": "#/components/parameters/includevariants"
          }
        ],
        "description": "",
        "tags": [
          "Product"
        ]
      },
      "post": {
        "summary": "Create/Update Product Parent",
        "operationId": "postProductParent",
        "responses": {
          "200": {
            "description": "OK - Existing parent was updated OR the `restrictCreateOrUpdate` param was provided with a value of `createOnly` and the parent already existed in which case nothing was modified and the existing parent will be returned.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductParent"
                }
              }
            }
          },
          "201": {
            "description": "CREATED - A new parent was created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductParent"
                }
              }
            }
          },
          "204": {
            "description": "NO CONTENT - Only possible when using the `restrictCreateOrUpdate = updateOnly` param and the parent product does not exist. This will return an empty/null response body.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductParent"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "409": {
            "description": "Conflict - If the SKU provided already exists on a different parent a conflict will be returned",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductParent"
                }
              }
            }
          }
        },
        "description": "Create/Update a product parent",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProductParentRequest"
              }
            }
          }
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/restrictcreateorupdate"
          },
          {
            "$ref": "#/components/parameters/modifycontent"
          },
          {
            "$ref": "#/components/parameters/modifyoptions"
          },
          {
            "$ref": "#/components/parameters/modifyimages"
          },
          {
            "$ref": "#/components/parameters/modifyattributes"
          },
          {
            "$ref": "#/components/parameters/modifycustomfields"
          },
          {
            "$ref": "#/components/parameters/modifycategories"
          }
        ],
        "tags": [
          "Product"
        ]
      },
      "parameters": []
    },
    "/product/parent/{parentId}": {
      "parameters": [
        {
          "schema": {
            "type": "integer"
          },
          "name": "parentId",
          "in": "path",
          "required": true
        }
      ],
      "delete": {
        "summary": "Delete Product Parent",
        "tags": [
          "Product"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeleteProductResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not Found"
          },
          "409": {
            "description": "Conflict"
          }
        },
        "operationId": "deleteProductParent",
        "description": "Endpoint to delete parent products and all of it’s variants."
      }
    },
    "/product/category/{categoryId}": {
      "parameters": [
        {
          "schema": {
            "type": "integer"
          },
          "name": "categoryId",
          "in": "path",
          "required": true
        }
      ],
      "delete": {
        "summary": "Delete Product Category",
        "tags": [
          "Product"
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "operationId": "deleteProductCategory",
        "description": "Delete Product Category by ID"
      }
    },
    "/product/variant/inventorylinks": {
      "parameters": [],
      "get": {
        "summary": "[Deprecated] Get Product Variant Inventory Links",
        "deprecated": true,
        "tags": [
          "Product"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ProductVariantInventoryLink"
                  }
                }
              }
            }
          }
        },
        "operationId": "listProductVariantInventoryLinks",
        "description": "This endpoint is deprecated, either use the `GET /inventory/variant/{variantId}` endpoint or `GET /product/variant/{variantId}`",
        "parameters": [
          {
            "schema": {
              "type": "integer"
            },
            "in": "query",
            "name": "filterProductVariantId",
            "description": "ID of product variant "
          },
          {
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "in": "query",
            "name": "filterInventoryVariantId",
            "description": "ID of inventory variant"
          }
        ]
      }
    },
    "/product/search/variants": {
      "post": {
        "summary": "[Deprecated] Search Product Variants",
        "operationId": "getProductVariants",
        "deprecated": true,
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ProductVariant"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "tags": [
          "Product"
        ],
        "parameters": [
          {
            "schema": {
              "type": "integer"
            },
            "in": "query",
            "name": "page"
          },
          {
            "schema": {
              "type": "integer",
              "default": 20,
              "minimum": 1,
              "maximum": 100
            },
            "in": "query",
            "name": "pageSize",
            "description": "Number of entries per page"
          },
          {
            "schema": {
              "type": "boolean"
            },
            "in": "query",
            "name": "includeImages"
          },
          {
            "schema": {
              "type": "boolean"
            },
            "in": "query",
            "name": "includeOptionValues"
          },
          {
            "schema": {
              "type": "boolean"
            },
            "in": "query",
            "name": "includeOverwrites"
          },
          {
            "schema": {
              "type": "boolean"
            },
            "in": "query",
            "name": "includeCustomFields",
            "description": "If \"true\" is passed, the \"customFields\" node will be populated."
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProductVariantSearchRequest"
              }
            }
          }
        }
      },
      "parameters": []
    },
    "/product/{parentId}/{variantId}": {
      "parameters": [
        {
          "schema": {
            "type": "integer"
          },
          "name": "parentId",
          "in": "path",
          "required": true
        },
        {
          "schema": {
            "type": "integer"
          },
          "name": "variantId",
          "in": "path",
          "required": true
        }
      ],
      "get": {
        "summary": "[Deprecated] Get Product Pair",
        "tags": [
          "Product"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductPair"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "operationId": "getProductPair",
        "parameters": [],
        "description": "Deprecated, use `/product/variants` with `includeParent`",
        "deprecated": true
      }
    },
    "/product/variant/{variantId}/pair": {
      "parameters": [
        {
          "schema": {
            "type": "integer"
          },
          "name": "variantId",
          "in": "path",
          "required": true
        }
      ],
      "get": {
        "summary": "[Deprecated] Get Product Pair by Variant ID",
        "tags": [
          "Product"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductPair"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "operationId": "getProductPairByVariantId",
        "parameters": [],
        "description": "Deprecated, use `/products/variants/{id}` with `includeParent`",
        "deprecated": true
      }
    },
    "/listing/variants": {
      "parameters": [],
      "get": {
        "summary": "Get Listing Variants",
        "description": "This endpoint will fetch back a list of Listing Variants! If you're a new integrator, it's recommended to read the `Integrating as a Channel` guide.",
        "tags": [
          "Listing"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ListingVariant"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "operationId": "getListingVariants",
        "parameters": [
          {
            "$ref": "#/components/parameters/page"
          },
          {
            "$ref": "#/components/parameters/pagesize"
          },
          {
            "schema": {
              "type": "integer"
            },
            "in": "query",
            "name": "channelId",
            "description": "This will be automatically populated for Channel API Tokens. Required if using an Account API Token"
          },
          {
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "in": "query",
            "name": "updatedAfter",
            "description": "Only retrieves back listing variants that hae been updated after the date specified"
          },
          {
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "in": "query",
            "name": "basicsUpdatedAfter",
            "description": "Only retrieves back listing variants that have had basic info updated after the date specified. \n\n This includes primary fields like `price` and `quantity`"
          },
          {
            "schema": {
              "type": "boolean"
            },
            "in": "query",
            "name": "sync",
            "description": "Read our API Guides to learn about this flag. Passing `true` requires you to respond for the interaction."
          },
          {
            "$ref": "#/components/parameters/findbyskuspagesizebound"
          },
          {
            "$ref": "#/components/parameters/findbyupcspagesizebound"
          },
          {
            "$ref": "#/components/parameters/findbyids64pagesizebound"
          },
          {
            "$ref": "#/components/parameters/includeparent"
          },
          {
            "$ref": "#/components/parameters/includeimages"
          },
          {
            "$ref": "#/components/parameters/includeoptions"
          },
          {
            "$ref": "#/components/parameters/includeattributes"
          },
          {
            "$ref": "#/components/parameters/includecategories"
          },
          {
            "$ref": "#/components/parameters/includecustomfields"
          },
          {
            "$ref": "#/components/parameters/includecustomaggregates"
          },
          {
            "$ref": "#/components/parameters/includeoverwrites"
          },
          {
            "$ref": "#/components/parameters/includetags"
          }
        ]
      },
      "post": {
        "summary": "Create/Update Listing Variant",
        "operationId": "postListingVariant",
        "responses": {
          "200": {
            "description": "OK - Existing variant was updated OR the `restrictCreateOrUpdate` param was provided with a value of `createOnly` and the variant already existed in which case nothing was modified and the existing variant will be returned.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListingVariant"
                }
              }
            },
            "headers": {}
          },
          "201": {
            "description": "CREATED - A new variant was created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListingVariant"
                }
              }
            }
          },
          "204": {
            "description": "NO CONTENT - Only possible when using the `restrictCreateOrUpdate = updateOnly` param and the variant listing does not exist. This will return an empty/null response body.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListingVariant"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "409": {
            "description": "Conflict - If the SKU provided already exists on a different variant a conflict will be returned",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListingVariant"
                }
              }
            }
          }
        },
        "description": "Create/Update a listing variant",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ListingVariantCreateUpdateRequest"
              }
            }
          }
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/restrictcreateorupdate"
          },
          {
            "$ref": "#/components/parameters/modifycontent"
          },
          {
            "$ref": "#/components/parameters/modifyidentifiers"
          },
          {
            "$ref": "#/components/parameters/modifydimensions"
          },
          {
            "$ref": "#/components/parameters/modifyoptions"
          },
          {
            "$ref": "#/components/parameters/modifyimages"
          },
          {
            "$ref": "#/components/parameters/modifyquantityoverwrite"
          },
          {
            "$ref": "#/components/parameters/modifypriceoverwrite"
          },
          {
            "$ref": "#/components/parameters/modifyPublishData"
          },
          {
            "$ref": "#/components/parameters/modifySyncData"
          },
          {
            "$ref": "#/components/parameters/modifyStatusData"
          },
          {
            "$ref": "#/components/parameters/modifyChannelData"
          },
          {
            "$ref": "#/components/parameters/modifyVariantCustomFields"
          },
          {
            "$ref": "#/components/parameters/modifyRequiresFfl"
          }
        ],
        "tags": [
          "Listing"
        ]
      },
      "patch": {
        "summary": "Acknowledge Listing Variants",
        "description": "If you are leveraging the `sync` flag on `GET /listing/variants`, this endpoint allows you to respond to those interactions. \n\nIf a listing has a `changeToListingStatus` pending and you respond WITHOUT an `error`, Flxpoint will assume the status change worked as intended.",
        "tags": [
          "Listing"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "array",
                "maxItems": 100,
                "items": {
                  "$ref": "#/components/schemas/ListingVariantAcknowledgement"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "operationId": "acknowledgeListingVariants"
      }
    },
    "/listing/variants/count": {
      "parameters": [],
      "get": {
        "summary": "Get Count of Listing Variants",
        "tags": [
          "Listing"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GenericCount"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GenericApiError"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "operationId": "getListingVariantsCount",
        "parameters": [
          {
            "schema": {
              "type": "integer"
            },
            "in": "query",
            "name": "channelId",
            "description": "This will be automatically populated for Channel API Tokens. Required if using an Account API Token"
          },
          {
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "in": "query",
            "name": "updatedAfter",
            "description": "Only retrieves back listing variants that hae been updated after the date specified"
          },
          {
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "in": "query",
            "name": "basicsUpdatedAfter",
            "description": "Only retrieves back listing variants that have had basic info updated after the date specified. \n\n This includes primary fields like `price` and `quantity`"
          },
          {
            "schema": {
              "type": "boolean"
            },
            "in": "query",
            "name": "sync",
            "description": "Filter listing variants based on whether or not they have data ready to be synced."
          },
          {
            "schema": {
              "type": "boolean"
            },
            "in": "query",
            "name": "publish",
            "description": "Filter listing variants based on whether or not they have data ready to be published (created or updated)."
          },
          {
            "schema": {
              "type": "boolean",
              "default": true
            },
            "in": "query",
            "name": "includeDeleting",
            "description": "Filter listing variants based on whether or not they have been deleted"
          },
          {
            "schema": {
              "type": "boolean",
              "default": false
            },
            "in": "query",
            "name": "includeImagesCached",
            "description": "Filter listing variants based on whether or not they have images cached."
          },
          {
            "schema": {
              "type": "boolean",
              "default": true
            },
            "in": "query",
            "name": "includePaused",
            "description": "Filter listing variants based on whether or not they have been paused"
          },
          {
            "schema": {
              "type": "integer"
            },
            "in": "query",
            "name": "minimumQuantity",
            "description": "Filter listing variants based on whether or not they have a minimum quantity."
          },
          {
            "$ref": "#/components/parameters/findbyskus"
          }
        ]
      }
    },
    "/listing/parents": {
      "parameters": [],
      "get": {
        "summary": "Get Listing Parents",
        "description": "This endpoint will fetch back a list of Listing Parents. If you're a new integrator, it's recommended to read the `Integrating as a Channel` guide.\n\nOnly returns 4000 variants per request. If you are not able to retrieve all variants in a single request, please lower your page size",
        "tags": [
          "Listing"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ListingParent"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "operationId": "getListingParents",
        "parameters": [
          {
            "$ref": "#/components/parameters/page"
          },
          {
            "name": "pageSize",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "default": 20,
              "maximum": 50
            },
            "description": "number of elements per page"
          },
          {
            "schema": {
              "type": "integer"
            },
            "in": "query",
            "name": "channelId",
            "description": "This will be automatically populated for Channel API Tokens. Required if using an Account API Token"
          },
          {
            "$ref": "#/components/parameters/findbyskus"
          },
          {
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "in": "query",
            "name": "updatedAfter",
            "description": "Only retrieves back elements that have been updated after the date specified"
          },
          {
            "schema": {
              "type": "boolean"
            },
            "in": "query",
            "name": "publish",
            "description": "Read our API Guides to learn about this flag. Passing `true` requires you to respond for the interaction."
          },
          {
            "schema": {
              "type": "boolean",
              "default": true
            },
            "in": "query",
            "name": "includeDeleting",
            "description": "Filter listing parents based on whether or not they have been deleted"
          },
          {
            "schema": {
              "type": "boolean",
              "default": true
            },
            "in": "query",
            "name": "includePaused",
            "description": "Filter listing parents based on whether or not they have been paused"
          },
          {
            "schema": {
              "type": "boolean",
              "default": true
            },
            "in": "query",
            "name": "includeOutOfStockVariants",
            "description": "If \"false\" is passed, it will not return out of stock inventory variants."
          },
          {
            "schema": {
              "type": "boolean",
              "default": false
            },
            "in": "query",
            "name": "includeHavingImagesCached",
            "description": "If \"true\" is passed, it will only return inventory parents/variants with cached images."
          },
          {
            "schema": {
              "type": "string"
            },
            "in": "query",
            "name": "changeToListingStatusHandle",
            "description": "Only retrieves back elements that have been queued to change to the specified listing status."
          },
          {
            "$ref": "#/components/parameters/includeimages"
          },
          {
            "$ref": "#/components/parameters/includeoptions"
          },
          {
            "$ref": "#/components/parameters/includeattributes"
          },
          {
            "$ref": "#/components/parameters/includecategories"
          },
          {
            "$ref": "#/components/parameters/includecustomfields"
          },
          {
            "$ref": "#/components/parameters/includevariants"
          },
          {
            "$ref": "#/components/parameters/includeoverwrites"
          },
          {
            "$ref": "#/components/parameters/includecustomaggregates"
          },
          {
            "$ref": "#/components/parameters/includetags"
          }
        ]
      },
      "post": {
        "summary": "Create/Update Listing Parent",
        "operationId": "postListingParent",
        "responses": {
          "200": {
            "description": "OK - Existing parent was updated OR the `restrictCreateOrUpdate` param was provided with a value of `createOnly` and the parent already existed in which case nothing was modified and the existing parent will be returned.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListingParent"
                }
              }
            }
          },
          "201": {
            "description": "CREATED - A new parent was created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListingParent"
                }
              }
            }
          },
          "204": {
            "description": "NO CONTENT - Only possible when using the `restrictCreateOrUpdate = updateOnly` param and the parent listing does not exist. This will return an empty/null response body.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListingParent"
                }
              }
            }
          },
          "400": {
            "description": "When a invalid data condition is provided"
          },
          "401": {
            "description": "Unauthorized"
          },
          "409": {
            "description": "Conflict - If the SKU provided already exists on a different parent a conflict will be returned",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListingParent"
                }
              }
            }
          }
        },
        "description": "Create/Update a listing parent",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ListingParentRequest"
              }
            }
          }
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/restrictcreateorupdate"
          },
          {
            "$ref": "#/components/parameters/modifycontent"
          },
          {
            "$ref": "#/components/parameters/modifyoptions"
          },
          {
            "$ref": "#/components/parameters/modifyimages"
          },
          {
            "$ref": "#/components/parameters/modifyattributes"
          },
          {
            "$ref": "#/components/parameters/modifycustomfields"
          },
          {
            "$ref": "#/components/parameters/modifycategories"
          },
          {
            "$ref": "#/components/parameters/modifyPublishData"
          },
          {
            "$ref": "#/components/parameters/modifyChannelData"
          },
          {
            "$ref": "#/components/parameters/modifySyncData"
          },
          {
            "$ref": "#/components/parameters/modifyStatusData"
          },
          {
            "$ref": "#/components/parameters/modifycategoryaidata"
          }
        ],
        "tags": [
          "Listing"
        ]
      },
      "patch": {
        "summary": "Acknowledge Listing Parents",
        "description": "If you are leveraging the `publish` flag on `GET /listing/parents`, this endpoint allows you to respond to those interactions. \n\nIf a listing has a `changeToListingStatus` pending and you respond WITHOUT an `error`, Flxpoint will assume the status change worked as intended.",
        "tags": [
          "Listing"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "array",
                "maxItems": 50,
                "items": {
                  "$ref": "#/components/schemas/ListingParentAcknowledgement"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GenericApiError"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "operationId": "acknowledgeListingParents"
      }
    },
    "/listing/variants/{variantId}": {
      "parameters": [
        {
          "schema": {
            "type": "integer"
          },
          "name": "variantId",
          "in": "path",
          "required": true
        }
      ],
      "get": {
        "summary": "Get Listing Variant",
        "tags": [
          "Listing"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListingVariant"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "operationId": "getListingVariantById",
        "description": "Retrieve a Listing Variant by `listingVariantId`. All metadata will be populated when using this endpoint."
      },
      "delete": {
        "summary": "Delete Listing Variant",
        "operationId": "deleteListingVariant",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeleteListingResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "tags": [
          "Listing"
        ],
        "parameters": [
          {
            "schema": {
              "type": "boolean",
              "default": true
            },
            "in": "query",
            "name": "deleteParentIfLastVariant",
            "description": "Determines when this is the last variant deleted and deletes the parent listing. Default : `true`"
          }
        ],
        "description": "Endpoint to delete listing variants."
      }
    },
    "/listing/parents/{parentId}": {
      "parameters": [
        {
          "schema": {
            "type": "integer"
          },
          "name": "parentId",
          "in": "path",
          "required": true
        }
      ],
      "get": {
        "summary": "Get Listing Parent",
        "tags": [
          "Listing"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListingParent"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "operationId": "getListingParentById",
        "description": "Retrieve a Listing Parent by `listingParentId`. All metadata will be populated when using this endpoint."
      },
      "delete": {
        "summary": "Delete Listing Parent",
        "operationId": "deleteListingParent",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeleteListingResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "tags": [
          "Listing"
        ],
        "description": "Endpoint to delete parent listing and all of it’s variants."
      }
    },
    "/listing/category/{categoryId}": {
      "parameters": [
        {
          "schema": {
            "type": "integer"
          },
          "name": "categoryId",
          "in": "path",
          "required": true,
          "description": "The category ID"
        }
      ],
      "delete": {
        "summary": "Delete Listing Category",
        "responses": {
          "200": {
            "description": "OK"
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "operationId": "deleteListingCategory",
        "description": "Delete Listing Category by ID\n",
        "tags": [
          "Listing"
        ]
      }
    },
    "/listing/search/variants": {
      "post": {
        "summary": "[Deprecated] Search Listing Variants",
        "operationId": "postListingSearchVariants",
        "deprecated": true,
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ListingVariant"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "parameters": [
          {
            "schema": {
              "type": "integer",
              "default": 20,
              "minimum": 1,
              "maximum": 100
            },
            "in": "query",
            "name": "pageSize",
            "description": "Number of entries per page"
          },
          {
            "schema": {
              "type": "integer"
            },
            "in": "query",
            "name": "page"
          },
          {
            "schema": {
              "type": "boolean"
            },
            "in": "query",
            "name": "includeParent"
          },
          {
            "schema": {
              "type": "boolean"
            },
            "in": "query",
            "name": "includeImages"
          },
          {
            "schema": {
              "type": "boolean"
            },
            "in": "query",
            "name": "includeOptionValues"
          },
          {
            "schema": {
              "type": "boolean"
            },
            "in": "query",
            "name": "includeOverwrites",
            "description": "will include dynamic prices and quantities if they are overwritten with fixed values"
          },
          {
            "schema": {
              "type": "boolean"
            },
            "in": "query",
            "name": "includeCustomFields"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ListingVariantSearchRequest"
              },
              "examples": {
                "example-1": {
                  "value": {
                    "filterParentIds": [
                      0
                    ],
                    "filterVariantIds": [
                      0
                    ]
                  }
                }
              }
            }
          }
        },
        "description": "Lists Listing Variants that meet the input filters",
        "tags": [
          "Listing"
        ]
      },
      "parameters": []
    },
    "/listing/search/parents": {
      "post": {
        "summary": "[Deprecated] Search Listing Parents",
        "operationId": "postListingSearchParents",
        "deprecated": true,
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ListingParent"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "parameters": [
          {
            "schema": {
              "type": "integer",
              "default": 20,
              "minimum": 1,
              "maximum": 100
            },
            "in": "query",
            "name": "pageSize",
            "description": "Number of entries per page"
          },
          {
            "schema": {
              "type": "integer"
            },
            "in": "query",
            "name": "page"
          },
          {
            "schema": {
              "type": "boolean"
            },
            "in": "query",
            "name": "includeAttributes"
          },
          {
            "schema": {
              "type": "boolean"
            },
            "in": "query",
            "name": "includeCategories"
          },
          {
            "schema": {
              "type": "boolean"
            },
            "in": "query",
            "name": "includeImages"
          },
          {
            "schema": {
              "type": "boolean"
            },
            "in": "query",
            "name": "includeOptions"
          },
          {
            "schema": {
              "type": "boolean"
            },
            "in": "query",
            "name": "includeVariants",
            "description": "When `true` this will include at most 10 variants per parent."
          },
          {
            "schema": {
              "type": "boolean"
            },
            "in": "query",
            "name": "includeVariantImages"
          },
          {
            "schema": {
              "type": "boolean"
            },
            "in": "query",
            "name": "includeVariantOptionValues"
          },
          {
            "schema": {
              "type": "boolean"
            },
            "in": "query",
            "name": "includeVariantOverwrites"
          },
          {
            "schema": {
              "type": "boolean"
            },
            "in": "query",
            "name": "includeVariantCustomFields"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ListingProductSearchRequest"
              }
            }
          }
        },
        "description": "[Deprecated] Please use `GET /listing/parents`. Lists Listing Variants that meet the input filters",
        "tags": [
          "Listing"
        ]
      },
      "parameters": []
    },
    "/listing/variants/{variantId}/pair": {
      "parameters": [
        {
          "schema": {
            "type": "integer"
          },
          "name": "variantId",
          "in": "path",
          "required": true
        }
      ],
      "get": {
        "summary": "[Deprecated] Get Listing Pair",
        "tags": [
          "Listing"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListingPair"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "operationId": "getListingPairByVariantId",
        "parameters": [],
        "deprecated": true,
        "description": "This endpoint is deprecated. Instead, we'd encourage you to use : \n\n`GET /listing/variants/{id}` and pass `includeParent` flag"
      }
    },
    "/orders": {
      "get": {
        "summary": "Get Orders",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Order"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "operationId": "getOrders",
        "description": "This endpoint will retrieve back Orders",
        "parameters": [
          {
            "$ref": "#/components/parameters/page"
          },
          {
            "$ref": "#/components/parameters/pagesize"
          },
          {
            "schema": {
              "type": "integer"
            },
            "in": "query",
            "name": "channelId",
            "description": "ID of the Channel. This will be default applied for Channel API Tokens"
          },
          {
            "schema": {
              "type": "string",
              "format": "date-time",
              "example": "2020-10-14T16:05:00.000Z"
            },
            "in": "query",
            "name": "orderedAfter",
            "description": "Only returns Orders that have been ordered after this time."
          },
          {
            "name": "sinceId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int64",
              "default": 1
            },
            "description": "If passed, returns results with an id greater than this"
          },
          {
            "schema": {
              "type": "string"
            },
            "in": "query",
            "name": "hasTag",
            "description": "Only returns Orders that have the matching tag"
          },
          {
            "$ref": "#/components/parameters/findbyids"
          },
          {
            "schema": {
              "type": "array",
              "maxItems": 50,
              "example": "O123,O456,O789",
              "uniqueItems": true,
              "items": {
                "type": "string"
              }
            },
            "in": "query",
            "name": "orderNumbers",
            "description": "Finds records matching these Order Numbers. Max 50",
            "style": "form",
            "explode": false
          },
          {
            "schema": {
              "type": "array",
              "maxItems": 50,
              "example": "o55a2f,refABC,sh9339",
              "uniqueItems": true,
              "items": {
                "type": "string"
              }
            },
            "in": "query",
            "name": "referenceNumbers",
            "description": "Finds records matching these Reference Numbers. Max 50",
            "style": "form",
            "explode": false
          },
          {
            "schema": {
              "type": "string",
              "enum": [
                "Open",
                "Closed",
                "On Hold",
                "Failed",
                "No Shipping Method",
                "Canceled",
                "Not Managed"
              ]
            },
            "in": "query",
            "name": "status",
            "description": "Only returns Orders that have the matching status."
          },
          {
            "schema": {
              "type": "string",
              "enum": [
                "Not Started",
                "Partially Completed",
                "Completed"
              ]
            },
            "in": "query",
            "name": "shipmentStatus",
            "description": "Only returns Orders that have the matching shipment status"
          },
          {
            "schema": {
              "type": "string",
              "enum": [
                "Not Authorized",
                "Authorized",
                "Paid",
                "Deferred",
                "Refunded",
                "Credited",
                "Awaiting Clearance",
                "Declined",
                "Refund Pending",
                "Refund Failed"
              ]
            },
            "in": "query",
            "name": "channelInvoiceStatus",
            "description": "Only returns Orders that have the matching channel invoice status."
          },
          {
            "schema": {
              "type": "array",
              "maxItems": 50,
              "example": "O123,O456,O789",
              "uniqueItems": true,
              "items": {
                "enum": [
                  "Not Authorized",
                  "Authorized",
                  "Paid",
                  "Deferred",
                  "Refunded",
                  "Credited",
                  "Awaiting Clearance",
                  "Declined",
                  "Refund Pending",
                  "Refund Failed"
                ]
              }
            },
            "in": "query",
            "name": "paymentStatus",
            "description": "Only returns Orders that match one of the input payment statuses.",
            "style": "form",
            "explode": false
          },
          {
            "schema": {
              "type": "boolean"
            },
            "in": "query",
            "name": "accountingSynced",
            "description": "Filters based on whether or not order accounting is synced"
          },
          {
            "schema": {
              "type": "boolean",
              "default": true
            },
            "in": "query",
            "name": "includeShippingPolicy",
            "description": "Determines if \"shipping policy\" is returned in the response"
          },
          {
            "schema": {
              "type": "boolean",
              "default": true
            },
            "in": "query",
            "name": "includeChannelShippingMethod",
            "description": "Determines if \"channel shipping method\" is returned in the response"
          },
          {
            "schema": {
              "type": "boolean",
              "default": false
            },
            "in": "query",
            "name": "includeChannelInvoice",
            "description": "Determines if \"channel invoice\" is returned in the response"
          },
          {
            "schema": {
              "type": "boolean",
              "default": false
            },
            "in": "query",
            "name": "includePos",
            "description": "Determines if \"purchase orders\" are returned in the response. Only applicable if using an account token type. Will never be included for channel token types."
          },
          {
            "schema": {
              "type": "boolean",
              "default": false
            },
            "in": "query",
            "description": "Determines if \"shipments\" are returned in the response.",
            "name": "includeShipments"
          },
          {
            "schema": {
              "type": "boolean",
              "default": false
            },
            "in": "query",
            "description": "Filters orders based on whether or not they have at least one shipment.",
            "name": "hasShipments"
          },
          {
            "schema": {
              "type": "boolean"
            },
            "in": "query",
            "description": "Filters returned \"shipments\" based on whether or not they have been synced to the channel. If this is passed as true, both \"includeShipments\" and \"isShipped\" will be set to true.",
            "name": "shipmentSyncedToChannel"
          },
          {
            "schema": {
              "type": "boolean"
            },
            "in": "query",
            "description": "Filters returned \"shipments\" based on whether or not they have been suppressed. If this is passed as true, both \"includeShipments\" and \"isShipped\" will be set to true.",
            "name": "shipmentSuppressed"
          },
          {
            "schema": {
              "type": "boolean"
            },
            "in": "query",
            "description": "Filters returned \"shipments\" based on whether or not they have been they had an error saved when syncing to the channel. If this is passed as true, both \"includeShipments\" and \"isShipped\" will be set to true.",
            "name": "shipmentHasError"
          },
          {
            "schema": {
              "type": "boolean",
              "default": false
            },
            "in": "query",
            "description": "Determines if \"source invoices\" are returned in the response. Only applicable if using an account token type. Will never be included for channel token types.",
            "name": "includeSourceInvoices"
          },
          {
            "schema": {
              "type": "boolean",
              "default": false
            },
            "in": "query",
            "description": "Determines if \"order status history\" are returned in the response",
            "name": "includeStatusHistory"
          },
          {
            "schema": {
              "type": "boolean",
              "default": false
            },
            "in": "query",
            "name": "includeTags",
            "description": "Determines if \"tags\" are returned in the response"
          },
          {
            "schema": {
              "type": "boolean",
              "default": false
            },
            "in": "query",
            "name": "includeFFL",
            "description": "Determines if \"Order FFL\" (if available) is included in the response"
          },
          {
            "schema": {
              "type": "boolean"
            },
            "in": "query",
            "name": "includeReturns",
            "description": "Determines if \"Order returns\" are returned in the response."
          },
          {
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "in": "query",
            "name": "updatedAfter",
            "description": "Only returns orders that have been updated after this time. Includes changes to the order itself only — it does not include additions or changes to sub-components of an order (e.g. a shipment being added). To also capture sub-component changes, use `orderModifiedAfter` instead."
          },
          {
            "schema": {
              "type": "boolean",
              "default": true
            },
            "in": "query",
            "name": "includeCancelledOrders",
            "description": "Include cancelled orders in the response. "
          },
          {
            "schema": {
              "type": "string",
              "enum": [
                "Not Started",
                "Partially Completed",
                "Completed"
              ]
            },
            "in": "query",
            "name": "allocationStatus",
            "description": "Filter on Allocation Status"
          },
          {
            "schema": {
              "type": "boolean"
            },
            "in": "query",
            "name": "shipmentAccountingSynced",
            "description": "Shipment Accounting Synced Filter"
          },
          {
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "in": "query",
            "name": "orderModifiedAfter",
            "description": "Only returns orders where the order or any of its sub-components have been modified after this time. Sub-components include: Line Items, FFL, Shipping Address, Billing Address, Fulfillment Requests (FR/PR/SPO/TO), Shipments, Source Invoices, Returns, and RMAs. This filter matches the order's `modifiedAt` field. Unlike `updatedAfter`, it captures changes such as a shipment being added to the order."
          }
        ],
        "tags": [
          "Order"
        ]
      },
      "post": {
        "summary": "Create Order",
        "operationId": "post-orders",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Order"
                },
                "examples": {}
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "409": {
            "description": "Duplicate Order Number Found"
          }
        },
        "tags": [
          "Order"
        ],
        "parameters": [
          {
            "name": "routingGroupId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "default": false
            },
            "description": "If passed, Flxpoint will override the default routing group used to generate the Purchase Orders"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateOrderRequest"
              },
              "examples": {
                "example-minimum": {
                  "value": {
                    "orderNumber": "4512345",
                    "shippingText": "3-5 Business Days",
                    "shippingAddress": {
                      "name": "Joe Smith",
                      "addressLine1": "1000 1st Lane",
                      "city": "Jacksonville",
                      "postal": "12345",
                      "stateCode": "FL",
                      "countryCode": "US"
                    },
                    "orderItems": [
                      {
                        "sku": "SKU-123",
                        "quantity": 1
                      }
                    ]
                  }
                },
                "example-full": {
                  "value": {
                    "channelId": 0,
                    "orderNumber": "string",
                    "referenceNumber": "string",
                    "orderedAt": "2019-08-24T14:15:22Z",
                    "note": "string",
                    "paymentStatus": "Not Authorized",
                    "shippingText": "3-5 Business Days",
                    "shippingPolicyId": 0,
                    "shippingAddress": {
                      "name": "Joe Smith",
                      "firstName": "Joe",
                      "lastName": "Smith",
                      "addressLine1": "1000 1st Lane",
                      "city": "Jacksonville",
                      "postal": "12345",
                      "addressLine2": "Suite 123",
                      "state": "Florida",
                      "country": "United States",
                      "stateCode": "FL",
                      "countryCode": "US",
                      "email": "person@example.com",
                      "phone": "1-555-123-4567",
                      "companyName": "string"
                    },
                    "billingAddress": {
                      "name": "Joe Smith",
                      "firstName": "Joe",
                      "lastName": "Smith",
                      "addressLine1": "1000 1st Lane",
                      "city": "Jacksonville",
                      "postal": "12345",
                      "addressLine2": "Suite 123",
                      "state": "Florida",
                      "country": "United States",
                      "stateCode": "FL",
                      "countryCode": "US",
                      "email": "person@example.com",
                      "phone": "1-555-123-4567",
                      "companyName": "string"
                    },
                    "attributes": [
                      {
                        "key": "string",
                        "value": "string"
                      }
                    ],
                    "orderItems": [
                      {
                        "listingVariantId": 0,
                        "externalListingId": "string",
                        "sku": "string",
                        "quantity": 1,
                        "externalOrderItemId": "string",
                        "attributes": [
                          {
                            "key": "string",
                            "value": "string"
                          }
                        ],
                        "price": 0,
                        "title": "string",
                        "weight": 0,
                        "weightUnit": "lb",
                        "length": 0,
                        "width": 0,
                        "height": 0,
                        "dimensionUnit": "in",
                        "upc": "string",
                        "mpn": "string"
                      }
                    ],
                    "piiRetentionPolicy": "30_days_after_shipment",
                    "orderInvoice": {
                      "invoiceNumber": "string",
                      "invoicedAt": "2019-08-24T14:15:22Z",
                      "total": 0,
                      "subtotal": 0,
                      "dropshipFeeTitle": "string",
                      "dropshipFee": 0,
                      "shippingTitle": "string",
                      "shippingCost": 0,
                      "taxTitle": "string",
                      "taxCost": 0,
                      "otherTitle": "string",
                      "otherCost": 0,
                      "discountTitle": "string",
                      "discountTotal": 0
                    },
                    "orderFFL": {
                      "licenseNumber": "string",
                      "name": "string",
                      "addressLine1": "string",
                      "city": "string",
                      "state": "string",
                      "postal": "string",
                      "phone": "string",
                      "imageUrl": "string",
                      "expiresAt": "2019-08-24T14:15:22Z"
                    }
                  }
                },
                "example-some": {
                  "value": {
                    "orderNumber": "4512345",
                    "referenceNumber": "1001",
                    "note": "This is a gift",
                    "orderedAt": "2022-02-24T14:15:22Z",
                    "shippingText": "3-5 Day Shipping",
                    "shippingAddress": {
                      "name": "John Doe",
                      "addressLine1": "320 1st Street N",
                      "city": "Jacksonville Beach",
                      "state": "Florida",
                      "countryCode": "US",
                      "postal": "32250",
                      "email": "test@example.com",
                      "phone": "555-123-4567"
                    },
                    "orderItems": [
                      {
                        "sku": "SKU-123",
                        "quantity": 1,
                        "externalOrderItemId": "your_own_item_id_1",
                        "attributes": [
                          {
                            "key": "custom_line_item_prop",
                            "value": "custom_value_1"
                          }
                        ]
                      },
                      {
                        "external_listing_id": "your_own_listing_id",
                        "quantity": 1,
                        "externalOrderItemId": "your_own_item_id_2"
                      },
                      {
                        "listing_variant_id": 12345,
                        "quantity": 1
                      }
                    ],
                    "orderInvoice": {
                      "shippingCost": 4.99,
                      "taxCost": 5.41
                    },
                    "attributes": [
                      {
                        "key": "custom_order_prop",
                        "value": "custom_order_prop_value"
                      }
                    ]
                  }
                }
              }
            }
          },
          "description": ""
        },
        "description": "This endpoint creates an Order!\n\nOrders can be created by using an Account, Channel, or Reseller API Token. If an Account Token is used, a `channelId` must be provided.\n\nItems are associated by `sku`, `external_listing_id`, or `listing_variant_id`. See the `CreateOrderItem` model for more information.\n\nWhen an Order is created, it will : \n- Run `Order Import` workflow rules\n- Run `Order Invoice` workflow rules\n- Run `Auto FR Generation` settings\n- Which in turn, may also run additional workflows if FRs are created\n\nFor more information about Orders, see our docs : https://docs.flxpoint.com/flxpoint/orders",
        "x-internal": false
      }
    },
    "/orders/{id}": {
      "parameters": [
        {
          "schema": {
            "type": "integer"
          },
          "name": "id",
          "in": "path",
          "required": true
        }
      ],
      "get": {
        "summary": "Get Order",
        "tags": [
          "Order"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Order"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "operationId": "getOrderById",
        "parameters": []
      }
    },
    "/inventory/variants/{variantId}/tags": {
      "parameters": [
        {
          "schema": {
            "type": "integer",
            "format": "int64"
          },
          "name": "variantId",
          "in": "path",
          "required": true
        }
      ],
      "patch": {
        "summary": "Update Inventory Variant Tags",
        "tags": [
          "Inventory"
        ],
        "operationId": "updateInventoryVariantTags",
        "description": "Adds and/or removes tags on the entity by name. Tags in `add` that do not exist yet are created. Returns the entity's full tag list after the update, sorted alphabetically.",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateTagsRequest"
              }
            }
          }
        },
        "parameters": []
      }
    },
    "/inventory/parents/{parentId}/tags": {
      "parameters": [
        {
          "schema": {
            "type": "integer"
          },
          "name": "parentId",
          "in": "path",
          "required": true
        }
      ],
      "patch": {
        "summary": "Update Inventory Parent Tags",
        "tags": [
          "Inventory"
        ],
        "operationId": "updateInventoryParentTags",
        "description": "Adds and/or removes tags on the entity by name. Tags in `add` that do not exist yet are created. Returns the entity's full tag list after the update, sorted alphabetically.",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateTagsRequest"
              }
            }
          }
        },
        "parameters": []
      }
    },
    "/product/variants/{variantId}/tags": {
      "parameters": [
        {
          "schema": {
            "type": "integer"
          },
          "name": "variantId",
          "in": "path",
          "required": true
        }
      ],
      "patch": {
        "summary": "Update Product Variant Tags",
        "tags": [
          "Product"
        ],
        "operationId": "updateProductVariantTags",
        "description": "Adds and/or removes tags on the entity by name. Tags in `add` that do not exist yet are created. Returns the entity's full tag list after the update, sorted alphabetically.",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateTagsRequest"
              }
            }
          }
        },
        "parameters": []
      }
    },
    "/product/parents/{parentId}/tags": {
      "parameters": [
        {
          "schema": {
            "type": "integer"
          },
          "name": "parentId",
          "in": "path",
          "required": true
        }
      ],
      "patch": {
        "summary": "Update Product Parent Tags",
        "tags": [
          "Product"
        ],
        "operationId": "updateProductParentTags",
        "description": "Adds and/or removes tags on the entity by name. Tags in `add` that do not exist yet are created. Returns the entity's full tag list after the update, sorted alphabetically.",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateTagsRequest"
              }
            }
          }
        },
        "parameters": []
      }
    },
    "/listing/variants/{variantId}/tags": {
      "parameters": [
        {
          "schema": {
            "type": "integer"
          },
          "name": "variantId",
          "in": "path",
          "required": true
        }
      ],
      "patch": {
        "summary": "Update Listing Variant Tags",
        "tags": [
          "Listing"
        ],
        "operationId": "updateListingVariantTags",
        "description": "Adds and/or removes tags on the entity by name. Tags in `add` that do not exist yet are created. Returns the entity's full tag list after the update, sorted alphabetically.",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateTagsRequest"
              }
            }
          }
        },
        "parameters": []
      }
    },
    "/listing/parents/{parentId}/tags": {
      "parameters": [
        {
          "schema": {
            "type": "integer"
          },
          "name": "parentId",
          "in": "path",
          "required": true
        }
      ],
      "patch": {
        "summary": "Update Listing Parent Tags",
        "tags": [
          "Listing"
        ],
        "operationId": "updateListingParentTags",
        "description": "Adds and/or removes tags on the entity by name. Tags in `add` that do not exist yet are created. Returns the entity's full tag list after the update, sorted alphabetically.",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateTagsRequest"
              }
            }
          }
        },
        "parameters": []
      }
    },
    "/tags": {
      "get": {
        "summary": "Get Tags",
        "tags": [
          "Tags"
        ],
        "operationId": "getTags",
        "description": "Lists the account's tags, ordered by name.",
        "parameters": [
          {
            "schema": {
              "type": "integer",
              "default": 1,
              "format": "int32"
            },
            "in": "query",
            "name": "page"
          },
          {
            "schema": {
              "type": "integer",
              "default": 50,
              "maximum": 100,
              "format": "int32"
            },
            "in": "query",
            "name": "pageSize"
          },
          {
            "schema": {
              "type": "string"
            },
            "in": "query",
            "name": "q",
            "description": "Case-insensitive substring filter on the tag name."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Tag"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          }
        }
      },
      "post": {
        "summary": "Create Tag",
        "tags": [
          "Tags"
        ],
        "operationId": "createTag",
        "description": "Creates a tag. Tag names are unique per account.",
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Tag"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "409": {
            "description": "Conflict - a tag with this name already exists"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SaveTagRequest"
              }
            }
          }
        }
      }
    },
    "/tags/{tagId}": {
      "parameters": [
        {
          "schema": {
            "type": "integer"
          },
          "name": "tagId",
          "in": "path",
          "required": true
        }
      ],
      "patch": {
        "summary": "Update Tag",
        "tags": [
          "Tags"
        ],
        "operationId": "updateTag",
        "description": "Renames the tag. Every entity tagged with it keeps the tag under the new name.",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Tag"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not Found"
          },
          "409": {
            "description": "Conflict - a tag with this name already exists"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SaveTagRequest"
              }
            }
          }
        }
      },
      "delete": {
        "summary": "Delete Tag",
        "tags": [
          "Tags"
        ],
        "operationId": "deleteTag",
        "description": "Permanently deletes the tag and removes it from EVERY tagged entity in the account - inventory, products, listings, orders, and purchase orders included. This cannot be undone.",
        "responses": {
          "204": {
            "description": "No Content"
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not Found"
          }
        }
      }
    },
    "/orders/{id}/tags": {
      "parameters": [
        {
          "schema": {
            "type": "integer"
          },
          "name": "id",
          "in": "path",
          "required": true
        }
      ],
      "patch": {
        "summary": "Update Order Tags",
        "tags": [
          "Order"
        ],
        "operationId": "updateOrderTags",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateOrderTagsRequest"
              }
            }
          }
        },
        "parameters": []
      }
    },
    "/checkout": {
      "post": {
        "summary": "Checkout Order",
        "operationId": "checkoutOrder",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Order"
                },
                "examples": {}
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "parameters": [
          {
            "name": "mockRouting",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false
            },
            "description": "If `true`, Flxpoint will try to route the Order to Source(s), and reply back with ”mock” Purchase Orders attached to reflect the result of a live Order routing process. \n\nIf this process fails, `purchaseOrders` will be empty"
          },
          {
            "name": "routingGroupId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "default": false
            },
            "description": "If passed, Flxpoint will override the default routing group used to generate the Purchase Orders"
          }
        ],
        "tags": [
          "Order"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateOrderRequest"
              },
              "examples": {
                "example-minimum": {
                  "value": {
                    "orderNumber": "4512345",
                    "shippingText": "3-5 Business Days",
                    "shippingAddress": {
                      "name": "Joe Smith",
                      "addressLine1": "1000 1st Lane",
                      "city": "Jacksonville",
                      "postal": "12345",
                      "stateCode": "FL",
                      "countryCode": "US"
                    },
                    "orderItems": [
                      {
                        "sku": "SKU-123",
                        "quantity": 1
                      }
                    ]
                  }
                },
                "example-full": {
                  "value": {
                    "channelId": 0,
                    "orderNumber": "string",
                    "referenceNumber": "string",
                    "orderedAt": "2019-08-24T14:15:22Z",
                    "note": "string",
                    "paymentStatus": "Not Authorized",
                    "shippingText": "3-5 Business Days",
                    "shippingPolicyId": 0,
                    "shippingAddress": {
                      "name": "Joe Smith",
                      "firstName": "Joe",
                      "lastName": "Smith",
                      "addressLine1": "1000 1st Lane",
                      "city": "Jacksonville",
                      "postal": "12345",
                      "addressLine2": "Suite 123",
                      "state": "Florida",
                      "country": "United States",
                      "stateCode": "FL",
                      "countryCode": "US",
                      "email": "person@example.com",
                      "phone": "1-555-123-4567",
                      "companyName": "string"
                    },
                    "billingAddress": {
                      "name": "Joe Smith",
                      "firstName": "Joe",
                      "lastName": "Smith",
                      "addressLine1": "1000 1st Lane",
                      "city": "Jacksonville",
                      "postal": "12345",
                      "addressLine2": "Suite 123",
                      "state": "Florida",
                      "country": "United States",
                      "stateCode": "FL",
                      "countryCode": "US",
                      "email": "person@example.com",
                      "phone": "1-555-123-4567",
                      "companyName": "string"
                    },
                    "attributes": [
                      {
                        "key": "string",
                        "value": "string"
                      }
                    ],
                    "orderItems": [
                      {
                        "listingVariantId": 0,
                        "externalListingId": "string",
                        "sku": "string",
                        "quantity": 1,
                        "externalOrderItemId": "string",
                        "attributes": [
                          {
                            "key": "string",
                            "value": "string"
                          }
                        ],
                        "price": 0,
                        "title": "string",
                        "weight": 0,
                        "weightUnit": "lb",
                        "length": 0,
                        "width": 0,
                        "height": 0,
                        "dimensionUnit": "in",
                        "upc": "string",
                        "mpn": "string"
                      }
                    ],
                    "piiRetentionPolicy": "30_days_after_shipment",
                    "orderInvoice": {
                      "invoiceNumber": "string",
                      "invoicedAt": "2019-08-24T14:15:22Z",
                      "total": 0,
                      "subtotal": 0,
                      "dropshipFeeTitle": "string",
                      "dropshipFee": 0,
                      "shippingTitle": "string",
                      "shippingCost": 0,
                      "taxTitle": "string",
                      "taxCost": 0,
                      "otherTitle": "string",
                      "otherCost": 0,
                      "discountTitle": "string",
                      "discountTotal": 0
                    },
                    "orderFFL": {
                      "licenseNumber": "string",
                      "name": "string",
                      "addressLine1": "string",
                      "city": "string",
                      "state": "string",
                      "postal": "string",
                      "phone": "string",
                      "imageUrl": "string",
                      "expiresAt": "2019-08-24T14:15:22Z"
                    }
                  }
                },
                "example-some": {
                  "value": {
                    "orderNumber": "4512345",
                    "referenceNumber": "1001",
                    "note": "This is a gift",
                    "orderedAt": "2022-02-24T14:15:22Z",
                    "shippingText": "3-5 Day Shipping",
                    "shippingAddress": {
                      "name": "John Doe",
                      "addressLine1": "320 1st Street N",
                      "city": "Jacksonville Beach",
                      "state": "Florida",
                      "countryCode": "US",
                      "postal": "32250",
                      "email": "test@example.com",
                      "phone": "555-123-4567"
                    },
                    "orderItems": [
                      {
                        "sku": "SKU-123",
                        "quantity": 1,
                        "externalOrderItemId": "your_own_item_id_1",
                        "attributes": [
                          {
                            "key": "custom_line_item_prop",
                            "value": "custom_value_1"
                          }
                        ]
                      },
                      {
                        "external_listing_id": "your_own_listing_id",
                        "quantity": 1,
                        "externalOrderItemId": "your_own_item_id_2"
                      },
                      {
                        "listing_variant_id": 12345,
                        "quantity": 1
                      }
                    ],
                    "orderInvoice": {
                      "shippingCost": 4.99,
                      "taxCost": 5.41
                    },
                    "attributes": [
                      {
                        "key": "custom_order_prop",
                        "value": "custom_order_prop_value"
                      }
                    ]
                  }
                }
              }
            }
          },
          "description": ""
        },
        "description": "This endpoint allows you to go through a ”checkout” process for a potential Order. \n\nUse Case Example : A customer is going through the ”checkout” process on your site and you would like to provide them with an estimated shipping cost generate by your rules in Flxpoint. \n\nThis endpoint will response with a ”mock” Order representing the expected result of a live Order submission.\n\nIf you pass `mockRouting` - we will also try to route the Order to Source(s), and reply back with ”mock” Purchase Orders attached to reflect the result of a live Order routing process. \n\nDISCLAIMER: Depending on the strategy, this endpoint may take some time to process (i.e. if you are deriving Shipping Costs by using Rate Shopping, latency is also dependent on ShipEngine’s response times). \n\n**Please be aware, ”id” values will be null. Nothing is persisted as a result of this operation**",
        "x-internal": false
      }
    },
    "/orders/{id}/route": {
      "parameters": [
        {
          "name": "id",
          "in": "path",
          "schema": {
            "type": "integer"
          },
          "required": true,
          "description": "the order id"
        },
        {
          "name": "routingGroupId",
          "in": "query",
          "required": false,
          "schema": {
            "type": "integer",
            "default": false
          },
          "description": "If passed, Flxpoint will override the default routing group used to generate the Purchase Orders"
        }
      ],
      "put": {
        "summary": "Route Order",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/PurchaseOrder"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "No routing solution found"
          },
          "409": {
            "description": "In-flight (processing, processed, acknowledged) Purchase Orders already exist. Cannot regenerate"
          }
        },
        "operationId": "routeOrder",
        "description": "this endpoint applies modern generation strategy that takes routing rules into consideration and builds best purchase order solutions",
        "tags": [
          "Order"
        ]
      }
    },
    "/orders/{orderId}/items": {
      "parameters": [
        {
          "schema": {
            "type": "integer"
          },
          "name": "orderId",
          "in": "path",
          "required": true
        }
      ],
      "post": {
        "summary": "Create Order Item",
        "tags": [
          "Order"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Order"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "operationId": "createOrderItem",
        "description": "Create Order Item",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateOrderItemRequest"
              }
            }
          }
        }
      }
    },
    "/orders/list": {
      "parameters": [],
      "get": {
        "summary": "[Deprecated] List Orders",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Order"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "operationId": "listOrders",
        "description": "This endpoint is deprecated, please use `GET /orders` instead\n\nThis endpoint will retrieve back Orders\n\n- Params starting with **filter*** will filter the results down\n- Params starting with **include*** will determine the metadata returned",
        "parameters": [
          {
            "schema": {
              "type": "string",
              "enum": [
                "Open",
                "Closed",
                "On Hold",
                "Failed",
                "No Shipping Method",
                "Canceled",
                "Not Managed"
              ]
            },
            "in": "query",
            "name": "filterStatus",
            "description": "Filters down to Orders that match this status."
          },
          {
            "schema": {
              "type": "string",
              "format": "date-time",
              "example": "2020-10-14T16:05:00.000Z"
            },
            "in": "query",
            "name": "filterOrderedAfter",
            "description": "Filters down to Orders that were ordered after this datetime."
          },
          {
            "schema": {
              "type": "string",
              "format": "date-time",
              "example": "2020-10-14T16:05:00.000Z"
            },
            "in": "query",
            "name": "filterStatusHasChangedSince",
            "description": "Returns any orders that have had a status change since this datetime."
          },
          {
            "schema": {
              "type": "string"
            },
            "in": "query",
            "name": "filterHasTag",
            "description": "Filters orders that has tag"
          },
          {
            "schema": {
              "type": "string",
              "enum": [
                "Not Started",
                "Partially Completed",
                "Completed"
              ]
            },
            "in": "query",
            "name": "filterShipmentStatus",
            "description": "Filters down to Orders that has this shipment status"
          },
          {
            "schema": {
              "type": "string",
              "enum": [
                "Not Authorized",
                "Authorized",
                "Paid",
                "Deferred",
                "Refunded",
                "Credited",
                "Awaiting Clearance",
                "Declined",
                "Refund Pending",
                "Refund Failed"
              ]
            },
            "in": "query",
            "name": "filterChannelInvoiceStatus",
            "description": "Filters down to Orders that are in this channel invoice status."
          },
          {
            "schema": {
              "type": "boolean",
              "default": false
            },
            "in": "query",
            "name": "includeChannelInvoice",
            "description": "Determines if \"channel invoice\" are returned in the response"
          },
          {
            "schema": {
              "type": "boolean",
              "default": false
            },
            "in": "query",
            "name": "includePos",
            "description": "Determines if \"purchase orders\" are returned in the response. Only applicable if using an account token type. Will never be included for channel token types."
          },
          {
            "schema": {
              "type": "boolean",
              "default": false
            },
            "in": "query",
            "description": "Determines if \"shipments\" are returned in the response.",
            "name": "includeShipments"
          },
          {
            "schema": {
              "type": "boolean",
              "default": false
            },
            "in": "query",
            "description": "Determines if \"source invoices\" are returned in the response. Only applicable if using an account token type. Will never be included for channel token types.",
            "name": "includeSourceInvoices"
          },
          {
            "schema": {
              "type": "boolean",
              "default": false
            },
            "in": "query",
            "description": "Determines if \"order status history\" are returned in the response",
            "name": "includeStatusHistory"
          },
          {
            "schema": {
              "type": "boolean",
              "default": false
            },
            "in": "query",
            "name": "includeTags",
            "description": "Determines if \"tags\" are returned in the response"
          },
          {
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 20,
              "minimum": 1,
              "maximum": 100
            },
            "in": "query",
            "name": "filterPageSize",
            "description": "Number of entries per page"
          },
          {
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 1
            },
            "in": "query",
            "name": "filterPageNumber",
            "description": "Current Page"
          },
          {
            "schema": {
              "type": "integer"
            },
            "in": "query",
            "name": "filterByChannelId",
            "description": "Retrieve orders of a specific channel"
          },
          {
            "schema": {
              "type": "array",
              "maxItems": 50,
              "example": "123,456,789",
              "uniqueItems": true,
              "items": {
                "type": "integer"
              }
            },
            "in": "query",
            "name": "filterByIds",
            "description": "A list of Order IDs to filter on. Max 50 IDs. Recommended to not include full metadata while using this. This will work in conjunction with the other `filter` params",
            "style": "form",
            "explode": false
          },
          {
            "schema": {
              "type": "boolean",
              "default": false
            },
            "in": "query",
            "name": "includeFFL",
            "description": "Determines if \"Order FFL\" (if available) is included in the response"
          },
          {
            "schema": {
              "type": "boolean"
            },
            "in": "query",
            "name": "includeReturns",
            "description": "Determines if \"Order returns\" are returned in the response"
          }
        ],
        "tags": [
          "Order"
        ],
        "deprecated": true
      }
    },
    "/orders/{channelId}/{orderNumber}": {
      "get": {
        "summary": "[Deprecated] Get Order by Order Number",
        "tags": [
          "Order"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Order"
                  }
                },
                "examples": {}
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "operationId": "getOrderByOrderNumber",
        "description": "This endpoint is deprecated. This functionality will be added to : \n\n`GET /orders` -> `findByOrderNumber`",
        "parameters": [],
        "deprecated": true
      },
      "parameters": [
        {
          "schema": {
            "type": "integer"
          },
          "name": "channelId",
          "in": "path",
          "required": true,
          "description": "The Channel Id"
        },
        {
          "schema": {
            "type": "string"
          },
          "name": "orderNumber",
          "in": "path",
          "required": true,
          "description": "The Order number"
        }
      ]
    },
    "/orders/link": {
      "parameters": [
        {
          "name": "orderIds",
          "in": "query",
          "required": false,
          "schema": {
            "type": "array",
            "maxItems": 50,
            "uniqueItems": true,
            "items": {
              "type": "integer"
            }
          },
          "description": "Attempt to link all unmanaged items of the order IDs passed"
        },
        {
          "name": "orderItemIds",
          "in": "query",
          "required": false,
          "schema": {
            "type": "array",
            "maxItems": 50,
            "uniqueItems": true,
            "items": {
              "type": "integer"
            }
          },
          "description": "Attempt to link all unmanaged order item ids passed"
        },
        {
          "name": "listingVariantIds",
          "in": "query",
          "required": false,
          "schema": {
            "type": "array",
            "maxItems": 50,
            "uniqueItems": true,
            "items": {
              "type": "integer"
            }
          },
          "description": "Attempt to link all unmanaged order items where the orders external reference ID matches the listing variants external reference ID for the passed listing variant IDs"
        }
      ],
      "patch": {
        "summary": "Link Unmanaged Orders/Items",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "description": "A list of order IDs that had at least one unmanaged item that was set to linked.",
                  "items": {
                    "type": "integer"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Will be returned if more than one GET parameter is defined & passed at a time or no get parameters are passed."
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "operationId": "patchLinkOrders",
        "description": "Attempt to link unmanaged order items based on the IDs passed. You can only pass one of the defined GET parameters at a time, otherwise a 400 will be returned.",
        "tags": [
          "Order"
        ]
      }
    },
    "/purchase-orders": {
      "parameters": [],
      "get": {
        "summary": "[Deprecated] Get Purchase Orders",
        "tags": [
          "Purchase Order"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/PurchaseOrder"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GenericApiError"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "operationId": "getPurchaseOrders",
        "parameters": [
          {
            "schema": {
              "type": "integer"
            },
            "in": "query",
            "name": "findOrderId",
            "description": "Filter Purchase Orders by Order ID."
          },
          {
            "schema": {
              "type": "integer"
            },
            "in": "query",
            "name": "sinceId",
            "description": "If passed, returns results with an ID greater than this."
          },
          {
            "schema": {
              "type": "array",
              "maxItems": 50,
              "example": "PO123,PO456,PO789",
              "uniqueItems": true,
              "items": {
                "type": "string"
              }
            },
            "in": "query",
            "name": "poNumbers",
            "description": "Finds elements matching these Purchase Order Numbers. Max 50",
            "style": "form",
            "explode": false
          },
          {
            "schema": {
              "type": "integer"
            },
            "in": "query",
            "name": "filterSourceId",
            "description": "Filter Purchase Orders by Source ID."
          },
          {
            "schema": {
              "type": "string",
              "enum": [
                "Awaiting Shipment",
                "Shipped",
                "Partially Shipped",
                "Canceled"
              ]
            },
            "in": "query",
            "name": "filterFulfilmentStatus",
            "description": "Filter Purchase Orders by Fulfillment Status. Accepts a comma-separated list to filter on multiple statuses at once."
          },
          {
            "schema": {
              "type": "boolean"
            },
            "in": "query",
            "name": "filterInvoiced",
            "description": "Filter Purchase Orders that have source invoice available."
          },
          {
            "schema": {
              "type": "integer",
              "default": 1
            },
            "in": "query",
            "name": "filterPageNumber",
            "description": "Current Page"
          },
          {
            "schema": {
              "type": "integer",
              "default": 20,
              "minimum": 1,
              "maximum": 100
            },
            "in": "query",
            "name": "filterPageSize",
            "description": "Number of entries per page"
          },
          {
            "schema": {
              "type": "string",
              "enum": [
                "Unprocessed",
                "Processed",
                "Acknowledged",
                "Canceled",
                "Failed",
                "Voided",
                "Processing",
                "Additional Info Required",
                "PO/FR # Exceeds Max Length",
                "Duplicate PO/FR #",
                "Cross Docked"
              ]
            },
            "in": "query",
            "name": "filterStatus",
            "description": "Filter Purchase Orders by Purchase Order Status. Accepts a comma-separated list to filter on multiple statuses at once."
          },
          {
            "schema": {
              "type": "boolean"
            },
            "in": "query",
            "name": "filterIsAcknowledged",
            "description": "Filters Purchase Orders based on whether or they were acknowledged (true returns only acknowledged, false only those that are not acknowledged)."
          },
          {
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "in": "query",
            "name": "filterAcknowledgedAfter",
            "description": "Filter Purchase Orders that were acknowledged after this date-time."
          },
          {
            "schema": {
              "type": "boolean"
            },
            "in": "query",
            "name": "filterIsSent",
            "description": "Filters Purchase Orders based on whether or they have been sent to the source (true returns only those that have been sent, false only those that have not yet been sent)."
          },
          {
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "in": "query",
            "name": "filterSentAfter",
            "description": "Filter Purchase Orders that were sent after this date-time."
          },
          {
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "in": "query",
            "name": "filterGeneratedAfter",
            "description": "Filter Purchase Orders that were generated after this date-time."
          },
          {
            "schema": {
              "type": "boolean"
            },
            "in": "query",
            "name": "filterIsCanceled",
            "description": "Filters Purchase Orders based on whether or they were canceled (true returns only canceled, false only those that are not canceled)."
          },
          {
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "in": "query",
            "name": "filterCanceledAfter",
            "description": "Filters Purchase Orders that were canceled after this date-time."
          },
          {
            "schema": {
              "type": "boolean"
            },
            "in": "query",
            "name": "filterIsVoided",
            "description": "Filters Purchase Orders based on whether or they were voided (true returns only voided, false only those that are not voided)."
          },
          {
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "in": "query",
            "name": "filterVoidedAfter",
            "description": "Filters Purchase Orders that were voided after this date-time."
          },
          {
            "schema": {
              "type": "boolean"
            },
            "in": "query",
            "name": "filterIsHeld",
            "description": "Filters Purchase Orders based on whether or they are being held (true returns only held, false only those that are not held)."
          },
          {
            "schema": {
              "type": "boolean"
            },
            "in": "query",
            "name": "filterHasError",
            "description": "Filters Purchase Orders based on whether or they have a processing error (true returns only those with errors, false only those without errors)."
          },
          {
            "schema": {
              "type": "boolean"
            },
            "in": "query",
            "name": "filterEligibleForProcessing",
            "description": "Filters Fulfillment Requests based on whether the order it related to is Open/Not Managed (true returns only if the order it is related to is Open/Not Managed, false does not filter PO based on order status)."
          },
          {
            "schema": {
              "type": "array",
              "example": "1234,1235,1257",
              "maxItems": 50,
              "uniqueItems": true,
              "items": {
                "type": "integer"
              }
            },
            "in": "query",
            "name": "filterPurchaseOrderTypeIds",
            "description": "Filter Purchase Orders by type id, using ids from the PurchaseOrderType Enum.",
            "style": "form"
          },
          {
            "schema": {
              "type": "boolean"
            },
            "in": "query",
            "name": "isPurchaseOrderAccountingSynced",
            "description": "Filter to only include Purchase Orders that have been synced to an Accounting Integration."
          },
          {
            "schema": {
              "type": "boolean"
            },
            "in": "query",
            "name": "isOrderAccountingSynced",
            "description": "Filter to only include those created for Orders that have been synced to an Accounting Integration. Does not relate to the whether or not the Purchase Order has been synced."
          },
          {
            "schema": {
              "type": "boolean"
            },
            "in": "query",
            "name": "hasAccountingError",
            "description": "Filter to include Purchase Orders based on whether or not they have a previous error saved while sending to an Accounting Integration"
          },
          {
            "schema": {
              "type": "boolean"
            },
            "in": "query",
            "name": "filterOrderInvoiced",
            "description": "Filter to only include those created for Orders that have invoices. Does not relate to the whether or not the Purchase Order has been invoiced."
          },
          {
            "schema": {
              "type": "boolean",
              "default": "false"
            },
            "in": "query",
            "description": "Determines if \"tags\" are returned in the response",
            "name": "includeTags"
          },
          {
            "schema": {
              "type": "string"
            },
            "in": "query",
            "name": "hasTag",
            "description": "Only returns Purchase Orders that have the matching tag"
          },
          {
            "schema": {
              "type": "boolean"
            },
            "in": "query",
            "name": "filterStockCommitted",
            "description": "Filter Purchase Orders that have stock committed."
          },
          {
            "schema": {
              "type": "string",
              "enum": [
                "Open",
                "Closed",
                "On Hold",
                "Failed",
                "No Shipping Method",
                "Canceled",
                "Not Managed"
              ]
            },
            "in": "query",
            "name": "filterOrderStatus",
            "description": "Only returns Purchase Orders associated with orders that have the matching status."
          }
        ],
        "description": "Deprecated, please use GET /fulfillment-requests\n(This endpoint will retrieve back Purchase Orders / Fulfillment Requests)",
        "deprecated": true
      },
      "post": {
        "summary": "[Deprecated] Create Purchase Order",
        "operationId": "createPurchaseOrder",
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PurchaseOrder"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "409": {
            "description": "PO Number is already in use."
          }
        },
        "tags": [
          "Purchase Order"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreatePurchaseOrderRequest"
              }
            }
          }
        },
        "description": "Deprecated, please use POST /fulfillment-requests\n\nThis endpoint creates a Purchase Order (PO)!\n\nPurchase Orders can be created by using an Account token. A `sourceId` is required to create a Purchase Order.\n\nPO Items are associated to `Order Items` by `orderItemId`.\n\nPO Items are associated to `Inventory` by `sku` or `inventoryVariantId`.\n\nFor more information, see the `item` request details below.\n\nWhen an Purchase Order is created, it will : \n- Estimate Shipping Costs (via Workflow or Rate Shopping)\n- Estimate Dropship Fees (via Workflow)\n- Run `PO/FR Strategy` settings (Auto Processing, PO Workflow, PO # Utilities, etc.)\n\nFor more information about Purchase Orders, see our docs : https://docs.flxpoint.com/flxpoint/purchase-orders-fulfillment-requests\n",
        "deprecated": true
      }
    },
    "/fulfillment-requests": {
      "parameters": [],
      "get": {
        "summary": "Get Fulfillment Requests",
        "tags": [
          "Fulfillment Request"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/FulfillmentRequest"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GenericApiError"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "operationId": "getFulfillmentRequests",
        "parameters": [
          {
            "schema": {
              "type": "integer"
            },
            "in": "query",
            "name": "findOrderId",
            "description": "Filter Fulfillment Requests by Order ID."
          },
          {
            "schema": {
              "type": "integer"
            },
            "in": "query",
            "name": "sinceId",
            "description": "If passed, returns results with an ID greater than this.",
            "allowEmptyValue": true
          },
          {
            "schema": {
              "type": "array",
              "maxItems": 50,
              "example": "PO123,PO456,PO789",
              "uniqueItems": true,
              "items": {
                "type": "string"
              },
              "deprecated": true
            },
            "in": "query",
            "name": "poNumbers",
            "description": "deprecated use `frNumbers`. Finds elements matching these Fulfillment Request Numbers. Max 50",
            "style": "form",
            "deprecated": true
          },
          {
            "schema": {
              "type": "array",
              "maxItems": 50,
              "example": "PO123,PO456,PO789",
              "uniqueItems": true,
              "items": {
                "type": "string"
              }
            },
            "in": "query",
            "name": "frNumbers",
            "description": "Finds elements matching these Fulfillment Request Numbers. Max 50",
            "style": "form",
            "explode": false
          },
          {
            "schema": {
              "type": "integer"
            },
            "in": "query",
            "name": "filterSourceId",
            "description": "Filter Fulfillment Requests by Source ID."
          },
          {
            "schema": {
              "type": "string",
              "enum": [
                "Awaiting Shipment",
                "Shipped",
                "Partially Shipped",
                "Canceled"
              ]
            },
            "in": "query",
            "name": "filterFulfilmentStatus",
            "description": "Filter Fulfillment Requests by Fulfillment \"Shipped\" Status. Accepts a comma-separated list to filter on multiple statuses at once."
          },
          {
            "schema": {
              "type": "boolean"
            },
            "in": "query",
            "name": "filterInvoiced",
            "description": "Filter Fulfillment Requests that have source invoice available."
          },
          {
            "schema": {
              "type": "integer",
              "default": 1
            },
            "in": "query",
            "name": "filterPageNumber",
            "description": "Current Page"
          },
          {
            "schema": {
              "type": "integer",
              "default": 20,
              "minimum": 1,
              "maximum": 100
            },
            "in": "query",
            "name": "filterPageSize",
            "description": "Number of entries per page"
          },
          {
            "schema": {
              "type": "string",
              "enum": [
                "Unprocessed",
                "Processed",
                "Acknowledged",
                "Canceled",
                "Failed",
                "Voided",
                "Processing",
                "Additional Info Required",
                "PO/FR # Exceeds Max Length",
                "Duplicate PO/FR #",
                "Cross Docked"
              ]
            },
            "in": "query",
            "name": "filterStatus",
            "description": "Filter Fulfillment Requests by Fulfillment Requests Status. Accepts a comma-separated list to filter on multiple statuses at once."
          },
          {
            "schema": {
              "type": "boolean"
            },
            "in": "query",
            "name": "filterIsAcknowledged",
            "description": "Filters Fulfillment Requests based on whether or they were acknowledged (true returns only acknowledged, false only those that are not acknowledged)."
          },
          {
            "schema": {
              "type": "string",
              "format": "date-time",
              "example": "2023-04-25T13:56:22.014Z"
            },
            "in": "query",
            "name": "filterAcknowledgedAfter",
            "description": "Filter Fulfillment Requests that were acknowledged after this date-time."
          },
          {
            "schema": {
              "type": "boolean"
            },
            "in": "query",
            "name": "filterIsSent",
            "description": "Filters Fulfillment Requests based on whether or they have been sent to the source (true returns only those that have been sent, false only those that have not yet been sent)."
          },
          {
            "schema": {
              "type": "string",
              "format": "date-time",
              "example": "2023-04-25T13:56:22.014Z"
            },
            "in": "query",
            "name": "filterSentAfter",
            "description": "Filter Fulfillment Requests that were sent from Flxpoint to the source after this date-time. FRs processed outside of Flxpoint will most likely not have a time set."
          },
          {
            "schema": {
              "type": "string",
              "format": "date-time",
              "example": "2023-04-25T13:56:22.014Z"
            },
            "in": "query",
            "name": "filterGeneratedAfter",
            "description": "Filter Fulfillment Requests that were generated after this date-time."
          },
          {
            "schema": {
              "type": "boolean"
            },
            "in": "query",
            "name": "filterIsCanceled",
            "description": "Filters Fulfillment Requests based on whether or they were canceled (true returns only canceled, false only those that are not canceled)."
          },
          {
            "schema": {
              "type": "string",
              "format": "date-time",
              "example": "2023-04-25T13:56:22.014Z"
            },
            "in": "query",
            "name": "filterCanceledAfter",
            "description": "Filters Fulfillment Requests that were canceled after this date-time."
          },
          {
            "schema": {
              "type": "boolean"
            },
            "in": "query",
            "name": "filterIsVoided",
            "description": "Filters Fulfillment Requests based on whether or they were voided (true returns only voided, false only those that are not voided)."
          },
          {
            "schema": {
              "type": "string",
              "format": "date-time",
              "example": "2023-04-25T13:56:22.014Z"
            },
            "in": "query",
            "name": "filterVoidedAfter",
            "description": "Filters Fulfillment Requests that were voided after this date-time."
          },
          {
            "schema": {
              "type": "boolean"
            },
            "in": "query",
            "name": "filterIsHeld",
            "description": "Filters Fulfillment Requests based on whether or not they are held.  When `true` is passed, it retrieves Fulfillment Requests that have hold until time set. When `false` is passed, it retrieves Fulfillment Requests that have no hold until time set or ones whose hold until time has elapsed (current time is after the `hold until` time)"
          },
          {
            "schema": {
              "type": "boolean"
            },
            "in": "query",
            "name": "filterHasError",
            "description": "Filters Fulfillment Requests based on whether or they have a processing error (true returns only those with errors, false only those without errors)."
          },
          {
            "schema": {
              "type": "boolean"
            },
            "in": "query",
            "name": "filterEligibleForProcessing",
            "description": "Use this to filter Fulfillment Requests that are eligible for processing. Passing true will return FRs only where the related order (if applicable) is in Open or Not Managed status and the FR is in Unprocessed status. Passing false will return FRs where the order (if applicable) is not in either of those statuses, or if so the FR has been transitioned out of Unprocessed status. Passing \"null\" or an empty value will not filter FRs based on order or FR status."
          },
          {
            "schema": {
              "type": "array",
              "example": "1234,1235,1257",
              "uniqueItems": true,
              "items": {
                "type": "integer"
              },
              "deprecated": true,
              "maxItems": 4
            },
            "in": "query",
            "name": "filterPurchaseOrderTypeIds",
            "description": "deprecated use `filterFulfillmentRequestType` Filter Fulfillment Requests by type id, using ids from the PurchaseOrderType Enum.",
            "style": "form",
            "deprecated": true
          },
          {
            "schema": {
              "type": "array",
              "enum": [
                "Purchase Order",
                "Fulfillment Order",
                "Transfer Order",
                "Stocking Purchase Order"
              ],
              "example": "Fulfillment Order, Transfer Order",
              "uniqueItems": true,
              "maxItems": 4,
              "items": {
                "type": "string"
              }
            },
            "in": "query",
            "name": "filterFulfillmentRequestType",
            "description": "Filter Fulfillment Requests by Type, Accepts a comma-separated list to filter on multiple types at once.",
            "explode": true
          },
          {
            "schema": {
              "type": "boolean"
            },
            "in": "query",
            "name": "isPurchaseOrderAccountingSynced",
            "description": "deprecated use `isFulfillmentRequestAccountingSynced`. Filter to only include or exclude Fulfillment Requests that have been synced to an Accounting Integration.",
            "deprecated": true
          },
          {
            "schema": {
              "type": "boolean"
            },
            "in": "query",
            "name": "isFulfillmentRequestAccountingSynced",
            "description": "Filter to only include or exclude Fulfillment Requests that have been synced to an Accounting Integration"
          },
          {
            "schema": {
              "type": "boolean"
            },
            "in": "query",
            "name": "isOrderAccountingSynced",
            "description": "Filter to only include or exclude those created for Orders that have been synced to an Accounting Integration. Does not relate to the whether or not the Fulfillment Requests has been synced."
          },
          {
            "schema": {
              "type": "boolean"
            },
            "in": "query",
            "name": "hasAccountingError",
            "description": "Filter to include or exclude Fulfillment Requests based on whether or not they have a previous error saved while sending to an Accounting Integration"
          },
          {
            "schema": {
              "type": "boolean"
            },
            "in": "query",
            "name": "filterOrderInvoiced",
            "description": "Filter to only include or exclude those created for Orders that have invoices. Does not relate to the whether or not the Fulfillment Requests has been invoiced."
          },
          {
            "schema": {
              "type": "boolean",
              "default": "false"
            },
            "in": "query",
            "name": "includeTags",
            "description": "Determines if \"tags\" are returned in the response "
          },
          {
            "schema": {
              "type": "string"
            },
            "in": "query",
            "name": "hasTag",
            "description": "Only returns Fulfillment Requests that have the matching tag"
          },
          {
            "schema": {
              "type": "boolean"
            },
            "in": "query",
            "name": "filterStockCommitted",
            "description": "Filter Fulfillment Requests that have stock committed."
          },
          {
            "schema": {
              "type": "string",
              "enum": [
                "Open",
                "Closed",
                "On Hold",
                "Failed",
                "No Shipping Method",
                "Canceled",
                "Not Managed"
              ]
            },
            "in": "query",
            "name": "filterOrderStatus",
            "description": "Only returns Fulfillment Requests associated with orders that have the matching status."
          }
        ],
        "description": "This endpoint will retrieve back Fulfillment Requests.\nFulfillment Requests can be retrieved using an Account or Source token. \nIf an Account Token is used, eligible Fulfillment Requests for the account will be fetched.\nWith a source token, Fulfillment Requests for the source can only be retrieved.\n\nAll filter parameters are optional. Passing a null or an empty value will ignore filtering for the specified conditions.\n\n"
      },
      "post": {
        "summary": "Create Fulfillment Request",
        "operationId": "createFulfillmentRequest",
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FulfillmentRequest"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "409": {
            "description": "PO Number is already in use."
          }
        },
        "tags": [
          "Fulfillment Request"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateFulfillmentRequest"
              }
            }
          }
        },
        "description": "This endpoint creates a Fulfillment Request (FR)!\n\nFulfillment Requests can be created by using an Account token. A `sourceId` is required to create a Purchase Order.\n\nFulfillment Request Items are associated to `Order Items` by `orderItemId`.\n\nFulfillment Request Items are associated to `Inventory` by `sku` or `inventoryVariantId`.\n\nFor more information, see the `item` request details below.\n\nWhen an Fulfillment Request is created, it will : \n- Estimate Shipping Costs (via Workflow or Rate Shopping)\n- Estimate Dropship Fees (via Workflow)\n- Run `PO/FR Strategy` settings (Auto Processing, PO Workflow, PO # Utilities, etc.)\n\nFor more information about Fulfillment Requests, see our docs : https://docs.flxpoint.com/flxpoint/purchase-orders-fulfillment-requests\n"
      }
    },
    "/fulfillment-requests/{id}": {
      "parameters": [
        {
          "schema": {
            "type": "integer"
          },
          "name": "id",
          "in": "path",
          "required": true,
          "description": "The fulfillment request Id"
        }
      ],
      "put": {
        "summary": "Update Fulfillment Request",
        "operationId": "updateFulfillmentRequest",
        "responses": {
          "200": {
            "description": "Updated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FulfillmentRequest"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "FR does not exist"
          }
        },
        "tags": [
          "Fulfillment Request"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateFulfillmentRequest"
              }
            }
          }
        },
        "description": "This endpoint updates a Fulfillment Request (FR)."
      }
    },
    "/purchase-orders/count": {
      "parameters": [],
      "get": {
        "summary": "[Deprecated] Get Count of Purchase Orders",
        "tags": [
          "Purchase Order"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GenericCount"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GenericApiError"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "operationId": "getPurchaseOrdersCount",
        "parameters": [
          {
            "schema": {
              "type": "integer"
            },
            "in": "query",
            "name": "findOrderId",
            "description": "Filter Purchase Orders by Order ID."
          },
          {
            "schema": {
              "type": "integer"
            },
            "in": "query",
            "name": "sinceId",
            "description": "If passed, returns results with an ID greater than this."
          },
          {
            "schema": {
              "type": "array",
              "maxItems": 50,
              "example": "PO123,PO456,PO789",
              "uniqueItems": true,
              "items": {
                "type": "string"
              }
            },
            "in": "query",
            "name": "poNumbers",
            "description": "Finds elements matching these Purchase Order Numbers. Max 50",
            "style": "form",
            "explode": false
          },
          {
            "schema": {
              "type": "integer"
            },
            "in": "query",
            "name": "filterSourceId",
            "description": "Filter Purchase Orders by Source ID."
          },
          {
            "schema": {
              "type": "string",
              "enum": [
                "Awaiting Shipment",
                "Shipped",
                "Partially Shipped",
                "Canceled"
              ]
            },
            "in": "query",
            "name": "filterFulfilmentStatus",
            "description": "Filter Purchase Orders by Fulfillment Status. Accepts a comma-separated list to filter on multiple statuses at once."
          },
          {
            "schema": {
              "type": "boolean"
            },
            "in": "query",
            "name": "filterInvoiced",
            "description": "Filter Purchase Orders that have source invoice available."
          },
          {
            "schema": {
              "type": "string",
              "enum": [
                "Unprocessed",
                "Processed",
                "Acknowledged",
                "Canceled",
                "Failed",
                "Voided",
                "Processing",
                "Additional Info Required",
                "PO/FR # Exceeds Max Length",
                "Duplicate PO/FR #",
                "Cross Docked"
              ]
            },
            "in": "query",
            "name": "filterStatus",
            "description": "Filter Purchase Orders by Purchase Order Status. Accepts a comma-separated list to filter on multiple statuses at once."
          },
          {
            "schema": {
              "type": "boolean"
            },
            "in": "query",
            "name": "filterIsAcknowledged",
            "description": "Filters Purchase Orders based on whether or they were acknowledged (true returns only acknowledged, false only those that are not acknowledged)."
          },
          {
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "in": "query",
            "name": "filterAcknowledgedAfter",
            "description": "Filter Purchase Orders that were acknowledged after this date-time."
          },
          {
            "schema": {
              "type": "boolean"
            },
            "in": "query",
            "name": "filterIsSent",
            "description": "Filters Purchase Orders based on whether or they have been sent to the source (true returns only those that have been sent, false only those that have not yet been sent)."
          },
          {
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "in": "query",
            "name": "filterSentAfter",
            "description": "Filter Purchase Orders that were sent after this date-time."
          },
          {
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "in": "query",
            "name": "filterGeneratedAfter",
            "description": "Filter Purchase Orders that were generated after this date-time."
          },
          {
            "schema": {
              "type": "boolean"
            },
            "in": "query",
            "name": "filterIsCanceled",
            "description": "Filters Purchase Orders based on whether or they were canceled (true returns only canceled, false only those that are not canceled)."
          },
          {
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "in": "query",
            "name": "filterCanceledAfter",
            "description": "Filters Purchase Orders that were canceled after this date-time."
          },
          {
            "schema": {
              "type": "boolean"
            },
            "in": "query",
            "name": "filterIsVoided",
            "description": "Filters Purchase Orders based on whether or they were voided (true returns only voided, false only those that are not voided)."
          },
          {
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "in": "query",
            "name": "filterVoidedAfter",
            "description": "Filters Purchase Orders that were voided after this date-time."
          },
          {
            "schema": {
              "type": "boolean"
            },
            "in": "query",
            "name": "filterIsHeld",
            "description": "Filters Purchase Orders based on whether or they are being held (true returns only held, false only those that are not held)."
          },
          {
            "schema": {
              "type": "boolean"
            },
            "in": "query",
            "name": "filterHasError",
            "description": "Filters Purchase Orders based on whether or they have a processing error (true returns only those with errors, false only those without errors)."
          },
          {
            "schema": {
              "type": "boolean"
            },
            "in": "query",
            "name": "filterEligibleForProcessing",
            "description": "Filters Fulfillment Requests based on whether the order it related to is Open/Not Managed (true returns only if the order it is related to is Open/Not Managed, false does not filter PO based on order status)."
          },
          {
            "schema": {
              "type": "array",
              "example": "1234,1235,1257",
              "maxItems": 50,
              "uniqueItems": true,
              "items": {
                "type": "integer"
              }
            },
            "in": "query",
            "name": "filterPurchaseOrderTypeIds",
            "description": "Filter Purchase Orders by type id, using ids from the PurchaseOrderType Enum.",
            "style": "form"
          },
          {
            "schema": {
              "type": "boolean"
            },
            "in": "query",
            "name": "isPurchaseOrderAccountingSynced",
            "description": "Filter to only include Purchase Orders that have been synced to an Accounting Integration."
          },
          {
            "schema": {
              "type": "boolean"
            },
            "in": "query",
            "name": "isOrderAccountingSynced",
            "description": "Filter to only include those created for Orders that have been synced to an Accounting Integration. Does not relate to the whether or not the Purchase Order has been synced."
          },
          {
            "schema": {
              "type": "boolean"
            },
            "in": "query",
            "name": "hasAccountingError",
            "description": "Filter to include Purchase Orders based on whether or not they have a previous error saved while sending to an Accounting Integration"
          },
          {
            "schema": {
              "type": "boolean"
            },
            "in": "query",
            "name": "filterOrderInvoiced",
            "description": "Filter to only include those created for Orders that have invoices. Does not relate to the whether or not the Purchase Order has been invoiced."
          }
        ],
        "description": "This endpoint will get a count of Purchase Orders applicable to your filters",
        "deprecated": true
      }
    },
    "/purchase-orders/{purchaseOrderId}": {
      "parameters": [
        {
          "schema": {
            "type": "integer"
          },
          "name": "purchaseOrderId",
          "in": "path",
          "required": true,
          "description": "Purchase Order Id"
        }
      ],
      "get": {
        "summary": "[Deprecated] Get Purchase Order",
        "tags": [
          "Purchase Order"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PurchaseOrder"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "operationId": "getPurchaseOrderById",
        "deprecated": true
      }
    },
    "/purchase-orders/{purchaseOrderId}/processed": {
      "parameters": [
        {
          "schema": {
            "type": "integer"
          },
          "name": "purchaseOrderId",
          "in": "path",
          "required": true,
          "description": "id of purchase order"
        }
      ],
      "patch": {
        "summary": "[Deprecated] Process Purchase Order",
        "tags": [
          "Purchase Order"
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "operationId": "processPurchaseOrder",
        "description": "Update a Purchase Order as `Processed`. <br/>\nOnly Purchase Orders in `Processing` status can be transitioned to `Processed`.\n\nIf the Purchase Order is already in `Processed` status, a 200 (OK) response will be returned.",
        "deprecated": true
      }
    },
    "/purchase-orders/{purchaseOrderId}/acknowledge": {
      "parameters": [
        {
          "schema": {
            "type": "integer"
          },
          "name": "purchaseOrderId",
          "in": "path",
          "required": true,
          "description": "ID of Purchase Order"
        }
      ],
      "patch": {
        "summary": "[Deprecated] Acknowledge Purchase Order",
        "tags": [
          "Purchase Order"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PurchaseOrderAcknowledgement"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PurchaseOrder"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "operationId": "acknowledgeAllPoItems",
        "description": "Acknowledge all PO Line item quantities which are not already acknowledged/canceled",
        "deprecated": true
      }
    },
    "/purchase-orders/{purchaseOrderId}/cancel": {
      "parameters": [
        {
          "schema": {
            "type": "integer"
          },
          "name": "purchaseOrderId",
          "in": "path",
          "required": true,
          "description": "ID of Purchase Order"
        }
      ],
      "patch": {
        "summary": "[Deprecated] Cancel Purchase Order",
        "tags": [
          "Purchase Order"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PurchaseOrder"
                },
                "examples": {}
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "operationId": "cancelAllPoItems",
        "description": "Cancels all PO Line item quantities which are not already acknowledged/canceled",
        "parameters": [
          {
            "schema": {
              "type": "string",
              "enum": [
                "kill",
                "fill"
              ],
              "default": "fill"
            },
            "in": "query",
            "name": "killOrFillType",
            "description": "`killOrFillType` can be either `fill` Or `kill`. By default it will be `fill`. `fill` : This will unallocate the quantities from the order item level so that another PO can be generated for alternative fulfillment. `kill` : This will cancel the quantities at the order item level indicating no further fulfillment should occur."
          },
          {
            "schema": {
              "type": "string"
            },
            "in": "query",
            "name": "cancelReason",
            "description": "use this to state the reason for cancel"
          }
        ],
        "deprecated": true
      }
    },
    "/purchase-orders/{purchaseOrderId}/adjust": {
      "parameters": [
        {
          "schema": {
            "type": "integer"
          },
          "name": "purchaseOrderId",
          "in": "path",
          "required": true,
          "description": "ID of Purchase Order"
        }
      ],
      "post": {
        "summary": "[Deprecated] Adjust Purchase Order",
        "tags": [
          "Purchase Order"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PurchaseOrder"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "operationId": "adjustPurchaseOrder",
        "description": "This endpoint allows for partial acknowledgements and/or cancellations by specifying items.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PurchaseOrderAcknowledgementRequest"
              },
              "examples": {}
            }
          },
          "description": "Pass a null or empty value for `items` to acknowledge all PO Line item quantities which are not already acknowledged/canceled. Secondary Acknowledgements will not be updated when omitting line items."
        },
        "deprecated": true
      }
    },
    "/purchase-orders/{purchaseOrderId}/processing-failed": {
      "parameters": [
        {
          "schema": {
            "type": "integer"
          },
          "name": "purchaseOrderId",
          "in": "path",
          "required": true,
          "description": "Id of purchase order"
        }
      ],
      "patch": {
        "summary": "[Deprecated] Fail Purchase Order",
        "tags": [
          "Purchase Order"
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "operationId": "failPurchaseOrder",
        "description": "Update Purchase Order as failed during processing.<br/>\nOnly a purchase order in processing status `Processing` or `Processed` can be updated as `Failed`.<br/>\nIt will then transition into processing status `Processing Error`.",
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "in": "query",
            "name": "error",
            "description": "reason why processing failed",
            "required": true
          }
        ],
        "deprecated": true
      }
    },
    "/purchase-orders/processing": {
      "get": {
        "summary": "[Deprecated] Get Purchase Orders Processing",
        "tags": [
          "Purchase Order"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/PurchaseOrder"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "operationId": "getPurchaseOrdersInProcessingAndTransitionThemToProcessed",
        "parameters": [
          {
            "schema": {
              "type": "integer"
            },
            "in": "query",
            "name": "filterSourceId",
            "description": "filter Purchase Orders by Source ID"
          }
        ],
        "description": "This endpoint will retrieve a list of Purchase Orders AND `Update the POs to Processed`\n\nNOTE : This means, if our API times out for you - those POs may transition into a \"Processed\" state despite you not receiving them. \n\nIt's not recommended to use this endpoint, and it may be deprecated in the near future. We'd recommend using `GET /purchase-orders` to retrieve and `PATCH /purchase-orders/{purchaseOrderId}/acknowledge` to respond",
        "deprecated": true
      }
    },
    "/purchase-orders/{purchaseOrderId}/committed-stock": {
      "parameters": [
        {
          "schema": {
            "type": "integer"
          },
          "name": "purchaseOrderId",
          "in": "path",
          "required": true,
          "description": "ID of Purchase Order"
        }
      ],
      "get": {
        "summary": "[Deprecated] Get Committed Stock For Purchase Order",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/CommittedStock"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "operationId": "getCommittedStockForPurchaseOrder",
        "description": "Get committed stock for a purchase order",
        "tags": [
          "Purchase Order"
        ],
        "deprecated": true
      },
      "post": {
        "summary": "[Deprecated] Commit Stock For Purchase Order",
        "operationId": "commitStockForPurchaseOrder",
        "responses": {
          "200": {
            "description": "OK"
          },
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "tags": [
          "Purchase Order"
        ],
        "description": "Commit Stock for purchase order",
        "deprecated": true
      },
      "patch": {
        "summary": "[Deprecated] Adjust Applicable Committed Stock",
        "operationId": "adjustApplicableCommittedStock",
        "responses": {
          "200": {
            "description": "OK"
          },
          "204": {
            "description": "No Content"
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "description": "This endpoint will intelligently reconcile and adjust/release all applicable committed stock for the PO. The cases in which these occurr are as follows : \n\n    - Shipments : Will automatically release any committed stock for associated shipments that have not yet had their shipped quantity released.\n\n    - Canceled & Voided : Will automatically release all committed stock in the case that the PO is now canceled or voided.\n\n    - Line Item Qty Change : If a PO prior to being processed has any quantities modified this endpoint will reconcile the difference between what is already committed and what was modified and will then either release or add the difference.\n\nThis endpoint will not double/over release when interacted with multiple times (it's idempotent). This makes it safe to call even if you are unsure of whether or not all stock has been appropriately released.",
        "tags": [
          "Purchase Order"
        ],
        "x-internal": false,
        "deprecated": true
      },
      "delete": {
        "summary": "[Deprecated] Release All Committed Stock For Purchase Order",
        "operationId": "releaseAllCommittedStockForPurchaseOrder",
        "responses": {
          "200": {
            "description": "OK"
          },
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "tags": [
          "Purchase Order"
        ],
        "description": "Release committed stock for purchase order",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ReleaseCommittedStockRequest"
              }
            }
          }
        },
        "deprecated": true
      }
    },
    "/purchase-orders/{sourceId}/{purchaseOrderNumber}": {
      "parameters": [
        {
          "schema": {
            "type": "integer"
          },
          "name": "sourceId",
          "in": "path",
          "required": true
        },
        {
          "schema": {
            "type": "string"
          },
          "name": "purchaseOrderNumber",
          "in": "path",
          "required": true
        }
      ],
      "get": {
        "summary": "[Deprecated] Get Purchase Order By PO #",
        "tags": [
          "Purchase Order"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/PurchaseOrder"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "operationId": "getPurchaseOrderByPurchaseOrderNumber",
        "deprecated": true,
        "description": "This endpoint is deprecated, please use `GET /purchase-orders` and pass `findByPONumber`"
      }
    },
    "/inbound-shipments": {
      "get": {
        "summary": "Get Inbound Shipments",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/InboundShipment"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {}
                }
              }
            }
          }
        },
        "operationId": "getInboundShipments",
        "description": "This endpoint allows you to get a list of ”inbound”, shipments from Stocking Purchase Orders and Transfer Orders. \n<br/><br/>\nUse the source token or an account token along with the sourceId to see the inbound shipments going to that source.",
        "parameters": [
          {
            "schema": {
              "type": "integer"
            },
            "in": "query",
            "name": "sourceId",
            "description": "This field will automatically be populated if you are using a Source API Token. If you are using an Account API Token, this field is required."
          },
          {
            "schema": {
              "type": "string",
              "enum": [
                "awaiting_to_receive",
                "partially_received",
                "received",
                "voided"
              ]
            },
            "in": "query",
            "name": "receivedStatus",
            "description": "status string signifying how much restocking has been done"
          },
          {
            "schema": {
              "type": "string",
              "enum": [
                "not_started",
                "partially_completed",
                "completed"
              ]
            },
            "in": "query",
            "name": "shippedStatus",
            "description": "status string to filter inbound shipments on the basis of their shipped status"
          },
          {
            "schema": {
              "type": "string",
              "format": "date-time",
              "example": "2020-10-14T16:05:00.000Z"
            },
            "in": "query",
            "name": "createdAfter",
            "description": "Filters down to Inbound Shipments that have been created after this timestamp. (Timestamp in UTC)"
          },
          {
            "schema": {
              "type": "integer",
              "default": 1
            },
            "in": "query",
            "name": "page",
            "description": "if not specified, defaults to: 1"
          },
          {
            "schema": {
              "type": "integer",
              "default": 20
            },
            "in": "query",
            "name": "pageSize",
            "description": "If not provided, this field will be defaulted to \"20\""
          },
          {
            "schema": {
              "type": "string"
            },
            "in": "query",
            "name": "sourceName",
            "description": "filter inbound shipments on the basis of source name. If sourceId and sourceName, both are provided, preference will be give to sourceId"
          }
        ],
        "tags": [
          "Inbound Shipments"
        ]
      },
      "parameters": []
    },
    "/inbound-shipments/{id}/receive": {
      "patch": {
        "summary": "Fully Receive Inbound Shipment",
        "operationId": "fullyReceiveInboundShipment",
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "description": "Fully receive all items",
        "parameters": [
          {
            "schema": {
              "type": "boolean",
              "default": "true"
            },
            "in": "query",
            "name": "updateInventoryOnceReceived",
            "description": "Update inventory after receiving shipment"
          }
        ],
        "tags": [
          "Inbound Shipments"
        ]
      },
      "post": {
        "summary": "Partially Receive Inbound Shipment",
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "operationId": "partiallyReceiveInboundShipment",
        "description": "Partially receive items",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ReceiveInboundShipmentAdjustment"
              }
            }
          },
          "description": "in `ItemQuantityAdjustment`, either `sku` or `purchaseOrderItemId` must be specified "
        },
        "parameters": [
          {
            "schema": {
              "type": "boolean",
              "default": "true"
            },
            "in": "query",
            "name": "updateInventoryOnceReceived",
            "description": "Update inventory after receiving shipment"
          }
        ],
        "tags": [
          "Inbound Shipments"
        ]
      },
      "parameters": [
        {
          "schema": {
            "type": "integer"
          },
          "name": "id",
          "in": "path",
          "required": true,
          "description": "Id of purchase order"
        }
      ]
    },
    "/shipments": {
      "parameters": [],
      "get": {
        "summary": "Get Shipments",
        "tags": [
          "Shipment"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Shipment"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "operationId": "listShipments",
        "parameters": [
          {
            "schema": {
              "type": "integer"
            },
            "in": "query",
            "name": "findByOrderId",
            "description": "ID of order, use this to retrieve shipments of a specific order"
          },
          {
            "schema": {
              "type": "integer"
            },
            "in": "query",
            "name": "findByPurchaseOrderId",
            "description": "ID of purchase order, use this to retrieve shipments of a specific purchase order"
          },
          {
            "schema": {
              "type": "string",
              "format": "date-time",
              "example": "2020-10-14T16:05:00.000Z"
            },
            "in": "query",
            "name": "filterCreatedAfter",
            "description": "Filter to only include shipments created after a specific date-time"
          },
          {
            "schema": {
              "type": "integer",
              "default": 1
            },
            "in": "query",
            "name": "filterPageNumber",
            "description": "Current Page"
          },
          {
            "schema": {
              "type": "integer",
              "default": 20,
              "minimum": 1,
              "maximum": 100
            },
            "in": "query",
            "name": "filterPageSize",
            "description": "Number of entries per page"
          },
          {
            "schema": {
              "type": "string",
              "format": "date-time",
              "example": "2020-10-14T16:05:00.000Z"
            },
            "in": "query",
            "name": "filterUpdatedAfter",
            "description": "Filter to only include shipments updated after a specific date-time"
          }
        ],
        "description": "This endpoint will list shipments. The returned shipments will always be sorted by their `insertedAt` time ascending (oldest first)."
      },
      "post": {
        "summary": "Create Shipment",
        "tags": [
          "Shipment"
        ],
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Shipment"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not Found"
          },
          "409": {
            "description": "Conflict"
          },
          "412": {
            "description": "Precondition Failed"
          }
        },
        "operationId": "createShipment",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateShipmentRequest"
              },
              "examples": {
                "Example 1: Using \"purchaseOrderId\" to identify the PO & \"SKU\" to identify the PO Items (NOTE : the Shipment Item SKU must match the PO Item SKU)": {
                  "value": {
                    "purchaseOrderId": 1388412,
                    "shipment": {
                      "trackingNumber": "1Z63R094545434534534534534",
                      "carrier": "ups",
                      "method": "ups_ground",
                      "shipmentItems": [
                        {
                          "sku": "HG12123123",
                          "quantity": 1
                        }
                      ]
                    }
                  }
                },
                "Example 2: Using \"purchaseOrderNumber\" to identify the PO & \"sku\" to identify the items (NOTE : the Shipment Item SKU must match the PO Item SKU)": {
                  "value": {
                    "purchaseOrderNumber": "ORDER_123-1",
                    "shipment": {
                      "trackingNumber": "1Z63R094545434534534534534",
                      "carrier": "ups",
                      "method": "ups_ground",
                      "shipmentItems": [
                        {
                          "sku": "HG12123123",
                          "quantity": 1
                        }
                      ]
                    }
                  }
                },
                "Example 3: Using \"purchaseOrderNumber\" to identify the PO & \"purchaseOrderItemId\" to identify the items": {
                  "value": {
                    "purchaseOrderNumber": "ORDER_123-1",
                    "shipment": {
                      "trackingNumber": "1Z63R094545434534534534534",
                      "carrier": "ups",
                      "method": "ups_ground",
                      "shipmentItems": [
                        {
                          "purchaseOrderItemId": 1884921,
                          "quantity": 1
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "description": "For the `shipment` data you must provide `trackingNumber` and there must be at least one `shipmentItem`. Within `shipmentItem` a `quantity` must be specified and one out of (`sku`, `sourceVariantId`, `orderItemId`, `purchaseOrderItemId`) must be provided."
        },
        "description": "Create a new shipment for a Fulfillment Request / Purchase Order.\n\nA source token or account token may be used."
      },
      "patch": {
        "summary": "Patch Shipment",
        "operationId": "patchShipment",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Shipment"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not Found"
          },
          "409": {
            "description": "Conflict"
          },
          "412": {
            "description": "Precondition Failed"
          }
        },
        "description": "Update fields on an existing shipment. Only non-null fields in the request will be modified.\n\nA source token or account token may be used.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PatchShipmentRequest"
              }
            }
          }
        },
        "tags": [
          "Shipment"
        ]
      }
    },
    "/shipments/{id}": {
      "parameters": [
        {
          "schema": {
            "type": "integer"
          },
          "name": "id",
          "in": "path",
          "required": true,
          "description": "shipment id"
        }
      ],
      "get": {
        "summary": "Get Shipment",
        "tags": [
          "Shipment"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Shipment"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "operationId": "getShipmentById"
      }
    },
    "/shipments/mark-synced": {
      "parameters": [],
      "put": {
        "summary": "Mark Shipments as Synced to Channel",
        "tags": [
          "Shipment"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {}
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "operationId": "markShipmentsSynced",
        "description": "Marks a collection of Shipment IDs as synced to the channel, and clears out any existing sync error. An account or channel API token may be used.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "array",
                "description": "array of Shipment IDs",
                "items": {
                  "type": "integer"
                }
              }
            }
          }
        }
      }
    },
    "/shipments/flag-with-errors": {
      "parameters": [],
      "put": {
        "summary": "Flag Shipments with Sync Errors",
        "tags": [
          "Shipment"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {}
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "operationId": "flagShipmentsWithErrors",
        "description": "Takes a collection of shipments, and saves their errors encountered when syncing to the channel.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "array",
                "description": "array of shipments with errors",
                "items": {
                  "$ref": "#/components/schemas/Shipment"
                }
              }
            }
          }
        }
      }
    },
    "/source-invoices": {
      "get": {
        "summary": "Get Source Invoices",
        "tags": [
          "Source Invoice"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Invoice"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "operationId": "listSourceInvoices",
        "description": "This endpoint lists source invoices. The returned invoices will always be sorted by their `insertedAt` time ascending (oldest first).",
        "parameters": [
          {
            "schema": {
              "type": "integer"
            },
            "in": "query",
            "name": "filterPurchaseOrderId",
            "description": "Filter to only include invoices of a specific PO"
          },
          {
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "in": "query",
            "name": "filterCreatedAfter",
            "description": "Filter to only include invoices created after a specific date-time"
          },
          {
            "schema": {
              "type": "integer"
            },
            "in": "query",
            "name": "filterSourceId",
            "description": "Filter to only include invoices from a particular source. When using a source token this value will be ignored as it will be implicit to use the source tokens source ID"
          },
          {
            "schema": {
              "type": "boolean"
            },
            "in": "query",
            "name": "isAccountingSynced",
            "description": "Filter to only include invoices that have been synced to an Accounting Integration"
          },
          {
            "schema": {
              "type": "boolean"
            },
            "in": "query",
            "name": "isForSyncedAccountingPurchaseOrder",
            "description": "Filter to only include those tied to purchase orders that have been synced to an Accounting Integration. Does not relate to the whether or not the invoice has been synced."
          },
          {
            "schema": {
              "type": "integer",
              "default": 1
            },
            "in": "query",
            "name": "filterPageNumber",
            "description": "Current Page"
          },
          {
            "schema": {
              "type": "integer",
              "default": 20,
              "minimum": 1,
              "maximum": 100
            },
            "in": "query",
            "name": "filterPageSize",
            "description": "Number of entries per page"
          },
          {
            "$ref": "#/components/parameters/findbyids"
          },
          {
            "schema": {
              "type": "boolean"
            },
            "in": "query",
            "name": "hasAccountingSyncError",
            "description": "Filters returned \"invoices\" based on whether they encountered an accounting sync error during channel synchronization."
          }
        ]
      },
      "post": {
        "summary": "Create Source Invoice",
        "operationId": "postSourceInvoice",
        "parameters": [
          {
            "name": "applyInvoiceWorkflow",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": true
            },
            "description": "If passed, Flxpoint will run through the source invoice workflow if there are rules enabled"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Invoice"
                },
                "examples": {
                  "example-1": {
                    "value": {
                      "id": 0,
                      "invoiceStatus": {
                        "name": "Paid",
                        "handle": "paid"
                      },
                      "accountId": 0,
                      "insertedAt": "2019-08-24T14:15:22Z",
                      "updatedAt": "2019-08-24T14:15:22Z",
                      "purchaseOrderId": 0,
                      "sourceId": 0,
                      "purchaseOrderNumber": "string",
                      "invoiceNumber": "string",
                      "invoiceDate": "2019-08-24T14:15:22Z",
                      "totalCost": 0,
                      "totalProductCost": 0,
                      "totalShippingCost": 0,
                      "totalFeeCost": 0,
                      "totalTaxCost": 0,
                      "totalOtherCost": 0,
                      "totalQuantity": 0,
                      "accountingSynced": true,
                      "externalAccountingId": "string",
                      "invoiceItems": [
                        {
                          "id": 0,
                          "invoiceId": 0,
                          "invoiceItemType": {
                            "name": "Product",
                            "handle": "product"
                          },
                          "sourceVariantId": 0,
                          "cost": 0,
                          "sku": "string",
                          "title": "string",
                          "quantity": 0,
                          "perUnitCost": 0,
                          "externalAccountingItemId": "string"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "description": "This endpoint will allow you to create a Source Invoice. A source token or account token may be used.\n\nSee the `CreateSourceInvoice` model for details. ",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateSourceInvoice"
              },
              "examples": {
                "example-1": {
                  "value": {
                    "purchaseOrderId": 0,
                    "invoiceNumber": "string",
                    "invoiceStatus": "paid",
                    "invoiceDate": "2019-08-24T14:15:22Z",
                    "invoiceItems": [
                      {
                        "invoiceItemType": "product",
                        "title": "{sku}",
                        "sku": "string",
                        "inventoryVariantId": 0,
                        "quantity": 1,
                        "perUnitCost": 0,
                        "cost": 0
                      }
                    ]
                  }
                }
              }
            }
          },
          "description": ""
        },
        "tags": [
          "Source Invoice"
        ]
      }
    },
    "/source-invoices/{id}": {
      "get": {
        "summary": "Get Source Invoice",
        "tags": [
          "Source Invoice"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Invoice"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "operationId": "getSourceInvoiceById"
      },
      "parameters": [
        {
          "schema": {
            "type": "integer"
          },
          "name": "id",
          "in": "path",
          "required": true,
          "description": "Source Invoice ID"
        }
      ],
      "patch": {
        "summary": "Modify Source Invoice",
        "operationId": "patchSourceInvoice",
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateSourceInvoice"
              },
              "examples": {
                "Full": {
                  "value": {
                    "totalCreditCost": 0,
                    "accountingSynced": true,
                    "externalAccountingId": "string",
                    "items": [
                      {
                        "invoiceItemId": 0,
                        "externalAccountingItemId": "string"
                      }
                    ],
                    "status": "unpaid",
                    "vendorPayoutId": 0
                  }
                },
                "Accounting Sync": {
                  "value": {
                    "accountingSynced": true,
                    "externalAccountingId": "string",
                    "items": [
                      {
                        "invoiceItemId": 0,
                        "externalAccountingItemId": "string"
                      }
                    ]
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Source Invoice"
        ],
        "description": "This endpoint will allow you to change specific fields on a Source Invoice. Only non-null fields will be updated.\n\nA source token or account token may be used.\n\nIt is supported for both Fulfillment Request invoices and RMA invoices."
      }
    },
    "/routing-groups": {
      "get": {
        "summary": "Get Routing Groups",
        "tags": [
          "Routing"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "description": "",
                  "items": {
                    "$ref": "#/components/schemas/RoutingGroup"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "operationId": "getRoutingGroups",
        "description": "Endpoint to retrieve back a list of routing groups. To understand more about routing groups, visit our documentation : https://docs.flxpoint.com/flxpoint/routing-groups\n\nYou can also look at the `RoutingGroup` model for additional context.\n\nRequires Account-level Token privileges. ",
        "parameters": [
          {
            "schema": {
              "type": "boolean",
              "default": false
            },
            "in": "query",
            "name": "includeSources",
            "description": "Determines if `sources` are retrieved back and included in the response. Default `false`. "
          },
          {
            "schema": {
              "type": "boolean",
              "default": false
            },
            "in": "query",
            "name": "includeRules",
            "description": "Determines if `routing priorities` are retrieved back and included in the response. Default `false`. "
          },
          {
            "schema": {
              "type": "boolean",
              "default": false
            },
            "in": "query",
            "name": "includeSetting",
            "description": "Determines if `routing group setting` is retrieved back and included in the response. Default `false`. "
          }
        ]
      }
    },
    "/routing-groups/{id}": {
      "parameters": [
        {
          "schema": {
            "type": "integer"
          },
          "name": "id",
          "in": "path",
          "required": true,
          "description": "ID of order routing group"
        }
      ],
      "get": {
        "summary": "Get Routing Group",
        "tags": [
          "Routing"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RoutingGroup"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "operationId": "getRoutingGroupById",
        "parameters": [
          {
            "schema": {
              "type": "boolean",
              "default": false
            },
            "in": "query",
            "name": "includeSources"
          },
          {
            "schema": {
              "type": "boolean",
              "default": false
            },
            "in": "query",
            "name": "includeRules"
          },
          {
            "schema": {
              "type": "boolean",
              "default": false
            },
            "in": "query",
            "name": "includeSetting"
          }
        ],
        "description": "This will get a Routing Group by ID. "
      }
    },
    "/routing-groups/{id}/sources": {
      "parameters": [
        {
          "schema": {
            "type": "integer"
          },
          "name": "id",
          "in": "path",
          "required": true,
          "description": "The `RoutingGroup` ID"
        }
      ],
      "put": {
        "summary": "Add Routing Group Sources",
        "tags": [
          "Routing"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "description": "array of routing group sources",
                  "items": {
                    "$ref": "#/components/schemas/RoutingGroupSource"
                  }
                },
                "examples": {
                  "example-1": {
                    "value": [
                      {
                        "id": 0,
                        "routingGroupId": 0,
                        "sourceId": 0,
                        "eligible": true,
                        "shippingAddressId": 0,
                        "suppressTracking": true
                      }
                    ]
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "operationId": "putRoutingGroupSources",
        "description": "Allows you to PUT `RoutingGroupSource`s into a `RoutingGroup`. \n\nIf the `sourceId` provided in the `PutRoutingGroupSource` already exists for a given `RoutingGroup`, that PUT entry will update the contents of that matching `RoutingGroupSource`. \n\nOtherwise, this PUT entry will create a new `RoutingGroupSource` for any new `sourceId`s provided. \n\nThis requires Account-level Token privileges. ",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "array",
                "description": "array of routing group sources",
                "items": {
                  "$ref": "#/components/schemas/PutRoutingGroupSource"
                }
              },
              "examples": {
                "example-1": {
                  "value": [
                    {
                      "sourceId": 0,
                      "eligible": true,
                      "priority": 999,
                      "shippingAddressId": 0,
                      "suppressTracking": true
                    }
                  ]
                }
              }
            }
          },
          "description": ""
        }
      }
    },
    "/shipping/shipping-policy": {
      "parameters": [],
      "get": {
        "summary": "Get All Shipping Policies",
        "tags": [
          "Shipping"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ShippingPolicy"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "operationId": "getShippingPolicies",
        "description": "Retrieve all shipping policies"
      },
      "post": {
        "summary": "Create Shipping Policy",
        "tags": [
          "Shipping"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateShippingPolicyRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShippingPolicy"
                }
              }
            }
          },
          "400": {
            "description": "Shipping policy with the provided name already exists"
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "operationId": "createShippingPolicy",
        "description": "Create a shipping policy"
      }
    },
    "/shipping/shipping-policy/{id}": {
      "parameters": [
        {
          "schema": {
            "type": "integer"
          },
          "name": "id",
          "in": "path",
          "required": true,
          "description": "id of shipping policy"
        }
      ],
      "get": {
        "summary": "Get Shipping Policy",
        "tags": [
          "Shipping"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShippingPolicy"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShippingPolicy"
                }
              }
            }
          }
        },
        "operationId": "getShippingPolicyById",
        "description": "Retrieve shipping policy by id"
      },
      "put": {
        "summary": "Update Shipping Policy",
        "tags": [
          "Shipping"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateShippingPolicyRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShippingPolicy"
                }
              }
            }
          },
          "400": {
            "description": "A shipping policy with that name already exists"
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "operationId": "updateShippingPolicyById",
        "description": "Update a shipping policy by ID"
      },
      "delete": {
        "summary": "Delete Shipping Policy",
        "tags": [
          "Shipping"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {}
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "operationId": "deleteShippingPolicyById",
        "description": "Delete a shipping policy by ID"
      }
    },
    "/shipping/channel-shipping-methods": {
      "get": {
        "summary": "Get Channel Shipping Methods",
        "tags": [
          "Shipping"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ChannelShippingMethod"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "operationId": "getChannelShippingMethods",
        "description": "Get Channel Shipping Method by `channel id` and `shipping policy id` or `shipping text`.\nEither `shipping policy id` or `shipping text` must be provided.\nIf both values are provided preference will be given to `shipping policy id`.",
        "parameters": [
          {
            "schema": {
              "type": "integer"
            },
            "in": "query",
            "name": "channelId",
            "description": "Channel Id"
          },
          {
            "schema": {
              "type": "integer"
            },
            "in": "query",
            "name": "shippingPolicyId",
            "description": "Shipping Policy Id "
          },
          {
            "schema": {
              "type": "string"
            },
            "in": "query",
            "name": "shippingText",
            "description": "Shipping Text"
          },
          {
            "schema": {
              "type": "string"
            },
            "in": "query",
            "name": "ids",
            "description": "Return specific shipping methods by passing in a comma separated list of Ids"
          }
        ]
      },
      "post": {
        "summary": "Create Channel Shipping Method",
        "tags": [
          "Shipping"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateChannelShippingMethodRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ChannelShippingMethod"
                }
              }
            }
          },
          "400": {
            "description": "A shipping method with that name already exists"
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "operationId": "createChannelShippingMethod",
        "description": "Create a channel shipping method",
        "parameters": []
      },
      "parameters": []
    },
    "/shipping/channel-shipping-methods/bulk": {
      "delete": {
        "summary": "Bulk Delete Channel Shipping Methods",
        "tags": [
          "Shipping"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BulkDeleteChannelShippingMethodsRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BulkDeleteChannelShippingMethodsResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request - empty or invalid ids"
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "operationId": "deleteChannelShippingMethodsBulk",
        "description": "Soft-delete multiple channel shipping methods by ID. Returns the number of methods deleted. Only methods belonging to the authenticated account's channels are deleted."
      },
      "parameters": []
    },
    "/shipping/channel-shipping-methods/{id}": {
      "put": {
        "summary": "Update Channel Shipping Method",
        "tags": [
          "Shipping"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateChannelShippingMethodRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ChannelShippingMethod"
                }
              }
            }
          },
          "400": {
            "description": "A shipping method with that name already exists"
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Channel shipping method with provided id doesn't exist"
          }
        },
        "operationId": "updateChannelShippingMethod",
        "description": "Update a channel shipping method",
        "parameters": []
      },
      "delete": {
        "summary": "Delete Channel Shipping Method",
        "tags": [
          "Shipping"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {}
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "operationId": "deleteChannelShippingMethod",
        "description": "Delete a channel shipping method by ID"
      },
      "parameters": [
        {
          "schema": {
            "type": "integer"
          },
          "name": "id",
          "in": "path",
          "required": true,
          "description": "ID of channel shipping method"
        }
      ]
    },
    "/shipping/source-shipping-methods": {
      "get": {
        "summary": "Get Source Shipping Methods",
        "tags": [
          "Shipping"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/SourceShippingMethod"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "operationId": "listSourceShippingMethods",
        "parameters": [
          {
            "schema": {
              "type": "integer"
            },
            "in": "query",
            "name": "filterSourceId",
            "description": "ID of Source"
          },
          {
            "schema": {
              "type": "string"
            },
            "in": "query",
            "name": "filterSourceShippingMethodIds",
            "description": "List of source shipping method Ids separated by a comma"
          },
          {
            "schema": {
              "type": "integer"
            },
            "in": "query",
            "name": "filterShippingPolicyId",
            "description": "ID of shipping policy, use this to filter shipping methods by specific shipping policy"
          }
        ],
        "description": "<b>NOTE</b>: The `shippingCarrier` and `shippingCarrierMethod` fields are now deprecated. \n\nTo get the associated shipping carrier(s) and/or shipping carrier method(s), use the array versions named `shippingCarriers` and `shippingCarrierMethods` instead."
      },
      "post": {
        "summary": "Add Source Shipping Method",
        "tags": [
          "Shipping"
        ],
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SourceShippingMethod"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "operationId": "addSourceShippingMethod",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SaveSourceShippingMethodRequest"
              }
            }
          }
        },
        "description": ""
      },
      "parameters": []
    },
    "/shipping/source-shipping-methods/{id}": {
      "put": {
        "summary": "Update Source Shipping Method",
        "tags": [
          "Shipping"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SourceShippingMethod"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "operationId": "updateSourceShippingMethod",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SaveSourceShippingMethodRequest"
              }
            }
          }
        },
        "description": ""
      },
      "delete": {
        "summary": "Delete Source Shipping Method",
        "tags": [
          "Shipping"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {}
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "operationId": "deleteSourceShippingMethod",
        "description": "Delete a source shipping method by `id`."
      },
      "parameters": [
        {
          "schema": {
            "type": "integer"
          },
          "name": "id",
          "in": "path",
          "required": true,
          "description": "ID of the Source Shipping Method to update."
        }
      ]
    },
    "/shipping/channel-shipping-method": {
      "get": {
        "deprecated": true,
        "summary": "Get Channel Shipping Method",
        "tags": [
          "Shipping"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ChannelShippingMethod"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "operationId": "getChannelShippingMethod",
        "description": "[DEPRECATED] Use `/shipping/channel-shipping-methods` instead.\nGet Channel Shipping Method by `channel id` and `shipping policy id` or `shipping text`.\nEither `shipping policy id` or `shipping text` must be provided.\nIf both values are provided preference will be given to `shipping policy id`.",
        "parameters": [
          {
            "schema": {
              "type": "integer"
            },
            "in": "query",
            "name": "channelId",
            "description": "Channel Id",
            "required": true
          },
          {
            "schema": {
              "type": "integer"
            },
            "in": "query",
            "name": "shippingPolicyId",
            "description": "Shipping Policy Id "
          },
          {
            "schema": {
              "type": "string"
            },
            "in": "query",
            "name": "shippingText",
            "description": "Shipping Text"
          }
        ]
      },
      "parameters": []
    },
    "/shipping/channel-shipping-mappings": {
      "parameters": [],
      "get": {
        "summary": "Get Channel Shipping Mappings",
        "deprecated": true,
        "tags": [
          "Shipping"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ChannelShippingMapping"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "operationId": "get-shipping-channel-shipping-mappings",
        "description": "[DEPRECATED] Use `/shipping/channel-shipping-methods` instead.\nRetrieves all of the Channel Shipping Mappings configured for an account. Use the query parameters below to filter down the results.",
        "parameters": [
          {
            "schema": {
              "type": "integer"
            },
            "in": "query",
            "name": "filterShippingPolicyId",
            "description": "Return Shipping Mappings for a specific Shipping Policy by passing in the Shipping Policy ID"
          },
          {
            "schema": {
              "type": "integer"
            },
            "in": "query",
            "name": "filterChannelId",
            "description": "Return Shipping Mappings for a specific Channel by passing in the Channel ID"
          },
          {
            "schema": {
              "type": "string"
            },
            "in": "query",
            "name": "filterChannelShippingMappingIds",
            "description": "Return specific Shipping Mappings by passing in a comma separated list of Channel Shipping Mapping IDs"
          },
          {
            "schema": {
              "type": "boolean"
            },
            "in": "query",
            "name": "filterDeleted",
            "description": "Return only Shipping Mappings that are or are not deleted (pass true for deleted and false for active)"
          }
        ]
      }
    },
    "/sources": {
      "get": {
        "summary": "Get Sources",
        "tags": [
          "Source"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Source"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "operationId": "getSources",
        "description": "This endpoint will retrieve back a list of Sources for a configured account. This endpoint requires an Account level API token",
        "parameters": [
          {
            "schema": {
              "type": "array",
              "maxItems": 50,
              "example": "123,456,789",
              "uniqueItems": true,
              "items": {
                "type": "integer"
              }
            },
            "in": "query",
            "name": "filterByIds",
            "description": "Optionally pass a list of Source IDs to filter on. Max 50 IDs",
            "style": "form",
            "explode": false
          },
          {
            "schema": {
              "type": "boolean",
              "default": false
            },
            "in": "query",
            "name": "filterFirearmsEnabled",
            "description": "Optionally set this to `true` to filter sources that contain firearms. If `false` or not passed, all Sources will be returned"
          },
          {
            "schema": {
              "type": "boolean",
              "default": true
            },
            "in": "query",
            "name": "filterArchived",
            "description": "Set this to `false` to include archived Sources. Default is `true` so archived Sources are not returned"
          },
          {
            "schema": {
              "type": "boolean",
              "default": false
            },
            "in": "query",
            "name": "includeAddress",
            "description": "Set this to `true` to return back the `address` on the Source"
          },
          {
            "schema": {
              "type": "boolean",
              "default": false
            },
            "in": "query",
            "name": "includeIntegrations",
            "description": "Set this to `true` to return back the `integrations` on the Source"
          },
          {
            "schema": {
              "type": "boolean",
              "default": false
            },
            "in": "query",
            "name": "includeSettings",
            "description": "Set this to `true` to return back the `settings` on the Source. This will include all available settings and not just those that have already been configured."
          }
        ]
      },
      "post": {
        "summary": "Create Source",
        "tags": [
          "Source"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateSourceRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Source"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "operationId": "postSource",
        "description": "Create a new source. This endpoint requires an Account level API token",
        "parameters": []
      }
    },
    "/source/{id}": {
      "parameters": [
        {
          "schema": {
            "type": "integer"
          },
          "name": "id",
          "in": "path",
          "required": true,
          "description": "ID of Source to retrieve"
        }
      ],
      "get": {
        "summary": "Get Source",
        "tags": [
          "Source"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Source"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "operationId": "getSourceById",
        "parameters": [
          {
            "schema": {
              "type": "boolean",
              "default": false
            },
            "in": "query",
            "name": "includeAddress",
            "description": "Determines if \"address\" is returned in the response."
          },
          {
            "schema": {
              "type": "boolean",
              "default": false
            },
            "in": "query",
            "name": "includeVendor",
            "description": "Determines if \"vendor\" is returned in the response."
          },
          {
            "schema": {
              "type": "boolean",
              "default": false
            },
            "in": "query",
            "name": "includeIntegrations",
            "description": "Determines if \"integrations\" is returned in the response."
          },
          {
            "schema": {
              "type": "boolean",
              "default": false
            },
            "in": "query",
            "name": "includeSettings",
            "description": "Set this to `true` to return back the `settings` on the Source. This will include all available settings and not just those that have already been configured."
          }
        ],
        "description": "Retrieves back a Source by it's ID. \n\nThis endpoint requires : \n- Account level Privileges\n- OR Source specific Privileges"
      },
      "patch": {
        "summary": "Update Source",
        "operationId": "patchSourceById",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Source"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not Found"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "description": "This endpoint allows you to update metadata associated to a Source. \n\nTo use this endpoint, simply specify the parameter you'd like to patch. Only the parameters the are passed will be patched. ",
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "in": "query",
            "name": "name",
            "description": "The name of the Source."
          },
          {
            "schema": {
              "type": "integer"
            },
            "in": "query",
            "name": "vendorId",
            "description": "The vendor associated to a Source"
          },
          {
            "schema": {
              "type": "boolean"
            },
            "in": "query",
            "name": "commitStock",
            "description": "The setting that controls whether or not committed stock is enabled for this Source. "
          },
          {
            "schema": {
              "type": "integer"
            },
            "in": "query",
            "name": "addressId",
            "description": "The ID of the Address associated with a Source"
          },
          {
            "schema": {
              "type": "boolean"
            },
            "in": "query",
            "name": "rateShopping",
            "description": "The setting that determines if this Source attempts to use Rate Shopping (for all requirements of Rate Shopping, see https://docs.flxpoint.com/flxpoint/rate-shopping)"
          },
          {
            "schema": {
              "type": "boolean"
            },
            "in": "query",
            "name": "releaseCommittedStockOnShipmentAdded",
            "description": "**(This setting is deprecated, please reach out to our team before using)** If `true`, committed stock will be released as soon as Shipments are added. If `false`, committed stock will be released after Shipments are added AND Inventory quantity changes.",
            "deprecated": true
          },
          {
            "schema": {
              "type": "boolean"
            },
            "in": "query",
            "name": "allowBackorders",
            "description": "It will allow the variants to be fulfilled/routed to during PO generation regardless of whether or not it is in stock."
          },
          {
            "schema": {
              "type": "integer"
            },
            "in": "query",
            "name": "typeId",
            "description": "The ID of the Source Type that best fits this Source."
          },
          {
            "schema": {
              "type": "boolean"
            },
            "in": "query",
            "name": "releaseCommittedStockOnQuantityUpdate",
            "description": "**(This setting is deprecated, please reach out to our team before using)** If `true`, committed stock will be released as soon as inventory variant quantity is changed. If `false`, committed stock will be released after Shipments are added AND Inventory quantity changes.",
            "deprecated": true
          },
          {
            "schema": {
              "type": "boolean"
            },
            "in": "query",
            "name": "containsFirearms",
            "description": "Indicates whether the source can contain firearms"
          },
          {
            "schema": {
              "type": "integer"
            },
            "in": "query",
            "name": "containsFirearmsWorkflowEventId",
            "description": "The ID of the workflow that determines whether or not a purchase order needs FFL information before being processed"
          }
        ],
        "tags": [
          "Source"
        ]
      }
    },
    "/source/{sourceId}/settings": {
      "get": {
        "summary": "Get Source Settings",
        "tags": [
          "Source"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/SourceSetting"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "When the `sourceId` cannot be found."
          }
        },
        "operationId": "getSourceSettings",
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "in": "query",
            "name": "findByHandles",
            "description": "A setting handle, or a comma seperate list of setting handles to retrieve"
          },
          {
            "schema": {
              "type": "string"
            },
            "in": "query",
            "name": "findByCategoryHandle",
            "description": "A single category handle to retrieve settings for"
          }
        ]
      },
      "put": {
        "summary": "Update Source Settings",
        "operationId": "putSourceSettings",
        "responses": {
          "200": {
            "description": "OK"
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "tags": [
          "Source"
        ],
        "description": "This endpoint configures Source Settings. \n\nYou must specify either a `handle` or `settingId` to associate settings. \n\nIf a passed setting has not been configured yet, this will associate a `value` (i.e. configure that setting). \n\nIf a passed setting has already been configured, this will overwrite the previous `value`. ",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/PutSourceSetting"
                }
              }
            }
          }
        }
      },
      "parameters": [
        {
          "schema": {
            "type": "integer"
          },
          "name": "sourceId",
          "in": "path",
          "required": true
        }
      ]
    },
    "/sources/{sourceId}/purchase-order-strategy": {
      "parameters": [
        {
          "schema": {
            "type": "integer"
          },
          "name": "sourceId",
          "in": "path",
          "required": true,
          "description": "ID of source"
        }
      ],
      "get": {
        "summary": "Get Source PO Strategy",
        "tags": [
          "Source"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SourcePurchaseOrderStrategy"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "operationId": "getSourcePurchaseOrderStrategy",
        "description": ""
      },
      "post": {
        "summary": "Post Source PO Strategy",
        "tags": [
          "Source"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SaveSourcePurchaseOrderStrategyRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SourcePurchaseOrderStrategy"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "operationId": "postSourcePurchaseOrderStrategy",
        "description": ""
      }
    },
    "/source/{sourceId}/business-hours": {
      "parameters": [
        {
          "schema": {
            "type": "integer"
          },
          "name": "sourceId",
          "in": "path",
          "required": true,
          "description": "ID of source"
        }
      ],
      "get": {
        "summary": "Get Source Business Hours",
        "tags": [
          "Source"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PurchaseOrderBusinessHours"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GenericApiError"
                }
              }
            }
          }
        },
        "operationId": "getPurchaseOrderBusinessHours",
        "description": "Returns the hours for which Purchase Orders may be processed for the Source"
      }
    },
    "/source/{sourceId}/auto-create-products-and-listings": {
      "parameters": [
        {
          "schema": {
            "type": "integer"
          },
          "name": "sourceId",
          "in": "path",
          "required": true,
          "description": "ID of Source to manage"
        }
      ],
      "get": {
        "summary": "Get Source",
        "tags": [
          "Source"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SourceAutoCreateProductsAndListings"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "operationId": "getSourceAutoCreateProductsAndListings",
        "parameters": [],
        "description": "Get settings for a source that control the automatic creation of products and listings. \n\nThis endpoint requires account level privileges"
      },
      "post": {
        "summary": "Update Source",
        "operationId": "postSourceAutoCreateProductsAndListings",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SourceAutoCreateProductsAndListings"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SourceAutoCreateProductsAndListings"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "description": "Update settings for a source that control the automatic creation of products and listings. \n\nThis endpoint requires account level privileges",
        "parameters": [],
        "tags": [
          "Source"
        ]
      }
    },
    "/channel/": {
      "get": {
        "operationId": "getChannels",
        "summary": "Get Channels",
        "description": "Get all channels configured on the account.\nThis endpoint requires an account level API token.",
        "tags": [
          "Channel"
        ],
        "parameters": [
          {
            "schema": {
              "type": "boolean",
              "default": false
            },
            "in": "query",
            "name": "includeIntegrations",
            "description": "Set this to `true` to return back the `integrations` on the Channel"
          },
          {
            "schema": {
              "type": "boolean",
              "default": false
            },
            "in": "query",
            "name": "includeArchived",
            "description": "Set this to `true` to also return back channels that have been archived. By default these are excluded in the response."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Channel"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          }
        }
      },
      "post": {
        "summary": "Create Channel",
        "tags": [
          "Channel"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateChannelRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Channel"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "operationId": "postChannel",
        "description": "Create a channel. Requires an account level token."
      }
    },
    "/channel/{id}": {
      "parameters": [
        {
          "schema": {
            "type": "integer"
          },
          "name": "id",
          "in": "path",
          "required": true,
          "description": "Channel ID"
        }
      ],
      "get": {
        "summary": "Get Channel",
        "tags": [
          "Channel"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Channel"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "operationId": "getChannelById",
        "description": "Retrieves back a Channel by its ID.\n\nThis endpoint requires an Account or Channel token for authentication."
      },
      "put": {
        "summary": "Put Channel",
        "tags": [
          "Channel"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PutChannelRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Channel"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "operationId": "putChannel",
        "description": "Put an updated channel. Requires an account level token."
      },
      "patch": {
        "summary": "Update Channel",
        "operationId": "patch-channel-id",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Channel"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "description": "This endpoint allows you to update metadata associated to a Channel.\n\nTo use this endpoint, simply specify the parameter you'd like to patch. Only the parameters the are passed will be patched.",
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "in": "query",
            "name": "name",
            "description": "Channel Name"
          },
          {
            "schema": {
              "type": "string"
            },
            "in": "query",
            "name": "description",
            "description": "Channel Description"
          },
          {
            "schema": {
              "type": "integer"
            },
            "in": "query",
            "name": "pricingWorkflowEventId",
            "description": "The ID of the Listing Price & Quantity Workflow for the Channel"
          },
          {
            "schema": {
              "type": "boolean"
            },
            "in": "query",
            "name": "autoGeneratePoOnImport",
            "description": "A setting that enables auto-generation of PO/FRs upon Order Import from the Channel"
          },
          {
            "schema": {
              "type": "integer"
            },
            "in": "query",
            "name": "listingStatusWorkflowEventId",
            "description": "The ID of the Listing Status Workflow for the Channel"
          },
          {
            "schema": {
              "type": "boolean"
            },
            "in": "query",
            "name": "primary",
            "description": "Mark this channel as the primary channel. Will set any existing channels marked as primary to false."
          }
        ],
        "tags": [
          "Channel"
        ]
      }
    },
    "/channel/{id}/locations": {
      "parameters": [
        {
          "schema": {
            "type": "integer"
          },
          "name": "id",
          "in": "path",
          "required": true,
          "description": "Channel ID"
        }
      ],
      "put": {
        "summary": "Put Channel Locations",
        "tags": [
          "Channel"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PutChannelLocationsRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PutChannelLocationsResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "operationId": "putChannelLocations",
        "description": "Replaces all configured locations on a MLI channel. Channel must be MLI otherwise a 400 Bad Request is returned."
      }
    },
    "/channels/{channelId}/settings": {
      "get": {
        "summary": "Get Channel Settings",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ChannelSetting"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "operationId": "getChannelSettings",
        "description": "This endpoint allows you to retrieve the setting `values` that are configured for a Channel.\n\nYou can filter down the list of settings returned by passing `handles`. \n\nNote: you must use a token with Account privileges.",
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "in": "query",
            "name": "findByHandles",
            "description": "A setting handle, or a comma-separated list of setting handles to retrieve."
          }
        ],
        "tags": [
          "Channel"
        ]
      },
      "parameters": [
        {
          "schema": {
            "type": "integer"
          },
          "name": "channelId",
          "in": "path",
          "required": true,
          "description": "Id of channel whose setting needs to be retrieved."
        }
      ],
      "put": {
        "summary": "Update Channel Settings",
        "operationId": "putChannelSettings",
        "responses": {
          "200": {
            "description": "OK"
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "tags": [
          "Channel"
        ],
        "description": "This endpoint configures Channel Settings. \n\nYou must specify either a `handle` or `settingId` to associate settings. \n\nIf a passed setting has not been configured yet, this will associate a `value` (i.e. configure that setting). \n\nIf a passed setting has already been configured, this will overwrite the previous `value`. ",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/PutChannelSetting"
                }
              }
            }
          }
        }
      }
    },
    "/account": {
      "get": {
        "summary": "Get Account",
        "tags": [
          "Account"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Account"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "operationId": "getAccount",
        "x-internal": false,
        "description": "Only account API Tokens can use this endpoint"
      }
    },
    "/account/users": {
      "get": {
        "summary": "Get Users",
        "tags": [
          "Account"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/User"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "operationId": "getUsers",
        "x-internal": false,
        "description": "Only account API Tokens can use this endpoint. Get users for an account.",
        "parameters": [
          {
            "schema": {
              "type": "array",
              "maxItems": 50,
              "example": "123,456,789",
              "uniqueItems": true,
              "items": {
                "type": "integer"
              }
            },
            "in": "query",
            "name": "ids",
            "description": "A list of ids to filter on"
          },
          {
            "schema": {
              "type": "array",
              "maxItems": 50,
              "example": "test@test.com,test2@test.com,test3@test.com",
              "uniqueItems": true,
              "items": {
                "type": "string"
              }
            },
            "in": "query",
            "name": "emails",
            "description": "A list of emails to filter on"
          }
        ]
      }
    },
    "/account/settings": {
      "get": {
        "summary": "Get Account Settings",
        "tags": [
          "Account"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/DeprecatedSetting"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "operationId": "getAccountSettings",
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "in": "query",
            "name": "findByHandles",
            "description": "A setting handle, or a comma-separated list of setting handles to retrieve"
          },
          {
            "schema": {
              "type": "string"
            },
            "in": "query",
            "name": "findByCategoryHandle",
            "description": "A single category handle to retrieve settings for"
          }
        ],
        "description": "This endpoint allows you to retrieve settings that are actively configured for a given account.",
        "x-internal": false
      },
      "post": {
        "summary": "Update Account Settings",
        "operationId": "postAccountSettings",
        "responses": {
          "200": {
            "description": "OK"
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/DeprecatedSetting"
                }
              }
            }
          }
        },
        "tags": [
          "Account"
        ]
      }
    },
    "/account/purchase-order-strategy": {
      "get": {
        "summary": "Get Account PO Strategy",
        "tags": [
          "Account"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AccountPurchaseOrderStrategy"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "operationId": "getAccountPurchaseOrderStrategy",
        "description": "Deprecated, please use `/account/po-strategy`"
      }
    },
    "/account/custom-aggregate-fields": {
      "get": {
        "summary": "Get Custom Aggregate Fields",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/CustomAggregateField"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "operationId": "getCustomAggregateFields",
        "description": "Get all setup custom aggregate fields",
        "tags": [
          "Account"
        ]
      }
    },
    "/settings": {
      "get": {
        "summary": "Get Settings",
        "tags": [
          "Account"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Setting"
                  }
                }
              }
            }
          },
          "201": {
            "description": "Created"
          },
          "400": {
            "description": "Bad Request"
          }
        },
        "operationId": "getSettings",
        "description": "This endpoint allows you to retrieve the possible settings. \n\nSettings are categorized into separate domains. In order to retrieve settings for a specific domain, pass the appropriate `handle`. \n\nThis endpoint does NOT retrieve the `values` that are configured for a specific Account, Source, Channel, Reseller, etc. The values are retrieved via separate endpoints (i.e. /sources/{sourceId}/settings)\n\n**You must either pass `findByCategory` or `findByHandle  or `findById`**",
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "in": "query",
            "name": "findByCategory",
            "description": "A setting category handle will retrieve back all settings for a specific category. For more information on these categories, see the `handle`  field description on `SettingCategory`"
          },
          {
            "schema": {
              "type": "string"
            },
            "in": "query",
            "name": "findByHandles",
            "description": "A setting handle, or a comma separate list of setting handles to retrieve."
          },
          {
            "schema": {
              "type": "integer"
            },
            "in": "query",
            "name": "findById",
            "description": "A setting id, this will retrieve a setting associated with this setting id"
          }
        ]
      }
    },
    "/vendors": {
      "get": {
        "summary": "Get Vendors",
        "tags": [
          "Vendor"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Vendor"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "operationId": "getVendors",
        "description": "Endpoint to retrieve back a list of Vendors. \n\nRequires Account-level privileges. "
      }
    },
    "/vendors/{id}": {
      "parameters": [
        {
          "schema": {
            "type": "integer"
          },
          "name": "id",
          "in": "path",
          "required": true,
          "description": "The `Vendor` ID"
        }
      ],
      "patch": {
        "summary": "Update Vendor",
        "tags": [
          "Vendor"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Vendor"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Vendor Not Found"
          }
        },
        "operationId": "patchVendorById",
        "description": "Endpoint to update an existing Vendor. \n\nRequires Account-level privileges. ",
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "in": "query",
            "name": "name",
            "description": "Modify Vendor name"
          },
          {
            "schema": {
              "type": "string"
            },
            "in": "query",
            "name": "description",
            "description": "Modify Vendor description"
          },
          {
            "schema": {
              "type": "boolean"
            },
            "in": "query",
            "name": "vendorPortal",
            "description": "Enable or disable Vendor Portal access"
          }
        ]
      },
      "get": {
        "summary": "Get Vendor",
        "operationId": "getVendorById",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Vendor"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Vendor Not Found"
          }
        },
        "description": "Endpoint to retrieve back a Vendor by ID. \n\nRequires Account-level privileges. ",
        "tags": [
          "Vendor"
        ]
      }
    },
    "/vendors/{vendorId}/settings": {
      "parameters": [
        {
          "schema": {
            "type": "integer"
          },
          "name": "vendorId",
          "in": "path",
          "required": true,
          "description": "id of vendor whose setting needs to be retrieved."
        }
      ],
      "get": {
        "summary": "Vendor Settings",
        "tags": [
          "Vendor"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/VendorSetting"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "operationId": "getVendorSettings",
        "description": "This endpoint allows you to retrieve the setting values that are configured for a Vendor.\n\nThis endpoint will only return already-configured settings. To obtain all possible settings eligible to configure - use the GET /settings endpoint\n\nYou can filter down the list of settings returned by passing handles.",
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "in": "query",
            "name": "findByHandles",
            "description": "A setting handle, or a comma-separated list of setting handles to retrieve."
          }
        ]
      },
      "post": {
        "operationId": "postVendorSettings",
        "summary": "Update Vendor Settings",
        "description": "[Account Tokens Only] Update vendor settings.",
        "tags": [
          "Vendor"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/UpdateSettingRequest"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/VendorSetting"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          }
        }
      }
    },
    "/reseller-channels/{channelId}/products/variants": {
      "get": {
        "summary": "Get Reseller Variants",
        "tags": [
          "Resellers"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ResellerProductVariant"
                  }
                },
                "examples": {
                  "example-full": {
                    "value": [
                      {
                        "id": 123,
                        "account_id": 1,
                        "channel_id": 1,
                        "reseller_product_parent_id": 4512,
                        "sku": "string",
                        "price": 299,
                        "sale_price": 199,
                        "msrp": 0,
                        "map": 0,
                        "estimated_shipping_cost": 0,
                        "estimated_dropship_fee": 0,
                        "title": "string",
                        "mpn": "string",
                        "upc": "stringstring",
                        "ean": "stringstrings",
                        "asin": "string",
                        "weight": 0,
                        "length": 0,
                        "width": 0,
                        "height": 0,
                        "weight_unit": "pound",
                        "dimension_unit": "inch",
                        "quantity": 0,
                        "dimensional_weight": 0,
                        "inserted_at": "2019-08-24T14:15:22Z",
                        "updated_at": "2019-08-24T14:15:22Z",
                        "option_values": [
                          {
                            "id": 0,
                            "reseller_product_parent_option_id": 0,
                            "name": "string",
                            "value": "string"
                          }
                        ],
                        "images": [
                          {
                            "id": 0,
                            "reseller_product_variant_id": 0,
                            "md5_checksum": "string",
                            "url": "string",
                            "sort_order": 0
                          }
                        ],
                        "parent": {
                          "id": 0,
                          "account_id": 0,
                          "channel_id": 0,
                          "sku": "HG412312",
                          "title": "The Big Shoe",
                          "description": "string",
                          "brand": "Nicefinds",
                          "inserted_at": "2019-08-24T14:15:22Z",
                          "updated_at": "2019-08-24T14:15:22Z",
                          "images": [
                            {
                              "id": 0,
                              "reseller_product_parent_id": 0,
                              "md5_checksum": "string",
                              "url": "string",
                              "sort_order": 0
                            }
                          ],
                          "options": [
                            {
                              "id": 0,
                              "reseller_product_parent_id": 0,
                              "name": "string"
                            }
                          ],
                          "attributes": [
                            {
                              "id": 0,
                              "reseller_product_parent_id": 0,
                              "name": "string",
                              "value": "string"
                            }
                          ],
                          "variants": [],
                          "category_one": {
                            "id": 0,
                            "name": "string",
                            "parent_category_id": 0,
                            "channel_id": 0,
                            "inserted_at": "2019-08-24T14:15:22Z",
                            "updated_at": "2019-08-24T14:15:22Z"
                          },
                          "category_two": {
                            "id": 0,
                            "name": "string",
                            "parent_category_id": 0,
                            "channel_id": 0,
                            "inserted_at": "2019-08-24T14:15:22Z",
                            "updated_at": "2019-08-24T14:15:22Z"
                          },
                          "category_three": {
                            "id": 0,
                            "name": "string",
                            "parent_category_id": 0,
                            "channel_id": 0,
                            "inserted_at": "2019-08-24T14:15:22Z",
                            "updated_at": "2019-08-24T14:15:22Z"
                          }
                        }
                      }
                    ]
                  },
                  "example-minimum": {
                    "value": [
                      {
                        "id": 123,
                        "account_id": 1,
                        "channel_id": 1,
                        "reseller_product_parent_id": 4512,
                        "sku": "string",
                        "price": 299,
                        "sale_price": 199,
                        "msrp": 0,
                        "map": 0,
                        "estimated_shipping_cost": 0,
                        "estimated_dropship_fee": 0,
                        "title": "string",
                        "mpn": "string",
                        "upc": "stringstring",
                        "ean": "stringstrings",
                        "asin": "string",
                        "weight": 0,
                        "length": 0,
                        "width": 0,
                        "height": 0,
                        "weight_unit": "pound",
                        "dimension_unit": "inch",
                        "quantity": 0,
                        "dimensional_weight": 0,
                        "inserted_at": "2019-08-24T14:15:22Z",
                        "updated_at": "2019-08-24T14:15:22Z",
                        "option_values": [],
                        "images": [],
                        "parent": null
                      }
                    ]
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "operationId": "get-reseller-products-variants",
        "parameters": [
          {
            "schema": {
              "type": "string",
              "format": "date-time",
              "example": "2020-10-14T16:05:00.000Z"
            },
            "in": "query",
            "name": "filterUpdatedAfter",
            "description": "Filters down to Variants that have been updated after this timestamp. (Timestamp in UTC)",
            "required": true
          },
          {
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 50,
              "minimum": 1,
              "maximum": 50,
              "example": 50
            },
            "in": "query",
            "name": "filterPageSize",
            "description": "Number of entries per page",
            "required": true
          },
          {
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 1,
              "example": 1,
              "minimum": 1
            },
            "in": "query",
            "name": "filterPageNumber",
            "description": "Current page",
            "required": true
          },
          {
            "schema": {
              "type": "boolean",
              "default": false
            },
            "in": "query",
            "name": "includeOptionValues",
            "description": "Determines if \"option_values\" are returned in the response"
          },
          {
            "schema": {
              "type": "boolean",
              "default": false
            },
            "in": "query",
            "name": "includeImages",
            "description": "Determines if \"images\" are returned in the response"
          },
          {
            "schema": {
              "type": "boolean"
            },
            "in": "query",
            "name": "includeParent",
            "description": "Determines if \"parent\" is returned in the response. If this is true - the parent will have EMPTY \"variants\" to prevent circular references"
          }
        ],
        "description": "This endpoint will retrieve back Variants\n\n- Params starting with **filter*** will filter the results down\n- Params starting with **include*** will determine the metadata returned"
      },
      "parameters": [
        {
          "schema": {
            "type": "integer"
          },
          "name": "channelId",
          "in": "path",
          "required": true,
          "description": "The channel ID (reach out to your B2B partner to retrieve this)"
        }
      ]
    },
    "/reseller-channels/{channelId}/products/parents": {
      "get": {
        "summary": "Get Reseller Parents",
        "tags": [
          "Resellers"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ResellerProductParent"
                  }
                },
                "examples": {
                  "example-full": {
                    "value": [
                      {
                        "id": 0,
                        "account_id": 0,
                        "channel_id": 0,
                        "sku": "HG412312",
                        "title": "The Big Shoe",
                        "description": "string",
                        "brand": "Nicefinds",
                        "inserted_at": "2019-08-24T14:15:22Z",
                        "updated_at": "2019-08-24T14:15:22Z",
                        "images": [
                          {
                            "id": 0,
                            "reseller_product_parent_id": 0,
                            "md5_checksum": "string",
                            "url": "string",
                            "sort_order": 0
                          }
                        ],
                        "options": [
                          {
                            "id": 0,
                            "reseller_product_parent_id": 0,
                            "name": "string"
                          }
                        ],
                        "attributes": [
                          {
                            "id": 0,
                            "reseller_product_parent_id": 0,
                            "name": "string",
                            "value": "string"
                          }
                        ],
                        "variants": [
                          {
                            "id": 123,
                            "account_id": 1,
                            "channel_id": 1,
                            "reseller_product_parent_id": 4512,
                            "sku": "string",
                            "price": 299,
                            "sale_price": 199,
                            "msrp": 0,
                            "map": 0,
                            "estimated_shipping_cost": 0,
                            "estimated_dropship_fee": 0,
                            "title": "string",
                            "mpn": "string",
                            "upc": "123456789012",
                            "ean": "1234567890123",
                            "asin": "string",
                            "weight": 0,
                            "length": 0,
                            "width": 0,
                            "height": 0,
                            "weight_unit": "pound",
                            "dimension_unit": "inch",
                            "quantity": 0,
                            "dimensional_weight": 0,
                            "inserted_at": "2019-08-24T14:15:22Z",
                            "updated_at": "2019-08-24T14:15:22Z",
                            "option_values": [
                              {
                                "id": 0,
                                "reseller_product_parent_option_id": 0,
                                "name": "string",
                                "value": "string"
                              }
                            ],
                            "images": [
                              {
                                "id": 0,
                                "reseller_product_variant_id": 0,
                                "md5_checksum": "string",
                                "url": "string",
                                "sort_order": 0
                              }
                            ],
                            "parent": null
                          }
                        ],
                        "category_one": {
                          "id": 0,
                          "name": "string",
                          "parent_category_id": 0,
                          "channel_id": 0,
                          "inserted_at": "2019-08-24T14:15:22Z",
                          "updated_at": "2019-08-24T14:15:22Z"
                        },
                        "category_two": {
                          "id": 0,
                          "name": "string",
                          "parent_category_id": 0,
                          "channel_id": 0,
                          "inserted_at": "2019-08-24T14:15:22Z",
                          "updated_at": "2019-08-24T14:15:22Z"
                        },
                        "category_three": {
                          "id": 0,
                          "name": "string",
                          "parent_category_id": 0,
                          "channel_id": 0,
                          "inserted_at": "2019-08-24T14:15:22Z",
                          "updated_at": "2019-08-24T14:15:22Z"
                        }
                      }
                    ]
                  },
                  "example-minimum": {
                    "value": [
                      {
                        "id": 0,
                        "account_id": 0,
                        "channel_id": 0,
                        "sku": "HG412312",
                        "title": "The Big Shoe",
                        "description": "string",
                        "brand": "Nicefinds",
                        "inserted_at": "2019-08-24T14:15:22Z",
                        "updated_at": "2019-08-24T14:15:22Z",
                        "images": [],
                        "options": [],
                        "attributes": [],
                        "variants": [],
                        "category_one": null,
                        "category_two": null,
                        "category_three": null
                      }
                    ]
                  }
                }
              },
              "application/xml": {
                "schema": {
                  "type": "object",
                  "properties": {}
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "operationId": "get-reseller-products-parents",
        "parameters": [
          {
            "schema": {
              "type": "string",
              "format": "date-time",
              "example": "2020-10-14T16:05:00.000Z"
            },
            "in": "query",
            "name": "filterUpdatedAfter",
            "description": "Filters down to Parents that have been updated after this timestamp. Note: If any \"variant\" static content (title, description, etc.) is updated then the \"parent\" updated flag will also be set.",
            "required": true
          },
          {
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 50,
              "minimum": 1,
              "maximum": 50,
              "example": 50
            },
            "in": "query",
            "name": "filterPageSize",
            "description": "Number of entries per page",
            "required": true
          },
          {
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 1,
              "example": 1,
              "minimum": 1
            },
            "in": "query",
            "name": "filterPageNumber",
            "description": "Current page",
            "required": true
          },
          {
            "schema": {
              "type": "boolean",
              "default": false
            },
            "in": "query",
            "name": "includeCategories",
            "description": "Determines if \"category_one\", \"category_two\", and \"category_three\" are returned in the response"
          },
          {
            "schema": {
              "type": "boolean",
              "default": false
            },
            "in": "query",
            "name": "includeOptions",
            "description": "Determines if \"options\" are returned in the response"
          },
          {
            "schema": {
              "type": "boolean",
              "default": false
            },
            "in": "query",
            "name": "includeImages",
            "description": "Determines if \"images\" are returned in the response"
          },
          {
            "schema": {
              "type": "boolean",
              "default": false
            },
            "in": "query",
            "name": "includeAttributes",
            "description": "Determines if \"attributes\" are returned in the response"
          },
          {
            "schema": {
              "type": "boolean",
              "default": false
            },
            "in": "query",
            "name": "includeVariants",
            "description": "Determines if \"variants\" are returned in the response. Variants will have a NULL \"parent\" object to prevent circular references."
          },
          {
            "schema": {
              "type": "boolean",
              "default": false
            },
            "in": "query",
            "name": "includeVariantOptionValues",
            "description": "If \"includeVariants\" is \"true\" - Determines if \"option_values\" are included in the response for each Variant"
          },
          {
            "schema": {
              "type": "boolean",
              "default": false
            },
            "in": "query",
            "name": "includeVariantImages",
            "description": "If \"includeVariants\" is \"true\" - Determines if \"images\" are included in the response for each Variant"
          }
        ],
        "description": "This endpoint will retrieve back Parents\n\n- Params starting with **filter*** will filter the results down\n- Params starting with **include*** will determine the metadata returned"
      },
      "parameters": [
        {
          "schema": {
            "type": "integer"
          },
          "name": "channelId",
          "in": "path",
          "required": true,
          "description": "The channel ID (reach out to your B2B partner to retrieve this)"
        }
      ]
    },
    "/reseller-channels/{channelId}/products/deleted": {
      "get": {
        "summary": "Get Reseller Deleted Parents",
        "tags": [
          "Resellers"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ResellerProductDeleted"
                  }
                },
                "examples": {
                  "example-1": {
                    "value": [
                      {
                        "entire_product_deleted": true,
                        "deleted_at": "2019-08-24T14:15:22Z",
                        "parent_id": 0,
                        "variant_ids": [
                          0
                        ]
                      }
                    ]
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "operationId": "get-reseller-products-deleted",
        "parameters": [
          {
            "schema": {
              "type": "string",
              "format": "date-time",
              "example": "2020-10-14T16:05:00.000Z"
            },
            "in": "query",
            "name": "filterDeletedAfter",
            "description": "Filter narrowing down to records that have been deleted after this timestamp",
            "required": true
          },
          {
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 50,
              "minimum": 1,
              "maximum": 50,
              "example": 50
            },
            "in": "query",
            "name": "filterPageSize",
            "description": "Number of entries per page",
            "required": true
          },
          {
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 1,
              "example": 1,
              "minimum": 1
            },
            "in": "query",
            "name": "filterPageNumber",
            "description": "Current page",
            "required": true
          }
        ],
        "description": "This endpoint will retrieve back Parents and Variants that have been Deleted recently\n\nAs an integrating system, you should remove entries that appear here. \n\n- Params starting with **filter*** will filter the results down"
      },
      "parameters": [
        {
          "schema": {
            "type": "integer"
          },
          "name": "channelId",
          "in": "path",
          "required": true,
          "description": "The channel ID (reach out to your B2B partner to retrieve this)"
        }
      ]
    },
    "/product/builder/issues": {
      "parameters": [],
      "get": {
        "summary": "Get Product Builder Issues",
        "tags": [
          "Product Builder"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ProductBuilderIssue"
                  }
                }
              }
            }
          },
          "400": {
            "description": "If neither `inventoryVariantId` or `productVariantId` is passed in the GET params."
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "operationId": "getProductBuilderIssues",
        "description": "Get builder issues that require human intervention (mostly based on buidler settings). \n\nThis endpoint returns an array of issues for any given `inventoryVariantId` or `productVariantId` as a single inventory variant can match against a potentially unlimited number of product variants that match/share a common identifier (ie UPC) and therefore there can be more than 1 issue for any given inventory/product variant.\n\nIt may also contain results where there is no match to an existing product but there is human intervention required IE when the product is archived or when the SKU is already in use by an existing product.",
        "parameters": [
          {
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "in": "query",
            "name": "inventoryVariantId",
            "description": "Get issues that a specific inventory variant is associated with"
          },
          {
            "schema": {
              "type": "integer"
            },
            "in": "query",
            "name": "productVariantId",
            "description": "Get issues that a specific product variant is associated with"
          }
        ]
      },
      "delete": {
        "summary": "Delete Product Builder Issues",
        "operationId": "deleteProductBuilderIssues",
        "responses": {
          "200": {
            "description": "OK"
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "tags": [
          "Product Builder"
        ],
        "description": "This will delete all build issues associated with the `inventoryVariantId`",
        "parameters": [
          {
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "in": "query",
            "name": "inventoryVariantId",
            "description": "Delete issues that a specific inventory variant is associated with"
          },
          {
            "schema": {
              "type": "integer"
            },
            "in": "query",
            "name": "productVariantId",
            "description": "Delete issues that a specific product variant is associated with"
          }
        ]
      }
    },
    "/product/builder/issues/{issueId}": {
      "parameters": [
        {
          "schema": {
            "type": "integer",
            "format": "int64"
          },
          "name": "issueId",
          "in": "path",
          "required": true
        }
      ],
      "get": {
        "summary": "Get Product Builder Issue",
        "tags": [
          "Product Builder"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductBuilderIssue"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "operationId": "getProductBuilderIssueById",
        "description": "Only exists when a state that requires human intervention is encountered (based on buidler settings). This will return the data points necessary to alter & make decisions on how the inventory variant should be treated in further attempts to convert it to a product variant."
      },
      "put": {
        "summary": "Update Product Builder Issue",
        "operationId": "putProductBuilderIssueById",
        "responses": {
          "200": {
            "description": "OK - If the modifications to the issue will result in no further actions being necessary and it not being built/linked to a product then it will be deleted and this will be indicated in the response `deleted` property.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "deleted": {
                      "type": "boolean"
                    }
                  },
                  "required": [
                    "deleted"
                  ]
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProductBuilderIssue"
              }
            }
          },
          "description": ""
        },
        "description": "Update an issue.\n\nOnly these properties of a `ProductBuilderIssue` are allowed to be updated : \n- `mismatchActionKeep`\n- `duplicateSourceActionkeep`\n- `archivedActionKeep`\n- `parentCreationActionKeep`\n- `parentAttachmentActionkeep`\n\nSetting any of the above properties to a value of `false` will result in the issue being deleted as no further action is necessary on the issue at that point.\n\nThe rest of the properties are immutable.",
        "tags": [
          "Product Builder"
        ]
      },
      "delete": {
        "summary": "Delete Product Builder Issue",
        "operationId": "deleteProductBuilderIssueById",
        "responses": {
          "200": {
            "description": "OK"
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "tags": [
          "Product Builder"
        ],
        "description": "Deletes a product builder issue by ID."
      }
    },
    "/product/builder/issues/{issueId}/build": {
      "parameters": [
        {
          "schema": {
            "type": "integer",
            "format": "int64"
          },
          "name": "issueId",
          "in": "path",
          "required": true
        }
      ],
      "put": {
        "summary": "Build Product From Existing Issue",
        "operationId": "tryToBuildIssueAgain",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductBuilderBuildResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "description": "From the specified `issueId` try to again build the underlying inventory variant into a product.",
        "tags": [
          "Product Builder"
        ]
      }
    },
    "/product/builder": {
      "get": {
        "summary": "Get Product Builders",
        "tags": [
          "Product Builder"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ProductBuilder"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "operationId": "getProductBuilders",
        "description": "Get configured available product buidlers. Does not include full settings. Use builder specific endpoint to retrieve full data.",
        "x-internal": false
      }
    },
    "/product/builder/build/{inventoryVariantId}": {
      "parameters": [
        {
          "schema": {
            "type": "integer",
            "format": "int64"
          },
          "name": "inventoryVariantId",
          "in": "path",
          "required": true
        }
      ],
      "post": {
        "summary": "Build Product from Inventory Variant",
        "operationId": "createProductFromInventoryVariant",
        "responses": {
          "200": {
            "description": "OK - A list of builder responses. This returns a list as a single inventory variant may match to multiple product variants.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ProductBuilderBuildResponse"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "description": "Create a product from a specified `inventoryVariantId`",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/InventoryProductBuilderBuildOptions"
              }
            }
          },
          "description": ""
        },
        "tags": [
          "Product Builder"
        ],
        "x-internal": false
      }
    },
    "/product/builder/re-build/variant/{productVariantId}": {
      "parameters": [
        {
          "schema": {
            "type": "integer"
          },
          "name": "productVariantId",
          "in": "path",
          "required": true
        }
      ],
      "post": {
        "summary": "Rebuild Product Variant",
        "operationId": "rebuildProductVariant",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReBuildResponse"
                },
                "examples": {
                  "example-1": {
                    "value": {
                      "success": true
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReBuildResponse"
                },
                "examples": {
                  "example-1": {
                    "value": {
                      "success": false,
                      "error": "Something Happened"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "description": "Re-build a product variant",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProductBuilderBuildOptions"
              }
            }
          }
        },
        "tags": [
          "Product Builder"
        ],
        "x-internal": false
      }
    },
    "/product/builder/re-build/parent/{productParentId}": {
      "parameters": [
        {
          "schema": {
            "type": "integer"
          },
          "name": "productParentId",
          "in": "path",
          "required": true
        }
      ],
      "post": {
        "summary": "Rebuild Product Parent",
        "operationId": "rebuildProductParent",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReBuildResponse"
                },
                "examples": {
                  "example-1": {
                    "value": {
                      "success": true,
                      "error": "string"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReBuildResponse"
                },
                "examples": {
                  "example-1": {
                    "value": {
                      "success": false,
                      "error": "Something Happened"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "parameters": [
          {
            "schema": {
              "type": "boolean"
            },
            "in": "query",
            "name": "rebuildVariants",
            "description": "Whether variants of the parent should be rebuilt as well."
          }
        ],
        "description": "Rebuild a product parent and optionally it's variants as well.",
        "tags": [
          "Product Builder"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProductBuilderBuildOptions"
              }
            }
          }
        },
        "x-internal": false
      }
    },
    "/product/builder/pending-count": {
      "get": {
        "summary": "Get Product Builder Count",
        "tags": [
          "Product Builder"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductBuilderPendingCountResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "operationId": "getProductBuilderPendingCounts",
        "description": "Get the total number of pending & failed inventory variants that are being currently being built into products.",
        "x-internal": false
      }
    },
    "/product/builder/re-build/pending-count": {
      "get": {
        "summary": "Get Product Rebuild Count",
        "tags": [
          "Product Builder"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductReBuilderPendingCountResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "operationId": "getProductBuilderRebuildPendingCount",
        "description": "Get the total number of pending & failed product variants that are being currently being re-built into products."
      }
    },
    "/product/builder/re-build/next": {
      "get": {
        "summary": "Rebuild Next Product",
        "tags": [
          "Product Builder"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "hasMore": {
                      "type": "boolean"
                    },
                    "parentHadError": {
                      "type": "boolean"
                    },
                    "productParentId": {
                      "type": "integer"
                    },
                    "productVariantIdsWithError": {
                      "type": "array",
                      "items": {
                        "type": "integer"
                      }
                    },
                    "productVariantIds": {
                      "type": "array",
                      "items": {
                        "type": "integer"
                      }
                    }
                  },
                  "required": [
                    "hasMore"
                  ]
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "operationId": "rebuildNextProduct",
        "description": "Will re-build the next queued parent/variants. This endpoint is only allowed to be consumed via internal flxpoint services."
      }
    },
    "/listing/{channelId}/builder/build/{productVariantId}": {
      "parameters": [
        {
          "schema": {
            "type": "integer"
          },
          "name": "channelId",
          "in": "path",
          "required": true
        },
        {
          "schema": {
            "type": "integer"
          },
          "name": "productVariantId",
          "in": "path",
          "required": true
        }
      ],
      "post": {
        "summary": "Build Listing from Product Variant",
        "operationId": "createListing",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListingBuilderResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ListingBuilderRequest"
              }
            }
          }
        },
        "tags": [
          "Listing Builder"
        ]
      }
    },
    "/listing/{channelId}/builder/re-build/variant/{listingVariantId}": {
      "parameters": [
        {
          "schema": {
            "type": "integer"
          },
          "name": "channelId",
          "in": "path",
          "required": true
        },
        {
          "schema": {
            "type": "integer"
          },
          "name": "listingVariantId",
          "in": "path",
          "required": true
        }
      ],
      "post": {
        "summary": "Rebuild Listing Variant",
        "operationId": "rebuildListingVariant",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReBuildResponse"
                },
                "examples": {
                  "example-1": {
                    "value": {
                      "success": true
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReBuildResponse"
                },
                "examples": {
                  "example-1": {
                    "value": {
                      "success": false,
                      "error": "Something happened"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "tags": [
          "Listing Builder"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ListingBuilderRequest"
              }
            }
          }
        }
      }
    },
    "/listing/{channelId}/builder/re-build/parent/{listingParentId}": {
      "parameters": [
        {
          "schema": {
            "type": "integer"
          },
          "name": "channelId",
          "in": "path",
          "required": true
        },
        {
          "schema": {
            "type": "integer"
          },
          "name": "listingParentId",
          "in": "path",
          "required": true
        },
        {
          "schema": {
            "type": "boolean"
          },
          "in": "query",
          "description": "Pass as true if you don't want categories to be rebuilt",
          "name": "skipCategories"
        }
      ],
      "post": {
        "summary": "Rebuild Listing Parent",
        "operationId": "rebuildListingParent",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReBuildResponse"
                },
                "examples": {
                  "example-1": {
                    "value": {
                      "success": true
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReBuildResponse"
                },
                "examples": {
                  "example-1": {
                    "value": {
                      "success": false,
                      "error": "Something Happened"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ListingBuilderRequest"
              }
            }
          }
        },
        "tags": [
          "Listing Builder"
        ],
        "description": "",
        "parameters": [
          {
            "schema": {
              "type": "boolean"
            },
            "in": "query",
            "description": "Whether variants of the parent should be rebuilt as well.",
            "name": "rebuildVariants"
          }
        ]
      }
    },
    "/listing/{channelId}/builder/count": {
      "parameters": [
        {
          "schema": {
            "type": "integer"
          },
          "name": "channelId",
          "in": "path",
          "required": true
        }
      ],
      "get": {
        "summary": "Get Listing Builder Count",
        "tags": [
          "Listing Builder"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GenericCount"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "operationId": "getListingBuilderCount",
        "description": "Get the count of the total listings pending a build in the given channel"
      }
    },
    "/listing/builder/re-build/count": {
      "get": {
        "summary": "Get Listing Rebuilder Count",
        "tags": [
          "Listing Builder"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListingReBuilderPendingCountResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "operationId": "getListingReBuilderCount",
        "description": "Get a count of the total number of listing that are pending a rebuild"
      }
    },
    "/mapping-template": {
      "get": {
        "summary": "Get Mapping Templates",
        "tags": [
          "MappingTemplate"
        ],
        "parameters": [
          {
            "schema": {
              "type": "boolean"
            },
            "in": "query",
            "name": "includeFields",
            "description": "Whether fields should be populated on the returned mapping templates"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/MappingTemplate"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "operationId": "listMappingTemplates",
        "description": "List all mapping templates."
      },
      "post": {
        "summary": "Create/Update Mapping Template",
        "tags": [
          "MappingTemplate"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MappingTemplate"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "operationId": "postMappingTemplate",
        "description": "Create/Update a mapping template",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MappingTemplate"
              }
            }
          }
        }
      }
    },
    "/mapping-template/{mappingTemplateId}": {
      "parameters": [
        {
          "schema": {
            "type": "integer"
          },
          "name": "mappingTemplateId",
          "in": "path",
          "required": true
        }
      ],
      "get": {
        "summary": "Get Mapping Template",
        "tags": [
          "MappingTemplate"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MappingTemplate"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "operationId": "getMappingTemplateById"
      },
      "delete": {
        "summary": "Delete Mapping Template",
        "operationId": "deleteMappingTemplate",
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "description": "Delete a mapping template",
        "tags": [
          "MappingTemplate"
        ]
      }
    },
    "/mapping-template/run": {
      "post": {
        "summary": "Run Mapping Template",
        "operationId": "runMappingTemplate",
        "description": "This endpoint will run a mapping template",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RunMappingTemplateResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RunMappingTemplateRequest"
              }
            }
          }
        },
        "tags": [
          "MappingTemplate"
        ]
      }
    },
    "/mapping-set": {
      "post": {
        "summary": "Create Mapping Set",
        "operationId": "postMappingSet",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MappingSet"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MappingSet"
              }
            }
          }
        },
        "description": "Create a mapping set.",
        "tags": [
          "MappingSet"
        ]
      }
    },
    "/mapping-set/{id}": {
      "parameters": [
        {
          "schema": {
            "type": "integer"
          },
          "name": "id",
          "in": "path",
          "required": true,
          "description": "The mapping set ID"
        }
      ],
      "get": {
        "summary": "Get Mapping Set",
        "tags": [
          "MappingSet"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MappingSet"
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          }
        },
        "operationId": "getMappingSet",
        "description": "Get a mapping set"
      },
      "patch": {
        "summary": "Update Mapping Set",
        "operationId": "patchMappingSet",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MappingSet"
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MappingSet"
              }
            }
          }
        },
        "description": "Update a mapping set.",
        "tags": [
          "MappingSet"
        ]
      },
      "delete": {
        "summary": "Delete Mapping Set",
        "operationId": "deleteMappingSet",
        "responses": {
          "200": {
            "description": "OK"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "tags": [
          "MappingSet"
        ],
        "description": "Delete a mapping set."
      }
    },
    "/mapping-set/{id}/item": {
      "parameters": [
        {
          "schema": {
            "type": "integer"
          },
          "name": "id",
          "in": "path",
          "required": true,
          "description": "The mapping set ID"
        }
      ],
      "get": {
        "summary": "Get Mapping Set Item",
        "operationId": "getMappingSetItem",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MappingSetItem"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "description": "Get a single mapping item",
        "parameters": [
          {
            "schema": {
              "type": "integer"
            },
            "in": "query",
            "name": "itemId",
            "description": "Get by ID"
          },
          {
            "schema": {
              "type": "string"
            },
            "in": "query",
            "name": "fromValue",
            "description": "Get by fromValue"
          }
        ],
        "tags": [
          "MappingSet"
        ]
      },
      "post": {
        "summary": "Add Item to Mapping Set",
        "operationId": "postMappingSetItems",
        "description": "This will add a Mapping Set Item",
        "responses": {
          "200": {
            "description": "OK"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/MappingSetItem"
                }
              }
            }
          }
        },
        "tags": [
          "MappingSet"
        ]
      },
      "delete": {
        "summary": "Delete Item from Mapping Set",
        "operationId": "deleteMappingSetItems",
        "description": "This endpoint will delete a mapping set item",
        "responses": {
          "200": {
            "description": "OK"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "fromValues": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          },
          "description": "Delete mapping set items by ids or from values."
        },
        "tags": [
          "MappingSet"
        ]
      }
    },
    "/mapping-set/{id}/convert": {
      "parameters": [
        {
          "schema": {
            "type": "integer"
          },
          "name": "id",
          "in": "path",
          "required": true,
          "description": "The mapping set ID"
        }
      ],
      "get": {
        "summary": "Get Converted Value",
        "tags": [
          "MappingSet"
        ],
        "operationId": "convertUsingMappingSet",
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "in": "query",
            "name": "fromValue",
            "description": "The value to attempt to convert using the mapping set",
            "required": true
          }
        ],
        "description": "Attempt to convert a given value using a mapping set.",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MappingSetConvertResponse"
                }
              }
            }
          }
        },
        "x-internal": false
      }
    },
    "/workflow/find": {
      "parameters": [],
      "post": {
        "summary": "Find Workflow",
        "operationId": "findWorkflow",
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Workflow"
                }
              }
            }
          },
          "201": {
            "description": "When `createIfNotExists` is set to `true` and a existing workflow was not found a `201` will be returned",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Workflow"
                }
              }
            }
          },
          "204": {
            "description": "When the workflow cannot be found and `createIfNotExists` is set to `false` a empty body will be returned wit ha `204` response code."
          },
          "400": {
            "description": "When the `eventHandle` in the request body cannot be found."
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "When the `id` in the request body cannot be found."
          }
        },
        "description": "Find a workflow by `id` (which takes priority) or by a combination of `eventHandle` + `params`. Optionally create one if the searched one cannot be found by passing `createIfNotExists` in the request body.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GetWorkflowRequest"
              }
            }
          },
          "description": ""
        },
        "tags": [
          "Workflow"
        ]
      }
    },
    "/workflow/test": {
      "post": {
        "summary": "Test Workflow",
        "tags": [
          "Workflow"
        ],
        "operationId": "postWorkflowTest",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RunTestWorkflowResponse"
                }
              }
            }
          },
          "400": {
            "description": "If required data is not provided"
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "description": "Run a ad-hoc workflow",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RunTestWorkflowRequest"
              }
            }
          }
        }
      }
    },
    "/workflow/{id}": {
      "parameters": [
        {
          "schema": {
            "type": "integer"
          },
          "name": "id",
          "in": "path",
          "required": true
        }
      ],
      "delete": {
        "summary": "Delete Workflow",
        "tags": [
          "Workflow"
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "If the workflow with the given `id` cannot be found."
          }
        },
        "operationId": "deleteWorkflow",
        "description": "Permanently delete a workflow. The workflow CANNOT be recovered after this."
      }
    },
    "/workflow/run": {
      "post": {
        "summary": "Run Workflow",
        "operationId": "runWorkflow",
        "responses": {
          "200": {
            "description": "Returns same shape as the request but with values passed in the objects field potentially updated by the workflow.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RunWorkflowRequest"
                }
              }
            }
          },
          "400": {
            "description": "If you pass a `workflowId` and it cannot be found.\n\nOr if you pass a `event` and that even doesn't exist. If no workflow is associated to the event no error will occur."
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RunWorkflowRequest"
              }
            }
          },
          "description": "Key/value pairs that correspond to global object handles and their values"
        },
        "description": "Run a workflow for a specific system event",
        "tags": [
          "Workflow"
        ],
        "x-internal": false
      },
      "parameters": []
    },
    "/workflow/update": {
      "post": {
        "summary": "Update Workflow",
        "operationId": "updateWorkflow",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Workflow"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "description": "Update a workflow",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateWorkflow"
              }
            }
          },
          "description": ""
        },
        "tags": [
          "Workflow"
        ]
      },
      "parameters": []
    },
    "/workflow/meta-data": {
      "get": {
        "summary": "Get Workflow Meta Data",
        "tags": [
          "Workflow"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetWorkflowMetaDataResponse"
                }
              }
            }
          }
        },
        "operationId": "getWorkflowMetaData"
      },
      "parameters": []
    },
    "/workflow/{id}/copy-live-to-draft": {
      "parameters": [
        {
          "schema": {
            "type": "integer"
          },
          "name": "id",
          "in": "path",
          "required": true
        }
      ],
      "put": {
        "summary": "Copy Live Workflow To Draft",
        "tags": [
          "Workflow"
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "operationId": "putWorkflowCopyLiveToDraft",
        "description": "Copy the live workflow to the draft (this will overwrite the existing draft)"
      }
    },
    "/workflow/{id}/copy-draft-to-live": {
      "parameters": [
        {
          "schema": {
            "type": "integer"
          },
          "name": "id",
          "in": "path",
          "required": true
        }
      ],
      "put": {
        "summary": "Copy Draft Workflow To Live",
        "tags": [
          "Workflow"
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "operationId": "putWorkflowCopyDraftToLive",
        "description": "Copy the draft workflow to the live workflow (this will overwrite the existing live workflow)"
      }
    },
    "/workflow/test-date-format": {
      "get": {
        "summary": "Test Date Format",
        "operationId": "getTestDateFormat",
        "parameters": [
          {
            "schema": {
              "type": "string",
              "example": "MM-dd-yyyy HH:mm:ss"
            },
            "in": "query",
            "name": "format",
            "description": "The format to test",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TestDateFormatResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "description": "Test a date format to ensure it is working as you would intend. These formats are applied within individual workflows & mapping templates.",
        "tags": [
          "Workflow"
        ]
      },
      "parameters": []
    },
    "/workflow/mapping-rule/run": {
      "post": {
        "summary": "Run Workflow Mapping Rule",
        "operationId": "runWorkflowMappingRules",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RunWorkflowRuleRequest"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RunWorkflowRuleRequest"
              }
            }
          }
        },
        "tags": [
          "Workflow"
        ]
      },
      "parameters": []
    },
    "/workflow/mapping-rule": {
      "get": {
        "summary": "Get Workflow Mapping Rules",
        "tags": [
          "Workflow"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/MappingRule"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "operationId": "getWorkflowMappingRules",
        "parameters": [
          {
            "schema": {
              "type": "boolean",
              "default": true
            },
            "in": "query",
            "name": "includeWorkflowRules",
            "description": "When set to `false` the `rules` property that contains the workflow rules will not be populated and will be `null`. This can be used to keep the request light if you just a need a list of mapping rules."
          },
          {
            "schema": {
              "type": "string"
            },
            "in": "query",
            "name": "ids",
            "description": "A comma seperated list of `MappingRule` IDs to fetch"
          },
          {
            "schema": {
              "type": "boolean"
            },
            "in": "query",
            "name": "fetchAll",
            "description": "When set to `true` anything passed in `ids` will be ignored and all configured mapping rules will be returned"
          }
        ]
      },
      "post": {
        "summary": "Create/Update Mapping Rule",
        "description": "Create or update a mapping rule",
        "operationId": "postWorkflowMappingRule",
        "tags": [
          "Workflow"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MappingRule"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateOrCreateMappingRule"
              }
            }
          }
        },
        "parameters": []
      },
      "parameters": []
    },
    "/workflow/mapping-rule/{mappingRuleId}": {
      "delete": {
        "summary": "Delete Workflow Mapping Rule",
        "tags": [
          "Workflow"
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "operationId": "deleteWorkflowMappingRule",
        "parameters": []
      },
      "parameters": [
        {
          "schema": {
            "type": "integer"
          },
          "in": "path",
          "name": "mappingRuleId",
          "required": true
        }
      ]
    },
    "/packages/custom": {
      "post": {
        "summary": "Create Custom Package",
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomPackage"
                },
                "examples": {
                  "Example 1": {
                    "value": {
                      "id": 1,
                      "name": "Standard Shipping",
                      "length": 8.6,
                      "width": 5.4,
                      "height": 1.6,
                      "dimensionUnit": {
                        "handle": "inch",
                        "abbreviatedHandle": "in"
                      },
                      "weight": 0.1,
                      "weightUnit": {
                        "handle": "pound",
                        "abbreviatedHandle": "lb"
                      },
                      "createdAt": "2019-08-24T14:15:22Z",
                      "createdByUserEmail": "user123@mycompany.com",
                      "updatedAt": null
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "409": {
            "description": "Conflict"
          }
        },
        "operationId": "saveCustomPackage",
        "description": "Use this endpoint to create a new custom package. If a custom package with this name already exists, a 409 - Conflict Response will be returned.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SaveCustomPackageRequest"
              },
              "examples": {
                "Example 1": {
                  "value": {
                    "name": "Standard Shipping",
                    "length": 8.6,
                    "width": 5.4,
                    "height": 1.6,
                    "dimensionUnit": "in",
                    "weight": 0.1,
                    "weightUnit": "lb"
                  }
                }
              }
            }
          },
          "description": ""
        },
        "x-internal": false,
        "tags": [
          "Package"
        ]
      },
      "parameters": []
    },
    "/returns": {
      "get": {
        "summary": "Get Returns",
        "tags": [
          "Returns"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ReturnModel"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "operationId": "getReturns",
        "description": "This endpoint will retrieve back Returns\n\n- Params starting with **include*** will determine the metadata returned",
        "parameters": [
          {
            "schema": {
              "type": "integer"
            },
            "in": "query",
            "name": "orderId",
            "description": "Retrieve returns of a specific order"
          },
          {
            "schema": {
              "type": "integer"
            },
            "in": "query",
            "name": "channelId",
            "description": "Retrieve returns of a specific channel"
          },
          {
            "schema": {
              "type": "integer"
            },
            "in": "query",
            "name": "pageSize",
            "description": "Number of entries per page"
          },
          {
            "schema": {
              "type": "integer"
            },
            "in": "query",
            "name": "pageNumber",
            "description": "Current Page"
          },
          {
            "schema": {
              "type": "boolean",
              "default": "false"
            },
            "in": "query",
            "name": "includeRmas",
            "description": "Use this to include Rmas associated with the return. By default they are not included."
          }
        ]
      },
      "post": {
        "summary": "Create Return",
        "tags": [
          "Returns"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateReturnResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not Found"
          },
          "409": {
            "description": "Conflict"
          }
        },
        "operationId": "createReturns",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateReturnRequest"
              }
            }
          }
        },
        "description": "Create a Return"
      }
    },
    "/returns/{id}": {
      "parameters": [
        {
          "schema": {
            "type": "integer"
          },
          "name": "id",
          "in": "path",
          "required": true
        }
      ],
      "get": {
        "summary": "Get Return by ID",
        "tags": [
          "Returns"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReturnModel"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "operationId": "getReturnById",
        "description": "Retrieves a `Return` by provided id"
      },
      "patch": {
        "summary": "Update Return",
        "operationId": "updateReturn",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReturnModel"
                },
                "examples": {
                  "example-1": {
                    "value": {
                      "id": 0,
                      "orderId": 0,
                      "returnNumber": "string",
                      "accountId": 0,
                      "totalReturnItems": 0,
                      "totalRmas": 0,
                      "channelId": 0,
                      "items": [
                        {
                          "id": 0,
                          "returnId": 0,
                          "orderItemId": 0,
                          "sku": "string",
                          "returnQuantity": 0,
                          "returnReason": "string",
                          "returnCondition": "string",
                          "salesPrice": 0,
                          "Title": "string"
                        }
                      ],
                      "rmas": [
                        {
                          "id": 0,
                          "returnId": 0,
                          "sourceId": 0,
                          "rmaNumber": "string",
                          "accountId": 0,
                          "returnToAddress": {
                            "id": 0,
                            "name": "Joe Smith",
                            "addressLine1": "120 1st Lane",
                            "addressLine2": "Suite 123",
                            "city": "Jacksonville",
                            "state": "Florida",
                            "country": "United States",
                            "stateCode": "FL",
                            "countryCode": "US",
                            "postal": "12345",
                            "email": "person@example.com",
                            "phone": "1-555-123-4567",
                            "companyName": "string",
                            "firstName": "Joe",
                            "lastName": "Smith",
                            "redacted": true,
                            "hash": "string"
                          },
                          "items": [
                            {
                              "id": 0,
                              "returnItemId": 0,
                              "rmaId": 0,
                              "sku": "string",
                              "title": "string",
                              "salesPrice": 0,
                              "returnReason": "string",
                              "returnCondition": "string",
                              "note": "string",
                              "quantity": 0
                            }
                          ],
                          "totalRmaItems": 0,
                          "createdAt": "2019-08-24T14:15:22Z",
                          "updatedAt": "2019-08-24T14:15:22Z",
                          "rmaStatus": "Waiting"
                        }
                      ],
                      "returnTotal": 0,
                      "status": "open"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "description": "Update a `Return`",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ReturnUpdateRequest"
              },
              "examples": {
                "Update a Return status to `Open`": {
                  "value": {
                    "returnStatus": "open"
                  }
                },
                "Update a Return status to `Closed`": {
                  "value": {
                    "returnStatus": "closed"
                  }
                },
                "Update a Return status to `Cancelled`": {
                  "value": {
                    "returnStatus": "cancelled"
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Returns"
        ]
      }
    },
    "/rma": {
      "post": {
        "summary": "Create RMA",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Rma"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "operationId": "createRma",
        "description": "Creates a RMA",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateRmaRequest"
              }
            }
          }
        },
        "tags": [
          "RMA"
        ]
      },
      "get": {
        "summary": "List Rmas",
        "operationId": "getRmas",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Rma"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "description": "This endpoint will retrieve back Rmas\n\n- Params starting with **include*** will determine the metadata returned",
        "parameters": [
          {
            "schema": {
              "type": "integer"
            },
            "in": "query",
            "name": "returnId",
            "description": "Retrieve rma of a specific return"
          },
          {
            "schema": {
              "type": "integer"
            },
            "in": "query",
            "name": "sourceId",
            "description": "Retrieve rma for the given sourceId"
          },
          {
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "in": "query",
            "name": "createdAfter",
            "description": "Filter rmas that were created after this date-time."
          },
          {
            "schema": {
              "type": "integer"
            },
            "in": "query",
            "name": "pageSize",
            "description": "Number of entries per page"
          },
          {
            "schema": {
              "type": "integer"
            },
            "in": "query",
            "name": "pageNumber",
            "description": "Current Page"
          },
          {
            "schema": {
              "type": "string"
            },
            "in": "query",
            "name": "rmaNumbers",
            "description": "rma numbers separated by a comma"
          },
          {
            "schema": {
              "type": "boolean"
            },
            "in": "query",
            "name": "isAccountingSynced",
            "description": "Filter to only include or exclude rmas that have been synced to an Accounting Integration"
          }
        ],
        "tags": [
          "RMA"
        ]
      }
    },
    "/rma/{id}": {
      "parameters": [
        {
          "schema": {
            "type": "integer"
          },
          "name": "id",
          "in": "path",
          "required": true
        }
      ],
      "get": {
        "summary": "Get Rma By ID",
        "tags": [
          "RMA"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Rma"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "operationId": "getRmaById",
        "description": "Retrives a `RMA` by provided id"
      },
      "patch": {
        "summary": "Update RMA",
        "operationId": "updateRMA",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Rma"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RmaUpdateRequest"
              }
            },
            "application/xml": {
              "schema": {
                "type": "object",
                "properties": {}
              }
            }
          },
          "description": ""
        },
        "tags": [
          "RMA"
        ],
        "description": "Update RMA"
      }
    },
    "/rma-shipments": {
      "post": {
        "summary": "Create RMA Shipment",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RmaShipment"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "operationId": "createRmaShipment",
        "description": "Creates a RMA Shipment",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateRmaShipmentRequest"
              },
              "examples": {
                "example-1 (Create Rma Shipment by providing RMA Number)": {
                  "value": {
                    "rmaNumber": "string",
                    "sourceId": 0,
                    "returnToAddress": {
                      "name": "Joe Smith",
                      "firstName": "Joe",
                      "lastName": "Smith",
                      "addressLine1": "1000 1st Lane",
                      "city": "Jacksonville",
                      "postal": "12345",
                      "addressLine2": "Suite 123",
                      "state": "Florida",
                      "country": "United States",
                      "stateCode": "FL",
                      "countryCode": "US",
                      "email": "person@example.com",
                      "phone": "1-555-123-4567",
                      "companyName": "string"
                    },
                    "shipment": {
                      "note": "string",
                      "trackingUrl": "string",
                      "trackingNumber": "string",
                      "carrier": "string",
                      "method": "string",
                      "shippedAt": "2019-08-24T14:15:22Z",
                      "shippingCost": 0,
                      "suppressed": false,
                      "shipmentItems": [
                        {
                          "sku": "string",
                          "quantity": 0,
                          "inventoryVariantId": 0,
                          "orderItemId": 0,
                          "purchaseOrderItemId": 0,
                          "rmaItemId": 0
                        }
                      ]
                    },
                    "attachments": [
                      {
                        "attachmentUrl": "string",
                        "attachmentType": "packing_slip"
                      }
                    ]
                  }
                },
                "example-2 (Create Rma Shipment by providing RMA Id)": {
                  "value": {
                    "rmaId": 0,
                    "returnToAddress": {
                      "name": "Joe Smith",
                      "firstName": "Joe",
                      "lastName": "Smith",
                      "addressLine1": "1000 1st Lane",
                      "city": "Jacksonville",
                      "postal": "12345",
                      "addressLine2": "Suite 123",
                      "state": "Florida",
                      "country": "United States",
                      "stateCode": "FL",
                      "countryCode": "US",
                      "email": "person@example.com",
                      "phone": "1-555-123-4567",
                      "companyName": "string"
                    },
                    "shipment": {
                      "note": "string",
                      "trackingUrl": "string",
                      "trackingNumber": "string",
                      "carrier": "string",
                      "method": "string",
                      "shippedAt": "2019-08-24T14:15:22Z",
                      "shippingCost": 0,
                      "suppressed": false,
                      "shipmentItems": [
                        {
                          "sku": "string",
                          "quantity": 0,
                          "inventoryVariantId": 0,
                          "orderItemId": 0,
                          "purchaseOrderItemId": 0,
                          "rmaItemId": 0
                        }
                      ]
                    },
                    "attachments": [
                      {
                        "attachmentUrl": "string",
                        "attachmentType": "packing_slip"
                      }
                    ]
                  }
                }
              }
            }
          }
        },
        "tags": [
          "RMA"
        ]
      },
      "get": {
        "summary": "List RMA Shipments",
        "operationId": "getRmaShipments",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/RmaShipment"
                  }
                },
                "examples": {
                  "example-1 (Include attachments and address)": {
                    "value": [
                      {
                        "id": 0,
                        "rmaId": 0,
                        "accountId": 0,
                        "shipment": {
                          "id": 0,
                          "note": "string",
                          "trackingUrl": "string",
                          "trackingNumber": "string",
                          "carrier": "string",
                          "method": "string",
                          "shippedAt": "2019-08-24T14:15:22Z",
                          "insertedAt": "2019-08-24T14:15:22Z",
                          "shippingCost": 0,
                          "orderId": 0,
                          "purchaseOrderId": 0,
                          "rmaId": 0,
                          "sourceId": 0,
                          "accountId": 0,
                          "partial": true,
                          "suppressed": true,
                          "syncedToChannel": true,
                          "syncError": "string",
                          "crossDockPurchaseOrderId": 0,
                          "shipmentItems": [
                            {
                              "id": 0,
                              "sku": "string",
                              "quantity": 0,
                              "shipmentId": 0,
                              "inventoryVariantId": 0,
                              "partial": true,
                              "orderItemId": 0,
                              "purchaseOrderItemId": 0,
                              "committedStockReleasedQuantity": 0,
                              "rmaItemId": 0
                            }
                          ]
                        },
                        "shippingAddress": {
                          "id": 0,
                          "name": "Joe Smith",
                          "addressLine1": "120 1st Lane",
                          "addressLine2": "Suite 123",
                          "city": "Jacksonville",
                          "state": "Florida",
                          "country": "United States",
                          "stateCode": "FL",
                          "countryCode": "US",
                          "postal": "12345",
                          "email": "person@example.com",
                          "phone": "1-555-123-4567",
                          "companyName": "string",
                          "firstName": "Joe",
                          "lastName": "Smith",
                          "redacted": true,
                          "hash": "string"
                        },
                        "attachments": [
                          {
                            "id": 0,
                            "rmaId": 0,
                            "rmaShipmentId": 0,
                            "attachmentType": "string",
                            "attachmentUrl": "string"
                          }
                        ],
                        "createdAt": "2019-08-24T14:15:22Z"
                      }
                    ]
                  },
                  "example-2 (not including attachment and address)": {
                    "value": [
                      {
                        "id": 0,
                        "rmaId": 0,
                        "accountId": 0,
                        "shipment": {
                          "id": 0,
                          "note": "string",
                          "trackingUrl": "string",
                          "trackingNumber": "string",
                          "carrier": "string",
                          "method": "string",
                          "shippedAt": "2019-08-24T14:15:22Z",
                          "insertedAt": "2019-08-24T14:15:22Z",
                          "shippingCost": 0,
                          "orderId": 0,
                          "purchaseOrderId": 0,
                          "rmaId": 0,
                          "sourceId": 0,
                          "accountId": 0,
                          "partial": true,
                          "suppressed": true,
                          "syncedToChannel": true,
                          "syncError": "string",
                          "crossDockPurchaseOrderId": 0,
                          "shipmentItems": [
                            {
                              "id": 0,
                              "sku": "string",
                              "quantity": 0,
                              "shipmentId": 0,
                              "inventoryVariantId": 0,
                              "partial": true,
                              "orderItemId": 0,
                              "purchaseOrderItemId": 0,
                              "committedStockReleasedQuantity": 0,
                              "rmaItemId": 0
                            }
                          ]
                        },
                        "shippingAddress": null,
                        "attachments": null,
                        "createdAt": "2019-08-24T14:15:22Z"
                      }
                    ]
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "in": "query",
            "name": "rmaNumbers",
            "description": "rma numbers separated by a comma"
          },
          {
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "in": "query",
            "name": "createdAfter",
            "description": "Filter shipments that were created after this date-time."
          },
          {
            "schema": {
              "type": "integer"
            },
            "in": "query",
            "name": "pageSize",
            "description": "Number of entries per page"
          },
          {
            "schema": {
              "type": "integer"
            },
            "in": "query",
            "name": "pageNumber",
            "description": "Current Page"
          },
          {
            "schema": {
              "type": "integer"
            },
            "in": "query",
            "name": "rmaId",
            "description": "Retrieve shipments of a specific rma"
          },
          {
            "schema": {
              "type": "boolean"
            },
            "in": "query",
            "name": "includeAttachments",
            "description": "If true, it will fetch attachments associated with the RMA Shipment"
          },
          {
            "schema": {
              "type": "boolean"
            },
            "in": "query",
            "name": "includeReturnAddress",
            "description": "If true, it will fetch the return address associated with the RMA shipment"
          }
        ],
        "tags": [
          "RMA"
        ]
      }
    },
    "/rma-shipments/{id}": {
      "parameters": [
        {
          "schema": {
            "type": "integer"
          },
          "name": "id",
          "in": "path",
          "required": true,
          "description": "Rma Shipment Id"
        }
      ],
      "get": {
        "summary": "Get RMA Shipment By ID",
        "tags": [
          "RMA"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RmaShipment"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "operationId": "getRmaShipmentById"
      }
    },
    "/rma-shipments/{id}/sent": {
      "parameters": [
        {
          "schema": {
            "type": "integer"
          },
          "name": "id",
          "in": "path",
          "required": true,
          "description": "RMA Shipment Id"
        }
      ],
      "patch": {
        "summary": "Set RMA Shipment as sent",
        "tags": [
          "RMA"
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "operationId": "updateRmaShipmentToSent",
        "description": "update RMA shipment as sent"
      }
    },
    "/rma-shipments/{id}/receive": {
      "parameters": [
        {
          "schema": {
            "type": "integer"
          },
          "name": "id",
          "in": "path",
          "required": true,
          "description": "id of rma shipment"
        }
      ],
      "patch": {
        "summary": "Receive RMA Shipment",
        "tags": [
          "RMA"
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "operationId": "receiveRmaShipment",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ReceiveRmaShipmentItem"
                }
              }
            }
          }
        }
      }
    },
    "/rmas/{rmaId}/items": {
      "parameters": [
        {
          "schema": {
            "type": "integer"
          },
          "name": "rmaId",
          "in": "path",
          "required": true
        }
      ],
      "patch": {
        "summary": "Update RMA Items",
        "tags": [
          "RMA"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Rma"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Rma"
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          }
        },
        "operationId": "updateRMAItems",
        "description": "This endpoint will update any non-null fields for RMA Items passed in the request body.\n\nPlease note:\n<ul>\n<li>approvedQuantity and deniedQuantity may only be updated while the RMA is in \"Waiting\" or \"Partially Approved\" status.</li>\n<li>quantity cannot be updated if approvedQuantity or deniedQuantity have previously been updated.</li>\n</ul>",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/UpdateRmaItemsRequest"
                }
              }
            }
          }
        }
      }
    },
    "/returns/{Id}/items": {
      "parameters": [
        {
          "schema": {
            "type": "integer"
          },
          "name": "Id",
          "in": "path",
          "required": true
        }
      ],
      "patch": {
        "summary": "Update Return Item",
        "tags": [
          "Returns"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReturnModel"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "operationId": "updateReturnItems",
        "description": "Update Return Items",
        "parameters": [],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/UpdateReturnItemRequest"
                }
              }
            }
          }
        }
      }
    },
    "/returns/{returnId}/sync-refund": {
      "parameters": [
        {
          "schema": {
            "type": "integer"
          },
          "name": "returnId",
          "in": "path",
          "required": true
        }
      ],
      "put": {
        "summary": "Sync Return Refund to the Channel Invoice for the Order",
        "tags": [
          "Returns"
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "operationId": "syncRefundToOrder",
        "description": "Sync Refund to Order"
      }
    },
    "/rmas/{id}/sync-credit": {
      "parameters": [
        {
          "schema": {
            "type": "integer"
          },
          "name": "id",
          "in": "path",
          "required": true,
          "description": "ID of RMA"
        }
      ],
      "put": {
        "summary": "Apply credit to a source invoice",
        "tags": [
          "RMA"
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "operationId": "syncCreditToInvoice"
      }
    },
    "/fulfillment-requests/{fulfillmentRequestId}": {
      "parameters": [
        {
          "schema": {
            "type": "integer"
          },
          "name": "fulfillmentRequestId",
          "in": "path",
          "required": true,
          "description": "Fulfillment Request Id"
        }
      ],
      "get": {
        "summary": "Get Fulfillment Request",
        "tags": [
          "Fulfillment Request"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FulfillmentRequest"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "operationId": "getFulfillmentRequestById"
      }
    },
    "/fulfillment-requests/{fulfillmentRequestId}/acknowledge": {
      "parameters": [
        {
          "schema": {
            "type": "integer"
          },
          "name": "fulfillmentRequestId",
          "in": "path",
          "required": true,
          "description": "Fulfillment Request ID"
        }
      ],
      "patch": {
        "summary": "Acknowledge Fulfillment Request",
        "tags": [
          "Fulfillment Request"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FulfillmentRequest"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "operationId": "acknowledgeAllFulfillmentRequestItems",
        "description": "Acknowledge all Fulfillment Request Line item quantities which are not already acknowledged/canceled",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FulfillmentRequestAcknowledgement"
              }
            }
          }
        }
      }
    },
    "/fulfillment-requests/{fulfillmentRequestId}/adjust": {
      "parameters": [
        {
          "schema": {
            "type": "integer"
          },
          "name": "fulfillmentRequestId",
          "in": "path",
          "required": true,
          "description": "Fulfillment Request ID"
        }
      ],
      "post": {
        "summary": "Adjust Fulfillment Request",
        "tags": [
          "Fulfillment Request"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FulfillmentRequest"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "operationId": "adjustFulfillmentRequest",
        "description": "This endpoint allows for partial acknowledgements and/or cancellations by specifying items.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FulfillmentRequestAdjustment"
              }
            }
          },
          "description": "Pass a null or empty value for `items` to acknowledge all Fulfillment Request Line item quantities which are not already acknowledged/canceled. Secondary Acknowledgements will not be updated when omitting line items."
        }
      }
    },
    "/fulfillment-requests/{fulfillmentRequestId}/cancel": {
      "parameters": [
        {
          "schema": {
            "type": "integer"
          },
          "name": "fulfillmentRequestId",
          "in": "path",
          "required": true
        }
      ],
      "patch": {
        "summary": "Cancel Fulfillment Request",
        "tags": [
          "Fulfillment Request"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FulfillmentRequest"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "operationId": "cancelAllFRItems",
        "description": "Cancels all Fulfillment Request Line item quantities which are not already acknowledged/canceled",
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "in": "query",
            "description": "`killOrFillType` can be either `fill` Or `kill`. By default it will be `fill`. `fill` : This will unallocate the quantities from the order item level so that another Fulfillment Request can be generated for alternative fulfillment. `kill` : This will cancel the quantities at the order item level indicating no further fulfillment should occur.",
            "name": "killOrFillType"
          },
          {
            "schema": {
              "type": "string"
            },
            "in": "query",
            "name": "cancelReason",
            "description": "use this to state the reason for cancel"
          }
        ]
      }
    },
    "/fulfillment-requests/{fulfillmentRequestId}/accounting-sync": {
      "parameters": [
        {
          "schema": {
            "type": "integer"
          },
          "name": "fulfillmentRequestId",
          "in": "path",
          "required": true
        }
      ],
      "patch": {
        "summary": "Sync Accounting",
        "x-internal": false,
        "tags": [
          "Fulfillment Request"
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "operationId": "syncFulfillmentRequestForAccounting",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FulfillmentAccountingSyncRequest"
              },
              "examples": {
                "success-1": {
                  "value": {
                    "accountingSynced": true,
                    "externalAccountingId": "TEST-221",
                    "accountingError": null,
                    "items": [
                      {
                        "id": 12312,
                        "externalAccountingItemId": "TEST-221-A"
                      }
                    ]
                  }
                },
                "error-1": {
                  "value": {
                    "accountingSynced": false,
                    "accountingError": "Request rejected due to invalid Id"
                  }
                }
              }
            }
          }
        },
        "description": "Update Fulfillment Request as synced to external system"
      }
    },
    "/fulfillment-requests/{fulfillmentRequestId}/committed-stock": {
      "parameters": [
        {
          "schema": {
            "type": "integer"
          },
          "name": "fulfillmentRequestId",
          "in": "path",
          "required": true,
          "description": "Fulfillment Request ID"
        }
      ],
      "get": {
        "summary": "Get Committed Stock For Fulfillment Request",
        "tags": [
          "Fulfillment Request"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/CommittedStock"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "operationId": "getCommittedStockForFulfillmentRequest",
        "description": "Get committed stock for a fulfillment request"
      },
      "post": {
        "summary": "Commit Stock For Fulfillment Request",
        "tags": [
          "Fulfillment Request"
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "operationId": "commitStockForFulfillmentRequest",
        "description": "Commit Stock for fulfillment request"
      },
      "patch": {
        "summary": "Adjust Applicable Committed Stock",
        "tags": [
          "Fulfillment Request"
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "204": {
            "description": "No Content"
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "operationId": "adjustApplicableCommittedStockForFulfillmentRequest",
        "description": "This endpoint will intelligently reconcile and adjust/release all applicable committed stock for the Fulfillment Request. The cases in which these occurr are as follows : \n\n    - Shipments : Will automatically release any committed stock for associated shipments that have not yet had their shipped quantity released.\n\n    - Canceled & Voided : Will automatically release all committed stock in the case that the Fulfillment Request is now canceled or voided.\n\n    - Line Item Qty Change : If a Fulfillment Request prior to being processed has any quantities modified this endpoint will reconcile the difference between what is already committed and what was modified and will then either release or add the difference.\n\nThis endpoint will not double/over release when interacted with multiple times (it's idempotent). This makes it safe to call even if you are unsure of whether or not all stock has been appropriately released."
      },
      "delete": {
        "summary": "Release All Committed Stock For Fulfillment Request",
        "tags": [
          "Fulfillment Request"
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "operationId": "releaseAllCommittedStockForFulfillmentRequest",
        "description": "Release committed stock for fulfillment request",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ReleaseCommittedStockForFulfillmentRequest"
              }
            }
          }
        }
      }
    },
    "/fulfillment-requests/processing": {
      "get": {
        "summary": "Get Fulfillment Request In Processing",
        "tags": [
          "Fulfillment Request"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/FulfillmentRequest"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "operationId": "getFulfillmentRequestsInProcessingAndTransitionThemToProcessed",
        "description": "This endpoint will retrieve a list of Fulfillment Requests AND `Update the Fulfillment Requests to Processed`\n\nNOTE : This means, if our API times out for you - those Fulfillment Requests may transition into a \"Processed\" state despite you not receiving them. \n\nIt's not recommended to use this endpoint, and it may be deprecated in the near future. We'd recommend using `GET /fulfillment-requests` to retrieve and `PATCH /fulfillment-requests/{fulfillmentRequestId}/acknowledge` to respond",
        "parameters": [
          {
            "schema": {
              "type": "integer"
            },
            "in": "query",
            "name": "filterSourceId",
            "description": "filter Fulfillment Request by Source ID"
          }
        ]
      }
    },
    "/fulfillment-requests/{fulfillmentRequestId}/processing-failed": {
      "parameters": [
        {
          "schema": {
            "type": "integer"
          },
          "name": "fulfillmentRequestId",
          "in": "path",
          "required": true,
          "description": "Fulfillment Request ID"
        }
      ],
      "patch": {
        "summary": "Fail Fulfillment Request",
        "tags": [
          "Fulfillment Request"
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "operationId": "failFulfillmentRequest",
        "description": "Update Fulfillment Request as failed during processing.<br/>\nOnly a fulfillment request in processing status `Processing` or `Processed` can be updated as `Failed`.<br/>\nIt will then transition into processing status `Processing Error`.",
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "in": "query",
            "name": "error",
            "description": "reason why processing failed",
            "required": true
          }
        ]
      }
    },
    "/fulfillment-requests/count": {
      "get": {
        "summary": "Get Count of Fulfillment Requests",
        "tags": [
          "Fulfillment Request"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GenericCount"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "operationId": "getFulfillmentRequestsCount",
        "description": "This endpoint will get a count of Fulfillment Requests applicable to your filters",
        "parameters": [
          {
            "schema": {
              "type": "integer"
            },
            "in": "query",
            "name": "findOrderId",
            "description": "Filter Fulfillment Requests by Order ID."
          },
          {
            "schema": {
              "type": "integer"
            },
            "in": "query",
            "name": "sinceId",
            "description": "If passed, returns results with an ID greater than this."
          },
          {
            "schema": {
              "type": "array",
              "example": "PO123,PO456,PO789",
              "maxItems": 50,
              "uniqueItems": true,
              "items": {
                "type": "string"
              }
            },
            "in": "query",
            "name": "fulfillmentRequestNumbers",
            "description": "Finds elements matching these Fulfillment Request Numbers. Max 50",
            "style": "form"
          },
          {
            "schema": {
              "type": "integer"
            },
            "in": "query",
            "name": "filterSourceId",
            "description": "Filter Fulfillment Requests by Source ID."
          },
          {
            "schema": {
              "type": "string"
            },
            "in": "query",
            "name": "filterFulfilmentStatus",
            "description": "Filter Fulfillment Requests by Fulfillment Status. Accepts a comma-separated list to filter on multiple statuses at once."
          },
          {
            "schema": {
              "type": "boolean"
            },
            "in": "query",
            "name": "filterInvoiced",
            "description": "Filter Fulfillment Requests that have source invoice available."
          },
          {
            "schema": {
              "type": "string"
            },
            "in": "query",
            "name": "filterStatus",
            "description": "Filter Fulfillment Requests by Fulfillment Request Status. Accepts a comma-separated list to filter on multiple statuses at once."
          },
          {
            "schema": {
              "type": "boolean"
            },
            "in": "query",
            "name": "filterIsAcknowledged",
            "description": "Filter Fulfillment Requests based on whether or they were acknowledged (true returns only acknowledged, false only those that are not acknowledged)."
          },
          {
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "in": "query",
            "name": "filterAcknowledgedAfter",
            "description": "Filter Fulfillment Requests that were acknowledged after this date-time."
          },
          {
            "schema": {
              "type": "boolean"
            },
            "in": "query",
            "name": "filterIsSent",
            "description": "Filter Fulfillment Requests based on whether or they have been sent to the source (true returns only those that have been sent, false only those that have not yet been sent)."
          },
          {
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "in": "query",
            "name": "filterSentAfter",
            "description": "Filter Fulfillment Requests that were sent after this date-time."
          },
          {
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "in": "query",
            "name": "filterGeneratedAfter",
            "description": "Filter Fulfillment Requests that were generated after this date-time."
          },
          {
            "schema": {
              "type": "boolean"
            },
            "in": "query",
            "name": "filterIsCanceled",
            "description": "Filter Fulfillment Requests based on whether or they were canceled (true returns only canceled, false only those that are not canceled)."
          },
          {
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "in": "query",
            "name": "filterCanceledAfter",
            "description": "Filter Fulfillment Requests that were canceled after this date-time."
          },
          {
            "schema": {
              "type": "boolean"
            },
            "in": "query",
            "name": "filterIsVoided",
            "description": "Filter Fulfillment Requests based on whether or they were voided (true returns only voided, false only those that are not voided)."
          },
          {
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "in": "query",
            "name": "filterVoidedAfter",
            "description": "Filter Fulfillment Requests that were voided after this date-time."
          },
          {
            "schema": {
              "type": "boolean"
            },
            "in": "query",
            "name": "filterIsHeld",
            "description": "Filter Fulfillment Requests based on whether or they are being held (true returns only held, false only those that are not held)."
          },
          {
            "schema": {
              "type": "boolean"
            },
            "in": "query",
            "name": "filterHasError",
            "description": "Filter Fulfillment Requests based on whether or they have a processing error (true returns only those with errors, false only those without errors)."
          },
          {
            "schema": {
              "type": "boolean"
            },
            "in": "query",
            "name": "filterEligibleForProcessing",
            "description": "Filters Fulfillment Requests based on whether the order it related to is Open/Not Managed (true returns only if the order it is related to is Open/Not Managed, false does not filter PO based on order status)."
          },
          {
            "schema": {
              "type": "array",
              "example": "1234,1235,1257",
              "maxItems": 50,
              "uniqueItems": true,
              "items": {
                "type": "integer"
              }
            },
            "in": "query",
            "name": "filterPurchaseOrderTypeIds",
            "description": "Filter Purchase Orders by type id, using ids from the PurchaseOrderType Enum.",
            "style": "form"
          },
          {
            "schema": {
              "type": "boolean"
            },
            "in": "query",
            "name": "isPurchaseOrderAccountingSynced",
            "description": "Filter to only include Purchase Orders that have been synced to an Accounting Integration."
          },
          {
            "schema": {
              "type": "boolean"
            },
            "in": "query",
            "name": "isOrderAccountingSynced",
            "description": "Filter to only include those created for Orders that have been synced to an Accounting Integration. Does not relate to the whether or not the Purchase Order has been synced."
          },
          {
            "schema": {
              "type": "boolean"
            },
            "in": "query",
            "name": "hasAccountingError",
            "description": "Filter to include Purchase Orders based on whether or not they have a previous error saved while sending to an Accounting Integration"
          },
          {
            "schema": {
              "type": "boolean"
            },
            "in": "query",
            "name": "filterOrderInvoiced",
            "description": "Filter to only include those created for Orders that have invoices. Does not relate to the whether or not the Purchase Order has been invoiced."
          }
        ]
      }
    },
    "/fulfillment-requests/{fulfillmentRequestId}/processed": {
      "parameters": [
        {
          "schema": {
            "type": "integer"
          },
          "name": "fulfillmentRequestId",
          "in": "path",
          "required": true,
          "description": "Fulfillment Request ID"
        }
      ],
      "patch": {
        "summary": "Process Fulfillment Request",
        "tags": [
          "Fulfillment Request"
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "operationId": "processFulfillmentRequest",
        "description": "Update a Fulfillment Request as `Processed`. <br/>\nOnly Fulfillment Requests in `Processing` status can be transitioned to `Processed`.\n\nIf the Fulfillment Request is already in `Processed` status, a 200 (OK) response will be returned."
      }
    },
    "/fulfillment-requests/{fulfillmentRequestId}/processing": {
      "parameters": [
        {
          "schema": {
            "type": "integer"
          },
          "name": "fulfillmentRequestId",
          "in": "path",
          "required": true,
          "description": "Fulfillment Request ID"
        }
      ],
      "patch": {
        "summary": "Start Processing Fulfillment Request",
        "tags": [
          "Fulfillment Request"
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "operationId": "startProcessingFulfillmentRequest",
        "description": "Transition a Fulfillment Request into `Processing` status. This is the API equivalent of the **Process** action in the Flxpoint UI.<br/>\nOnly Fulfillment Requests in `Unprocessed` status can be transitioned to `Processing`. Any other status is rejected with a 400 (Bad Request).\n\nIf the Fulfillment Request is already in `Processing` status, a 200 (OK) response will be returned.\n\nFulfillment Requests whose supplier is configured to send Fulfillment Requests from the Vendor Portal are rejected with a 400 (Bad Request), because those are transitioned directly to `Processed` when processed.\n\nNot to be confused with **Process Fulfillment Request** (`processFulfillmentRequest`), which transitions `Processing` to `Processed`."
      }
    },
    "/fulfillment-requests/{fulfillmentRequestId}/generate-packing-slip": {
      "parameters": [
        {
          "schema": {
            "type": "integer"
          },
          "name": "fulfillmentRequestId",
          "in": "path",
          "required": true,
          "description": "Fulfillment Request ID"
        }
      ],
      "patch": {
        "summary": "Generate Packing Slip",
        "tags": [
          "Fulfillment Request"
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "operationId": "generatePackingSlip"
      }
    },
    "/product/variant/{variantId}/alternatives": {
      "parameters": [
        {
          "schema": {
            "type": "integer"
          },
          "name": "variantId",
          "in": "path",
          "required": true,
          "description": "ID of product variant"
        }
      ],
      "get": {
        "summary": "Get Product Alternatives",
        "tags": [
          "Product"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/AlternateVariant"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "operationId": "getProductAlternatives"
      },
      "post": {
        "summary": "Save Product Alternatives",
        "operationId": "saveProductAlternatives",
        "responses": {
          "200": {
            "description": "OK"
          }
        },
        "tags": [
          "Product"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "array",
                "uniqueItems": true,
                "items": {
                  "type": "integer"
                }
              }
            }
          }
        }
      }
    },
    "/orders/{id}/status": {
      "parameters": [
        {
          "schema": {
            "type": "integer"
          },
          "name": "id",
          "in": "path",
          "required": true,
          "description": "Id of order"
        }
      ],
      "patch": {
        "summary": "Update Order Status",
        "tags": [
          "Order"
        ],
        "responses": {
          "201": {
            "description": "Created"
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "operationId": "updateOrderStatus",
        "parameters": [
          {
            "schema": {
              "type": "string",
              "enum": [
                "Open",
                "Closed",
                "Canceled",
                "On Hold",
                "Failed",
                "No Shipping Method",
                "Not Managed"
              ]
            },
            "in": "query",
            "name": "status",
            "required": true,
            "description": "order status"
          },
          {
            "schema": {
              "type": "string"
            },
            "in": "query",
            "name": "updateNote",
            "description": "note about this status update"
          }
        ],
        "description": ""
      }
    },
    "/shipment/{id}/shipment-item": {
      "delete": {
        "summary": "Delete Shipment Item",
        "tags": [
          "Shipment"
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "operationId": "deleteShipmentItem",
        "description": "Delete Shipment Item(s) by providing the ID(s).\n\nA source token or account token may be used.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "shipmentItemIds": {
                    "x-stoplight": {
                      "id": "na8nu9x3la8wr"
                    },
                    "type": "array",
                    "items": {
                      "x-stoplight": {
                        "id": "kw8vustnus7o0"
                      },
                      "type": "integer"
                    }
                  }
                }
              }
            }
          }
        }
      },
      "parameters": [
        {
          "schema": {
            "type": "integer"
          },
          "name": "id",
          "in": "path",
          "required": true,
          "description": "Shipment ID"
        }
      ]
    },
    "/shipment/{id}/custom-fields": {
      "parameters": [
        {
          "schema": {
            "type": "integer"
          },
          "name": "id",
          "in": "path",
          "required": true,
          "description": "Shipment ID"
        }
      ],
      "delete": {
        "summary": "Delete Shipment Custom Fields",
        "tags": [
          "Shipment"
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "operationId": "deleteShipmentCustomFields",
        "description": "Delete shipment custom field(s) by providing the ID(s).\n\nA source token or account token may be used.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "customFieldIds": {
                    "x-stoplight": {
                      "id": "01t2ey9y94751"
                    },
                    "type": "array",
                    "items": {
                      "x-stoplight": {
                        "id": "tweo6vqgc69fq"
                      },
                      "type": "integer"
                    }
                  }
                }
              }
            }
          },
          "description": "Remove shipment custom fields by id"
        }
      }
    },
    "/shipment/{shipmentId}/shipment-item/{shipmentItemId}/custom-fields": {
      "parameters": [
        {
          "schema": {
            "type": "integer"
          },
          "name": "shipmentId",
          "in": "path",
          "required": true,
          "description": "Shipment ID"
        },
        {
          "schema": {
            "type": "integer"
          },
          "name": "shipmentItemId",
          "in": "path",
          "required": true,
          "description": "Shipment Item ID"
        }
      ],
      "delete": {
        "summary": "Delete Shipment Item Custom Fields",
        "operationId": "deleteShipmentItemCustomFields",
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "description": "Delete Shipment Item Custom Field(s) by providing the ID(s).\n\nA source token or account token may be used.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "customFieldIds": {
                    "x-stoplight": {
                      "id": "6yddn7uprtdb5"
                    },
                    "type": "array",
                    "items": {
                      "x-stoplight": {
                        "id": "mt6dvgoqhb0gg"
                      },
                      "type": "integer"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Shipment"
        ]
      }
    },
    "/connections": {
      "get": {
        "summary": "Get Connections",
        "tags": [
          "Connection"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Connection"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "operationId": "getConnections",
        "description": "Endpoint to retrieve back a list of Connections. \n\nRequires Account-level privileges. "
      },
      "post": {
        "summary": "Create Connection",
        "tags": [
          "Connection"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ConnectionUpdateRequest"
              }
            }
          },
          "description": ""
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Connection"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "operationId": "postConnection",
        "description": "Endpoint to create a Connection. \n\nRequires Account-level privileges. ",
        "parameters": []
      }
    },
    "/connections/available-configs": {
      "get": {
        "summary": "Get Available Connection Configs",
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "name": "handle",
            "in": "query",
            "required": true,
            "description": "The connection type handle"
          }
        ],
        "tags": [
          "Connection"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ConnectionConfig"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "operationId": "getConnectionAvailableTypeConfigs",
        "description": "Endpoint to retrieve back a list of available connection configs based on the connection type. \n\nRequires Account-level privileges. "
      }
    },
    "/connections/types": {
      "get": {
        "summary": "Get Connection Types",
        "tags": [
          "Connection"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ConnectionType"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "operationId": "getConnectionTypes",
        "description": "Endpoint to retrieve back a list of connection types. \n\nRequires Account-level privileges. "
      }
    },
    "/connections/{id}": {
      "parameters": [
        {
          "schema": {
            "type": "integer"
          },
          "name": "id",
          "in": "path",
          "required": true,
          "description": "The `Connection` ID"
        }
      ],
      "put": {
        "summary": "Update Connection",
        "tags": [
          "Connection"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ConnectionUpdateRequest"
              }
            }
          },
          "description": ""
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Connection"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Connection Not Found"
          }
        },
        "operationId": "putConnectionById",
        "description": "Endpoint to update an existing Connection. \n\nRequires Account-level privileges. ",
        "parameters": []
      },
      "get": {
        "summary": "Get Connection",
        "operationId": "getConnectionById",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Connection"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Connection Not Found"
          }
        },
        "description": "Endpoint to retrieve back a Connection by ID. \n\nRequires Account-level privileges. ",
        "tags": [
          "Connection"
        ]
      }
    },
    "/orders/{id}/accounting-sync": {
      "parameters": [
        {
          "schema": {
            "type": "integer"
          },
          "name": "id",
          "in": "path",
          "required": true,
          "description": "id of order"
        }
      ],
      "patch": {
        "summary": "Sync Accounting for Order",
        "tags": [
          "Order"
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "operationId": "syncOrderAccounting",
        "description": "Update order as synced to external accounting system",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/OrderAccountingSyncRequest"
              }
            }
          }
        }
      }
    },
    "/webhhok/configurations": {
      "post": {
        "summary": "Create Webhook Configuration",
        "tags": [
          "Webhook"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WebhookConfiguration"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "operationId": "createWebhookConfiguration",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateWebhookConfigurationRequest"
              }
            }
          }
        },
        "x-internal": false,
        "description": "Creates a Webhook Configuration for an account"
      },
      "get": {
        "summary": "List Webhook Configurations for an account",
        "tags": [
          "Webhook"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/WebhookConfiguration"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "operationId": "listWebhookConfiguration",
        "parameters": [],
        "x-internal": false,
        "description": "Returns Webhook Configuration configured for an account. Requires account token."
      }
    },
    "/webhhok/configurations/{id}": {
      "parameters": [
        {
          "schema": {
            "type": "integer"
          },
          "name": "id",
          "in": "path",
          "required": true,
          "description": "Id of webhook configuration"
        }
      ],
      "get": {
        "summary": "Get Webhook",
        "tags": [
          "Webhook"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WebhookConfiguration"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "operationId": "getWebhookConfigurationById",
        "x-internal": false
      },
      "patch": {
        "summary": "Update Webhook Configuration",
        "operationId": "updateWebhookConfiguration",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WebhookConfiguration"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateWebhookConfigurationRequest"
              }
            }
          },
          "description": ""
        },
        "tags": [
          "Webhook"
        ],
        "description": "Update Webhook Configuration. Requires account token.",
        "x-internal": false
      }
    },
    "/webhook/configurations/{id}/event-logs": {
      "parameters": [
        {
          "schema": {
            "type": "integer"
          },
          "name": "id",
          "in": "path",
          "required": true,
          "description": "Id of webhook configuration"
        }
      ],
      "get": {
        "summary": "Get Webhook Configuration Event Logs",
        "description": "This endpoint will fetch back the event log against a webhook configuration",
        "tags": [
          "Webhook"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/WebhookLog"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "operationId": "getWebhookConfigurationLog",
        "parameters": [
          {
            "$ref": "#/components/parameters/page"
          },
          {
            "$ref": "#/components/parameters/pagesize"
          },
          {
            "schema": {
              "$ref": "#/components/schemas/WebhookDeliveryStatus"
            },
            "name": "webhookDeliveryStatus",
            "in": "query",
            "required": false
          }
        ]
      }
    },
    "/webhook/event/retry": {
      "post": {
        "summary": "Retry Webhook Event",
        "tags": [
          "Webhook"
        ],
        "responses": {
          "202": {
            "description": "Accepted"
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "operationId": "retryWebhookEvent",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RetryWebhookEventRequest"
              }
            }
          }
        },
        "x-internal": false,
        "description": "Retry a Webhook Event for an account"
      }
    },
    "/mapping-sets": {
      "get": {
        "summary": "Get Mapping Sets",
        "tags": [
          "MappingSet"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/MappingSet"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "operationId": "getMappingSets",
        "x-stoplight": {
          "id": "mbg3amc2tyfwk"
        },
        "parameters": [
          {
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 1
            },
            "in": "query",
            "name": "page"
          }
        ],
        "description": "Get a List of Mapping Sets. It will retrieve a maximum of 100 mapping sets with each request",
        "x-internal": false
      }
    },
    "/mapping-lists": {
      "get": {
        "summary": "Get Mapping Lists",
        "tags": [
          "MappingSet"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/MappingSet"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "operationId": "getMappingLists",
        "x-stoplight": {
          "id": "wp9ku6fak0ost"
        },
        "description": "Get a List of Mapping List. It will retrieve a maximum of 100 mapping lists with each request",
        "parameters": [
          {
            "schema": {
              "type": "integer",
              "default": 1,
              "format": "int32"
            },
            "in": "query",
            "name": "page"
          },
          {
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "in": "query",
            "name": "exclusionListForSourceId",
            "description": "Retrieve mapping lists for the given sourceId"
          }
        ],
        "x-internal": false
      }
    },
    "/listing/categories": {
      "parameters": [],
      "get": {
        "summary": "Get Listing Categories",
        "description": "This endpoint will fetch back a list of Listing Categories.",
        "tags": [
          "Listing"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "operationId": "getListingCategories",
        "parameters": [
          {
            "schema": {
              "type": "integer"
            },
            "in": "query",
            "name": "filterByChannelId",
            "description": "Retrieve categories of a specific channel"
          }
        ]
      }
    },
    "/product/category/orphaned": {
      "delete": {
        "summary": "Delete Orphaned Product Categories",
        "tags": [
          "Product"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeleteOrphanedCategoriesResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "operationId": "deleteOrphanedProductCategories",
        "description": "Delete all orphaned product categories for the account (categories with no products or variants associated)"
      }
    },
    "/listing/category/orphaned/channel": {
      "delete": {
        "summary": "Delete Orphaned Listing Categories For Channel",
        "tags": [
          "Listing"
        ],
        "parameters": [
          {
            "in": "query",
            "name": "channelId",
            "required": false,
            "schema": {
              "type": "integer"
            },
            "description": "The channel ID orphaned categories should be found and deleted from. When using a channel token nothing needs to be passed here. When using an account token the channel ID must be passed."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeleteOrphanedCategoriesResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden - Channel ID does not exist"
          }
        },
        "operationId": "deleteOrphanedListingCategoriesForChannel",
        "description": "Delete orphaned listing categories for a single channel (categories with no listing products associated). Accepts either an Account API Token or a Channel API Token; the caller must have access to the specified channel. Use this endpoint to retry cleanup for a single channel after a partial failure of the account-wide endpoint, or to target a specific channel known to have orphans."
      }
    }
  },
  "components": {
    "schemas": {
      "ResellerProductVariant": {
        "title": "ResellerProductVariant",
        "type": "object",
        "x-examples": {
          "example-full": {
            "id": 123,
            "account_id": 1,
            "channel_id": 1,
            "reseller_product_parent_id": 4512,
            "sku": "string",
            "price": 299,
            "sale_price": 199,
            "msrp": 0,
            "map": 0,
            "estimated_shipping_cost": 0,
            "estimated_dropship_fee": 0,
            "title": "string",
            "mpn": "string",
            "upc": "123456789012",
            "ean": "1234567890123",
            "asin": "string",
            "weight": 0,
            "length": 0,
            "width": 0,
            "height": 0,
            "weight_unit": "pound",
            "dimension_unit": "inch",
            "quantity": 0,
            "dimensional_weight": 0,
            "inserted_at": "2019-08-24T14:15:22Z",
            "updated_at": "2019-08-24T14:15:22Z",
            "option_values": [
              {
                "id": 0,
                "reseller_product_parent_option_id": 0,
                "name": "string",
                "value": "string"
              }
            ],
            "images": [
              {
                "id": 0,
                "reseller_product_variant_id": 0,
                "md5_checksum": "string",
                "url": "string",
                "sort_order": 0
              }
            ],
            "parent": {
              "id": 0,
              "account_id": 0,
              "channel_id": 0,
              "sku": "HG412312",
              "title": "The Big Shoe",
              "description": "string",
              "brand": "Nicefinds",
              "inserted_at": "2019-08-24T14:15:22Z",
              "updated_at": "2019-08-24T14:15:22Z",
              "images": [
                {
                  "id": 0,
                  "reseller_product_parent_id": 0,
                  "md5_checksum": "string",
                  "url": "string",
                  "sort_order": 0
                }
              ],
              "options": [
                {
                  "id": 0,
                  "reseller_product_parent_id": 0,
                  "name": "string"
                }
              ],
              "attributes": [
                {
                  "id": 0,
                  "reseller_product_parent_id": 0,
                  "name": "string",
                  "value": "string"
                }
              ],
              "variants": [
                {
                  "id": 123,
                  "account_id": 1,
                  "channel_id": 1,
                  "reseller_product_parent_id": 4512,
                  "sku": "string",
                  "price": 299,
                  "sale_price": 199,
                  "msrp": 0,
                  "map": 0,
                  "estimated_shipping_cost": 0,
                  "estimated_dropship_fee": 0,
                  "title": "string",
                  "mpn": "string",
                  "upc": "stringstring",
                  "ean": "stringstrings",
                  "asin": "string",
                  "weight": 0,
                  "length": 0,
                  "width": 0,
                  "height": 0,
                  "weight_unit": "pound",
                  "dimension_unit": "inch",
                  "quantity": 0,
                  "dimensional_weight": 0,
                  "inserted_at": "2019-08-24T14:15:22Z",
                  "updated_at": "2019-08-24T14:15:22Z",
                  "option_values": [
                    {
                      "id": 0,
                      "reseller_product_parent_option_id": 0,
                      "name": "string",
                      "value": "string"
                    }
                  ],
                  "images": [
                    {
                      "id": 0,
                      "reseller_product_variant_id": 0,
                      "md5_checksum": "string",
                      "url": "string",
                      "sort_order": 0
                    }
                  ],
                  "parent": {}
                }
              ],
              "category_one": {
                "id": 0,
                "name": "string",
                "parent_category_id": 0,
                "channel_id": 0,
                "inserted_at": "2019-08-24T14:15:22Z",
                "updated_at": "2019-08-24T14:15:22Z"
              },
              "category_two": {
                "id": 0,
                "name": "string",
                "parent_category_id": 0,
                "channel_id": 0,
                "inserted_at": "2019-08-24T14:15:22Z",
                "updated_at": "2019-08-24T14:15:22Z"
              },
              "category_three": {
                "id": 0,
                "name": "string",
                "parent_category_id": 0,
                "channel_id": 0,
                "inserted_at": "2019-08-24T14:15:22Z",
                "updated_at": "2019-08-24T14:15:22Z"
              }
            }
          },
          "example-minimum": {
            "id": 123,
            "account_id": 1,
            "channel_id": 1,
            "reseller_product_parent_id": 4512,
            "sku": "string",
            "price": 299,
            "sale_price": 199,
            "msrp": 0,
            "map": 0,
            "estimated_shipping_cost": 0,
            "estimated_dropship_fee": 0,
            "title": "string",
            "mpn": "string",
            "upc": "123456789012",
            "ean": "1234567890123",
            "asin": "string",
            "weight": 0,
            "length": 0,
            "width": 0,
            "height": 0,
            "weight_unit": "pound",
            "dimension_unit": "inch",
            "quantity": 0,
            "dimensional_weight": 0,
            "inserted_at": "2019-08-24T14:15:22Z",
            "updated_at": "2019-08-24T14:15:22Z",
            "option_values": [],
            "images": [],
            "parent": null
          }
        },
        "x-tags": [
          "Models"
        ],
        "properties": {
          "id": {
            "type": "integer",
            "description": "ID for the Variant",
            "example": 123,
            "format": "int32"
          },
          "account_id": {
            "type": "integer",
            "format": "int32",
            "example": 1,
            "description": "ID for the Account"
          },
          "channel_id": {
            "type": "integer",
            "format": "int32",
            "example": 1,
            "description": "ID for the Channel"
          },
          "reseller_product_parent_id": {
            "type": "integer",
            "format": "int32",
            "example": 4512,
            "description": "ID for the Parent"
          },
          "sku": {
            "type": "string",
            "description": "Unique Stock Keeping Unit for this Channel",
            "maxLength": 120
          },
          "price": {
            "type": "number",
            "example": 299,
            "description": "The \"Price\" of the Variant. When an order is placed, this field represents the price an item costs."
          },
          "sale_price": {
            "type": "number",
            "example": 199,
            "description": "A \"Sale Price\" for the Variant"
          },
          "msrp": {
            "type": "number",
            "description": "Manufacturer Suggested Retail Price"
          },
          "map": {
            "type": "number",
            "description": "Minimum Advertised Price"
          },
          "estimated_shipping_cost": {
            "type": "number",
            "description": "Represents an Estimated Shipping Cost (if provided)"
          },
          "estimated_dropship_fee": {
            "type": "number",
            "description": "Represents an estimated dropship fee (if provided)"
          },
          "title": {
            "type": "string"
          },
          "mpn": {
            "type": "string",
            "description": "Manufacturer Part Number"
          },
          "upc": {
            "type": "string",
            "minLength": 12,
            "maxLength": 12,
            "pattern": "^[0-9]+",
            "description": "Universal Product Code"
          },
          "ean": {
            "type": "string",
            "description": "Global Trade Item Number",
            "pattern": "^[0-9]+"
          },
          "asin": {
            "type": "string",
            "description": "Amazon \"ASIN\" Identifier"
          },
          "weight": {
            "type": "number"
          },
          "length": {
            "type": "number"
          },
          "width": {
            "type": "number"
          },
          "height": {
            "type": "number"
          },
          "weight_unit": {
            "type": "string",
            "enum": [
              "pound",
              "ounce",
              "gram",
              "kilogram"
            ],
            "description": "The unit for \"weight\""
          },
          "dimension_unit": {
            "type": "string",
            "enum": [
              "inch",
              "centimeter"
            ],
            "description": "The unit for \"length\", \"width\", and \"height\""
          },
          "quantity": {
            "type": "integer",
            "description": "The amount of inventory available to purchase"
          },
          "dimensional_weight": {
            "type": "number",
            "description": "Calculated Dimensional Weight (USPS Formula). Only present if all dimensions are present with a dimension unit"
          },
          "inserted_at": {
            "type": "string",
            "format": "date-time"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "Timestamp for the last time the variant had anything updated"
          },
          "option_values": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ResellerProductVariantOptionValue"
            }
          },
          "images": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ResellerProductVariantImage"
            }
          },
          "parent": {
            "$ref": "#/components/schemas/ResellerProductParent"
          },
          "description": {
            "type": "string",
            "x-stoplight": {
              "id": "itdoybgrk9tv0"
            }
          }
        },
        "required": [
          "channel_id",
          "reseller_product_parent_id",
          "sku"
        ]
      },
      "ResellerProductParent": {
        "title": "ResellerProductParent",
        "type": "object",
        "nullable": true,
        "x-examples": {
          "example-full": {
            "id": 0,
            "account_id": 0,
            "channel_id": 0,
            "sku": "HG412312",
            "title": "The Big Shoe",
            "description": "string",
            "brand": "Nicefinds",
            "inserted_at": "2019-08-24T14:15:22Z",
            "updated_at": "2019-08-24T14:15:22Z",
            "images": [
              {
                "id": 0,
                "reseller_product_parent_id": 0,
                "md5_checksum": "string",
                "url": "string",
                "sort_order": 0
              }
            ],
            "options": [
              {
                "id": 0,
                "reseller_product_parent_id": 0,
                "name": "string"
              }
            ],
            "attributes": [
              {
                "id": 0,
                "reseller_product_parent_id": 0,
                "name": "string",
                "value": "string"
              }
            ],
            "variants": [
              {
                "id": 123,
                "account_id": 1,
                "channel_id": 1,
                "reseller_product_parent_id": 4512,
                "sku": "string",
                "price": 299,
                "sale_price": 199,
                "msrp": 0,
                "map": 0,
                "estimated_shipping_cost": 0,
                "estimated_dropship_fee": 0,
                "title": "string",
                "mpn": "string",
                "upc": "123456789012",
                "ean": "1234567890123",
                "asin": "string",
                "weight": 0,
                "length": 0,
                "width": 0,
                "height": 0,
                "weight_unit": "pound",
                "dimension_unit": "inch",
                "quantity": 0,
                "dimensional_weight": 0,
                "inserted_at": "2019-08-24T14:15:22Z",
                "updated_at": "2019-08-24T14:15:22Z",
                "option_values": [
                  {
                    "id": 0,
                    "reseller_product_parent_option_id": 0,
                    "name": "string",
                    "value": "string"
                  }
                ],
                "images": [
                  {
                    "id": 0,
                    "reseller_product_variant_id": 0,
                    "md5_checksum": "string",
                    "url": "string",
                    "sort_order": 0
                  }
                ],
                "parent": {
                  "id": 0,
                  "account_id": 0,
                  "channel_id": 0,
                  "sku": "HG412312",
                  "title": "The Big Shoe",
                  "description": "string",
                  "brand": "Nicefinds",
                  "inserted_at": "2019-08-24T14:15:22Z",
                  "updated_at": "2019-08-24T14:15:22Z",
                  "images": [
                    {
                      "id": 0,
                      "reseller_product_parent_id": 0,
                      "md5_checksum": "string",
                      "url": "string",
                      "sort_order": 0
                    }
                  ],
                  "options": [
                    {
                      "id": 0,
                      "reseller_product_parent_id": 0,
                      "name": "string"
                    }
                  ],
                  "attributes": [
                    {
                      "id": 0,
                      "reseller_product_parent_id": 0,
                      "name": "string",
                      "value": "string"
                    }
                  ],
                  "variants": [
                    {}
                  ],
                  "category_one": {
                    "id": 0,
                    "name": "string",
                    "parent_category_id": 0,
                    "channel_id": 0,
                    "inserted_at": "2019-08-24T14:15:22Z",
                    "updated_at": "2019-08-24T14:15:22Z"
                  },
                  "category_two": {
                    "id": 0,
                    "name": "string",
                    "parent_category_id": 0,
                    "channel_id": 0,
                    "inserted_at": "2019-08-24T14:15:22Z",
                    "updated_at": "2019-08-24T14:15:22Z"
                  },
                  "category_three": {
                    "id": 0,
                    "name": "string",
                    "parent_category_id": 0,
                    "channel_id": 0,
                    "inserted_at": "2019-08-24T14:15:22Z",
                    "updated_at": "2019-08-24T14:15:22Z"
                  }
                }
              }
            ],
            "category_one": {
              "id": 0,
              "name": "string",
              "parent_category_id": 0,
              "channel_id": 0,
              "inserted_at": "2019-08-24T14:15:22Z",
              "updated_at": "2019-08-24T14:15:22Z"
            },
            "category_two": {
              "id": 0,
              "name": "string",
              "parent_category_id": 0,
              "channel_id": 0,
              "inserted_at": "2019-08-24T14:15:22Z",
              "updated_at": "2019-08-24T14:15:22Z"
            },
            "category_three": {
              "id": 0,
              "name": "string",
              "parent_category_id": 0,
              "channel_id": 0,
              "inserted_at": "2019-08-24T14:15:22Z",
              "updated_at": "2019-08-24T14:15:22Z"
            }
          },
          "example-minimum": {
            "id": 0,
            "account_id": 0,
            "channel_id": 0,
            "sku": "HG412312",
            "title": "The Big Shoe",
            "description": "string",
            "brand": "Nicefinds",
            "inserted_at": "2019-08-24T14:15:22Z",
            "updated_at": "2019-08-24T14:15:22Z",
            "images": [],
            "options": [],
            "attributes": [],
            "variants": [],
            "category_one": null,
            "category_two": null,
            "category_three": null
          }
        },
        "description": "",
        "properties": {
          "id": {
            "type": "integer"
          },
          "account_id": {
            "type": "integer"
          },
          "channel_id": {
            "type": "integer"
          },
          "sku": {
            "type": "string",
            "example": "HG412312",
            "maxLength": 240,
            "description": "Unique \"Stock Keeping Unit\" for the Parent. Although parents do not track \"stock\", they still have a unique identifier. Considered a \"grouping identifier\" for Variants."
          },
          "title": {
            "type": "string",
            "description": "Title of the parent. Titles may be further customized at the \"variant\" level if desired.",
            "example": "The Big Shoe"
          },
          "description": {
            "type": "string",
            "description": "The description. Longer, free-form, supports HTML"
          },
          "brand": {
            "type": "string",
            "example": "Nicefinds",
            "description": "Brand of the parent"
          },
          "inserted_at": {
            "type": "string",
            "format": "date-time"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          },
          "images": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ResellerProductParentImage"
            }
          },
          "options": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ResellerProductParentOption"
            }
          },
          "attributes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ResellerProductParentAttribute"
            }
          },
          "variants": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ResellerProductVariant"
            }
          },
          "category_one": {
            "$ref": "#/components/schemas/ResellerProductCategory"
          },
          "category_two": {
            "$ref": "#/components/schemas/ResellerProductCategory"
          },
          "category_three": {
            "$ref": "#/components/schemas/ResellerProductCategory"
          }
        },
        "required": [
          "account_id",
          "channel_id",
          "sku"
        ],
        "x-tags": [
          "Models"
        ]
      },
      "ResellerProductParentImage": {
        "title": "ResellerProductParentImage",
        "type": "object",
        "x-examples": {
          "example": {
            "id": 0,
            "reseller_product_parent_id": 0,
            "md5_checksum": "string",
            "url": "string",
            "sort_order": 0
          }
        },
        "properties": {
          "id": {
            "type": "integer"
          },
          "reseller_product_parent_id": {
            "type": "integer"
          },
          "md5_checksum": {
            "type": "string",
            "description": "A MD5 checksum of the image"
          },
          "url": {
            "type": "string",
            "description": "The URL for the image"
          },
          "sort_order": {
            "type": "integer"
          }
        },
        "x-tags": [
          "Models"
        ]
      },
      "ResellerProductVariantOptionValue": {
        "title": "ResellerProductVariantOption",
        "type": "object",
        "x-examples": {
          "example": {
            "id": 0,
            "reseller_product_parent_option_id": 0,
            "name": "Color",
            "value": "Red"
          }
        },
        "properties": {
          "id": {
            "type": "integer"
          },
          "reseller_product_parent_option_id": {
            "type": "integer"
          },
          "name": {
            "type": "string",
            "description": "(read only) provided via the Parent Option ID. For display purposes only"
          },
          "value": {
            "type": "string"
          }
        },
        "x-tags": [
          "Models"
        ]
      },
      "ResellerProductParentAttribute": {
        "title": "ResellerProductParentAttribute",
        "type": "object",
        "properties": {
          "id": {
            "type": "integer"
          },
          "reseller_product_parent_id": {
            "type": "integer"
          },
          "name": {
            "type": "string"
          },
          "value": {
            "type": "string"
          }
        },
        "x-examples": {
          "example": {
            "id": 0,
            "reseller_product_parent_id": 0,
            "name": "Material",
            "value": "Cotton"
          }
        },
        "x-tags": [
          "Models"
        ]
      },
      "ResellerProductParentOption": {
        "title": "ResellerProductParentOption",
        "type": "object",
        "properties": {
          "id": {
            "type": "integer"
          },
          "reseller_product_parent_id": {
            "type": "integer"
          },
          "name": {
            "type": "string"
          }
        },
        "x-examples": {
          "example": {
            "id": 0,
            "reseller_product_parent_id": 0,
            "name": "Color"
          }
        },
        "x-tags": [
          "Models"
        ]
      },
      "ResellerProductVariantImage": {
        "title": "ResellerProductVariantImage",
        "type": "object",
        "x-examples": {
          "example": {
            "id": 0,
            "reseller_product_variant_id": 0,
            "md5_checksum": "string",
            "url": "string",
            "sort_order": 0
          }
        },
        "properties": {
          "id": {
            "type": "integer"
          },
          "reseller_product_variant_id": {
            "type": "integer"
          },
          "md5_checksum": {
            "type": "string",
            "description": "A MD5 checksum of the image"
          },
          "url": {
            "type": "string",
            "description": "The URL for the image"
          },
          "sort_order": {
            "type": "integer"
          }
        },
        "x-tags": [
          "Models"
        ]
      },
      "ResellerProductCategory": {
        "title": "ResellerProductCategory",
        "type": "object",
        "nullable": true,
        "x-examples": {
          "example": {
            "id": 0,
            "name": "string",
            "parent_category_id": 0,
            "channel_id": 0,
            "inserted_at": "2019-08-24T14:15:22Z",
            "updated_at": "2019-08-24T14:15:22Z"
          }
        },
        "description": "",
        "properties": {
          "id": {
            "type": "integer"
          },
          "name": {
            "type": "string"
          },
          "parent_category_id": {
            "type": "integer"
          },
          "channel_id": {
            "type": "integer"
          },
          "inserted_at": {
            "type": "string",
            "format": "date-time"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          }
        },
        "x-tags": [
          "Models"
        ]
      },
      "ResellerProductDeleted": {
        "description": "This model reflects Products that have been delisted. \n\nIf \"all_variants_delisted\" is TRUE this means that all the variants of this parent are delisted. In most scenarios, you can disregard the \"variants\" array in this situation (as you will be deleting all variants associated to this parent). \n\nIf this flag is FALSE, this means you should check the \"variants\" to see which variants have been deleted and only delete those specific Variant IDs.",
        "type": "object",
        "x-examples": {
          "example-1": {
            "all_variants_deleted": true,
            "parent": {
              "id": 0,
              "sku": "string",
              "variants": [
                {
                  "sku": "string",
                  "id": 0
                }
              ]
            }
          }
        },
        "x-tags": [
          "Models"
        ],
        "properties": {
          "entire_product_deleted": {
            "type": "boolean",
            "description": "If this is TRUE then all variants & the parent have been deleted."
          },
          "deleted_at": {
            "type": "string",
            "format": "date-time"
          },
          "parent_id": {
            "type": "integer"
          },
          "variant_ids": {
            "type": "array",
            "items": {
              "type": "integer"
            }
          }
        }
      },
      "EventGroup": {
        "title": "EventGroup",
        "type": "object",
        "description": "A high level way of grouping related events (for example all Shopify related events)",
        "properties": {
          "id": {
            "type": "integer"
          },
          "name": {
            "type": "string"
          },
          "handle": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "name",
          "handle"
        ],
        "x-tags": [
          "Models"
        ]
      },
      "EventParam": {
        "title": "EventParam",
        "type": "object",
        "description": "A parameter that refines what event should be acted on.",
        "properties": {
          "name": {
            "type": "string"
          },
          "value": {
            "type": "integer"
          }
        },
        "required": [
          "name",
          "value"
        ],
        "x-tags": [
          "Models"
        ]
      },
      "RunWorkflowRequest": {
        "title": "RunWorkflowRequest",
        "type": "object",
        "description": "Run a workflow. You must either pass a `id` OR a `eventHandle` (with an optional list of `params`) in order to run the workflow.\n\nBy passing a value in `workflow` you are specifying that ",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "id": {
            "type": "integer",
            "description": "Only required if you are managing the ID externally. Otherwise the workflow can be resovled using the `eventHandle` + `params`."
          },
          "eventHandle": {
            "type": "string",
            "description": "The handle of the event."
          },
          "draft": {
            "type": "boolean",
            "default": false,
            "description": "Run against the draft version"
          },
          "params": {
            "type": "array",
            "description": "[Optional] A set of key/value pairs that are used to uniquely identify a workflow.",
            "items": {
              "$ref": "#/components/schemas/GetWorkflowRequestParam"
            }
          },
          "objects": {
            "type": "object",
            "description": "A Map of object handles to their values. Modifications will be applied directly to these and returned in the response."
          }
        },
        "required": [
          "objects"
        ],
        "x-internal": false
      },
      "UpdateInventoryVariantRequest": {
        "title": "UpdateInventoryVariantRequest",
        "type": "object",
        "description": "Request model used by the PUT /inventory/variants endpoint",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "inventoryVariantId": {
            "type": "integer",
            "format": "int64"
          },
          "sku": {
            "type": "string"
          },
          "cost": {
            "type": "number"
          },
          "msrp": {
            "type": "number"
          },
          "map": {
            "type": "number"
          },
          "quantity": {
            "type": "integer"
          },
          "shippingCost": {
            "type": "number"
          },
          "dropshipFee": {
            "type": "number"
          },
          "inventoryListPrice": {
            "type": "number"
          },
          "allowBackorders": {
            "type": "boolean"
          },
          "customAggregateFieldUpdates": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InventoryVariantCustomAggregateFieldCreateOrUpdate"
            }
          },
          "archived": {
            "type": "boolean",
            "description": "Optional parameter. Values of null will be treated as no change is requested."
          },
          "weight": {
            "type": "number"
          },
          "height": {
            "type": "number"
          },
          "width": {
            "type": "number"
          },
          "length": {
            "type": "number"
          },
          "weightUnit": {
            "$ref": "#/components/schemas/WeightUnit"
          },
          "dimensionUnit": {
            "$ref": "#/components/schemas/DimensionUnit"
          },
          "requiresFfl": {
            "type": "boolean",
            "description": "Indicate if FFL information will be required to fulfill this inventory variant"
          },
          "customFields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InventoryVariantCustomFieldCreateOrUpdate"
            }
          }
        },
        "required": [
          "inventoryVariantId",
          "sku"
        ]
      },
      "UpdateInventoryVariantResponse": {
        "title": "UpdateInventoryVariantResponse",
        "type": "object",
        "description": "Response object for update inventory variant endpoint",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "inventoryVariantId": {
            "type": "integer",
            "format": "int64"
          },
          "sku": {
            "type": "string"
          },
          "success": {
            "type": "boolean",
            "description": "Indicates whether the update was successful"
          },
          "message": {
            "type": "string",
            "description": "If the update was unsuccessful this will indicate why"
          }
        }
      },
      "MappingSetConvertResponse": {
        "title": "MappingSetConvertResponse",
        "type": "object",
        "description": "The result of applying a mapping set conversion to a fromValue",
        "properties": {
          "converted": {
            "type": "boolean"
          },
          "fromValue": {
            "type": "string"
          },
          "toValue": {
            "type": "string"
          }
        },
        "required": [
          "converted",
          "fromValue",
          "toValue"
        ],
        "x-tags": [
          "Models"
        ],
        "x-internal": false
      },
      "MappingSet": {
        "title": "MappingSet",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "required": [
          "name"
        ],
        "properties": {
          "id": {
            "type": "integer"
          },
          "accountId": {
            "type": "integer"
          },
          "createdByUserId": {
            "type": "integer"
          },
          "createdAt": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "totalItems": {
            "type": "integer"
          },
          "exclusionListForSourceId": {
            "type": "integer",
            "x-stoplight": {
              "id": "jblzwj73bmsv4"
            }
          },
          "exclusionType": {
            "description": "Required when 'exclusionListForSourceId' is provided. Specifies the type of exclusion being applied. Use 'sku', 'brand', or 'category'.",
            "type": "string",
            "enum": [
              "sku",
              "brand",
              "category"
            ]
          }
        }
      },
      "MappingSetItem": {
        "title": "MappingSetItem",
        "type": "object",
        "properties": {
          "id": {
            "type": "integer"
          },
          "mappingSetId": {
            "type": "integer"
          },
          "createdByUserId": {
            "type": "integer"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "fromValue": {
            "type": "string"
          },
          "toValue": {
            "type": "string"
          }
        },
        "required": [
          "fromValue"
        ],
        "x-tags": [
          "Models"
        ]
      },
      "MappingField": {
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "id": {
            "type": "integer"
          },
          "accountId": {
            "type": "integer"
          },
          "mappingEventId": {
            "type": "integer"
          },
          "mappingFieldTypeId": {
            "type": "integer"
          },
          "toGlobalObjectFieldId": {
            "type": "integer"
          },
          "fromGlobalObjectFieldId": {
            "type": "integer"
          },
          "rawValue": {
            "type": "string"
          },
          "mappingSetId": {
            "type": "integer"
          },
          "mappingSetNoMatchUseValue": {
            "type": "boolean"
          },
          "mappingSetNoMatchValue": {
            "type": "string"
          },
          "toHeader": {
            "type": "string"
          },
          "fromHeader": {
            "type": "string"
          },
          "sortOrder": {
            "type": "integer"
          },
          "attributeName": {
            "type": "string"
          },
          "customFieldName": {
            "type": "string"
          },
          "optionName": {
            "type": "string"
          },
          "imagePosition": {
            "type": "integer"
          },
          "dateFormat": {
            "type": "string"
          },
          "useCommaDecimalSeparator": {
            "type": "boolean"
          },
          "mappingFieldType": {
            "$ref": "#/components/schemas/MappingFieldType"
          },
          "rules": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MappingFieldRule"
            }
          },
          "customAggregateFieldHandle": {
            "type": "string",
            "description": "Populate with CAF handle when mapping from a CAF"
          }
        },
        "required": [
          "mappingFieldTypeId",
          "mappingFieldType"
        ]
      },
      "MappingFieldType": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer"
          },
          "handle": {
            "type": "string",
            "enum": [
              "empty",
              "field",
              "value",
              "header",
              "mapping_set",
              "option",
              "direct_copy"
            ]
          },
          "name": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "handle",
          "name"
        ],
        "x-tags": [
          "Models"
        ]
      },
      "GlobalObjectField": {
        "type": "object",
        "required": [
          "id",
          "globalObjectId",
          "globalDataTypeId",
          "name",
          "handle",
          "fieldName",
          "getter"
        ],
        "properties": {
          "id": {
            "type": "integer"
          },
          "globalObjectId": {
            "type": "integer"
          },
          "globalObjectFieldGroupId": {
            "type": "integer"
          },
          "globalDataTypeId": {
            "type": "integer"
          },
          "name": {
            "type": "string"
          },
          "handle": {
            "type": "string"
          },
          "fieldName": {
            "type": "string"
          },
          "getter": {
            "type": "string"
          },
          "setter": {
            "type": "string"
          },
          "readable": {
            "type": "boolean"
          },
          "writable": {
            "type": "boolean"
          },
          "fileBasedEventsOnly": {
            "type": "boolean",
            "description": "This field can only be used in the context of a event (`Event`) that supports inbound/outbound file based operations"
          },
          "options": {
            "type": "string"
          },
          "globalDataTypeFilterId": {
            "type": "integer"
          },
          "mappingTemplateDescription": {
            "type": "string"
          },
          "groupFieldSortOrder": {
            "type": "integer"
          },
          "requiredForEvent": {
            "type": "boolean",
            "description": "This value changes relative to the event the field is being used in and dictates whether or not the field is required (has a non-null value). If this value is `null` then the field was not fetched in the context of a specific event."
          },
          "globalDataType": {
            "$ref": "#/components/schemas/GlobalDataType"
          },
          "multipleAvailableForEvent": {
            "type": "boolean",
            "description": "This value changes relative to the event the global object field is being used in and dictates whether more than one of these fields is available (ie an array of them). If this value is `null` then the field was not fetched in the context of a specific event."
          },
          "connectToCustomFieldName": {
            "type": "string",
            "description": "Used to setup default connections between standard listing variants custom fields to channel specific listing variant fields for use in automatic data propagation without the need to do additional configuration within mapping templates. "
          }
        },
        "x-tags": [
          "Models"
        ]
      },
      "GlobalObjectFieldGroup": {
        "type": "object",
        "required": [
          "handle"
        ],
        "properties": {
          "id": {
            "type": "integer"
          },
          "name": {
            "type": "string"
          },
          "handle": {
            "type": "string"
          },
          "groupSortOrder": {
            "type": "integer"
          }
        },
        "x-tags": [
          "Models"
        ]
      },
      "GlobalObjectFieldClassification": {
        "type": "object",
        "required": [
          "handle"
        ],
        "properties": {
          "id": {
            "type": "integer"
          },
          "name": {
            "type": "string"
          },
          "handle": {
            "type": "string"
          }
        },
        "x-tags": [
          "Models"
        ]
      },
      "GlobalDataType": {
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "id": {
            "type": "integer"
          },
          "name": {
            "type": "string"
          },
          "handle": {
            "type": "string",
            "enum": [
              "string",
              "number",
              "boolean",
              "numeric_options",
              "custom_action",
              "array",
              "inherited",
              "date",
              "attributes",
              "string_options",
              "custom_fields",
              "category_copy",
              "custom_aggregate_fields",
              "images",
              "variant_options",
              "tags",
              "builder_action",
              "category_in_list"
            ]
          }
        },
        "required": [
          "id",
          "name",
          "handle"
        ]
      },
      "MappingFieldRule": {
        "type": "object",
        "required": [
          "mappingRuleId"
        ],
        "properties": {
          "id": {
            "type": "integer"
          },
          "mappingFieldId": {
            "type": "integer"
          },
          "mappingRuleId": {
            "type": "integer"
          },
          "mappingSetId": {
            "type": "integer"
          },
          "sortOrder": {
            "type": "integer"
          }
        },
        "x-tags": [
          "Models"
        ]
      },
      "RunMappingTemplateRequest": {
        "title": "RunMappingTemplateRequest",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "mappingEventId": {
            "type": "integer"
          },
          "fromObjects": {
            "type": "object",
            "additionalProperties": {
              "type": "object"
            },
            "minProperties": 1
          },
          "toObjects": {
            "type": "object",
            "additionalProperties": {
              "type": "object"
            },
            "minProperties": 1
          },
          "options": {
            "type": "object",
            "properties": {
              "skipNonExistentMethods": {
                "type": "boolean"
              },
              "omitNulls": {
                "type": "boolean"
              },
              "skipFieldHandles": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "onlyRunFieldHandles": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "skipObjectHandles": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "onlyRunObjectHandles": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "customHandlers": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/RunMappingTemplateRequestCustomHandlers"
                }
              }
            }
          }
        },
        "required": [
          "mappingEventId",
          "fromObjects",
          "toObjects"
        ],
        "description": ""
      },
      "CopyMappingTemplateRequest": {
        "title": "CopyMappingTemplateRequest",
        "x-stoplight": {
          "id": "22vsx9h88vy86"
        },
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "mappingEventId": {
            "type": "integer"
          }
        },
        "required": [
          "mappingEventId"
        ]
      },
      "RunMappingTemplateRequestCustomHandlers": {
        "title": "RunMappingTemplateRequestCustomHandlers",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "fieldHandleExact": {
            "type": "string"
          },
          "fieldHandleMatchesRegExp": {
            "type": "string"
          }
        }
      },
      "RunMappingTemplateResponse": {
        "title": "RunMappingTemplateResponse",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "fromObjects": {
            "type": "object",
            "additionalProperties": {
              "type": "object"
            },
            "minProperties": 1
          },
          "toObjects": {
            "type": "object",
            "additionalProperties": {
              "type": "object"
            },
            "minProperties": 1
          },
          "customHandlers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RunMappingTemplateResponseCustomHandlers"
            }
          }
        },
        "required": [
          "fromObjects",
          "toObjects"
        ]
      },
      "RunMappingTemplateResponseCustomHandlers": {
        "title": "RunMappingTemplateResponseCustomHandlers",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "mappingField": {
            "$ref": "#/components/schemas/MappingField"
          },
          "value": {
            "type": "object"
          }
        }
      },
      "Workflow": {
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "id": {
            "type": "integer",
            "description": "Generated on your behalf when first creating a workflow. Should not be provided unless the workflow was previously saved & you are modifying a version of the workflow that was directly fetched from the system.\n\n`null` values are never allowed here.\n\nBy providing a non-null value here you are indiciating this workflow exists and should be updated. If the provided ID does not exist a `404` error will be returned."
          },
          "eventId": {
            "type": "integer"
          },
          "draft": {
            "type": "boolean",
            "description": "Is this the draft version of the workflow",
            "default": false
          },
          "params": {
            "type": "array",
            "description": "Used to find workflows by unique key/value pairs so that IDs do not need to be externally managed.",
            "items": {
              "$ref": "#/components/schemas/GetWorkflowRequestParam"
            }
          },
          "rules": {
            "type": "array",
            "description": "The rules of the workflow that are responsible for checking IF and HOW modifications should be applied to `GlobalObjects` and their `GlobalObjectFields`.",
            "items": {
              "$ref": "#/components/schemas/WorkflowRule"
            }
          },
          "fieldsUsedBySetToField": {
            "type": "array"
          },
          "fieldsUsedByFormulas": {
            "type": "array"
          }
        },
        "required": [
          "id",
          "eventHandle"
        ],
        "description": "",
        "title": ""
      },
      "WorkflowRule": {
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "id": {
            "type": "integer",
            "description": "Generated on your behalf when first creating a rule."
          },
          "name": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "rank": {
            "type": "integer",
            "description": "The order/rank in which rules are run. Very important as order matters since each rule has the potential to modify data."
          },
          "workflowRuleTypeId": {
            "type": "integer",
            "description": "The ID of the `WorkflowRuleType` of this rule."
          },
          "alwaysRun": {
            "type": "boolean",
            "description": "When set to `true` all `groups` & `conditions` are ignored and the rule will always have its a`actions` run.",
            "default": false
          },
          "configured": {
            "type": "boolean",
            "description": "Whether the rule is configured correctly. To be considered configured the rule must have at least 1 action and 1 condition (or be set to always run)."
          },
          "groups": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/WorkflowRuleGroup"
            }
          },
          "actions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/WorkflowRuleAction"
            }
          },
          "childRules": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/WorkflowRule"
            }
          },
          "workflowRuleType": {
            "$ref": "#/components/schemas/WorkflowRuleType"
          },
          "enabled": {
            "type": "boolean",
            "description": "identifies whether the workflow rule is enabled"
          },
          "tierData": {
            "type": "string",
            "description": "Stores data needed to run new style tier rules set from enterprise accounts"
          },
          "createdByUserId": {
            "type": "integer",
            "description": "ID of the user who created this rule"
          },
          "modifiedByUserId": {
            "type": "integer",
            "description": "ID of the user who last modified this rule"
          }
        },
        "required": [
          "name",
          "workflowRuleTypeId",
          "alwaysRun",
          "groups",
          "actions"
        ]
      },
      "WorkflowRuleGroup": {
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "id": {
            "type": "integer",
            "description": "Generated on your behalf when first creating a rule group."
          },
          "rank": {
            "type": "integer",
            "description": "The order/rank in which groups are run"
          },
          "conditions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/WorkflowRuleGroupCondition"
            }
          }
        },
        "required": [
          "conditions"
        ]
      },
      "WorkflowRuleGroupCondition": {
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "id": {
            "type": "integer",
            "description": "Generated on your behalf when first creating a condition."
          },
          "rank": {
            "type": "integer",
            "description": "The order/rank in which conditions are run"
          },
          "globalObjectFieldId": {
            "type": "integer",
            "description": "The ID of the `GlobalObjectField` that provides the data this rule runs against."
          },
          "workflowDataTypeComparatorId": {
            "type": "integer",
            "description": "The ID of the `WorkflowDataTypeComparator` this rule uses as a basis to perform a condition with."
          },
          "condition": {
            "type": "string",
            "description": "For most standard rules the primary data condition that is used in conjunction with the comparator will be stored here."
          },
          "condition2": {
            "type": "string"
          },
          "condition3": {
            "type": "string"
          },
          "condition4": {
            "type": "string"
          },
          "fieldArrayMustMatchAll": {
            "type": "boolean",
            "default": false,
            "description": "When the field this condition operates on for the particular event is provided as an array of data rather than a singleton setting this to `true` means that all fields in that list must be truthy in order for the condition to be truthy. Otherwise only 1 of the fields in the list must be truthy to have the condition pass."
          },
          "conditionArrayMustMatchAll": {
            "type": "boolean",
            "default": false,
            "description": "When the data this condition operates on for the particular event is provided as an array of data rather than a singleton setting this to `true` means that all data in that list must be truthy in order for the condition to be truthy. Otherwise only 1 of the datums in the list must be truthy to have the condition pass."
          },
          "preModifierDataTypeComparatorId": {
            "type": "integer"
          },
          "metaData": {
            "type": "string",
            "description": "This is a JSON encoded string that is used to provide & store context relating to rules that do not fit within the bounds of standard rules."
          },
          "childConditions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/WorkflowRuleGroupCondition"
            }
          },
          "workflowDataTypeComparator": {
            "$ref": "#/components/schemas/WorkflowDataTypeComparator"
          },
          "preModifierDataTypeComparator": {
            "$ref": "#/components/schemas/WorkflowDataTypeComparator"
          }
        }
      },
      "WorkflowDataTypeComparator": {
        "type": "object",
        "required": [
          "id",
          "globalDataTypeId",
          "name",
          "handle",
          "usesOtherField"
        ],
        "properties": {
          "id": {
            "type": "integer"
          },
          "globalDataTypeId": {
            "type": "integer"
          },
          "name": {
            "type": "string"
          },
          "handle": {
            "type": "string",
            "enum": [
              "array_empty",
              "array_not_empty",
              "array_size_equals",
              "array_size_greater_than",
              "array_size_less_than",
              "attributes_default",
              "boolean_equal_to",
              "custom_aggregate_field_default",
              "custom_fields_default",
              "date_older_than",
              "date_within_last",
              "date_greater_than",
              "date_greater_than_equals",
              "date_older_than_equals",
              "decimal_place_value",
              "equal_to",
              "equal_to_field",
              "greater_than",
              "greater_than_equal_to",
              "greater_than_equal_to_field",
              "greater_than_field",
              "less_than",
              "less_than_equal_to",
              "less_than_equal_to_field",
              "less_than_field",
              "number_does_not_exist",
              "number_exists",
              "option_equal_to",
              "option_not_equal_to",
              "percent_greater_than_equal_to_field",
              "percent_greater_than_field",
              "percent_less_than_equal_to_field",
              "percent_less_than_field",
              "string_contains",
              "string_contains_case_sensitive",
              "string_does_not_exist",
              "string_ends_with",
              "string_ends_with_case_sensitive",
              "string_equals_field",
              "string_equals_field_case_sensitive",
              "string_equal_to",
              "string_equal_to_case_sensitive",
              "string_exists",
              "string_length",
              "string_not_contains",
              "string_not_contains_case_sensitive",
              "string_not_ends_with",
              "string_not_ends_with_case_sensitive",
              "string_not_equals_field",
              "string_not_equals_field_case_sensitive",
              "string_not_equal_to",
              "string_not_equal_to_case_sensitive",
              "string_not_starts_with",
              "string_not_starts_with_case_sensitive",
              "string_occurrence_of_character",
              "string_option_equal_to",
              "string_option_not_equal_to",
              "string_starts_with",
              "string_starts_with_case_sensitive",
              "variant_options_default",
              "string_in_list",
              "string_not_in_list",
              "string_in_list_case_sensitive",
              "string_not_in_list_case_sensitive",
              "tag_contains",
              "tag_does_not_contains",
              "category_in_list"
            ]
          },
          "hideInput": {
            "type": "boolean"
          },
          "usesOtherField": {
            "type": "boolean"
          },
          "preModifier": {
            "type": "boolean"
          },
          "preModifierResultGlobalDataTypeId": {
            "type": "integer"
          },
          "usesList": {
            "type": "boolean"
          }
        },
        "x-tags": [
          "Models"
        ]
      },
      "WorkflowRuleAction": {
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "id": {
            "type": "integer",
            "description": "Generated on your behalf when first creating a action."
          },
          "globalObjectFieldId": {
            "type": "integer",
            "description": "The ID of the `GlobalObjectField` this action will apply a transformation to."
          },
          "workflowDataTypeActionId": {
            "type": "integer",
            "description": "The ID of the `WorkflowDataTypeAction` that this action applys as a transformation/modification to a field."
          },
          "value": {
            "type": "string",
            "description": "If the action type uses data indicated by the user to apply its transformations those values will be supplier here. "
          },
          "value2": {
            "type": "string"
          },
          "value3": {
            "type": "string"
          },
          "value4": {
            "type": "string"
          },
          "rank": {
            "type": "integer",
            "description": "The order/rank in which actions are run. Very important as order matters since each action has the potential to modify data."
          },
          "workflowDataTypeAction": {
            "$ref": "#/components/schemas/WorkflowDataTypeAction"
          },
          "metaData": {
            "type": "string",
            "description": "If non-null a JSON object containing meta data related to executing the action"
          },
          "usesOtherFieldScope": {
            "type": "string",
            "description": "When using actions that depend on the values of other fields & objects this will control which objects are used to take values from.",
            "enum": [
              "all",
              "filtered",
              "correlated"
            ]
          },
          "applyToMatchedOnly": {
            "type": "boolean",
            "description": "When true, the action is applied only to elements that satisfy the rule conditions. When false or not provided, the action is applied to all elements."
          },
          "childActions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/WorkflowRuleAction"
            }
          },
          "headerName": {
            "type": "string",
            "x-stoplight": {
              "id": "bel4mdlqhmiqg"
            }
          }
        },
        "required": [
          "globalObjectFieldId",
          "workflowDataTypeActionId"
        ]
      },
      "WorkflowDataTypeAction": {
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "id": {
            "type": "integer"
          },
          "name": {
            "type": "string"
          },
          "handle": {
            "type": "string",
            "enum": [
              "add",
              "add_field",
              "all_po_line_items_custom_fields_to_text",
              "append_as_sentence",
              "apply_custom_action",
              "attribute_add",
              "attribute_modify",
              "attribute_remove",
              "attributes_to_html",
              "capitalize_each_word",
              "custom_aggregate_field_add",
              "custom_aggregate_field_modify",
              "custom_aggregate_field_remove",
              "custom_field_add",
              "custom_field_modify",
              "custom_field_remove",
              "decode_html",
              "divide_by",
              "divide_by_field",
              "left_pad",
              "lowercase",
              "multiply",
              "multiply_by_field",
              "option_set",
              "percent_change",
              "po_custom_fields_to_text",
              "postfix",
              "postfix_with_field",
              "prefix",
              "prefix_with_field",
              "replace",
              "replace_case_sensitive",
              "replace_character_at_index",
              "replace_character_occurrence",
              "right_pad",
              "sentence_case",
              "set",
              "set_decimal",
              "set_to_empty",
              "set_to_field",
              "split_by_value",
              "substring",
              "subtract",
              "subtract_field",
              "trim",
              "uppercase",
              "variant_option_add",
              "variant_option_modify",
              "variant_option_remove",
              "set_ones_place_value_to",
              "mapping_set"
            ]
          },
          "hideInput": {
            "type": "boolean"
          },
          "usesOtherField": {
            "type": "boolean"
          },
          "formula": {
            "type": "boolean"
          },
          "globalDataTypeId": {
            "type": "integer"
          },
          "formulaCanRunAgainstGlobalObjectIds": {
            "type": "array",
            "description": "If `formula=true` then this will be a list of `GlobalObject.id` that the formula can be applied against.",
            "items": {
              "type": "integer"
            }
          },
          "globalDataTypeFilterIds": {
            "type": "array",
            "description": "Certain `GlobalObjectField`'s such as ones for quantities may wish to further restrict what types of actions they are allowed to run against. Actions that support this type of additional filtering will have the IDs of the filter types set here. The IDs in this array will correspond to the `GlobalObjectField.globalDataTypeFilterId` field.",
            "items": {
              "type": "integer"
            }
          }
        },
        "required": [
          "id",
          "name",
          "handle",
          "usesOtherField",
          "formula"
        ]
      },
      "WorkflowRuleType": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer"
          },
          "handle": {
            "type": "string",
            "enum": [
              "conditional",
              "tier"
            ]
          },
          "name": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "handle",
          "name"
        ],
        "x-tags": [
          "Models"
        ]
      },
      "UpdateWorkflow": {
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "id": {
            "type": "integer",
            "description": "Generated on your behalf when first creating a workflow."
          },
          "draft": {
            "type": "boolean",
            "default": false,
            "description": "This value WILL NOT be modified and is only used to indicate whether or not this request is to update the draft version of the workflow"
          },
          "rules": {
            "type": "array",
            "description": "The rules of the workflow that are responsible for checking IF and HOW modifications should be applied to `GlobalObjects` and their `GlobalObjectFields`.",
            "items": {
              "$ref": "#/components/schemas/UpdateOrCreateWorkflowRule"
            }
          }
        },
        "required": [
          "id"
        ]
      },
      "UpdateOrCreateWorkflowRule": {
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "id": {
            "type": "integer",
            "description": "Generated on your behalf when first creating a rule. Should not be provided unless the rule was previously saved & you are modifying a version of the rule that was directly fetched from the system.\n\nBy providing a `null` value here you are indicating a rule should be created.\n\nBy providing a non-null value here you are indicating this rule exists within the `UpdateOrCreateWorkflow` already and should be updated. If the provided ID does not exist in the `UpdateOrCreateWorkflow` already a `400` error wil be thrown"
          },
          "name": {
            "type": "string",
            "description": "The name of the rule, will be updated to whatever is provided."
          },
          "workflowRuleTypeId": {
            "type": "integer",
            "description": "The ID of the `WorkflowRuleType` of this rule."
          },
          "alwaysRun": {
            "type": "boolean",
            "description": "When set to `true` all `groups` & `conditions` are ignored and the rule will always have its a`actions` run.",
            "default": false
          },
          "enabled": {
            "type": "boolean",
            "description": "Whether the workflow rule is enabled and should run."
          },
          "groups": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UpdateOrCreateWorkflowRuleGroup"
            }
          },
          "actions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UpdateOrCreateWorkflowRuleAction"
            }
          },
          "childRules": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UpdateOrCreateWorkflowRule"
            }
          },
          "tierData": {
            "type": "string",
            "description": "Stores data needed to run new style tier rules set from enterprise accounts"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "name",
          "workflowRuleTypeId",
          "alwaysRun",
          "groups",
          "actions"
        ]
      },
      "UpdateOrCreateWorkflowRuleGroup": {
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "id": {
            "type": "integer",
            "description": "Generated on your behalf when first creating a rule group. Should not be provided unless the rule group was previously saved & you are modifying a version of the rule group that was directly fetched from the system.\n\nBy providing a `null` value here you are indiciating a rule should be created.\n\nBy providing a non-null value here you are indicating this rule group exists within the `UpdateOrCreateWorkflowRule` already and should be updated. If the provided ID does not exist in the `UpdateOrCreateWorkflowRule` already a `400` error wil be thrown"
          },
          "conditions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UpdateOrCreateWorkflowCondition"
            }
          }
        },
        "required": [
          "conditions"
        ]
      },
      "UpdateOrCreateWorkflowCondition": {
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "id": {
            "type": "integer",
            "description": "Leave as `null` in order to create a new condition. If provided with an ID that does not belong to the existing rule a `400` error will be returned."
          },
          "globalObjectFieldId": {
            "type": "integer",
            "description": "The ID of the `GlobalObjectField` that provides the data this rule runs against."
          },
          "workflowDataTypeComparatorId": {
            "type": "integer",
            "description": "The ID of the `WorkflowDataTypeComparator` this rule uses as a basis to perform a condition with."
          },
          "condition": {
            "type": "string",
            "description": "For most standard rules the primary data condition that is used in conjunction with the comparator will be stored here."
          },
          "condition2": {
            "type": "string"
          },
          "condition3": {
            "type": "string"
          },
          "condition4": {
            "type": "string"
          },
          "fieldArrayMustMatchAll": {
            "type": "boolean",
            "default": false,
            "description": "When the field this condition operates on for the particular event is provided as an array of data rather than a singleton setting this to `true` means that all fields in that list must be truthy in order for the condition to be truthy. Otherwise only 1 of the fields in the list must be truthy to have the condition pass."
          },
          "conditionArrayMustMatchAll": {
            "type": "boolean",
            "default": false,
            "description": "When the data this condition operates on for the particular event is provided as an array of data rather than a singleton setting this to `true` means that all data in that list must be truthy in order for the condition to be truthy. Otherwise only 1 of the datums in the list must be truthy to have the condition pass."
          },
          "preModifierDataTypeComparatorId": {
            "type": "integer"
          },
          "metaData": {
            "type": "string",
            "description": "This is a JSON encoded string that is used to provide & store context relating to rules that do not fit within the bounds of standard rules."
          },
          "childConditions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UpdateOrCreateWorkflowCondition"
            }
          }
        },
        "required": [
          "globalObjectFieldId",
          "workflowDataTypeComparatorId"
        ]
      },
      "UpdateOrCreateWorkflowRuleAction": {
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "id": {
            "type": "integer",
            "description": "Generated on your behalf when first creating a action. Should not be provided unless the action was previously saved & you are modifying a version of the action that was directly fetched from the system.\n\nBy providing a `null` value here you are indicating this action should be created.\n\nBy providing a non-null value here you are indiciting this action exists within the `UpdateOrCreateWorkflowRule` already and should be updated. If the provided ID does not exist in the `UpdateOrCreateWorkflowRule` already a `400` error wil be thrown"
          },
          "globalObjectFieldId": {
            "type": "integer",
            "description": "The ID of the `GlobalObjectField` this action will apply a transformation to."
          },
          "workflowDataTypeActionId": {
            "type": "integer",
            "description": "The ID of the `WorkflowDataTypeAction` that this action applys as a transformation/modification to a field."
          },
          "value": {
            "type": "string",
            "description": "If the action type uses data indicated by the user to apply its transformations those values will be supplier here. "
          },
          "value2": {
            "type": "string"
          },
          "value3": {
            "type": "string"
          },
          "value4": {
            "type": "string"
          },
          "metaData": {
            "type": "string"
          },
          "usesOtherFieldScope": {
            "type": "string",
            "description": "When using actions that depend on the values of other fields & objects this will control which objects are used to take values from.",
            "enum": [
              "all",
              "filtered",
              "correlated"
            ]
          },
          "applyToMatchedOnly": {
            "type": "boolean",
            "description": "When true, the action is applied only to elements that satisfy the rule conditions. When false or not provided, the action is applied to all elements."
          },
          "childActions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UpdateOrCreateWorkflowRuleAction"
            }
          },
          "headerName": {
            "type": "string",
            "x-stoplight": {
              "id": "84qjwe3j8zes2"
            }
          }
        },
        "required": [
          "globalObjectFieldId",
          "workflowDataTypeActionId"
        ]
      },
      "MappingRule": {
        "type": "object",
        "required": [
          "id",
          "eventId",
          "useOriginalInputValue",
          "globalDataTypeId",
          "rule",
          "fieldsUsedBySetToField",
          "fieldsUsedByFormulas"
        ],
        "properties": {
          "id": {
            "type": "integer",
            "description": "Generated on your behalf when first creating a mapping rule."
          },
          "name": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "eventId": {
            "type": "integer",
            "description": "The ID of the event this mapping rule is run within. Important as this dictates what `GlobalObjects` & `GlobalObjectFields` are allowed to be saved to the rule."
          },
          "useOriginalInputValue": {
            "type": "boolean",
            "description": "Whether the rules contain within this mapping rules should start their operations on the result of previous rules or on the basis of the original value provided by the mapping template"
          },
          "globalObjectFieldId": {
            "type": "integer",
            "description": "The ID of the `GlobalObjectField` that this rule assigns to."
          },
          "globalDataTypeId": {
            "type": "integer",
            "description": "The ID of the `GlobalDataType` that this rule runs against."
          },
          "workflowRuleTypeId": {
            "type": "integer",
            "description": "The ID of the `WorkflowRuleType` for this rule. This value will always match the same property on the workflow rule (`rule` property)"
          },
          "configured": {
            "type": "boolean",
            "description": "Whether or not the workflow rule (`rule` property) is configured correctly and can be used in mapping templates."
          },
          "globalDataType": {
            "$ref": "#/components/schemas/GlobalDataType"
          },
          "rule": {
            "$ref": "#/components/schemas/WorkflowRule"
          },
          "fieldsUsedBySetToField": {
            "type": "array"
          },
          "fieldsUsedByFormulas": {
            "type": "array"
          }
        },
        "title": "",
        "x-tags": [
          "Models"
        ]
      },
      "UpdateOrCreateMappingRule": {
        "type": "object",
        "required": [
          "name",
          "description",
          "eventId",
          "useOriginalInputValue",
          "globalDataTypeId",
          "rule"
        ],
        "properties": {
          "id": {
            "type": "integer",
            "description": "If null this rule will be created, if non-null then the exist rule will be updated"
          },
          "name": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "eventId": {
            "type": "integer",
            "description": "The ID of the event this mapping rule is run within. This value cannot be changed after the rule is created."
          },
          "useOriginalInputValue": {
            "type": "boolean",
            "description": "Whether the rules contain within this mapping rules should start their operations on the result of previous rules or on the basis of the original value provided by the mapping template"
          },
          "globalObjectFieldId": {
            "type": "integer",
            "description": "The ID of the `GlobalObjectField` that this rule assigns to. This value cannot be changed after the rule is created."
          },
          "globalDataTypeId": {
            "type": "integer",
            "description": "The ID of the `GlobalDataType` that this rule runs against. This value cannot be changed after the rule is created."
          },
          "rule": {
            "$ref": "#/components/schemas/UpdateOrCreateWorkflowRule"
          }
        },
        "title": "",
        "x-tags": [
          "Models"
        ]
      },
      "RunWorkflowRuleRequest": {
        "title": "RunWorkflowMappingRuleRequest",
        "type": "object",
        "description": "",
        "properties": {
          "mappingRuleIds": {
            "type": "array",
            "description": "The workflow rule ids to run (will be run in the order passed)",
            "items": {
              "type": "integer"
            }
          },
          "objects": {
            "type": "object",
            "minProperties": 1
          },
          "value": {
            "type": "object"
          }
        },
        "required": [
          "mappingRuleIds",
          "objects"
        ],
        "x-tags": [
          "Models"
        ]
      },
      "TestDateFormatResponse": {
        "title": "TestDateFormatResponse",
        "type": "object",
        "description": "",
        "properties": {
          "formattedDate": {
            "type": "string",
            "description": "The current date time as a string with the applied format"
          }
        },
        "required": [
          "formattedDate"
        ],
        "x-tags": [
          "Models"
        ]
      },
      "InventoryParent": {
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "sourceId": {
            "type": "integer",
            "x-diff-exclusion": true
          },
          "restricted": {
            "type": "boolean",
            "x-diff-exclusion": true
          },
          "variantCount": {
            "type": "integer",
            "x-diff-exclusion": true
          },
          "id": {
            "type": "integer",
            "x-diff-exclusion": true
          },
          "accountId": {
            "type": "integer",
            "x-diff-exclusion": true
          },
          "sku": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "manufacturer": {
            "type": "string"
          },
          "insertedAt": {
            "type": "string",
            "format": "date-time",
            "x-diff-exclusion": true
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time",
            "x-diff-exclusion": true
          },
          "archived": {
            "type": "boolean"
          },
          "categoryOne": {
            "$ref": "#/components/schemas/InventoryCategory"
          },
          "categoryTwo": {
            "$ref": "#/components/schemas/InventoryCategory"
          },
          "categoryThree": {
            "$ref": "#/components/schemas/InventoryCategory"
          },
          "images": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InventoryImage"
            }
          },
          "options": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InventoryParentOption"
            }
          },
          "attributes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InventoryParentAttribute"
            }
          },
          "customFields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InventoryParentCustomField"
            }
          },
          "variants": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InventoryVariant"
            }
          },
          "categoryOneId": {
            "type": "integer",
            "x-diff-exclusion": true
          },
          "categoryTwoId": {
            "type": "integer",
            "x-diff-exclusion": true
          },
          "categoryThreeId": {
            "type": "integer",
            "x-diff-exclusion": true
          },
          "contentUpdatedAt": {
            "type": "string",
            "format": "date-time",
            "x-diff-exclusion": true
          },
          "lastArchivedAt": {
            "type": "string",
            "format": "date-time",
            "x-diff-exclusion": true
          },
          "lastUnarchivedAt": {
            "type": "string",
            "format": "date-time",
            "x-diff-exclusion": true
          }
        },
        "required": [
          "sku"
        ]
      },
      "InventoryParentCreateOrUpdate": {
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "sourceId": {
            "type": "integer",
            "description": "Only required to be passed if you are using an account token type"
          },
          "sku": {
            "type": "string"
          },
          "title": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "manufacturer": {
            "type": "string",
            "nullable": true
          },
          "archived": {
            "type": "boolean",
            "nullable": true
          },
          "images": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InventoryImageCreateOrUpdate"
            }
          },
          "options": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InventoryParentOptionCreateOrUpdate"
            }
          },
          "attributes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InventoryParentAttributeCreateOrUpdate"
            }
          },
          "customFields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InventoryParentCustomFieldCreateOrUpdate"
            }
          },
          "variants": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InventoryVariantCreateOrUpdate"
            }
          },
          "categoryOne": {
            "type": "string",
            "nullable": true
          },
          "categoryTwo": {
            "type": "string",
            "nullable": true
          },
          "categoryThree": {
            "type": "string",
            "nullable": true
          }
        },
        "required": [
          "sku"
        ]
      },
      "InventoryParentCreateOrUpdateResponse": {
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "id": {
            "type": "integer",
            "description": "If the parent was created or updated this will be populated. If the parent did not exist and failed to be created this will not be populated"
          },
          "sku": {
            "type": "string"
          },
          "success": {
            "type": "boolean",
            "description": "Whether or not the parent was successfully created/updated. If this is false the `errors` property will contain information that you can use to troubleshoot the failure."
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/GenericApiError"
            }
          },
          "variants": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InventoryVariantCreateOrUpdateResponse"
            }
          }
        }
      },
      "InventoryModificationResult": {
        "type": "string",
        "x-tags": [
          "Models"
        ],
        "enum": [
          "new",
          "changed",
          "unchanged",
          "archived"
        ]
      },
      "ListSaveCounts": {
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "saved": {
            "type": "integer"
          },
          "unchanged": {
            "type": "integer"
          },
          "deleted": {
            "type": "integer"
          }
        }
      },
      "InventoryParentSaveResponse": {
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "id": {
            "type": "integer",
            "description": "If the parent was created or updated this will be populated. If the parent did not exist and failed to be created this will not be populated"
          },
          "sku": {
            "type": "string"
          },
          "success": {
            "type": "boolean",
            "description": "Whether or not the parent was successfully created/updated. If this is false the `errors` property will contain information that you can use to troubleshoot the failure."
          },
          "result": {
            "$ref": "#/components/schemas/InventoryModificationResult"
          },
          "parentOptionsResult": {
            "$ref": "#/components/schemas/ListSaveCounts"
          },
          "parentImagesResult": {
            "$ref": "#/components/schemas/ListSaveCounts"
          },
          "parentCustomFieldsResult": {
            "$ref": "#/components/schemas/ListSaveCounts"
          },
          "parentAttributesResult": {
            "$ref": "#/components/schemas/ListSaveCounts"
          },
          "variants": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InventoryVariantSaveResponse"
            }
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/GenericApiError"
            }
          }
        }
      },
      "InventoryVariantSaveResponse": {
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64",
            "description": "If the variant was created or updated this will be populated. If the variant did not exist and failed to be created this will not be populated"
          },
          "sku": {
            "type": "string"
          },
          "result": {
            "$ref": "#/components/schemas/InventoryModificationResult"
          },
          "variantOptionsResult": {
            "$ref": "#/components/schemas/ListSaveCounts"
          },
          "variantImagesResult": {
            "$ref": "#/components/schemas/ListSaveCounts"
          },
          "variantCustomFieldsResult": {
            "$ref": "#/components/schemas/ListSaveCounts"
          },
          "success": {
            "type": "boolean",
            "description": "Whether or not the variant was successfully created/updated. If this is false the `errors` property will contain information that you can use to troubleshoot the failure."
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/GenericApiError"
            }
          }
        }
      },
      "InventoryVariantCreateOrUpdateResponse": {
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64",
            "description": "If the variant was created or updated this will be populated. If the variant did not exist and failed to be created this will not be populated"
          },
          "sku": {
            "type": "string"
          },
          "success": {
            "type": "boolean",
            "description": "Whether or not the variant was successfully created/updated. If this is false the `errors` property will contain information that you can use to troubleshoot the failure."
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/GenericApiError"
            }
          }
        }
      },
      "InventoryCategory": {
        "type": "object",
        "properties": {
          "sourceId": {
            "type": "integer",
            "x-diff-exclusion": true
          },
          "productCategoryId": {
            "type": "integer",
            "description": "A product Category this inventory category is mapped to",
            "x-diff-exclusion": true
          },
          "id": {
            "type": "integer",
            "x-diff-exclusion": true
          },
          "name": {
            "type": "string"
          },
          "excluded": {
            "type": "boolean",
            "x-diff-exclusion": true
          },
          "parentCategoryId": {
            "type": "integer",
            "x-diff-exclusion": true
          }
        },
        "required": [
          "name"
        ],
        "x-tags": [
          "Models"
        ]
      },
      "InventoryImage": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64",
            "x-diff-exclusion": true
          },
          "sourceId": {
            "type": "integer",
            "x-diff-exclusion": true
          },
          "inventoryParentId": {
            "type": "integer",
            "x-diff-exclusion": true
          },
          "inventoryVariantId": {
            "type": "integer",
            "x-diff-exclusion": true,
            "format": "int64"
          },
          "hash": {
            "type": "string",
            "x-diff-exclusion": true
          },
          "originalUrl": {
            "type": "string",
            "x-diff-exclusion": true
          },
          "url": {
            "type": "string"
          },
          "sortOrder": {
            "type": "integer"
          }
        },
        "required": [
          "url"
        ],
        "x-tags": [
          "Models"
        ]
      },
      "InventoryImageCreateOrUpdate": {
        "type": "object",
        "properties": {
          "url": {
            "type": "string"
          },
          "sortOrder": {
            "type": "integer"
          }
        },
        "required": [
          "url"
        ],
        "x-tags": [
          "Models"
        ]
      },
      "InventoryParentOption": {
        "type": "object",
        "properties": {
          "inventoryParentId": {
            "type": "integer",
            "x-diff-exclusion": true
          },
          "id": {
            "type": "integer",
            "x-diff-exclusion": true
          },
          "name": {
            "type": "string"
          }
        },
        "required": [
          "name"
        ],
        "x-tags": [
          "Models"
        ]
      },
      "InventoryParentOptionCreateOrUpdate": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          }
        },
        "required": [
          "name"
        ],
        "x-tags": [
          "Models"
        ]
      },
      "InventoryParentAttribute": {
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "description": "",
        "allOf": [
          {
            "$ref": "#/components/schemas/Attribute"
          }
        ],
        "properties": {
          "inventoryParentId": {
            "type": "integer",
            "x-diff-exclusion": true
          }
        }
      },
      "InventoryParentAttributeCreateOrUpdate": {
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "name": {
            "type": "string"
          },
          "value": {
            "type": "string"
          }
        },
        "required": [
          "name",
          "value"
        ],
        "description": ""
      },
      "InventoryParentCustomField": {
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/CustomField"
          }
        ],
        "properties": {
          "inventoryParentId": {
            "type": "integer",
            "x-diff-exclusion": true
          }
        },
        "required": [
          "name",
          "value"
        ],
        "x-tags": [
          "Models"
        ]
      },
      "InventoryParentCustomFieldCreateOrUpdate": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "value": {
            "type": "string"
          }
        },
        "required": [
          "name",
          "value"
        ],
        "x-tags": [
          "Models"
        ]
      },
      "InventoryVariant": {
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "sourceId": {
            "type": "integer",
            "x-diff-exclusion": true
          },
          "inventoryParentId": {
            "type": "integer",
            "x-diff-exclusion": true
          },
          "supplierVariantId": {
            "type": "string",
            "x-diff-exclusion": true
          },
          "shippingCost": {
            "type": "number"
          },
          "dropshipFee": {
            "type": "number"
          },
          "inventoryListPrice": {
            "type": "number"
          },
          "referenceIdentifier": {
            "type": "string"
          },
          "inventoryVariantId": {
            "type": "string",
            "deprecated": true,
            "x-diff-exclusion": true,
            "format": "int64"
          },
          "committedQuantity": {
            "type": "integer"
          },
          "incomingQuantity": {
            "type": "integer"
          },
          "quantity": {
            "type": "integer"
          },
          "totalQuantity": {
            "type": "integer"
          },
          "id": {
            "type": "integer",
            "x-diff-exclusion": true,
            "format": "int64"
          },
          "accountId": {
            "type": "integer",
            "deprecated": true,
            "x-diff-exclusion": true
          },
          "sku": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "mpn": {
            "type": "string"
          },
          "masterSku": {
            "type": "string",
            "description": "If available from your data source populate with your primary product master SKU to enable easily linking to your existing products or as the foundation to build new product master SKUs from."
          },
          "upc": {
            "type": "string"
          },
          "ean": {
            "type": "string"
          },
          "asin": {
            "type": "string"
          },
          "msrp": {
            "type": "number"
          },
          "map": {
            "type": "number"
          },
          "weight": {
            "type": "number"
          },
          "length": {
            "type": "number"
          },
          "width": {
            "type": "number"
          },
          "height": {
            "type": "number"
          },
          "insertedAt": {
            "type": "string",
            "format": "date-time",
            "x-diff-exclusion": true
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time",
            "x-diff-exclusion": true
          },
          "totalQuantityLastChangedAt": {
            "type": "string",
            "format": "date-time",
            "x-diff-exclusion": true
          },
          "archived": {
            "type": "boolean"
          },
          "cost": {
            "type": "number"
          },
          "weightUnit": {
            "$ref": "#/components/schemas/WeightUnit"
          },
          "dimensionUnit": {
            "$ref": "#/components/schemas/DimensionUnit"
          },
          "dimensionalWeight": {
            "type": "number"
          },
          "images": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InventoryImage"
            }
          },
          "options": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InventoryVariantOption"
            }
          },
          "customAggregateFields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InventoryVariantCustomAggregateField"
            }
          },
          "parent": {
            "$ref": "#/components/schemas/InventoryParent"
          },
          "linkedProductVariants": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InventoryProductVariantLink"
            }
          },
          "scheduledToDeleteAt": {
            "type": "string",
            "format": "date-time"
          },
          "customFields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InventoryVariantCustomField"
            }
          },
          "allowBackorders": {
            "type": "boolean"
          },
          "binLocation": {
            "type": "string",
            "description": "An identifier representing the location of a bin in an internal warehouse"
          },
          "description": {
            "type": "string",
            "x-stoplight": {
              "id": "9fo8bengu7r7j"
            }
          },
          "contentUpdatedAt": {
            "type": "string",
            "format": "date-time",
            "x-diff-exclusion": true
          },
          "requiresFfl": {
            "type": "boolean",
            "description": "Indicate if FFL information will be required to fulfill this inventory variant"
          },
          "lastArchivedAt": {
            "type": "string",
            "format": "date-time",
            "x-diff-exclusion": true
          },
          "lastUnarchivedAt": {
            "type": "string",
            "format": "date-time",
            "x-diff-exclusion": true
          }
        },
        "required": [
          "sku"
        ]
      },
      "InventoryVariantUpdatedEvent": {
        "type": "object",
        "x-tags": [
          "Events"
        ],
        "properties": {
          "sourceId": {
            "type": "integer",
            "x-diff-exclusion": true
          },
          "inventoryParentId": {
            "type": "integer",
            "x-diff-exclusion": true
          },
          "id": {
            "type": "integer",
            "x-diff-exclusion": true,
            "format": "int64"
          },
          "accountId": {
            "type": "integer",
            "deprecated": true,
            "x-diff-exclusion": true
          },
          "sku": {
            "type": "string"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time",
            "x-diff-exclusion": true
          }
        },
        "required": [
          "sourceId",
          "inventoryParentId",
          "sku",
          "id",
          "accountId",
          "updatedAt"
        ]
      },
      "InventoryVariantCreateOrUpdate": {
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "supplierVariantId": {
            "type": "string",
            "nullable": true
          },
          "shippingCost": {
            "type": "number",
            "nullable": true
          },
          "dropshipFee": {
            "type": "number",
            "nullable": true
          },
          "inventoryListPrice": {
            "type": "number",
            "nullable": true
          },
          "referenceIdentifier": {
            "type": "string",
            "nullable": true
          },
          "quantity": {
            "type": "integer",
            "nullable": true
          },
          "sku": {
            "type": "string",
            "nullable": true
          },
          "masterSku": {
            "type": "string",
            "description": "If available from your data source populate with your primary product master SKU to enable easily linking to your existing products or as the foundation to build new product master SKUs from.",
            "nullable": true
          },
          "title": {
            "type": "string",
            "nullable": true
          },
          "mpn": {
            "type": "string",
            "nullable": true
          },
          "upc": {
            "type": "string",
            "nullable": true
          },
          "ean": {
            "type": "string",
            "nullable": true
          },
          "asin": {
            "type": "string",
            "nullable": true
          },
          "msrp": {
            "type": "number",
            "nullable": true
          },
          "map": {
            "type": "number",
            "nullable": true
          },
          "weight": {
            "type": "number",
            "nullable": true
          },
          "length": {
            "type": "number",
            "nullable": true
          },
          "width": {
            "type": "number",
            "nullable": true
          },
          "height": {
            "type": "number",
            "nullable": true
          },
          "archived": {
            "type": "boolean",
            "nullable": true
          },
          "cost": {
            "type": "number",
            "nullable": true
          },
          "weightUnit": {
            "$ref": "#/components/schemas/WeightUnit",
            "nullable": true
          },
          "dimensionUnit": {
            "$ref": "#/components/schemas/DimensionUnit",
            "nullable": true
          },
          "dimensionalWeight": {
            "type": "number",
            "nullable": true
          },
          "images": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InventoryImageCreateOrUpdate"
            }
          },
          "options": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InventoryVariantOptionCreateOrUpdate"
            }
          },
          "customFields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InventoryVariantCustomFieldCreateOrUpdate"
            }
          },
          "allowBackorders": {
            "type": "boolean",
            "nullable": true
          },
          "binLocation": {
            "type": "string",
            "description": "An identifier representing the location of a bin in an internal warehouse",
            "nullable": true
          },
          "description": {
            "type": "string",
            "x-stoplight": {
              "id": "emd35h72pa0wh"
            },
            "nullable": true
          },
          "requiresFfl": {
            "type": "boolean",
            "description": "Indicate if FFL information will be required to fulfill this inventory variant",
            "nullable": true
          }
        },
        "required": [
          "sku"
        ]
      },
      "InventoryVariantCreateOrUpdateWithParentSku": {
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "sourceId": {
            "type": "integer",
            "description": "Only required to be passed if you are using an account token type"
          },
          "supplierVariantId": {
            "type": "string",
            "nullable": true
          },
          "shippingCost": {
            "type": "number",
            "nullable": true
          },
          "dropshipFee": {
            "type": "number",
            "nullable": true
          },
          "inventoryListPrice": {
            "type": "number",
            "nullable": true
          },
          "referenceIdentifier": {
            "type": "string",
            "nullable": true
          },
          "quantity": {
            "type": "integer",
            "nullable": true
          },
          "sku": {
            "type": "string"
          },
          "masterSku": {
            "type": "string",
            "description": "If available from your data source populate with your primary product master SKU to enable easily linking to your existing products or as the foundation to build new product master SKUs from.",
            "nullable": true
          },
          "parentSku": {
            "type": "string"
          },
          "title": {
            "type": "string",
            "nullable": true
          },
          "mpn": {
            "type": "string",
            "nullable": true
          },
          "upc": {
            "type": "string",
            "nullable": true
          },
          "ean": {
            "type": "string",
            "nullable": true
          },
          "asin": {
            "type": "string",
            "nullable": true
          },
          "msrp": {
            "type": "number",
            "nullable": true
          },
          "map": {
            "type": "number",
            "nullable": true
          },
          "weight": {
            "type": "number",
            "nullable": true
          },
          "length": {
            "type": "number",
            "nullable": true
          },
          "width": {
            "type": "number",
            "nullable": true
          },
          "height": {
            "type": "number",
            "nullable": true
          },
          "archived": {
            "type": "boolean",
            "nullable": true
          },
          "cost": {
            "type": "number",
            "nullable": true
          },
          "weightUnit": {
            "$ref": "#/components/schemas/WeightUnit"
          },
          "dimensionUnit": {
            "$ref": "#/components/schemas/DimensionUnit"
          },
          "dimensionalWeight": {
            "type": "number",
            "nullable": true
          },
          "images": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InventoryImageCreateOrUpdate"
            }
          },
          "options": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InventoryVariantOptionCreateOrUpdate"
            }
          },
          "customAggregateFields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InventoryVariantCustomAggregateFieldCreateOrUpdate"
            }
          },
          "customFields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InventoryVariantCustomFieldCreateOrUpdate"
            }
          },
          "allowBackorders": {
            "type": "boolean",
            "nullable": true
          },
          "description": {
            "type": "string",
            "x-stoplight": {
              "id": "jxxtv5cuygbzy"
            },
            "nullable": true
          },
          "linkedProductVariants": {
            "type": "array",
            "description": "Array of product variant IDs that the inventory variant is linked to",
            "items": {
              "type": "integer"
            }
          },
          "binLocation": {
            "type": "string",
            "x-stoplight": {
              "id": "zveqv5dszvkdf"
            },
            "nullable": true
          },
          "requiresFfl": {
            "type": "boolean",
            "description": "Indicate if FFL information will be required to fulfill this inventory variant",
            "nullable": true
          }
        },
        "required": [
          "sku",
          "parentSku"
        ]
      },
      "InventoryVariantChangeSkuRequest": {
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "sourceId": {
            "type": "integer"
          },
          "sku": {
            "type": "string"
          },
          "newSku": {
            "type": "string"
          }
        },
        "required": [
          "sourceId",
          "sku",
          "newSku"
        ]
      },
      "InventoryVariantChangeSkuResponse": {
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "inventoryVariantId": {
            "type": "integer",
            "format": "int64"
          },
          "skuDidNotExist": {
            "type": "boolean"
          },
          "newSkuAlreadyInUse": {
            "type": "boolean"
          }
        }
      },
      "InventoryVariantOption": {
        "type": "object",
        "properties": {
          "inventoryParentOptionId": {
            "type": "integer",
            "x-diff-exclusion": true
          },
          "inventoryVariantId": {
            "type": "integer",
            "x-diff-exclusion": true,
            "format": "int64"
          },
          "id": {
            "type": "integer",
            "x-diff-exclusion": true,
            "format": "int64"
          },
          "name": {
            "type": "string"
          },
          "value": {
            "type": "string"
          }
        },
        "required": [
          "name",
          "value"
        ],
        "x-tags": [
          "Models"
        ]
      },
      "InventoryVariantOptionCreateOrUpdate": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "value": {
            "type": "string"
          }
        },
        "required": [
          "name",
          "value"
        ],
        "x-tags": [
          "Models"
        ]
      },
      "ProductParent": {
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "id": {
            "type": "integer"
          },
          "sku": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "manufacturer": {
            "type": "string"
          },
          "insertedAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archived": {
            "type": "boolean"
          },
          "categoryOne": {
            "$ref": "#/components/schemas/ProductCategory"
          },
          "categoryTwo": {
            "$ref": "#/components/schemas/ProductCategory"
          },
          "categoryThree": {
            "$ref": "#/components/schemas/ProductCategory"
          },
          "images": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProductImage"
            }
          },
          "options": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProductParentOption"
            }
          },
          "attributes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProductParentAttribute"
            }
          },
          "customFields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProductParentCustomField"
            }
          },
          "variants": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProductVariant"
            }
          },
          "categoryOneId": {
            "type": "integer"
          },
          "categoryTwoId": {
            "type": "integer"
          },
          "categoryThreeId": {
            "type": "integer"
          },
          "imagesFetched": {
            "type": "boolean"
          },
          "productBuilderId": {
            "type": "integer"
          },
          "builtWithMappingTemplateId": {
            "type": "integer"
          },
          "builtAt": {
            "type": "string",
            "format": "date-time"
          },
          "rebuiltAt": {
            "type": "string",
            "format": "date-time"
          },
          "tags": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "listingLinks": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProductParentListingLink"
            }
          },
          "imageFetcherEventTriggered": {
            "type": "boolean"
          }
        },
        "required": [
          "sku"
        ],
        "x-examples": {
          "Example 1": {
            "id": 0,
            "sku": "string",
            "title": "string",
            "description": "string",
            "manufacturer": "string",
            "insertedAt": "2019-08-24T14:15:22Z",
            "updatedAt": "2019-08-24T14:15:22Z",
            "archived": true,
            "categoryOne": {
              "accountId": 0,
              "insertedAt": "2019-08-24T14:15:22Z",
              "updatedAt": "2019-08-24T14:15:22Z",
              "customized": true,
              "id": 0,
              "name": "string",
              "parentCategoryId": 0,
              "inventoryCategory": {
                "sourceId": 0,
                "productCategoryId": 0,
                "id": 0,
                "name": "string",
                "parentCategoryId": 0
              }
            },
            "categoryTwo": {
              "accountId": 0,
              "insertedAt": "2019-08-24T14:15:22Z",
              "updatedAt": "2019-08-24T14:15:22Z",
              "customized": true,
              "id": 0,
              "name": "string",
              "parentCategoryId": 0,
              "inventoryCategory": {
                "sourceId": 0,
                "productCategoryId": 0,
                "id": 0,
                "name": "string",
                "parentCategoryId": 0
              }
            },
            "categoryThree": {
              "accountId": 0,
              "insertedAt": "2019-08-24T14:15:22Z",
              "updatedAt": "2019-08-24T14:15:22Z",
              "customized": true,
              "id": 0,
              "name": "string",
              "parentCategoryId": 0,
              "inventoryCategory": {
                "sourceId": 0,
                "productCategoryId": 0,
                "id": 0,
                "name": "string",
                "parentCategoryId": 0
              }
            },
            "images": [
              {
                "productParentId": 0,
                "productVariantId": 0,
                "md5Checksum": "string",
                "originalUrl": "string",
                "fetched": true,
                "fetchAttempts": 0,
                "archived": true,
                "id": 0,
                "url": "string",
                "sortOrder": 0
              }
            ],
            "options": [
              {
                "productParentId": 0,
                "id": 0,
                "name": "string",
                "globalOptionId": 0,
                "optionValues": [
                  {
                    "optionId": 0,
                    "value": "string",
                    "position": 0,
                    "globalPosition": 0
                  }
                ]
              }
            ],
            "attributes": [
              {
                "productParentId": 0,
                "id": 0,
                "attributeId": 0,
                "attributeValueId": 0,
                "name": "string",
                "originalInventoryName": "string",
                "value": "string",
                "originalInventoryValue": "string",
                "isPrivate": true,
                "mergeToAttributeId": 0,
                "mergeToAttribute": {},
                "mergeToAttributeValueId": 0,
                "mergeToAttributeValue": "string"
              }
            ],
            "customFields": [
              {
                "productParentId": 0,
                "id": 0,
                "customFieldId": 0,
                "customFieldValueId": 0,
                "name": "string",
                "originalInventoryName": "string",
                "value": "string",
                "originalInventoryValue": "string"
              }
            ],
            "variants": [
              {
                "priceOverwrite": {
                  "priceOverwritten": true,
                  "costOverwritten": true,
                  "msrpOverwritten": true,
                  "mapOverwritten": true,
                  "shippingCostOverwritten": true,
                  "dropshipFeeOverwritten": true,
                  "dynamicPrice": 0,
                  "dynamicCost": 0,
                  "dynamicMsrp": 0,
                  "dynamicMap": 0,
                  "dynamicShippingCost": 0,
                  "dynamicDropshipFee": 0
                },
                "quantityOverwrite": {
                  "quantityOverwritten": true,
                  "dynamicQuantity": 0,
                  "orderVolumeProtectionLockedAt": "string",
                  "lastManualQuantity": 0,
                  "isLockedByOrderVolumeProtection": "false"
                },
                "productParentId": 0,
                "price": 0,
                "salePrice": 0,
                "estimatedShippingCost": 0,
                "estimatedDropshipFee": 0,
                "inventoryListPrice": 0,
                "imagesFetched": true,
                "productBuilderId": 0,
                "builtWithMappingTemplateId": 0,
                "builtAt": "2019-08-24T14:15:22Z",
                "rebuiltAt": "2019-08-24T14:15:22Z",
                "inventoryLinks": [
                  {
                    "id": 0,
                    "productVariantId": 0,
                    "inventoryVariantId": 0
                  }
                ],
                "productAlternatives": [
                  {
                    "id": 0,
                    "sku": "string",
                    "title": "string",
                    "quantity": 0,
                    "cost": 0,
                    "price": 0,
                    "image": "string",
                    "parentId": 0
                  }
                ],
                "referenceIdentifier": "string",
                "id": 0,
                "sku": "string",
                "title": "string",
                "mpn": "string",
                "upc": "string",
                "ean": "string",
                "asin": "string",
                "msrp": 0,
                "map": 0,
                "weight": 0,
                "length": 0,
                "width": 0,
                "height": 0,
                "insertedAt": "2019-08-24T14:15:22Z",
                "updatedAt": "2019-08-24T14:15:22Z",
                "archived": true,
                "cost": 0,
                "quantity": 0,
                "weightUnit": {
                  "handle": "pound",
                  "abbreviatedHandle": "lb"
                },
                "dimensionUnit": {
                  "handle": "inch",
                  "abbreviatedHandle": "in"
                },
                "dimensionalWeight": 0,
                "images": [
                  {
                    "productParentId": 0,
                    "productVariantId": 0,
                    "md5Checksum": "string",
                    "originalUrl": "string",
                    "fetched": true,
                    "fetchAttempts": 0,
                    "archived": true,
                    "id": 0,
                    "url": "string",
                    "sortOrder": 0
                  }
                ],
                "options": [
                  {
                    "productParentOptionId": 0,
                    "globalOptionValueId": 0,
                    "productVariantId": 0,
                    "id": 0,
                    "position": 0,
                    "name": "string",
                    "value": "string",
                    "globalPosition": 0
                  }
                ],
                "bundle": true,
                "bundleComponents": [
                  {
                    "componentQuantity": 0,
                    "componentProductVariant": {},
                    "bundleProductVariantId": 0,
                    "componentProductVariantId": 0
                  }
                ],
                "listingLinks": [
                  {
                    "listingVariantId": 0,
                    "channelId": 0
                  }
                ],
                "customAggregateFields": [
                  {
                    "id": 0,
                    "productVariantId": 0,
                    "accountId": 0,
                    "customAggregateField": {
                      "id": 0,
                      "aggregateFieldDataTypeId": 0,
                      "customAggregateFieldOptionId": 0,
                      "name": "string",
                      "handle": "string",
                      "ignoreOutOfStock": false,
                      "accountId": 0
                    },
                    "name": "string",
                    "value": 0,
                    "customAggregateFieldId": 0
                  }
                ],
                "scheduledToDeleteAt": "2019-08-24T14:15:22Z",
                "customFields": [
                  {
                    "id": 0,
                    "productVariantId": 0,
                    "customFieldId": 0,
                    "customFieldValueId": 0,
                    "name": "string",
                    "originalInventoryName": "string",
                    "value": "string",
                    "originalInventoryValue": "string"
                  }
                ],
                "parent": {
                  "id": 0,
                  "sku": "string",
                  "title": "string",
                  "description": "string",
                  "manufacturer": "string",
                  "insertedAt": "2019-08-24T14:15:22Z",
                  "updatedAt": "2019-08-24T14:15:22Z",
                  "archived": true,
                  "categoryOne": {
                    "accountId": 0,
                    "insertedAt": "2019-08-24T14:15:22Z",
                    "updatedAt": "2019-08-24T14:15:22Z",
                    "customized": true,
                    "id": 0,
                    "name": "string",
                    "parentCategoryId": 0,
                    "inventoryCategory": {
                      "sourceId": 0,
                      "productCategoryId": 0,
                      "id": 0,
                      "name": "string",
                      "parentCategoryId": 0
                    }
                  },
                  "categoryTwo": {
                    "accountId": 0,
                    "insertedAt": "2019-08-24T14:15:22Z",
                    "updatedAt": "2019-08-24T14:15:22Z",
                    "customized": true,
                    "id": 0,
                    "name": "string",
                    "parentCategoryId": 0,
                    "inventoryCategory": {
                      "sourceId": 0,
                      "productCategoryId": 0,
                      "id": 0,
                      "name": "string",
                      "parentCategoryId": 0
                    }
                  },
                  "categoryThree": {
                    "accountId": 0,
                    "insertedAt": "2019-08-24T14:15:22Z",
                    "updatedAt": "2019-08-24T14:15:22Z",
                    "customized": true,
                    "id": 0,
                    "name": "string",
                    "parentCategoryId": 0,
                    "inventoryCategory": {
                      "sourceId": 0,
                      "productCategoryId": 0,
                      "id": 0,
                      "name": "string",
                      "parentCategoryId": 0
                    }
                  },
                  "images": [
                    {
                      "productParentId": 0,
                      "productVariantId": 0,
                      "md5Checksum": "string",
                      "originalUrl": "string",
                      "fetched": true,
                      "fetchAttempts": 0,
                      "archived": true,
                      "id": 0,
                      "url": "string",
                      "sortOrder": 0
                    }
                  ],
                  "options": [
                    {
                      "productParentId": 0,
                      "id": 0,
                      "name": "string",
                      "globalOptionId": 0,
                      "optionValues": [
                        {
                          "optionId": 0,
                          "value": "string",
                          "position": 0,
                          "globalPosition": 0
                        }
                      ]
                    }
                  ],
                  "attributes": [
                    {
                      "productParentId": 0,
                      "id": 0,
                      "attributeId": 0,
                      "attributeValueId": 0,
                      "name": "string",
                      "originalInventoryName": "string",
                      "value": "string",
                      "originalInventoryValue": "string",
                      "isPrivate": true,
                      "mergeToAttributeId": 0,
                      "mergeToAttribute": {},
                      "mergeToAttributeValueId": 0,
                      "mergeToAttributeValue": "string"
                    }
                  ],
                  "customFields": [
                    {
                      "productParentId": 0,
                      "id": 0,
                      "customFieldId": 0,
                      "customFieldValueId": 0,
                      "name": "string",
                      "originalInventoryName": "string",
                      "value": "string",
                      "originalInventoryValue": "string"
                    }
                  ],
                  "variants": [
                    {}
                  ],
                  "categoryOneId": 0,
                  "categoryTwoId": 0,
                  "categoryThreeId": 0,
                  "imagesFetched": true,
                  "productBuilderId": 0,
                  "builtWithMappingTemplateId": 0,
                  "builtAt": "2019-08-24T14:15:22Z",
                  "rebuiltAt": "2019-08-24T14:15:22Z"
                }
              }
            ],
            "categoryOneId": 0,
            "categoryTwoId": 0,
            "categoryThreeId": 0,
            "imagesFetched": true,
            "productBuilderId": 0,
            "builtWithMappingTemplateId": 0,
            "builtAt": "2019-08-24T14:15:22Z",
            "rebuiltAt": "2019-08-24T14:15:22Z"
          }
        }
      },
      "ProductParentRequest": {
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "id": {
            "type": "integer"
          },
          "sku": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "manufacturer": {
            "type": "string"
          },
          "insertedAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archived": {
            "type": "boolean"
          },
          "categoryOne": {
            "$ref": "#/components/schemas/ProductCategory"
          },
          "categoryTwo": {
            "$ref": "#/components/schemas/ProductCategory"
          },
          "categoryThree": {
            "$ref": "#/components/schemas/ProductCategory"
          },
          "images": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProductImage"
            }
          },
          "options": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProductParentOption"
            }
          },
          "attributes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProductParentAttribute"
            }
          },
          "customFields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProductParentCustomField"
            }
          },
          "variants": {
            "type": "array",
            "description": "DEPRECATED : Variants included in this call will not be updated. You need to use the dedicated variant endpoint to update these. Currently if you pass variants here we will return them unmodified, however, in the future this property will be removed completely so you should not code in a way that is dependent on this functionality.",
            "deprecated": true,
            "items": {
              "$ref": "#/components/schemas/ProductVariant"
            }
          },
          "categoryOneId": {
            "type": "integer"
          },
          "categoryTwoId": {
            "type": "integer"
          },
          "categoryThreeId": {
            "type": "integer"
          },
          "imagesFetched": {
            "type": "boolean"
          },
          "productBuilderId": {
            "type": "integer"
          },
          "builtWithMappingTemplateId": {
            "type": "integer"
          },
          "builtAt": {
            "type": "string",
            "format": "date-time"
          },
          "rebuiltAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "sku"
        ]
      },
      "ProductCategory": {
        "type": "object",
        "description": "A product category. These are primarily created during the product building process, and are initially seeded/populated from the passed `inventoryCategory`.",
        "properties": {
          "accountId": {
            "type": "integer"
          },
          "insertedAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "customized": {
            "type": "boolean"
          },
          "id": {
            "type": "integer"
          },
          "name": {
            "type": "string"
          },
          "parentCategoryId": {
            "type": "integer"
          },
          "inventoryCategory": {
            "$ref": "#/components/schemas/InventoryCategory"
          }
        },
        "required": [
          "name"
        ],
        "x-tags": [
          "Models"
        ]
      },
      "ProductImage": {
        "type": "object",
        "properties": {
          "productParentId": {
            "type": "integer"
          },
          "productVariantId": {
            "type": "integer"
          },
          "md5Checksum": {
            "type": "string"
          },
          "originalUrl": {
            "type": "string"
          },
          "fetched": {
            "type": "boolean"
          },
          "fetchAttempts": {
            "type": "integer"
          },
          "archived": {
            "type": "boolean"
          },
          "id": {
            "type": "integer"
          },
          "url": {
            "type": "string"
          },
          "sortOrder": {
            "type": "integer"
          },
          "size": {
            "type": "integer",
            "format": "int64"
          },
          "compressed": {
            "type": "boolean"
          },
          "width": {
            "type": "integer"
          },
          "height": {
            "type": "integer"
          },
          "sharedImage": {
            "type": "boolean"
          }
        },
        "required": [
          "url"
        ],
        "x-tags": [
          "Models"
        ]
      },
      "ProductParentOption": {
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "productParentId": {
            "type": "integer"
          },
          "id": {
            "type": "integer"
          },
          "name": {
            "type": "string"
          },
          "globalOptionId": {
            "type": "integer",
            "format": "int64"
          },
          "optionValues": {
            "type": "array",
            "uniqueItems": true,
            "items": {
              "$ref": "#/components/schemas/OptionValue"
            }
          }
        },
        "required": [
          "name"
        ]
      },
      "ProductParentAttribute": {
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "description": "",
        "allOf": [
          {
            "$ref": "#/components/schemas/Attribute"
          }
        ],
        "properties": {
          "productParentId": {
            "type": "integer"
          }
        }
      },
      "ProductParentCustomField": {
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/CustomField"
          }
        ],
        "properties": {
          "productParentId": {
            "type": "integer"
          }
        },
        "required": [
          "name",
          "value"
        ],
        "x-tags": [
          "Models"
        ]
      },
      "ProductVariant": {
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "x-examples": {
          "Example 1": {
            "priceOverwrite": {
              "priceOverwritten": true,
              "costOverwritten": true,
              "msrpOverwritten": true,
              "mapOverwritten": true,
              "shippingCostOverwritten": true,
              "dropshipFeeOverwritten": true,
              "dynamicPrice": 0,
              "dynamicCost": 0,
              "dynamicMsrp": 0,
              "dynamicMap": 0,
              "dynamicShippingCost": 0,
              "dynamicDropshipFee": 0
            },
            "quantityOverwrite": {
              "quantityOverwritten": true,
              "dynamicQuantity": 0,
              "orderVolumeProtectionLockedAt": "string",
              "lastManualQuantity": 0,
              "isLockedByOrderVolumeProtection": "false"
            },
            "productParentId": 0,
            "price": 0,
            "salePrice": 0,
            "estimatedShippingCost": 0,
            "estimatedDropshipFee": 0,
            "inventoryListPrice": 0,
            "imagesFetched": true,
            "productBuilderId": 0,
            "builtWithMappingTemplateId": 0,
            "builtAt": "2019-08-24T14:15:22Z",
            "rebuiltAt": "2019-08-24T14:15:22Z",
            "inventoryLinks": [
              {
                "id": 0,
                "productVariantId": 0,
                "inventoryVariantId": 0
              }
            ],
            "productAlternatives": [
              {
                "id": 0,
                "sku": "string",
                "title": "string",
                "quantity": 0,
                "cost": 0,
                "price": 0,
                "image": "string",
                "parentId": 0
              }
            ],
            "referenceIdentifier": "string",
            "id": 0,
            "sku": "string",
            "title": "string",
            "mpn": "string",
            "upc": "string",
            "ean": "string",
            "asin": "string",
            "msrp": 0,
            "map": 0,
            "weight": 0,
            "length": 0,
            "width": 0,
            "height": 0,
            "insertedAt": "2019-08-24T14:15:22Z",
            "updatedAt": "2019-08-24T14:15:22Z",
            "archived": true,
            "cost": 0,
            "quantity": 0,
            "weightUnit": {
              "handle": "pound",
              "abbreviatedHandle": "lb"
            },
            "dimensionUnit": {
              "handle": "inch",
              "abbreviatedHandle": "in"
            },
            "dimensionalWeight": 0,
            "images": [
              {
                "productParentId": 0,
                "productVariantId": 0,
                "md5Checksum": "string",
                "originalUrl": "string",
                "fetched": true,
                "fetchAttempts": 0,
                "archived": true,
                "id": 0,
                "url": "string",
                "sortOrder": 0
              }
            ],
            "options": [
              {
                "productParentOptionId": 0,
                "globalOptionValueId": 0,
                "productVariantId": 0,
                "id": 0,
                "position": 0,
                "name": "string",
                "value": "string",
                "globalPosition": 0
              }
            ],
            "bundle": true,
            "bundleComponents": [
              {
                "componentQuantity": 0,
                "componentProductVariant": {
                  "priceOverwrite": {
                    "priceOverwritten": true,
                    "costOverwritten": true,
                    "msrpOverwritten": true,
                    "mapOverwritten": true,
                    "shippingCostOverwritten": true,
                    "dropshipFeeOverwritten": true,
                    "dynamicPrice": 0,
                    "dynamicCost": 0,
                    "dynamicMsrp": 0,
                    "dynamicMap": 0,
                    "dynamicShippingCost": 0,
                    "dynamicDropshipFee": 0
                  },
                  "quantityOverwrite": {
                    "quantityOverwritten": true,
                    "dynamicQuantity": 0,
                    "orderVolumeProtectionLockedAt": "string",
                    "lastManualQuantity": 0,
                    "isLockedByOrderVolumeProtection": "false"
                  },
                  "productParentId": 0,
                  "price": 0,
                  "salePrice": 0,
                  "estimatedShippingCost": 0,
                  "estimatedDropshipFee": 0,
                  "inventoryListPrice": 0,
                  "imagesFetched": true,
                  "productBuilderId": 0,
                  "builtWithMappingTemplateId": 0,
                  "builtAt": "2019-08-24T14:15:22Z",
                  "rebuiltAt": "2019-08-24T14:15:22Z",
                  "inventoryLinks": [
                    {
                      "id": 0,
                      "productVariantId": 0,
                      "inventoryVariantId": 0
                    }
                  ],
                  "productAlternatives": [
                    {
                      "id": 0,
                      "sku": "string",
                      "title": "string",
                      "quantity": 0,
                      "cost": 0,
                      "price": 0,
                      "image": "string",
                      "parentId": 0
                    }
                  ],
                  "referenceIdentifier": "string",
                  "id": 0,
                  "sku": "string",
                  "title": "string",
                  "mpn": "string",
                  "upc": "string",
                  "ean": "string",
                  "asin": "string",
                  "msrp": 0,
                  "map": 0,
                  "weight": 0,
                  "length": 0,
                  "width": 0,
                  "height": 0,
                  "insertedAt": "2019-08-24T14:15:22Z",
                  "updatedAt": "2019-08-24T14:15:22Z",
                  "archived": true,
                  "cost": 0,
                  "quantity": 0,
                  "weightUnit": {
                    "handle": "pound",
                    "abbreviatedHandle": "lb"
                  },
                  "dimensionUnit": {
                    "handle": "inch",
                    "abbreviatedHandle": "in"
                  },
                  "dimensionalWeight": 0,
                  "images": [
                    {
                      "productParentId": 0,
                      "productVariantId": 0,
                      "md5Checksum": "string",
                      "originalUrl": "string",
                      "fetched": true,
                      "fetchAttempts": 0,
                      "archived": true,
                      "id": 0,
                      "url": "string",
                      "sortOrder": 0
                    }
                  ],
                  "options": [
                    {
                      "productParentOptionId": 0,
                      "globalOptionValueId": 0,
                      "productVariantId": 0,
                      "id": 0,
                      "position": 0,
                      "name": "string",
                      "value": "string",
                      "globalPosition": 0
                    }
                  ],
                  "bundle": true,
                  "bundleComponents": [
                    {}
                  ],
                  "listingLinks": [
                    {
                      "listingVariantId": 0,
                      "channelId": 0
                    }
                  ],
                  "customAggregateFields": [
                    {
                      "id": 0,
                      "productVariantId": 0,
                      "accountId": 0,
                      "customAggregateField": {
                        "id": 0,
                        "aggregateFieldDataTypeId": 0,
                        "customAggregateFieldOptionId": 0,
                        "name": "string",
                        "handle": "string",
                        "ignoreOutOfStock": false,
                        "accountId": 0
                      },
                      "name": "string",
                      "value": 0,
                      "customAggregateFieldId": 0
                    }
                  ],
                  "scheduledToDeleteAt": "2019-08-24T14:15:22Z",
                  "customFields": [
                    {
                      "id": 0,
                      "productVariantId": 0,
                      "customFieldId": 0,
                      "customFieldValueId": 0,
                      "name": "string",
                      "originalInventoryName": "string",
                      "value": "string",
                      "originalInventoryValue": "string"
                    }
                  ],
                  "parent": {
                    "id": 0,
                    "sku": "string",
                    "title": "string",
                    "description": "string",
                    "manufacturer": "string",
                    "insertedAt": "2019-08-24T14:15:22Z",
                    "updatedAt": "2019-08-24T14:15:22Z",
                    "archived": true,
                    "categoryOne": {
                      "accountId": 0,
                      "insertedAt": "2019-08-24T14:15:22Z",
                      "updatedAt": "2019-08-24T14:15:22Z",
                      "customized": true,
                      "id": 0,
                      "name": "string",
                      "parentCategoryId": 0,
                      "inventoryCategory": {
                        "sourceId": 0,
                        "productCategoryId": 0,
                        "id": 0,
                        "name": "string",
                        "parentCategoryId": 0
                      }
                    },
                    "categoryTwo": {
                      "accountId": 0,
                      "insertedAt": "2019-08-24T14:15:22Z",
                      "updatedAt": "2019-08-24T14:15:22Z",
                      "customized": true,
                      "id": 0,
                      "name": "string",
                      "parentCategoryId": 0,
                      "inventoryCategory": {
                        "sourceId": 0,
                        "productCategoryId": 0,
                        "id": 0,
                        "name": "string",
                        "parentCategoryId": 0
                      }
                    },
                    "categoryThree": {
                      "accountId": 0,
                      "insertedAt": "2019-08-24T14:15:22Z",
                      "updatedAt": "2019-08-24T14:15:22Z",
                      "customized": true,
                      "id": 0,
                      "name": "string",
                      "parentCategoryId": 0,
                      "inventoryCategory": {
                        "sourceId": 0,
                        "productCategoryId": 0,
                        "id": 0,
                        "name": "string",
                        "parentCategoryId": 0
                      }
                    },
                    "images": [
                      {
                        "productParentId": 0,
                        "productVariantId": 0,
                        "md5Checksum": "string",
                        "originalUrl": "string",
                        "fetched": true,
                        "fetchAttempts": 0,
                        "archived": true,
                        "id": 0,
                        "url": "string",
                        "sortOrder": 0
                      }
                    ],
                    "options": [
                      {
                        "productParentId": 0,
                        "id": 0,
                        "name": "string",
                        "globalOptionId": 0,
                        "optionValues": [
                          {
                            "optionId": 0,
                            "value": "string",
                            "position": 0,
                            "globalPosition": 0
                          }
                        ]
                      }
                    ],
                    "attributes": [
                      {
                        "productParentId": 0,
                        "id": 0,
                        "attributeId": 0,
                        "attributeValueId": 0,
                        "name": "string",
                        "originalInventoryName": "string",
                        "value": "string",
                        "originalInventoryValue": "string",
                        "isPrivate": true,
                        "mergeToAttributeId": 0,
                        "mergeToAttribute": {},
                        "mergeToAttributeValueId": 0,
                        "mergeToAttributeValue": "string"
                      }
                    ],
                    "customFields": [
                      {
                        "productParentId": 0,
                        "id": 0,
                        "customFieldId": 0,
                        "customFieldValueId": 0,
                        "name": "string",
                        "originalInventoryName": "string",
                        "value": "string",
                        "originalInventoryValue": "string"
                      }
                    ],
                    "variants": [
                      {}
                    ],
                    "categoryOneId": 0,
                    "categoryTwoId": 0,
                    "categoryThreeId": 0,
                    "imagesFetched": true,
                    "productBuilderId": 0,
                    "builtWithMappingTemplateId": 0,
                    "builtAt": "2019-08-24T14:15:22Z",
                    "rebuiltAt": "2019-08-24T14:15:22Z"
                  }
                },
                "bundleProductVariantId": 0,
                "componentProductVariantId": 0
              }
            ],
            "listingLinks": [
              {
                "listingVariantId": 0,
                "channelId": 0
              }
            ],
            "customAggregateFields": [
              {
                "id": 0,
                "productVariantId": 0,
                "accountId": 0,
                "customAggregateField": {
                  "id": 0,
                  "aggregateFieldDataTypeId": 0,
                  "customAggregateFieldOptionId": 0,
                  "name": "string",
                  "handle": "string",
                  "ignoreOutOfStock": false,
                  "accountId": 0
                },
                "name": "string",
                "value": 0,
                "customAggregateFieldId": 0
              }
            ],
            "scheduledToDeleteAt": "2019-08-24T14:15:22Z",
            "customFields": [
              {
                "id": 0,
                "productVariantId": 0,
                "customFieldId": 0,
                "customFieldValueId": 0,
                "name": "string",
                "originalInventoryName": "string",
                "value": "string",
                "originalInventoryValue": "string"
              }
            ],
            "parent": {
              "id": 0,
              "sku": "string",
              "title": "string",
              "description": "string",
              "manufacturer": "string",
              "insertedAt": "2019-08-24T14:15:22Z",
              "updatedAt": "2019-08-24T14:15:22Z",
              "archived": true,
              "categoryOne": {
                "accountId": 0,
                "insertedAt": "2019-08-24T14:15:22Z",
                "updatedAt": "2019-08-24T14:15:22Z",
                "customized": true,
                "id": 0,
                "name": "string",
                "parentCategoryId": 0,
                "inventoryCategory": {
                  "sourceId": 0,
                  "productCategoryId": 0,
                  "id": 0,
                  "name": "string",
                  "parentCategoryId": 0
                }
              },
              "categoryTwo": {
                "accountId": 0,
                "insertedAt": "2019-08-24T14:15:22Z",
                "updatedAt": "2019-08-24T14:15:22Z",
                "customized": true,
                "id": 0,
                "name": "string",
                "parentCategoryId": 0,
                "inventoryCategory": {
                  "sourceId": 0,
                  "productCategoryId": 0,
                  "id": 0,
                  "name": "string",
                  "parentCategoryId": 0
                }
              },
              "categoryThree": {
                "accountId": 0,
                "insertedAt": "2019-08-24T14:15:22Z",
                "updatedAt": "2019-08-24T14:15:22Z",
                "customized": true,
                "id": 0,
                "name": "string",
                "parentCategoryId": 0,
                "inventoryCategory": {
                  "sourceId": 0,
                  "productCategoryId": 0,
                  "id": 0,
                  "name": "string",
                  "parentCategoryId": 0
                }
              },
              "images": [
                {
                  "productParentId": 0,
                  "productVariantId": 0,
                  "md5Checksum": "string",
                  "originalUrl": "string",
                  "fetched": true,
                  "fetchAttempts": 0,
                  "archived": true,
                  "id": 0,
                  "url": "string",
                  "sortOrder": 0
                }
              ],
              "options": [
                {
                  "productParentId": 0,
                  "id": 0,
                  "name": "string",
                  "globalOptionId": 0,
                  "optionValues": [
                    {
                      "optionId": 0,
                      "value": "string",
                      "position": 0,
                      "globalPosition": 0
                    }
                  ]
                }
              ],
              "attributes": [
                {
                  "productParentId": 0,
                  "id": 0,
                  "attributeId": 0,
                  "attributeValueId": 0,
                  "name": "string",
                  "originalInventoryName": "string",
                  "value": "string",
                  "originalInventoryValue": "string",
                  "isPrivate": true,
                  "mergeToAttributeId": 0,
                  "mergeToAttribute": {},
                  "mergeToAttributeValueId": 0,
                  "mergeToAttributeValue": "string"
                }
              ],
              "customFields": [
                {
                  "productParentId": 0,
                  "id": 0,
                  "customFieldId": 0,
                  "customFieldValueId": 0,
                  "name": "string",
                  "originalInventoryName": "string",
                  "value": "string",
                  "originalInventoryValue": "string"
                }
              ],
              "variants": [
                {
                  "priceOverwrite": {
                    "priceOverwritten": true,
                    "costOverwritten": true,
                    "msrpOverwritten": true,
                    "mapOverwritten": true,
                    "shippingCostOverwritten": true,
                    "dropshipFeeOverwritten": true,
                    "dynamicPrice": 0,
                    "dynamicCost": 0,
                    "dynamicMsrp": 0,
                    "dynamicMap": 0,
                    "dynamicShippingCost": 0,
                    "dynamicDropshipFee": 0
                  },
                  "quantityOverwrite": {
                    "quantityOverwritten": true,
                    "dynamicQuantity": 0,
                    "orderVolumeProtectionLockedAt": "string",
                    "lastManualQuantity": 0,
                    "isLockedByOrderVolumeProtection": "false"
                  },
                  "productParentId": 0,
                  "price": 0,
                  "salePrice": 0,
                  "estimatedShippingCost": 0,
                  "estimatedDropshipFee": 0,
                  "inventoryListPrice": 0,
                  "imagesFetched": true,
                  "productBuilderId": 0,
                  "builtWithMappingTemplateId": 0,
                  "builtAt": "2019-08-24T14:15:22Z",
                  "rebuiltAt": "2019-08-24T14:15:22Z",
                  "inventoryLinks": [
                    {
                      "id": 0,
                      "productVariantId": 0,
                      "inventoryVariantId": 0
                    }
                  ],
                  "productAlternatives": [
                    {
                      "id": 0,
                      "sku": "string",
                      "title": "string",
                      "quantity": 0,
                      "cost": 0,
                      "price": 0,
                      "image": "string",
                      "parentId": 0
                    }
                  ],
                  "referenceIdentifier": "string",
                  "id": 0,
                  "sku": "string",
                  "title": "string",
                  "mpn": "string",
                  "upc": "string",
                  "ean": "string",
                  "asin": "string",
                  "msrp": 0,
                  "map": 0,
                  "weight": 0,
                  "length": 0,
                  "width": 0,
                  "height": 0,
                  "insertedAt": "2019-08-24T14:15:22Z",
                  "updatedAt": "2019-08-24T14:15:22Z",
                  "archived": true,
                  "cost": 0,
                  "quantity": 0,
                  "weightUnit": {
                    "handle": "pound",
                    "abbreviatedHandle": "lb"
                  },
                  "dimensionUnit": {
                    "handle": "inch",
                    "abbreviatedHandle": "in"
                  },
                  "dimensionalWeight": 0,
                  "images": [
                    {
                      "productParentId": 0,
                      "productVariantId": 0,
                      "md5Checksum": "string",
                      "originalUrl": "string",
                      "fetched": true,
                      "fetchAttempts": 0,
                      "archived": true,
                      "id": 0,
                      "url": "string",
                      "sortOrder": 0
                    }
                  ],
                  "options": [
                    {
                      "productParentOptionId": 0,
                      "globalOptionValueId": 0,
                      "productVariantId": 0,
                      "id": 0,
                      "position": 0,
                      "name": "string",
                      "value": "string",
                      "globalPosition": 0
                    }
                  ],
                  "bundle": true,
                  "bundleComponents": [
                    {
                      "componentQuantity": 0,
                      "componentProductVariant": {},
                      "bundleProductVariantId": 0,
                      "componentProductVariantId": 0
                    }
                  ],
                  "listingLinks": [
                    {
                      "listingVariantId": 0,
                      "channelId": 0
                    }
                  ],
                  "customAggregateFields": [
                    {
                      "id": 0,
                      "productVariantId": 0,
                      "accountId": 0,
                      "customAggregateField": {
                        "id": 0,
                        "aggregateFieldDataTypeId": 0,
                        "customAggregateFieldOptionId": 0,
                        "name": "string",
                        "handle": "string",
                        "ignoreOutOfStock": false,
                        "accountId": 0
                      },
                      "name": "string",
                      "value": 0,
                      "customAggregateFieldId": 0
                    }
                  ],
                  "scheduledToDeleteAt": "2019-08-24T14:15:22Z",
                  "customFields": [
                    {
                      "id": 0,
                      "productVariantId": 0,
                      "customFieldId": 0,
                      "customFieldValueId": 0,
                      "name": "string",
                      "originalInventoryName": "string",
                      "value": "string",
                      "originalInventoryValue": "string"
                    }
                  ],
                  "parent": {}
                }
              ],
              "categoryOneId": 0,
              "categoryTwoId": 0,
              "categoryThreeId": 0,
              "imagesFetched": true,
              "productBuilderId": 0,
              "builtWithMappingTemplateId": 0,
              "builtAt": "2019-08-24T14:15:22Z",
              "rebuiltAt": "2019-08-24T14:15:22Z"
            }
          }
        },
        "properties": {
          "priceOverwrite": {
            "$ref": "#/components/schemas/PriceOverwrite"
          },
          "quantityOverwrite": {
            "$ref": "#/components/schemas/QuantityOverwrite"
          },
          "productParentId": {
            "type": "integer"
          },
          "price": {
            "type": "number",
            "description": "The dynamic price, or locked price if overwritten."
          },
          "salePrice": {
            "type": "number"
          },
          "estimatedShippingCost": {
            "type": "number",
            "description": "The dynamic estimated shipping cost, or locked estimated shipping cost if overwritten."
          },
          "estimatedDropshipFee": {
            "type": "number",
            "description": "The dynamic estimated dropship fee, or locked estimated dropship fee if overwritten."
          },
          "inventoryListPrice": {
            "type": "number"
          },
          "imagesFetched": {
            "type": "boolean"
          },
          "productBuilderId": {
            "type": "integer"
          },
          "builtWithMappingTemplateId": {
            "type": "integer"
          },
          "builtAt": {
            "type": "string",
            "format": "date-time"
          },
          "rebuiltAt": {
            "type": "string",
            "format": "date-time"
          },
          "inventoryLinks": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProductVariantInventoryLink"
            }
          },
          "productAlternatives": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AlternateVariant"
            }
          },
          "referenceIdentifier": {
            "type": "string"
          },
          "id": {
            "type": "integer"
          },
          "sku": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "mpn": {
            "type": "string"
          },
          "upc": {
            "type": "string"
          },
          "ean": {
            "type": "string"
          },
          "asin": {
            "type": "string"
          },
          "msrp": {
            "type": "number",
            "description": "The dynamic MSRP, or locked MSRP if overwritten."
          },
          "map": {
            "type": "number",
            "description": "The dynamic MAP, or locked MAP if overwritten."
          },
          "weight": {
            "type": "number"
          },
          "length": {
            "type": "number"
          },
          "width": {
            "type": "number"
          },
          "height": {
            "type": "number"
          },
          "insertedAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archived": {
            "type": "boolean"
          },
          "cost": {
            "type": "number",
            "description": "The dynamic cost, or locked cost if overwritten."
          },
          "quantity": {
            "type": "integer",
            "description": "The dynamic quantity, or locked quantity if overwritten."
          },
          "pendingFulfillmentQuantity": {
            "type": "integer",
            "description": "The # of items on active orders that are waiting to be added to Fulfillment Requests",
            "x-stoplight": {
              "id": "9g5t0ub9ydg9n"
            }
          },
          "weightUnit": {
            "$ref": "#/components/schemas/WeightUnit"
          },
          "dimensionUnit": {
            "$ref": "#/components/schemas/DimensionUnit"
          },
          "dimensionalWeight": {
            "type": "number"
          },
          "images": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProductImage"
            }
          },
          "options": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProductVariantOption"
            }
          },
          "bundle": {
            "type": "boolean",
            "description": "Indicates if this variant is a bundle. This must be set to `true` upon the creation of the variant and cannot be changed after the fact."
          },
          "bundleComponents": {
            "type": "array",
            "description": "Only available when the product is a part of a bundle",
            "items": {
              "$ref": "#/components/schemas/ProductBundleComponent"
            }
          },
          "listingLinks": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProductVariantListingLink"
            }
          },
          "customAggregateFields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProductVariantCustomAggregateField"
            }
          },
          "scheduledToDeleteAt": {
            "type": "string",
            "format": "date-time"
          },
          "customFields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProductVariantCustomField"
            }
          },
          "parent": {
            "$ref": "#/components/schemas/ProductParent"
          },
          "description": {
            "type": "string"
          },
          "tags": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Attach-only: tags listed here are added to the variant (created if missing). Tags are never removed by this endpoint - use PATCH /product/variants/{variantId}/tags (or /listing/variants/{variantId}/tags) to remove."
          },
          "requiresFfl": {
            "type": "boolean",
            "description": "Indicate if FFL information will be required to fulfill this product variant"
          },
          "imageFetcherEventTriggered": {
            "type": "boolean"
          },
          "linkedSourceCount": {
            "type": "integer",
            "description": "The number of sources (inventory variants) linked to the product that act as means of fulfillment"
          }
        },
        "required": [
          "sku"
        ]
      },
      "ProductVariantUpdatedEvent": {
        "type": "object",
        "x-tags": [
          "Events"
        ],
        "properties": {
          "id": {
            "type": "integer",
            "nullable": true
          },
          "accountId": {
            "type": "integer"
          },
          "sku": {
            "type": "string",
            "nullable": true
          },
          "productParentId": {
            "type": "integer",
            "nullable": true
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "accountId",
          "updatedAt"
        ]
      },
      "ListingVariantSyncEvent": {
        "type": "object",
        "x-tags": [
          "Events"
        ],
        "properties": {
          "id": {
            "type": "integer",
            "nullable": true
          },
          "accountId": {
            "type": "integer"
          },
          "listingParentId": {
            "type": "integer",
            "nullable": true
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "accountId",
          "updatedAt"
        ]
      },
      "ProductVariantCreateUpdateRequest": {
        "x-tags": [
          "Models"
        ],
        "type": "object",
        "properties": {
          "changeToSku": {
            "type": "string",
            "description": ""
          },
          "imagesFetched": {
            "type": "boolean",
            "readOnly": true
          }
        },
        "allOf": [
          {
            "$ref": "#/components/schemas/ProductVariant"
          }
        ]
      },
      "PriceOverwrite": {
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "priceOverwritten": {
            "type": "boolean",
            "description": "True if the dynamic price is overwritten to a locked value."
          },
          "costOverwritten": {
            "type": "boolean",
            "description": "True if the dynamic cost is overwritten to a locked value."
          },
          "msrpOverwritten": {
            "type": "boolean",
            "description": "True if the dynamic MSRP is overwritten to a locked value."
          },
          "mapOverwritten": {
            "type": "boolean",
            "description": "True if the dynamic MAP is overwritten to a locked value."
          },
          "shippingCostOverwritten": {
            "type": "boolean",
            "description": "True if the dynamic estimated shipping cost is overwritten to a locked value."
          },
          "dropshipFeeOverwritten": {
            "type": "boolean",
            "description": "True if the dynamic estimated dropship fee is overwritten to a locked value."
          },
          "dynamicPrice": {
            "type": "number",
            "description": "The price value that is dynamically calculated based on the aggregate rules and/or workflow rules configured.\n\nThis value will be restored as the variant price upon removing an overwrite.",
            "readOnly": true
          },
          "dynamicCost": {
            "type": "number",
            "description": "The cost value that is dynamically calculated based on the aggregate rules and/or workflow rules configured.\n\nThis value will be restored as the variant cost upon removing an overwrite.",
            "readOnly": true
          },
          "dynamicMsrp": {
            "type": "number",
            "description": "The MSRP value that is dynamically calculated based on the aggregate rules and/or workflow rules configured.\n\nThis value will be restored as the variant MSRP upon removing an overwrite.",
            "readOnly": true
          },
          "dynamicMap": {
            "type": "number",
            "description": "The MAP value that is dynamically calculated based on the aggregate rules and/or workflow rules configured.\n\nThis value will be restored as the variant MAP upon removing an overwrite.",
            "readOnly": true
          },
          "dynamicShippingCost": {
            "type": "number",
            "description": "The estimated shipping cost value that is dynamically calculated based on the aggregate rules and/or workflow rules configured.\n\nThis value will be restored as the variant estimated shipping cost upon removing an overwrite.",
            "readOnly": true
          },
          "dynamicDropshipFee": {
            "type": "number",
            "description": "The estimated dropship fee value that is dynamically calculated based on the aggregate rules and/or workflow rules configured.\n\nThis value will be restored as the variant estimated dropship fee upon removing an overwrite.",
            "readOnly": true
          }
        }
      },
      "QuantityOverwrite": {
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "quantityOverwritten": {
            "type": "boolean",
            "description": "True if the dynamic quantity is overwritten to a locked value."
          },
          "dynamicQuantity": {
            "type": "integer",
            "description": "The quantity value that is dynamically calculated based on the aggregate rules and/or workflow rules configured.\n\nThis value will be restored as the variant quantity upon removing an overwrite.",
            "readOnly": true
          },
          "orderVolumeProtectionLockedAt": {
            "type": "string",
            "description": "The timestamp of when the item was locked by order volume protection.",
            "readOnly": true
          },
          "lastManualQuantity": {
            "type": "integer",
            "description": "The previous manually locked quantity. This value is only populated when a quantity overwritten variant gets locked by order volume protection.",
            "readOnly": true
          },
          "isLockedByOrderVolumeProtection": {
            "type": "boolean",
            "default": "false",
            "description": "A boolean value representing if the variant is locked by order volume protection."
          }
        }
      },
      "InventoryProductVariantLink": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer"
          },
          "productVariantId": {
            "type": "integer"
          },
          "inventoryVariantId": {
            "type": "integer",
            "format": "int64"
          }
        },
        "required": [
          "inventoryVariantId"
        ],
        "x-tags": [
          "Models"
        ]
      },
      "ProductVariantInventoryLink": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer"
          },
          "productVariantId": {
            "type": "integer"
          },
          "inventoryVariantId": {
            "type": "integer",
            "format": "int64"
          },
          "sourceId": {
            "type": "integer"
          },
          "sku": {
            "type": "string"
          },
          "archived": {
            "type": "boolean"
          },
          "quantity": {
            "type": "integer"
          },
          "cost": {
            "type": "number"
          },
          "msrp": {
            "type": "number"
          },
          "map": {
            "type": "number"
          },
          "shippingCost": {
            "type": "number"
          },
          "dropshipFee": {
            "type": "number"
          },
          "inventoryListPrice": {
            "type": "number"
          }
        },
        "required": [
          "inventoryVariantId"
        ],
        "x-tags": [
          "Models"
        ]
      },
      "ProductVariantOption": {
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "productParentOptionId": {
            "type": "integer"
          },
          "globalOptionValueId": {
            "type": "integer",
            "format": "int64"
          },
          "productVariantId": {
            "type": "integer"
          },
          "id": {
            "type": "integer"
          },
          "position": {
            "type": "integer"
          },
          "name": {
            "type": "string"
          },
          "value": {
            "type": "string"
          },
          "globalPosition": {
            "type": "integer"
          }
        },
        "required": [
          "name",
          "value"
        ]
      },
      "WeightUnit": {
        "title": "WeightUnit",
        "type": "object",
        "nullable": true,
        "properties": {
          "handle": {
            "type": "string",
            "enum": [
              "pound",
              "ounce",
              "gram",
              "kilogram"
            ]
          },
          "abbreviatedHandle": {
            "type": "string",
            "enum": [
              "lb",
              "oz",
              "g",
              "kg"
            ]
          }
        },
        "x-tags": [
          "Models"
        ]
      },
      "DimensionUnit": {
        "title": "DimensionUnit",
        "type": "object",
        "nullable": true,
        "properties": {
          "handle": {
            "type": "string",
            "enum": [
              "inch",
              "centimeter"
            ]
          },
          "abbreviatedHandle": {
            "type": "string",
            "enum": [
              "in",
              "cm"
            ]
          }
        },
        "x-tags": [
          "Models"
        ]
      },
      "Account": {
        "title": "Account",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "id": {
            "type": "integer"
          },
          "productPriceWorkflowEventId": {
            "type": "integer"
          },
          "defaultOrderRoutingGroupId": {
            "type": "integer"
          },
          "orderRoutingWorkflowEventId": {
            "type": "integer"
          },
          "subdomain": {
            "type": "string"
          },
          "brandName": {
            "type": "string"
          },
          "companyName": {
            "type": "string"
          }
        },
        "required": [
          "id"
        ]
      },
      "User": {
        "title": "User",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "id": {
            "type": "integer"
          },
          "firstName": {
            "type": "string"
          },
          "lastName": {
            "type": "string"
          },
          "email": {
            "type": "string"
          },
          "isPrimary": {
            "type": "boolean"
          },
          "insertedAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "lastLoginAt": {
            "type": "string",
            "format": "date-time"
          },
          "notificationsLastCheckedAt": {
            "type": "string",
            "format": "date-time"
          },
          "lastSessionAt": {
            "type": "string",
            "format": "date-time"
          },
          "minutesOfActivity": {
            "type": "integer"
          },
          "timeZone": {
            "type": "string",
            "description": "IANA time zone identifier, for example America/New_York. Null when the user has not chosen one."
          },
          "role": {
            "$ref": "#/components/schemas/UserRole"
          }
        },
        "required": [
          "email",
          "firstName",
          "lastName"
        ]
      },
      "UserRole": {
        "title": "UserRole",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "id": {
            "type": "integer"
          },
          "name": {
            "type": "string",
            "enum": [
              "Admin",
              "Support Specialist",
              "Support Specialist Lite",
              "Read Only"
            ]
          },
          "handle": {
            "type": "string",
            "enum": [
              "admin",
              "support",
              "support_lite",
              "read_only"
            ]
          }
        },
        "required": [
          "id",
          "name",
          "handle"
        ]
      },
      "ProductAggregateField": {
        "title": "ProductAggregateField",
        "type": "object",
        "properties": {
          "id": {
            "type": "integer"
          },
          "handle": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "options": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProductAggregateFieldOption"
            }
          },
          "activeOption": {
            "$ref": "#/components/schemas/ProductAggregateFieldOption"
          },
          "defaultOption": {
            "$ref": "#/components/schemas/ProductAggregateFieldOption"
          },
          "ignoreOutOfStock": {
            "type": "boolean"
          }
        },
        "required": [
          "id",
          "handle"
        ],
        "x-tags": [
          "Models"
        ]
      },
      "ProductAggregateRunData": {
        "title": "ProductAggregateFieldRunData",
        "type": "object",
        "properties": {
          "workflowEventId": {
            "type": "integer"
          },
          "aggregateFields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProductAggregateField"
            }
          }
        },
        "x-tags": [
          "Models"
        ]
      },
      "ProductAggregateFieldOption": {
        "title": "ProductAggregateFieldOption",
        "type": "object",
        "properties": {
          "id": {
            "type": "integer"
          },
          "handle": {
            "type": "string"
          },
          "name": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "handle"
        ],
        "x-tags": [
          "Models"
        ]
      },
      "ProductBundleComponent": {
        "title": "ProductBundleComponent",
        "type": "object",
        "properties": {
          "componentQuantity": {
            "type": "integer"
          },
          "componentProductVariant": {
            "$ref": "#/components/schemas/ProductVariant"
          },
          "bundleProductVariantId": {
            "type": "integer"
          },
          "componentProductVariantId": {
            "type": "integer"
          }
        },
        "x-tags": [
          "Models"
        ],
        "required": [
          "componentQuantity",
          "componentProductVariantId"
        ]
      },
      "InventoryPair": {
        "title": "InventoryPair",
        "type": "object",
        "properties": {
          "parent": {
            "$ref": "#/components/schemas/InventoryParent"
          },
          "variant": {
            "$ref": "#/components/schemas/InventoryVariant"
          }
        },
        "required": [
          "parent",
          "variant"
        ],
        "description": "A pair holding a parent and a single one of it's variants",
        "x-tags": [
          "Models"
        ]
      },
      "ProductPair": {
        "title": "ProductPair",
        "type": "object",
        "description": "A pair holding a parent and a single one of it's variants",
        "properties": {
          "parent": {
            "$ref": "#/components/schemas/ProductParent"
          },
          "variant": {
            "$ref": "#/components/schemas/ProductVariant"
          }
        },
        "required": [
          "parent",
          "variant"
        ],
        "x-tags": [
          "Models"
        ]
      },
      "ProductBuilder": {
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "x-internal": false,
        "properties": {
          "id": {
            "type": "integer"
          },
          "accountId": {
            "type": "integer"
          },
          "createdByUserId": {
            "type": "integer"
          },
          "modifiedAt": {
            "type": "string",
            "format": "date-time"
          },
          "useAsDefault": {
            "type": "boolean",
            "description": "Indicate that this product builder should be used by default during product building if no other product builder is manually specified."
          },
          "name": {
            "type": "string"
          },
          "onConflictLink": {
            "type": "boolean"
          },
          "attachToExistingParent": {
            "type": "boolean"
          },
          "firstVariantImage": {
            "type": "boolean"
          },
          "firstVariantTitle": {
            "type": "boolean"
          },
          "mappingEventId": {
            "type": "integer"
          },
          "linkOnMasterSku": {
            "type": "boolean",
            "deprecated": true
          },
          "linkOnUpc": {
            "type": "boolean",
            "deprecated": true
          },
          "linkOnMpn": {
            "type": "boolean",
            "deprecated": true
          },
          "linkOnAsin": {
            "type": "boolean",
            "deprecated": true
          },
          "linkOnEan": {
            "type": "boolean",
            "deprecated": true
          },
          "linkOnReferenceIdentifier": {
            "type": "boolean",
            "deprecated": true
          },
          "linkingFields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProductBuilderLinkingField"
            }
          },
          "rebuildListingsForChannelIds": {
            "type": "array",
            "items": {
              "description": "A list of channel IDs that will cause any listings within the channels to be auto-rebuilt when data is merged and a product is rebuilt due to a new link attachement",
              "type": "integer"
            }
          },
          "archivedAction": {
            "type": "string",
            "enum": [
              "create",
              "review",
              "fail"
            ]
          },
          "parentAttachmentTypePriority": {
            "type": "string",
            "enum": [
              "intelligent",
              "basic"
            ]
          },
          "parentAttachmentIntelligentMatchAction": {
            "type": "string",
            "enum": [
              "attach",
              "review",
              "fail"
            ]
          },
          "parentAttachmentBasicMatchAction": {
            "type": "string",
            "enum": [
              "attach",
              "review",
              "fail"
            ]
          },
          "parentCreationAction": {
            "type": "string",
            "enum": [
              "create",
              "review",
              "fail"
            ]
          },
          "parentAttachmentDifferentSourceAction": {
            "type": "string",
            "enum": [
              "create",
              "review",
              "attach"
            ]
          },
          "duplicateSkuReview": {
            "type": "boolean"
          },
          "duplicateSourceReview": {
            "type": "boolean"
          },
          "allowVariantCreation": {
            "type": "boolean"
          },
          "rebuildVariantWhenNewlyLinked": {
            "type": "boolean"
          },
          "rebuildVariantWhenAlreadyLinked": {
            "type": "boolean"
          },
          "rebuildParentWhenVariantNewlyLinked": {
            "type": "boolean"
          },
          "rebuildParentWhenVariantAlreadyLinked": {
            "type": "boolean"
          },
          "upcValidationAction": {
            "x-stoplight": {
              "id": "xloa02m657y34"
            },
            "enum": [
              "create",
              "review",
              "fail"
            ]
          }
        }
      },
      "ProductBuilderSourcePriority": {
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "sourceId": {
            "type": "integer"
          },
          "priority": {
            "type": "integer"
          }
        },
        "required": [
          "sourceId"
        ]
      },
      "ProductBuilderLinkingField": {
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "fromInventoryField": {
            "type": "string",
            "enum": [
              "inventorySku",
              "masterSku",
              "upc",
              "mpn",
              "asin",
              "ean",
              "referenceIdentifier"
            ]
          },
          "toProductField": {
            "type": "string",
            "enum": [
              "masterSku",
              "upc",
              "mpn",
              "asin",
              "ean",
              "referenceIdentifier"
            ]
          }
        },
        "required": [
          "fromInventoryField",
          "toProductField"
        ]
      },
      "ProductBuilderFieldPriority": {
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "builderId": {
            "type": "integer"
          },
          "globalObjectFieldId": {
            "type": "integer"
          },
          "sourcePriorities": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProductBuilderFieldPriorityForSource"
            }
          }
        },
        "required": [
          "sourcePriorities"
        ]
      },
      "ProductBuilderFieldPriorityForSource": {
        "type": "object",
        "required": [
          "sourceId",
          "priority"
        ],
        "properties": {
          "sourceId": {
            "type": "integer"
          },
          "priority": {
            "type": "integer"
          }
        },
        "x-tags": [
          "Models"
        ]
      },
      "ProductBuilderLinkRule": {
        "title": "ProductBuilderLinkRule",
        "type": "object",
        "properties": {
          "id": {
            "type": "integer"
          },
          "value1": {
            "type": "string"
          },
          "value2": {
            "type": "string"
          },
          "value3": {
            "type": "string"
          },
          "value4": {
            "type": "string"
          },
          "value5": {
            "type": "string"
          },
          "value6": {
            "type": "string"
          },
          "outcome": {
            "$ref": "#/components/schemas/ProductBuilderLinkRuleOutcome"
          },
          "type": {
            "$ref": "#/components/schemas/ProductBuilderLinkRuleType"
          }
        },
        "required": [
          "outcome",
          "type"
        ],
        "x-tags": [
          "Models"
        ]
      },
      "ProductBuilderLinkRuleOutcome": {
        "title": "ProductBuilderLinkRuleOutcome",
        "type": "object",
        "properties": {
          "id": {
            "type": "integer"
          },
          "handle": {
            "type": "string",
            "enum": [
              "fail",
              "review"
            ]
          },
          "name": {
            "type": "string"
          }
        },
        "required": [
          "handle"
        ],
        "x-tags": [
          "Models"
        ]
      },
      "ProductBuilderLinkRuleType": {
        "title": "ProductBuilderLinkRuleType",
        "type": "object",
        "properties": {
          "id": {
            "type": "integer"
          },
          "handle": {
            "type": "string",
            "enum": [
              "cost_basic",
              "cost_range",
              "brands_not_equal",
              "title_contains",
              "mpn_not_upc"
            ]
          },
          "name": {
            "type": "string"
          }
        },
        "required": [
          "handle"
        ],
        "x-tags": [
          "Models"
        ]
      },
      "MappingTemplate": {
        "title": "MappingTemplate",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "id": {
            "type": "integer"
          },
          "eventId": {
            "type": "integer"
          },
          "eventHandle": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "csvIndexBased": {
            "type": "boolean"
          },
          "fields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MappingField"
            }
          },
          "mappingEventGroupReplaceModes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MappingEventGroupReplaceMode"
            }
          },
          "useAsDefault": {
            "type": "boolean",
            "description": "Whether automated processes for the given `eventId` this mapping template is associated with should automatically default to using this mapping template if none are specified via other means."
          }
        },
        "required": [
          "eventId",
          "name"
        ]
      },
      "MappingEventGroupReplaceMode": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer"
          },
          "mappingEventId": {
            "type": "integer"
          },
          "globalObjectFieldGroupId": {
            "type": "integer"
          },
          "globalObjectFieldGroupHandle": {
            "type": "string"
          },
          "replaceInsteadOfAdd": {
            "type": "boolean"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "isParentGroup": {
            "type": "boolean"
          }
        },
        "required": [
          "mappingEventId",
          "globalObjectFieldGroupId"
        ],
        "x-tags": [
          "Models"
        ]
      },
      "ProductBuilderBuildOptions": {
        "title": "ProductBuilderBuildOptions",
        "type": "object",
        "properties": {
          "productBuilderId": {
            "type": "integer",
            "description": "(optional) A specific product builder to use. If null the system default will be used."
          },
          "mappingTemplateId": {
            "type": "integer",
            "description": "(optional) A specific mapping template to use. If null the system default will be used."
          },
          "fetchImages": {
            "type": "boolean",
            "description": "If true, images fetch events will be triggered."
          }
        },
        "x-tags": [
          "Models"
        ],
        "x-internal": false
      },
      "InventoryProductBuilderBuildOptions": {
        "title": "InventoryProductBuilderBuildOptions",
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/ProductBuilderBuildOptions"
          }
        ],
        "properties": {
          "deleteExistingBuilderIssues": {
            "type": "boolean",
            "description": "(optional) Before attempting the build, remove any existing builder issues associated with the inventory variant. Use if you want a clean build attempt executed with the call while disregarding all builder issues up to this point."
          }
        },
        "x-tags": [
          "Models"
        ],
        "x-internal": false
      },
      "ProductBuilderBuildResponse": {
        "title": "ProductBuilderBuildResponse",
        "type": "object",
        "description": "",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "built": {
            "type": "boolean"
          },
          "rebuilt": {
            "type": "boolean"
          },
          "linked": {
            "type": "boolean"
          },
          "alreadyBuiltAndLinked": {
            "type": "boolean"
          },
          "needsReview": {
            "type": "boolean"
          },
          "productVariantId": {
            "type": "integer"
          },
          "productParentId": {
            "type": "integer"
          },
          "inventoryVariantId": {
            "type": "integer",
            "format": "int64"
          },
          "issue": {
            "$ref": "#/components/schemas/ProductBuilderIssue"
          },
          "removedDueToStaleMatch": {
            "type": "boolean",
            "description": "If an issue previously arose between an inventory variant and a product variant and either of the values the original match occurred on has changed the issue will be removed and the build will not be attempted."
          },
          "discarded": {
            "type": "boolean"
          },
          "productToListingBuilderList": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProductToListingBuilder"
            }
          }
        },
        "required": [
          "built",
          "rebuilt",
          "linked",
          "alreadyBuiltAndLinked",
          "needsReview",
          "inventoryVariantId",
          "removedDueToStaleMatch",
          "discarded"
        ],
        "x-internal": false
      },
      "ProductBuilderIssue": {
        "title": "ProductBuilderIssue",
        "type": "object",
        "x-examples": {
          "example-1": {
            "id": 0,
            "inventoryVariantId": 0,
            "accountId": 0,
            "insertedAt": "2019-08-24T14:15:22Z",
            "mappingTemplateId": 0,
            "productBuilderId": 0,
            "matchedProductVariantId": 0,
            "type": "mismatch",
            "status": "keep",
            "matchType": "upc",
            "matchValue": "string",
            "mismatchLinkRules": [
              {
                "id": 0,
                "value1": "string",
                "value2": "string",
                "value3": "string",
                "value4": "string",
                "value5": "string",
                "value6": "string",
                "outcome": {
                  "id": "string",
                  "handle": "fail",
                  "name": "string"
                },
                "type": {
                  "id": "string",
                  "handle": "cost_basic",
                  "name": "string"
                }
              }
            ],
            "mismatchInventoryVariantIds": [
              0
            ],
            "mismatchActionKeep": true,
            "duplicateSourceActionKeep": true,
            "duplicateSourceInventoryVariantId": 0,
            "archivedActionKeep": true,
            "parentCreationActionKeep": true,
            "parentAttachmentActionKeep": true,
            "duplicateSkuProductVariantId": 0,
            "duplicateUseSku": "string",
            "generatedVariantSku": "string",
            "generatedParentSku": "string",
            "parentAttachmentProductParentId": 0
          }
        },
        "x-tags": [
          "Models"
        ],
        "required": [
          "id",
          "inventoryVariantId"
        ],
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "inventoryVariantId": {
            "type": "integer",
            "format": "int64"
          },
          "accountId": {
            "type": "integer"
          },
          "insertedAt": {
            "type": "string",
            "format": "date-time"
          },
          "mappingTemplateId": {
            "type": "integer"
          },
          "productBuilderId": {
            "type": "integer"
          },
          "matchedProductVariantId": {
            "type": "integer",
            "description": "The product variant ID that this inventory variant matched with on the basis of a shared GTIN that it will be added as an additional inventory link to."
          },
          "type": {
            "type": "string",
            "enum": [
              "mismatch",
              "duplicate_sources",
              "archived",
              "parent_creation",
              "parent_attachment",
              "duplicate_sku",
              "pending_build",
              "invalid_upc",
              "parent_attachment_different_source"
            ]
          },
          "status": {
            "type": "string",
            "enum": [
              "keep",
              "needs_review",
              "discard"
            ]
          },
          "matchType": {
            "type": "string",
            "enum": [
              "upc",
              "mpn",
              "ean",
              "asin",
              "reference_identifier",
              "master_sku",
              "inventory_sku"
            ],
            "description": "The ID type that this inventory variant matched against an existing product variant with."
          },
          "matchValue": {
            "type": "string",
            "description": "The ID value that this inventory variant matched against an existing product variant with."
          },
          "productMatchType": {
            "type": "string",
            "enum": [
              "upc",
              "mpn",
              "ean",
              "asin",
              "reference_identifier",
              "master_sku"
            ],
            "description": "The ID type that was used to match to an existing product variant from an inventory variant. NOTE : This value will be empty for matches made using the legacy matching style."
          },
          "triggeredLinkRules": {
            "type": "array",
            "description": "The product builder link rules that failed when run against this inventory variant and the existing linked ones.",
            "items": {
              "$ref": "#/components/schemas/ProductBuilderTriggeredLinkRule"
            }
          },
          "mismatchActionKeep": {
            "type": "boolean",
            "description": "When the issue is of the type `MISMATCH` setting this to true will allow the next build attempt for the inventory variant to occur. Setting this to false will delete the issue."
          },
          "duplicateSourceActionKeep": {
            "type": "boolean",
            "description": "When the issue is of the type `DUPLICATE_SOURCE` setting this to true will allow the next build attempt for the inventory variant to occur and will remove the existing inventory link from the same source. Setting this to false will delete the issue."
          },
          "duplicateSourceInventoryVariantId": {
            "type": "integer",
            "format": "int64",
            "description": "The inventory variant ID that is from the same source"
          },
          "archivedActionKeep": {
            "type": "boolean",
            "description": "When the issue is of the type `ARCHIVE` setting this to true will allow the next build attempt for the inventory variant to occur. Setting this to false will delete the issue."
          },
          "parentCreationActionKeep": {
            "type": "boolean",
            "description": "When the issue is of the type `PARENT_CREATION` setting this to true will allow the next build attempt for the inventory parent & variant to occur. Setting this to false will delete the issue."
          },
          "parentAttachmentActionKeep": {
            "type": "boolean",
            "description": "When the issue is of the type `PARENT_ATTACHMENT` setting this to true will allow the next build attempt for the inventory variant to occurr. Setting this to false will delete the issue."
          },
          "duplicateSkuProductVariantId": {
            "type": "integer"
          },
          "duplicateUseSku": {
            "type": "string",
            "description": "When the issue is of the type `DUPLICATE_SKU` setting this will cause the next build attempt of the inventory variant to be built with the SKU specified in this property."
          },
          "generatedVariantSku": {
            "type": "string",
            "description": "The variant SKU that was generated by running the inventory variant and all of the other linked inventory variants through the mapping tempmlate."
          },
          "generatedParentSku": {
            "type": "string",
            "description": "The parent SKU that was generated by running the inventory variant and all of the other linked inventory variants through the mapping tempmlate."
          },
          "parentAttachmentProductParentId": {
            "type": "integer",
            "description": "The ID of the product parent that this inventory variant is pending being attached to."
          },
          "hasListingsToBuild": {
            "type": "boolean",
            "default": false
          },
          "internalBuildErrorMessage": {
            "type": "string",
            "description": "Internal build error message in case product fails to build with any readable message"
          },
          "internalBuildErrorOn": {
            "type": "string",
            "format": "date-time",
            "description": "If non-null this is a timestamp indicating that the last build of this issue failed"
          },
          "batchId": {
            "type": "string",
            "format": "uuid"
          },
          "parentAttachmentDifferentSourceActionKeep": {
            "type": "boolean",
            "description": "When true, the different-source parent attachment warning is bypassed and the variant is attached to the matched parent."
          }
        }
      },
      "ProductVariantCustomField": {
        "title": "ProductVariantCustomField",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "allOf": [
          {
            "$ref": "#/components/schemas/CustomField"
          }
        ],
        "properties": {
          "productVariantId": {
            "type": "integer"
          }
        },
        "required": [
          "name",
          "value"
        ]
      },
      "DeprecatedSetting": {
        "title": "DeprecatedSetting",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "settingId": {
            "type": "integer"
          },
          "name": {
            "type": "string"
          },
          "handle": {
            "type": "string",
            "enum": [
              "source.send_po_from_vendor_portal",
              "source.cancel_unacknowledged_items",
              "source.upload_inventory_from_vendor_portal",
              "source.upload_shipment_from_vendor_portal",
              "source.upload_invoice_from_vendor_portal",
              "skip_getting_started_source_wizard",
              "account.settings.rate_shopping",
              "feature_flag.channel_wizard",
              "feature_flag.order_volume_protection",
              "feature_flag.accounting_wizard",
              "supplier.override_billing_address",
              "channel_wizard.skip_getting_started",
              "channel_wizard.skip_listing_management",
              "feature_flag.return_management",
              "feature_flag.sync_orders_use_flxpoint_api",
              "feature_flag.sync_listings_use_flxpoint_api",
              "feature_flag.publish_listings_use_flxpoint_api",
              "feature_flag.get_inventory_use_flxpoint_api",
              "feature_flag.get_source_products_use_flxpoint_api",
              "notification.default_email",
              "notification.purchase_order_failure",
              "notification.purchase_order_failure.override_email",
              "channel_wizard.skip_order_fulfillment",
              "feature_flag.automate_purchasing_shipping_labels",
              "notification.new_channel_shipping_method",
              "feature_flag.get_orders_use_flxpoint_api",
              "notification.new_channel_shipping_method.override_email",
              "notification.automate_shipping_label_failure",
              "notification.automate_shipping_label_failure.override_email",
              "feature_flag.optimized_cross_dock_po",
              "source.ffl_info_for_crossdocking",
              "notification.new_order_import.override_email",
              "notification.new_order_import",
              "notification.purchase_order_canceled",
              "notification.purchase_order_canceled.override_email",
              "feature_flag.accounting_use_flxpoint_api",
              "feature_flag.order_item_shipping_address",
              "feature_flag.shipping_carrier_custom_label_fields",
              "feature_flag.auto_create_products_and_listings",
              "feature_flag.get_source_products_use_flxpoint_api_batch_approach",
              "feature_flag.commit_stock_upon_creation",
              "feature_flag.fulfillable_item_alerts",
              "notification.fulfillable_item",
              "notification.fulfillable_item.override_email",
              "notification.order_authorized",
              "notification.order_authorized.override_email",
              "notification.new_dealer_signup",
              "notification.source_invoice_cogs_mismatch",
              "supplier.hide_auth_settings_and_auto_authorized",
              "auto_authorize",
              "auto_authorize_up_to",
              "source.add_additional_order_fees",
              "feature_flag.override_image_threshold_count",
              "account.onboarding_guides",
              "feature_flag.use_shopify_version_2024_07",
              "account.is_to_flx_migration",
              "feature_flag.amazon_use_json_listing_feed_type",
              "account.onboarding_event_tracking",
              "feature_flag.feed_based_monitoring_cache_strategy",
              "feature_flag.source_currency",
              "feature_flag.ship_engine_branding",
              "feature_flag.historical_avg_shipping_cost",
              "feature_flag.image_compression",
              "feature_flag.enable_landnsea_marketing_file_access"
            ]
          },
          "required": {
            "type": "boolean"
          },
          "type": {
            "type": "string"
          },
          "valueType": {
            "type": "string"
          },
          "hidden": {
            "type": "boolean"
          },
          "placeholder": {
            "type": "string"
          },
          "id": {
            "type": "integer"
          },
          "accountId": {
            "type": "integer"
          },
          "value": {
            "type": "string"
          },
          "defaultValue": {
            "type": "string"
          },
          "insertedAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "description": {
            "type": "string"
          },
          "options": {
            "type": "string"
          },
          "parentSettingId": {
            "type": "integer"
          },
          "settingCategory": {
            "$ref": "#/components/schemas/SettingCategory"
          }
        },
        "required": [
          "handle"
        ]
      },
      "SettingCategory": {
        "title": "SettingCategory",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "id": {
            "type": "integer"
          },
          "handle": {
            "type": "string",
            "enum": [
              "supplier.settings",
              "dealer.invoice.settings",
              "account.settings",
              "notifications",
              "account.b2b",
              "channel.settings",
              "feature_flags",
              "dealer.channel.settings",
              "source.settings",
              "vendor.settings"
            ]
          },
          "name": {
            "type": "string"
          }
        }
      },
      "ProductBuilderTriggeredLinkRule": {
        "title": "ProductBuilderTriggeredLinkRule",
        "type": "object",
        "properties": {
          "productBuilderLinkRule": {
            "$ref": "#/components/schemas/ProductBuilderLinkRule"
          },
          "inventoryVariantIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int64"
            }
          }
        },
        "required": [
          "productBuilderLinkRule",
          "inventoryVariantIds"
        ],
        "x-tags": [
          "Models"
        ]
      },
      "ListingParent": {
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "id": {
            "type": "integer"
          },
          "accountId": {
            "type": "integer"
          },
          "sku": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "manufacturer": {
            "type": "string"
          },
          "insertedAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archived": {
            "type": "boolean"
          },
          "categoryOne": {
            "$ref": "#/components/schemas/ListingCategory"
          },
          "categoryTwo": {
            "$ref": "#/components/schemas/ListingCategory"
          },
          "categoryThree": {
            "$ref": "#/components/schemas/ListingCategory"
          },
          "images": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ListingImage"
            }
          },
          "options": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ListingParentOption"
            }
          },
          "attributes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ListingParentAttribute"
            }
          },
          "customFields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ListingParentCustomField"
            }
          },
          "variants": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ListingVariant"
            }
          },
          "categoryOneId": {
            "type": "integer"
          },
          "categoryTwoId": {
            "type": "integer"
          },
          "categoryThreeId": {
            "type": "integer"
          },
          "imagesFetched": {
            "type": "boolean"
          },
          "builtWithMappingTemplateId": {
            "type": "integer"
          },
          "builtAt": {
            "type": "string",
            "format": "date-time"
          },
          "rebuiltAt": {
            "type": "string",
            "format": "date-time"
          },
          "channelId": {
            "type": "integer"
          },
          "productParentId": {
            "type": "integer"
          },
          "externalListingId": {
            "type": "string",
            "description": ""
          },
          "publishError": {
            "type": "string"
          },
          "syncError": {
            "type": "string"
          },
          "staticContentUpdatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "staticContentSyncedAt": {
            "type": "string",
            "format": "date-time"
          },
          "linkAttemptedAt": {
            "type": "string",
            "format": "date-time"
          },
          "listingStatus": {
            "$ref": "#/components/schemas/ListingStatus"
          },
          "changeToListingStatus": {
            "$ref": "#/components/schemas/ListingStatus"
          },
          "pausedAt": {
            "type": "string",
            "format": "date-time"
          },
          "scheduledToDeleteAt": {
            "type": "string",
            "format": "date-time"
          },
          "tags": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "imageFetcherEventTriggered": {
            "type": "boolean"
          }
        },
        "required": [
          "sku",
          "channelId",
          "productParentId"
        ],
        "x-examples": {
          "Example 1": {
            "id": 0,
            "accountId": 0,
            "sku": "string",
            "title": "string",
            "description": "string",
            "manufacturer": "string",
            "insertedAt": "2019-08-24T14:15:22Z",
            "updatedAt": "2019-08-24T14:15:22Z",
            "archived": true,
            "categoryOne": {
              "accountId": 0,
              "insertedAt": "2019-08-24T14:15:22Z",
              "updatedAt": "2019-08-24T14:15:22Z",
              "customized": true,
              "id": 0,
              "name": "string",
              "parentCategoryId": 0,
              "productCategory": {
                "accountId": 0,
                "insertedAt": "2019-08-24T14:15:22Z",
                "updatedAt": "2019-08-24T14:15:22Z",
                "customized": true,
                "id": 0,
                "name": "string",
                "parentCategoryId": 0,
                "inventoryCategory": {
                  "sourceId": 0,
                  "productCategoryId": 0,
                  "id": 0,
                  "name": "string",
                  "parentCategoryId": 0
                }
              },
              "channelId": 0,
              "productCategoryId": 0
            },
            "categoryTwo": {
              "accountId": 0,
              "insertedAt": "2019-08-24T14:15:22Z",
              "updatedAt": "2019-08-24T14:15:22Z",
              "customized": true,
              "id": 0,
              "name": "string",
              "parentCategoryId": 0,
              "productCategory": {
                "accountId": 0,
                "insertedAt": "2019-08-24T14:15:22Z",
                "updatedAt": "2019-08-24T14:15:22Z",
                "customized": true,
                "id": 0,
                "name": "string",
                "parentCategoryId": 0,
                "inventoryCategory": {
                  "sourceId": 0,
                  "productCategoryId": 0,
                  "id": 0,
                  "name": "string",
                  "parentCategoryId": 0
                }
              },
              "channelId": 0,
              "productCategoryId": 0
            },
            "categoryThree": {
              "accountId": 0,
              "insertedAt": "2019-08-24T14:15:22Z",
              "updatedAt": "2019-08-24T14:15:22Z",
              "customized": true,
              "id": 0,
              "name": "string",
              "parentCategoryId": 0,
              "productCategory": {
                "accountId": 0,
                "insertedAt": "2019-08-24T14:15:22Z",
                "updatedAt": "2019-08-24T14:15:22Z",
                "customized": true,
                "id": 0,
                "name": "string",
                "parentCategoryId": 0,
                "inventoryCategory": {
                  "sourceId": 0,
                  "productCategoryId": 0,
                  "id": 0,
                  "name": "string",
                  "parentCategoryId": 0
                }
              },
              "channelId": 0,
              "productCategoryId": 0
            },
            "images": [
              {
                "listingParentId": 0,
                "listingVariantId": 0,
                "md5Checksum": "string",
                "id": 0,
                "url": "string",
                "sortOrder": 0,
                "createdAt": "2019-08-24T14:15:22Z",
                "publishedAt": "2019-08-24T14:15:22Z",
                "staticContentUpdatedAt": "2019-08-24T14:15:22Z",
                "staticContentSyncedAt": "2019-08-24T14:15:22Z",
                "dynamicContentUpdatedAt": "2019-08-24T14:15:22Z",
                "dynamicCOntentSyncedAt": "2019-08-24T14:15:22Z",
                "publishing": true,
                "externalListingId": "string",
                "listingError": "string",
                "productParentImageId": 0,
                "productVariantImageId": 0
              }
            ],
            "options": [
              {
                "listingParentId": 0,
                "globalOptionId": 0,
                "id": 0,
                "name": "string",
                "optionValues": [
                  {
                    "optionId": 0,
                    "value": "string",
                    "position": 0,
                    "globalPosition": 0
                  }
                ]
              }
            ],
            "attributes": [
              {
                "listingParentId": 0,
                "id": 0,
                "attributeId": 0,
                "attributeValueId": 0,
                "name": "string",
                "originalInventoryName": "string",
                "value": "string",
                "originalInventoryValue": "string",
                "isPrivate": true,
                "mergeToAttributeId": 0,
                "mergeToAttribute": {},
                "mergeToAttributeValueId": 0,
                "mergeToAttributeValue": "string"
              }
            ],
            "customFields": [
              {
                "listingParentId": 0,
                "id": 0,
                "customFieldId": 0,
                "customFieldValueId": 0,
                "name": "string",
                "originalInventoryName": "string",
                "value": "string",
                "originalInventoryValue": "string"
              }
            ],
            "variants": [
              {
                "priceOverwrite": {
                  "priceOverwritten": true,
                  "costOverwritten": true,
                  "msrpOverwritten": true,
                  "mapOverwritten": true,
                  "shippingCostOverwritten": true,
                  "dropshipFeeOverwritten": true,
                  "dynamicPrice": 0,
                  "dynamicCost": 0,
                  "dynamicMsrp": 0,
                  "dynamicMap": 0,
                  "dynamicShippingCost": 0,
                  "dynamicDropshipFee": 0
                },
                "quantityOverwrite": {
                  "quantityOverwritten": true,
                  "dynamicQuantity": 0,
                  "orderVolumeProtectionLockedAt": "string",
                  "lastManualQuantity": 0,
                  "isLockedByOrderVolumeProtection": "false"
                },
                "listingParentId": 0,
                "price": 0,
                "salePrice": 0,
                "estimatedShippingCost": 0,
                "estimatedDropshipFee": 0,
                "inventoryListPrice": 0,
                "imagesFetched": true,
                "builtWithMappingTemplateId": 0,
                "builtAt": "2019-08-24T14:15:22Z",
                "rebuiltAt": "2019-08-24T14:15:22Z",
                "id": 0,
                "accountId": 0,
                "sku": "string",
                "title": "string",
                "mpn": "string",
                "upc": "string",
                "ean": "string",
                "asin": "string",
                "msrp": 0,
                "map": 0,
                "weight": 0,
                "length": 0,
                "width": 0,
                "height": 0,
                "insertedAt": "2019-08-24T14:15:22Z",
                "updatedAt": "2019-08-24T14:15:22Z",
                "archived": true,
                "cost": 0,
                "quantity": 0,
                "weightUnit": {
                  "handle": "pound",
                  "abbreviatedHandle": "lb"
                },
                "dimensionUnit": {
                  "handle": "inch",
                  "abbreviatedHandle": "in"
                },
                "dimensionalWeight": 0,
                "images": [
                  {
                    "listingParentId": 0,
                    "listingVariantId": 0,
                    "md5Checksum": "string",
                    "id": 0,
                    "url": "string",
                    "sortOrder": 0,
                    "createdAt": "2019-08-24T14:15:22Z",
                    "publishedAt": "2019-08-24T14:15:22Z",
                    "staticContentUpdatedAt": "2019-08-24T14:15:22Z",
                    "staticContentSyncedAt": "2019-08-24T14:15:22Z",
                    "dynamicContentUpdatedAt": "2019-08-24T14:15:22Z",
                    "dynamicCOntentSyncedAt": "2019-08-24T14:15:22Z",
                    "publishing": true,
                    "externalListingId": "string",
                    "listingError": "string",
                    "productParentImageId": 0,
                    "productVariantImageId": 0
                  }
                ],
                "options": [
                  {
                    "listingParentOptionId": 0,
                    "globalOptionValueId": 0,
                    "listingVariantId": 0,
                    "id": 0,
                    "name": "string",
                    "value": "string",
                    "position": 0,
                    "globalPosition": 0
                  }
                ],
                "channelId": 0,
                "productVariantId": 0,
                "externalListingId": "string",
                "publishError": "string",
                "syncError": "string",
                "pausedAt": "2019-08-24T14:15:22Z",
                "staticContentUpdatedAt": "2019-08-24T14:15:22Z",
                "staticContentSyncedAt": "2019-08-24T14:15:22Z",
                "dynamicContentUpdatedAt": "2019-08-24T14:15:22Z",
                "dynamicContentSyncedAt": "2019-08-24T14:15:22Z",
                "linkAttemptedAt": "2019-08-24T14:15:22Z",
                "linkedToRegularProduct": true,
                "externalReferenceId": "string",
                "externalReferenceIdType": "string",
                "listingStatus": {
                  "id": 0,
                  "handle": "not_listed",
                  "name": "string"
                },
                "changeToListingStatus": {
                  "id": 0,
                  "handle": "not_listed",
                  "name": "string"
                },
                "listingParent": {
                  "id": 0,
                  "accountId": 0,
                  "sku": "string",
                  "title": "string",
                  "description": "string",
                  "manufacturer": "string",
                  "insertedAt": "2019-08-24T14:15:22Z",
                  "updatedAt": "2019-08-24T14:15:22Z",
                  "archived": true,
                  "categoryOne": {
                    "accountId": 0,
                    "insertedAt": "2019-08-24T14:15:22Z",
                    "updatedAt": "2019-08-24T14:15:22Z",
                    "customized": true,
                    "id": 0,
                    "name": "string",
                    "parentCategoryId": 0,
                    "productCategory": {
                      "accountId": 0,
                      "insertedAt": "2019-08-24T14:15:22Z",
                      "updatedAt": "2019-08-24T14:15:22Z",
                      "customized": true,
                      "id": 0,
                      "name": "string",
                      "parentCategoryId": 0,
                      "inventoryCategory": {
                        "sourceId": 0,
                        "productCategoryId": 0,
                        "id": 0,
                        "name": "string",
                        "parentCategoryId": 0
                      }
                    },
                    "channelId": 0,
                    "productCategoryId": 0
                  },
                  "categoryTwo": {
                    "accountId": 0,
                    "insertedAt": "2019-08-24T14:15:22Z",
                    "updatedAt": "2019-08-24T14:15:22Z",
                    "customized": true,
                    "id": 0,
                    "name": "string",
                    "parentCategoryId": 0,
                    "productCategory": {
                      "accountId": 0,
                      "insertedAt": "2019-08-24T14:15:22Z",
                      "updatedAt": "2019-08-24T14:15:22Z",
                      "customized": true,
                      "id": 0,
                      "name": "string",
                      "parentCategoryId": 0,
                      "inventoryCategory": {
                        "sourceId": 0,
                        "productCategoryId": 0,
                        "id": 0,
                        "name": "string",
                        "parentCategoryId": 0
                      }
                    },
                    "channelId": 0,
                    "productCategoryId": 0
                  },
                  "categoryThree": {
                    "accountId": 0,
                    "insertedAt": "2019-08-24T14:15:22Z",
                    "updatedAt": "2019-08-24T14:15:22Z",
                    "customized": true,
                    "id": 0,
                    "name": "string",
                    "parentCategoryId": 0,
                    "productCategory": {
                      "accountId": 0,
                      "insertedAt": "2019-08-24T14:15:22Z",
                      "updatedAt": "2019-08-24T14:15:22Z",
                      "customized": true,
                      "id": 0,
                      "name": "string",
                      "parentCategoryId": 0,
                      "inventoryCategory": {
                        "sourceId": 0,
                        "productCategoryId": 0,
                        "id": 0,
                        "name": "string",
                        "parentCategoryId": 0
                      }
                    },
                    "channelId": 0,
                    "productCategoryId": 0
                  },
                  "images": [
                    {
                      "listingParentId": 0,
                      "listingVariantId": 0,
                      "md5Checksum": "string",
                      "id": 0,
                      "url": "string",
                      "sortOrder": 0,
                      "createdAt": "2019-08-24T14:15:22Z",
                      "publishedAt": "2019-08-24T14:15:22Z",
                      "staticContentUpdatedAt": "2019-08-24T14:15:22Z",
                      "staticContentSyncedAt": "2019-08-24T14:15:22Z",
                      "dynamicContentUpdatedAt": "2019-08-24T14:15:22Z",
                      "dynamicCOntentSyncedAt": "2019-08-24T14:15:22Z",
                      "publishing": true,
                      "externalListingId": "string",
                      "listingError": "string",
                      "productParentImageId": 0,
                      "productVariantImageId": 0
                    }
                  ],
                  "options": [
                    {
                      "listingParentId": 0,
                      "globalOptionId": 0,
                      "id": 0,
                      "name": "string",
                      "optionValues": [
                        {
                          "optionId": 0,
                          "value": "string",
                          "position": 0,
                          "globalPosition": 0
                        }
                      ]
                    }
                  ],
                  "attributes": [
                    {
                      "listingParentId": 0,
                      "id": 0,
                      "attributeId": 0,
                      "attributeValueId": 0,
                      "name": "string",
                      "originalInventoryName": "string",
                      "value": "string",
                      "originalInventoryValue": "string",
                      "isPrivate": true,
                      "mergeToAttributeId": 0,
                      "mergeToAttribute": {},
                      "mergeToAttributeValueId": 0,
                      "mergeToAttributeValue": "string"
                    }
                  ],
                  "customFields": [
                    {
                      "listingParentId": 0,
                      "id": 0,
                      "customFieldId": 0,
                      "customFieldValueId": 0,
                      "name": "string",
                      "originalInventoryName": "string",
                      "value": "string",
                      "originalInventoryValue": "string"
                    }
                  ],
                  "variants": [
                    {}
                  ],
                  "categoryOneId": 0,
                  "categoryTwoId": 0,
                  "categoryThreeId": 0,
                  "imagesFetched": true,
                  "builtWithMappingTemplateId": 0,
                  "builtAt": "2019-08-24T14:15:22Z",
                  "rebuiltAt": "2019-08-24T14:15:22Z",
                  "channelId": 0,
                  "productParentId": 0,
                  "externalListingId": "string",
                  "publishError": "string",
                  "syncError": "string",
                  "staticContentUpdatedAt": "2019-08-24T14:15:22Z",
                  "staticContentSyncedAt": "2019-08-24T14:15:22Z",
                  "linkAttemptedAt": "2019-08-24T14:15:22Z",
                  "listingStatus": {
                    "id": 0,
                    "handle": "not_listed",
                    "name": "string"
                  },
                  "changeToListingStatus": {
                    "id": 0,
                    "handle": "not_listed",
                    "name": "string"
                  },
                  "pausedAt": "2019-08-24T14:15:22Z",
                  "tags": [
                    "string"
                  ]
                },
                "customAggregateFields": [
                  {
                    "id": 0,
                    "listingVariantId": 0,
                    "accountId": 0,
                    "customAggregateField": {
                      "id": 0,
                      "aggregateFieldDataTypeId": 0,
                      "customAggregateFieldOptionId": 0,
                      "name": "string",
                      "handle": "string",
                      "ignoreOutOfStock": false,
                      "accountId": 0
                    },
                    "name": "string",
                    "value": 0,
                    "customAggregateFieldId": 0
                  }
                ],
                "scheduledToDeleteAt": "2019-08-24T14:15:22Z",
                "profit": 0,
                "profitPercentage": 0,
                "profitWithFees": 0,
                "profitWithFeesPercentage": 0,
                "customFields": [
                  {
                    "id": 0,
                    "listingVariantId": 0,
                    "customFieldValueId": 0,
                    "customFieldId": 0,
                    "name": "string",
                    "value": "string",
                    "originalListingName": "string",
                    "originalListingValue": "string"
                  }
                ],
                "tags": [
                  "string"
                ]
              }
            ],
            "categoryOneId": 0,
            "categoryTwoId": 0,
            "categoryThreeId": 0,
            "imagesFetched": true,
            "builtWithMappingTemplateId": 0,
            "builtAt": "2019-08-24T14:15:22Z",
            "rebuiltAt": "2019-08-24T14:15:22Z",
            "channelId": 0,
            "productParentId": 0,
            "externalListingId": "string",
            "publishError": "string",
            "syncError": "string",
            "staticContentUpdatedAt": "2019-08-24T14:15:22Z",
            "staticContentSyncedAt": "2019-08-24T14:15:22Z",
            "linkAttemptedAt": "2019-08-24T14:15:22Z",
            "listingStatus": {
              "id": 0,
              "handle": "not_listed",
              "name": "string"
            },
            "changeToListingStatus": {
              "id": 0,
              "handle": "not_listed",
              "name": "string"
            },
            "pausedAt": "2019-08-24T14:15:22Z",
            "tags": [
              "string"
            ]
          }
        }
      },
      "ListingParentRequest": {
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "id": {
            "type": "integer"
          },
          "accountId": {
            "type": "integer"
          },
          "sku": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "manufacturer": {
            "type": "string"
          },
          "insertedAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archived": {
            "type": "boolean"
          },
          "categoryOne": {
            "$ref": "#/components/schemas/ListingCategory"
          },
          "categoryTwo": {
            "$ref": "#/components/schemas/ListingCategory"
          },
          "categoryThree": {
            "$ref": "#/components/schemas/ListingCategory"
          },
          "images": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ListingImage"
            }
          },
          "options": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ListingParentOption"
            }
          },
          "attributes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ListingParentAttribute"
            }
          },
          "customFields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ListingParentCustomField"
            }
          },
          "variants": {
            "type": "array",
            "description": "DEPRECATED : Variants included in this call will not be updated. You need to use the dedicated variant endpoint to update these. Currently if you pass variants here we will return them unmodified, however, in the future this property will be removed completely so you should not code in a way that is dependent on this functionality.",
            "deprecated": true,
            "items": {
              "$ref": "#/components/schemas/ListingVariant"
            }
          },
          "categoryOneId": {
            "type": "integer"
          },
          "categoryTwoId": {
            "type": "integer"
          },
          "categoryThreeId": {
            "type": "integer"
          },
          "imagesFetched": {
            "type": "boolean"
          },
          "builtWithMappingTemplateId": {
            "type": "integer"
          },
          "builtAt": {
            "type": "string",
            "format": "date-time"
          },
          "rebuiltAt": {
            "type": "string",
            "format": "date-time"
          },
          "channelId": {
            "type": "integer"
          },
          "productParentId": {
            "type": "integer"
          },
          "externalListingId": {
            "type": "string",
            "description": ""
          },
          "publishError": {
            "type": "string"
          },
          "syncError": {
            "type": "string"
          },
          "staticContentUpdatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "staticContentSyncedAt": {
            "type": "string",
            "format": "date-time"
          },
          "linkAttemptedAt": {
            "type": "string",
            "format": "date-time"
          },
          "listingStatus": {
            "$ref": "#/components/schemas/ListingStatus"
          },
          "changeToListingStatus": {
            "$ref": "#/components/schemas/ListingStatus"
          },
          "pausedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "sku",
          "channelId",
          "productParentId"
        ]
      },
      "ListingCategory": {
        "type": "object",
        "description": "A listing category. These are primarily created during the listing building process, and are initially seeded/populated from the passed `productCategory`.",
        "properties": {
          "accountId": {
            "type": "integer"
          },
          "insertedAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "customized": {
            "type": "boolean"
          },
          "id": {
            "type": "integer"
          },
          "name": {
            "type": "string"
          },
          "parentCategoryId": {
            "type": "integer"
          },
          "productCategory": {
            "$ref": "#/components/schemas/ProductCategory"
          },
          "channelId": {
            "type": "integer"
          },
          "productCategoryId": {
            "type": "integer"
          }
        },
        "required": [
          "name",
          "channelId"
        ],
        "x-tags": [
          "Models"
        ]
      },
      "ListingImage": {
        "type": "object",
        "properties": {
          "listingParentId": {
            "type": "integer"
          },
          "listingVariantId": {
            "type": "integer"
          },
          "md5Checksum": {
            "type": "string"
          },
          "id": {
            "type": "integer"
          },
          "url": {
            "type": "string"
          },
          "sortOrder": {
            "type": "integer"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "publishedAt": {
            "type": "string",
            "format": "date-time"
          },
          "staticContentUpdatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "staticContentSyncedAt": {
            "type": "string",
            "format": "date-time"
          },
          "dynamicContentUpdatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "dynamicCOntentSyncedAt": {
            "type": "string",
            "format": "date-time"
          },
          "publishing": {
            "type": "boolean"
          },
          "externalListingId": {
            "type": "string"
          },
          "listingError": {
            "type": "string"
          },
          "productParentImageId": {
            "type": "integer"
          },
          "productVariantImageId": {
            "type": "integer"
          },
          "size": {
            "type": "integer",
            "format": "int64"
          },
          "compressed": {
            "type": "boolean"
          },
          "width": {
            "type": "integer"
          },
          "height": {
            "type": "integer"
          },
          "sharedImage": {
            "type": "boolean"
          }
        },
        "required": [
          "url"
        ],
        "x-tags": [
          "Models"
        ]
      },
      "ListingParentOption": {
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "listingParentId": {
            "type": "integer"
          },
          "globalOptionId": {
            "type": "integer",
            "format": "int64"
          },
          "id": {
            "type": "integer"
          },
          "name": {
            "type": "string"
          },
          "optionValues": {
            "type": "array",
            "uniqueItems": true,
            "items": {
              "$ref": "#/components/schemas/OptionValue"
            }
          }
        },
        "required": [
          "name"
        ]
      },
      "ListingParentAttribute": {
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "allOf": [
          {
            "$ref": "#/components/schemas/Attribute"
          }
        ],
        "properties": {
          "listingParentId": {
            "type": "integer"
          }
        }
      },
      "ListingParentCustomField": {
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/CustomField"
          }
        ],
        "properties": {
          "listingParentId": {
            "type": "integer"
          }
        },
        "required": [
          "name",
          "value"
        ],
        "x-tags": [
          "Models"
        ]
      },
      "ListingVariant": {
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "priceOverwrite": {
            "$ref": "#/components/schemas/PriceOverwrite"
          },
          "quantityOverwrite": {
            "$ref": "#/components/schemas/QuantityOverwrite"
          },
          "listingParentId": {
            "type": "integer"
          },
          "price": {
            "type": "number"
          },
          "salePrice": {
            "type": "number"
          },
          "estimatedShippingCost": {
            "type": "number"
          },
          "estimatedDropshipFee": {
            "type": "number"
          },
          "inventoryListPrice": {
            "type": "number"
          },
          "imagesFetched": {
            "type": "boolean"
          },
          "builtWithMappingTemplateId": {
            "type": "integer"
          },
          "builtAt": {
            "type": "string",
            "format": "date-time"
          },
          "rebuiltAt": {
            "type": "string",
            "format": "date-time"
          },
          "id": {
            "type": "integer"
          },
          "accountId": {
            "type": "integer"
          },
          "sku": {
            "type": "string"
          },
          "masterSku": {
            "type": "string",
            "description": "Your master SKU is the SKU you use at your central product catalog level that is used as the primary means of identifying and linking your different listings across all your channels to your single central product"
          },
          "title": {
            "type": "string"
          },
          "mpn": {
            "type": "string"
          },
          "upc": {
            "type": "string"
          },
          "ean": {
            "type": "string"
          },
          "asin": {
            "type": "string"
          },
          "msrp": {
            "type": "number"
          },
          "map": {
            "type": "number"
          },
          "weight": {
            "type": "number"
          },
          "length": {
            "type": "number"
          },
          "width": {
            "type": "number"
          },
          "height": {
            "type": "number"
          },
          "insertedAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archived": {
            "type": "boolean"
          },
          "cost": {
            "type": "number"
          },
          "quantity": {
            "type": "integer"
          },
          "weightUnit": {
            "$ref": "#/components/schemas/WeightUnit"
          },
          "dimensionUnit": {
            "$ref": "#/components/schemas/DimensionUnit"
          },
          "dimensionalWeight": {
            "type": "number"
          },
          "images": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ListingImage"
            }
          },
          "options": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ListingVariantOption"
            }
          },
          "bundle": {
            "type": "boolean",
            "description": "Indicates if this variant is a bundle. Configured at the product level and unchangeable."
          },
          "channelId": {
            "type": "integer"
          },
          "productVariantId": {
            "type": "integer"
          },
          "externalListingId": {
            "type": "string"
          },
          "publishError": {
            "type": "string"
          },
          "syncError": {
            "type": "string"
          },
          "pausedAt": {
            "type": "string",
            "format": "date-time"
          },
          "staticContentUpdatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "staticContentSyncedAt": {
            "type": "string",
            "format": "date-time"
          },
          "dynamicContentUpdatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "dynamicContentSyncedAt": {
            "type": "string",
            "format": "date-time"
          },
          "linkAttemptedAt": {
            "type": "string",
            "format": "date-time"
          },
          "linkedToRegularProduct": {
            "type": "boolean"
          },
          "externalReferenceId": {
            "type": "string"
          },
          "externalReferenceIdType": {
            "type": "string"
          },
          "listingStatus": {
            "$ref": "#/components/schemas/ListingStatus"
          },
          "changeToListingStatus": {
            "$ref": "#/components/schemas/ListingStatus"
          },
          "listingParent": {
            "$ref": "#/components/schemas/ListingParent"
          },
          "customAggregateFields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ListingVariantCustomAggregateField"
            }
          },
          "scheduledToDeleteAt": {
            "type": "string",
            "format": "date-time"
          },
          "profit": {
            "type": "number"
          },
          "profitPercentage": {
            "type": "number"
          },
          "profitWithFees": {
            "type": "number"
          },
          "profitWithFeesPercentage": {
            "type": "number"
          },
          "customFields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ListingVariantCustomField"
            }
          },
          "tags": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Attach-only: tags listed here are added to the variant (created if missing). Tags are never removed by this endpoint - use PATCH /product/variants/{variantId}/tags (or /listing/variants/{variantId}/tags) to remove."
          },
          "description": {
            "type": "string"
          },
          "requiresFfl": {
            "type": "boolean",
            "description": "Indicate if FFL information will be required to fulfill this listing variant"
          },
          "imageFetcherEventTriggered": {
            "type": "boolean"
          },
          "priceProtection": {
            "type": "boolean",
            "description": "Will be marked as true when any of these conditions are met :\n-List Price <= Cost\n-Cost = 0 or Is Empty\n-No Linked Inventory),"
          },
          "linkedSourceCount": {
            "type": "integer",
            "description": "The number of sources that are linked to the listings associated product"
          },
          "locations": {
            "type": "array",
            "uniqueItems": true,
            "items": {
              "$ref": "#/components/schemas/ListingChannelLocation"
            }
          },
          "inventoryLinks": {
            "type": "array",
            "uniqueItems": true,
            "items": {
              "$ref": "#/components/schemas/ListingInventoryLink"
            }
          }
        },
        "required": [
          "sku",
          "channelId",
          "productVariantId"
        ],
        "x-examples": {
          "Example 1": {
            "priceOverwrite": {
              "priceOverwritten": true,
              "costOverwritten": true,
              "msrpOverwritten": true,
              "mapOverwritten": true,
              "shippingCostOverwritten": true,
              "dropshipFeeOverwritten": true,
              "dynamicPrice": 0,
              "dynamicCost": 0,
              "dynamicMsrp": 0,
              "dynamicMap": 0,
              "dynamicShippingCost": 0,
              "dynamicDropshipFee": 0
            },
            "quantityOverwrite": {
              "quantityOverwritten": true,
              "dynamicQuantity": 0,
              "orderVolumeProtectionLockedAt": "string",
              "lastManualQuantity": 0,
              "isLockedByOrderVolumeProtection": "false"
            },
            "listingParentId": 0,
            "price": 0,
            "salePrice": 0,
            "estimatedShippingCost": 0,
            "estimatedDropshipFee": 0,
            "inventoryListPrice": 0,
            "imagesFetched": true,
            "builtWithMappingTemplateId": 0,
            "builtAt": "2019-08-24T14:15:22Z",
            "rebuiltAt": "2019-08-24T14:15:22Z",
            "id": 0,
            "accountId": 0,
            "sku": "string",
            "title": "string",
            "mpn": "string",
            "upc": "string",
            "ean": "string",
            "asin": "string",
            "msrp": 0,
            "map": 0,
            "weight": 0,
            "length": 0,
            "width": 0,
            "height": 0,
            "insertedAt": "2019-08-24T14:15:22Z",
            "updatedAt": "2019-08-24T14:15:22Z",
            "archived": true,
            "cost": 0,
            "quantity": 0,
            "weightUnit": {
              "handle": "pound",
              "abbreviatedHandle": "lb"
            },
            "dimensionUnit": {
              "handle": "inch",
              "abbreviatedHandle": "in"
            },
            "dimensionalWeight": 0,
            "images": [
              {
                "listingParentId": 0,
                "listingVariantId": 0,
                "md5Checksum": "string",
                "id": 0,
                "url": "string",
                "sortOrder": 0,
                "createdAt": "2019-08-24T14:15:22Z",
                "publishedAt": "2019-08-24T14:15:22Z",
                "staticContentUpdatedAt": "2019-08-24T14:15:22Z",
                "staticContentSyncedAt": "2019-08-24T14:15:22Z",
                "dynamicContentUpdatedAt": "2019-08-24T14:15:22Z",
                "dynamicCOntentSyncedAt": "2019-08-24T14:15:22Z",
                "publishing": true,
                "externalListingId": "string",
                "listingError": "string",
                "productParentImageId": 0,
                "productVariantImageId": 0
              }
            ],
            "options": [
              {
                "listingParentOptionId": 0,
                "globalOptionValueId": 0,
                "listingVariantId": 0,
                "id": 0,
                "name": "string",
                "value": "string",
                "position": 0,
                "globalPosition": 0
              }
            ],
            "channelId": 0,
            "productVariantId": 0,
            "externalListingId": "string",
            "publishError": "string",
            "syncError": "string",
            "pausedAt": "2019-08-24T14:15:22Z",
            "staticContentUpdatedAt": "2019-08-24T14:15:22Z",
            "staticContentSyncedAt": "2019-08-24T14:15:22Z",
            "dynamicContentUpdatedAt": "2019-08-24T14:15:22Z",
            "dynamicContentSyncedAt": "2019-08-24T14:15:22Z",
            "linkAttemptedAt": "2019-08-24T14:15:22Z",
            "linkedToRegularProduct": true,
            "externalReferenceId": "string",
            "externalReferenceIdType": "string",
            "listingStatus": {
              "id": 0,
              "handle": "not_listed",
              "name": "string"
            },
            "changeToListingStatus": {
              "id": 0,
              "handle": "not_listed",
              "name": "string"
            },
            "listingParent": {
              "id": 0,
              "accountId": 0,
              "sku": "string",
              "title": "string",
              "description": "string",
              "manufacturer": "string",
              "insertedAt": "2019-08-24T14:15:22Z",
              "updatedAt": "2019-08-24T14:15:22Z",
              "archived": true,
              "categoryOne": {
                "accountId": 0,
                "insertedAt": "2019-08-24T14:15:22Z",
                "updatedAt": "2019-08-24T14:15:22Z",
                "customized": true,
                "id": 0,
                "name": "string",
                "parentCategoryId": 0,
                "productCategory": {
                  "accountId": 0,
                  "insertedAt": "2019-08-24T14:15:22Z",
                  "updatedAt": "2019-08-24T14:15:22Z",
                  "customized": true,
                  "id": 0,
                  "name": "string",
                  "parentCategoryId": 0,
                  "inventoryCategory": {
                    "sourceId": 0,
                    "productCategoryId": 0,
                    "id": 0,
                    "name": "string",
                    "parentCategoryId": 0
                  }
                },
                "channelId": 0,
                "productCategoryId": 0
              },
              "categoryTwo": {
                "accountId": 0,
                "insertedAt": "2019-08-24T14:15:22Z",
                "updatedAt": "2019-08-24T14:15:22Z",
                "customized": true,
                "id": 0,
                "name": "string",
                "parentCategoryId": 0,
                "productCategory": {
                  "accountId": 0,
                  "insertedAt": "2019-08-24T14:15:22Z",
                  "updatedAt": "2019-08-24T14:15:22Z",
                  "customized": true,
                  "id": 0,
                  "name": "string",
                  "parentCategoryId": 0,
                  "inventoryCategory": {
                    "sourceId": 0,
                    "productCategoryId": 0,
                    "id": 0,
                    "name": "string",
                    "parentCategoryId": 0
                  }
                },
                "channelId": 0,
                "productCategoryId": 0
              },
              "categoryThree": {
                "accountId": 0,
                "insertedAt": "2019-08-24T14:15:22Z",
                "updatedAt": "2019-08-24T14:15:22Z",
                "customized": true,
                "id": 0,
                "name": "string",
                "parentCategoryId": 0,
                "productCategory": {
                  "accountId": 0,
                  "insertedAt": "2019-08-24T14:15:22Z",
                  "updatedAt": "2019-08-24T14:15:22Z",
                  "customized": true,
                  "id": 0,
                  "name": "string",
                  "parentCategoryId": 0,
                  "inventoryCategory": {
                    "sourceId": 0,
                    "productCategoryId": 0,
                    "id": 0,
                    "name": "string",
                    "parentCategoryId": 0
                  }
                },
                "channelId": 0,
                "productCategoryId": 0
              },
              "images": [
                {
                  "listingParentId": 0,
                  "listingVariantId": 0,
                  "md5Checksum": "string",
                  "id": 0,
                  "url": "string",
                  "sortOrder": 0,
                  "createdAt": "2019-08-24T14:15:22Z",
                  "publishedAt": "2019-08-24T14:15:22Z",
                  "staticContentUpdatedAt": "2019-08-24T14:15:22Z",
                  "staticContentSyncedAt": "2019-08-24T14:15:22Z",
                  "dynamicContentUpdatedAt": "2019-08-24T14:15:22Z",
                  "dynamicCOntentSyncedAt": "2019-08-24T14:15:22Z",
                  "publishing": true,
                  "externalListingId": "string",
                  "listingError": "string",
                  "productParentImageId": 0,
                  "productVariantImageId": 0
                }
              ],
              "options": [
                {
                  "listingParentId": 0,
                  "globalOptionId": 0,
                  "id": 0,
                  "name": "string",
                  "optionValues": [
                    {
                      "optionId": 0,
                      "value": "string",
                      "position": 0,
                      "globalPosition": 0
                    }
                  ]
                }
              ],
              "attributes": [
                {
                  "listingParentId": 0,
                  "id": 0,
                  "attributeId": 0,
                  "attributeValueId": 0,
                  "name": "string",
                  "originalInventoryName": "string",
                  "value": "string",
                  "originalInventoryValue": "string",
                  "isPrivate": true,
                  "mergeToAttributeId": 0,
                  "mergeToAttribute": {},
                  "mergeToAttributeValueId": 0,
                  "mergeToAttributeValue": "string"
                }
              ],
              "customFields": [
                {
                  "listingParentId": 0,
                  "id": 0,
                  "customFieldId": 0,
                  "customFieldValueId": 0,
                  "name": "string",
                  "originalInventoryName": "string",
                  "value": "string",
                  "originalInventoryValue": "string"
                }
              ],
              "variants": [
                {
                  "priceOverwrite": {
                    "priceOverwritten": true,
                    "costOverwritten": true,
                    "msrpOverwritten": true,
                    "mapOverwritten": true,
                    "shippingCostOverwritten": true,
                    "dropshipFeeOverwritten": true,
                    "dynamicPrice": 0,
                    "dynamicCost": 0,
                    "dynamicMsrp": 0,
                    "dynamicMap": 0,
                    "dynamicShippingCost": 0,
                    "dynamicDropshipFee": 0
                  },
                  "quantityOverwrite": {
                    "quantityOverwritten": true,
                    "dynamicQuantity": 0,
                    "orderVolumeProtectionLockedAt": "string",
                    "lastManualQuantity": 0,
                    "isLockedByOrderVolumeProtection": "false"
                  },
                  "listingParentId": 0,
                  "price": 0,
                  "salePrice": 0,
                  "estimatedShippingCost": 0,
                  "estimatedDropshipFee": 0,
                  "inventoryListPrice": 0,
                  "imagesFetched": true,
                  "builtWithMappingTemplateId": 0,
                  "builtAt": "2019-08-24T14:15:22Z",
                  "rebuiltAt": "2019-08-24T14:15:22Z",
                  "id": 0,
                  "accountId": 0,
                  "sku": "string",
                  "title": "string",
                  "mpn": "string",
                  "upc": "string",
                  "ean": "string",
                  "asin": "string",
                  "msrp": 0,
                  "map": 0,
                  "weight": 0,
                  "length": 0,
                  "width": 0,
                  "height": 0,
                  "insertedAt": "2019-08-24T14:15:22Z",
                  "updatedAt": "2019-08-24T14:15:22Z",
                  "archived": true,
                  "cost": 0,
                  "quantity": 0,
                  "weightUnit": {
                    "handle": "pound",
                    "abbreviatedHandle": "lb"
                  },
                  "dimensionUnit": {
                    "handle": "inch",
                    "abbreviatedHandle": "in"
                  },
                  "dimensionalWeight": 0,
                  "images": [
                    {
                      "listingParentId": 0,
                      "listingVariantId": 0,
                      "md5Checksum": "string",
                      "id": 0,
                      "url": "string",
                      "sortOrder": 0,
                      "createdAt": "2019-08-24T14:15:22Z",
                      "publishedAt": "2019-08-24T14:15:22Z",
                      "staticContentUpdatedAt": "2019-08-24T14:15:22Z",
                      "staticContentSyncedAt": "2019-08-24T14:15:22Z",
                      "dynamicContentUpdatedAt": "2019-08-24T14:15:22Z",
                      "dynamicCOntentSyncedAt": "2019-08-24T14:15:22Z",
                      "publishing": true,
                      "externalListingId": "string",
                      "listingError": "string",
                      "productParentImageId": 0,
                      "productVariantImageId": 0
                    }
                  ],
                  "options": [
                    {
                      "listingParentOptionId": 0,
                      "globalOptionValueId": 0,
                      "listingVariantId": 0,
                      "id": 0,
                      "name": "string",
                      "value": "string",
                      "position": 0,
                      "globalPosition": 0
                    }
                  ],
                  "channelId": 0,
                  "productVariantId": 0,
                  "externalListingId": "string",
                  "publishError": "string",
                  "syncError": "string",
                  "pausedAt": "2019-08-24T14:15:22Z",
                  "staticContentUpdatedAt": "2019-08-24T14:15:22Z",
                  "staticContentSyncedAt": "2019-08-24T14:15:22Z",
                  "dynamicContentUpdatedAt": "2019-08-24T14:15:22Z",
                  "dynamicContentSyncedAt": "2019-08-24T14:15:22Z",
                  "linkAttemptedAt": "2019-08-24T14:15:22Z",
                  "linkedToRegularProduct": true,
                  "externalReferenceId": "string",
                  "externalReferenceIdType": "string",
                  "listingStatus": {
                    "id": 0,
                    "handle": "not_listed",
                    "name": "string"
                  },
                  "changeToListingStatus": {
                    "id": 0,
                    "handle": "not_listed",
                    "name": "string"
                  },
                  "listingParent": {},
                  "customAggregateFields": [
                    {
                      "id": 0,
                      "listingVariantId": 0,
                      "accountId": 0,
                      "customAggregateField": {
                        "id": 0,
                        "aggregateFieldDataTypeId": 0,
                        "customAggregateFieldOptionId": 0,
                        "name": "string",
                        "handle": "string",
                        "ignoreOutOfStock": false,
                        "accountId": 0
                      },
                      "name": "string",
                      "value": 0,
                      "customAggregateFieldId": 0
                    }
                  ],
                  "scheduledToDeleteAt": "2019-08-24T14:15:22Z",
                  "profit": 0,
                  "profitPercentage": 0,
                  "profitWithFees": 0,
                  "profitWithFeesPercentage": 0,
                  "customFields": [
                    {
                      "id": 0,
                      "listingVariantId": 0,
                      "customFieldValueId": 0,
                      "customFieldId": 0,
                      "name": "string",
                      "value": "string",
                      "originalListingName": "string",
                      "originalListingValue": "string"
                    }
                  ],
                  "tags": [
                    "string"
                  ]
                }
              ],
              "categoryOneId": 0,
              "categoryTwoId": 0,
              "categoryThreeId": 0,
              "imagesFetched": true,
              "builtWithMappingTemplateId": 0,
              "builtAt": "2019-08-24T14:15:22Z",
              "rebuiltAt": "2019-08-24T14:15:22Z",
              "channelId": 0,
              "productParentId": 0,
              "externalListingId": "string",
              "publishError": "string",
              "syncError": "string",
              "staticContentUpdatedAt": "2019-08-24T14:15:22Z",
              "staticContentSyncedAt": "2019-08-24T14:15:22Z",
              "linkAttemptedAt": "2019-08-24T14:15:22Z",
              "listingStatus": {
                "id": 0,
                "handle": "not_listed",
                "name": "string"
              },
              "changeToListingStatus": {
                "id": 0,
                "handle": "not_listed",
                "name": "string"
              },
              "pausedAt": "2019-08-24T14:15:22Z",
              "tags": [
                "string"
              ]
            },
            "customAggregateFields": [
              {
                "id": 0,
                "listingVariantId": 0,
                "accountId": 0,
                "customAggregateField": {
                  "id": 0,
                  "aggregateFieldDataTypeId": 0,
                  "customAggregateFieldOptionId": 0,
                  "name": "string",
                  "handle": "string",
                  "ignoreOutOfStock": false,
                  "accountId": 0
                },
                "name": "string",
                "value": 0,
                "customAggregateFieldId": 0
              }
            ],
            "scheduledToDeleteAt": "2019-08-24T14:15:22Z",
            "profit": 0,
            "profitPercentage": 0,
            "profitWithFees": 0,
            "profitWithFeesPercentage": 0,
            "customFields": [
              {
                "id": 0,
                "listingVariantId": 0,
                "customFieldValueId": 0,
                "customFieldId": 0,
                "name": "string",
                "value": "string",
                "originalListingName": "string",
                "originalListingValue": "string"
              }
            ],
            "tags": [
              "string"
            ]
          }
        }
      },
      "ListingVariantCreateUpdateRequest": {
        "x-tags": [
          "Models"
        ],
        "type": "object",
        "properties": {
          "changeToSku": {
            "type": "string",
            "description": ""
          }
        },
        "allOf": [
          {
            "$ref": "#/components/schemas/ListingVariant"
          }
        ]
      },
      "ListingPair": {
        "title": "ListingPair",
        "type": "object",
        "description": "A pair holding a parent and a single one of it's variants",
        "properties": {
          "parent": {
            "$ref": "#/components/schemas/ListingParent"
          },
          "variant": {
            "$ref": "#/components/schemas/ListingVariant"
          }
        },
        "required": [
          "parent",
          "variant"
        ],
        "x-tags": [
          "Models"
        ]
      },
      "ListingVariantOption": {
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "listingParentOptionId": {
            "type": "integer"
          },
          "globalOptionValueId": {
            "type": "integer",
            "format": "int64"
          },
          "listingVariantId": {
            "type": "integer"
          },
          "id": {
            "type": "integer"
          },
          "name": {
            "type": "string"
          },
          "value": {
            "type": "string"
          },
          "position": {
            "type": "integer"
          },
          "globalPosition": {
            "type": "integer"
          }
        },
        "required": [
          "name",
          "value"
        ]
      },
      "ListingBuilderRequest": {
        "title": "ListingBuilderRequest",
        "type": "object",
        "properties": {
          "mappingTemplateId": {
            "type": "integer",
            "description": "A specific mapping template that should be used to build the listing. If not provided the default mapping template will be used/created."
          },
          "rebuildIfExists": {
            "type": "boolean",
            "description": "Rebuild the listing if the product variant is already built and linked to a listing in the channel"
          }
        },
        "x-tags": [
          "Models"
        ]
      },
      "ListingBuilderResponse": {
        "title": "ListingBuilderResponse",
        "type": "object",
        "properties": {
          "listingVariantId": {
            "type": "integer",
            "description": "The ID of the listing variant if it was successfully created OR if it was rebuilt"
          },
          "channelId": {
            "type": "integer",
            "description": "The channel ID as passed in the path params"
          },
          "built": {
            "type": "boolean",
            "description": "Whether or not the listing was built (created)"
          },
          "rebuilt": {
            "type": "boolean",
            "description": "Whether a listing that already existed for the product in the channel was rebuilt."
          },
          "duplicateSkuFailure": {
            "type": "boolean",
            "description": "If the listing could not be built because there already is a existing listing in the channel with the same SKU that was generated from the product and mapping template."
          }
        },
        "x-tags": [
          "Models"
        ]
      },
      "ListingStatus": {
        "title": "ListingStatus",
        "type": "object",
        "properties": {
          "id": {
            "type": "integer"
          },
          "handle": {
            "type": "string",
            "enum": [
              "not_listed",
              "listed",
              "hidden",
              "delisted",
              "published",
              "broken_link",
              "overwrite_data"
            ]
          },
          "name": {
            "type": "string"
          }
        },
        "required": [
          "handle"
        ],
        "x-tags": [
          "Models"
        ]
      },
      "ListingStatusWorkflowVariant": {
        "title": "ListingStatusWorkflowVariant",
        "type": "object",
        "properties": {
          "initialStatus": {
            "$ref": "#/components/schemas/ListingStatus"
          },
          "changeToStatus": {
            "$ref": "#/components/schemas/ListingStatus"
          },
          "variantId": {
            "type": "integer"
          },
          "changePrevented": {
            "type": "boolean"
          }
        },
        "required": [
          "initialStatus",
          "variantId",
          "changePrevented"
        ],
        "x-tags": [
          "Models"
        ]
      },
      "ProductVariantListingLink": {
        "title": "ProductVariantListingLink",
        "type": "object",
        "properties": {
          "listingVariantId": {
            "type": "integer"
          },
          "channelId": {
            "type": "integer"
          }
        },
        "required": [
          "listingVariantId",
          "channelId"
        ],
        "x-tags": [
          "Models"
        ]
      },
      "ProductParentListingLink": {
        "title": "ProductParentListingLink",
        "type": "object",
        "properties": {
          "listingParentId": {
            "type": "integer"
          },
          "channelId": {
            "type": "integer"
          }
        },
        "required": [
          "listingParentId",
          "channelId"
        ],
        "x-tags": [
          "Models"
        ]
      },
      "IntegrationTypeConnectionType": {
        "title": "IntegrationTypeConnectionType",
        "type": "object",
        "description": "Integration Type Connection Type Model",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "defaultSelection": {
            "type": "boolean"
          },
          "connectionType": {
            "$ref": "#/components/schemas/ConnectionType"
          },
          "supportedProcesses": {
            "type": "array"
          }
        }
      },
      "IntegrationConfig": {
        "description": "Integration Config (contains the details about the config itself, not the values)",
        "type": "object",
        "x-examples": {
          "example-integration-type-config": {
            "id": 153,
            "integrationTypeId": 12,
            "integrationProcessId": 1,
            "name": "Fetch Product DAta",
            "handle": "fetch_product_data",
            "required": false,
            "dataType": "boolean",
            "options": null,
            "defaultValue": null,
            "description": null
          }
        },
        "x-tags": [
          "Models"
        ],
        "title": "IntegrationConfig",
        "properties": {
          "id": {
            "type": "number"
          },
          "integrationTypeId": {
            "type": "number"
          },
          "integrationProcessId": {
            "type": "number"
          },
          "name": {
            "type": "string",
            "minLength": 1
          },
          "handle": {
            "type": "string",
            "minLength": 1
          },
          "required": {
            "type": "boolean"
          },
          "advanced": {
            "type": "boolean"
          },
          "dataType": {
            "type": "string",
            "minLength": 1
          },
          "options": {
            "type": "string"
          },
          "defaultValue": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "hidden": {
            "type": "boolean"
          },
          "setOnce": {
            "type": "boolean",
            "description": "If true this value can only be set one time"
          },
          "isInternal": {
            "type": "boolean"
          }
        },
        "required": [
          "name",
          "handle",
          "dataType"
        ]
      },
      "IntegrationConfigUpdateRequest": {
        "title": "IntegrationConfigUpdateRequest",
        "type": "object",
        "properties": {
          "handle": {
            "type": "string"
          },
          "value": {
            "type": "string"
          }
        },
        "x-tags": [
          "Models"
        ]
      },
      "ConnectionType": {
        "title": "ConnectionType",
        "type": "object",
        "description": "Connection Type Model",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "id": {
            "type": "integer"
          },
          "name": {
            "type": "string"
          },
          "handle": {
            "type": "string"
          }
        }
      },
      "Connection": {
        "title": "Connection",
        "type": "object",
        "description": "Connection Model",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "id": {
            "type": "integer"
          },
          "connectionType": {
            "type": "string"
          },
          "connectionTypeId": {
            "type": "integer"
          },
          "connectionTypeName": {
            "type": "string"
          },
          "requiresConnectionToTest": {
            "type": "boolean",
            "deprecated": true
          },
          "name": {
            "type": "string"
          },
          "configs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ConnectionConfig"
            }
          }
        }
      },
      "ConnectionConfig": {
        "title": "ConnectionConfig",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "handle": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "required": {
            "type": "boolean"
          },
          "editable": {
            "type": "boolean"
          },
          "dataType": {
            "type": "string"
          },
          "defaultValue": {
            "type": "string"
          },
          "options": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ConnectionConfigOption"
            }
          },
          "advanced": {
            "type": "boolean"
          },
          "value": {
            "type": "string"
          },
          "hidden": {
            "type": "boolean",
            "x-stoplight": {
              "id": "qwqonghq00jz3"
            }
          },
          "description": {
            "type": "string",
            "x-stoplight": {
              "id": "jrdz47exk81ai"
            }
          },
          "sortOrder": {
            "type": "integer"
          }
        }
      },
      "ConnectionConfigOption": {
        "title": "ConnectionConfigOption",
        "type": "object",
        "properties": {
          "value": {
            "type": "string"
          },
          "label": {
            "type": "string"
          }
        },
        "x-tags": [
          "Models"
        ]
      },
      "ConnectionUpdateRequest": {
        "title": "ConnectionUpdateRequest",
        "type": "object",
        "description": "Connection Update Model",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "connectionType": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "configs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ConnectionConfigUpdateRequest"
            }
          }
        }
      },
      "ConnectionConfigUpdateRequest": {
        "title": "ConnectionConfigUpdateRequest",
        "type": "object",
        "properties": {
          "handle": {
            "type": "string"
          },
          "value": {
            "type": "string"
          }
        },
        "x-tags": [
          "Models"
        ]
      },
      "IntegrationConfigValue": {
        "description": "Integration Config Value Object",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "id": {
            "type": "number"
          },
          "integrationConfigId": {
            "type": "number"
          },
          "integrationId": {
            "type": "number"
          },
          "value": {
            "type": "string"
          }
        },
        "required": [
          "integrationConfigId",
          "integrationId",
          "value"
        ]
      },
      "IntegrationConnectionConfig": {
        "title": "IntegrationConnectionConfig",
        "type": "object",
        "description": "",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "id": {
            "type": "integer"
          },
          "integrationTypeId": {
            "type": "integer"
          },
          "connectionTypeId": {
            "type": "integer"
          },
          "name": {
            "type": "string"
          },
          "handle": {
            "type": "string"
          },
          "required": {
            "type": "boolean"
          },
          "dataType": {
            "type": "string"
          },
          "options": {
            "type": "string"
          },
          "defaultValue": {
            "type": "string"
          },
          "editable": {
            "type": "boolean"
          },
          "description": {
            "type": "string"
          }
        }
      },
      "IntegrationConnectionConfigValue": {
        "title": "IntegrationConnectionConfigValue",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "id": {
            "type": "integer"
          },
          "integrationTypeConnectionConfigId": {
            "type": "integer"
          },
          "integrationId": {
            "type": "integer"
          },
          "connectionId": {
            "type": "integer"
          },
          "value": {
            "type": "string"
          },
          "automatedExportId": {
            "type": "integer",
            "x-stoplight": {
              "id": "854063qkqopi6"
            }
          }
        }
      },
      "GenericApiError": {
        "title": "GenericApiError",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "error": {
            "type": "string",
            "description": "A generalized error message, may or may not be fit for human consumption."
          },
          "data": {
            "type": "object",
            "description": "Data points that could be useful in debugging the error."
          }
        },
        "description": ""
      },
      "OrderItem": {
        "x-tags": [
          "Models"
        ],
        "type": "object",
        "x-examples": {},
        "properties": {
          "id": {
            "type": "integer"
          },
          "sku": {
            "type": "string",
            "minLength": 1
          },
          "quantity": {
            "type": "integer"
          },
          "cost": {
            "type": "number"
          },
          "price": {
            "type": "number"
          },
          "discount": {
            "type": "number"
          },
          "subtotal": {
            "type": "number"
          },
          "acknowledgedQuantity": {
            "type": "integer",
            "default": 0
          },
          "shippedQuantity": {
            "type": "integer",
            "default": 0
          },
          "orderId": {
            "type": "integer"
          },
          "shippedStatus": {
            "$ref": "#/components/schemas/CompletionStatus"
          },
          "acknowledgedStatus": {
            "$ref": "#/components/schemas/CompletionStatus"
          },
          "title": {
            "type": "string"
          },
          "weight": {
            "type": "number"
          },
          "image": {
            "type": "string"
          },
          "allocatedQuantity": {
            "type": "integer",
            "default": 0
          },
          "allocatedStatus": {
            "$ref": "#/components/schemas/CompletionStatus"
          },
          "orderedQuantity": {
            "type": "integer",
            "default": 0
          },
          "virtualVariantId": {
            "type": "integer"
          },
          "listingVariantId": {
            "type": "integer"
          },
          "externalListingId": {
            "type": "string"
          },
          "externalOrderItemId": {
            "type": "string",
            "minLength": 1
          },
          "externalAccountingItemId": {
            "type": "string"
          },
          "bundle": {
            "type": "boolean"
          },
          "weightUnit": {
            "$ref": "#/components/schemas/WeightUnit"
          },
          "notShippable": {
            "type": "boolean"
          },
          "bundleComponents": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OrderItemBundleComponent"
            }
          },
          "attributes": {
            "type": "array",
            "minItems": 0,
            "items": {
              "$ref": "#/components/schemas/OrderItemAttribute"
            }
          },
          "restockingInventoryVariantId": {
            "type": "integer",
            "format": "int64"
          },
          "canceledQuantity": {
            "type": "integer",
            "default": 0
          },
          "fulfillableQuantity": {
            "type": "integer",
            "default": 0
          },
          "returnedQuantity": {
            "type": "integer",
            "default": 0
          },
          "usingProductAlternative": {
            "type": "boolean",
            "default": false,
            "description": "Signifies whether the item has been replaced."
          },
          "shippingAddress": {
            "$ref": "#/components/schemas/Address"
          },
          "externalAccountingItemMapping": {
            "type": "boolean",
            "x-stoplight": {
              "id": "ltenwviazvtru"
            }
          },
          "shipByDate": {
            "type": "string",
            "format": "date",
            "description": "The date by which this line item must be shipped."
          }
        },
        "required": [
          "quantity",
          "attributes"
        ]
      },
      "CompletionStatus": {
        "type": "string",
        "title": "CompletionStatus",
        "x-tags": [
          "Models"
        ],
        "nullable": true,
        "enum": [
          "Not Started",
          "Partially Completed",
          "Completed"
        ]
      },
      "ShipmentItem": {
        "description": "",
        "x-tags": [
          "Models"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "integer"
          },
          "sku": {
            "type": "string",
            "minLength": 1
          },
          "quantity": {
            "type": "integer"
          },
          "shipmentId": {
            "type": "integer"
          },
          "inventoryVariantId": {
            "type": "integer",
            "format": "int64"
          },
          "partial": {
            "type": "boolean"
          },
          "orderItemId": {
            "type": "integer"
          },
          "purchaseOrderItemId": {
            "type": "integer",
            "description": "this field will soon be deprecated, please start using `fulfillmentRequestItemId` instead.\nthere are basically the same thing, just there has been a terminology change."
          },
          "fulfillmentRequestItemId": {
            "type": "integer"
          },
          "committedStockReleasedQuantity": {
            "type": "integer"
          },
          "rmaItemId": {
            "type": "integer"
          },
          "customFields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ShipmentCustomField"
            }
          }
        }
      },
      "CreateShipmentItem": {
        "description": "In order to identify the item, at least one of the following must be provided: \n`sku`, `orderItemId`, `purchaseOrderItemId` or `inventoryVariantId`\n\nIf more than one of above values is set priority is checked in the order just listed.\n\n",
        "x-tags": [
          "Models"
        ],
        "type": "object",
        "properties": {
          "sku": {
            "type": "string",
            "description": "SKU (usually the same as the SKU on the corresponding PO)"
          },
          "quantity": {
            "type": "integer",
            "description": "The quantity of the item contained within the shipment"
          },
          "inventoryVariantId": {
            "type": "integer",
            "format": "int64",
            "description": "The ID of the inventory variant this item corresponds to"
          },
          "orderItemId": {
            "type": "integer",
            "description": "The ID of the order item this shipment item corresponds to"
          },
          "purchaseOrderItemId": {
            "type": "integer",
            "description": "The ID of the purchase order item this shipment item corresponds to"
          },
          "rmaItemId": {
            "type": "integer",
            "description": "The ID of the rma item this shipment item corresponds to"
          },
          "customFields": {
            "type": "array",
            "uniqueItems": true,
            "description": "Custom fields in this shipment.",
            "items": {
              "$ref": "#/components/schemas/CreateShipmentCustomField"
            }
          }
        },
        "required": [
          "quantity"
        ],
        "title": "CreateShipmentItem"
      },
      "PurchaseOrderItem": {
        "description": "",
        "x-tags": [
          "Models"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "integer"
          },
          "sku": {
            "type": "string",
            "minLength": 1
          },
          "quantity": {
            "type": "integer"
          },
          "cost": {
            "type": "number"
          },
          "itemReferenceId": {
            "type": "string"
          },
          "referenceId": {
            "type": "string"
          },
          "purchaseOrderId": {
            "type": "integer"
          },
          "shippedQuantity": {
            "type": "integer",
            "default": 0
          },
          "voidedQuantity": {
            "type": "integer",
            "default": 0
          },
          "acknowledgedQuantity": {
            "default": 0,
            "type": "integer"
          },
          "secondaryAcknowledgedQuantity": {
            "default": 0,
            "type": "integer"
          },
          "inventoryVariantId": {
            "type": "integer",
            "format": "int64"
          },
          "orderItemId": {
            "type": "integer"
          },
          "title": {
            "type": "string"
          },
          "externalAccountingItemId": {
            "type": "string"
          },
          "canceledQuantity": {
            "type": "integer"
          },
          "weightUnit": {
            "$ref": "#/components/schemas/WeightUnit"
          },
          "weight": {
            "type": "number"
          },
          "dimensionUnit": {
            "$ref": "#/components/schemas/DimensionUnit"
          },
          "length": {
            "type": "number"
          },
          "width": {
            "type": "number"
          },
          "height": {
            "type": "number"
          },
          "upc": {
            "type": "string"
          },
          "mpn": {
            "type": "string"
          },
          "attributes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PurchaseOrderItemAttribute"
            }
          },
          "bundleComponents": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PurchaseOrderItemBundleComponent"
            }
          },
          "lineItemNumber": {
            "type": "integer"
          },
          "binLocation": {
            "type": "string"
          },
          "subtotal": {
            "type": "string"
          }
        }
      },
      "FulfillmentRequestItem": {
        "x-tags": [
          "Models"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "integer"
          },
          "sku": {
            "type": "string",
            "minLength": 1
          },
          "quantity": {
            "type": "integer"
          },
          "cost": {
            "type": "number"
          },
          "itemReferenceId": {
            "type": "string"
          },
          "referenceId": {
            "type": "string"
          },
          "fulfillmentRequestId": {
            "type": "integer"
          },
          "shippedQuantity": {
            "type": "integer",
            "default": 0
          },
          "voidedQuantity": {
            "type": "integer",
            "default": 0
          },
          "acknowledgedQuantity": {
            "default": 0,
            "type": "integer"
          },
          "secondaryAcknowledgedQuantity": {
            "default": 0,
            "type": "integer"
          },
          "inventoryVariantId": {
            "type": "integer",
            "format": "int64"
          },
          "orderItemId": {
            "type": "integer"
          },
          "title": {
            "type": "string"
          },
          "externalAccountingItemId": {
            "type": "string"
          },
          "canceledQuantity": {
            "type": "integer"
          },
          "weightUnit": {
            "$ref": "#/components/schemas/WeightUnit"
          },
          "weight": {
            "type": "number"
          },
          "dimensionUnit": {
            "$ref": "#/components/schemas/DimensionUnit"
          },
          "length": {
            "type": "number"
          },
          "width": {
            "type": "number"
          },
          "height": {
            "type": "number"
          },
          "upc": {
            "type": "string"
          },
          "mpn": {
            "type": "string"
          },
          "attributes": {
            "type": "array",
            "deprecated": true,
            "description": "Deprecated -- use `customFields` instead.",
            "items": {
              "$ref": "#/components/schemas/FulfillmentRequestItemAttribute"
            }
          },
          "bundleComponents": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FulfillmentRequestItemBundleComponent"
            }
          },
          "lineItemNumber": {
            "type": "integer"
          },
          "customFields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FulfillmentRequestItemAttribute"
            }
          },
          "binLocation": {
            "type": "string"
          },
          "subtotal": {
            "type": "number"
          }
        }
      },
      "InboundShipmentItem": {
        "description": "",
        "x-tags": [
          "Models"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "integer"
          },
          "orderItemId": {
            "type": "integer"
          },
          "purchaseOrderId": {
            "type": "integer"
          },
          "inventoryVariantId": {
            "type": "integer",
            "format": "int64"
          },
          "restockingInventoryVariantId": {
            "type": "integer",
            "format": "int64"
          },
          "sku": {
            "type": "string",
            "minLength": 1,
            "description": "This field represents the `originating sku` based on where this item is coming from. See `restockingSku` for the `destination sku` if available."
          },
          "upc": {
            "type": "string",
            "description": "While often the same, this represents the `originating UPC` based on where this item is coming from."
          },
          "mpn": {
            "type": "string",
            "description": "This represents the `originating MPN` based on where this item is coming from."
          },
          "restockingSku": {
            "type": "string",
            "description": "This field represents the `destination sku`. If no destination sku is provided, please revert back to the `sku` field (this means that we do not have a reference to this item in Flxpoint)"
          },
          "quantity": {
            "type": "integer"
          },
          "acknowledgedQuantity": {
            "default": 0,
            "type": "integer"
          },
          "shippedQuantity": {
            "type": "integer",
            "default": 0
          },
          "receivedQuantity": {
            "type": "integer",
            "default": 0
          },
          "voidedQuantity": {
            "type": "integer",
            "default": 0
          },
          "cost": {
            "type": "number"
          },
          "canceledQuantity": {
            "type": "integer"
          },
          "title": {
            "type": "string"
          },
          "weight": {
            "type": "number"
          },
          "weightUnit": {
            "$ref": "#/components/schemas/WeightUnit"
          },
          "length": {
            "type": "number"
          },
          "width": {
            "type": "number"
          },
          "height": {
            "type": "number"
          },
          "dimensionUnit": {
            "$ref": "#/components/schemas/DimensionUnit"
          },
          "bundleComponents": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PurchaseOrderItemBundleComponent"
            }
          }
        }
      },
      "CreatePurchaseOrderItemRequest": {
        "description": "",
        "x-tags": [
          "Models"
        ],
        "type": "object",
        "properties": {
          "orderItemId": {
            "type": "integer",
            "description": "In order to associate PO items to Order Items, we require `orderItemId`.\n\nIf an `orderItemId` is provided that does not correspond to the `orderId` provided in the creation request, a bad request (status code `400`) will be returned with a relevant message."
          },
          "quantity": {
            "type": "integer"
          },
          "inventoryVariantId": {
            "type": "integer",
            "format": "int64",
            "description": "If `inventoryVariantId` is passed, we will associate that inventory variant record and it's metadata with this PO item. This field allows you to leverage features like \"committed stock\".\n\nThis must be an inventory variant from the same `sourceId` used in the creation request.\n\nIf this field is NOT passed, you will need to pass `sku`. \n\nThe following fields will be auto-populated from the matching inventory variant (no values will be overwritten, only populated if null)\n - Cost\n - Title\n - Weight\n - Weight Unit\n - Length\n - Width\n - Height\n - Dimension Unit\n - MPN\n - UPC\n\nIf an inventory variant cannnot be found with the ID provided, we will check the `sku` field and follow it's workflow. If `sku` is null, an error message will be returned."
          },
          "sku": {
            "type": "string",
            "description": "If `inventoryVariantId` is also passed with `sku`, we will first defer to that field's workflow.\n\nIf `sku` is passed, we will search for a matching Inventory Variant (within the same `sourceId` used in the creation request) to associate with this PO item. \n\nIf this field is NOT passed, you will need to pass `inventoryVariantId`\n\nThe following fields will be auto-populated from the matching inventory variant (no values will be overwritten, only populated if null)\n - Cost\n - Title\n - Weight\n - Weight Unit\n - Length\n - Width\n - Height\n - Dimension Unit\n - MPN\n - UPC\n\nIf an inventory variant cannnot be found for this `sku` - the PO item will be treated as a unmanaged item and no fields or links will be established."
          },
          "cost": {
            "type": "number"
          },
          "title": {
            "type": "string"
          },
          "weightUnit": {
            "type": "string",
            "enum": [
              "pound",
              "ounce",
              "gram",
              "kilogram"
            ]
          },
          "weight": {
            "type": "number"
          },
          "dimensionUnit": {
            "type": "string",
            "enum": [
              "inch",
              "centimeter"
            ]
          },
          "length": {
            "type": "number"
          },
          "width": {
            "type": "number"
          },
          "height": {
            "type": "number"
          },
          "upc": {
            "type": "string"
          },
          "mpn": {
            "type": "string"
          },
          "attributes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CreatePurchaseOrderItemAttributeRequest"
            }
          },
          "bundleComponents": {
            "type": "array",
            "description": "If this PO Item is associated to a specific Order Item Bundle Component, an ID must be passed here",
            "items": {
              "$ref": "#/components/schemas/CreatePurchaseOrderItemBundleRequest"
            }
          }
        },
        "required": [
          "orderItemId",
          "quantity"
        ]
      },
      "CreateFulfillmentRequestItem": {
        "description": "",
        "x-tags": [
          "Models"
        ],
        "type": "object",
        "properties": {
          "orderItemId": {
            "type": "integer",
            "description": "In order to associate PO items to Order Items, we require `orderItemId`.\n\nIf an `orderItemId` is provided that does not correspond to the `orderId` provided in the creation request, a bad request (status code `400`) will be returned with a relevant message."
          },
          "quantity": {
            "type": "integer"
          },
          "inventoryVariantId": {
            "type": "integer",
            "format": "int64",
            "description": "If `inventoryVariantId` is passed, we will associate that inventory variant record and it's metadata with this PO item. This field allows you to leverage features like \"committed stock\".\n\nThis must be an inventory variant from the same `sourceId` used in the creation request.\n\nIf this field is NOT passed, you will need to pass `sku`. \n\nThe following fields will be auto-populated from the matching inventory variant (no values will be overwritten, only populated if null)\n - Cost\n - Title\n - Weight\n - Weight Unit\n - Length\n - Width\n - Height\n - Dimension Unit\n - MPN\n - UPC\n\nIf an inventory variant cannnot be found with the ID provided, we will check the `sku` field and follow it's workflow. If `sku` is null, an error message will be returned."
          },
          "sku": {
            "type": "string",
            "description": "If `inventoryVariantId` is also passed with `sku`, we will first defer to that field's workflow.\n\nIf `sku` is passed, we will search for a matching Inventory Variant (within the same `sourceId` used in the creation request) to associate with this PO item. \n\nIf this field is NOT passed, you will need to pass `inventoryVariantId`\n\nThe following fields will be auto-populated from the matching inventory variant (no values will be overwritten, only populated if null)\n - Cost\n - Title\n - Weight\n - Weight Unit\n - Length\n - Width\n - Height\n - Dimension Unit\n - MPN\n - UPC\n\nIf an inventory variant cannnot be found for this `sku` - the PO item will be treated as a unmanaged item and no fields or links will be established."
          },
          "cost": {
            "type": "number"
          },
          "title": {
            "type": "string"
          },
          "weightUnit": {
            "type": "string",
            "enum": [
              "pound",
              "ounce",
              "gram",
              "kilogram"
            ]
          },
          "weight": {
            "type": "number"
          },
          "dimensionUnit": {
            "type": "string",
            "enum": [
              "inch",
              "centimeter"
            ]
          },
          "length": {
            "type": "number"
          },
          "width": {
            "type": "number"
          },
          "height": {
            "type": "number"
          },
          "upc": {
            "type": "string"
          },
          "mpn": {
            "type": "string"
          },
          "attributes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CreateFulfillmentRequestItemAttribute"
            }
          },
          "bundleComponents": {
            "type": "array",
            "description": "If this PO Item is associated to a specific Order Item Bundle Component, an ID must be passed here",
            "items": {
              "$ref": "#/components/schemas/CreateFulfillmentRequestItemBundle"
            }
          }
        },
        "required": [
          "orderItemId",
          "quantity"
        ]
      },
      "Shipment": {
        "description": "",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "x-examples": {},
        "properties": {
          "id": {
            "type": "integer"
          },
          "note": {
            "type": "string"
          },
          "trackingUrl": {
            "type": "string"
          },
          "trackingNumber": {
            "type": "string",
            "minLength": 1
          },
          "carrier": {
            "type": "string",
            "minLength": 1
          },
          "method": {
            "type": "string",
            "minLength": 1
          },
          "shippedAt": {
            "type": "string",
            "format": "date-time"
          },
          "insertedAt": {
            "type": "string",
            "format": "date-time"
          },
          "shippingCost": {
            "type": "number"
          },
          "orderId": {
            "type": "integer"
          },
          "purchaseOrderId": {
            "type": "integer"
          },
          "fulfillmentRequestId": {
            "type": "integer"
          },
          "rmaId": {
            "type": "integer"
          },
          "sourceId": {
            "type": "integer"
          },
          "accountId": {
            "type": "integer"
          },
          "partial": {
            "type": "boolean"
          },
          "suppressed": {
            "type": "boolean"
          },
          "syncedToChannel": {
            "type": "boolean"
          },
          "syncError": {
            "type": "string"
          },
          "crossDockPurchaseOrderId": {
            "type": "integer"
          },
          "shipmentItems": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ShipmentItem"
            }
          },
          "customFields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ShipmentCustomField"
            }
          },
          "updatedAt": {
            "type": "string",
            "x-stoplight": {
              "id": "b3axcdvbjocyx"
            },
            "format": "date-time"
          },
          "accountingSynced": {
            "type": "boolean"
          }
        }
      },
      "CreateShipment": {
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "x-examples": {},
        "properties": {
          "note": {
            "type": "string"
          },
          "trackingUrl": {
            "type": "string",
            "description": "an url to track current status of the shipment."
          },
          "trackingNumber": {
            "type": "string",
            "description": "unique number identifying this package across a carrier."
          },
          "carrier": {
            "type": "string",
            "description": "The carrier responsible for delivering the shipment."
          },
          "method": {
            "type": "string",
            "description": "the delivery method used to ship the package."
          },
          "shippedAt": {
            "type": "string",
            "format": "date-time",
            "description": "date-time at which this was shipped."
          },
          "shippingCost": {
            "type": "number",
            "description": "The cost of delivering the items to the destination."
          },
          "suppressed": {
            "type": "boolean",
            "description": "When true, the shipment information will **not** be synced back to the  channel."
          },
          "shipmentItems": {
            "type": "array",
            "uniqueItems": true,
            "description": "items in this shipment.",
            "items": {
              "$ref": "#/components/schemas/CreateShipmentItem"
            }
          },
          "customFields": {
            "type": "array",
            "uniqueItems": true,
            "description": "Custom fields in this shipment to save. Any Custom Field with an empty name or value will be ignored (won't be saved). Also, each Custom Field should have a unique name; duplicates will also be ignored.",
            "items": {
              "$ref": "#/components/schemas/CreateShipmentCustomField"
            }
          }
        },
        "required": [
          "trackingNumber"
        ],
        "title": "CreateShipment"
      },
      "PatchShipmentRequest": {
        "x-stoplight": {
          "id": "b1ucvfciynexc"
        },
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "x-examples": {},
        "title": "PatchShipmentRequest",
        "description": "Patch Shipment Request",
        "properties": {
          "id": {
            "type": "integer",
            "x-stoplight": {
              "id": "fkstkcw1tc1na"
            },
            "description": "The identifier for this shipment."
          },
          "fulfillmentRequestId": {
            "type": "integer",
            "x-stoplight": {
              "id": "ffim0hhj1jjhe"
            },
            "description": "The ID of the fulfillment request this shipment corresponds to. If changed, shipment items will be re-associated to items from the fulfillment request specified. Item associations can be directly configured using the `fulfillmentRequestItemId`, `orderItemId`, or `inventoryVariantId`; otherwise `sku` will be used. If no matching fulfillment request item is found, a 400 status will be returned."
          },
          "note": {
            "type": "string"
          },
          "trackingUrl": {
            "type": "string",
            "description": "a url to track current status of the shipment."
          },
          "trackingNumber": {
            "type": "string",
            "description": "unique number identifying this package across a carrier."
          },
          "carrier": {
            "type": "string",
            "description": "The carrier responsible for delivering the shipment."
          },
          "method": {
            "type": "string",
            "description": "the delivery method used to ship the package."
          },
          "shippedAt": {
            "type": "string",
            "format": "date-time",
            "description": "date-time at which this was shipped."
          },
          "shippingCost": {
            "type": "number",
            "description": "The cost of delivering the items to the destination."
          },
          "suppressed": {
            "type": "boolean",
            "x-stoplight": {
              "id": "fr2sehv4aa72i"
            },
            "description": "When true, the shipment information will **not** be synced back to the  channel."
          },
          "shipmentItems": {
            "type": "array",
            "uniqueItems": true,
            "description": "Items in this shipment to save (new or existing). Items must be deleted separately. ID is required to update an existing item."
          },
          "customFields": {
            "type": "array",
            "uniqueItems": true,
            "description": "Custom fields in this shipment to save (new or existing). Custom fields must be deleted separately. ID is required to update an existing custom field. Any Custom Field with an empty name or value will be ignored (won't be saved). Also, each Custom Field should have a unique name; duplicates will also be ignored.\n\n\n\n\n",
            "items": {
              "$ref": "#/components/schemas/ShipmentCustomField"
            }
          },
          "allowDuplicateTrackingNumbers": {
            "type": "boolean",
            "x-stoplight": {
              "id": "kiump2k8cx0k8"
            },
            "default": false,
            "description": "Indicates that the tracking number should be allowed more than once for the associated fulfillment request."
          }
        },
        "required": [
          "id"
        ]
      },
      "OrderItemBundleComponent": {
        "description": "",
        "x-tags": [
          "Models"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "integer"
          },
          "orderItemId": {
            "type": "integer"
          },
          "componentVirtualVariantId": {
            "type": "integer"
          },
          "componentQuantity": {
            "type": "integer"
          },
          "quantity": {
            "type": "integer"
          },
          "sku": {
            "type": "string"
          },
          "cost": {
            "type": "number"
          },
          "shippedQuantity": {
            "type": "integer"
          },
          "shippedStatus": {
            "$ref": "#/components/schemas/CompletionStatus"
          },
          "allocatedQuantity": {
            "type": "integer"
          },
          "allocatedStatus": {
            "$ref": "#/components/schemas/CompletionStatus"
          },
          "acknowledgedQuantity": {
            "type": "integer"
          },
          "acknowledgedStatus": {
            "$ref": "#/components/schemas/CompletionStatus"
          }
        },
        "required": [
          "quantity"
        ]
      },
      "Order": {
        "x-tags": [
          "Models"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "integer"
          },
          "orderNumber": {
            "type": "string",
            "minLength": 1
          },
          "referenceNumber": {
            "type": "string",
            "minLength": 1
          },
          "orderTotal": {
            "type": "number"
          },
          "note": {
            "type": "string"
          },
          "importedFrom": {
            "type": "integer"
          },
          "orderedAt": {
            "type": "string",
            "format": "date-time"
          },
          "insertedAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "shippingText": {
            "type": "string",
            "minLength": 1
          },
          "acknowledgedStatus": {
            "$ref": "#/components/schemas/CompletionStatus"
          },
          "shippedStatus": {
            "$ref": "#/components/schemas/CompletionStatus"
          },
          "orderStatus": {
            "$ref": "#/components/schemas/OrderStatus"
          },
          "shippingAddress": {
            "$ref": "#/components/schemas/Address"
          },
          "billingAddress": {
            "$ref": "#/components/schemas/Address"
          },
          "dealerAddress": {
            "$ref": "#/components/schemas/Address"
          },
          "channelId": {
            "type": "integer"
          },
          "reseller": {
            "$ref": "#/components/schemas/Reseller"
          },
          "released": {
            "type": "boolean"
          },
          "accountId": {
            "type": "integer"
          },
          "paymentStatus": {
            "$ref": "#/components/schemas/PaymentStatus"
          },
          "allocatedStatus": {
            "$ref": "#/components/schemas/CompletionStatus"
          },
          "canceledAt": {
            "type": "string",
            "format": "date-time"
          },
          "totalOrderItems": {
            "type": "integer",
            "default": 0
          },
          "totalQuantity": {
            "type": "integer",
            "default": 0
          },
          "totalWeight": {
            "type": "number"
          },
          "paymentRefundStatus": {
            "$ref": "#/components/schemas/PaymentRefundStatus"
          },
          "paymentCreditStatus": {
            "$ref": "#/components/schemas/PaymentRefundStatus"
          },
          "purchaseOrderStatus": {
            "$ref": "#/components/schemas/CompletionStatus"
          },
          "purchaseOrderProcessStatus": {
            "$ref": "#/components/schemas/CompletionStatus"
          },
          "purchaseOrderFailedStatus": {
            "$ref": "#/components/schemas/CompletionStatus"
          },
          "purchaseOrderCanceledStatus": {
            "$ref": "#/components/schemas/CompletionStatus"
          },
          "purchaseOrderVoidedStatus": {
            "$ref": "#/components/schemas/CompletionStatus"
          },
          "paymentDeferredAt": {
            "type": "string",
            "format": "date-time"
          },
          "paymentDeferredUntil": {
            "type": "string",
            "format": "date-time"
          },
          "channelInvoiceReceiptQueuedId": {
            "type": "string"
          },
          "channelShippingMethod": {
            "$ref": "#/components/schemas/ChannelShippingMethod"
          },
          "totalPos": {
            "type": "integer",
            "default": 0
          },
          "shippingPolicy": {
            "$ref": "#/components/schemas/ShippingPolicy"
          },
          "poTotalCost": {
            "type": "number"
          },
          "sourceInvoiceTotalCost": {
            "type": "number"
          },
          "profitAmount": {
            "type": "number"
          },
          "profitMargin": {
            "type": "number"
          },
          "sourceInvoiceStatus": {
            "$ref": "#/components/schemas/CompletionStatus"
          },
          "accountingSynced": {
            "type": "boolean"
          },
          "externalAccountingId": {
            "type": "string"
          },
          "piiRetentionPolicyType": {
            "$ref": "#/components/schemas/PIIRetentionPolicyType"
          },
          "piiRetentionPolicyApplied": {
            "type": "boolean"
          },
          "orderItems": {
            "type": "array",
            "minItems": 1,
            "uniqueItems": true,
            "items": {
              "$ref": "#/components/schemas/OrderItem"
            }
          },
          "purchaseOrders": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PurchaseOrder"
            }
          },
          "fulfillmentRequests": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FulfillmentRequest"
            }
          },
          "orderInvoice": {
            "$ref": "#/components/schemas/OrderInvoice"
          },
          "orderStatusHistory": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OrderStatusHistory"
            }
          },
          "tags": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "attributes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OrderAttribute"
            }
          },
          "sourceId": {
            "type": "integer"
          },
          "orderFFL": {
            "$ref": "#/components/schemas/OrderFFL"
          },
          "returns": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ReturnModel"
            }
          },
          "poLogs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PurchaseOrderLog"
            }
          },
          "totalReturns": {
            "type": "integer"
          },
          "orderType": {
            "$ref": "#/components/schemas/OrderType"
          },
          "fulfillmentType": {
            "$ref": "#/components/schemas/FulfillmentType"
          },
          "syncedClosedAt": {
            "type": "string",
            "format": "date-time"
          },
          "resellerId": {
            "type": "integer"
          },
          "orderComments": {
            "type": "array",
            "x-stoplight": {
              "id": "to28s4zwysrgu"
            },
            "items": {
              "$ref": "#/components/schemas/OrderComment"
            }
          },
          "accountingSyncError": {
            "type": "string",
            "x-stoplight": {
              "id": "6rlw2oos5svkl"
            }
          },
          "shippingPolicyId": {
            "type": "integer"
          },
          "modifiedAt": {
            "type": "string",
            "format": "date-time",
            "description": "The timestamp of the last time this order or any of its sub-components have been modified. Sub-components include : \n\nLine Items\n\nFFL\n\nShipping Address\n\nBilling Address\n\nFR/PR/SPO/TO\n\nShipments\n\nSource Invoices\n\nReturns\n\nRMAs"
          }
        }
      },
      "OrderStatus": {
        "type": "string",
        "title": "OrderStatus",
        "nullable": true,
        "x-tags": [
          "Models"
        ],
        "enum": [
          "Open",
          "Closed",
          "On Hold",
          "Failed",
          "No Shipping Method",
          "Canceled",
          "Not Managed",
          "Draft"
        ]
      },
      "rmaStatus": {
        "type": "string",
        "title": "RmaStatus",
        "x-tags": [
          "Models"
        ],
        "enum": [
          "Waiting",
          "Approved",
          "Voided",
          "Denied",
          "Partially Approved",
          "Canceled"
        ]
      },
      "Address": {
        "description": "",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "title": "Address",
        "properties": {
          "id": {
            "type": "integer"
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "description": "Field created real-time by concatenating \"firstName\" and \"lastName\"",
            "example": "Joe Smith"
          },
          "addressLine1": {
            "type": "string",
            "minLength": 1,
            "example": "120 1st Lane"
          },
          "addressLine2": {
            "type": "string",
            "example": "Suite 123"
          },
          "city": {
            "type": "string",
            "minLength": 1,
            "example": "Jacksonville"
          },
          "state": {
            "type": "string",
            "minLength": 1,
            "example": "Florida"
          },
          "country": {
            "type": "string",
            "minLength": 1,
            "example": "United States"
          },
          "stateCode": {
            "type": "string",
            "minLength": 1,
            "example": "FL"
          },
          "countryCode": {
            "type": "string",
            "minLength": 1,
            "example": "US"
          },
          "postal": {
            "type": "string",
            "minLength": 1,
            "example": "12345",
            "description": "Postal / Zip Code of address"
          },
          "email": {
            "type": "string",
            "minLength": 1,
            "example": "person@example.com"
          },
          "phone": {
            "type": "string",
            "minLength": 1,
            "example": "1-555-123-4567",
            "description": "Free form string field, format isn't enforced"
          },
          "companyName": {
            "type": "string"
          },
          "firstName": {
            "type": "string",
            "minLength": 1,
            "example": "Joe"
          },
          "lastName": {
            "type": "string",
            "minLength": 1,
            "example": "Smith"
          },
          "redacted": {
            "type": "boolean",
            "description": "Represents if the address information was related to an Order with a PII (Personably Identifiable Information) retention policy attached. If the Order exceeds the PII retention period, this address will have information redacted."
          },
          "hash": {
            "type": "string",
            "description": "Represents a unique hash of this address."
          }
        }
      },
      "CreateAddressRequest": {
        "description": "Request to create a new address if it does not already exist. State/State Code and Country/Country Code can be populated based on the data available. (i.e. \"FL\" could be passed to \"stateCode\" to derive the \"state\" value \"Florida\" - also works in the opposite direction).",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "title": "CreateAddressRequest",
        "properties": {
          "name": {
            "type": "string",
            "description": "If `name` is provided and `firstName` and `lastName` are not provided, we will split this into a `firstName` and `lastName` fields",
            "example": "Joe Smith"
          },
          "firstName": {
            "type": "string",
            "example": "Joe"
          },
          "lastName": {
            "type": "string",
            "example": "Smith"
          },
          "addressLine1": {
            "type": "string",
            "example": "1000 1st Lane"
          },
          "city": {
            "type": "string",
            "example": "Jacksonville"
          },
          "postal": {
            "type": "string",
            "description": "Postal / Zip Code",
            "example": "12345"
          },
          "addressLine2": {
            "type": "string",
            "example": "Suite 123"
          },
          "state": {
            "type": "string",
            "example": "Florida",
            "description": "If \"state code\" is provided, this field will automatically be populated for US States."
          },
          "country": {
            "type": "string",
            "description": "If \"country code\" is populated, this will automatically be populated for most countries. ",
            "example": "United States"
          },
          "stateCode": {
            "type": "string",
            "description": "If \"state\" is populated, this will automatically be populated for US States.",
            "example": "FL"
          },
          "countryCode": {
            "type": "string",
            "description": "If \"country\" is populated, this will automatically be populated for most countries. ISO 3166 format",
            "example": "US"
          },
          "email": {
            "type": "string",
            "example": "person@example.com",
            "format": "email"
          },
          "phone": {
            "type": "string",
            "description": "",
            "example": "1-555-123-4567"
          },
          "companyName": {
            "type": "string"
          }
        }
      },
      "SaveCustomPackageRequest": {
        "description": "",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "title": "SaveCustomPackageRequest",
        "x-examples": {
          "Example 1": {
            "name": "My Custom Package",
            "length": 8.6,
            "width": 5.4,
            "height": 1.6,
            "weight": 0.1,
            "weightUnit": "lb",
            "dimensionUnit": "in"
          }
        },
        "properties": {
          "name": {
            "type": "string"
          },
          "length": {
            "type": "number"
          },
          "width": {
            "type": "number"
          },
          "height": {
            "type": "number"
          },
          "dimensionUnit": {
            "type": "string",
            "enum": [
              "in",
              "cm"
            ]
          },
          "weight": {
            "type": "number"
          },
          "weightUnit": {
            "type": "string",
            "enum": [
              "lb",
              "oz",
              "g",
              "kg"
            ]
          }
        },
        "required": [
          "name",
          "length",
          "width",
          "height",
          "dimensionUnit",
          "weight",
          "weightUnit"
        ]
      },
      "PaymentRefundStatus": {
        "type": "string",
        "x-tags": [
          "Models"
        ],
        "title": "PaymentRefundStatus",
        "enum": [
          "None",
          "Partially",
          "Fully"
        ]
      },
      "PIIRetentionPolicyType": {
        "title": "PIIRetentionPolicyType",
        "x-tags": [
          "Models"
        ],
        "type": "object",
        "properties": {
          "handle": {
            "type": "string",
            "enum": [
              "30_days_after_shipment",
              "60_days_after_shipment",
              "90_days_after_shipment",
              "none"
            ]
          },
          "name": {
            "type": "string",
            "enum": [
              "30 days After Shipment",
              "60 days After Shipment",
              "90 days After Shipment",
              "Indefinitely"
            ]
          }
        }
      },
      "PurchaseOrder": {
        "description": "This is deprecated. We are replacing it with FulfillmentRequest. It is just a terminology change.\nAll ”purchase-orders” endpoints have now been renamed to ”fulfillment-requests”.",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "id": {
            "type": "integer"
          },
          "purchaseOrderNumber": {
            "type": "string"
          },
          "orderId": {
            "type": "integer"
          },
          "sentAt": {
            "type": "string",
            "format": "date-time"
          },
          "sourceId": {
            "type": "integer"
          },
          "acknowledgedAt": {
            "type": "string",
            "format": "date-time"
          },
          "secondaryAcknowledgedAt": {
            "type": "string",
            "format": "date-time"
          },
          "canceledAt": {
            "type": "string",
            "format": "date-time"
          },
          "shippingAddress": {
            "$ref": "#/components/schemas/Address"
          },
          "billingAddress": {
            "$ref": "#/components/schemas/Address"
          },
          "shippingText": {
            "type": "string",
            "deprecated": true
          },
          "note": {
            "type": "string",
            "description": "A note that can optionally be passed through all the way to the source"
          },
          "confirmationNumber": {
            "type": "string"
          },
          "shippedStatus": {
            "$ref": "#/components/schemas/CompletionStatus"
          },
          "purchaseOrderStatus": {
            "$ref": "#/components/schemas/PurchaseOrderStatus"
          },
          "purchaseOrderFulfillmentStatus": {
            "$ref": "#/components/schemas/PurchaseOrderFulfillmentStatus"
          },
          "generatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "voidedAt": {
            "type": "string",
            "format": "date-time"
          },
          "accountId": {
            "type": "integer"
          },
          "totalItems": {
            "type": "integer"
          },
          "totalCost": {
            "type": "number"
          },
          "totalQuantity": {
            "type": "integer"
          },
          "shippedQuantity": {
            "type": "integer"
          },
          "estimatedShippingCost": {
            "type": "number"
          },
          "estimatedDropshipFee": {
            "type": "number"
          },
          "sourceShippingMethod": {
            "$ref": "#/components/schemas/SourceShippingMethod"
          },
          "suppressTracking": {
            "type": "boolean"
          },
          "beingProcessed": {
            "type": "boolean"
          },
          "totalSourceInvoices": {
            "type": "integer"
          },
          "fflInfoRequired": {
            "type": "boolean"
          },
          "lastModifiedAt": {
            "type": "string",
            "minLength": 1,
            "format": "date-time"
          },
          "accountingSynced": {
            "type": "boolean"
          },
          "externalAccountingId": {
            "type": "string"
          },
          "holdUntil": {
            "type": "string",
            "format": "date-time"
          },
          "rateShoppedId": {
            "type": "string"
          },
          "packageDimensionUnit": {
            "$ref": "#/components/schemas/DimensionUnit"
          },
          "packageLength": {
            "type": "number"
          },
          "packageWidth": {
            "type": "number"
          },
          "packageHeight": {
            "type": "number"
          },
          "packageWeightUnit": {
            "$ref": "#/components/schemas/WeightUnit"
          },
          "packageWeight": {
            "type": "number"
          },
          "channelId": {
            "type": "integer"
          },
          "crossDockPurchaseOrderId": {
            "type": "integer",
            "description": "Establish this PO as part of a cross docking request by providing the cross dock PO ID"
          },
          "voidedReason": {
            "type": "string"
          },
          "processingErrorReason": {
            "type": "string",
            "description": "The reason this purchase order could not be processed"
          },
          "cancelReason": {
            "type": "string"
          },
          "purchaseOrderItems": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PurchaseOrderItem"
            }
          },
          "shipments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Shipment"
            }
          },
          "invoices": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Invoice"
            }
          },
          "purchaseOrderAttributes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PurchaseOrderAttribute"
            }
          },
          "purchaseOrderType": {
            "$ref": "#/components/schemas/PurchaseOrderType"
          },
          "shippingAddressId": {
            "type": "integer"
          },
          "billingAddressId": {
            "type": "integer"
          },
          "sourceShippingMethodId": {
            "type": "integer"
          },
          "shippingDistance": {
            "type": "number"
          },
          "purchaseOrderReceivedStatus": {
            "$ref": "#/components/schemas/PurchaseOrderReceivedStatus"
          },
          "carrierCode": {
            "type": "string"
          },
          "methodCode": {
            "type": "string"
          },
          "purchaseOrderPackage": {
            "$ref": "#/components/schemas/PurchaseOrderPackage"
          },
          "buyShippingLabel": {
            "type": "boolean",
            "default": false
          },
          "orderFFL": {
            "$ref": "#/components/schemas/OrderFFL"
          },
          "totalWeight": {
            "type": "number"
          },
          "attachmentLinks": {
            "type": "array",
            "description": "A list of URLs containing each file attached to this Purchase Order. These include both shipping labels and packing slips.",
            "items": {
              "type": "string"
            }
          },
          "shippingLabelAttachmentLink": {
            "type": "string",
            "x-stoplight": {
              "id": "lbqvmi2f9dl2j"
            },
            "description": "URL for downloading the Shipping Label for this PO if one is attached. If more than one shipping label attachment exists, the first will be provided. See `attachmentLinks` for a full list of all attachment URLs for this PO (regardless of type)."
          },
          "packingSlipAttachmentLink": {
            "type": "string",
            "x-stoplight": {
              "id": "9dj3iki7zrk0y"
            },
            "description": "URL for downloading the Packing Slip for this PO if one is attached. If more than one packing slip attachment exists, the first will be provided. See `attachmentLinks` for a full list of all attachment URLs for this PO (regardless of type)."
          },
          "tags": {
            "type": "array",
            "x-stoplight": {
              "id": "5r27wfxacumop"
            },
            "items": {
              "type": "string"
            }
          },
          "fullyReceivedAt": {
            "type": "string",
            "format": "date-time",
            "description": "The date and time when this Purchase Order was fully received."
          }
        }
      },
      "FulfillmentRequest": {
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "id": {
            "type": "integer",
            "description": "A unique identifier for the fulfillment request."
          },
          "fulfillmentRequestNumber": {
            "type": "string"
          },
          "orderId": {
            "type": "integer",
            "description": "The unique identifier for the order associated with the fulfillment request. This field is used to link the fulfillment request to the specific order that it is fulfilling. The orderId can be used to retrieve information about the order, such as the customer information, the items purchased, and the shipping address. It can also be used to track the status of the order and its associated fulfillment requests."
          },
          "sentAt": {
            "type": "string",
            "format": "date-time",
            "description": " The date and time when it was sent to the supplier",
            "example": "2023-04-25T13:56:22.014Z"
          },
          "sourceId": {
            "type": "integer",
            "description": "Unique identifier of the source which will fulfill this Fulfillment Request."
          },
          "acknowledgedAt": {
            "type": "string",
            "format": "date-time",
            "description": "The acknowledgedAt field refers to the date and time when a vendor or supplier that is responsible for fulfilling the order has acknowledged or accepted the fulfillment request.",
            "example": "2023-04-25T13:56:22.014Z"
          },
          "secondaryAcknowledgedAt": {
            "type": "string",
            "format": "date-time"
          },
          "canceledAt": {
            "type": "string",
            "format": "date-time",
            "description": "The date and time when the fulfillment request was canceled.",
            "example": "2023-04-25T13:56:22.014Z"
          },
          "shippingAddress": {
            "$ref": "#/components/schemas/Address"
          },
          "billingAddress": {
            "$ref": "#/components/schemas/Address"
          },
          "shippingText": {
            "type": "string",
            "deprecated": true
          },
          "note": {
            "type": "string",
            "description": "A note that can optionally be passed through all the way to the source"
          },
          "confirmationNumber": {
            "type": "string",
            "description": "A unique identifier returned from the source for indicating receipt and identifying the Fulfillment Request once it has been processed and acknowledged on their side."
          },
          "shippedStatus": {
            "$ref": "#/components/schemas/CompletionStatus"
          },
          "fulfillmentRequestStatus": {
            "$ref": "#/components/schemas/FulfillmentRequestStatus"
          },
          "fulfillmentRequestFulfillmentStatus": {
            "$ref": "#/components/schemas/FulfillmentRequestFulfillmentStatus"
          },
          "generatedAt": {
            "type": "string",
            "format": "date-time",
            "example": "2023-04-25T13:56:22.014Z",
            "description": "The date and time when this Fulfillment Request was generated."
          },
          "voidedAt": {
            "type": "string",
            "format": "date-time",
            "example": "2023-04-25T13:56:22.014Z",
            "description": "The date and time when this Fulfillment Request was voided."
          },
          "accountId": {
            "type": "integer",
            "deprecated": true
          },
          "totalItems": {
            "type": "integer",
            "description": "Total Number of Fulfillment Request Items."
          },
          "totalCost": {
            "type": "number",
            "description": "Total cost of the Fulfillment Request Items"
          },
          "totalQuantity": {
            "type": "integer",
            "description": " Total quantity of the Fulfillment Request Items."
          },
          "shippedQuantity": {
            "type": "integer",
            "description": "Total quantity of the Fulfillment Request Items that has been shipped."
          },
          "estimatedShippingCost": {
            "type": "number"
          },
          "estimatedDropshipFee": {
            "type": "number"
          },
          "sourceShippingMethod": {
            "$ref": "#/components/schemas/SourceShippingMethod"
          },
          "suppressTracking": {
            "type": "boolean",
            "description": "Indicates whether or not tracking information should be suppressed for the associated fulfillment request. If this field is set to true, it means that tracking information for the fulfillment request will not be synced to the channel from where the order originated."
          },
          "beingProcessed": {
            "type": "boolean"
          },
          "totalSourceInvoices": {
            "type": "integer"
          },
          "fflInfoRequired": {
            "type": "boolean"
          },
          "lastModifiedAt": {
            "type": "string",
            "minLength": 1,
            "format": "date-time",
            "example": "2023-04-25T13:56:22.014Z"
          },
          "accountingSynced": {
            "type": "boolean"
          },
          "externalAccountingId": {
            "type": "string"
          },
          "holdUntil": {
            "type": "string",
            "format": "date-time",
            "pattern": "2023-04-25T13:56:22.014Z"
          },
          "rateShoppedId": {
            "type": "string"
          },
          "packageDimensionUnit": {
            "$ref": "#/components/schemas/DimensionUnit"
          },
          "packageLength": {
            "type": "number"
          },
          "packageWidth": {
            "type": "number"
          },
          "packageHeight": {
            "type": "number"
          },
          "packageWeightUnit": {
            "$ref": "#/components/schemas/WeightUnit"
          },
          "packageWeight": {
            "type": "number"
          },
          "channelId": {
            "type": "integer"
          },
          "crossDockPurchaseOrderId": {
            "type": "integer",
            "description": "The unique identifier for the Cross Dock Purchase Order associated with the Fulfillment Request. A Cross Dock Purchase Order is used to consolidate multiple FRs across a single or multiple orders into a single FR for fulfilling from a single source."
          },
          "voidedReason": {
            "type": "string",
            "description": " The reason why the Fulfillment Request was voided."
          },
          "processingErrorReason": {
            "type": "string",
            "description": "The reason this purchase order could not be processed"
          },
          "cancelReason": {
            "type": "string",
            "description": "The reason why the Fulfillment Request was canceled."
          },
          "fulfillmentRequestItems": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FulfillmentRequestItem"
            }
          },
          "shipments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Shipment"
            }
          },
          "invoices": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Invoice"
            }
          },
          "fulfillmentRequestAttributes": {
            "type": "array",
            "deprecated": true,
            "description": "Deprecated -- use `customFields` instead.",
            "items": {
              "$ref": "#/components/schemas/FulfillmentRequestAttribute"
            }
          },
          "fulfillmentRequestType": {
            "$ref": "#/components/schemas/FulfillmentRequestType"
          },
          "shippingAddressId": {
            "type": "integer"
          },
          "billingAddressId": {
            "type": "integer"
          },
          "sourceShippingMethodId": {
            "type": "integer"
          },
          "shippingDistance": {
            "type": "number"
          },
          "fulfillmentRequestReceivedStatus": {
            "$ref": "#/components/schemas/FulfillmentRequestReceivedStatus"
          },
          "carrierCode": {
            "type": "string"
          },
          "methodCode": {
            "type": "string"
          },
          "fulfillmentRequestPackage": {
            "$ref": "#/components/schemas/FulfillmentRequestPackage"
          },
          "buyShippingLabel": {
            "type": "boolean",
            "default": false
          },
          "orderFFL": {
            "$ref": "#/components/schemas/OrderFFL"
          },
          "totalWeight": {
            "type": "number"
          },
          "customFields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FulfillmentRequestAttribute"
            }
          },
          "attachmentLinks": {
            "type": "array",
            "description": "A list of URLs containing each file attached to this Fulfillment Request. These include both shipping labels and packing slips.",
            "items": {
              "type": "string"
            }
          },
          "shippingLabelAttachmentLink": {
            "type": "string",
            "x-stoplight": {
              "id": "uw44pbnwsqamo"
            },
            "description": "URL for downloading the Shipping Label for this FR if one is attached. If more than one shipping label attachment exists, the first will be provided. See `attachmentLinks` for a full list of all attachment URLs for this FR (regardless of type)."
          },
          "packingSlipAttachmentLink": {
            "type": "string",
            "x-stoplight": {
              "id": "5y7hifnismpc7"
            },
            "description": "URL for downloading the Packing Slip for this FR if one is attached. If more than one packing slip attachment exists, the first will be provided. See `attachmentLinks` for a full list of all attachment URLs for this FR (regardless of type)."
          },
          "tags": {
            "type": "array",
            "x-stoplight": {
              "id": "gqjxp2wtens4k"
            },
            "items": {
              "type": "string"
            }
          },
          "fullyReceivedAt": {
            "type": "string",
            "format": "date-time",
            "description": "The date and time when this Fulfillment Request was fully received."
          }
        }
      },
      "PurchaseOrderPackage": {
        "description": "A Purchase Order Package contains all metadata needed to buy a shipping label.",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "title": "PurchaseOrderPackage",
        "properties": {
          "id": {
            "type": "integer",
            "description": "The ID of the Purchase Order Package."
          },
          "purchaseOrderId": {
            "type": "integer",
            "description": "The ID of the Purchase Order to buy a shipping label for."
          },
          "rateId": {
            "description": "The Rate Shopping Provider's ID of the rate found that can be used to purchase the shipping label with. ",
            "type": "string"
          },
          "shipFromAddress": {
            "$ref": "#/components/schemas/Address"
          },
          "shipToAddress": {
            "$ref": "#/components/schemas/Address"
          },
          "createShipmentPostProcessing": {
            "type": "boolean",
            "x-stoplight": {
              "id": "51fzlbbhnh83m"
            },
            "description": "This will enable the automatic creation of a shipment with the tracking information from the purchased shipping label. It will be created once the Purchase Order is processed or acknowledged."
          },
          "updateShipmentOnPurchase": {
            "type": "boolean",
            "description": "If true, we will update the order with shipment details immediately after purchasing the label."
          },
          "shippingDate": {
            "format": "date-time",
            "type": "string",
            "description": "The date that the shipment should be sent."
          },
          "length": {
            "type": "number",
            "description": "Length of the package to ship with this label."
          },
          "width": {
            "type": "number",
            "description": "Width of the package to ship with this label."
          },
          "height": {
            "type": "number",
            "description": "Height of the package to ship with this label."
          },
          "dimensionUnit": {
            "$ref": "#/components/schemas/DimensionUnit"
          },
          "totalWeight": {
            "type": "number",
            "description": "Total weight of the package with all of its items included to be shipped with this label."
          },
          "weightUnit": {
            "$ref": "#/components/schemas/WeightUnit"
          },
          "shippingCarrierMethod": {
            "$ref": "#/components/schemas/ShippingCarrierMethod"
          },
          "rateShoppingProvider": {
            "$ref": "#/components/schemas/RateShoppingProvider"
          },
          "rateShoppingProviderLabelSize": {
            "type": "string",
            "enum": [
              "4x6",
              "letter"
            ],
            "default": "4x6",
            "description": "The preferred size of the shipping label."
          },
          "commonPackage": {
            "$ref": "#/components/schemas/CommonPackage"
          },
          "customPackage": {
            "$ref": "#/components/schemas/CustomPackage"
          },
          "items": {
            "type": "array",
            "description": "Metadata related to the items to be shipped in the package.",
            "items": {
              "$ref": "#/components/schemas/PurchaseOrderPackageItem"
            }
          }
        },
        "required": [
          "purchaseOrderId"
        ]
      },
      "FulfillmentRequestPackage": {
        "description": "A Fulfillment Request Package contains all metadata needed to buy a shipping label.",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "title": "FulfillmentRequestPackage",
        "properties": {
          "id": {
            "type": "integer",
            "description": "The ID of the Purchase Order Package."
          },
          "fulfillmentRequestId": {
            "type": "integer",
            "description": "The ID of the Purchase Order to buy a shipping label for."
          },
          "rateId": {
            "description": "The Rate Shopping Provider's ID of the rate found that can be used to purchase the shipping label with. ",
            "type": "string"
          },
          "shipFromAddress": {
            "$ref": "#/components/schemas/Address"
          },
          "shipToAddress": {
            "$ref": "#/components/schemas/Address"
          },
          "createShipmentPostProcessing": {
            "type": "boolean",
            "x-stoplight": {
              "id": "ttkwjrqz753xc"
            },
            "description": "This will enable the automatic creation of a shipment with the tracking information from the purchased shipping label. It will be created once the Fulfillment Request is processed or acknowledged."
          },
          "updateShipmentOnPurchase": {
            "type": "boolean",
            "description": "If true, we will update the order with shipment details immediately after purchasing the label."
          },
          "shippingDate": {
            "format": "date-time",
            "type": "string",
            "description": "The date that the shipment should be sent."
          },
          "length": {
            "type": "number",
            "description": "Length of the package to ship with this label."
          },
          "width": {
            "type": "number",
            "description": "Width of the package to ship with this label."
          },
          "height": {
            "type": "number",
            "description": "Height of the package to ship with this label."
          },
          "dimensionUnit": {
            "$ref": "#/components/schemas/DimensionUnit"
          },
          "totalWeight": {
            "type": "number",
            "description": "Total weight of the package with all of its items included to be shipped with this label."
          },
          "weightUnit": {
            "$ref": "#/components/schemas/WeightUnit"
          },
          "shippingCarrierMethod": {
            "$ref": "#/components/schemas/ShippingCarrierMethod"
          },
          "rateShoppingProvider": {
            "$ref": "#/components/schemas/RateShoppingProvider"
          },
          "rateShoppingProviderLabelSize": {
            "type": "string",
            "enum": [
              "4x6",
              "letter"
            ],
            "default": "4x6",
            "description": "The preferred size of the shipping label."
          },
          "commonPackage": {
            "$ref": "#/components/schemas/CommonPackage"
          },
          "customPackage": {
            "$ref": "#/components/schemas/CustomPackage"
          },
          "items": {
            "type": "array",
            "description": "Metadata related to the items to be shipped in the package.",
            "items": {
              "$ref": "#/components/schemas/FulfillmentRequestPackageItem"
            }
          }
        },
        "required": [
          "fulfillmentRequestId"
        ]
      },
      "PurchaseOrderAcknowledgement": {
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "confirmationNumber": {
            "type": "string"
          }
        }
      },
      "FulfillmentRequestAcknowledgement": {
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "confirmationNumber": {
            "type": "string"
          }
        }
      },
      "FulfillmentAccountingSyncItem": {
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "x-internal": false,
        "properties": {
          "id": {
            "type": "integer",
            "x-stoplight": {
              "id": "e2qsudnkjum1l"
            },
            "description": "id of `Fulfillment Request Item`"
          },
          "externalAccountingItemId": {
            "type": "string",
            "description": "identfier in the external sytem that identfies this `Fulfillment Request Item`",
            "nullable": true
          }
        },
        "required": [
          "id"
        ]
      },
      "FulfillmentAccountingSyncRequest": {
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "x-internal": false,
        "x-examples": {
          "Example 1": {
            "accountingSynced": true,
            "externalAccountingId": "string",
            "accountingError": "string",
            "items": [
              {
                "id": 0,
                "externalAccountingItemId": "string"
              }
            ]
          }
        },
        "properties": {
          "accountingSynced": {
            "type": "boolean",
            "description": "specify whether or not it was synced to the external system",
            "nullable": true
          },
          "externalAccountingId": {
            "type": "string",
            "description": "identfier in the external system that identifies this Fulfillment Request",
            "nullable": true
          },
          "accountingError": {
            "type": "string",
            "description": "any error encountered in syncing this `Fulfillment Request` to the external system",
            "nullable": true
          },
          "items": {
            "type": "array",
            "description": "list of `Fulfillment Request Items` synced in the external accounting system",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/FulfillmentAccountingSyncItem"
            }
          }
        }
      },
      "PurchaseOrderBusinessHours": {
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "x-examples": {
          "example-1": {
            "isWithinBusinessDays": true,
            "sunday": null,
            "monday": {
              "startingAt": "09:00:00+00:00",
              "endingAt": "17:00:00+00:00"
            },
            "tuesday": {
              "startingAt": "09:00:00+00:00",
              "endingAt": "17:00:00+00:00"
            },
            "wednesday": {
              "startingAt": "09:00:00+00:00",
              "endingAt": "17:00:00+00:00"
            },
            "thursday": {
              "startingAt": "09:00:00+00:00",
              "endingAt": "17:00:00+00:00"
            },
            "friday": {
              "startingAt": "09:00:00+00:00",
              "endingAt": "15:00:00+00:00"
            },
            "saturday": null
          }
        },
        "properties": {
          "isWithinBusinessDays": {
            "type": "boolean"
          },
          "sunday": {
            "$ref": "#/components/schemas/PurchaseOrderHours"
          },
          "monday": {
            "$ref": "#/components/schemas/PurchaseOrderHours"
          },
          "tuesday": {
            "$ref": "#/components/schemas/PurchaseOrderHours"
          },
          "wednesday": {
            "$ref": "#/components/schemas/PurchaseOrderHours"
          },
          "thursday": {
            "$ref": "#/components/schemas/PurchaseOrderHours"
          },
          "friday": {
            "$ref": "#/components/schemas/PurchaseOrderHours"
          },
          "saturday": {
            "$ref": "#/components/schemas/PurchaseOrderHours"
          }
        }
      },
      "PurchaseOrderHours": {
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "x-examples": {
          "monday": {
            "startingAt": "09:00:00+00:00",
            "endingAt": "17:00:00+00:00"
          }
        },
        "properties": {
          "startingAt": {
            "type": "string",
            "pattern": "^[0-2]\\d:[0-5]\\d:[0-5]\\d\\+\\d{2}:[0-5]\\d$"
          },
          "endingAt": {
            "type": "string",
            "pattern": "^[0-2]\\d:[0-5]\\d:[0-5]\\d\\+\\d{2}:[0-5]\\d$"
          }
        }
      },
      "RmaShipmentStatus": {
        "type": "string",
        "title": "RmaShipmentStatus",
        "x-tags": [
          "Models"
        ],
        "enum": [
          "Shipment Created",
          "Shipment Sent",
          "Shipment Received",
          "Shipment Partially Received",
          "Shipment Voided"
        ]
      },
      "BuyShippingLabelRequest": {
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "x-examples": {},
        "properties": {
          "purchaseOrderId": {
            "type": "integer",
            "description": "The ID of the Purchase Order to buy a shipping label for."
          },
          "rateId": {
            "description": "The Rate Shopping Provider's ID of the rate found to purchase the shipping label with. <b>Including this eliminates the need to pass other shipment metadata.</b>",
            "type": "string"
          },
          "shipFromAddress": {
            "$ref": "#/components/schemas/CreateAddressRequest"
          },
          "shipToAddress": {
            "$ref": "#/components/schemas/CreateAddressRequest"
          },
          "createShipmentPostProcessing": {
            "type": "boolean",
            "x-stoplight": {
              "id": "09klnd653tfzs"
            },
            "description": "This will enable the automatic creation of a shipment with the tracking information from the purchased shipping label. It will be created once the Fulfillment Request is processed or acknowledged. <br/><br/>\nTo immediately create the shipment upon label purchase, see `updateShipmentOnPurchase`. However, if the Fulfillment Request has not yet been processed, we recommend using this field instead to avoid the potential of our system automatically closing the order before doing so. "
          },
          "updateShipmentOnPurchase": {
            "type": "boolean",
            "description": "If true, we will update the order with shipment details immediately after purchasing the label. <br/><br/>\nTo delay the shipment creation until the Fulfillment Request is processed or acknowledged, see `createShipmentPostProcessing`."
          },
          "shippingDate": {
            "format": "date-time",
            "type": "string",
            "description": "The date that the shipment should be sent. If no value is passed, we will use the current date."
          },
          "length": {
            "type": "number",
            "description": "Length of the package to ship with this label."
          },
          "width": {
            "type": "number",
            "description": "Width of the package to ship with this label."
          },
          "height": {
            "type": "number",
            "description": "Height of the package to ship with this label."
          },
          "dimensionUnit": {
            "type": "string",
            "enum": [
              "in",
              "cm"
            ]
          },
          "totalWeight": {
            "type": "number",
            "description": "Total weight of the package with all of its items included to be shipped with this label."
          },
          "weightUnit": {
            "type": "string",
            "enum": [
              "lb",
              "oz",
              "g",
              "kg"
            ]
          },
          "shippingCarrierMethod": {
            "type": "string",
            "description": "The handle of the Shipping Carrier Method to use for the shipment.",
            "example": "usps_priority_mail"
          },
          "rateShoppingProvider": {
            "type": "string",
            "description": "The handle of the Rate Shopping Provider to purchase the shipping label from.",
            "default": "ship_engine",
            "enum": [
              "ship_engine"
            ]
          },
          "rateShoppingProviderLabelSize": {
            "type": "string",
            "enum": [
              "4x6",
              "letter"
            ],
            "default": "4x6",
            "description": "The preferred size of the shipping label."
          },
          "commonPackageId": {
            "type": "integer",
            "description": "Reference to the <b>Common Package</b> selected for this label. Optional, even when `rateId` is not passed."
          },
          "customPackageId": {
            "type": "integer",
            "description": "Reference to the <b>Custom Package</b> selected for this label. Optional, even when `rateId` is not passed."
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BuyShippingLabelItemRequest"
            }
          },
          "insuredValue": {
            "type": "number",
            "x-stoplight": {
              "id": "jqjdtljrsaxi4"
            },
            "description": "Amount insured for shippment during purchase of shipping label"
          },
          "confirmation": {
            "x-stoplight": {
              "id": "m7wmgq33pqi6k"
            },
            "enum": [
              "none",
              "delivery",
              "signature",
              "adult_signature",
              "direct_signature",
              "delivery_mailed"
            ],
            "description": "Delivery Confirmation method from carrier "
          },
          "insuranceType": {
            "type": "string"
          }
        },
        "required": [
          "purchaseOrderId"
        ]
      },
      "ShippingRateRequest": {
        "description": "",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "title": "ShippingRateRequest",
        "properties": {
          "purchaseOrderId": {
            "type": "integer",
            "description": "The ID of the Purchase Order to get a shipping rate for."
          },
          "shipFromAddress": {
            "$ref": "#/components/schemas/CreateAddressRequest"
          },
          "shipToAddress": {
            "$ref": "#/components/schemas/CreateAddressRequest"
          },
          "length": {
            "type": "number",
            "description": "Length of the package to ship with."
          },
          "width": {
            "type": "number",
            "description": "Width of the package to ship with."
          },
          "height": {
            "type": "number",
            "description": "Height of the package to ship with."
          },
          "dimensionUnit": {
            "type": "string",
            "enum": [
              "in",
              "cm"
            ]
          },
          "totalWeight": {
            "type": "number",
            "description": "Total weight of the package with all of its items included to be shipped."
          },
          "weightUnit": {
            "type": "string",
            "enum": [
              "lb",
              "oz",
              "g",
              "kg"
            ]
          },
          "rateShoppingProvider": {
            "type": "string",
            "description": "The handle of the Rate Shopping Provider to get the shipping rate from.",
            "default": "ship_engine",
            "enum": [
              "ship_engine"
            ]
          },
          "insuredValue": {
            "type": "number"
          },
          "insuranceType": {
            "type": "string"
          }
        },
        "required": [
          "purchaseOrderId",
          "shipFromAddress",
          "shipToAddress",
          "length",
          "width",
          "height",
          "dimensionUnit",
          "totalWeight",
          "weightUnit"
        ]
      },
      "InboundShipment": {
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "id": {
            "type": "integer"
          },
          "purchaseOrderNumber": {
            "type": "string"
          },
          "orderId": {
            "type": "integer"
          },
          "sourceId": {
            "type": "integer"
          },
          "generatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "sentAt": {
            "type": "string",
            "format": "date-time"
          },
          "acknowledgedAt": {
            "type": "string",
            "format": "date-time"
          },
          "voidedAt": {
            "type": "string",
            "format": "date-time"
          },
          "canceledAt": {
            "type": "string",
            "format": "date-time"
          },
          "lastModifiedAt": {
            "type": "string",
            "minLength": 1,
            "format": "date-time"
          },
          "shippingAddress": {
            "$ref": "#/components/schemas/Address"
          },
          "shippingAddressId": {
            "type": "integer"
          },
          "billingAddress": {
            "$ref": "#/components/schemas/Address"
          },
          "billingAddressId": {
            "type": "integer"
          },
          "note": {
            "type": "string",
            "description": "A note that can optionally be passed through all the way to the source"
          },
          "shippedStatus": {
            "$ref": "#/components/schemas/CompletionStatus"
          },
          "purchaseOrderStatus": {
            "$ref": "#/components/schemas/PurchaseOrderStatus"
          },
          "purchaseOrderReceivedStatus": {
            "$ref": "#/components/schemas/PurchaseOrderReceivedStatus"
          },
          "totalCost": {
            "type": "number"
          },
          "totalQuantity": {
            "type": "integer"
          },
          "shippedQuantity": {
            "type": "integer"
          },
          "estimatedShippingCost": {
            "type": "number"
          },
          "estimatedDropshipFee": {
            "type": "number"
          },
          "beingProcessed": {
            "type": "boolean"
          },
          "packageDimensionUnit": {
            "$ref": "#/components/schemas/DimensionUnit"
          },
          "packageLength": {
            "type": "number"
          },
          "packageWidth": {
            "type": "number"
          },
          "packageHeight": {
            "type": "number"
          },
          "packageWeightUnit": {
            "$ref": "#/components/schemas/WeightUnit"
          },
          "packageWeight": {
            "type": "number"
          },
          "voidedReason": {
            "type": "string"
          },
          "processingErrorReason": {
            "type": "string",
            "description": "The reason this purchase order could not be processed"
          },
          "cancelReason": {
            "type": "string"
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InboundShipmentItem"
            }
          },
          "purchaseOrderAttributes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PurchaseOrderAttribute"
            }
          },
          "shipments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Shipment"
            }
          },
          "sourceName": {
            "type": "string",
            "x-stoplight": {
              "id": "lbxpjo0bf3g4e"
            }
          }
        }
      },
      "CreatePurchaseOrderRequest": {
        "description": "                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    ",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "title": "",
        "x-examples": {
          "example-1": {
            "purchaseOrderNumber": "string",
            "purchaseOrderType": "PO",
            "purchaseOrderStatus": null,
            "orderId": 0,
            "sourceId": 0,
            "shippingAddress": {
              "name": "Joe Smith",
              "firstName": "Joe",
              "lastName": "Smith",
              "addressLine1": "1000 1st Lane",
              "city": "Jacksonville",
              "postal": "12345",
              "addressLine2": "Suite 123",
              "state": "Florida",
              "country": "United States",
              "stateCode": "FL",
              "countryCode": "US",
              "email": "person@example.com",
              "phone": "1-555-123-4567",
              "companyName": "string"
            },
            "billingAddress": {
              "name": "Joe Smith",
              "firstName": "Joe",
              "lastName": "Smith",
              "addressLine1": "1000 1st Lane",
              "city": "Jacksonville",
              "postal": "12345",
              "addressLine2": "Suite 123",
              "state": "Florida",
              "country": "United States",
              "stateCode": "FL",
              "countryCode": "US",
              "email": "person@example.com",
              "phone": "1-555-123-4567",
              "companyName": "string"
            },
            "shippingText": "string",
            "note": "string",
            "totalCost": 0,
            "estimatedShippingCost": 0,
            "estimatedDropshipFee": 0,
            "suppressTracking": false,
            "fflInfoRequired": false,
            "holdUntil": "2019-08-24T14:15:22Z",
            "rateShoppedId": "string",
            "packageDimensionUnit": "inch",
            "packageLength": 0,
            "packageWidth": 0,
            "packageHeight": 0,
            "packageWeightUnit": "pound",
            "packageWeight": 0,
            "crossDockPurchaseOrderId": 0,
            "purchaseOrderItems": [
              {
                "orderItemId": 0,
                "quantity": 0,
                "inventoryVariantId": 0,
                "sku": "string",
                "cost": 0,
                "title": "string",
                "weightUnit": "pound",
                "weight": 0,
                "dimensionUnit": "inch",
                "length": 0,
                "width": 0,
                "height": 0,
                "upc": "string",
                "mpn": "string",
                "attributes": [
                  {
                    "key": "string",
                    "value": "string"
                  }
                ]
              }
            ],
            "purchaseOrderAttributes": [
              {
                "key": "string",
                "value": "string"
              }
            ],
            "sourceShippingMethodId": 0
          }
        },
        "properties": {
          "purchaseOrderNumber": {
            "type": "string",
            "description": "A unique identifier that will be passed to your source to identify the PO. If one is not provided the default account & source rules will be used to generate one."
          },
          "purchaseOrderType": {
            "type": "string",
            "enum": [
              "PO",
              "FR",
              "TO",
              "SPO",
              "FO"
            ],
            "description": "The type of PO : \n- Purchase Order (PO)\n- Fulfillment Request (FR) [Deprecated - use Fulfillment Order instead]\n- Transfer Order (TO)\n- Stocking Purchase Order (SPO)\n- Fulfillment Order (FO)\n\nSee docs on order & PO terminology at this link https://docs.flxpoint.com/flxpoint/terminology#order-terminology"
          },
          "purchaseOrderStatus": {
            "type": "string",
            "enum": [
              "unprocessed",
              "processing",
              "processed",
              "acknowledged",
              "voided",
              "canceled",
              "po_number_exceeds_max_length",
              "duplicate",
              "additional_info_required",
              "cross_docked",
              "processing_error"
            ],
            "description": "Leave `null` to let Flxpoint handle via Workflow rules (PO Strategy settings).\n\nA `non-null` status will by-pass any PO Strategy rules and force the status passed in the API request.\n\nFor more information on PO statuses, refer to our documentation : https://docs.flxpoint.com/flxpoint/purchase-orders-fulfillment-requests"
          },
          "orderId": {
            "type": "integer",
            "description": "The flxpoint ID of the order this PO is for"
          },
          "sourceId": {
            "type": "integer",
            "description": "The flxpoint source ID the PO should be fulfilled to"
          },
          "shippingAddress": {
            "$ref": "#/components/schemas/CreateAddressRequest"
          },
          "billingAddress": {
            "$ref": "#/components/schemas/CreateAddressRequest"
          },
          "shippingText": {
            "type": "string",
            "description": "Deprecated",
            "deprecated": true
          },
          "note": {
            "type": "string",
            "description": "A note that can optionally be passed through all the way to the source"
          },
          "totalCost": {
            "type": "number"
          },
          "estimatedShippingCost": {
            "type": "number"
          },
          "estimatedDropshipFee": {
            "type": "number"
          },
          "suppressTracking": {
            "type": "boolean",
            "description": "If set to true shipments for this PO will not be propagated to the originating channel order via sync order operations inside flxpoint.",
            "default": false
          },
          "fflInfoRequired": {
            "type": "boolean",
            "default": false,
            "description": "Set to true to indicate that the PO contains items that are firearms and will require valid FFL license information before fulfillment"
          },
          "holdUntil": {
            "type": "string",
            "format": "date-time",
            "description": "If passed the PO will not be processed via automated flxpoint operations until a time older than the value passed"
          },
          "rateShoppedId": {
            "type": "string",
            "description": "Used by internal flxpoint processes to track third party rate shopping responses"
          },
          "packageDimensionUnit": {
            "type": "string",
            "enum": [
              "inch",
              "centimeter"
            ],
            "description": "used to specify the unit of measurement being used by packageLength, packageHeight, packageWidth.\n\nCurrently our system supports 'inch' and 'centimeter'"
          },
          "packageLength": {
            "type": "number"
          },
          "packageWidth": {
            "type": "number"
          },
          "packageHeight": {
            "type": "number"
          },
          "packageWeightUnit": {
            "type": "string",
            "enum": [
              "pound",
              "ounce",
              "gram",
              "kilogram"
            ],
            "description": "used to specify the unit of measurement being used by packageWeight.\n\nCurrently our system supports 'pound', 'ounce', 'gram' and 'kilogram'"
          },
          "packageWeight": {
            "type": "number"
          },
          "crossDockPurchaseOrderId": {
            "type": "integer",
            "description": "Establish this PO as part of a cross docking request by providing the cross dock PO ID"
          },
          "purchaseOrderItems": {
            "type": "array",
            "minItems": 1,
            "uniqueItems": true,
            "items": {
              "$ref": "#/components/schemas/CreatePurchaseOrderItemRequest"
            }
          },
          "purchaseOrderAttributes": {
            "type": "array",
            "uniqueItems": true,
            "description": "if there is a requirement to associate some extra information with the purchase order, it can be done by passing an array of CreatePurchaseOrderAttributeRequest.",
            "items": {
              "$ref": "#/components/schemas/CreatePurchaseOrderAttributeRequest"
            }
          },
          "sourceShippingMethodId": {
            "type": "integer",
            "description": "The ID of the method you intend for the source to ship the PO via. You are required to configure these yourself on your account prior to creating your first PO for the source. Once created (whether via API or UI) use the list source shipping methods endpoint to find the relevant ID."
          },
          "shippingDistance": {
            "type": "number",
            "description": "Leave `null` for Flxpoint to calculate shipping distance. If a `non-null` value is passed, Flxpoint will not calculate shipping distance. This field is primarily used during Order Routing."
          },
          "accountingSynced": {
            "type": "boolean",
            "nullable": true
          },
          "externalAccountingId": {
            "type": "string",
            "nullable": true
          }
        },
        "required": [
          "orderId",
          "sourceId",
          "shippingAddress",
          "billingAddress",
          "purchaseOrderItems"
        ]
      },
      "CreateFulfillmentRequest": {
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "x-examples": {
          "example-1": {
            "purchaseOrderNumber": "string",
            "purchaseOrderType": "PO",
            "purchaseOrderStatus": null,
            "orderId": 0,
            "sourceId": 0,
            "shippingAddress": {
              "name": "Joe Smith",
              "firstName": "Joe",
              "lastName": "Smith",
              "addressLine1": "1000 1st Lane",
              "city": "Jacksonville",
              "postal": "12345",
              "addressLine2": "Suite 123",
              "state": "Florida",
              "country": "United States",
              "stateCode": "FL",
              "countryCode": "US",
              "email": "person@example.com",
              "phone": "1-555-123-4567",
              "companyName": "string"
            },
            "billingAddress": {
              "name": "Joe Smith",
              "firstName": "Joe",
              "lastName": "Smith",
              "addressLine1": "1000 1st Lane",
              "city": "Jacksonville",
              "postal": "12345",
              "addressLine2": "Suite 123",
              "state": "Florida",
              "country": "United States",
              "stateCode": "FL",
              "countryCode": "US",
              "email": "person@example.com",
              "phone": "1-555-123-4567",
              "companyName": "string"
            },
            "shippingText": "string",
            "note": "string",
            "totalCost": 0,
            "estimatedShippingCost": 0,
            "estimatedDropshipFee": 0,
            "suppressTracking": false,
            "fflInfoRequired": false,
            "holdUntil": "2019-08-24T14:15:22Z",
            "rateShoppedId": "string",
            "packageDimensionUnit": "inch",
            "packageLength": 0,
            "packageWidth": 0,
            "packageHeight": 0,
            "packageWeightUnit": "pound",
            "packageWeight": 0,
            "crossDockPurchaseOrderId": 0,
            "purchaseOrderItems": [
              {
                "orderItemId": 0,
                "quantity": 0,
                "inventoryVariantId": 0,
                "sku": "string",
                "cost": 0,
                "title": "string",
                "weightUnit": "pound",
                "weight": 0,
                "dimensionUnit": "inch",
                "length": 0,
                "width": 0,
                "height": 0,
                "upc": "string",
                "mpn": "string",
                "attributes": [
                  {
                    "key": "string",
                    "value": "string"
                  }
                ]
              }
            ],
            "purchaseOrderAttributes": [
              {
                "key": "string",
                "value": "string"
              }
            ],
            "sourceShippingMethodId": 0
          }
        },
        "properties": {
          "fulfillmentRequestNumber": {
            "type": "string",
            "description": "A unique identifier that will be passed to your source to identify the FR. If one is not provided the default account & source rules will be used to generate one."
          },
          "fulfillmentRequestType": {
            "type": "string",
            "enum": [
              "PO",
              "FR",
              "TO",
              "SPO",
              "FO"
            ],
            "description": "The type of PO : \n- Purchase Order (PO)\n- Fulfillment Request (FR) [Deprecated - use Fulfillment Order instead]\n- Transfer Order (TO)\n- Stocking Purchase Order (SPO)\n\nSee docs on order & PO terminology at this link https://docs.flxpoint.com/flxpoint/terminology#order-terminology"
          },
          "fulfillmentRequestStatus": {
            "type": "string",
            "enum": [
              "unprocessed",
              "processing",
              "processed",
              "acknowledged",
              "voided",
              "canceled",
              "po_number_exceeds_max_length",
              "duplicate",
              "additional_info_required",
              "cross_docked",
              "processing_error"
            ],
            "description": "Leave `null` to let Flxpoint handle via Workflow rules (PO Strategy settings).\n\nA `non-null` status will by-pass any PO Strategy rules and force the status passed in the API request.\n\nFor more information on PO statuses, refer to our documentation : https://docs.flxpoint.com/flxpoint/purchase-orders-fulfillment-requests"
          },
          "orderId": {
            "type": "integer",
            "description": "The flxpoint ID of the order this PO is for"
          },
          "sourceId": {
            "type": "integer",
            "description": "The flxpoint source ID the PO should be fulfilled to"
          },
          "shippingAddress": {
            "$ref": "#/components/schemas/CreateAddressRequest"
          },
          "billingAddress": {
            "$ref": "#/components/schemas/CreateAddressRequest"
          },
          "shippingText": {
            "type": "string",
            "description": "Deprecated",
            "deprecated": true
          },
          "note": {
            "type": "string",
            "description": "A note that can optionally be passed through all the way to the source"
          },
          "totalCost": {
            "type": "number"
          },
          "estimatedShippingCost": {
            "type": "number"
          },
          "estimatedDropshipFee": {
            "type": "number"
          },
          "suppressTracking": {
            "type": "boolean",
            "description": "If set to true shipments for this PO will not be propagated to the originating channel order via sync order operations inside flxpoint.",
            "default": false
          },
          "fflInfoRequired": {
            "type": "boolean",
            "default": false,
            "description": "Set to true to indicate that the PO contains items that are firearms and will require valid FFL license information before fulfillment"
          },
          "holdUntil": {
            "type": "string",
            "format": "date-time",
            "description": "If passed the PO will not be processed via automated flxpoint operations until a time older than the value passed"
          },
          "rateShoppedId": {
            "type": "string",
            "description": "Used by internal flxpoint processes to track third party rate shopping responses"
          },
          "packageDimensionUnit": {
            "type": "string",
            "enum": [
              "inch",
              "centimeter"
            ],
            "description": "used to specify the unit of measurement being used by packageLength, packageHeight, packageWidth.\n\nCurrently our system supports 'inch' and 'centimeter'"
          },
          "packageLength": {
            "type": "number"
          },
          "packageWidth": {
            "type": "number"
          },
          "packageHeight": {
            "type": "number"
          },
          "packageWeightUnit": {
            "type": "string",
            "enum": [
              "pound",
              "ounce",
              "gram",
              "kilogram"
            ],
            "description": "used to specify the unit of measurement being used by packageWeight.\n\nCurrently our system supports 'pound', 'ounce', 'gram' and 'kilogram'"
          },
          "packageWeight": {
            "type": "number"
          },
          "crossDockPurchaseOrderId": {
            "type": "integer",
            "description": "Establish this PO as part of a cross docking request by providing the cross dock PO ID"
          },
          "fulfillmentRequestItems": {
            "type": "array",
            "minItems": 1,
            "uniqueItems": true,
            "items": {
              "$ref": "#/components/schemas/CreateFulfillmentRequestItem"
            }
          },
          "fulfillmentRequestAttributes": {
            "type": "array",
            "uniqueItems": true,
            "description": "if there is a requirement to associate some extra information with the purchase order, it can be done by passing an array of CreatePurchaseOrderAttributeRequest.",
            "items": {
              "$ref": "#/components/schemas/CreateFulfillmentRequestAttribute"
            }
          },
          "sourceShippingMethodId": {
            "type": "integer",
            "description": "The ID of the method you intend for the source to ship the PO via. You are required to configure these yourself on your account prior to creating your first PO for the source. Once created (whether via API or UI) use the list source shipping methods endpoint to find the relevant ID."
          },
          "shippingDistance": {
            "type": "number",
            "description": "Leave `null` for Flxpoint to calculate shipping distance. If a `non-null` value is passed, Flxpoint will not calculate shipping distance. This field is primarily used during Order Routing."
          }
        },
        "required": [
          "orderId",
          "sourceId",
          "shippingAddress",
          "billingAddress",
          "fulfillmentRequestItems"
        ]
      },
      "UpdateFulfillmentRequest": {
        "description": "                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    ",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "title": "",
        "x-examples": {
          "example-1": {
            "purchaseOrderNumber": "string",
            "sourceId": 0,
            "shippingAddress": {
              "name": "Joe Smith",
              "firstName": "Joe",
              "lastName": "Smith",
              "addressLine1": "1000 1st Lane",
              "city": "Jacksonville",
              "postal": "12345",
              "addressLine2": "Suite 123",
              "state": "Florida",
              "country": "United States",
              "stateCode": "FL",
              "countryCode": "US",
              "email": "person@example.com",
              "phone": "1-555-123-4567",
              "companyName": "string"
            },
            "billingAddress": {
              "name": "Joe Smith",
              "firstName": "Joe",
              "lastName": "Smith",
              "addressLine1": "1000 1st Lane",
              "city": "Jacksonville",
              "postal": "12345",
              "addressLine2": "Suite 123",
              "state": "Florida",
              "country": "United States",
              "stateCode": "FL",
              "countryCode": "US",
              "email": "person@example.com",
              "phone": "1-555-123-4567",
              "companyName": "string"
            },
            "note": "string",
            "totalCost": 0,
            "estimatedShippingCost": 0,
            "estimatedDropshipFee": 0,
            "suppressTracking": false,
            "fflInfoRequired": false,
            "holdUntil": "2019-08-24T14:15:22Z",
            "packageDimensionUnit": "inch",
            "packageLength": 0,
            "packageWidth": 0,
            "packageHeight": 0,
            "packageWeightUnit": "pound",
            "packageWeight": 0,
            "purchaseOrderItems": [
              {
                "orderItemId": 0,
                "quantity": 0,
                "inventoryVariantId": 0,
                "sku": "string",
                "cost": 0,
                "title": "string",
                "weightUnit": "pound",
                "weight": 0,
                "dimensionUnit": "inch",
                "length": 0,
                "width": 0,
                "height": 0,
                "upc": "string",
                "mpn": "string",
                "attributes": [
                  {
                    "key": "string",
                    "value": "string"
                  }
                ]
              }
            ],
            "purchaseOrderAttributes": [
              {
                "key": "string",
                "value": "string"
              }
            ],
            "sourceShippingMethodId": 0
          }
        },
        "properties": {
          "fulfillmentRequestNumber": {
            "type": "string",
            "description": "A unique identifier that will be passed to your source to identify the FR. If one is not provided the default account & source rules will be used to generate one."
          },
          "sourceId": {
            "type": "integer",
            "description": "The flxpoint source ID the PO should be fulfilled to"
          },
          "shippingAddress": {
            "$ref": "#/components/schemas/CreateAddressRequest"
          },
          "billingAddress": {
            "$ref": "#/components/schemas/CreateAddressRequest"
          },
          "note": {
            "type": "string",
            "description": "A note that can optionally be passed through all the way to the source"
          },
          "totalCost": {
            "type": "number"
          },
          "estimatedShippingCost": {
            "type": "number"
          },
          "estimatedDropshipFee": {
            "type": "number"
          },
          "suppressTracking": {
            "type": "boolean",
            "description": "If set to true shipments for this PO will not be propagated to the originating channel order via sync order operations inside flxpoint.",
            "default": false
          },
          "fflInfoRequired": {
            "type": "boolean",
            "default": false,
            "description": "Set to true to indicate that the PO contains items that are firearms and will require valid FFL license information before fulfillment"
          },
          "holdUntil": {
            "type": "string",
            "format": "date-time",
            "description": "If passed the PO will not be processed via automated flxpoint operations until a time older than the value passed"
          },
          "packageDimensionUnit": {
            "type": "string",
            "enum": [
              "inch",
              "centimeter"
            ],
            "description": "used to specify the unit of measurement being used by packageLength, packageHeight, packageWidth.\n\nCurrently our system supports 'inch' and 'centimeter'"
          },
          "packageLength": {
            "type": "number"
          },
          "packageWidth": {
            "type": "number"
          },
          "packageHeight": {
            "type": "number"
          },
          "packageWeightUnit": {
            "type": "string",
            "enum": [
              "pound",
              "ounce",
              "gram",
              "kilogram"
            ],
            "description": "used to specify the unit of measurement being used by packageWeight.\n\nCurrently our system supports 'pound', 'ounce', 'gram' and 'kilogram'"
          },
          "packageWeight": {
            "type": "number"
          },
          "fulfillmentRequestItems": {
            "type": "array",
            "minItems": 1,
            "uniqueItems": true,
            "items": {
              "$ref": "#/components/schemas/CreateFulfillmentRequestItem"
            }
          },
          "fulfillmentRequestAttributes": {
            "type": "array",
            "uniqueItems": true,
            "description": "Meta data in the form of key-value pairs.",
            "items": {
              "$ref": "#/components/schemas/CreateFulfillmentRequestAttribute"
            }
          },
          "sourceShippingMethodId": {
            "type": "integer",
            "description": "The ID of the method you intend for the source to ship the PO via. You are required to configure these yourself on your account prior to creating your first PO for the source. Once created (whether via API or UI) use the list source shipping methods endpoint to find the relevant ID."
          },
          "shippingDistance": {
            "type": "number",
            "description": "Leave `null` for Flxpoint to calculate shipping distance. If a `non-null` value is passed, Flxpoint will not calculate shipping distance. This field is primarily used during Order Routing."
          },
          "accountingSynced": {
            "type": "boolean",
            "nullable": true
          },
          "externalAccountingId": {
            "type": "string",
            "nullable": true
          }
        },
        "required": [
          "sourceId",
          "shippingAddress",
          "billingAddress",
          "fulfillmentRequestItems"
        ]
      },
      "InvoiceItem": {
        "description": "",
        "type": "object",
        "properties": {
          "id": {
            "type": "integer"
          },
          "invoiceId": {
            "type": "integer"
          },
          "invoiceItemType": {
            "$ref": "#/components/schemas/InvoiceItemType"
          },
          "sourceVariantId": {
            "type": "integer",
            "format": "int64"
          },
          "cost": {
            "type": "number"
          },
          "sku": {
            "type": "string",
            "minLength": 1
          },
          "title": {
            "type": "string",
            "minLength": 1
          },
          "quantity": {
            "type": "integer"
          },
          "perUnitCost": {
            "type": "number"
          },
          "externalAccountingItemId": {
            "type": "string"
          },
          "customFields": {
            "type": "array",
            "x-stoplight": {
              "id": "1ginaa22kbi6y"
            },
            "items": {
              "$ref": "#/components/schemas/SourceInvoiceCustomField",
              "x-stoplight": {
                "id": "vmflie4x5y0ku"
              }
            }
          }
        },
        "required": [
          "invoiceItemType",
          "sku"
        ],
        "x-tags": [
          "Models"
        ]
      },
      "InvoiceItemType": {
        "type": "object",
        "title": "InvoiceItemType",
        "properties": {
          "name": {
            "type": "string",
            "enum": [
              "Product",
              "Shipping",
              "Fee",
              "Tax",
              "Other"
            ]
          },
          "handle": {
            "type": "string",
            "enum": [
              "product",
              "shipping",
              "fee",
              "tax",
              "other"
            ]
          }
        },
        "x-tags": [
          "Models"
        ]
      },
      "Invoice": {
        "x-tags": [
          "Models"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "integer"
          },
          "invoiceStatus": {
            "$ref": "#/components/schemas/InvoiceStatus"
          },
          "insertedAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "purchaseOrderId": {
            "type": "integer",
            "description": "this field is deprecated, please use `fulfillmentRequestId`. The two fields are same."
          },
          "fulfillmentRequestId": {
            "type": "integer"
          },
          "rmaId": {
            "type": "integer"
          },
          "sourceId": {
            "type": "integer"
          },
          "purchaseOrderNumber": {
            "type": "string",
            "minLength": 1,
            "description": "this field is deprecated, please start using `fulfillmentRequestNumber`. The two fields are essentially same."
          },
          "fulfillmentRequestNumber": {
            "type": "string",
            "minLength": 1
          },
          "invoiceNumber": {
            "type": "string",
            "minLength": 1
          },
          "invoiceDate": {
            "type": "string",
            "minLength": 1,
            "format": "date-time"
          },
          "totalCost": {
            "type": "number"
          },
          "totalProductCost": {
            "type": "number"
          },
          "totalShippingCost": {
            "type": "number"
          },
          "totalFeeCost": {
            "type": "number"
          },
          "totalTaxCost": {
            "type": "number"
          },
          "totalOtherCost": {
            "type": "number"
          },
          "totalQuantity": {
            "type": "integer"
          },
          "accountingSynced": {
            "type": "boolean"
          },
          "accountingSyncError": {
            "type": "string"
          },
          "externalAccountingId": {
            "type": "string"
          },
          "invoiceItems": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InvoiceItem"
            }
          },
          "totalCreditCost": {
            "type": "number"
          },
          "customFields": {
            "type": "array",
            "x-stoplight": {
              "id": "8yo5ftzvs8e5e"
            },
            "items": {
              "$ref": "#/components/schemas/SourceInvoiceCustomField"
            }
          },
          "commission": {
            "type": "number",
            "x-stoplight": {
              "id": "s5zt9hg3xv67q"
            },
            "deprecated": true
          },
          "vendorPayoutId": {
            "type": "integer",
            "x-stoplight": {
              "id": "sup1bzycqaap5"
            }
          }
        }
      },
      "InvoiceStatus": {
        "type": "object",
        "title": "InvoiceStatus",
        "properties": {
          "name": {
            "type": "string",
            "enum": [
              "Unpaid",
              "Paid",
              "Credited",
              "Refunded"
            ]
          },
          "handle": {
            "type": "string",
            "enum": [
              "unpaid",
              "paid",
              "credited",
              "refunded"
            ]
          }
        },
        "x-tags": [
          "Models"
        ]
      },
      "vendorPayoutStatus": {
        "type": "object",
        "x-stoplight": {
          "id": "cdbkl3tiwxn8k"
        },
        "title": "VendorPayoutStatus",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "name": {
            "type": "string",
            "enum": [
              "Unpaid",
              "Paid"
            ]
          },
          "handle": {
            "type": "string",
            "enum": [
              "unpaid",
              "paid"
            ]
          }
        }
      },
      "OrderInvoice": {
        "description": "",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "id": {
            "type": "integer"
          },
          "subtotal": {
            "type": "number"
          },
          "total": {
            "type": "number"
          },
          "dropshipFee": {
            "type": "number"
          },
          "shippingCost": {
            "type": "number"
          },
          "invoicedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "paid": {
            "type": "boolean"
          },
          "paidAt": {
            "type": "string",
            "format": "date-time"
          },
          "purchaseOrderId": {
            "type": "integer"
          },
          "orderId": {
            "type": "integer"
          },
          "invoiceNumber": {
            "type": "string",
            "minLength": 0
          },
          "authorizedIpAddress": {
            "type": "string"
          },
          "capturedIpAddress": {
            "type": "string"
          },
          "refundedAmount": {
            "type": "number"
          },
          "refundedLastAt": {
            "type": "string",
            "format": "date-time"
          },
          "refundedNumberOfTimes": {
            "type": "integer"
          },
          "creditedAmount": {
            "type": "number"
          },
          "creditedLastAt": {
            "type": "string",
            "format": "date-time"
          },
          "creditedNumberOfTimes": {
            "type": "integer"
          },
          "creditAppliedTowardsTotal": {
            "type": "number"
          },
          "receiptSentAt": {
            "type": "string",
            "format": "date-time"
          },
          "taxTitle": {
            "type": "string"
          },
          "taxCost": {
            "type": "number"
          },
          "otherTitle": {
            "type": "string"
          },
          "otherCost": {
            "type": "number"
          },
          "shippingTitle": {
            "type": "string"
          },
          "dropshipFeeTitle": {
            "type": "string"
          },
          "discountTotal": {
            "type": "number"
          },
          "discountDescription": {
            "type": "string"
          }
        },
        "required": [
          "paid"
        ]
      },
      "PaymentStatus": {
        "type": "string",
        "title": "PaymentStatus",
        "nullable": true,
        "x-tags": [
          "Models"
        ],
        "enum": [
          "Not Authorized",
          "Authorized",
          "Paid",
          "Deferred",
          "Refunded",
          "Credited",
          "Awaiting Clearance",
          "Declined",
          "Refund Pending",
          "Refund Failed"
        ]
      },
      "ShippingPolicy": {
        "description": "",
        "x-tags": [
          "Models"
        ],
        "type": "object",
        "nullable": true,
        "properties": {
          "id": {
            "type": "integer"
          },
          "name": {
            "type": "string",
            "minLength": 1
          },
          "deletedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "name"
        ]
      },
      "CreateShippingPolicyRequest": {
        "description": "",
        "x-tags": [
          "Models"
        ],
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1
          }
        },
        "required": [
          "name"
        ]
      },
      "UpdateShippingPolicyRequest": {
        "description": "",
        "x-tags": [
          "Models"
        ],
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1
          }
        },
        "required": [
          "name"
        ]
      },
      "PurchaseOrderFulfillmentStatus": {
        "title": "PurchaseOrderFulfillmentStatus",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "name": {
            "type": "string",
            "enum": [
              "Awaiting Shipment",
              "Shipped",
              "Partially Shipped",
              "Canceled"
            ]
          },
          "handle": {
            "type": "string",
            "enum": [
              "awaiting_shipment",
              "shipped",
              "partially_shipped",
              "canceled"
            ]
          }
        }
      },
      "FulfillmentRequestFulfillmentStatus": {
        "title": "FulfillmentRequestShippedStatus",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "name": {
            "type": "string",
            "enum": [
              "Awaiting Shipment",
              "Shipped",
              "Partially Shipped",
              "Canceled"
            ]
          },
          "handle": {
            "type": "string",
            "enum": [
              "awaiting_shipment",
              "shipped",
              "partially_shipped",
              "canceled"
            ]
          }
        }
      },
      "PurchaseOrderStatus": {
        "title": "PurchaseOrderStatus",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "name": {
            "type": "string",
            "description": "`PO/FR # Exceeds Max Length` and `Duplicate PO/FR #` are now deprecated, and will be referred to as `Fulfillment Request # Exceeds Max Length` and `Duplicate Fulfillment Request #` respectively going forward.",
            "enum": [
              "Unprocessed",
              "Processed",
              "Acknowledged",
              "Canceled",
              "Voided",
              "Processing",
              "Additional Info Required",
              "Transferred",
              "PO/FR # Exceeds Max Length",
              "Duplicate PO/FR #",
              "Processing Error",
              "Fulfillment Request # Exceeds Max Length",
              "Duplicate Fulfillment Request #",
              "Cross Docked"
            ]
          },
          "handle": {
            "type": "string",
            "enum": [
              "unprocessed",
              "processed",
              "acknowledged",
              "canceled",
              "voided",
              "processing",
              "additional_info_required",
              "transferred",
              "po_number_exceeds_max_length",
              "duplicate",
              "processing_error",
              "cross_docked"
            ]
          }
        }
      },
      "FulfillmentRequestStatus": {
        "title": "FulfillmentRequestStatus",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "name": {
            "type": "string",
            "enum": [
              "Unprocessed",
              "Processed",
              "Acknowledged",
              "Canceled",
              "Voided",
              "Processing",
              "Additional Info Required",
              "Transferred",
              "PO/FR # Exceeds Max Length",
              "Duplicate PO/FR #",
              "Processing Error",
              "Cross Docked",
              "Fulfillment Request # Exceeds Max Length",
              "Duplicate Fulfillment Request #"
            ]
          },
          "handle": {
            "type": "string",
            "enum": [
              "unprocessed",
              "processed",
              "acknowledged",
              "canceled",
              "voided",
              "processing",
              "additional_info_required",
              "transferred",
              "po_number_exceeds_max_length",
              "duplicate",
              "processing_error",
              "cross_docked"
            ]
          }
        }
      },
      "Tag": {
        "title": "Tag",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "x-stoplight": {
          "id": "f03532a4c3472"
        },
        "properties": {
          "id": {
            "type": "integer"
          },
          "name": {
            "type": "string"
          }
        }
      },
      "SaveSourceShippingMethodRequest": {
        "description": "<b>NOTE</b>: The `shippingCarrierId` and `shippingCarrierMethodId` fields are now deprecated. \n\nTo associate specific shipping carrier(s) and/or shipping carrier method(s), use the array versions named `shippingCarrierIds` and `shippingCarrierMethodIds` instead, with `filterCarriersAndMethods` passed as `true`.",
        "x-tags": [
          "Models"
        ],
        "type": "object",
        "title": "SaveSourceShippingMethodRequest",
        "properties": {
          "sourceId": {
            "type": "integer",
            "description": "Required if not using a source token."
          },
          "description": {
            "type": "string"
          },
          "shippingPolicyId": {
            "type": "integer"
          },
          "carrier": {
            "type": "string"
          },
          "method": {
            "type": "string"
          },
          "shippingCode": {
            "type": "string",
            "deprecated": true,
            "description": "Deprecated. Use `defaultMethodCode` instead."
          },
          "shippingCarrierId": {
            "type": "integer",
            "deprecated": true,
            "description": "Deprecated. Use `shippingCarrierIds` instead."
          },
          "shippingCarrierMethodId": {
            "type": "integer",
            "deprecated": true,
            "description": "Deprecated. Use `shippingCarrierMethodIds` instead."
          },
          "shippingLabelCode": {
            "type": "string",
            "x-stoplight": {
              "id": "kj11dowlopqbn"
            },
            "description": "It is used to specify the preferred Delivery Service during the purchase of a shipping label when a Fulfillment Request is not rate shopped"
          },
          "defaultCarrierCode": {
            "type": "string"
          },
          "defaultMethodCode": {
            "type": "string"
          },
          "overrideDefaultCodes": {
            "type": "boolean"
          },
          "filterCarriersAndMethods": {
            "type": "boolean"
          },
          "shippingCarrierIds": {
            "type": "array",
            "items": {
              "type": "integer"
            }
          },
          "shippingCarrierMethodIds": {
            "type": "array",
            "items": {
              "type": "integer"
            }
          },
          "useBestFitPackage": {
            "type": "boolean"
          },
          "commonPackageIds": {
            "type": "array",
            "items": {
              "type": "integer"
            }
          },
          "customPackageIds": {
            "type": "array",
            "items": {
              "type": "integer"
            }
          }
        },
        "required": [
          "description",
          "shippingPolicyId"
        ]
      },
      "SourceShippingMethod": {
        "description": "<b>NOTE</b>: The `shippingCarrier` and `shippingCarrierMethod` fields are now deprecated. \n\nTo get the associated shipping carrier(s) and/or shipping carrier method(s), use the array versions named `shippingCarriers` and `shippingCarrierMethods` instead.",
        "x-tags": [
          "Models"
        ],
        "type": "object",
        "x-examples": {
          "Using Deprecated Shipping Carrier and Method": {
            "id": 1,
            "sourceId": 1,
            "description": "UPS Ground",
            "carrier": "UPS",
            "method": "Ground",
            "shippingCode": "UPSG",
            "shippingPolicy": {
              "id": 1,
              "name": "Standard Shipping",
              "deletedAt": null
            },
            "deletedAt": null,
            "shippingCarrier": {
              "id": 1,
              "name": "UPS",
              "handle": "ups",
              "shipEngineSupported": true
            },
            "shippingCarrierMethod": {
              "id": 9,
              "shippingCarrier": {
                "id": 1,
                "name": "UPS®",
                "handle": "ups",
                "shipEngineSupported": true
              },
              "name": "UPS Standard®",
              "handle": "ups_standard_international"
            },
            "defaultCarrierCode": "UPS",
            "defaultMethodCode": "UPSG",
            "overrideDefaultCodes": false,
            "filterCarriersAndMethods": false,
            "shippingCarriers": null,
            "shippingCarrierMethods": null,
            "useBestFitPackage": true,
            "commonPackages": null,
            "customPackages": null
          },
          "Using Filter Carriers and Methods": {
            "id": 1,
            "sourceId": 1,
            "description": "UPS Ground",
            "carrier": "UPS",
            "method": "Ground",
            "shippingCode": "UPSG",
            "shippingPolicy": {
              "id": 1,
              "name": "Standard Shipping",
              "deletedAt": null
            },
            "deletedAt": null,
            "shippingCarrier": null,
            "shippingCarrierMethod": null,
            "defaultCarrierCode": "UPS",
            "defaultMethodCode": "UPSG",
            "overrideDefaultCodes": false,
            "filterCarriersAndMethods": true,
            "shippingCarriers": [
              {
                "id": 1,
                "name": "UPS",
                "handle": "ups",
                "shipEngineSupported": true
              },
              {
                "id": 2,
                "name": "USPS",
                "handle": "usps",
                "shipEngineSupported": true
              }
            ],
            "shippingCarrierMethods": [
              {
                "id": 9,
                "shippingCarrier": {
                  "id": 1,
                  "name": "UPS",
                  "handle": "ups",
                  "shipEngineSupported": true
                },
                "name": "UPS Standard®",
                "handle": "ups_standard_international"
              },
              {
                "id": 1,
                "shippingCarrier": {
                  "id": 2,
                  "name": "USPS",
                  "handle": "usps",
                  "shipEngineSupported": true
                },
                "name": "USPS First Class Mail",
                "handle": "usps_first_class_mail"
              }
            ],
            "useBestFitPackage": true,
            "commonPackages": null,
            "customPackages": null
          },
          "Using Specific Packages": {
            "id": 1,
            "sourceId": 1,
            "description": "UPS Ground",
            "carrier": "UPS",
            "method": "Ground",
            "shippingCode": "UPSG",
            "shippingPolicy": {
              "id": 1,
              "name": "Standard Shipping",
              "deletedAt": null
            },
            "deletedAt": null,
            "shippingCarrier": null,
            "null": null,
            "shippingCarrierMethod": null,
            "defaultCarrierCode": "UPS",
            "defaultMethodCode": "UPSG",
            "overrideDefaultCodes": false,
            "filterCarriersAndMethods": false,
            "shippingCarriers": null,
            "shippingCarrierMethods": null,
            "useBestFitPackage": false,
            "commonPackages": [
              {
                "id": 7,
                "length": 8.63,
                "width": 5.38,
                "height": 1.63,
                "dimensionUnit": {
                  "handle": "inch",
                  "abbreviatedHandle": "in"
                },
                "weight": 0.13,
                "weightUnit": {
                  "handle": "pound",
                  "abbreviatedHandle": "lb"
                }
              }
            ],
            "customPackages": [
              {
                "id": 1,
                "name": "Standard Shipping",
                "length": 8.6,
                "width": 5.4,
                "height": 1.6,
                "dimensionUnit": {
                  "handle": "inch",
                  "abbreviatedHandle": "in"
                },
                "weight": 0.1,
                "weightUnit": {
                  "handle": "pound",
                  "abbreviatedHandle": "lb"
                },
                "createdAt": "2019-08-24T14:15:22Z",
                "createdByUserEmail": "user123@mycompany.com",
                "updatedAt": null
              }
            ]
          }
        },
        "title": "SourceShippingMethod",
        "properties": {
          "id": {
            "type": "integer"
          },
          "sourceId": {
            "type": "integer"
          },
          "description": {
            "type": "string"
          },
          "carrier": {
            "type": "string"
          },
          "method": {
            "type": "string"
          },
          "shippingCode": {
            "type": "string",
            "deprecated": true,
            "description": "Deprecated. Use `defaultMethodCode` instead."
          },
          "shippingPolicy": {
            "$ref": "#/components/schemas/ShippingPolicy"
          },
          "deletedAt": {
            "type": "string",
            "format": "date-time"
          },
          "shippingCarrier": {
            "$ref": "#/components/schemas/ShippingCarrier"
          },
          "shippingCarrierMethod": {
            "$ref": "#/components/schemas/ShippingCarrierMethod"
          },
          "shippingLabelCode": {
            "type": "string",
            "x-stoplight": {
              "id": "3fvavp8rprpfl"
            },
            "description": "It is used to specify the preferred Delivery Service during the purchase of a shipping label when a Fulfillment Request is not rate shopped"
          },
          "defaultCarrierCode": {
            "type": "string",
            "description": "The code (text) that your source recognizes for this shipping carrier."
          },
          "defaultMethodCode": {
            "type": "string",
            "description": "Formally known as \"Shipping Code\". The code (text) that your source recognizes for this shipping method."
          },
          "overrideDefaultCodes": {
            "type": "boolean",
            "description": "Use codes provided by ShipEngine to send to your source based on the carrier and method with the best shipping rate.",
            "default": false
          },
          "filterCarriersAndMethods": {
            "type": "boolean",
            "description": "Filter to include only some carriers and methods you've connected to ShipEngine.",
            "default": false
          },
          "shippingCarriers": {
            "type": "array",
            "description": "When filtering shipping carriers and methods (i.e. filterCarriersAndMethods = true), this is the list of eligible shipping carriers that may be used for shipping.\n\n<b>Note:</b> When filterCarriersAndMethods = false, this list will be empty, but <b>all</b> carriers will be considered for rate shopping.",
            "items": {
              "$ref": "#/components/schemas/ShippingCarrier"
            }
          },
          "shippingCarrierMethods": {
            "type": "array",
            "description": "When filtering shipping carriers and methods (i.e. filterCarriersAndMethods = true), this is the list of eligible methods that may be used for shipping.\n\n<b>Note:</b> When filterCarriersAndMethods = false, this list will be empty, but <b>all</b> methods for all carriers will be considered for rate shopping.",
            "items": {
              "$ref": "#/components/schemas/ShippingCarrierMethod"
            }
          },
          "useBestFitPackage": {
            "type": "boolean",
            "description": "Use Flxpoint's predefined package sizes to fit all PO/FR line items in a single package. The largest box possible will be used for oversized PO/FRs.\n\nWhen false, package sizes must be configured for eligibility during rate shopping. You may select any number of common packages and/or use your own custom packages.",
            "default": true
          },
          "commonPackages": {
            "type": "array",
            "description": "This will contain the <b>standard</b> package selections enabled for use with this shipping method when configured to use specific packages for shipping, rather than Flxpoint's predefined \"Best Fit\" package sizes (i.e. useBestFitPackage = false).\n\n<b>Note:</b> When useBestFitPackage = true, this list will be empty, and Flxpoint's predefined list of packages will be considered instead.",
            "items": {
              "$ref": "#/components/schemas/CommonPackage"
            }
          },
          "customPackages": {
            "type": "array",
            "description": "This will contain the <b>unique</b> package selections enabled for use with this shipping method when configured to use specific packages for shipping, rather than Flxpoint's predefined \"Best Fit\" package sizes (i.e. useBestFitPackage = false).\n\n<b>Note:</b> When useBestFitPackage = true, this list will be empty, and Flxpoint's predefined list of packages will be considered instead.",
            "items": {
              "$ref": "#/components/schemas/CustomPackage"
            }
          }
        }
      },
      "ChannelShippingMethod": {
        "type": "object",
        "description": "",
        "x-tags": [
          "Models"
        ],
        "title": "",
        "x-examples": {
          "example-1": {
            "id": 0,
            "channelId": 0,
            "name": "string",
            "shippingPolicyId": 0,
            "deletedAt": "2019-08-24T14:15:22Z"
          }
        },
        "properties": {
          "id": {
            "type": "integer"
          },
          "channelId": {
            "type": "integer"
          },
          "name": {
            "type": "string"
          },
          "shippingPolicyId": {
            "type": "integer"
          },
          "deletedAt": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "CreateChannelShippingMethodRequest": {
        "type": "object",
        "description": "",
        "x-tags": [
          "Models"
        ],
        "title": "",
        "properties": {
          "channelId": {
            "type": "integer"
          },
          "name": {
            "type": "string"
          },
          "shippingPolicyId": {
            "type": "integer"
          }
        },
        "required": [
          "channelId",
          "name"
        ]
      },
      "UpdateChannelShippingMethodRequest": {
        "type": "object",
        "description": "",
        "x-tags": [
          "Models"
        ],
        "title": "",
        "properties": {
          "name": {
            "type": "string"
          },
          "shippingPolicyId": {
            "type": "integer"
          }
        },
        "required": [
          "channelId",
          "name"
        ]
      },
      "BulkDeleteChannelShippingMethodsRequest": {
        "title": "BulkDeleteChannelShippingMethodsRequest",
        "type": "object",
        "description": "Request body for bulk delete of channel shipping methods.",
        "properties": {
          "ids": {
            "type": "array",
            "description": "List of channel shipping method IDs to delete.",
            "items": {
              "type": "integer"
            }
          }
        },
        "required": [
          "ids"
        ]
      },
      "BulkDeleteChannelShippingMethodsResponse": {
        "title": "BulkDeleteChannelShippingMethodsResponse",
        "type": "object",
        "description": "Response for bulk delete of channel shipping methods.",
        "properties": {
          "deletedCount": {
            "type": "integer",
            "description": "Number of channel shipping methods soft-deleted."
          }
        },
        "required": [
          "deletedCount"
        ]
      },
      "ChannelShippingMapping": {
        "description": "",
        "x-tags": [
          "Models"
        ],
        "type": "object",
        "deprecated": true,
        "properties": {
          "id": {
            "type": "integer"
          },
          "channelId": {
            "type": "integer"
          },
          "name": {
            "type": "string"
          },
          "shippingPolicyId": {
            "type": "integer"
          },
          "deletedAt": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "PurchaseOrderAttribute": {
        "description": "",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "id": {
            "type": "integer"
          },
          "purchase_order_id": {
            "type": "integer"
          },
          "key": {
            "type": "string",
            "minLength": 1
          },
          "value": {
            "type": "string",
            "minLength": 1
          }
        }
      },
      "FulfillmentRequestAttribute": {
        "description": "",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "title": "",
        "properties": {
          "id": {
            "type": "integer"
          },
          "fulfillmentRequestId": {
            "type": "integer"
          },
          "key": {
            "type": "string",
            "minLength": 1
          },
          "value": {
            "type": "string",
            "minLength": 1
          }
        }
      },
      "CreatePurchaseOrderAttributeRequest": {
        "description": "",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "key": {
            "type": "string",
            "minLength": 1
          },
          "value": {
            "type": "string",
            "minLength": 1
          }
        }
      },
      "CreateFulfillmentRequestAttribute": {
        "description": "",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "key": {
            "type": "string",
            "minLength": 1
          },
          "value": {
            "type": "string",
            "minLength": 1
          }
        }
      },
      "OrderItemAttribute": {
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "id": {
            "type": "integer"
          },
          "orderItemId": {
            "type": "integer"
          },
          "key": {
            "type": "string",
            "minLength": 1
          },
          "value": {
            "type": "string",
            "minLength": 1
          }
        }
      },
      "Reseller": {
        "description": "",
        "x-tags": [
          "Models"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "integer"
          },
          "accountId": {
            "type": "integer"
          },
          "email": {
            "type": "string"
          },
          "billingAddressId": {
            "type": "integer"
          },
          "channelId": {
            "type": "integer"
          },
          "accountDealerStatusId": {
            "type": "integer"
          },
          "totalOrders": {
            "type": "integer"
          },
          "totalSpent": {
            "type": "number"
          },
          "lastOrderOn": {
            "type": "string",
            "format": "date-time"
          },
          "firstName": {
            "type": "string"
          },
          "lastName": {
            "type": "string"
          },
          "insertedAt": {
            "type": "string",
            "format": "date-time"
          },
          "companyName": {
            "type": "string"
          },
          "phone": {
            "type": "string"
          },
          "dealerGroupId": {
            "type": "integer"
          },
          "creditAvailable": {
            "type": "number"
          },
          "creditUsed": {
            "type": "number"
          },
          "taxId": {
            "type": "string"
          },
          "externalId": {
            "type": "string"
          },
          "website": {
            "type": "string"
          },
          "apiTokenEnabledStateBeforeAccountLock": {
            "type": "boolean"
          }
        }
      },
      "OrderStatusHistory": {
        "description": "",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "id": {
            "type": "integer"
          },
          "orderId": {
            "type": "integer"
          },
          "changeTime": {
            "type": "string",
            "format": "date-time"
          },
          "fromOrderStatus": {
            "$ref": "#/components/schemas/OrderStatus"
          },
          "toOrderStatus": {
            "$ref": "#/components/schemas/OrderStatus"
          },
          "userId": {
            "type": "integer"
          },
          "orderHistoryType": {
            "$ref": "#/components/schemas/OrderHistoryType"
          },
          "note": {
            "type": "string"
          },
          "changeByDealer": {
            "type": "boolean"
          },
          "vendorUserId": {
            "type": "integer"
          },
          "sourceId": {
            "type": "integer"
          },
          "orderInteractionType": {
            "$ref": "#/components/schemas/OrderInteractionType"
          }
        },
        "required": [
          "orderId",
          "fromOrderStatus",
          "toOrderStatus"
        ]
      },
      "OrderInteractionType": {
        "title": "OrderInteractionType",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "name": {
            "type": "string",
            "enum": [
              "Source API",
              "Channel API",
              "Dealer API",
              "Dealer Portal",
              "Vendor Portal",
              "Source Integration",
              "Channel Integration",
              "User",
              "Source API via OceanX",
              "Source API via Duoplane",
              "API",
              "System"
            ]
          },
          "handle": {
            "type": "string",
            "enum": [
              "source_api",
              "channel_api",
              "dealer_api",
              "dealer_portal",
              "vendor_portal",
              "source_integration",
              "channel_integration",
              "user",
              "oceanx",
              "duoplane",
              "api",
              "system"
            ]
          }
        }
      },
      "OrderHistoryType": {
        "title": "OrderHistoryType",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "description": "",
        "properties": {
          "name": {
            "type": "string",
            "enum": [
              "Status Changed",
              "Source Invoice Added",
              "Shipment Added",
              "Payment Status Changed",
              "Address Changed",
              "Channel Invoice Changed",
              "Shipping Policy Changed",
              "FFL Information Changed",
              "Source Invoice Changed",
              "Shipment Changed",
              "Order Submitted",
              "Order Not Managed",
              "Roadblock in order fulfillment",
              "Shipping Label Purchased",
              "Shipping Label Voided",
              "Cleared error messages",
              "Channel Invoice PDF Generated",
              "Order Line Item Added",
              "Order Line Item Canceled",
              "Adjusted Acknowledged PO Line Item Quantity",
              "Packing Slip Generated",
              "Return Added",
              "RMA Added",
              "Return Status Changed",
              "RMA Status Changed",
              "RMA Line Item Deleted",
              "Return To Address Updated",
              "Return Destination Updated",
              "RMA Shipment Added",
              "RMA Shipment Status Changed",
              "Refund Synced to Order",
              "Credit Synced to Order",
              "Fulfillment Request Status Changed",
              "Fulfillment Request Added",
              "Fulfillment Request Changed",
              "Fulfillment Request Received Status Changed",
              "Closed Status Synced",
              "Order Line Item Replaced"
            ]
          },
          "handle": {
            "type": "string",
            "enum": [
              "status_changed",
              "source_invoice_added",
              "shipment_added",
              "payment_status_changed",
              "address_changed",
              "channel_invoice_changed",
              "shipping_policy_changed",
              "ffl_info_changed",
              "source_invoice_changed",
              "shipment_changed",
              "order_submitted",
              "order_not_managed",
              "order_fulfillment_roadblock",
              "shipping_label_purchased",
              "shipping_label_voided",
              "clear_order_errors",
              "po_status_changed",
              "po_added",
              "purchase_order_changed",
              "channel_invoice_pdf_generated",
              "po_received_status_changed",
              "order_line_item_added",
              "order_line_item_canceled",
              "adjusted_acknowledged_quantity",
              "packing_slip_generated",
              "return_added",
              "rma_added",
              "return_status_changed",
              "rma_status_changed",
              "rma_line_item_deleted",
              "return_to_address_updated",
              "return_destination_updated",
              "rma_shipment_added",
              "rma_shipment_status_changed",
              "refund_synced_to_order",
              "credit_synced_to_order",
              "closed_status_synced",
              "order_line_item_replaced"
            ]
          }
        }
      },
      "CustomAggregateField": {
        "title": "CustomAggregateField",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "id": {
            "type": "integer",
            "description": "",
            "x-diff-exclusion": true
          },
          "aggregateFieldDataTypeId": {
            "type": "integer",
            "description": "",
            "x-diff-exclusion": true
          },
          "customAggregateFieldOptionId": {
            "type": "integer",
            "x-diff-exclusion": true
          },
          "name": {
            "type": "string"
          },
          "handle": {
            "type": "string"
          },
          "ignoreOutOfStock": {
            "type": "boolean",
            "default": false
          },
          "accountId": {
            "type": "integer"
          }
        }
      },
      "InventoryVariantCustomAggregateField": {
        "title": "InventoryVariantCustomAggregateField",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64",
            "x-diff-exclusion": true
          },
          "sourceVariantId": {
            "type": "integer",
            "x-diff-exclusion": true,
            "format": "int64"
          },
          "accountId": {
            "type": "integer",
            "x-diff-exclusion": true
          },
          "customAggregateField": {
            "$ref": "#/components/schemas/CustomAggregateField"
          },
          "name": {
            "type": "string"
          },
          "value": {
            "type": "number"
          },
          "customAggregateFieldId": {
            "type": "integer",
            "x-diff-exclusion": true
          }
        }
      },
      "InventoryVariantCustomAggregateFieldCreateOrUpdate": {
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "name": {
            "type": "string"
          },
          "value": {
            "type": "number"
          }
        }
      },
      "ProductVariantCustomAggregateField": {
        "title": "ProductVariantCustomAggregateField",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "productVariantId": {
            "type": "integer"
          },
          "accountId": {
            "type": "integer"
          },
          "customAggregateField": {
            "$ref": "#/components/schemas/CustomAggregateField"
          },
          "name": {
            "type": "string"
          },
          "value": {
            "type": "number"
          },
          "customAggregateFieldId": {
            "type": "integer"
          }
        }
      },
      "ListingVariantCustomAggregateField": {
        "title": "ListingVariantCustomAggregateField",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "listingVariantId": {
            "type": "integer"
          },
          "accountId": {
            "type": "integer"
          },
          "customAggregateField": {
            "$ref": "#/components/schemas/CustomAggregateField"
          },
          "name": {
            "type": "string"
          },
          "value": {
            "type": "number"
          },
          "customAggregateFieldId": {
            "type": "integer"
          }
        }
      },
      "ListingProductSearchRequest": {
        "description": "",
        "type": "object",
        "properties": {
          "filterChannelId": {
            "type": "integer"
          },
          "filterParentIds": {
            "type": "array",
            "items": {
              "type": "integer"
            }
          },
          "filterNeedsPublished": {
            "type": "boolean"
          },
          "filterImagesCached": {
            "type": "boolean"
          }
        },
        "x-tags": [
          "Models"
        ]
      },
      "Source": {
        "title": "Source",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "description": "This object represents the basic properties of a Source. To learn more about sources, visit https://docs.flxpoint.com/flxpoint/sources.\n\nNote : Some of these properties (i.e. \"address\") may not be populated if the Source is being returned as a supporting property (i.e. the \"/jobs\" endpoint)",
        "properties": {
          "id": {
            "type": "integer"
          },
          "name": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "insertedAt": {
            "type": "string",
            "format": "date-time"
          },
          "addressId": {
            "type": "integer"
          },
          "rateShopping": {
            "type": "boolean",
            "description": "The setting that determines if this Source attempts to use Rate Shopping (for all requirements of Rate Shopping, see https://docs.flxpoint.com/flxpoint/rate-shopping)"
          },
          "releaseCommittedStockOnShipmentAdded": {
            "type": "boolean",
            "deprecated": true,
            "description": "**(This setting is deprecated, please reach out to our team before using)** If `true`, committed stock will be released as soon as Shipments are added. If `false`, committed stock will be released after Shipments are added AND Inventory quantity changes."
          },
          "releaseCommittedStockOnQuantityUpdate": {
            "type": "boolean",
            "deprecated": true,
            "description": "**(This setting is deprecated, please reach out to our team before using)** If `true`, committed stock will be released as soon as inventory variant quantity is changed. If `false`, committed stock will be released after Shipments are added AND Inventory quantity changes."
          },
          "vendorId": {
            "type": "integer",
            "description": "The `Vendor` ID associated to a Source"
          },
          "type": {
            "$ref": "#/components/schemas/SourceType"
          },
          "currency": {
            "$ref": "#/components/schemas/Currency"
          },
          "address": {
            "$ref": "#/components/schemas/Address"
          },
          "commitStock": {
            "type": "boolean",
            "description": "When `true` purchase orders generated to this source will automatically have stock committed for the relevant inventory variants."
          },
          "allowBackorders": {
            "type": "boolean",
            "description": "It will allow the variants to be fulfilled/routed to during PO generation regardless of whether or not it is in stock."
          },
          "vendor": {
            "$ref": "#/components/schemas/Vendor"
          },
          "containsFirearmsWorkflowEventId": {
            "type": "integer"
          },
          "containsFirearms": {
            "type": "boolean"
          },
          "shippingCostWorkflowEventId": {
            "type": "integer"
          },
          "dropshipFeeWorkflowEventId": {
            "type": "integer"
          },
          "integrations": {
            "type": "array",
            "uniqueItems": true
          },
          "settings": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SourceSetting"
            }
          },
          "autoCreateListingsWorkflowEventId": {
            "type": "integer",
            "x-stoplight": {
              "id": "uq42u7gv6ebx6"
            }
          },
          "autoRebuildEnabledOn": {
            "type": "string",
            "x-stoplight": {
              "id": "gg6kizpndyxxa"
            },
            "format": "date-time"
          },
          "autoRebuildConfirmedByUser": {
            "type": "string",
            "x-stoplight": {
              "id": "64okblttn5ums"
            }
          },
          "autoListEnabledOn": {
            "type": "string",
            "x-stoplight": {
              "id": "ylphdvjyh8rin"
            },
            "format": "date-time"
          },
          "autoListConfirmedByUser": {
            "type": "string",
            "x-stoplight": {
              "id": "yjs6yif36gv4t"
            }
          },
          "autoCreateListingsForAllInventories": {
            "type": "boolean",
            "x-stoplight": {
              "id": "jkhlycrd4fhm4"
            }
          },
          "autoCreateListingsForSpecificInventories": {
            "type": "boolean",
            "x-stoplight": {
              "id": "8vt6cut7tkhu2"
            }
          },
          "autoGenerateInvoiceWorkflowId": {
            "type": "integer"
          }
        },
        "required": [
          "id"
        ]
      },
      "CreateSourceRequest": {
        "title": "Create Source Request",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "description": "This object represents the basic properties for creating a Source. To learn more about sources, visit https://docs.flxpoint.com/flxpoint/sources.\n\n",
        "properties": {
          "name": {
            "type": "string",
            "maxLength": 100
          },
          "description": {
            "type": "string",
            "maxLength": 5000
          },
          "typeHandle": {
            "type": "string",
            "enum": [
              "data_source",
              "internal_warehouse",
              "external_warehouse",
              "vendor_warehouse"
            ]
          },
          "address": {
            "$ref": "#/components/schemas/CreateAddressRequest"
          },
          "rateShopping": {
            "type": "boolean",
            "description": "The setting that determines if this Source attempts to use Rate Shopping (for all requirements of Rate Shopping, see https://docs.flxpoint.com/flxpoint/rate-shopping)"
          },
          "releaseCommittedStockOnShipmentAdded": {
            "type": "boolean",
            "deprecated": true,
            "description": "**(This setting is deprecated, please reach out to our team before using)** If `true`, committed stock will be released as soon as Shipments are added. If `false`, committed stock will be released after Shipments are added AND Inventory quantity changes."
          },
          "releaseCommittedStockOnQuantityUpdate": {
            "type": "boolean",
            "deprecated": true,
            "description": "**(This setting is deprecated, please reach out to our team before using)** If `true`, committed stock will be released as soon as inventory variant quantity is changed. If `false`, committed stock will be released after Shipments are added AND Inventory quantity changes."
          },
          "vendorId": {
            "type": "integer",
            "description": "The `Vendor` ID associated to a Source"
          },
          "commitStock": {
            "type": "boolean",
            "description": "When `true` purchase orders generated to this source will automatically have stock committed for the relevant inventory variants."
          },
          "allowBackorders": {
            "type": "boolean",
            "description": "It will allow the variants to be fulfilled/routed to during PO generation regardless of whether or not it is in stock."
          },
          "containsFirearms": {
            "type": "boolean"
          }
        },
        "required": [
          "name",
          "typeHandle"
        ]
      },
      "SourceType": {
        "title": "SourceType",
        "type": "object",
        "properties": {
          "id": {
            "type": "integer"
          },
          "name": {
            "type": "string",
            "enum": [
              "Data Source",
              "Internal Warehouse",
              "External Warehouse",
              "Vendor Warehouse"
            ]
          },
          "handle": {
            "type": "string",
            "enum": [
              "data_source",
              "internal_warehouse",
              "external_warehouse",
              "vendor_warehouse"
            ]
          }
        },
        "x-tags": [
          "Models"
        ]
      },
      "SourceAutoCreateProductsAndListings": {
        "title": "SourceAutoCreateProductsAndListings",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "description": "Current state of auto create products and listings for a specific source",
        "properties": {
          "enabled": {
            "type": "boolean"
          },
          "productMappingTemplateId": {
            "type": "integer"
          },
          "productBuilderId": {
            "type": "integer"
          },
          "autoPublishListings": {
            "type": "boolean"
          },
          "channels": {
            "type": "array",
            "uniqueItems": true,
            "items": {
              "$ref": "#/components/schemas/SourceAutoCreateProductsAndListingsChannel"
            }
          }
        },
        "required": []
      },
      "SourceAutoCreateProductsAndListingsChannel": {
        "title": "SourceAutoCreateProductsAndListingsChannel",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "description": "Control setting for automatically creating listings from new inventory",
        "properties": {
          "enabled": {
            "type": "boolean"
          },
          "channelId": {
            "type": "integer"
          },
          "mappingTemplateId": {
            "type": "integer"
          }
        },
        "required": [
          "enabled",
          "channelId"
        ]
      },
      "PurchaseOrderType": {
        "title": "PurchaseOrderType",
        "description": "\"Fulfillment Request\" name and \"FR\" abbreviation are now deprecated. Use \"Fulfillment Order\" name and \"FO\" abbreviation instead.",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "id": {
            "type": "integer",
            "enum": [
              1,
              2,
              3,
              4
            ]
          },
          "name": {
            "type": "string",
            "enum": [
              "Purchase Order",
              "Fulfillment Request",
              "Transfer Order",
              "Stocking Purchase Order",
              "Fulfillment Order"
            ]
          },
          "abbreviation": {
            "type": "string",
            "enum": [
              "PO",
              "FR",
              "TO",
              "SPO",
              "FO"
            ]
          },
          "handle": {
            "type": "string",
            "enum": [
              "purchase_order",
              "fulfillment_request",
              "transfer_order",
              "stocking_purchase_order"
            ]
          }
        }
      },
      "FulfillmentRequestType": {
        "title": "FulfillmentRequestType",
        "description": "\"Fulfillment Request\" name and \"FR\" abbreviation are now deprecated. Use \"Fulfillment Order\" name and \"FO\" abbreviation instead.",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "id": {
            "type": "integer",
            "enum": [
              1,
              2,
              3,
              4
            ]
          },
          "name": {
            "type": "string",
            "enum": [
              "Purchase Order",
              "Fulfillment Request",
              "Transfer Order",
              "Stocking Purchase Order",
              "Fulfillment Order"
            ]
          },
          "abbreviation": {
            "type": "string",
            "enum": [
              "PO",
              "FR",
              "TO",
              "SPO",
              "FO"
            ]
          },
          "handle": {
            "type": "string",
            "enum": [
              "purchase_order",
              "fulfillment_request",
              "transfer_order",
              "stocking_purchase_order"
            ]
          }
        }
      },
      "PurchaseOrderItemAttribute": {
        "title": "PurchaseOrderItemAttribute",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "id": {
            "type": "integer"
          },
          "purchaseOrderItemId": {
            "type": "integer"
          },
          "key": {
            "type": "string",
            "minLength": 1
          },
          "value": {
            "type": "string",
            "minLength": 1
          }
        }
      },
      "FulfillmentRequestItemAttribute": {
        "title": "FulfillmentRequestItemAttribute",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "id": {
            "type": "integer"
          },
          "fulfillmentRequestItemId": {
            "type": "integer"
          },
          "key": {
            "type": "string",
            "minLength": 1
          },
          "value": {
            "type": "string",
            "minLength": 1
          }
        }
      },
      "CreatePurchaseOrderItemAttributeRequest": {
        "title": "CreatePurchaseOrderItemAttributeRequest",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "key": {
            "type": "string"
          },
          "value": {
            "type": "string"
          }
        },
        "required": [
          "key",
          "value"
        ]
      },
      "CreateFulfillmentRequestItemAttribute": {
        "title": "CreateFulfillmentRequestItemAttribute",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "key": {
            "type": "string"
          },
          "value": {
            "type": "string"
          }
        },
        "required": [
          "key",
          "value"
        ]
      },
      "CreatePurchaseOrderItemBundleRequest": {
        "title": "CreatePurchaseOrderItemBundleRequest",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "orderItemBundleComponentId": {
            "type": "integer"
          }
        },
        "required": [
          "orderItemBundleComponentId"
        ]
      },
      "CreateFulfillmentRequestItemBundle": {
        "title": "CreateFulfillmentRequestItemBundle",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "orderItemBundleComponentId": {
            "type": "integer"
          }
        },
        "required": [
          "orderItemBundleComponentId"
        ]
      },
      "KeyValuePair": {
        "title": "KeyValuePair",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "key": {
            "type": "string"
          },
          "value": {
            "type": "string"
          }
        },
        "required": [
          "key",
          "value"
        ]
      },
      "OrderAttribute": {
        "title": "OrderAttribute",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "id": {
            "type": "integer"
          },
          "orderId": {
            "type": "integer"
          },
          "key": {
            "type": "string",
            "minLength": 1
          },
          "value": {
            "type": "string",
            "minLength": 1
          }
        }
      },
      "CreateShipmentRequest": {
        "title": "CreateShipmentRequest",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "purchaseOrderId": {
            "type": "integer",
            "description": "Identify the purchase order to associate the shipment to by providing the Flxpoint generated internal purchase order ID.",
            "deprecated": true
          },
          "purchaseOrderNumber": {
            "type": "string",
            "description": "Identify the purchase order to associate the shipment to by providing the purchase order number. ACCOUNT tokens will also need to provide `sourceId` when identifying via this property."
          },
          "sourceId": {
            "type": "integer",
            "description": "SOURCE tokens are not required to supply a value here, if using a SOURCE token and a value is provided and it does not match the source ID of the token a `400` response code will be returned.\n\nOnly required when using a ACCOUNT token in conjunction with `purchaseOrderNumber`(not necessary to provide when using `purchaseOrderId`). If not provided when submitting with `purchaseOrderNumber` a `400` response code will be returned. If the `sourceId` cannot be found a `404` response code will be returned."
          },
          "allowDuplicateTrackingNumbers": {
            "type": "boolean",
            "description": "Indicates that the tracking number should be allowed more than once for each purchase order",
            "default": false
          },
          "shipment": {
            "$ref": "#/components/schemas/CreateShipment"
          },
          "fulfillmentRequestId": {
            "type": "integer",
            "description": "The ID of the fulfillment request this shipment corresponds to. This is the same value as the `purchaseOrderId`, but with  the latest terminology."
          }
        },
        "required": [
          "shipment"
        ]
      },
      "ListingVariantSearchRequest": {
        "description": "ListingVariantSearchRequest",
        "type": "object",
        "properties": {
          "filterChannelId": {
            "type": "integer"
          },
          "filterParentIds": {
            "type": "array",
            "items": {
              "type": "integer"
            }
          },
          "filterVariantIds": {
            "type": "array",
            "items": {
              "type": "integer"
            }
          },
          "filterExternalIds": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "filterProductVariantIds": {
            "type": "array",
            "items": {
              "type": "integer"
            }
          },
          "filterSkus": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "filterUpcs": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "filterMpns": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "filterEans": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "filterAsins": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "filterNeedsSynced": {
            "type": "boolean"
          },
          "filterNeedsDeleting": {
            "type": "boolean",
            "default": false
          }
        },
        "x-tags": [
          "Models"
        ]
      },
      "ChannelListingStrategy": {
        "description": "The strategy used to manage listing pricing and quantity on the channel.\n-`single` = Single Vendor\n-`best` = Best Vendor\n-`mli` = Multi-Location Inventory",
        "type": "string",
        "enum": [
          "single",
          "best",
          "mli"
        ]
      },
      "PricingStrategy": {
        "description": "How monetary values are aggregated from multiple inventory links to consolidate into a single value.",
        "type": "string",
        "enum": [
          "lowest",
          "lowest_including_out_of_stock",
          "average",
          "average_including_out_of_stock",
          "highest",
          "highest_including_out_of_stock"
        ]
      },
      "ChannelPricingStrategy": {
        "description": "Only applicable when `listingStrategy = mli`. Determines how prices should be aggregated or set based on the connected sources of the channel locations",
        "type": "string",
        "enum": [
          "lowest",
          "average",
          "highest"
        ]
      },
      "ChannelPricingFactor": {
        "description": "Only applicable when `listingStrategy = best`. When comparing costs across sources/vendors should the dropship fee and shipping costs be included in the comparison that ultimately selected which source/vendor has the lowest cost? If so select total, if not select item.",
        "type": "string",
        "default": "total",
        "enum": [
          "total",
          "item"
        ]
      },
      "ChannelPricingMarkup": {
        "description": "Should basic, advanced, or no pricing controls be applied.",
        "type": "string",
        "default": "basic",
        "enum": [
          "basic",
          "advanced",
          "none"
        ]
      },
      "ChannelWritable": {
        "title": "ChannelWritable",
        "type": "object",
        "description": "Base set of fields for updating channels",
        "x-tags": [
          "Models"
        ],
        "required": [
          "name",
          "listingStrategy",
          "pricingFactor",
          "pricingMarkup"
        ],
        "properties": {
          "name": {
            "type": "string",
            "description": "Channel Name"
          },
          "description": {
            "type": "string",
            "description": "Channel Description"
          },
          "primary": {
            "type": "boolean"
          },
          "listingStrategy": {
            "$ref": "#/components/schemas/ChannelListingStrategy"
          },
          "pricingStrategy": {
            "$ref": "#/components/schemas/ChannelPricingStrategy"
          },
          "pricingFactor": {
            "$ref": "#/components/schemas/ChannelPricingFactor"
          },
          "pricingMarkup": {
            "$ref": "#/components/schemas/ChannelPricingMarkup"
          },
          "quantityAggregation": {
            "description": "Only applicable when using a pricing strategy of `best`. This denotes that quantity should be aggregated from all relevant sources instead of just the `best` source.",
            "type": "boolean"
          },
          "channelInvoiceReceiptOptionId": {
            "type": "integer"
          },
          "invoiceReceiptAccountCustomAlertId": {
            "type": "integer"
          },
          "paymentCollection": {
            "type": "boolean",
            "default": true
          },
          "channelInvoiceDefaultStatus": {
            "$ref": "#/components/schemas/PaymentStatus"
          },
          "channelInvoiceCc": {
            "type": "string"
          },
          "pricingWorkflowEventId": {
            "type": "integer",
            "description": "The ID of the Listing Price & Quantity Workflow for the Channel."
          },
          "autoGeneratePoOnImport": {
            "type": "boolean",
            "default": false,
            "description": "A setting that enables auto-generation of PO/FRs upon Order Import from the Channel."
          },
          "listingStatusWorkflowEventId": {
            "type": "integer",
            "description": "The ID of the Listing Status Workflow for the Channel."
          },
          "allowBackorder": {
            "type": "boolean"
          },
          "listingBuilderMappingTemplateId": {
            "type": "integer"
          },
          "inStoreOrder": {
            "type": "boolean"
          },
          "listPriceProtection": {
            "type": "boolean",
            "description": "Indicates whether price protection is applied to the listing. When true, the listing will not be eligible to sync to channels because either the price is below or equal to cost, the cost is missing, or the listing has no linked inventories."
          }
        }
      },
      "Channel": {
        "title": "Channel",
        "type": "object",
        "description": "This model represents the basic properties of a Channel. To learn more about channels, visit https://docs.flxpoint.com/flxpoint/channels.",
        "x-tags": [
          "Models"
        ],
        "allOf": [
          {
            "$ref": "#/components/schemas/ChannelWritable"
          }
        ],
        "properties": {
          "id": {
            "type": "integer",
            "description": "Channel ID"
          },
          "insertedAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "channelType": {
            "type": "string",
            "enum": [
              "flxpoint.api.custom",
              "flxpoint.api.dealers"
            ],
            "description": "A string handle indicating the type of the Channel. Options are Sales Channel  (\"Custom\") or Reseller (formerly known as \"Dealer\")."
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "allowDealers": {
            "type": "boolean"
          },
          "integrations": {
            "type": "array",
            "uniqueItems": true
          },
          "channelLocations": {
            "type": "array",
            "uniqueItems": true,
            "items": {
              "$ref": "#/components/schemas/ChannelLocation"
            }
          },
          "bestVendorSources": {
            "type": "array",
            "uniqueItems": true,
            "items": {
              "$ref": "#/components/schemas/BestVendorSource"
            }
          }
        }
      },
      "CreateChannelRequest": {
        "title": "CreateChannelRequest",
        "type": "object",
        "description": "This model allows you to create channel. To learn more about channels, visit https://docs.flxpoint.com/flxpoint/channels.",
        "x-tags": [
          "Models"
        ],
        "allOf": [
          {
            "$ref": "#/components/schemas/ChannelWritable"
          }
        ],
        "properties": {
          "channelType": {
            "type": "string",
            "enum": [
              "flxpoint.api.custom",
              "flxpoint.api.dealers"
            ],
            "description": "A string handle indicating the type of the Channel. Options are Sales Channel  (\"Custom\") or Reseller (formerly known as \"Dealer\")."
          },
          "channelLocations": {
            "type": "array",
            "uniqueItems": true,
            "items": {
              "$ref": "#/components/schemas/ChannelLocationWritable"
            }
          },
          "bestVendorSources": {
            "type": "array",
            "uniqueItems": true,
            "items": {
              "$ref": "#/components/schemas/BestVendorSourceWritable"
            }
          }
        }
      },
      "PutChannelRequest": {
        "title": "PutChannelRequest",
        "type": "object",
        "description": "This model allows you to update a channel",
        "x-tags": [
          "Models"
        ],
        "allOf": [
          {
            "$ref": "#/components/schemas/ChannelWritable"
          }
        ],
        "properties": {
          "channelLocations": {
            "type": "array",
            "uniqueItems": true,
            "items": {
              "$ref": "#/components/schemas/ChannelLocationWritable"
            }
          },
          "bestVendorSources": {
            "type": "array",
            "uniqueItems": true,
            "items": {
              "$ref": "#/components/schemas/BestVendorSourceWritable"
            }
          }
        }
      },
      "PutChannelLocationsRequest": {
        "title": "PutChannelLocationsRequest",
        "type": "object",
        "description": "This model allows you to update a MLI channel locations",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "channelLocations": {
            "type": "array",
            "uniqueItems": true,
            "items": {
              "$ref": "#/components/schemas/ChannelLocationWritable"
            }
          }
        }
      },
      "PutChannelLocationsResponse": {
        "title": "PutChannelLocationsResponse",
        "type": "object",
        "description": "List of channel locations",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "channelLocations": {
            "type": "array",
            "uniqueItems": true,
            "items": {
              "$ref": "#/components/schemas/ChannelLocation"
            }
          }
        }
      },
      "ChannelLocationWritable": {
        "title": "ChannelLocationWritable",
        "type": "object",
        "description": "Represents a location/source mapping for a Channel using the `mli` (multi-location inventory) listing strategy.",
        "x-tags": [
          "Models"
        ],
        "required": [
          "externalChannelId",
          "name"
        ],
        "properties": {
          "externalChannelId": {
            "type": "string",
            "description": "The identifier for this location as defined on the external channel."
          },
          "sourceId": {
            "type": "integer",
            "format": "int32",
            "description": "ID of the Source connected to this location. May be null if the source has been removed. Ownership will be confirmed if non-null."
          },
          "name": {
            "type": "string",
            "description": "A display name for the location."
          },
          "minimumQuantity": {
            "type": "integer",
            "format": "int32",
            "minimum": 1,
            "description": "The minimum quantity threshold for this location. Must be null or greater than or equal to 1."
          },
          "missingAt": {
            "type": "string",
            "format": "date-time",
            "description": "Timestamp of when the location was last detected as missing from the external channel, if applicable.",
            "example": "2019-08-24T14:15:22Z"
          },
          "metadata": {
            "type": "string",
            "description": "Optional metadata associated with the location."
          }
        }
      },
      "ChannelLocation": {
        "title": "ChannelLocation",
        "type": "object",
        "description": "Represents a location/source mapping for a Channel using the `mli` (multi-location inventory) listing strategy.",
        "x-tags": [
          "Models"
        ],
        "allOf": [
          {
            "$ref": "#/components/schemas/ChannelLocationWritable"
          }
        ],
        "properties": {
          "insertedAt": {
            "type": "string",
            "format": "date-time",
            "description": "Timestamp of when the location was created.",
            "example": "2019-08-24T14:15:22Z"
          }
        }
      },
      "ListingChannelLocation": {
        "title": "ListingChannelLocation",
        "type": "object",
        "description": "Represents a location/source mapping for a listing variant. Only applicable when using a listing strategy of `mli` (Multi-Location Inventory).",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "channelLocationExternalId": {
            "type": "string",
            "description": "ID for the Channel Location. Can be found via the `channelLocations` array on the [Channel](#/components/schemas/Channel) schema (`#/components/schemas/Channel/properties/channelLocations`).",
            "example": "2039203-230923"
          },
          "sourceId": {
            "type": "integer",
            "format": "int32",
            "description": "ID for the [Source](#/components/schemas/Source) that fulfills the `inventoryVariantId`.",
            "example": 123
          },
          "inventoryVariantId": {
            "type": "integer",
            "format": "int64",
            "description": "The [Inventory Variant](#/components/schemas/InventoryVariant) ID that is being used for this location.",
            "example": 23423423234234
          },
          "quantity": {
            "type": "integer",
            "format": "int32",
            "description": "The quantity available from the inventory variant for this location after applying any minimum quantity filters configured in the MLI settings for this channel & location. Can be null if there is no inventory connected.",
            "example": 5
          }
        }
      },
      "ListingInventoryLink": {
        "title": "ListingInventoryLink",
        "type": "object",
        "description": "Represents an enabled and active fulfillment link for a listing variant",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "sourceId": {
            "type": "integer",
            "format": "int32",
            "description": "ID for the [Source](#/components/schemas/Source) that fulfills the `inventoryVariantId`.",
            "example": 123
          },
          "inventoryVariantId": {
            "type": "integer",
            "format": "int64",
            "description": "The [Inventory Variant](#/components/schemas/InventoryVariant) ID that is being used for this location.",
            "example": 23423423234234
          },
          "enabled": {
            "type": "boolean",
            "description": "Was the source for this inventory link enabled in the channel listing strategy settings allowing this inventory variant to participate in quantity and cost calculations.",
            "example": true
          },
          "won": {
            "type": "boolean",
            "description": "Did this inventory variant win the best vendor selection. Never populated unless using Best Vendor listing strategy.",
            "example": true
          },
          "quantity": {
            "type": "integer",
            "format": "int32",
            "description": "The quantity available from the inventory variant after applying any optional minimum quantity filters configured in the channels listing strategy [Channel](#/components/schemas/Channel) schema (`#/components/schemas/Channel/properties/listingStrategy`).",
            "example": 0
          },
          "originalQuantity": {
            "type": "integer",
            "format": "int32",
            "description": "The quantity available from the inventory variant before applying any optional minimum quantity filters configured in the channels listing strategy [Channel](#/components/schemas/Channel) schema (`#/components/schemas/Channel/properties/listingStrategy`).",
            "example": 25
          },
          "minimumQuantity": {
            "type": "integer",
            "format": "int32",
            "description": "The optional minimum quantity filters configured in the channels listing strategy [Channel](#/components/schemas/Channel) schema (`#/components/schemas/Channel/properties/listingStrategy`) that applied for this source and inventory variant.",
            "example": 20
          },
          "cost": {
            "type": "number",
            "description": "The cost to fulfill the inventory variant",
            "example": 4.99
          },
          "msrp": {
            "type": "number",
            "description": "The inventory variants MSRP",
            "example": 8.99
          },
          "map": {
            "type": "number",
            "description": "The inventory variants MAP",
            "example": 7.99
          },
          "shippingCost": {
            "type": "number",
            "description": "The cost to ship the inventory variant",
            "example": 4
          },
          "dropshipFee": {
            "type": "number",
            "description": "The dropship fee to fulfill the inventory variant",
            "example": 2
          },
          "totalCost": {
            "type": "number",
            "description": "The total cost to fulfill the inventory variant. Total cost is `cost + shipping cost + dropship fee`.",
            "example": 10.99
          },
          "inventoryListPrice": {
            "type": "number"
          },
          "archived": {
            "type": "boolean",
            "description": "If the inventory variant is archived and therefore unfilfillable.",
            "example": true
          },
          "channelLocationExternalId": {
            "type": "string",
            "description": "ID for the Channel Location. Only populated when the listing is in a channel that uses a MLI listing strategy and the inventory link is associated to a source that is associated to a channel location. Can be found via the `channelLocations` array on the [Channel](#/components/schemas/Channel) schema (`#/components/schemas/Channel/properties/channelLocations`).",
            "example": "2039203-230923"
          }
        }
      },
      "BestVendorSourceWritable": {
        "title": "BestVendorSourceWritable",
        "type": "object",
        "description": "Represents a Source configured for a Channel using the `best` (best vendor) listing strategy, including its selection priority and quantity rules.",
        "x-tags": [
          "Models"
        ],
        "required": [
          "sourceId",
          "priority",
          "enabled"
        ],
        "properties": {
          "sourceId": {
            "type": "integer",
            "format": "int32",
            "description": "ID of the Source."
          },
          "forceSelection": {
            "type": "boolean",
            "default": false,
            "description": "If true, this source will be preferred over other sources for this channel whenever it has an available quantity > 0. Only one source can be forced to be selected per channel. Must also be set to `enabled=true` and `proirity=1`."
          },
          "priority": {
            "type": "integer",
            "format": "int32",
            "minimum": 1,
            "maximum": 32767,
            "description": "The selection priority of the source within the channel. Lower values are higher priority. Must be greater than or equal to 1."
          },
          "enabled": {
            "type": "boolean",
            "default": false,
            "description": "Whether this source is enabled for the channel."
          },
          "minimumQuantity": {
            "type": "integer",
            "format": "int32",
            "description": "The minimum quantity threshold for this source. Must be null or greater than or equal to 1.",
            "nullable": true,
            "minimum": 1,
            "maximum": 32767
          }
        }
      },
      "BestVendorSource": {
        "title": "BestVendorSource",
        "type": "object",
        "description": "Represents a Source configured for a Channel using the `best` (best vendor) listing strategy, including its selection priority and quantity rules.",
        "x-tags": [
          "Models"
        ],
        "allOf": [
          {
            "$ref": "#/components/schemas/BestVendorSourceWritable"
          }
        ],
        "properties": {
          "insertedAt": {
            "type": "string",
            "format": "date-time",
            "description": "Timestamp of when the source was added to the channel.",
            "example": "2019-08-24T14:15:22Z"
          },
          "changedAt": {
            "type": "string",
            "format": "date-time",
            "description": "Timestamp of when the source configuration was last changed.",
            "nullable": true,
            "example": "2019-08-24T14:15:22Z"
          }
        }
      },
      "JobType": {
        "title": "JobType",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "handle": {
            "type": "string"
          },
          "name": {
            "type": "string"
          }
        },
        "required": [
          "handle"
        ]
      },
      "GenericCount": {
        "title": "GenericCount",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "count": {
            "type": "integer"
          }
        },
        "required": [
          "count"
        ],
        "description": "Used to return counts in API responses across various methods"
      },
      "ProductBuilderPendingCountResponse": {
        "title": "ProductBuilderPendingCountResponse",
        "type": "object",
        "properties": {
          "count": {
            "type": "integer"
          },
          "failedCount": {
            "type": "integer"
          }
        },
        "required": [
          "count",
          "failed"
        ],
        "description": "",
        "x-tags": [
          "Models"
        ]
      },
      "ProductReBuilderPendingCountResponse": {
        "title": "ProductReBuilderPendingCountResponse",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "variantCount": {
            "type": "integer"
          },
          "variantFailedCount": {
            "type": "integer"
          },
          "parentCount": {
            "type": "integer"
          },
          "parentFailedCount": {
            "type": "integer"
          }
        }
      },
      "ListingReBuilderPendingCountResponse": {
        "title": "ListingReBuilderPendingCountResponse",
        "type": "object",
        "properties": {
          "variantCount": {
            "type": "integer"
          },
          "variantFailedCount": {
            "type": "integer"
          },
          "parentCount": {
            "type": "integer"
          },
          "parentFailedCount": {
            "type": "integer"
          }
        },
        "x-tags": [
          "Models"
        ]
      },
      "PurchaseOrderItemBundleComponent": {
        "title": "PurchaseOrderItemBundleComponent",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "purchaseOrderItemId": {
            "type": "integer"
          },
          "orderItemBundleComponentId": {
            "type": "integer"
          }
        },
        "required": [
          "purchaseOrderItemId",
          "orderItemBundleComponentId"
        ]
      },
      "FulfillmentRequestItemBundleComponent": {
        "title": "FulfillmentRequestItemBundleComponent",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "fulfillmentRequestItemId": {
            "type": "integer"
          },
          "orderItemBundleComponentId": {
            "type": "integer"
          }
        },
        "required": [
          "fulfillmentRequestItemId",
          "orderItemBundleComponentId"
        ]
      },
      "ShippingCarrier": {
        "title": "ShippingCarrier",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "id": {
            "type": "integer"
          },
          "name": {
            "type": "string"
          },
          "handle": {
            "type": "string"
          },
          "shipEngineSupported": {
            "type": "boolean"
          }
        }
      },
      "ShippingCarrierMethod": {
        "title": "ShippingCarrierMethod",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "id": {
            "type": "integer"
          },
          "shippingCarrier": {
            "$ref": "#/components/schemas/ShippingCarrier"
          },
          "name": {
            "type": "string"
          },
          "handle": {
            "type": "string"
          }
        }
      },
      "CommittedStock": {
        "title": "CommittedStock",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "description": "",
        "properties": {
          "inventoryVariantId": {
            "type": "integer",
            "format": "int64"
          },
          "sourceId": {
            "type": "integer"
          },
          "purchaseOrderId": {
            "type": "integer"
          },
          "purchaseOrderItemId": {
            "type": "integer"
          },
          "quantity": {
            "type": "integer"
          },
          "purchaseOrderItemQuantity": {
            "type": "integer",
            "description": "this is set equal to purchase order item quantity. This is used to compare with purchase order item quantity and figure out any quantity change."
          },
          "committedAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "ReleaseCommittedStockRequest": {
        "title": "ReleaseCommittedStockRequest",
        "type": "object",
        "description": "Release committed stock for specific purchase order items.\n\nTo identify purchase order item, either purchase order item sku or purchase order item id must be provided \n\nif both values are provided `sku` takes priority.\n\nif neither are provided an error will be thrown.",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "onlyReleasePurchaseOrderItemIds": {
            "type": "array",
            "description": "List of purchase order item IDs to release",
            "items": {
              "type": "integer"
            }
          },
          "onlyReleasePurchaseOrderItemSkus": {
            "type": "array",
            "description": "List of purchase order item SKUs to release",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "ReleaseCommittedStockForFulfillmentRequest": {
        "title": "ReleaseCommittedStockForFulfillmentRequest",
        "type": "object",
        "description": "Release committed stock for specific fulfillment request items.\n\nTo identify fulfillment request item, either fulfillment request item sku or fulfillment request item id must be provided \n\nif both values are provided `sku` takes priority.\n\nif neither are provided an error will be thrown.",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "onlyReleaseFulfillmentRequestItemIds": {
            "type": "array",
            "description": "List of fulfillment request item IDs to release",
            "items": {
              "type": "integer"
            }
          },
          "onlyReleaseFulfillmentRequestItemSkus": {
            "type": "array",
            "description": "List of fulfillment request item SKUs to release",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "InventoryChangeType": {
        "title": "InventoryChangeType",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "description": "Used to track where a change to inventory originated from for auditing purposes.",
        "properties": {
          "name": {
            "type": "string",
            "enum": [
              "Get Source Products",
              "Get Inventory",
              "Stock Released",
              "Stock Received",
              "Flxpoint API - POST Request",
              "Flxpoint API - PUT Request",
              "Manual User Change",
              "Stock Committed",
              "Inventory Created/Updated Workflow Manual Resync"
            ]
          },
          "handle": {
            "type": "string",
            "enum": [
              "get_source_products",
              "get_inventory",
              "stock_released",
              "stock_received",
              "integrations_api_post",
              "integrations_api_put",
              "manual_user_change",
              "stock_committed",
              "inventory_created_updated_workflow"
            ]
          }
        }
      },
      "InventoryQuantityAdjustment": {
        "title": "InventoryQuantityAdjustment",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "inventoryVariantId": {
            "type": "integer",
            "format": "int64"
          },
          "quantity": {
            "type": "integer"
          },
          "incomingQuantity": {
            "type": "integer"
          },
          "committedQuantity": {
            "type": "integer"
          },
          "totalQuantity": {
            "type": "integer"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "totalQuantityLastChangedAt": {
            "type": "string",
            "format": "date-time",
            "x-diff-exclusion": true
          },
          "previous": {
            "$ref": "#/components/schemas/InventoryQuantityAdjustment"
          }
        },
        "required": [
          "inventoryVariantId"
        ]
      },
      "PurchaseOrderAcknowledgementRequest": {
        "title": "PurchaseOrderAcknowledgementRequest",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "x-examples": {
          "example-1": {
            "items": [
              {
                "sku": "string",
                "acknowledgedQuantity": 0,
                "cancelledQuantity": 0
              }
            ],
            "killOrFillType": "fill"
          }
        },
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PurchaseOrderItemAcknowledgement"
            }
          },
          "killOrFillType": {
            "type": "string",
            "description": "`killOrFillType` can be either `fill` Or `kill`. By default it will be `fill`. \n\n- `fill` : This will unallocate the quantities from the order item level so that another PO can be generated for alternative fulfillment.\n\n- `kill` : This will cancel the quantities at the order item level indicating no further fulfillment should occur.",
            "default": "fill",
            "enum": [
              "fill",
              "kill"
            ]
          },
          "cancelUnacknowledgedItemQuantity": {
            "type": "boolean",
            "description": "Indicate whether or not remaining unacknowledged quantity should be canceled. Passing a `null` value here will use the existing saved setting for the source to determine how this should be handled."
          }
        }
      },
      "FulfillmentRequestAdjustment": {
        "title": "FulfillmentRequestAdjustment",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "x-examples": {
          "example-1": {
            "items": [
              {
                "sku": "string",
                "acknowledgedQuantity": 0,
                "cancelledQuantity": 0
              }
            ],
            "killOrFillType": "fill"
          }
        },
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FulfillmentRequestItemAdjustment"
            }
          },
          "killOrFillType": {
            "type": "string",
            "description": "`killOrFillType` can be either `fill` Or `kill`. By default it will be `fill`. \n\n- `fill` : This will unallocate the quantities from the order item level so that another PO can be generated for alternative fulfillment.\n\n- `kill` : This will cancel the quantities at the order item level indicating no further fulfillment should occur.",
            "default": "fill",
            "enum": [
              "fill",
              "kill"
            ]
          },
          "cancelUnacknowledgedItemQuantity": {
            "type": "boolean",
            "description": "Indicate whether or not remaining unacknowledged quantity should be canceled. Passing a `null` value here will use the existing saved setting for the source to determine how this should be handled."
          }
        }
      },
      "PurchaseOrderItemAcknowledgement": {
        "title": "PurchaseOrderItemAcknowledgementRequest",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "sku": {
            "type": "string",
            "description": "The SKU of the item to adjust. This field is required if the ID is not specified and other item fields are passed. ID will be prioritized over SKU if both are included."
          },
          "acknowledgedQuantity": {
            "type": "integer"
          },
          "secondaryAcknowledgedQuantity": {
            "type": "integer",
            "description": "When providing secondary acknowledgements if this value is greater than the acknowledged quantity the acknowledged quantity will automatically be adjusted to match up to the secondary acknowledged quantity"
          },
          "cancelledQuantity": {
            "type": "integer"
          },
          "id": {
            "type": "integer",
            "x-stoplight": {
              "id": "hfdndvztfzghw"
            },
            "description": "The ID of the item to adjust. This field is required when there are duplicate SKUs present in the fulfillment, or if the SKU is not specified and other item fields are passed. ID will be prioritized over SKU if both are included."
          }
        }
      },
      "FulfillmentRequestItemAdjustment": {
        "title": "FulfillmentRequestItemAdjustment",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "sku": {
            "type": "string",
            "description": "The SKU of the item to adjust. This field is required if the ID is not specified and other item fields are passed. ID will be prioritized over SKU if both are included."
          },
          "acknowledgedQuantity": {
            "type": "integer"
          },
          "secondaryAcknowledgedQuantity": {
            "type": "integer",
            "description": "When providing secondary acknowledgements if this value is greater than the acknowledged quantity the acknowledged quantity will automatically be adjusted to match up to the secondary acknowledged quantity"
          },
          "cancelledQuantity": {
            "type": "integer"
          },
          "id": {
            "type": "integer",
            "x-stoplight": {
              "id": "9dlvf5280y52o"
            },
            "description": "The ID of the item to adjust. This field is required when there are duplicate SKUs present in the fulfillment, or if the SKU is not specified and other item fields are passed. ID will be prioritized over SKU if both are included."
          }
        }
      },
      "UpdateOrderItemRequest": {
        "title": "UpdateOrderItemRequest",
        "type": "object",
        "properties": {
          "id": {
            "type": "integer"
          },
          "externalAccountingId": {
            "type": "string",
            "nullable": true
          },
          "canceledQuantity": {
            "type": "integer",
            "default": 0
          },
          "returnedQuantity": {
            "type": "integer",
            "default": 0
          }
        },
        "required": [
          "id"
        ],
        "x-tags": [
          "Models"
        ]
      },
      "UpdateOrderItemShipByDateRequest": {
        "title": "UpdateOrderItemShipByDateRequest",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "shipByDate": {
            "type": "string",
            "format": "date",
            "nullable": true,
            "description": "The date by which this line item must be shipped. Pass null to clear the date."
          }
        }
      },
      "UpdateReturnItemRequest": {
        "title": "UpdateReturnItemRequest",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "description": "Update return item request",
        "properties": {
          "id": {
            "type": "integer"
          },
          "refundedAmount": {
            "type": "number"
          }
        },
        "required": [
          "id"
        ]
      },
      "DeleteListingResponse": {
        "title": "DeleteListingResponse",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "numberOfListingVariantsDeleted": {
            "type": "integer",
            "default": 0
          },
          "numberOfListingParentsDeleted": {
            "type": "integer",
            "default": 0
          },
          "numberOfVariantsThatWereLinked": {
            "type": "integer",
            "default": 0
          }
        }
      },
      "CreateOrderItemRequest": {
        "title": "CreateOrderItemRequest",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "description": "Order Item information used during the creation of a new Order.\n\nWe allow you to \"associate\" an Order Item to a Listing Variant by using the following identifiers (in this order) : \n- Listing Variant ID -> External Listing ID -> SKU\n\nIf no matching identifiers are found, the item will be flagged as \"unmanaged\".\n\n\n**ORDER ITEM SHIPPING ADDRESS** feature flag must be enabled for `shippingAddress` functionality at this time.",
        "properties": {
          "price": {
            "type": "number"
          },
          "discount": {
            "type": "number",
            "description": "Line-item discount as a monetary amount subtracted from the line total (price * quantity), in the order's currency."
          },
          "quantity": {
            "type": "integer"
          },
          "productVariantId": {
            "type": "integer"
          },
          "listingVariantId": {
            "type": "integer"
          },
          "shippingAddress": {
            "$ref": "#/components/schemas/CreateAddressRequest",
            "x-stoplight": {
              "id": "j5q0252s9qfnd"
            }
          }
        },
        "required": [
          "quantity"
        ]
      },
      "CreateSourceInvoice": {
        "title": "CreateSourceInvoice",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "description": "Model to create a new Source Invoice",
        "properties": {
          "purchaseOrderId": {
            "type": "integer",
            "description": "either `purchaseOrderId` OR `rmaId` should be provided"
          },
          "rmaId": {
            "type": "integer",
            "description": "either `purchaseOrderId` OR `rmaId` should be provided"
          },
          "invoiceNumber": {
            "type": "string",
            "description": "A reference number for this invoice. If one is not provided, we will default to using the Purchase Order Number/Fulfillment Request Number for Purchase Order/Fulfillment Request invoices, or RMA Number for RMA invoices."
          },
          "invoiceStatus": {
            "type": "string",
            "enum": [
              "unpaid",
              "paid",
              "credited",
              "refunded"
            ],
            "description": "For Purchase Order/Fulfillment Request invoices, the default value is `paid`. For RMA invoices, the default value is `credited`. "
          },
          "invoiceDate": {
            "type": "string",
            "format": "date-time",
            "description": "If invoice date is not provided, we will default to the current timestamp at submission. "
          },
          "invoiceItems": {
            "type": "array",
            "description": "For Purchase Order/Fulfillment Request invoices, at least one item is required. Items will be ignored (will not be saved) for RMA invoices.",
            "items": {
              "$ref": "#/components/schemas/CreateSourceInvoiceItem"
            }
          },
          "totalCreditCost": {
            "type": "number",
            "description": "Used for RMA invoices only."
          },
          "customFields": {
            "type": "array",
            "x-stoplight": {
              "id": "9pk8wo8dnm0up"
            },
            "description": "For Purchase Order/Fulfillment Request invoices, any Custom Field with an empty name or value will be ignored (won't be saved). Also, each Custom Field should have a unique name; duplicates will also be ignored.\n\nAll Custom Fields will be ignored for RMA invoices.",
            "items": {
              "$ref": "#/components/schemas/CreateSourceInvoiceCustomField"
            }
          },
          "commissionRate": {
            "type": "number",
            "x-stoplight": {
              "id": "aqya0qd24lm4c"
            },
            "description": "The percentage rate defined at the vendor setting level that was used to calculate the commission",
            "deprecated": true
          },
          "shipmentId": {
            "type": "integer",
            "description": "For Invoice workflow, to apply shipment based conditions if applicable."
          }
        }
      },
      "CreateSourceInvoiceItem": {
        "title": "CreateSourceInvoiceItem",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "description": "Each source invoice item requires 2-3 elements, but you have several options on how to populate this info. See below : \n- `invoiceItemType`\n- A `cost` or `perUnitCost`\n- (for `product` type:) A `sku` or valid `inventoryVariantId`",
        "properties": {
          "invoiceItemType": {
            "type": "string",
            "enum": [
              "product",
              "shipping",
              "fee",
              "tax",
              "other"
            ]
          },
          "title": {
            "type": "string",
            "description": "Line item description of this invoice item. i.e. `2-5 day shipping` or `6.5% Sales Tax`\n\nIf no value is provided:\n - in case a matching inventory item is found, `title` will be copied over from it\n - else `title` will be set to the `sku` for a `product` type item"
          },
          "sku": {
            "type": "string",
            "description": "Required for `product` types (or valid `inventoryVariantId`). Optional for other types. \n\nIf a matching Inventory Variant is found, we will populate any null fields. Required for `product` types (or valid `inventoryVariantId`). Optional for other types. \n\nIf a matching Inventory Variant is found, we will populate any null fields. "
          },
          "inventoryVariantId": {
            "type": "integer",
            "format": "int64",
            "description": "If passed, we will attempt to associate an Inventory Variant. If not passed or not match, we will divert to `sku` to attempt to find a match. \n\nIf a matching Inventory Variant is found, we will populate any null fields. If passed, we will attempt to associate an Inventory Variant. If not passed or not match, we will divert to `sku` to attempt to find a match. \n\nIf a matching Inventory Variant is found, we will populate any null fields. "
          },
          "quantity": {
            "type": "integer",
            "default": 1
          },
          "perUnitCost": {
            "type": "number",
            "description": "If passed, this value will be multiplied by `quantity` to derive the cost of this line item."
          },
          "cost": {
            "type": "number",
            "description": "If `perUnitCost` is passed, this will be overwritten by `quantity` * `perUnitCost`"
          },
          "customFields": {
            "type": "array",
            "x-stoplight": {
              "id": "v14im7e8r6kgk"
            },
            "description": "For Purchase Order/Fulfillment Request invoices, any Custom Field with an empty name or value will be ignored (won't be saved). Also, each Custom Field should have a unique name; duplicates will also be ignored.\n\nAll Custom Fields will be ignored for RMA invoices.",
            "items": {
              "$ref": "#/components/schemas/CreateSourceInvoiceItemCustomField"
            }
          }
        },
        "required": [
          "invoiceItemType"
        ]
      },
      "GetWorkflowRequest": {
        "title": "GetWorkflowRequest",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "eventHandle": {
            "type": "string",
            "description": "The handle of the event this workflow will be run against. Important as this dictates what `GlobalObjects` & `GlobalObjectFields` are allowed to be saved to the workflow."
          },
          "id": {
            "type": "integer",
            "description": "Only required if you are managing the ID externally. Otherwise the workflow can be resolved using the `eventHandle` + `params`."
          },
          "draft": {
            "type": "boolean",
            "default": false,
            "description": "If you want to get a copy of the draft workflow set this to `true`."
          },
          "params": {
            "type": "array",
            "description": "[Optional] A set of key/value pairs that are used to uniquely identify a workflow. Used so that you do not have to store the generated workflow IDs your self and can instead use existing IDs (ie values) with a key to get the workflow again.",
            "items": {
              "$ref": "#/components/schemas/GetWorkflowRequestParam"
            }
          },
          "createIfNotExists": {
            "type": "boolean",
            "default": true,
            "description": "When a workflow cannot be found, should an empty one automatically be created and returned?"
          }
        }
      },
      "GetWorkflowRequestParam": {
        "title": "GetWorkflowRequestParam",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "key": {
            "type": "string",
            "maxLength": 120
          },
          "value": {
            "type": "integer"
          }
        },
        "required": [
          "key",
          "value"
        ]
      },
      "GetWorkflowMetaDataResponse": {
        "title": "GetWorkflowMetaDataResponse",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "dataTypes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/GlobalDataType"
            }
          },
          "comparators": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/WorkflowDataTypeComparator"
            }
          },
          "actions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/WorkflowDataTypeAction"
            }
          },
          "ruleTypes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/WorkflowRuleType"
            }
          }
        }
      },
      "RunTestWorkflowRequest": {
        "title": "RunTestWorkflowRequest",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "rules": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/WorkflowRule"
            }
          },
          "objects": {
            "type": "object",
            "description": "A Map of object handles to their values. Modifications will be applied directly to these and returned in the response."
          },
          "inheritedGlobalDataType": {
            "$ref": "#/components/schemas/GlobalDataType"
          }
        },
        "description": "Used to run a any arbitrary workflow against a set of objects. Providing `inheritedGlobalDataType` is only necessary when running mapping rules."
      },
      "RunTestWorkflowResponse": {
        "title": "RunTestWorkflowResponse",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "objects": {
            "type": "object",
            "description": "A Map of object handles to their values. Modifications will be applied directly to these and returned in the response."
          },
          "ruleExplanations": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TestWorkflowRuleExplanation"
            }
          }
        },
        "description": "The response of running a ad-hoc workflow through the test endpoint."
      },
      "TestWorkflowRuleExplanation": {
        "title": "TestWorkflowRuleExplanation",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "rule": {
            "$ref": "#/components/schemas/WorkflowRule"
          },
          "conditions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TestWorkflowConditionExplanation"
            }
          },
          "actions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TestWorkflowActionExplanation"
            }
          }
        },
        "description": "The response of running a ad-hoc workflow through the test endpoint."
      },
      "TestWorkflowConditionExplanation": {
        "title": "TestWorkflowConditionExplanation",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "condition": {
            "$ref": "#/components/schemas/WorkflowRuleGroupCondition"
          },
          "truthy": {
            "type": "boolean"
          },
          "ran": {
            "type": "boolean"
          },
          "explanation": {
            "type": "string"
          },
          "groupId": {
            "type": "string"
          }
        }
      },
      "TestWorkflowActionExplanation": {
        "title": "TestWorkflowActionExplanation",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "action": {
            "$ref": "#/components/schemas/WorkflowRuleAction"
          },
          "explanation": {
            "type": "string"
          },
          "initialValue": {
            "type": "string"
          },
          "newValue": {
            "type": "string"
          }
        }
      },
      "Vendor": {
        "title": "Vendor",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "description": "A `Vendor` represents a fulfillment partner you interact with. \n\nA `Vendor` can have multiple `Source`s associated to it. One way to think of \"Vendors\" and \"Sources\" is a Vendor with multiple fulfillment centers (i.e. East & West Warehouses are 2 Sources associated to a single Vendor). \n\nVendors can have a \"Vendor Portal\" enabled to allow the Vendor to perform manual interactions (like updating inventory or shipping POs sent to them). \n\nFor more information, visit our documentation : https://docs.flxpoint.com/flxpoint/vendor-management",
        "properties": {
          "id": {
            "type": "integer",
            "description": "The ID of the Vendor"
          },
          "createdByUserId": {
            "type": "integer",
            "description": "When a Vendor is created in-app, a `User` ID is tracked."
          },
          "createdAt": {
            "type": "string",
            "format": "date-time",
            "description": "Timestamp of when the Vendor was created. "
          },
          "deletedAt": {
            "type": "string",
            "format": "date-time",
            "description": "Timestamp of when the Vendor was deleted/archived. "
          },
          "name": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "portalEnabled": {
            "type": "boolean",
            "description": "This flag determines if the Vendor can access a Vendor Portal to manually interact with Inventory/PO flows. \n\nIf this flag is `true` - there is still a requirement to ensure you have a portal configured. \n\nTo configure a Vendor Portal, you have to setup a subdomain such as : `example.vendors.flxpoint.com`\n\nYou can either do this via the UI (feature launching in late 2021) or via a ticket to our Support Team. "
          }
        }
      },
      "UpdateVendorPayout": {
        "title": "UpdateVendorPayout",
        "x-stoplight": {
          "id": "mrrxnnx66v1x3"
        },
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "notes": {
            "type": "string",
            "x-stoplight": {
              "id": "knzwdgufzacsp"
            }
          },
          "status": {
            "type": "string",
            "x-stoplight": {
              "id": "nntwnhiuvup27"
            },
            "enum": [
              "paid",
              "unpaid"
            ]
          },
          "createdAt": {
            "type": "string",
            "x-stoplight": {
              "id": "31s5ltf654qql"
            },
            "format": "date-time"
          },
          "invoiceIds": {
            "type": "array",
            "x-stoplight": {
              "id": "zp3rgobbd6whh"
            },
            "items": {
              "x-stoplight": {
                "id": "9b4u1rltc7xgi"
              },
              "type": "integer"
            }
          },
          "payoutAssets": {
            "type": "array",
            "x-stoplight": {
              "id": "fiwp3nngmghpr"
            }
          }
        }
      },
      "RoutingGroup": {
        "title": "RoutingGroup",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "description": "A Routing Group is a collection of sources and priorities and determines how to route an Order to appropriate Sources. Sources can be enabled or disabled (omitted also counts as disabled) to narrow the scope of an Order routing solution (i.e. West coast Orders route to West Coast Sources). \n\nTo learn more about Routing Groups, visit our documentation :  https://docs.flxpoint.com/flxpoint/routing-groups",
        "properties": {
          "id": {
            "type": "integer",
            "description": "The `RoutingGroup` ID"
          },
          "name": {
            "type": "string",
            "description": "The name of the Routing Group"
          },
          "solutionWorkflowEventId": {
            "type": "integer",
            "description": "This is the ID for the optional workflow that runs after a Routing Group derives a solution. \n\nThis workflow is often used to handle \"if split order\" situations and revert to more stringent Routing Groups as a result. "
          },
          "sources": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RoutingGroupSource"
            }
          },
          "rules": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RoutingRule"
            }
          },
          "setting": {
            "$ref": "#/components/schemas/RoutingSetting"
          }
        }
      },
      "RoutingGroupSource": {
        "title": "RoutingGroupSource",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "description": "A `RoutingGroup` has a list of Sources that are \"eligible fulfillment centers\". (i.e. \"US East Routing Group\" might have East sources enabled, West sources disabled).\n\nEach of those Sources is considered a `RoutingGroupSource`. \n\nWhen a new Source is added to the Account, by default it is not eligible within your already-existing Routing Groups. You must explicitly add a `RoutingGroupSource` to the `RoutingGroup`.",
        "properties": {
          "id": {
            "type": "integer",
            "description": "The `RoutingGroupSource` ID"
          },
          "routingGroupId": {
            "type": "integer",
            "description": "The `RoutingGroup` ID"
          },
          "sourceId": {
            "type": "integer",
            "description": "The `Source` ID"
          },
          "eligible": {
            "type": "boolean",
            "description": "If this is set to `true` the Source will be eligible for receiving POs/FRs (meaning that source will be considered during the Order Routing process)\n\nIf this is set to `false` OR a Source does not have an `RoutingGroupSource` entry for this routing group - the source will not be eligible for receiving POs/FRs. "
          },
          "priority": {
            "type": "integer",
            "description": "When using the `Preferred Sources` `RoutingPriority` - this determines the \"most preferred\" Source. \n\n`1` is the **most** important / preferred\n\n`999` is the **least** important / preferred",
            "default": 999
          },
          "shippingAddressId": {
            "type": "integer",
            "description": "(Optional) This allows you to overwrite the Shipping Address for any POs/FRs that are routing through this `RoutingGroupSource`. \n\nScenario : Perhaps an Order needs to be routed through your warehouse before it reaches the customer. You can create a `RoutingGroup` dedicated to this and use this `shippingAddressId` on all `RoutingGroupSource` entries to ship the Order to your warehouse first. "
          },
          "suppressTracking": {
            "type": "boolean",
            "description": "If you are leveraging the `shippingAddressId`, this flag will set the `PurchaseOrder` flag `suppressTracking` to true when it's generated through this `RoutingGroupSource`. \n\nThis will ensure that any `Shipment`s that are added will not be synced back to the Channel. \n\nThe primary use case behind this is in conjunction with the `shippingAddressId` override : \"don't send a tracking # to the end customer when it's for my warehouse\""
          },
          "source": {
            "$ref": "#/components/schemas/Source"
          },
          "shippingAddress": {
            "$ref": "#/components/schemas/Address"
          }
        }
      },
      "PutRoutingGroupSource": {
        "title": "PutRoutingGroupSource",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "description": "",
        "properties": {
          "sourceId": {
            "type": "integer",
            "description": "The `Source` ID for this `RoutingGroupSource`"
          },
          "eligible": {
            "type": "boolean",
            "default": true,
            "description": "If this is set to `true` the Source will be eligible for receiving POs/FRs (meaning that source will be considered during the Order Routing process)\n\nIf this is set to `false` OR a Source does not have an RoutingGroupSource entry for this routing group - the source will not be eligible for receiving POs/FRs.\n\nDefault `true`. "
          },
          "priority": {
            "type": "integer",
            "default": 999,
            "description": "When using the `Preferred Sources` `RoutingPriority` - this determines the \"most preferred\" Source. \n\n`1` is the **most** important / preferred\n\n`999` is the **least** important / preferred"
          },
          "shippingAddressId": {
            "type": "integer",
            "description": "(Optional) This allows you to overwrite the Shipping Address for any POs/FRs that are routing through this RoutingGroupSource.\n\nScenario : Perhaps an Order needs to be routed through your warehouse before it reaches the customer. You can create a RoutingGroup dedicated to this and use this shippingAddressId on all RoutingGroupSource entries to ship the Order to your warehouse first."
          },
          "suppressTracking": {
            "type": "boolean",
            "description": "If you are leveraging the shippingAddressId, this flag will set the PurchaseOrder flag suppressTracking to true when it's generated through this RoutingGroupSource.\n\nThis will ensure that any Shipments that are added will not be synced back to the Channel.\n\nThe primary use case behind this is in conjunction with the shippingAddressId override : \"don't send a tracking # to the end customer when it's for my warehouse\"",
            "default": false
          }
        }
      },
      "ListingVariantScheduledToDeleteCountResponse": {
        "title": "ListingVariantScheduledToDeleteCountResponse",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "count": {
            "type": "integer"
          }
        },
        "required": [
          "count"
        ]
      },
      "DeleteProductResponse": {
        "title": "DeleteProductResponse",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "numberOfProductVariantsDeleted": {
            "type": "integer",
            "default": 0
          },
          "numberOfProductParentsDeleted": {
            "type": "integer",
            "default": 0
          }
        }
      },
      "ProductVariantSearchRequest": {
        "title": "ProductVariantSearchRequest",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "filterNeedsDeleting": {
            "type": "boolean",
            "description": "fetch variants that are marked for deletion"
          },
          "filterProductVariantIds": {
            "type": "array",
            "minItems": 0,
            "maxItems": 100,
            "uniqueItems": true,
            "description": "filter by list of product variant id",
            "items": {
              "type": "integer"
            }
          },
          "includeInventoryLinks": {
            "type": "boolean",
            "default": false,
            "description": "Use this to include `ProductVariantInventoryLink` associated with the product variant. </br> By default they are not included."
          },
          "includeBundleComponents": {
            "type": "boolean",
            "default": false,
            "description": "Use this to include `ProductBundleComponents` associated with the product variant. </br> By default they are not included."
          }
        }
      },
      "ProductVariantCountResponse": {
        "title": "ProductVariantCountResponse",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "count": {
            "type": "integer",
            "default": 0
          }
        }
      },
      "InventoryVariantCustomField": {
        "title": "InventoryVariantCustomField",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "description": "Variant-level custom fields",
        "allOf": [
          {
            "$ref": "#/components/schemas/CustomField"
          }
        ],
        "properties": {
          "inventoryVariantId": {
            "type": "integer",
            "format": "int64",
            "x-diff-exclusion": true
          }
        }
      },
      "InventoryVariantCustomFieldCreateOrUpdate": {
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "description": "Variant-level custom fields",
        "properties": {
          "name": {
            "type": "string"
          },
          "value": {
            "type": "string"
          }
        }
      },
      "Setting": {
        "title": "Setting",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "id": {
            "type": "integer",
            "description": "the `Setting` ID"
          },
          "name": {
            "type": "string",
            "description": "A friendly name or title for the Setting"
          },
          "handle": {
            "type": "string",
            "description": "The `handle` represents a quick human-readable version of the `id` to understand what a setting relates to. \n\nSome example handles can be found below. To retrieve a complete list of setting handles, retrieve back a list of Settings and leverage the retrieved handles. \n\n- `source.send_po_from_vendor_portal`\n- `source.cancel_unacknowledged_items`\n- `source.upload_inventory_from_vendor_portal`\n- `source.upload_shipment_from_vendor_portal`\n- `source.upload_invoice_from_vendor_portal`"
          },
          "type": {
            "type": "string",
            "description": "The type of setting. This determines how you may present the selection or setting to a user. \n\n- `string` = a short text input\n- `text` = a long text input\n- `number` = a numeric input\n- `img` = an image link input\n- `email` = a valid email address input\n- `boolean` = a true/false toggle choice\n- `select` = some form of selection, select settings means the `options` field must be populated with possible selections",
            "enum": [
              "img",
              "boolean",
              "time_interval_threshold",
              "email",
              "string",
              "text",
              "select",
              "number",
              "radio",
              "multi",
              "json"
            ]
          },
          "valueType": {
            "type": "string",
            "description": "The type of value the setting is expecting. \n\n- `integer` = a whole number value\n- `decimal` = a decimal number value\n- `string` = a short text value\n- `boolean` = a true/false value",
            "enum": [
              "integer",
              "boolean",
              "time_interval_threshold",
              "string",
              "select",
              "email",
              "decimal",
              "number",
              "multi",
              "json"
            ]
          },
          "placeholder": {
            "type": "string",
            "description": "An optional \"placeholder\" that will be used for text or numeric based inputs. Note : a placeholder is different than \"defaultValue\". Placeholders simply suggest a value.\n\nOften times placeholders might be used to suggest a value on an input that we cannot default for other reasons. "
          },
          "defaultValue": {
            "type": "string",
            "description": "The `defaultValue` represents our recommended selection for a given Setting. \n\nFor example, the \"Protect Against Duplicate Orders\" setting has a `defaultValue : true` to promote all new users to leverage this functionality by default. "
          },
          "description": {
            "type": "string",
            "description": "Description of the setting - this will appear below the setting name in the UI when a user is configuring it. "
          },
          "options": {
            "type": "string",
            "description": "A field expecting a `JSON Array` in the format : `[{ \"[value]\" : \"[descriptor]\"}]` where : \n- `[value]` = the value of the selection that will be stored in the `value` field when saved\n- `[descriptor]` = a way to describe the selection to users so they know what they are choosing. \n\nAn example for this is : \n- `payment_provider` setting\n- `options` : `{\"1\" :\"Stripe\" ,\"2\" : \"Square\"}`\n\n`Stripe` and `Square` appear in a dropdown. When a user chooses `Stripe` we store `1` in the `value` field. "
          },
          "parentSettingId": {
            "type": "integer",
            "description": "If the setting is associated to another setting, this field may be populated. \n\nFor example, you may choose to `Override PO Cancellations` notifications to go to a separate email address. To do this you may configure the `notification.purchase_order_canceled.override_email` setting. This override setting has a `parentSettingId` to the standard email notification `notification.purchase_order_canceled`\n\nThis field is primarily used for UI purposes to nest additional settings below a parent setting."
          },
          "category": {
            "$ref": "#/components/schemas/SettingCategory"
          }
        },
        "required": [
          "name",
          "handle",
          "type",
          "valueType"
        ]
      },
      "DeleteInventoryResponse": {
        "title": "DeleteInventoryResponse",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "numberOfInventoryVariantsDeleted": {
            "type": "integer",
            "default": 0
          },
          "numberOfInventoryParentsDeleted": {
            "type": "integer",
            "default": 0
          }
        }
      },
      "ListingVariantCustomField": {
        "title": "ListingVariantCustomField",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "description": "Variant-level custom fields\n",
        "allOf": [
          {
            "$ref": "#/components/schemas/CustomField"
          }
        ],
        "properties": {
          "listingVariantId": {
            "type": "integer"
          }
        }
      },
      "ChannelSetting": {
        "title": "ChannelSetting",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "description": "This model represents a setting \"value\" that has been configured for a Channel.",
        "properties": {
          "id": {
            "type": "integer",
            "description": "The `ChannelSetting` ID"
          },
          "setting": {
            "$ref": "#/components/schemas/Setting"
          },
          "channelId": {
            "type": "integer",
            "description": "Id of channel this channel setting belong to."
          },
          "value": {
            "type": "string",
            "description": "The setting value that is configured"
          },
          "insertedAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "id",
          "setting",
          "value"
        ]
      },
      "PutChannelSetting": {
        "title": "PutChannelSetting",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "description": "Model to put a new or existing Channel Setting value in place.\n\nYou must specify either a `handle` or `settingId` to associate this setting. \n\nIf `settingId` is provided we will prioritize this value, otherwise defer to `handle` to locate a matching setting.",
        "properties": {
          "value": {
            "type": "string",
            "description": "The `value` of a `Setting`"
          },
          "handle": {
            "type": "string",
            "description": "The handle of a `Setting`"
          },
          "settingId": {
            "type": "integer",
            "description": "The `Setting` ID"
          }
        },
        "required": [
          "value"
        ]
      },
      "SourceSetting": {
        "title": "SourceSetting",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "description": "This model represents a setting \"value\" that has been configured for a Source.",
        "properties": {
          "id": {
            "type": "integer",
            "description": "The `SourceSetting` ID"
          },
          "setting": {
            "$ref": "#/components/schemas/Setting"
          },
          "sourceId": {
            "type": "integer",
            "description": "Id of channel this channel setting belong to."
          },
          "value": {
            "type": "string",
            "description": "The setting value that is configured"
          },
          "insertedAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "id",
          "setting",
          "value"
        ]
      },
      "PutSourceSetting": {
        "title": "PutSourceSetting",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "description": "Model to put a new or existing Source Setting value in place.\n\nYou must specify either a `handle` or `settingId` to associate this setting. \n\nIf `settingId` is provided we will prioritize this value, otherwise defer to `handle` to locate a matching setting.",
        "properties": {
          "value": {
            "type": "string",
            "description": "The `value` of a `Setting`"
          },
          "handle": {
            "type": "string",
            "description": "The handle of a `Setting`"
          },
          "settingId": {
            "type": "integer",
            "description": "The `Setting` ID"
          }
        },
        "required": [
          "value"
        ]
      },
      "UpdateSettingRequest": {
        "title": "VendorSetting",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "description": "This model represents a setting \"value\" that has been configured for a Vendor.",
        "properties": {
          "settingId": {
            "type": "integer",
            "description": "The setting id to create/update"
          },
          "value": {
            "type": "string",
            "description": "The setting value"
          }
        }
      },
      "VendorSetting": {
        "title": "VendorSetting",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "description": "This model represents a setting \"value\" that has been configured for a Vendor.",
        "properties": {
          "id": {
            "type": "integer",
            "description": "The `VendorSetting` ID"
          },
          "setting": {
            "$ref": "#/components/schemas/Setting"
          },
          "vendorId": {
            "type": "integer",
            "description": "Id of vendor this setting belongs to."
          },
          "value": {
            "type": "string",
            "description": "The setting value that is configured"
          },
          "insertedAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "id",
          "setting",
          "value"
        ]
      },
      "CreateOrderRequest": {
        "title": "CreateOrderRequest",
        "type": "object",
        "description": "Request to create a new Order.\n\n`paymentStatus` : default is `Paid`. \"Reseller API Tokens\" cannot use this field, Values will be overwritten.\n\nSee individual field descriptions for more information.",
        "x-tags": [
          "Models"
        ],
        "x-examples": {
          "full-example": {
            "channelId": 0,
            "orderNumber": "string",
            "referenceNumber": "string",
            "orderedAt": "2019-08-24T14:15:22Z",
            "note": "string",
            "paymentStatus": "Not Authorized",
            "shippingText": "n/a",
            "shippingPolicyId": 0,
            "shippingAddress": {
              "name": "Joe Smith",
              "firstName": "Joe",
              "lastName": "Smith",
              "addressLine1": "1000 1st Lane",
              "city": "Jacksonville",
              "postal": "12345",
              "addressLine2": "Suite 123",
              "state": "Florida",
              "country": "United States",
              "stateCode": "FL",
              "countryCode": "US",
              "email": "person@example.com",
              "phone": "1-555-123-4567",
              "companyName": "string"
            },
            "billingAddress": {
              "name": "Joe Smith",
              "firstName": "Joe",
              "lastName": "Smith",
              "addressLine1": "1000 1st Lane",
              "city": "Jacksonville",
              "postal": "12345",
              "addressLine2": "Suite 123",
              "state": "Florida",
              "country": "United States",
              "stateCode": "FL",
              "countryCode": "US",
              "email": "person@example.com",
              "phone": "1-555-123-4567",
              "companyName": "string"
            },
            "attributes": [
              {
                "key": "string",
                "value": "string"
              }
            ],
            "orderItems": [
              {
                "listingVariantId": 0,
                "externalListingId": "string",
                "sku": "string",
                "quantity": 1,
                "externalOrderItemId": "string",
                "attributes": [
                  {
                    "key": "string",
                    "value": "string"
                  }
                ],
                "price": 0,
                "title": "string",
                "weight": 0,
                "weightUnit": "lb",
                "length": 0,
                "width": 0,
                "height": 0,
                "dimensionUnit": "in",
                "upc": "string",
                "mpn": "string"
              }
            ],
            "piiRetentionPolicy": "30_days_after_shipment",
            "orderInvoice": {
              "invoiceNumber": "string",
              "invoicedAt": "2019-08-24T14:15:22Z",
              "total": 0,
              "subtotal": 0,
              "dropshipFeeTitle": "string",
              "dropshipFee": 0,
              "shippingTitle": "string",
              "shippingCost": 0,
              "taxTitle": "string",
              "taxCost": 0,
              "otherTitle": "string",
              "otherCost": 0,
              "discountTitle": "string",
              "discountTotal": 0
            },
            "orderFFL": {
              "licenseNumber": "string",
              "name": "string",
              "addressLine1": "120 1st Lane",
              "addressLine2": "Suite 123",
              "city": "Jacksonville",
              "state": "Florida",
              "postal": "12345",
              "phone": "1-555-123-4567",
              "imageUrl": "string",
              "expiresAt": "2019-08-24T14:15:22Z"
            },
            "orderType": "Online",
            "fulfillmentType": "Shipping"
          }
        },
        "properties": {
          "channelId": {
            "type": "integer",
            "description": "This field will automatically be populated if you are using a Channel or Reseller API Token. If you are using an Account API Token, this field is required."
          },
          "resellerId": {
            "type": "integer",
            "description": "This field will automatically be populated if you are using a Reseller API Token. If you are using an Account API Token or Channel API Token, set this if the order that is being created is for / from a reseller / dealer."
          },
          "orderNumber": {
            "type": "string",
            "description": "Unique Order ID from external system submitting Order."
          },
          "referenceNumber": {
            "type": "string",
            "description": "User friendly Order number being submitted, uniqueness not enforced."
          },
          "orderedAt": {
            "type": "string",
            "format": "date-time",
            "description": "Timestamp that represents when the Order was placed. If a timestamp is not provided, we will add the current time in during submission. "
          },
          "note": {
            "type": "string"
          },
          "paymentStatus": {
            "$ref": "#/components/schemas/PaymentStatus"
          },
          "shippingText": {
            "type": "string",
            "description": "Text that represents the shipping method selected for this Order. This is used to find a matching \"Shipping Policy\" and associate it to this Order. If \"shippingPolicyId\" is passed directly, it will be used instead of this. ",
            "example": "3-5 Business Days",
            "default": "n/a"
          },
          "shippingPolicyId": {
            "type": "integer",
            "description": "Unique ID of a Shipping Policy within your account. If \"shippingText\" is passed and has a matching Channel Shipping Mapping, this field will automatically be populated."
          },
          "shippingAddress": {
            "$ref": "#/components/schemas/CreateAddressRequest"
          },
          "billingAddress": {
            "$ref": "#/components/schemas/CreateAddressRequest"
          },
          "attributes": {
            "type": "array",
            "description": "Any attribute with an empty key or value will be ignored (won't be saved). Also, each attribute should have a unique key",
            "items": {
              "$ref": "#/components/schemas/KeyValuePair"
            }
          },
          "orderItems": {
            "type": "array",
            "minItems": 1,
            "uniqueItems": true,
            "items": {
              "$ref": "#/components/schemas/CreateOrderItem"
            }
          },
          "piiRetentionPolicy": {
            "type": "string",
            "enum": [
              "30_days_after_shipment",
              "60_days_after_shipment",
              "90_days_after_shipment",
              "none"
            ],
            "description": "Personal Identifiable Information (PII) retention policy. By specifying a PII retention policy, we will remove customer information from the Order once the retention period is over."
          },
          "orderInvoice": {
            "$ref": "#/components/schemas/CreateOrderInvoice"
          },
          "orderFFL": {
            "$ref": "#/components/schemas/CreateOrderFFL"
          },
          "orderType": {
            "$ref": "#/components/schemas/OrderType"
          },
          "fulfillmentType": {
            "$ref": "#/components/schemas/FulfillmentType"
          },
          "orderStatus": {
            "type": "string",
            "enum": [
              "Open",
              "Draft"
            ],
            "default": "Open"
          },
          "tags": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "orderNumber",
          "shippingAddress",
          "orderItems"
        ]
      },
      "CreateOrderItem": {
        "title": "CreateOrderItem",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "description": "Order Item information used during the creation of a new Order.\n\nWe allow you to \"associate\" an Order Item to a Listing Variant by using the following identifiers (in this order) : \n- Listing Variant ID -> External Listing ID -> SKU\n\nIf no matching identifiers are found, the item will be flagged as \"unmanaged\".\n\n**ORDER ITEM SHIPPING ADDRESS** feature flag must be enabled for `shippingAddress` functionality at this time.",
        "properties": {
          "listingVariantId": {
            "type": "integer",
            "description": "When \"listingVariantId\" is passed, we will search for a matching Listing Variant with this ID to associate. If no match is found, this field will be nulled out."
          },
          "externalListingId": {
            "type": "string",
            "description": "When \"externalListingId\" is passed, we will search for a matching Listing Variant with this external listing ID to associate (External Listing ID represents a unique ID retrieved and stored from an integrated Channel). If no match is found, this field will be nulled out."
          },
          "sku": {
            "type": "string",
            "description": "When \"sku\" is passed, we will search for a matching Listing Variant with this sku. If no listing variant is found, we will treat this item as \"unmanaged\". If \"sku\" is passed in conjunction with other identifiers, the other identifiers will take precedence to associate Listing Variant information. "
          },
          "quantity": {
            "type": "integer",
            "description": "The quantity ordered for this item",
            "minimum": 1,
            "multipleOf": 1
          },
          "canceledQuantity": {
            "type": "integer",
            "x-stoplight": {
              "id": "5s6itlzkw9f71"
            },
            "default": 0,
            "description": "The quantity canceled for this item that will be excluded from fulfillment. This will likely not be leveraged for order creation, but may be useful for order checkout."
          },
          "externalOrderItemId": {
            "type": "string",
            "description": "Unique Order Item ID from external system (not required). "
          },
          "attributes": {
            "type": "array",
            "description": "Custom key-value pairs can be passed for this specific order item. Any attribute with an empty key or value will be ignored (won't be saved). Also, each attribute should have a unique key.",
            "items": {
              "$ref": "#/components/schemas/KeyValuePair"
            }
          },
          "price": {
            "type": "number",
            "description": "If not provided, this field will be defaulted to \"List Price\" from the matching Listing Variant."
          },
          "discount": {
            "type": "number"
          },
          "title": {
            "type": "string",
            "description": "If not provided, this field will be defaulted to \"Title\" from the matching Listing Variant."
          },
          "weight": {
            "type": "number",
            "description": "If not provided, this field will be defaulted to \"Weight\" from the matching Listing Variant."
          },
          "weightUnit": {
            "type": "string",
            "enum": [
              "lb",
              "oz",
              "g",
              "kg"
            ],
            "description": "If not provided, this field will be defaulted to \"Weight Unit\" from the matching Listing Variant."
          },
          "length": {
            "type": "number",
            "description": "If not provided, this field will be defaulted to \"Length\" from the matching Listing Variant."
          },
          "width": {
            "type": "number",
            "description": "If not provided, this field will be defaulted to \"Width\" from the matching Listing Variant."
          },
          "height": {
            "type": "number",
            "description": "If not provided, this field will be defaulted to \"Height\" from the matching Listing Variant."
          },
          "dimensionUnit": {
            "type": "string",
            "enum": [
              "in",
              "cm"
            ],
            "description": "If not provided, this field will be defaulted to \"Dimension Unit\" from the matching Listing Variant."
          },
          "upc": {
            "type": "string",
            "description": "If not provided, this field will be defaulted to \"UPC\" from the matching Listing Variant."
          },
          "mpn": {
            "type": "string",
            "description": "If not provided, this field will be defaulted to \"MPN\" from the matching Listing Variant."
          },
          "notShippable": {
            "type": "boolean",
            "description": "use this to indicate whether the item is shippable or not."
          },
          "image": {
            "type": "string"
          },
          "productVariantId": {
            "type": "integer"
          },
          "shippingAddress": {
            "$ref": "#/components/schemas/CreateAddressRequest"
          },
          "shipByDate": {
            "type": "string",
            "format": "date",
            "description": "The date by which this line item must be shipped."
          }
        },
        "required": [
          "sku",
          "quantity"
        ]
      },
      "CreateOrderInvoice": {
        "title": "CreateOrderInvoice",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "description": "An \"Order Invoice\" represents a \"Receipt\" or B2B Invoice for Orders being submitted.\n\nIf fields like \"subtotal\" or \"total\" are provided in this model, we will use those as the \"final\" values. If these fields are not provided, we will calculate based on item details. \n\nIn addition, if an \"Invoicing Workflow\" runs - we may recalculate based on changed data. ",
        "properties": {
          "invoiceNumber": {
            "type": "string",
            "description": "If not provided, will be defaulted to Order Number."
          },
          "invoicedAt": {
            "type": "string",
            "format": "date-time"
          },
          "total": {
            "type": "number",
            "description": "If not provided, will be calculated based on subtotal, fees, and discounts."
          },
          "subtotal": {
            "type": "number",
            "description": "If not provided, will be calculated based on Order Item Sales Prices."
          },
          "dropshipFeeTitle": {
            "type": "string",
            "description": "An optional title / descriptor for the Dropship Fee field. "
          },
          "dropshipFee": {
            "type": "number"
          },
          "shippingTitle": {
            "type": "string",
            "description": "An optional title / descriptor for the Shipping Cost field. "
          },
          "shippingCost": {
            "type": "number"
          },
          "taxTitle": {
            "type": "string",
            "description": "An optional title / descriptor for the Tax Cost field."
          },
          "taxCost": {
            "type": "number",
            "description": "Represents the tax \"fee\" or \"cost\" of an Order. "
          },
          "otherTitle": {
            "type": "string",
            "description": "An optional title / descriptor for the Other Cost field."
          },
          "otherCost": {
            "type": "number",
            "description": "Represents a miscellaneous \"cost\" or \"fee\" for the Order. "
          },
          "discountTitle": {
            "type": "string",
            "description": "An optional title / descriptor for the Discount Total field. "
          },
          "discountTotal": {
            "type": "number",
            "description": "The total amount being discounted."
          }
        }
      },
      "UpdateTagsRequest": {
        "title": "UpdateTagsRequest",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "description": "Request to add and remove tags from an entity. Tags in `add` that do not exist yet are created. A tag name may not appear in both lists.",
        "properties": {
          "add": {
            "type": "array",
            "items": {
              "type": "string",
              "maxLength": 255
            }
          },
          "remove": {
            "type": "array",
            "items": {
              "type": "string",
              "maxLength": 255
            }
          }
        }
      },
      "SaveTagRequest": {
        "title": "SaveTagRequest",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "description": "Request to create or rename a tag.",
        "required": [
          "name"
        ],
        "properties": {
          "name": {
            "type": "string",
            "maxLength": 255
          }
        }
      },
      "UpdateOrderTagsRequest": {
        "title": "UpdateOrderTagsRequest",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "description": "Request to add and remove tags from an order.",
        "properties": {
          "add": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "remove": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "RmaUpdateRequest": {
        "title": "RmaUpdateRequest",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "description": "update order request",
        "properties": {
          "rmaStatus": {
            "$ref": "#/components/schemas/rmaStatus"
          },
          "rmaDestinationId": {
            "type": "integer"
          },
          "returnToAddress": {
            "$ref": "#/components/schemas/CreateAddressRequest"
          },
          "creditAdjustment": {
            "type": "number"
          },
          "syncCreditChangesToOrder": {
            "type": "boolean"
          },
          "accountingSynced": {
            "type": "boolean",
            "x-stoplight": {
              "id": "d04mefo1lrp8l"
            }
          },
          "accountingError": {
            "type": "string",
            "x-stoplight": {
              "id": "lx1cs1mw1qvf9"
            }
          }
        }
      },
      "OrderRoutingRuleType": {
        "title": "OrderRoutingRuleType",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "id": {
            "type": "integer"
          },
          "name": {
            "type": "string"
          },
          "handle": {
            "type": "string"
          },
          "optionalMarginAllowed": {
            "type": "boolean"
          },
          "description": {
            "type": "string"
          },
          "hasBreakOutCondition": {
            "type": "boolean"
          },
          "breakOutEnabledText": {
            "type": "string"
          },
          "breakOutDisabledText": {
            "type": "string"
          },
          "tooltip": {
            "type": "string"
          }
        }
      },
      "RoutingRule": {
        "title": "RoutingRule",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "id": {
            "type": "integer"
          },
          "orderRoutingGroupId": {
            "type": "integer"
          },
          "orderRoutingRuleType": {
            "$ref": "#/components/schemas/OrderRoutingRuleType"
          },
          "priority": {
            "type": "integer"
          },
          "fixedValue": {
            "type": "number"
          },
          "percentageValue": {
            "type": "number"
          },
          "enableBreakOut": {
            "type": "boolean"
          },
          "marginInMiles": {
            "type": "number"
          },
          "enabled": {
            "type": "boolean"
          }
        }
      },
      "RoutingSetting": {
        "title": "RoutingSetting",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "id": {
            "type": "integer"
          },
          "orderRoutingGroupId": {
            "type": "integer"
          },
          "orderCannotBeRoutedActionHandle": {
            "type": "string"
          },
          "orderCannotBeRoutedEmail": {
            "type": "string"
          },
          "orderRouteBasedOnLowerCost": {
            "type": "boolean"
          },
          "preferredSourceId": {
            "type": "integer"
          },
          "holdFirearmsOrders": {
            "type": "boolean"
          },
          "holdMultipleFrOrders": {
            "type": "boolean"
          }
        }
      },
      "AccountPurchaseOrderStrategy": {
        "title": "AccountPurchaseOrderStrategy",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "id": {
            "type": "integer"
          },
          "autoProcess": {
            "type": "boolean"
          },
          "purchaseOrderNumberStrategyId": {
            "type": "integer"
          },
          "passOrderCustomFieldsToPo": {
            "type": "boolean"
          },
          "passOrderItemCustomFieldsToPo": {
            "type": "boolean"
          },
          "packingSlipFormat": {
            "description": "Required when 'auto generate packing slip' source setting is enabled. Specifies the type of packing slip format being applied. Use 'basic', 'detailed'.",
            "type": "string",
            "enum": [
              "basic",
              "detailed"
            ]
          },
          "packingSlipOptions": {
            "type": "string"
          }
        }
      },
      "SourcePurchaseOrderStrategy": {
        "title": "SourcePurchaseOrderStrategy",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "id": {
            "type": "integer"
          },
          "sourceId": {
            "type": "integer"
          },
          "autoProcess": {
            "type": "boolean"
          },
          "maxPoNumberCharacters": {
            "type": "integer"
          },
          "overridePurchaseOrderNumberStrategyId": {
            "type": "integer"
          },
          "exceedOverridePurchaseOrderNumberStrategyId": {
            "type": "integer"
          },
          "passOrderCustomFieldsToPo": {
            "type": "boolean"
          },
          "passOrderItemCustomFieldsToPo": {
            "type": "boolean"
          },
          "autoGeneratePackingSlip": {
            "type": "boolean",
            "default": false,
            "description": "Always generate and attach packing slips to Fulfillment Requests created for this source\n"
          },
          "attachShippingLabels": {
            "type": "boolean",
            "x-stoplight": {
              "id": "fyrvyepzxf6i1"
            },
            "default": true,
            "description": "Always attach auto-purchased shipping labels to Fulfillment Requests created for this source"
          },
          "createShipmentFromShippingLabel": {
            "type": "boolean",
            "x-stoplight": {
              "id": "gndh2joa1r3pk"
            },
            "default": true,
            "description": "Automatically create a shipment after a shipping label is auto-purchased and the Fulfillment Request is processed or acknowledged. This setting does not apply to manually purchased shipping labels."
          },
          "useGlobalAndSourceWorkflowStrategy": {
            "type": "boolean"
          },
          "packingSlipFormat": {
            "description": "Specifies the default global packing slip format. Can be overridden by the 'Auto Generate Packing Slip' source setting at the source level. Accepted values: 'basic' or 'detailed'.",
            "type": "string",
            "enum": [
              "basic",
              "detailed"
            ]
          },
          "packingSlipOptions": {
            "type": "string"
          }
        }
      },
      "SaveSourcePurchaseOrderStrategyRequest": {
        "title": "SaveSourcePurchaseOrderStrategyRequest",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "autoProcess": {
            "type": "boolean"
          },
          "maxPoNumberCharacters": {
            "type": "integer"
          },
          "overridePurchaseOrderNumberStrategyId": {
            "type": "integer"
          },
          "exceedOverridePurchaseOrderNumberStrategyId": {
            "type": "integer"
          },
          "passOrderCustomFieldsToPo": {
            "type": "boolean"
          },
          "passOrderItemCustomFieldsToPo": {
            "type": "boolean"
          },
          "autoGeneratePackingSlip": {
            "type": "boolean",
            "default": false,
            "description": "Always generate and attach packing slips to Fulfillment Requests created for this source\n"
          },
          "attachShippingLabels": {
            "type": "boolean",
            "x-stoplight": {
              "id": "fyrvyepzxf6i1"
            },
            "default": true,
            "description": "Always attach auto-purchased shipping labels to Fulfillment Requests created for this source"
          },
          "createShipmentFromShippingLabel": {
            "type": "boolean",
            "x-stoplight": {
              "id": "gndh2joa1r3pk"
            },
            "default": true,
            "description": "Automatically create a shipment after a shipping label is auto-purchased and the Fulfillment Request is processed or acknowledged. This setting does not apply to manually purchased shipping labels."
          }
        }
      },
      "CreateOrderFFL": {
        "title": "CreateOrderFFL",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "description": "Federal Firearm License details",
        "properties": {
          "licenseNumber": {
            "type": "string",
            "description": "An FFL number is a unique identifying number assigned to every Federal Firearms License issued by the ATF"
          },
          "name": {
            "type": "string",
            "description": "Name of FFL holder"
          },
          "addressLine1": {
            "type": "string",
            "example": "120 1st Lane"
          },
          "addressLine2": {
            "type": "string",
            "example": "Suite 123"
          },
          "city": {
            "type": "string",
            "example": "Jacksonville"
          },
          "state": {
            "type": "string",
            "example": "Florida"
          },
          "postal": {
            "type": "string",
            "description": "Postal / Zip Code of address",
            "example": "12345"
          },
          "phone": {
            "type": "string",
            "example": "1-555-123-4567"
          },
          "imageUrl": {
            "type": "string",
            "description": "FFL Image"
          },
          "expiresAt": {
            "type": "string",
            "format": "date-time",
            "description": "time until the license is valid",
            "example": "2019-08-24T14:15:22Z"
          },
          "companyName": {
            "type": "string",
            "x-stoplight": {
              "id": "pauidmk9hqjnb"
            }
          }
        }
      },
      "OrderFFL": {
        "title": "OrderFFL",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "required": [
          "id",
          "licenseNumber",
          "addressLine1"
        ],
        "properties": {
          "id": {
            "type": "integer"
          },
          "orderId": {
            "type": "integer"
          },
          "crossDockPurchaseOrderId": {
            "type": "integer"
          },
          "licenseNumber": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "addressLine1": {
            "type": "string"
          },
          "addressLine2": {
            "type": "string"
          },
          "city": {
            "type": "string"
          },
          "state": {
            "type": "string"
          },
          "postal": {
            "type": "string"
          },
          "phone": {
            "type": "string"
          },
          "imageUrl": {
            "type": "string"
          },
          "expiresAt": {
            "type": "string",
            "format": "date-time"
          },
          "companyName": {
            "type": "string",
            "x-stoplight": {
              "id": "oevghi72zy2m5"
            }
          }
        }
      },
      "CustomField": {
        "title": "CustomField",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64",
            "x-diff-exclusion": true
          },
          "customFieldValueId": {
            "type": "integer",
            "x-diff-exclusion": true
          },
          "customFieldId": {
            "type": "integer",
            "x-diff-exclusion": true
          },
          "name": {
            "type": "string"
          },
          "value": {
            "type": "string"
          },
          "originalInventoryName": {
            "type": "string"
          },
          "originalInventoryValue": {
            "type": "string"
          },
          "mergeToCustomFieldId": {
            "type": "integer"
          },
          "mergeToCustomFieldName": {
            "type": "string"
          },
          "mergeToCustomFieldValueId": {
            "type": "integer"
          },
          "mergeToCustomFieldValue": {
            "type": "string"
          }
        },
        "required": [
          "name",
          "value"
        ]
      },
      "Attribute": {
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "description": "",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64",
            "x-diff-exclusion": true
          },
          "attributeId": {
            "type": "integer",
            "x-diff-exclusion": true
          },
          "attributeValueId": {
            "type": "integer",
            "x-diff-exclusion": true
          },
          "name": {
            "type": "string"
          },
          "originalInventoryName": {
            "type": "string",
            "x-diff-exclusion": true
          },
          "value": {
            "type": "string"
          },
          "originalInventoryValue": {
            "type": "string",
            "x-diff-exclusion": true
          },
          "isPrivate": {
            "type": "boolean",
            "x-diff-exclusion": true
          },
          "mergeToAttributeId": {
            "type": "integer",
            "x-diff-exclusion": true
          },
          "mergeToAttributeName": {
            "type": "string",
            "x-diff-exclusion": true
          },
          "mergeToAttributeValueId": {
            "type": "integer",
            "x-diff-exclusion": true
          },
          "mergeToAttributeValue": {
            "type": "string",
            "x-diff-exclusion": true
          },
          "mergeToAttributeIsPrivate": {
            "type": "boolean",
            "x-diff-exclusion": true
          }
        },
        "required": [
          "name",
          "value"
        ]
      },
      "ProductToListingBuilder": {
        "title": "ProductToListingBuilder",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "channelId": {
            "type": "integer"
          },
          "productToListingQueueId": {
            "type": "integer"
          }
        },
        "required": [
          "channelId",
          "productToListingQueueId"
        ]
      },
      "ReBuildResponse": {
        "title": "ReBuildResponse",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "success": {
            "type": "boolean"
          },
          "error": {
            "type": "string"
          }
        },
        "required": [
          "success"
        ],
        "x-examples": {
          "example-1": {
            "success": true
          },
          "example-2": {
            "success": false,
            "error": "Something happened"
          }
        }
      },
      "ListingVariantAcknowledgement": {
        "title": "ListingVariantAcknowledgement",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "listingVariantId": {
            "type": "integer"
          },
          "syncedAt": {
            "type": "string",
            "format": "date-time",
            "description": "Timestamp indicating when the listing was synced to the channel. Defaults to the current timestamp if not provided. This should typically be set to the timestamp you received the listing from the API for a sync at. By setting this value to the time you received the listing ensures that updates that occurred to the listing during the window you received the listing vs when you acknowledged it will not be lost. For example, you fetch a listing to sync at 12:00:00, and then acknowledge the listing at 12:00:30, but a quantity change happened to the listing at 12:00:15. If you were to pass a value of 12:00:30 (or none at all) here instead of 12:00:00 the update that occurred at 12:00:15 will not be able to accurately mark the listing as needing synced again."
          },
          "error": {
            "type": "string",
            "description": "If this field is `null`, we will assume a successful interaction. \n\nIf an interaction failed, please provide a reason by populating this field."
          },
          "overrideStatus": {
            "$ref": "#/components/schemas/ListingStatus"
          },
          "isLinkedToRegularProduct": {
            "type": "boolean",
            "x-stoplight": {
              "id": "vlobf89yfinyq"
            }
          }
        },
        "required": [
          "listingVariantId"
        ]
      },
      "ListingParentExportError": {
        "title": "ListingParentExportError",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "listingParentId": {
            "type": "integer"
          },
          "exportError": {
            "type": "string",
            "description": "If this field is `null`, we will assume a successful interaction. \n\nIf an interaction failed, please provide a reason by populating this field."
          },
          "variants": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ListingParentExportVariant"
            }
          }
        },
        "required": [
          "listingParentId",
          "variants"
        ]
      },
      "ListingParentExportVariant": {
        "title": "ListingParentExportVariant",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "listingVariantId": {
            "type": "integer"
          },
          "exportError": {
            "type": "string",
            "description": "If this field is `null`, we will assume a successful interaction. \n\nIf an interaction failed, please provide a reason by populating this field."
          }
        },
        "required": [
          "listingVariantId"
        ]
      },
      "ListingParentAcknowledgement": {
        "title": "ListingParentAcknowledgement",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "listingParentId": {
            "type": "integer"
          },
          "externalListingId": {
            "type": "string",
            "description": "(Optional) Must be Unique (per channel)! If you are responding to a `publish` operation (meaning, this is a brand new listing you've never seen), you can optionally pass an `externalListingId` which you can use to associate listings when Creating Orders.\n\nIf an `externalListingId` is NOT provided after a publish, we will use `sku` as the `externalListingId`."
          },
          "error": {
            "type": "string",
            "description": "If this field is `null`, we will assume a successful interaction. \n\nIf an interaction failed, please provide a reason by populating this field."
          },
          "variants": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ListingParentAcknowledgementVariant"
            }
          },
          "images": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ListingAcknowledgementImage"
            }
          }
        },
        "required": [
          "listingParentId",
          "variants"
        ]
      },
      "ListingParentAcknowledgementVariant": {
        "title": "ListingParentAcknowledgementVariant",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "listingVariantId": {
            "type": "integer"
          },
          "externalListingId": {
            "type": "string",
            "description": "(Optional) Must be Unique (per channel)! If you are responding to a `publish` operation (meaning, this is a brand new listing you've never seen), you can optionally pass an `externalListingId` which you can use to associate listings when Creating Orders.\n\nIf an `externalListingId` is NOT provided after a publish, we will use `sku` as the `externalListingId`."
          },
          "error": {
            "type": "string",
            "description": "If this field is `null`, we will assume a successful interaction. \n\nIf an interaction failed, please provide a reason by populating this field."
          },
          "images": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ListingAcknowledgementImage"
            }
          },
          "isLinkedToRegularProduct": {
            "type": "boolean",
            "x-stoplight": {
              "id": "tx7h69kcoz8r3"
            },
            "description": "Set it to `true` if it is a standard product (Having no variants)"
          }
        },
        "required": [
          "listingVariantId"
        ]
      },
      "ListingAcknowledgementImage": {
        "title": "ListingAcknowledgementImage",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "id": {
            "type": "integer"
          },
          "externalListingId": {
            "type": "string",
            "description": "(Optional) Must be Unique (per channel)! If you are responding to a `publish` or `overwrite` operation, you can optionally pass an `externalListingId` per image which you can use to associate your own ID to a specific image.\n\nIf an `externalListingId` is NOT provided after publishing an image, the `externalListingId` will be left empty."
          },
          "listingError": {
            "type": "string",
            "description": "If this field is `null`, we will assume a successful interaction. \n\nIf an interaction failed, please provide a reason by populating this field."
          }
        }
      },
      "ReceiveInboundShipmentAdjustment": {
        "title": "ReceiveInboundShipmentAdjustment",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "description": "",
        "properties": {
          "purchaseOrderId": {
            "type": "integer"
          },
          "items": {
            "type": "array",
            "uniqueItems": true,
            "minItems": 1,
            "items": {
              "$ref": "#/components/schemas/ReceiveInboundShipmentItemAdjustment"
            }
          }
        },
        "required": [
          "purchaseOrderId",
          "items"
        ]
      },
      "ReceiveInboundShipmentItemAdjustment": {
        "title": "ReceiveInboundShipmentItemAdjustment",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "purchaseOrderItemId": {
            "type": "integer",
            "description": "Id of purchase order item"
          },
          "quantity": {
            "type": "integer",
            "minimum": 1
          },
          "sku": {
            "type": "string",
            "description": "Sku of purchase order item - case sensitive"
          }
        },
        "required": [
          "quantity"
        ]
      },
      "PurchaseOrderReceivedStatus": {
        "title": "PurchaseOrderReceivedStatus",
        "type": "object",
        "properties": {
          "handle": {
            "type": "string",
            "enum": [
              "awaiting_to_receive",
              "partially_received",
              "received",
              "voided"
            ]
          }
        },
        "x-tags": [
          "Models"
        ]
      },
      "FulfillmentRequestReceivedStatus": {
        "title": "FulfillmentRequestReceivedStatus",
        "type": "object",
        "properties": {
          "handle": {
            "type": "string",
            "enum": [
              "awaiting_to_receive",
              "partially_received",
              "received",
              "voided"
            ]
          }
        },
        "x-tags": [
          "Models"
        ]
      },
      "PurchaseOrderLog": {
        "title": "PurchaseOrderLog",
        "type": "object",
        "description": "This represents a `log` entry when attempting to route Orders into respective Purchase Orders",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "info",
              "warn",
              "success",
              "error",
              "snapshot"
            ]
          },
          "message": {
            "type": "string"
          },
          "position": {
            "type": "integer"
          },
          "orderId": {
            "type": "integer"
          },
          "json": {
            "type": "string"
          }
        },
        "required": [
          "type",
          "message"
        ]
      },
      "CreateReturnRequest": {
        "title": "CreateReturnRequest",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "orderId": {
            "type": "integer",
            "description": "orderId or orderNumber is mandatory."
          },
          "orderNumber": {
            "type": "string",
            "description": "orderId or orderNumber is mandatory."
          },
          "returnNumber": {
            "type": "string"
          },
          "items": {
            "type": "array",
            "minItems": 1,
            "items": {
              "$ref": "#/components/schemas/CreateReturnItem"
            }
          },
          "refundAdjustment": {
            "type": "number"
          },
          "syncRefundChangesToOrder": {
            "type": "boolean"
          }
        },
        "required": [
          "items"
        ]
      },
      "CreateReturnItem": {
        "title": "CreateReturnItem",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "orderItemId": {
            "type": "integer",
            "description": "Either orderItemId or sku is necessary"
          },
          "sku": {
            "type": "string",
            "description": "Either orderItemId or sku is necessary."
          },
          "title": {
            "type": "string",
            "description": "If provided, it will be used otherwise will be picked from associated order line item in case of managed order item."
          },
          "salesPrice": {
            "type": "number",
            "description": "If not provided, sales price will be picked from the associated order item."
          },
          "returnQuantity": {
            "type": "integer",
            "minimum": 1
          },
          "returnReason": {
            "type": "string"
          },
          "returnCondition": {
            "type": "string"
          },
          "refundedAmount": {
            "type": "number"
          }
        },
        "required": [
          "returnQuantity",
          "returnReason",
          "returnCondition"
        ]
      },
      "CreateRmaRequest": {
        "title": "CreateRmaRequest",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "returnId": {
            "type": "integer"
          },
          "sourceId": {
            "type": "integer",
            "description": "When using tokens other than source token, this need to be in the request."
          },
          "rmaNumber": {
            "type": "string"
          },
          "returnToAddress": {
            "$ref": "#/components/schemas/CreateAddressRequest"
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CreateRmaItem"
            }
          },
          "creditAdjustment": {
            "type": "number"
          },
          "autoApprove": {
            "type": "boolean",
            "default": false,
            "description": "When `true`, the full quantity for each RMA item will be approved automatically upon creation."
          }
        },
        "required": [
          "returnId",
          "rmaNumber",
          "returnToAddress"
        ]
      },
      "CreateRmaItem": {
        "title": "CreateRmaItem",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "returnItemId": {
            "type": "integer"
          },
          "sku": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "cost": {
            "type": "number"
          },
          "returnReason": {
            "type": "string",
            "description": "If not provided, the associated return item's returnReason will be assigned."
          },
          "condition": {
            "type": "string",
            "description": "If not provided, the associated return item's returnCondition will be assigned."
          },
          "note": {
            "type": "string"
          },
          "quantity": {
            "type": "integer",
            "minimum": 1
          },
          "creditedAmount": {
            "type": "number"
          }
        },
        "required": [
          "returnItemId",
          "quantity"
        ]
      },
      "ReturnModel": {
        "title": "ReturnModel",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "id": {
            "type": "integer"
          },
          "orderId": {
            "type": "integer"
          },
          "returnNumber": {
            "type": "string"
          },
          "accountId": {
            "type": "integer"
          },
          "totalReturnItems": {
            "type": "integer"
          },
          "totalRmas": {
            "type": "integer"
          },
          "channelId": {
            "type": "integer"
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ReturnItem"
            }
          },
          "rmas": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Rma"
            }
          },
          "returnTotal": {
            "type": "number"
          },
          "status": {
            "$ref": "#/components/schemas/ReturnStatus"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "insertedAt": {
            "type": "string",
            "format": "date-time"
          },
          "refundAdjustment": {
            "type": "number"
          },
          "refundSubtotal": {
            "type": "number",
            "description": "sum of refunded_amount for all return_items on the return"
          },
          "refundTotal": {
            "type": "number",
            "description": "refundSubtotal + refundAdjustment"
          },
          "refundLastSyncedAt": {
            "type": "string",
            "format": "date-time"
          },
          "syncRefundChangesToOrder": {
            "type": "boolean"
          },
          "shipmentReceivedStatus": {
            "$ref": "#/components/schemas/ShipmentReceivedStatus"
          }
        }
      },
      "ReturnItem": {
        "title": "ReturnItem",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "id": {
            "type": "integer"
          },
          "returnId": {
            "type": "integer"
          },
          "orderItemId": {
            "type": "integer"
          },
          "sku": {
            "type": "string"
          },
          "returnQuantity": {
            "type": "integer"
          },
          "returnReason": {
            "type": "string"
          },
          "returnCondition": {
            "type": "string"
          },
          "salesPrice": {
            "type": "number"
          },
          "title": {
            "type": "string"
          },
          "refundedAmount": {
            "type": "number"
          },
          "bundleComponents": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OrderItemBundleComponent"
            }
          }
        }
      },
      "CreateReturnResponse": {
        "title": "CreateReturnResponse",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "warning": {
            "type": "string"
          },
          "return": {
            "$ref": "#/components/schemas/ReturnModel"
          }
        }
      },
      "Rma": {
        "title": "Rma",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "id": {
            "type": "integer"
          },
          "returnId": {
            "type": "integer"
          },
          "sourceId": {
            "type": "integer"
          },
          "rmaNumber": {
            "type": "string"
          },
          "accountId": {
            "type": "integer"
          },
          "returnToAddress": {
            "$ref": "#/components/schemas/Address"
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RmaItem"
            }
          },
          "totalRmaItems": {
            "type": "integer"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "rmaStatus": {
            "$ref": "#/components/schemas/rmaStatus"
          },
          "rmaShipments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RmaShipment"
            }
          },
          "creditSubtotal": {
            "type": "number"
          },
          "creditAdjustment": {
            "type": "number"
          },
          "creditTotal": {
            "type": "number"
          },
          "creditLastSyncedAt": {
            "type": "string",
            "format": "date-time"
          },
          "syncCreditChangesToOrder": {
            "type": "boolean"
          },
          "shipmentReceivedStatus": {
            "$ref": "#/components/schemas/ShipmentReceivedStatus"
          },
          "accountingSyncedAt": {
            "type": "string",
            "x-stoplight": {
              "id": "cdroju5rcze8o"
            },
            "format": "date-time"
          },
          "accountingError": {
            "type": "string"
          }
        }
      },
      "RmaItem": {
        "title": "RmaItem",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "id": {
            "type": "integer"
          },
          "returnItemId": {
            "type": "integer"
          },
          "rmaId": {
            "type": "integer"
          },
          "sku": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "cost": {
            "type": "number"
          },
          "returnReason": {
            "type": "string"
          },
          "returnCondition": {
            "type": "string"
          },
          "note": {
            "type": "string"
          },
          "quantity": {
            "type": "integer"
          },
          "approvedQuantity": {
            "type": "integer"
          },
          "deniedQuantity": {
            "type": "integer"
          },
          "creditedAmount": {
            "type": "number"
          },
          "receivedQuantity": {
            "type": "integer"
          },
          "voidedQuantity": {
            "type": "integer"
          },
          "bundleComponents": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OrderItemBundleComponent"
            }
          }
        }
      },
      "ShippingRateResponse": {
        "title": "ShippingRateResponse",
        "x-stoplight": {
          "id": "srtx2dq7r9xxs"
        },
        "x-tags": [
          "Models"
        ],
        "type": "object",
        "description": "The metadata returned from getting shipping rates from your Rate Shopping Provider.",
        "properties": {
          "rateId": {
            "description": "Use this value to easily buy a shipping label using the associated shipment data.",
            "type": "string"
          },
          "shippingCost": {
            "type": "number"
          },
          "insuranceCost": {
            "type": "number"
          },
          "confirmationAmount": {
            "type": "number"
          },
          "otherAmount": {
            "type": "number"
          },
          "deliveryDays": {
            "type": "integer"
          },
          "estimatedDeliveryDate": {
            "type": "string",
            "format": "date-time"
          },
          "carrierHandle": {
            "type": "string"
          },
          "serviceHandle": {
            "type": "string"
          },
          "serviceFriendlyName": {
            "type": "string"
          },
          "negotiatedRate": {
            "type": "boolean"
          },
          "rateShoppedId": {
            "type": "string"
          },
          "packageType": {
            "type": "string"
          }
        }
      },
      "RateShoppingProvider": {
        "title": "RateShoppingProvider",
        "x-stoplight": {
          "id": "ukrf12axfkavd"
        },
        "x-tags": [
          "Models"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "integer"
          },
          "name": {
            "type": "string"
          },
          "handle": {
            "type": "string"
          },
          "supportsLabelGeneration": {
            "type": "boolean"
          }
        },
        "x-examples": {
          "Example 1": {
            "id": 1,
            "name": "ShipEngine",
            "handle": "ship_engine",
            "supportsLabelGeneration": true
          }
        },
        "description": ""
      },
      "UpdateRmaItemsRequest": {
        "title": "Update RMA Item",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "id": {
            "type": "integer"
          },
          "sku": {
            "type": "string"
          },
          "quantity": {
            "type": "integer",
            "minimum": 0
          },
          "returnCondition": {
            "type": "string"
          },
          "returnReason": {
            "type": "string"
          },
          "note": {
            "type": "string"
          },
          "approvedQuantity": {
            "type": "integer",
            "minimum": 0
          },
          "deniedQuantity": {
            "type": "integer",
            "minimum": 0
          },
          "cost": {
            "type": "number"
          },
          "creditedAmount": {
            "type": "number"
          }
        },
        "required": [
          "id"
        ]
      },
      "CommonPackage": {
        "title": "CommonPackage",
        "x-stoplight": {
          "id": "lhv9rdoew26iv"
        },
        "x-tags": [
          "Models"
        ],
        "type": "object",
        "description": "This is a standard package in Flxpoint that can be associated to a Source Shipping Method for using to ship out orders in.",
        "x-examples": {
          "8.63\" x 5.38\" x 1.63\", 0.13 lbs": {
            "id": 7,
            "length": 8.63,
            "width": 5.38,
            "height": 1.63,
            "dimensionUnit": {
              "handle": "inch",
              "abbreviatedHandle": "in"
            },
            "weight": 0.13,
            "weightUnit": {
              "handle": "pound",
              "abbreviatedHandle": "lb"
            }
          }
        },
        "properties": {
          "id": {
            "type": "integer",
            "description": "A unique, numerical identifier for the package."
          },
          "length": {
            "description": "The length dimension of the package.",
            "type": "number"
          },
          "width": {
            "description": "The width dimension of the package.",
            "type": "number"
          },
          "height": {
            "type": "number",
            "description": "The height dimension of the package."
          },
          "dimensionUnit": {
            "$ref": "#/components/schemas/DimensionUnit"
          },
          "weight": {
            "description": "The weight of the package itself (excluding any contents).",
            "type": "number"
          },
          "weightUnit": {
            "$ref": "#/components/schemas/WeightUnit"
          }
        }
      },
      "CustomPackage": {
        "title": "CustomPackage",
        "x-stoplight": {
          "id": "p708xop9ybw8p"
        },
        "x-tags": [
          "Models"
        ],
        "type": "object",
        "description": "This is a specific package created by an account user in Flxpoint that can be associated to a Source Shipping Method for using to ship out orders in.",
        "properties": {
          "id": {
            "type": "integer",
            "description": "A unique, numerical identifier for the package."
          },
          "name": {
            "type": "string",
            "description": "Your name for the package."
          },
          "length": {
            "type": "number",
            "description": "The length dimension of the package."
          },
          "width": {
            "type": "number",
            "description": "The width dimension of the package."
          },
          "height": {
            "type": "number",
            "description": "The height dimension of the package."
          },
          "dimensionUnit": {
            "$ref": "#/components/schemas/DimensionUnit"
          },
          "weight": {
            "type": "number",
            "description": "The weight of the package itself (excluding any contents)."
          },
          "weightUnit": {
            "$ref": "#/components/schemas/WeightUnit"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time",
            "description": "The time that the package was created by an account user."
          },
          "createdByUserEmail": {
            "type": "string",
            "description": "The email address of the user who created the package."
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time",
            "description": "The last time the package details were modified (will be null if never changed)."
          }
        },
        "x-examples": {
          "Example 1": {
            "id": 1,
            "name": "Standard Shipping",
            "length": 8.6,
            "width": 5.4,
            "height": 1.6,
            "dimensionUnit": {
              "handle": "inch",
              "abbreviatedHandle": "in"
            },
            "weight": 0.1,
            "weightUnit": {
              "handle": "pound",
              "abbreviatedHandle": "lb"
            },
            "createdAt": "2019-08-24T14:15:22Z",
            "createdByUserEmail": "user123@mycompany.com",
            "updatedAt": null
          }
        }
      },
      "CreateRmaShipmentRequest": {
        "title": "CreateRmaShipmentRequest",
        "x-stoplight": {
          "id": "sfg4z69lzav5u"
        },
        "x-tags": [
          "Models"
        ],
        "type": "object",
        "properties": {
          "rmaId": {
            "type": "integer",
            "description": "Identify the RMA to associate the shipment to by providing the Flxpoint generated internal RMA ID."
          },
          "rmaNumber": {
            "type": "string",
            "description": "Identify the RMA to associate the shipment to by providing the rma number. ACCOUNT tokens will also need to provide `sourceId` when identifying via this property."
          },
          "sourceId": {
            "type": "integer",
            "description": "SOURCE tokens are not required to supply a value here, if using a SOURCE token and a value is provided and it does not match the source ID of the token a `400` response code will be returned.\n\nOnly required when using a ACCOUNT token in conjunction with `rmaNumber`(not necessary to provide when using `rmaId`). If not provided when submitting with `rmaNumber` a `400` response code will be returned. If the `sourceId` cannot be found a `404` response code will be returned."
          },
          "returnToAddress": {
            "$ref": "#/components/schemas/CreateAddressRequest"
          },
          "shipment": {
            "$ref": "#/components/schemas/CreateShipment"
          },
          "attachments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CreateRmaShipmentAttachmentRequest"
            }
          }
        },
        "required": [
          "returnToAddress",
          "shipment"
        ]
      },
      "CreateRmaShipmentAttachmentRequest": {
        "title": "CreateRmaShipmentAttachmentRequest",
        "x-stoplight": {
          "id": "ac2z55q793yws"
        },
        "x-tags": [
          "Models"
        ],
        "type": "object",
        "properties": {
          "attachmentUrl": {
            "type": "string"
          },
          "attachmentType": {
            "type": "string",
            "enum": [
              "packing_slip",
              "shipping_label"
            ]
          }
        },
        "required": [
          "attachmentUrl",
          "attachmentType"
        ]
      },
      "RmaShipment": {
        "title": "RmaShipment",
        "x-stoplight": {
          "id": "rjwgv812iiovy"
        },
        "x-tags": [
          "Models"
        ],
        "type": "object",
        "x-examples": {},
        "properties": {
          "id": {
            "type": "integer"
          },
          "rmaId": {
            "type": "integer"
          },
          "accountId": {
            "type": "integer"
          },
          "shipment": {
            "$ref": "#/components/schemas/Shipment"
          },
          "shippingAddress": {
            "$ref": "#/components/schemas/Address"
          },
          "attachments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RmaShipmentAttachment"
            }
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "sentAt": {
            "type": "string",
            "format": "date-time"
          },
          "rmaShipmentStatus": {
            "$ref": "#/components/schemas/RmaShipmentStatus"
          }
        }
      },
      "RmaShipmentAttachment": {
        "title": "RmaShipmentAttachment",
        "x-stoplight": {
          "id": "w8saroym0jrsr"
        },
        "x-tags": [
          "Models"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "integer"
          },
          "rmaId": {
            "type": "integer"
          },
          "rmaShipmentId": {
            "type": "integer"
          },
          "attachmentType": {
            "type": "string"
          },
          "attachmentUrl": {
            "type": "string"
          }
        }
      },
      "PurchaseOrderPackageItem": {
        "title": "PurchaseOrderPackageItem",
        "x-stoplight": {
          "id": "dwndswpnen7mt"
        },
        "x-tags": [
          "Models"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "integer"
          },
          "purchaseOrderPackageId": {
            "type": "integer"
          },
          "purchaseOrderItemId": {
            "type": "integer"
          },
          "quantity": {
            "type": "integer"
          }
        },
        "x-examples": {
          "example-1": {
            "id": 1,
            "purchaseOrderPackageId": 1,
            "purchaseOrderItemId": 1,
            "quantity": 1
          }
        }
      },
      "FulfillmentRequestPackageItem": {
        "title": "FulfillmentRequestPackageItem",
        "x-stoplight": {
          "id": "dwndswpnen7mt"
        },
        "x-tags": [
          "Models"
        ],
        "type": "object",
        "x-examples": {
          "example-1": {
            "id": 1,
            "purchaseOrderPackageId": 1,
            "purchaseOrderItemId": 1,
            "quantity": 1
          }
        },
        "properties": {
          "id": {
            "type": "integer"
          },
          "fulfillmentRequestPackageId": {
            "type": "integer"
          },
          "fulfillmentRequestItemId": {
            "type": "integer"
          },
          "quantity": {
            "type": "integer"
          }
        }
      },
      "BuyShippingLabelItemRequest": {
        "title": "BuyShippingLabelItemRequest",
        "x-stoplight": {
          "id": "gk8njmptgz4l8"
        },
        "x-tags": [
          "Models"
        ],
        "type": "object",
        "properties": {
          "purchaseOrderItemId": {
            "type": "integer"
          },
          "quantity": {
            "type": "integer",
            "default": 1
          }
        }
      },
      "PurchaseOrderPackageLabel": {
        "title": "PurchaseOrderPackageLabel",
        "x-stoplight": {
          "id": "sl61d2x9t3uji"
        },
        "x-tags": [
          "Models"
        ],
        "type": "object",
        "properties": {
          "purchaseOrderPackage": {
            "$ref": "#/components/schemas/PurchaseOrderPackage"
          },
          "externalLabelId": {
            "type": "string",
            "description": "The Rate Shopping/Label Provider's own identifier for this shipping label in their system."
          },
          "purchasedAt": {
            "type": "string",
            "format": "date-time",
            "description": "The time that the label was purchased."
          },
          "voidedAt": {
            "type": "string",
            "format": "date-time",
            "description": "The time that the label was voided, if applicable."
          },
          "cost": {
            "type": "number",
            "description": "The cost of the shipping label as charged by the provider."
          },
          "trackingNumber": {
            "type": "string",
            "description": "The tracking number assigned to the shipping label for tracking the shipment."
          },
          "pdfDownloadUrl": {
            "type": "string",
            "description": "A download link containing a PDF version of the shipping label. "
          },
          "pngDownloadUrl": {
            "type": "string",
            "description": "A download link containing a PNG version of the shipping label. "
          },
          "zplDownloadUrl": {
            "type": "string",
            "description": "A download link containing a ZPL version of the shipping label. "
          },
          "voidDeniedReason": {
            "type": "string",
            "description": "If there was an attempt to void the label with the provider that failed, this will contain the reason if one was returned."
          },
          "shippingRate": {
            "type": "number",
            "description": "The shipping rates is amount which excludes extra fees charged by the provider."
          },
          "trackingUrl": {
            "description": "The branded tracking portal URL generated after label purchase, if a tracking theme is configured. Null if no branded tracking portal URL was created.",
            "type": "string"
          }
        }
      },
      "ReturnStatus": {
        "type": "string",
        "title": "ReturnStatus",
        "x-stoplight": {
          "id": "md2usl1k61ide"
        },
        "x-tags": [
          "Models"
        ],
        "enum": [
          "open",
          "closed",
          "cancelled"
        ]
      },
      "ReturnUpdateRequest": {
        "title": "ReturnUpdateRequest",
        "x-tags": [
          "Models"
        ],
        "type": "object",
        "description": "Update return request",
        "properties": {
          "returnStatus": {
            "$ref": "#/components/schemas/ReturnStatus"
          },
          "refundAdjustment": {
            "type": "number"
          },
          "syncRefundChangesToOrder": {
            "type": "boolean"
          }
        }
      },
      "ReceiveRmaShipmentItem": {
        "title": "ReceiveRmaShipmentItem",
        "x-stoplight": {
          "id": "m60r088bpf2m1"
        },
        "x-tags": [
          "Models"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "Id of rma shipment item"
          },
          "rmaItemId": {
            "type": "integer"
          },
          "receivedQuantity": {
            "type": "integer"
          },
          "voidedQuantity": {
            "type": "integer"
          }
        },
        "required": [
          "id"
        ]
      },
      "UpdateSourceInvoice": {
        "title": "UpdateSourceInvoice",
        "x-stoplight": {
          "id": "nl01hku2rwd9b"
        },
        "x-tags": [
          "Models"
        ],
        "type": "object",
        "properties": {
          "totalCreditCost": {
            "type": "number",
            "description": "Used for RMA invoices only."
          },
          "accountingSynced": {
            "type": "boolean",
            "description": "Set this value to true after syncing this invoice to your external accounting system.",
            "nullable": true
          },
          "externalAccountingId": {
            "type": "string",
            "description": "identfier in the extrenal system that identifes this `Source Invoice`",
            "nullable": true
          },
          "accountingSyncError": {
            "type": "string",
            "nullable": true
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UpdateSourceInvoiceItem"
            }
          },
          "status": {
            "type": "string",
            "x-stoplight": {
              "id": "o7wzpue238h4c"
            },
            "enum": [
              "unpaid",
              "paid",
              "credited",
              "refunded"
            ]
          },
          "vendorPayoutId": {
            "type": "integer",
            "x-stoplight": {
              "id": "traurqd4vndnz"
            }
          }
        }
      },
      "UpdateSourceInvoiceItem": {
        "title": "UpdateSourceInvoiceItem",
        "x-tags": [
          "Models"
        ],
        "type": "object",
        "properties": {
          "invoiceItemId": {
            "type": "integer",
            "description": "If no value is passed, a new invoice item will be created.",
            "nullable": true
          },
          "externalAccountingItemId": {
            "type": "string",
            "description": "identfier in the external system that identfies this `Source Invoice Item`",
            "nullable": true
          }
        }
      },
      "ShipmentReceivedStatus": {
        "type": "string",
        "title": "ShipmentReceivedStatus",
        "x-stoplight": {
          "id": "l3lc21ki8lfw1"
        },
        "x-tags": [
          "Models"
        ],
        "enum": [
          "not_received",
          "partially_received",
          "fully_received"
        ]
      },
      "OrderType": {
        "type": "string",
        "title": "OrderType",
        "x-stoplight": {
          "id": "0flplgea9iufz"
        },
        "x-tags": [
          "Models"
        ],
        "enum": [
          "Online",
          "POS",
          "Manual"
        ],
        "default": "Online"
      },
      "FulfillmentType": {
        "type": "string",
        "title": "FulfillmentType",
        "x-stoplight": {
          "id": "bqfv9schgycv6"
        },
        "enum": [
          "Shipping",
          "In-Store Purchase"
        ],
        "default": "Shipping",
        "x-tags": [
          "Models"
        ]
      },
      "CreateShipmentCustomField": {
        "title": "CreateShipmentCustomField",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "description": "Custom fields for shipments",
        "properties": {
          "name": {
            "type": "string"
          },
          "value": {
            "type": "string"
          }
        }
      },
      "ShipmentCustomField": {
        "title": "ShipmentCustomField",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "description": "Custom fields for shipments",
        "properties": {
          "id": {
            "type": "integer"
          },
          "name": {
            "type": "string",
            "x-stoplight": {
              "id": "mpdp61xs13ebd"
            }
          },
          "value": {
            "type": "string"
          }
        }
      },
      "AlternateVariant": {
        "title": "AlternateVariant",
        "x-stoplight": {
          "id": "uyai7rcwkoovz"
        },
        "x-tags": [
          "Models"
        ],
        "type": "object",
        "description": "An alternate product variant",
        "properties": {
          "id": {
            "type": "integer"
          },
          "sku": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "quantity": {
            "type": "integer"
          },
          "cost": {
            "type": "number"
          },
          "price": {
            "type": "number"
          },
          "image": {
            "type": "string"
          },
          "parentId": {
            "type": "integer"
          }
        }
      },
      "ProductOption": {
        "title": "ProductOption",
        "x-stoplight": {
          "id": "iax75lv3y20fm"
        },
        "x-tags": [
          "Models"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "name": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "values": {
            "type": "array"
          }
        }
      },
      "OptionValue": {
        "title": "OptionValue",
        "x-stoplight": {
          "id": "9k5k7frnhnq9q"
        },
        "x-tags": [
          "Models"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "integer"
          },
          "optionId": {
            "type": "integer"
          },
          "value": {
            "type": "string"
          },
          "position": {
            "type": "integer"
          },
          "globalPosition": {
            "type": "integer"
          },
          "globalOptionValueId": {
            "type": "integer",
            "format": "int64"
          }
        }
      },
      "Notification": {
        "title": "Notification",
        "x-tags": [
          "Models"
        ],
        "type": "object",
        "required": [
          "type",
          "level"
        ],
        "properties": {
          "id": {
            "type": "integer"
          },
          "type": {
            "$ref": "#/components/schemas/NotificationType"
          },
          "level": {
            "$ref": "#/components/schemas/NotificationLevel"
          },
          "insertedAt": {
            "type": "string",
            "format": "date-time"
          },
          "title": {
            "type": "string",
            "description": "The primary title for the notification"
          },
          "body": {
            "type": "string",
            "description": "Usually an empty string but can be populated when more complex `metaData` is not required."
          },
          "metaData": {
            "type": "string",
            "description": "A JSON payload with meta data related to the outcome of the job. This payload varies depending on the type of notification."
          },
          "jobId": {
            "type": "integer",
            "description": "The job ID this notification is related to. Not always populated as not all notifications are related to a job."
          }
        }
      },
      "NotificationType": {
        "title": "Notification",
        "x-tags": [
          "Models"
        ],
        "type": "object",
        "required": [
          "id",
          "name",
          "handle"
        ],
        "properties": {
          "id": {
            "type": "integer"
          },
          "name": {
            "type": "string"
          },
          "handle": {
            "type": "string"
          }
        }
      },
      "NotificationLevel": {
        "title": "Notification",
        "x-tags": [
          "Models"
        ],
        "type": "object",
        "required": [
          "id",
          "name",
          "handle"
        ],
        "properties": {
          "id": {
            "type": "integer"
          },
          "name": {
            "type": "string"
          },
          "handle": {
            "type": "string"
          }
        }
      },
      "CreateSourceInvoiceCustomField": {
        "title": "CreateSourceInvoiceCustomField",
        "x-stoplight": {
          "id": "cjntg3yzyfacv"
        },
        "type": "object",
        "description": "Create Source Invoice Custom Fields",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "name": {
            "type": "string",
            "x-stoplight": {
              "id": "f8buqpqrye9e5"
            }
          },
          "value": {
            "type": "string",
            "x-stoplight": {
              "id": "7xd80l0e61jne"
            }
          }
        }
      },
      "CreateSourceInvoiceItemCustomField": {
        "title": "CreateSourceInvoiceItemCustomField",
        "x-stoplight": {
          "id": "hrqk49ilxpd8z"
        },
        "type": "object",
        "description": "Craete Source Invoice Item Custom Field",
        "properties": {
          "name": {
            "type": "string",
            "x-stoplight": {
              "id": "aba4ypdnp9e2l"
            }
          },
          "value": {
            "type": "string",
            "x-stoplight": {
              "id": "8np4z2zfn15ji"
            }
          }
        },
        "x-tags": [
          "Models"
        ]
      },
      "SourceInvoiceCustomField": {
        "title": "Source Invoice Custom Field",
        "x-stoplight": {
          "id": "b6r9tqb71ce3l"
        },
        "type": "object",
        "description": "Custom Fields for the Source Invoice and Source Invoice Item",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "id": {
            "type": "integer"
          },
          "name": {
            "type": "string",
            "x-stoplight": {
              "id": "r6vao2c86jhqy"
            }
          },
          "value": {
            "type": "string",
            "x-stoplight": {
              "id": "ugo6klcgrpwqb"
            }
          }
        }
      },
      "CreateFtpRequest": {
        "title": "CreateFtpRequest",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "name": {
            "type": "string",
            "description": "A name is provided to help you identify this FTP account"
          },
          "username": {
            "type": "string",
            "description": "The username that is leveraged to access this FTP account"
          },
          "password": {
            "type": "string",
            "description": "The password that is leveraged to access this FTP account"
          }
        },
        "required": [
          "name",
          "username",
          "password"
        ]
      },
      "UpdateFtpRequest": {
        "title": "UpdateFtpRequest",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "name": {
            "type": "string",
            "description": "A name is provided to help you identify this FTP account"
          },
          "password": {
            "type": "string",
            "description": "The password that is leveraged to access this FTP account"
          }
        }
      },
      "FTP": {
        "title": "FTP",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "id": {
            "type": "integer",
            "description": "FTP ID used for identification"
          },
          "name": {
            "type": "string",
            "description": "A name is provided to help you identify this FTP account"
          },
          "username": {
            "type": "string",
            "description": "The username that is leveraged to access this FTP account"
          },
          "password": {
            "type": "string",
            "description": "The password that is leveraged to access this FTP account"
          },
          "filemageUserId": {
            "type": "integer",
            "description": "The User ID of Filemage's system to manage this FTP account. Only leveraged internally for Flxpoint system"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "id",
          "name",
          "username",
          "password"
        ]
      },
      "OrderAccountingSyncRequest": {
        "title": "OrderAccountingSyncRequest",
        "x-stoplight": {
          "id": "43jo7p9th5qz1"
        },
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "x-examples": {
          "Full": {
            "accountingSynced": true,
            "externalAccountingId": "string",
            "items": [
              {
                "id": 0,
                "externalAccountingId": "string"
              }
            ]
          }
        },
        "properties": {
          "accountingSynced": {
            "type": "boolean",
            "x-stoplight": {
              "id": "g5zxzv4k91kam"
            },
            "description": "specify whether accounting was synced",
            "nullable": true
          },
          "externalAccountingId": {
            "type": "string",
            "x-stoplight": {
              "id": "j56dk0kv8u34r"
            },
            "description": "identfier in the external system that identifies with this order.",
            "nullable": true
          },
          "items": {
            "type": "array",
            "x-stoplight": {
              "id": "9oa0txf8erl1l"
            },
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/OrderItemAccountingSyncRequest"
            }
          },
          "accountingSyncError": {
            "type": "string",
            "x-stoplight": {
              "id": "mz5rohc4lzjom"
            }
          }
        }
      },
      "OrderItemAccountingSyncRequest": {
        "title": "OrderItemAccountingSyncRequest",
        "x-stoplight": {
          "id": "il6iaa82kfbap"
        },
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "id": {
            "type": "integer",
            "x-stoplight": {
              "id": "rtvhf1rwbqyqs"
            },
            "description": "id of order item"
          },
          "externalAccountingId": {
            "type": "string",
            "x-stoplight": {
              "id": "y3s0hkgrfu83p"
            },
            "description": "identfier in the external sytem that identifies with this order item",
            "nullable": true
          },
          "orderItemAccountingItems": {
            "x-stoplight": {
              "id": "qu88ba3zlq8cz"
            },
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OrderItemAccountingItem"
            }
          }
        },
        "required": [
          "id"
        ]
      },
      "WebhookConfiguration": {
        "title": "WebhookConfiguration",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "id": {
            "type": "integer",
            "description": "Webhook Configuration ID used for identification"
          },
          "configurationName": {
            "type": "string",
            "description": "Name of the configured Webhook"
          },
          "sourceId": {
            "type": "integer",
            "description": "Source ID against which the webhook is setup"
          },
          "channelId": {
            "type": "integer",
            "description": "Channel ID against which the webhook is setup"
          },
          "webhookUrl": {
            "type": "string",
            "description": "Url for the webhook configuration"
          },
          "notificationEmail": {
            "type": "string",
            "description": "Email address where webhook status updates are sent"
          },
          "status": {
            "$ref": "#/components/schemas/WebhookConfigurationStatus"
          },
          "subscribedEvents": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/WebhookEvents"
            }
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "id",
          "configurationName",
          "webhookUrl",
          "subscribedEvents"
        ]
      },
      "WebhookConfigurationStatus": {
        "title": "WebhookConfigurationStatus",
        "x-tags": [
          "Models"
        ],
        "enum": [
          "active",
          "disabled",
          "deleted"
        ]
      },
      "WebhookEvents": {
        "type": "string",
        "title": "WebhookEvents",
        "description": "List of events supported to share over webhook",
        "enum": [
          "FulfillmentRequestProcessingEvent",
          "OrderImportedEvent"
        ],
        "x-tags": [
          "Models"
        ]
      },
      "WebhookDeliveryStatus": {
        "type": "string",
        "title": "WebhookDeliveryStatus",
        "description": "Used to track webhook delivery status",
        "enum": [
          "processing",
          "published",
          "internal_failure",
          "external_failure"
        ],
        "x-tags": [
          "Models"
        ]
      },
      "WebhookLog": {
        "title": "WebhookLog",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "id": {
            "type": "integer",
            "description": "Webhook Log ID used for event identification"
          },
          "status": {
            "$ref": "#/components/schemas/WebhookDeliveryStatus",
            "description": "Webhook delivery status"
          },
          "eventType": {
            "$ref": "#/components/schemas/WebhookEvents",
            "description": "Event associated with the log"
          },
          "eventKey": {
            "type": "string",
            "description": "Unique identifier for the associated event type"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time",
            "description": "Date time when the event was created within flxpoint system"
          },
          "lastTriedAt": {
            "type": "string",
            "format": "date-time",
            "description": "Date time when the event was last tried for delivery"
          },
          "nextTryAt": {
            "type": "string",
            "format": "date-time",
            "description": "Date time when the event will be tried again for delivery"
          },
          "publishedAt": {
            "type": "string",
            "format": "date-time",
            "description": "Date time when the event was successfully delivered"
          },
          "retryCount": {
            "type": "integer",
            "description": "Date time when the event was successfully delivered"
          },
          "manualRetryCount": {
            "type": "integer",
            "description": "Date time when the event was successfully delivered"
          },
          "statusCode": {
            "type": "string",
            "description": "Date time when the event was successfully delivered"
          },
          "statusMessage": {
            "type": "string",
            "description": "Date time when the event was successfully delivered"
          }
        }
      },
      "CreateWebhookConfigurationRequest": {
        "title": "CreateWebhookConfigurationRequest",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "configurationName": {
            "type": "string",
            "description": "Name of the configured Webhook"
          },
          "sourceId": {
            "type": "integer",
            "description": "Source ID against which the webhook is setup"
          },
          "channelId": {
            "type": "integer",
            "description": "Channel ID against which the webhook is setup"
          },
          "webhookUrl": {
            "type": "string",
            "description": "Url for the webhook configuration"
          },
          "notificationEmail": {
            "type": "string",
            "description": "Email address where webhook status updates are sent"
          },
          "subscribedEvents": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/WebhookEvents"
            }
          }
        },
        "required": [
          "webhookUrl",
          "subscribedEvents"
        ]
      },
      "UpdateWebhookConfigurationRequest": {
        "title": "UpdateWebhookConfigurationRequest",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "webhookUrl": {
            "type": "string",
            "description": "Url for the webhook configuration"
          },
          "notificationEmail": {
            "type": "string",
            "description": "Email address where webhook status updates are sent"
          },
          "subscribedEvents": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/WebhookEvents"
            }
          },
          "status": {
            "$ref": "#/components/schemas/WebhookConfigurationStatus"
          }
        },
        "required": [
          "webhookUrl",
          "subscribedEvents"
        ]
      },
      "RetryWebhookEventRequest": {
        "title": "RetryWebhookEventRequest",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "eventIds": {
            "type": "array",
            "description": "A unique identifier for the webhook event.",
            "items": {
              "type": "integer"
            }
          },
          "isAutomatedRetry": {
            "type": "boolean",
            "description": "Flag indicating if the retry is an automated retry or not"
          }
        },
        "required": [
          "eventIds",
          "isAutomatedRetry"
        ]
      },
      "FulfillmentRequestProcessingEvent": {
        "type": "object",
        "x-tags": [
          "Webhook Events"
        ],
        "properties": {
          "id": {
            "type": "integer",
            "description": "A unique identifier for the fulfillment request."
          },
          "fulfillmentRequestNumber": {
            "type": "string"
          },
          "orderId": {
            "type": "integer",
            "description": "The unique identifier for the order associated with the fulfillment request. This field is used to link the fulfillment request to the specific order that it is fulfilling. The orderId can be used to retrieve information about the order, such as the customer information, the items purchased, and the shipping address. It can also be used to track the status of the order and its associated fulfillment requests."
          },
          "sentAt": {
            "type": "string",
            "format": "date-time",
            "description": " The date and time when it was sent to the supplier",
            "example": "2023-04-25T13:56:22.014Z"
          },
          "sourceId": {
            "type": "integer",
            "description": "Unique identifier of the source which will fulfill this Fulfillment Request."
          },
          "acknowledgedAt": {
            "type": "string",
            "format": "date-time",
            "description": "The acknowledgedAt field refers to the date and time when a vendor or supplier that is responsible for fulfilling the order has acknowledged or accepted the fulfillment request.",
            "example": "2023-04-25T13:56:22.014Z"
          },
          "secondaryAcknowledgedAt": {
            "type": "string",
            "format": "date-time"
          },
          "canceledAt": {
            "type": "string",
            "format": "date-time",
            "description": "The date and time when the fulfillment request was canceled.",
            "example": "2023-04-25T13:56:22.014Z"
          },
          "shippingAddress": {
            "$ref": "#/components/schemas/Address"
          },
          "billingAddress": {
            "$ref": "#/components/schemas/Address"
          },
          "shippingText": {
            "type": "string",
            "deprecated": true
          },
          "note": {
            "type": "string",
            "description": "A note that can optionally be passed through all the way to the source"
          },
          "confirmationNumber": {
            "type": "string",
            "description": "A unique identifier returned from the source for indicating receipt and identifying the Fulfillment Request once it has been processed and acknowledged on their side."
          },
          "shippedStatus": {
            "$ref": "#/components/schemas/CompletionStatus"
          },
          "fulfillmentRequestStatus": {
            "$ref": "#/components/schemas/FulfillmentRequestStatus"
          },
          "fulfillmentRequestFulfillmentStatus": {
            "$ref": "#/components/schemas/FulfillmentRequestFulfillmentStatus"
          },
          "generatedAt": {
            "type": "string",
            "format": "date-time",
            "example": "2023-04-25T13:56:22.014Z",
            "description": "The date and time when this Fulfillment Request was generated."
          },
          "voidedAt": {
            "type": "string",
            "format": "date-time",
            "example": "2023-04-25T13:56:22.014Z",
            "description": "The date and time when this Fulfillment Request was voided."
          },
          "accountId": {
            "type": "integer",
            "deprecated": true
          },
          "totalItems": {
            "type": "integer",
            "description": "Total Number of Fulfillment Request Items."
          },
          "totalCost": {
            "type": "number",
            "description": "Total cost of the Fulfillment Request Items"
          },
          "totalQuantity": {
            "type": "integer",
            "description": " Total quantity of the Fulfillment Request Items."
          },
          "shippedQuantity": {
            "type": "integer",
            "description": "Total quantity of the Fulfillment Request Items that has been shipped."
          },
          "estimatedShippingCost": {
            "type": "number"
          },
          "estimatedDropshipFee": {
            "type": "number"
          },
          "sourceShippingMethod": {
            "$ref": "#/components/schemas/SourceShippingMethod"
          },
          "suppressTracking": {
            "type": "boolean",
            "description": "Indicates whether or not tracking information should be suppressed for the associated fulfillment request. If this field is set to true, it means that tracking information for the fulfillment request will not be synced to the channel from where the order originated."
          },
          "beingProcessed": {
            "type": "boolean"
          },
          "totalSourceInvoices": {
            "type": "integer"
          },
          "fflInfoRequired": {
            "type": "boolean"
          },
          "lastModifiedAt": {
            "type": "string",
            "minLength": 1,
            "format": "date-time",
            "example": "2023-04-25T13:56:22.014Z"
          },
          "accountingSynced": {
            "type": "boolean"
          },
          "externalAccountingId": {
            "type": "string"
          },
          "holdUntil": {
            "type": "string",
            "format": "date-time",
            "pattern": "2023-04-25T13:56:22.014Z"
          },
          "rateShoppedId": {
            "type": "string"
          },
          "packageDimensionUnit": {
            "$ref": "#/components/schemas/DimensionUnit"
          },
          "packageLength": {
            "type": "number"
          },
          "packageWidth": {
            "type": "number"
          },
          "packageHeight": {
            "type": "number"
          },
          "packageWeightUnit": {
            "$ref": "#/components/schemas/WeightUnit"
          },
          "packageWeight": {
            "type": "number"
          },
          "channelId": {
            "type": "integer"
          },
          "crossDockPurchaseOrderId": {
            "type": "integer",
            "description": "The unique identifier for the Cross Dock Purchase Order associated with the Fulfillment Request. A Cross Dock Purchase Order is used to consolidate multiple FRs across a single or multiple orders into a single FR for fulfilling from a single source."
          },
          "voidedReason": {
            "type": "string",
            "description": " The reason why the Fulfillment Request was voided."
          },
          "processingErrorReason": {
            "type": "string",
            "description": "The reason this purchase order could not be processed"
          },
          "cancelReason": {
            "type": "string",
            "description": "The reason why the Fulfillment Request was canceled."
          },
          "fulfillmentRequestItems": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FulfillmentRequestItem"
            }
          },
          "shipments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Shipment"
            }
          },
          "invoices": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Invoice"
            }
          },
          "fulfillmentRequestAttributes": {
            "type": "array",
            "deprecated": true,
            "description": "Deprecated -- use `customFields` instead.",
            "items": {
              "$ref": "#/components/schemas/FulfillmentRequestAttribute"
            }
          },
          "fulfillmentRequestType": {
            "$ref": "#/components/schemas/FulfillmentRequestType"
          },
          "shippingAddressId": {
            "type": "integer"
          },
          "billingAddressId": {
            "type": "integer"
          },
          "sourceShippingMethodId": {
            "type": "integer"
          },
          "shippingDistance": {
            "type": "number"
          },
          "fulfillmentRequestReceivedStatus": {
            "$ref": "#/components/schemas/FulfillmentRequestReceivedStatus"
          },
          "carrierCode": {
            "type": "string"
          },
          "methodCode": {
            "type": "string"
          },
          "fulfillmentRequestPackage": {
            "$ref": "#/components/schemas/FulfillmentRequestPackage"
          },
          "buyShippingLabel": {
            "type": "boolean",
            "default": false
          },
          "orderFFL": {
            "$ref": "#/components/schemas/OrderFFL"
          },
          "totalWeight": {
            "type": "number"
          },
          "customFields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FulfillmentRequestAttribute"
            }
          },
          "attachmentLinks": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "title": "FulfillmentRequestProcessingEvent",
        "description": "Event that is generated when a fulfillment request goes into processing status"
      },
      "OrderImportedEvent": {
        "x-tags": [
          "Webhook Events"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "integer"
          },
          "orderNumber": {
            "type": "string",
            "minLength": 1
          },
          "referenceNumber": {
            "type": "string",
            "minLength": 1
          },
          "orderTotal": {
            "type": "number"
          },
          "note": {
            "type": "string"
          },
          "importedFrom": {
            "type": "integer"
          },
          "orderedAt": {
            "type": "string",
            "format": "date-time"
          },
          "insertedAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "shippingText": {
            "type": "string",
            "minLength": 1
          },
          "acknowledgedStatus": {
            "$ref": "#/components/schemas/CompletionStatus"
          },
          "shippedStatus": {
            "$ref": "#/components/schemas/CompletionStatus"
          },
          "orderStatus": {
            "$ref": "#/components/schemas/OrderStatus"
          },
          "shippingAddress": {
            "$ref": "#/components/schemas/Address"
          },
          "billingAddress": {
            "$ref": "#/components/schemas/Address"
          },
          "dealerAddress": {
            "$ref": "#/components/schemas/Address"
          },
          "channelId": {
            "type": "integer"
          },
          "reseller": {
            "$ref": "#/components/schemas/Reseller"
          },
          "released": {
            "type": "boolean"
          },
          "accountId": {
            "type": "integer"
          },
          "paymentStatus": {
            "$ref": "#/components/schemas/PaymentStatus"
          },
          "allocatedStatus": {
            "$ref": "#/components/schemas/CompletionStatus"
          },
          "canceledAt": {
            "type": "string",
            "format": "date-time"
          },
          "totalOrderItems": {
            "type": "integer",
            "default": 0
          },
          "totalQuantity": {
            "type": "integer",
            "default": 0
          },
          "totalWeight": {
            "type": "number"
          },
          "paymentRefundStatus": {
            "$ref": "#/components/schemas/PaymentRefundStatus"
          },
          "paymentCreditStatus": {
            "$ref": "#/components/schemas/PaymentRefundStatus"
          },
          "purchaseOrderStatus": {
            "$ref": "#/components/schemas/CompletionStatus"
          },
          "purchaseOrderProcessStatus": {
            "$ref": "#/components/schemas/CompletionStatus"
          },
          "purchaseOrderFailedStatus": {
            "$ref": "#/components/schemas/CompletionStatus"
          },
          "purchaseOrderCanceledStatus": {
            "$ref": "#/components/schemas/CompletionStatus"
          },
          "purchaseOrderVoidedStatus": {
            "$ref": "#/components/schemas/CompletionStatus"
          },
          "paymentDeferredAt": {
            "type": "string",
            "format": "date-time"
          },
          "paymentDeferredUntil": {
            "type": "string",
            "format": "date-time"
          },
          "channelInvoiceReceiptQueuedId": {
            "type": "string"
          },
          "channelShippingMethod": {
            "$ref": "#/components/schemas/ChannelShippingMethod"
          },
          "totalPos": {
            "type": "integer",
            "default": 0
          },
          "shippingPolicy": {
            "$ref": "#/components/schemas/ShippingPolicy"
          },
          "poTotalCost": {
            "type": "number"
          },
          "sourceInvoiceTotalCost": {
            "type": "number"
          },
          "profitAmount": {
            "type": "number"
          },
          "profitMargin": {
            "type": "number"
          },
          "sourceInvoiceStatus": {
            "$ref": "#/components/schemas/CompletionStatus"
          },
          "accountingSynced": {
            "type": "boolean"
          },
          "externalAccountingId": {
            "type": "string"
          },
          "piiRetentionPolicyType": {
            "$ref": "#/components/schemas/PIIRetentionPolicyType"
          },
          "piiRetentionPolicyApplied": {
            "type": "boolean"
          },
          "orderItems": {
            "type": "array",
            "minItems": 1,
            "uniqueItems": true,
            "items": {
              "$ref": "#/components/schemas/OrderItem"
            }
          },
          "purchaseOrders": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PurchaseOrder"
            }
          },
          "fulfillmentRequests": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FulfillmentRequest"
            }
          },
          "orderInvoice": {
            "$ref": "#/components/schemas/OrderInvoice"
          },
          "orderStatusHistory": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OrderStatusHistory"
            }
          },
          "tags": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "attributes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OrderAttribute"
            }
          },
          "sourceId": {
            "type": "integer"
          },
          "orderFFL": {
            "$ref": "#/components/schemas/OrderFFL"
          },
          "returns": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ReturnModel"
            }
          },
          "poLogs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PurchaseOrderLog"
            }
          },
          "totalReturns": {
            "type": "integer"
          },
          "orderType": {
            "$ref": "#/components/schemas/OrderType"
          },
          "fulfillmentType": {
            "$ref": "#/components/schemas/FulfillmentType"
          },
          "syncedClosedAt": {
            "type": "string",
            "format": "date-time"
          },
          "resellerId": {
            "type": "integer"
          },
          "orderComments": {
            "type": "array",
            "x-stoplight": {
              "id": "to28s4zwysrgu"
            },
            "items": {
              "$ref": "#/components/schemas/OrderComment"
            }
          },
          "accountingSyncError": {
            "type": "string",
            "x-stoplight": {
              "id": "6rlw2oos5svkl"
            }
          }
        },
        "title": "OrderImportedEvent",
        "description": "Event that is generated when a new order is imported into the system"
      },
      "WebhookEvent": {
        "type": "object",
        "x-tags": [
          "Webhook Events"
        ],
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier for the event"
          },
          "eventType": {
            "$ref": "#/components/schemas/WebhookEvents"
          },
          "createdAt": {
            "type": "integer",
            "format": "int64",
            "description": "Timestamp representing when the event was created"
          },
          "isTestEvent": {
            "type": "boolean",
            "description": "Has the value true if the object is an actual production event or the value false if the object is an test event."
          },
          "data": {
            "type": "object",
            "description": "Object containing data associated with the event."
          }
        }
      },
      "OrderComment": {
        "title": "OrderComment",
        "x-stoplight": {
          "id": "yt03nsjdl9f4x"
        },
        "x-tags": [
          "Models"
        ],
        "type": "object",
        "description": "Model To Capture Order Comment",
        "properties": {
          "id": {
            "type": "integer",
            "x-stoplight": {
              "id": "ccf91lravkdyn"
            }
          },
          "email": {
            "type": "string",
            "x-stoplight": {
              "id": "30541r0k5etlt"
            }
          },
          "comment": {
            "type": "string",
            "x-stoplight": {
              "id": "pzbrt9fe8e41p"
            }
          },
          "insertedAt": {
            "type": "string",
            "x-stoplight": {
              "id": "kbi2yyrwin17w"
            },
            "format": "date-time"
          },
          "orderId": {
            "type": "integer",
            "x-stoplight": {
              "id": "3uhy4wago8f3p"
            }
          }
        },
        "required": [
          "comment",
          "orderId"
        ]
      },
      "OrderCommentRequest": {
        "title": "OrderCommentRequest",
        "x-stoplight": {
          "id": "ru7cekjxrdqku"
        },
        "x-tags": [
          "Models"
        ],
        "type": "object",
        "description": "Model to create a new Comment Request",
        "properties": {
          "comment": {
            "type": "string",
            "x-stoplight": {
              "id": "l470bcp2w1di6"
            }
          },
          "email": {
            "type": "string",
            "x-stoplight": {
              "id": "qm78aiblkj83o"
            }
          }
        },
        "required": [
          "comment",
          "email"
        ]
      },
      "OrderStatusHistoryContext": {
        "type": "object",
        "x-examples": {
          "Example 1": {
            "id": 430230,
            "orderId": 228678,
            "changeTime": "2023-09-06T15:23:17.719007Z",
            "fromOrderStatusId": 1,
            "fromOrderStatusName": "Open",
            "toOrderStatusId": 1,
            "toOrderStatusName": "Open",
            "userId": 1,
            "userEmail": "abacd",
            "orderHistoryTypeId": 14,
            "orderHistoryTypeName": "Order Submitted",
            "note": "Order submitted as paid",
            "changeByDealer": false,
            "dealerId": 1,
            "dealerEmail": "a",
            "vendorUserId": 1,
            "vendorUserEmail": "abc",
            "vendorId": 1,
            "sourceId": "a",
            "sourceName": "a",
            "orderInteractionTypeId": 11,
            "orderInteractionTypeName": "API",
            "channelId": 46800,
            "channelName": "Newtest33- Shopify"
          }
        },
        "properties": {
          "id": {
            "type": "integer"
          },
          "orderId": {
            "type": "integer"
          },
          "changeTime": {
            "type": "string",
            "format": "date-time"
          },
          "fromOrderStatusId": {
            "type": "integer"
          },
          "fromOrderStatusName": {
            "type": "string"
          },
          "toOrderStatusId": {
            "type": "integer"
          },
          "toOrderStatusName": {
            "type": "string"
          },
          "userId": {
            "type": "integer"
          },
          "userEmail": {
            "type": "string"
          },
          "orderHistoryTypeId": {
            "type": "integer"
          },
          "orderHistoryTypeName": {
            "type": "string"
          },
          "note": {
            "type": "string"
          },
          "changeByDealer": {
            "type": "boolean"
          },
          "dealerId": {
            "type": "integer"
          },
          "dealerEmail": {
            "type": "string"
          },
          "vendorUserId": {
            "type": "integer"
          },
          "vendorUserEmail": {
            "type": "string"
          },
          "vendorId": {
            "type": "integer"
          },
          "sourceId": {
            "type": "string"
          },
          "sourceName": {
            "type": "string"
          },
          "orderInteractionTypeId": {
            "type": "integer"
          },
          "orderInteractionTypeName": {
            "type": "string"
          },
          "channelId": {
            "type": "integer"
          },
          "channelName": {
            "type": "string"
          }
        },
        "description": "OrderStatusHostoryContext Details"
      },
      "OrderTimeline": {
        "title": "OrderTimeline",
        "x-stoplight": {
          "id": "8boafdwbbjio1"
        },
        "x-tags": [
          "Models"
        ],
        "type": "object",
        "description": "Order Time Line",
        "properties": {
          "orderComments": {
            "type": "array",
            "x-stoplight": {
              "id": "4pt7mucppohvq"
            },
            "items": {
              "$ref": "#/components/schemas/OrderComment"
            }
          },
          "orderStatusHistory": {
            "type": "array",
            "x-stoplight": {
              "id": "vk32cpy8wdue5"
            },
            "items": {
              "$ref": "#/components/schemas/OrderStatusHistoryContext"
            }
          }
        }
      },
      "OrderItemAccountingItem": {
        "title": "OrderItemAccountingItem",
        "x-stoplight": {
          "id": "oflpysjbozfl3"
        },
        "x-tags": [
          "Models"
        ],
        "type": "object",
        "description": "Order Item Accounting Items",
        "properties": {
          "externalAccountingId": {
            "type": "string",
            "x-stoplight": {
              "id": "701esqt6ten5s"
            },
            "description": "identfier in the external sytem that identifies with this order item supplier sku"
          },
          "quantity": {
            "type": "integer",
            "x-stoplight": {
              "id": "zdqytotv333iu"
            }
          }
        }
      },
      "OrderPendingFulfillment": {
        "title": "OrderPendingFulfillment",
        "x-stoplight": {
          "id": "na0htyhtik9vl"
        },
        "x-tags": [
          "Models"
        ],
        "type": "object",
        "properties": {
          "orderId": {
            "type": "integer",
            "x-stoplight": {
              "id": "klf1cg45plw0e"
            }
          },
          "orderNumber": {
            "type": "string",
            "x-stoplight": {
              "id": "8kzk2dxs6thg1"
            }
          },
          "pendingFulfillmentQuantity": {
            "type": "integer",
            "x-stoplight": {
              "id": "ybjo74vhag72l"
            }
          },
          "orderedOn": {
            "type": "string",
            "x-stoplight": {
              "id": "bp7ifqdzute3b"
            },
            "format": "date-time"
          }
        }
      },
      "ProductCommittedQuantity": {
        "title": "ProductCommittedQuantity",
        "x-stoplight": {
          "id": "hlnpusrg5q29z"
        },
        "x-tags": [
          "Models"
        ],
        "type": "object",
        "properties": {
          "purchaseOrderId": {
            "type": "integer",
            "x-stoplight": {
              "id": "81vknwd6t6wqh"
            }
          },
          "purchaseOrderNumber": {
            "type": "string",
            "x-stoplight": {
              "id": "6728cn3ztgtqa"
            }
          },
          "committedQuantity": {
            "type": "integer",
            "x-stoplight": {
              "id": "8d94t85hbm6hg"
            }
          },
          "committedOn": {
            "type": "string",
            "x-stoplight": {
              "id": "jcgs452s7ygs9"
            },
            "format": "date-time"
          },
          "updatedOn": {
            "type": "string",
            "x-stoplight": {
              "id": "k9ekwt24vype3"
            },
            "format": "date-time"
          }
        }
      },
      "ProductParentCountResponse": {
        "title": "ProductParentCountResponse",
        "x-stoplight": {
          "id": "iexkxxf3kk9fc"
        },
        "x-tags": [
          "Models"
        ],
        "type": "object",
        "properties": {
          "count": {
            "type": "integer",
            "x-stoplight": {
              "id": "727vdfb5ceugk"
            }
          }
        }
      },
      "Currency": {
        "title": "Currency",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "id": {
            "type": "integer"
          },
          "code": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "symbol": {
            "type": "string"
          },
          "unicodeDecimal": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "code"
        ]
      },
      "DeleteOrphanedCategoriesResponse": {
        "title": "DeleteOrphanedCategoriesResponse",
        "type": "object",
        "x-tags": [
          "Models"
        ],
        "properties": {
          "deletedCount": {
            "type": "integer",
            "default": 0
          }
        },
        "required": [
          "deletedCount"
        ]
      }
    },
    "securitySchemes": {
      "Authorization": {
        "name": "X-API-TOKEN",
        "type": "apiKey",
        "in": "header",
        "description": "To authorize with the Flxpoint API you must use a valid API Key. i.e. \"X-API-TOKEN : API_KEY_GOES_HERE\""
      }
    },
    "responses": {},
    "parameters": {
      "page": {
        "name": "page",
        "in": "query",
        "required": false,
        "schema": {
          "type": "integer",
          "default": 1
        },
        "description": "page number"
      },
      "pagesize": {
        "name": "pageSize",
        "in": "query",
        "required": false,
        "schema": {
          "type": "integer",
          "default": 50,
          "maximum": 100
        },
        "description": "number of elements per page"
      },
      "restrictcreateorupdate": {
        "name": "restrictCreateOrUpdate",
        "in": "query",
        "required": false,
        "schema": {
          "type": "string",
          "enum": [
            "createOnly",
            "updateOnly"
          ]
        },
        "description": "[Optional] When using a endpoint that can create or update products by SKU, use this parameter to restrict the endpoint to perform only a creation or only an update based on the existence of that SKU. If you pass `createOnly` and the SKU exists nothing will be updated, and if you pass `updateOnly` and the SKU doesn't exist nothing will be created."
      },
      "includeparent": {
        "schema": {
          "type": "boolean",
          "default": false
        },
        "in": "query",
        "name": "includeParent",
        "description": "If \"true\" is passed, the \"parent\" node will be populated with Parent information. NOTE : The \"variants\" will be empty in this node to prevent circular references."
      },
      "includeimages": {
        "schema": {
          "type": "boolean",
          "default": false
        },
        "in": "query",
        "name": "includeImages",
        "description": "If \"false\" is passed, the \"image\" and \"parent.image\" nodes will not be populated"
      },
      "includeoptions": {
        "schema": {
          "type": "boolean",
          "default": false
        },
        "in": "query",
        "name": "includeOptions",
        "description": "If \"false\" is passed, the \"options\" and \"parent.options\" nodes will not be populated"
      },
      "includeattributes": {
        "schema": {
          "type": "boolean",
          "default": false
        },
        "in": "query",
        "name": "includeAttributes",
        "description": "If \"true\" is passed, the \"parent.attributes\" node will be populated. "
      },
      "includecategories": {
        "schema": {
          "type": "boolean",
          "default": false
        },
        "in": "query",
        "name": "includeCategories",
        "description": "If \"true\" is passed, the parent category nodes will  be populated."
      },
      "includecustomfields": {
        "schema": {
          "type": "boolean",
          "default": false
        },
        "in": "query",
        "name": "includeCustomFields",
        "description": "If \"true\" is passed, the \"customFields\" nodes will be populated. "
      },
      "includecustomaggregates": {
        "schema": {
          "type": "boolean",
          "default": false
        },
        "in": "query",
        "name": "includeCustomAggregates",
        "description": "If \"false\" is passed, the \"customAggregates\"(Fields) node will not be populated. Custom Aggregates are similar to custom fields, but they can be aggregated across multiple sources. "
      },
      "includevariants": {
        "name": "includeVariants",
        "in": "query",
        "required": false,
        "schema": {
          "type": "boolean",
          "default": false
        },
        "description": "Include variants for the parent"
      },
      "includeoverwrites": {
        "name": "includeOverwrites",
        "in": "query",
        "required": false,
        "schema": {
          "type": "boolean",
          "default": false
        },
        "description": "will include dynamic prices and quantities if they are overwritten with fixed values"
      },
      "includetags": {
        "name": "includeTags",
        "in": "query",
        "required": false,
        "schema": {
          "type": "boolean",
          "default": false
        },
        "description": "Determines if \"tags\" are returned in the response"
      },
      "sourceid": {
        "name": "sourceId",
        "in": "path",
        "required": true,
        "schema": {
          "type": "integer",
          "minimum": 1
        },
        "description": "The source ID"
      },
      "findbyskus": {
        "schema": {
          "type": "array",
          "maxItems": 50,
          "example": "SKU123,SKU456,SKU789",
          "uniqueItems": true,
          "items": {
            "type": "string"
          }
        },
        "in": "query",
        "name": "skus",
        "description": "Finds elements matching these SKUs. Max 50",
        "style": "form",
        "explode": false
      },
      "findbyskuspagesizebound": {
        "schema": {
          "type": "array",
          "maxItems": 100,
          "example": "SKU123,SKU456,SKU789",
          "uniqueItems": true,
          "items": {
            "type": "string"
          }
        },
        "in": "query",
        "name": "skus",
        "description": "Finds elements matching these SKUs. Max must be less than or equal to pageSize.",
        "style": "form",
        "explode": false
      },
      "findbyupcs": {
        "schema": {
          "type": "array",
          "maxItems": 50,
          "example": "012345678905,012345678912",
          "uniqueItems": true,
          "items": {
            "type": "string"
          }
        },
        "in": "query",
        "name": "upcs",
        "description": "Finds elements matching these UPCs. Max 50.",
        "style": "form",
        "explode": false
      },
      "findbyupcspagesizebound": {
        "schema": {
          "type": "array",
          "maxItems": 100,
          "example": "012345678905,012345678912",
          "uniqueItems": true,
          "items": {
            "type": "string"
          }
        },
        "in": "query",
        "name": "upcs",
        "description": "Finds elements matching these UPCs. Max must be less than or equal to pageSize.",
        "style": "form",
        "explode": false
      },
      "findbyids": {
        "schema": {
          "type": "array",
          "maxItems": 50,
          "example": "123,456,789",
          "uniqueItems": true,
          "items": {
            "type": "integer"
          }
        },
        "in": "query",
        "name": "ids",
        "description": "Finds elements matching these IDs. Max 50",
        "style": "form",
        "explode": false
      },
      "findbyidspagesizebound": {
        "schema": {
          "type": "array",
          "maxItems": 100,
          "example": "123,456,789",
          "uniqueItems": true,
          "items": {
            "type": "integer"
          }
        },
        "in": "query",
        "name": "ids",
        "description": "Finds elements matching these IDs. Max must be less than or equal to pageSize.",
        "style": "form",
        "explode": false
      },
      "findbyids64": {
        "schema": {
          "type": "array",
          "maxItems": 50,
          "example": "123,456,789",
          "uniqueItems": true,
          "items": {
            "type": "integer",
            "format": "int64"
          }
        },
        "in": "query",
        "name": "ids",
        "description": "Finds elements matching these IDs. Max 50",
        "style": "form",
        "explode": false
      },
      "findbyids64pagesizebound": {
        "schema": {
          "type": "array",
          "maxItems": 100,
          "example": "123,456,789",
          "uniqueItems": true,
          "items": {
            "type": "integer",
            "format": "int64"
          }
        },
        "in": "query",
        "name": "ids",
        "description": "Finds elements matching these IDs. Max must be less than or equal to pageSize.",
        "style": "form",
        "explode": false
      },
      "findbysku": {
        "name": "findBySku",
        "in": "query",
        "required": false,
        "schema": {
          "type": "string"
        },
        "description": "Find a parent/variant by SKU"
      },
      "findbyid": {
        "name": "findById",
        "in": "query",
        "required": false,
        "schema": {
          "type": "integer"
        },
        "description": "Find a variant/parent by ID"
      },
      "modifyattributes": {
        "name": "modifyAttributes",
        "in": "query",
        "required": false,
        "schema": {
          "type": "string",
          "enum": [
            "none",
            "update",
            "merge",
            "deleteIncluded",
            "deleteAll"
          ]
        },
        "description": "Should attributes of the parent be modified"
      },
      "modifycustomfields": {
        "name": "modifyCustomFields",
        "in": "query",
        "required": false,
        "schema": {
          "type": "string",
          "enum": [
            "none",
            "update",
            "merge",
            "deleteIncluded",
            "deleteAll"
          ]
        },
        "description": "Should custom fields of the parent be modified"
      },
      "modifyimages": {
        "name": "modifyImages",
        "in": "query",
        "required": false,
        "schema": {
          "type": "string",
          "enum": [
            "none",
            "update",
            "merge",
            "deleteIncluded",
            "deleteAll"
          ]
        },
        "description": "Should images of the parent/variant be modified"
      },
      "modifyParentImages": {
        "name": "modifyParentImages",
        "in": "query",
        "required": false,
        "schema": {
          "type": "string",
          "enum": [
            "none",
            "update",
            "merge",
            "deleteIncluded",
            "deleteAll"
          ]
        },
        "description": "Should images of the parent be modified"
      },
      "modifyList": {
        "name": "modifyList",
        "in": "query",
        "required": false,
        "schema": {
          "type": "string",
          "enum": [
            "none",
            "replace",
            "merge",
            "deleteIncluded"
          ]
        },
        "description": "Should images of the variant be modified"
      },
      "modifyoptions": {
        "name": "modifyOptions",
        "in": "query",
        "required": false,
        "schema": {
          "type": "string",
          "enum": [
            "none",
            "update",
            "merge",
            "deleteIncluded",
            "deleteAll"
          ]
        },
        "description": "Should options of the parent/variant be modified"
      },
      "modifyParentOptions": {
        "name": "modifyParentOptions",
        "in": "query",
        "required": false,
        "schema": {
          "type": "string",
          "enum": [
            "none",
            "update",
            "merge",
            "deleteIncluded",
            "deleteAll"
          ]
        },
        "description": "Should options of the parent be modified"
      },
      "modifyVariantOptions": {
        "name": "modifyVariantOptions",
        "in": "query",
        "required": false,
        "schema": {
          "type": "string",
          "enum": [
            "none",
            "update",
            "merge",
            "deleteIncluded",
            "deleteAll"
          ]
        },
        "description": "Should options of the variant be modified"
      },
      "modifycategories": {
        "name": "modifyCategories",
        "in": "query",
        "required": false,
        "schema": {
          "type": "string",
          "enum": [
            "none",
            "update",
            "delete"
          ]
        },
        "description": "Should categories of the parent be modified"
      },
      "modifycategoryaidata": {
        "name": "modifyCategoryAiData",
        "in": "query",
        "required": false,
        "schema": {
          "type": "string",
          "enum": [
            "none",
            "update",
            "delete"
          ]
        },
        "description": "Should category ai data be modified"
      },
      "modifycontent": {
        "name": "modifyContent",
        "in": "query",
        "required": false,
        "schema": {
          "type": "string",
          "enum": [
            "none",
            "update",
            "updateNonNull"
          ]
        },
        "description": "Should content fields of the parent/variant be modified"
      },
      "modifyidentifiers": {
        "name": "modifyIdentifiers",
        "in": "query",
        "required": false,
        "schema": {
          "type": "string",
          "enum": [
            "none",
            "update",
            "updateNonNull"
          ]
        },
        "description": "Should identifier fields (ie Master SKU, UPC, MPN, GTIN, ASIN, Reference Identifier) of the variant be modified"
      },
      "modifydimensions": {
        "name": "modifyDimensions",
        "in": "query",
        "required": false,
        "schema": {
          "type": "string",
          "enum": [
            "none",
            "update",
            "updateNonNull"
          ]
        },
        "description": "Should dimension fields (ie weight, length, width, height) of the variant be modified"
      },
      "modifyinventorylinks": {
        "name": "modifyInventoryLinks",
        "in": "query",
        "required": false,
        "schema": {
          "type": "string",
          "enum": [
            "none",
            "update",
            "merge",
            "deleteIncluded",
            "deleteAll"
          ]
        },
        "description": "Should inventory links of the product variant be updated"
      },
      "modifylinkedproducts": {
        "name": "modifyLinkedProducts",
        "in": "query",
        "required": false,
        "schema": {
          "type": "string",
          "enum": [
            "none",
            "update",
            "merge",
            "deleteIncluded",
            "deleteAll"
          ]
        },
        "description": "Should product links of the inventory variant be updated"
      },
      "modifybundlecomponents": {
        "name": "modifyBundleComponents",
        "in": "query",
        "required": false,
        "schema": {
          "type": "string",
          "enum": [
            "none",
            "update",
            "merge",
            "deleteIncluded",
            "deleteAll"
          ]
        },
        "description": "Should bundle components of the product variant be updated"
      },
      "modifypriceoverwrite": {
        "name": "modifyPriceOverwrite",
        "in": "query",
        "required": false,
        "schema": {
          "type": "string",
          "enum": [
            "none",
            "update",
            "updateNonNull",
            "delete"
          ]
        },
        "description": "Should the price overwrite be updated?  Use in combination with the priceOverwrite object and associated variant pricing field(s) to overwrite any to a locked value or to remove any overwrite(s).."
      },
      "modifyquantityoverwrite": {
        "name": "modifyQuantityOverwrite",
        "in": "query",
        "required": false,
        "schema": {
          "type": "string",
          "enum": [
            "none",
            "update",
            "delete",
            "updateNonNull"
          ]
        },
        "description": "Should the quantity overwrite be updated?  Use in combination with the quantityOverwrite object and associated variant quantity field(s) to overwrite any to a locked value or to remove any overwrites."
      },
      "modifyPublishData": {
        "name": "modifyPublishData",
        "in": "query",
        "required": false,
        "schema": {
          "type": "string",
          "enum": [
            "none",
            "update",
            "updateNonNull"
          ]
        },
        "allowEmptyValue": true,
        "description": "Should publish fields (ie `publishError`, `staticContentUpdatedAt`, `staticContentSyncedAt`) of the parent/variant be modified"
      },
      "modifySyncData": {
        "name": "modifySyncData",
        "in": "query",
        "required": false,
        "schema": {
          "type": "string",
          "enum": [
            "none",
            "update",
            "updateNonNull"
          ]
        },
        "allowEmptyValue": true,
        "description": "Should sync fields (ie `syncError`, `dynamicContentUpdatedAt`, `dynamicContentSyncedAt`) of the parent/variant be modified"
      },
      "modifyStatusData": {
        "name": "modifyStatusData",
        "in": "query",
        "required": false,
        "schema": {
          "type": "string",
          "enum": [
            "none",
            "update",
            "updateNonNull"
          ]
        },
        "allowEmptyValue": true,
        "description": "Should status fields (ie `pausedAt`, `listingStatusId`, `changeToListingStatusId`, `scheduledToDeleteAt`) of the parent/variant be modified"
      },
      "modifyChannelData": {
        "name": "modifyChannelData",
        "in": "query",
        "required": false,
        "schema": {
          "type": "string",
          "enum": [
            "none",
            "update",
            "updateNonNull"
          ]
        },
        "allowEmptyValue": true,
        "description": "Should channel related fields (ie `externalLIstingId`, `linkAttemptedAt`, `linkedToRegularProduct`, `externalReferenceId`, `externalReferenceIdType`) of the parent/variant be modified"
      },
      "modifyParentCustomFields": {
        "name": "modifyParentCustomFields",
        "in": "query",
        "required": false,
        "schema": {
          "type": "string",
          "enum": [
            "none",
            "update",
            "merge",
            "deleteIncluded",
            "deleteAll"
          ]
        },
        "description": "Should custom fields of the parent be modified"
      },
      "modifyVariantCustomFields": {
        "name": "modifyVariantCustomFields",
        "in": "query",
        "required": false,
        "schema": {
          "type": "string",
          "enum": [
            "none",
            "update",
            "merge",
            "deleteIncluded",
            "deleteAll"
          ]
        },
        "description": "Should custom fields of the variant be modified"
      },
      "modifyPrices": {
        "name": "modifyPrices",
        "in": "query",
        "required": false,
        "schema": {
          "type": "string",
          "enum": [
            "none",
            "update",
            "updateNonNull"
          ]
        },
        "description": "Should price fields of the variant be modified. These fields are \n-`cost`\n-`msrp`\n`map`\n`shippingCost`\n`dropshipFee`\n`inventoryListPrice`"
      },
      "modifyQuantities": {
        "name": "modifyQuantities",
        "in": "query",
        "required": false,
        "schema": {
          "type": "string",
          "enum": [
            "none",
            "update",
            "updateNonNull"
          ]
        },
        "description": "Should quantity fields of the variant be modified. These fields are \n`quantity`\n-`incomingQuantity`."
      },
      "modifyRequiresFfl": {
        "name": "modifyRequiresFfl",
        "in": "query",
        "required": false,
        "schema": {
          "type": "string",
          "enum": [
            "none",
            "update",
            "updateNonNull"
          ]
        },
        "description": "Should the `requiresFfl` field be modified"
      }
    }
  },
  "security": [
    {
      "Authorization": []
    }
  ],
  "tags": [
    {
      "name": "Tags"
    },
    {
      "name": "Inventory"
    },
    {
      "name": "Product"
    },
    {
      "name": "Listing"
    },
    {
      "name": "Order"
    },
    {
      "name": "Purchase Order"
    },
    {
      "name": "Fulfillment Request"
    },
    {
      "name": "Returns"
    },
    {
      "name": "Shipment"
    },
    {
      "name": "Source Invoice"
    },
    {
      "name": "Source"
    },
    {
      "name": "Inbound Shipments"
    },
    {
      "name": "Channel"
    },
    {
      "name": "Shipping"
    },
    {
      "name": "Routing"
    },
    {
      "name": "Vendor"
    },
    {
      "name": "Account"
    },
    {
      "name": "Resellers"
    },
    {
      "name": "Shared"
    },
    {
      "name": "Webhook"
    },
    {
      "name": "Webhook Events"
    },
    {
      "name": "Product Builder"
    },
    {
      "name": "Listing Builder"
    },
    {
      "name": "Workflow"
    },
    {
      "name": "MappingSet"
    },
    {
      "name": "MappingTemplate"
    },
    {
      "name": "Address"
    },
    {
      "name": "Integration"
    },
    {
      "name": "Jobs"
    },
    {
      "name": "Global Objects"
    },
    {
      "name": "Events"
    },
    {
      "name": "StripeEvents"
    }
  ]
}