{
  "openapi": "3.0.3",
  "info": {
    "title": "ShipStream",
    "version": "1.0",
    "license": {
      "name": "Commercial (Copyright 2025 - All Rights Reserved)",
      "url": "https://shipstream.io"
    },
    "contact": {
      "name": "ShipStream Support",
      "email": "help@shipstream.io"
    },
    "termsOfService": "https://shipstream.io/legal/api-terms/"
  },
  "servers": [
    {
      "url": "https://{base_url_domain}/api/global",
      "description": "Direct API Url",
      "variables": {
        "base_url_domain": {
          "default": "example.shipstream.app",
          "description": "The fully qualified domain name for your ShipStream WMS instance. This is either a custom domain, or a subdomain of shipstream.app,\nand will be the same as the domain name for the page which you use to login to ShipStream WMS."
        }
      }
    }
  ],
  "tags": [
    {
      "name": "Warehouses",
      "x-displayName": "Warehouses"
    },
    {
      "name": "Products",
      "x-displayName": "Products"
    },
    {
      "name": "ProductProfiles",
      "x-displayName": "ProductProfiles"
    },
    {
      "name": "HandlingClasses",
      "x-displayName": "HandlingClasses"
    },
    {
      "name": "Locations",
      "x-displayName": "Locations"
    },
    {
      "name": "LocationTags",
      "x-displayName": "LocationTags"
    },
    {
      "name": "SlotTypes",
      "x-displayName": "SlotTypes"
    },
    {
      "name": "Levels",
      "x-displayName": "Levels"
    },
    {
      "name": "HoldReasons",
      "x-displayName": "HoldReasons"
    },
    {
      "name": "Holds",
      "x-displayName": "Holds"
    },
    {
      "name": "Replenishment",
      "x-displayName": "Replenishment"
    },
    {
      "name": "LocationProfiles",
      "x-displayName": "LocationProfiles"
    },
    {
      "name": "SlottingRules",
      "x-displayName": "SlottingRules"
    },
    {
      "name": "Deliveries",
      "description": "Every thing about a Delivery Receiving",
      "x-displayName": "Deliveries"
    },
    {
      "name": "Shipments",
      "x-displayName": "Shipments"
    },
    {
      "name": "Orders",
      "x-displayName": "Orders"
    },
    {
      "name": "Retailers",
      "x-displayName": "Retailers"
    },
    {
      "name": "Users",
      "x-displayName": "Users"
    },
    {
      "name": "User Roles",
      "x-displayName": "User Roles"
    },
    {
      "name": "Merchants",
      "x-displayName": "Merchants"
    },
    {
      "name": "Healthcheck",
      "x-displayName": "Healthcheck"
    }
  ],
  "paths": {
    "/v1/inventory/warehouses": {
      "get": {
        "summary": "List all Warehouses",
        "description": "Returns a list of `Warehouse` objects.\n\nPlease see [Warehouses](https://help.shipstream.io/article/ny45i1gqf2-warehouses) in our user documentation for more information.",
        "tags": [
          "Warehouses"
        ],
        "operationId": "getWarehouses",
        "parameters": [
          {
            "$ref": "#/components/parameters/Inventory_API_v1_warehouse-fields"
          },
          {
            "name": "filter",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "required": false,
            "style": "form",
            "explode": true,
            "allowReserved": true,
            "description": "Using the [filtering syntax](/global-api/filtering-syntax), you may filter the results using the following fields:\n  - `id`\n  - `name`\n  - `is_active`\n  - `abbreviation`",
            "examples": {
              "Active only": {
                "summary": "Only active warehouses.",
                "value": [
                  "is_active:true"
                ]
              },
              "Name starts with \"East\"": {
                "summary": "Only warehouses with the name starting with \"East\"",
                "value": [
                  "name{start:\"East\"}"
                ]
              }
            }
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "The default sort order is **descending** by primary key (`sort=-id`).\n\nUsing the [sorting syntax](/global-api/sorting-syntax), the following fields are available for sorting:\n  - `id`\n  - `name`\n  - `abbreviation`"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_count"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_cursor_end"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_cursor_start"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_limit"
          }
        ],
        "responses": {
          "200": {
            "description": "A dictionary with a `collection` property that contains an array of up to\n`limit` `Warehouse` objects. If no warehouses are found the array will be empty.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "collection": {
                      "type": "array",
                      "description": "A list of `Warehouse` objects.",
                      "items": {
                        "$ref": "#/components/schemas/Inventory_API_v1_Warehouse"
                      }
                    },
                    "has_more": {
                      "$ref": "#/components/schemas/Inventory_API_v1_has_more"
                    },
                    "next": {
                      "$ref": "#/components/schemas/Inventory_API_v1_next"
                    },
                    "previous": {
                      "$ref": "#/components/schemas/Inventory_API_v1_previous"
                    },
                    "meta": {
                      "$ref": "#/components/schemas/Inventory_API_v1_meta"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Inventory_API_v1_400-bad-request"
          },
          "422": {
            "$ref": "#/components/responses/Inventory_API_v1_422-unprocessable"
          },
          "500": {
            "$ref": "#/components/responses/Inventory_API_v1_500-internal-server-error"
          }
        }
      },
      "post": {
        "description": "Creates a new `Warehouse` in ShipStream according to the request body.",
        "summary": "Create Warehouse",
        "tags": [
          "Warehouses"
        ],
        "operationId": "createWarehouse",
        "requestBody": {
          "description": "An object conforming to the `Warehouse` schema to be created.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Inventory_API_v1_Warehouse"
              }
            }
          }
        },
        "responses": {
          "201": {
            "$ref": "#/components/responses/Inventory_API_v1_201-created-single"
          },
          "400": {
            "$ref": "#/components/responses/Inventory_API_v1_400-bad-request"
          },
          "422": {
            "$ref": "#/components/responses/Inventory_API_v1_422-unprocessable"
          },
          "500": {
            "$ref": "#/components/responses/Inventory_API_v1_500-internal-server-error"
          }
        }
      }
    },
    "/v1/inventory/warehouses/{id}": {
      "get": {
        "summary": "Get one Warehouse",
        "description": "Returns a single `Warehouse` object specified by its `id` path parameter.",
        "tags": [
          "Warehouses"
        ],
        "operationId": "getWarehouse",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The `id` of the `Warehouse`.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1
            },
            "required": true
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_warehouse-fields"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "resource": {
                      "$ref": "#/components/schemas/Inventory_API_v1_Warehouse"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Inventory_API_v1_400-bad-request"
          },
          "404": {
            "$ref": "#/components/responses/Inventory_API_v1_404-not-found"
          },
          "422": {
            "$ref": "#/components/responses/Inventory_API_v1_422-unprocessable"
          },
          "500": {
            "$ref": "#/components/responses/Inventory_API_v1_500-internal-server-error"
          }
        }
      },
      "put": {
        "summary": "Update Warehouse",
        "description": "Updates a `Warehouse` specified by its `id` path parameter and according to the request body.",
        "tags": [
          "Warehouses"
        ],
        "operationId": "updateWarehouse",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The `id` of the `Warehouse`.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1
            },
            "required": true
          }
        ],
        "requestBody": {
          "description": "An object conforming to the Warehouse schema to be merged with the existing Warehouse.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Inventory_API_v1_Warehouse"
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/Inventory_API_v1_200-ok-no-body"
          },
          "400": {
            "$ref": "#/components/responses/Inventory_API_v1_400-bad-request"
          },
          "404": {
            "$ref": "#/components/responses/Inventory_API_v1_404-not-found"
          },
          "422": {
            "$ref": "#/components/responses/Inventory_API_v1_422-unprocessable"
          },
          "500": {
            "$ref": "#/components/responses/Inventory_API_v1_500-internal-server-error"
          }
        }
      },
      "delete": {
        "summary": "Delete Warehouse",
        "description": "Deletes a `Warehouse` specified by its `id` path parameter.",
        "tags": [
          "Warehouses"
        ],
        "operationId": "deleteWarehouse",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The `id` of the `Warehouse`.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1
            },
            "required": true
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/Inventory_API_v1_200-ok-no-body"
          },
          "400": {
            "$ref": "#/components/responses/Inventory_API_v1_400-bad-request"
          },
          "404": {
            "$ref": "#/components/responses/Inventory_API_v1_404-not-found"
          },
          "500": {
            "$ref": "#/components/responses/Inventory_API_v1_500-internal-server-error"
          }
        }
      }
    },
    "/v1/inventory/warehouses/{id}/locations": {
      "get": {
        "summary": "List all Locations",
        "description": "Returns a list of `Location` objects specified by a warehouse `id` path parameter.",
        "tags": [
          "Locations"
        ],
        "operationId": "getLocations",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "required": true,
            "description": "The `id` of the referenced `Warehouse`."
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_location-fields"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_fields-lot"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_fields-lot-lot_type"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_fields-lot-product"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_fields-product"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_fields-product-merchant"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_fields-rack"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_fields-rack-rack_type"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_fields-rack-warehouse"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_fields-slot_type"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_location-filter"
          },
          {
            "name": "sort",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": false,
            "description": "The default sort order is **descending** by primary key (`sort=-id`).\nThe following fields are available for sorting:\n  - `id`\n  - `label`"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_count"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_cursor_end"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_cursor_start"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_limit"
          }
        ],
        "responses": {
          "200": {
            "description": "A dictionary with a `collection` property that contains a list of up to\n`limit` `Location` objects matching the query.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "collection": {
                      "type": "array",
                      "description": "A list of `Location` objects.",
                      "items": {
                        "$ref": "#/components/schemas/Inventory_API_v1_Location"
                      }
                    },
                    "included": {
                      "$ref": "#/components/schemas/Inventory_API_v1_locations"
                    },
                    "has_more": {
                      "$ref": "#/components/schemas/Inventory_API_v1_has_more"
                    },
                    "next": {
                      "$ref": "#/components/schemas/Inventory_API_v1_next"
                    },
                    "previous": {
                      "$ref": "#/components/schemas/Inventory_API_v1_previous"
                    },
                    "meta": {
                      "$ref": "#/components/schemas/Inventory_API_v1_meta"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Inventory_API_v1_400-bad-request"
          },
          "500": {
            "$ref": "#/components/responses/Inventory_API_v1_500-internal-server-error"
          }
        }
      },
      "post": {
        "summary": "Create Location",
        "description": "Creates a new `Location` specified by a warehouse `id` and according to the request body.",
        "tags": [
          "Locations"
        ],
        "operationId": "createLocation",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "required": true,
            "description": "The `id` of the referenced `Warehouse`."
          }
        ],
        "requestBody": {
          "description": "An object conforming to the Inventory Warehouse Location schema to be created.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Inventory_API_v1_Location"
              }
            }
          }
        },
        "responses": {
          "201": {
            "$ref": "#/components/responses/Inventory_API_v1_201-created-single"
          },
          "400": {
            "$ref": "#/components/responses/Inventory_API_v1_400-bad-request"
          },
          "404": {
            "$ref": "#/components/responses/Inventory_API_v1_404-not-found"
          },
          "422": {
            "$ref": "#/components/responses/Inventory_API_v1_422-unprocessable"
          },
          "500": {
            "$ref": "#/components/responses/Inventory_API_v1_500-internal-server-error"
          }
        }
      }
    },
    "/v1/inventory/warehouses/{id}/locations/{location_id}": {
      "get": {
        "summary": "Get one Location",
        "description": "Returns a single `Location` object specified by the warehouse `id` and `location_id` path parameters.",
        "tags": [
          "Locations"
        ],
        "operationId": "getLocation",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "required": true,
            "description": "The `id` of the referenced `Warehouse`."
          },
          {
            "name": "location_id",
            "in": "path",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "required": true,
            "description": "The `id` of the referenced `Location`."
          },
          {
            "name": "fields",
            "in": "query",
            "required": false,
            "description": "Specify additional fields of the `Location` object to be included in the response. See the [selecting fields](/global-api/selecting-fields) page for more information.",
            "explode": false,
            "schema": {
              "$ref": "#/components/schemas/Inventory_API_v1_location-fields-enum"
            }
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_fields-lot"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_fields-product"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_fields-rack"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_fields-slot_type"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "resource": {
                      "$ref": "#/components/schemas/Inventory_API_v1_Location"
                    },
                    "included": {
                      "$ref": "#/components/schemas/Inventory_API_v1_locations"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Inventory_API_v1_400-bad-request"
          },
          "404": {
            "$ref": "#/components/responses/Inventory_API_v1_404-not-found"
          },
          "500": {
            "$ref": "#/components/responses/Inventory_API_v1_500-internal-server-error"
          }
        }
      },
      "put": {
        "summary": "Update Location",
        "description": "Updates a `Location` specified by the warehouse `id` and `location_id` path parameters and according to the request body.",
        "tags": [
          "Locations"
        ],
        "operationId": "updateLocationProperties",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "required": true,
            "description": "The `id` of the referenced `Warehouse`."
          },
          {
            "name": "location_id",
            "in": "path",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "required": true,
            "description": "The `id` of the referenced `Location`."
          }
        ],
        "requestBody": {
          "description": "A `Location` object specifying the fields to be updated.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Inventory_API_v1_Location"
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/Inventory_API_v1_200-ok-no-body"
          },
          "400": {
            "$ref": "#/components/responses/Inventory_API_v1_400-bad-request"
          },
          "404": {
            "$ref": "#/components/responses/Inventory_API_v1_404-not-found"
          },
          "422": {
            "$ref": "#/components/responses/Inventory_API_v1_422-unprocessable"
          },
          "500": {
            "$ref": "#/components/responses/Inventory_API_v1_500-internal-server-error"
          }
        }
      },
      "delete": {
        "summary": "Delete Location",
        "description": "Deletes an existing Location specified by the warehouse `id` and `location_id` path parameters.",
        "tags": [
          "Locations"
        ],
        "operationId": "deleteLocation",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "required": true,
            "description": "The `id` of the referenced `Warehouse`."
          },
          {
            "name": "location_id",
            "in": "path",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "required": true,
            "description": "The `id` of the referenced `Location`."
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/Inventory_API_v1_200-ok-no-body"
          },
          "400": {
            "$ref": "#/components/responses/Inventory_API_v1_400-bad-request"
          },
          "404": {
            "$ref": "#/components/responses/Inventory_API_v1_404-not-found"
          },
          "422": {
            "$ref": "#/components/responses/Inventory_API_v1_422-unprocessable"
          },
          "500": {
            "$ref": "#/components/responses/Inventory_API_v1_500-internal-server-error"
          }
        }
      }
    },
    "/v1/inventory/warehouses/{id}/locationsByLabel/{label}": {
      "get": {
        "summary": "Get Location by Label",
        "tags": [
          "Locations"
        ],
        "operationId": "getLocationByLabel",
        "description": "Returns a single `Location` object specified by the warehouse `id` and location `label` path parameters.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "required": true,
            "description": "The `id` of the referenced `Warehouse`."
          },
          {
            "name": "label",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true,
            "description": "The location's human-readable label and barcode value (without barcode prefix). Be sure to url-encode the\nthe value to avoid special characters being interpreted as not part of the label."
          },
          {
            "name": "fields",
            "in": "query",
            "required": false,
            "description": "Specify additional fields of the `Location` object to be included in the response. See the [selecting fields](/global-api/selecting-fields) page for more information.",
            "explode": false,
            "schema": {
              "$ref": "#/components/schemas/Inventory_API_v1_location-fields-enum"
            }
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_fields-lot"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_fields-product"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_fields-rack"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_fields-slot_type"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "resource": {
                      "$ref": "#/components/schemas/Inventory_API_v1_Location"
                    },
                    "included": {
                      "$ref": "#/components/schemas/Inventory_API_v1_locations"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Inventory_API_v1_400-bad-request"
          },
          "404": {
            "$ref": "#/components/responses/Inventory_API_v1_404-not-found"
          },
          "422": {
            "$ref": "#/components/responses/Inventory_API_v1_422-unprocessable"
          },
          "500": {
            "$ref": "#/components/responses/Inventory_API_v1_200-ok-no-body"
          }
        }
      }
    },
    "/v1/inventory/warehouses/{id}/locations/batch": {
      "post": {
        "summary": "Batch update Locations",
        "description": "Creates or updates a `Location` collection specified by a warehouse `id` path parameter and according to the request body.",
        "tags": [
          "Locations"
        ],
        "operationId": "batchUpdateLocations",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1
            },
            "required": true,
            "description": "The `id` of the referenced `Warehouse`."
          }
        ],
        "requestBody": {
          "description": "An object conforming to the Inventory Warehouse Location schemas batch to be created or updated.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "onError": {
                    "type": "string",
                    "enum": [
                      "continue",
                      "stop",
                      "abort"
                    ],
                    "default": "continue",
                    "description": "The value determining how errors are to be handled.\n- `continue` The current entity will be rolled back and any remaining entities will continue to be processed.\n- `stop` The current entity will be rolled back and the request will stop processing any remaining entities.\n- `abort` The entire request will be rolled back."
                  },
                  "operation": {
                    "type": "string",
                    "enum": [
                      "upsert",
                      "insert",
                      "update",
                      "delete"
                    ],
                    "description": "- `upsert`: Create if it doesn't exist, otherwise update\n- `insert`: Create only, existing locations will not be updated\n- `update`: Update existing locations, no locations will be created\n- `delete`: Delete locations",
                    "default": "upsert"
                  },
                  "locations": {
                    "type": "array",
                    "items": {
                      "$ref": "#/components/schemas/Inventory_API_v1_LocationCreateUpdateRef"
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "No fatal client or server errors occurred. Check the response to see which items were updated successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "committed": {
                      "type": "integer",
                      "example": 1,
                      "description": "Number of locations that were successfully inserted/updated in this batch."
                    },
                    "failed": {
                      "type": "integer",
                      "example": 1,
                      "description": "The number of locations that could not be updated due to an error. Check the response `results` for more details."
                    },
                    "results": {
                      "type": "array",
                      "description": "An array of objects describing the resources that were created.",
                      "minItems": 1,
                      "items": {
                        "type": "object",
                        "properties": {
                          "resource": {
                            "type": "object",
                            "properties": {
                              "type": {
                                "type": "string",
                                "enum": [
                                  "Location"
                                ],
                                "readOnly": true
                              },
                              "id": {
                                "type": "integer",
                                "description": "The internal `id` property used as a path parameter in a resource lookup.",
                                "format": "int32",
                                "example": 42,
                                "nullable": true
                              },
                              "label": {
                                "type": "string",
                                "description": "A unique Label for the inventory location under a specific warehouse.",
                                "example": "RK07-R2-S1-L1",
                                "nullable": true
                              }
                            }
                          },
                          "status": {
                            "type": "string",
                            "description": "Indicates the updated status of each batch item if `onError` option is `continue` or `stop`.",
                            "example": "committed",
                            "enum": [
                              "committed",
                              "user-error",
                              "unexpected-error"
                            ]
                          },
                          "message": {
                            "type": "string",
                            "description": "Error/warning messages if there are any errors/warnings."
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Inventory_API_v1_400-bad-request"
          },
          "404": {
            "$ref": "#/components/responses/Inventory_API_v1_404-not-found"
          },
          "422": {
            "$ref": "#/components/responses/Inventory_API_v1_422-unprocessable"
          },
          "500": {
            "$ref": "#/components/responses/Inventory_API_v1_500-internal-server-error"
          }
        }
      }
    },
    "/v1/inventory/warehouses/{id}/locations/tags": {
      "post": {
        "summary": "Batch Update Location Tags",
        "description": "Adds, removes or replaces `LocationTag` assignments on many locations at once, mirroring the\nadmin location grid's tag mass actions.\n\nEvery referenced location must exist in the warehouse. A tag that has been soft-deleted\ncannot be newly assigned, but `add` and `remove` leave an already-assigned deleted tag in\nplace on locations the operation does not affect. `replace` is stricter: a soft-deleted tag\nmay not appear in a `replace` payload at all, even if every targeted location already\ncarries it.",
        "tags": [
          "Locations"
        ],
        "operationId": "batchUpdateLocationTags",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1
            },
            "required": true,
            "description": "The `id` of the referenced `Warehouse`."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "operation": {
                    "type": "string",
                    "enum": [
                      "add",
                      "remove",
                      "replace"
                    ],
                    "description": "- `add`: Assign the tags to each location, keeping its existing tags\n- `remove`: Unassign the tags from each location, keeping its other tags\n- `replace`: Replace each location's whole tag set with the submitted tags"
                  },
                  "tags": {
                    "type": "array",
                    "maxItems": 100,
                    "description": "The `LocationTag` references to add, remove or assign. May only be empty for the\n`replace` operation, which then clears every tag from the locations.",
                    "items": {
                      "$ref": "#/components/schemas/Inventory_API_v1_LocationTagRef"
                    }
                  },
                  "locations": {
                    "type": "array",
                    "minItems": 1,
                    "maxItems": 1000,
                    "description": "The ids of the `Location` objects to update. The whole batch is applied in one\ntransaction that holds a row lock on each location, so the limit is well below\nthat of a read endpoint; split larger sets into successive requests.",
                    "items": {
                      "type": "integer",
                      "minimum": 1
                    }
                  }
                },
                "required": [
                  "operation",
                  "tags",
                  "locations"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "The tag update was applied to every referenced location.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "updated": {
                      "type": "integer",
                      "example": 42,
                      "description": "The number of locations the operation was applied to. This counts every\nreferenced location, including any whose tag set the operation left unchanged."
                    },
                    "meta": {
                      "$ref": "#/components/schemas/Inventory_API_v1_meta"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Inventory_API_v1_400-bad-request"
          },
          "404": {
            "$ref": "#/components/responses/Inventory_API_v1_404-not-found"
          },
          "422": {
            "$ref": "#/components/responses/Inventory_API_v1_422-unprocessable"
          },
          "500": {
            "$ref": "#/components/responses/Inventory_API_v1_500-internal-server-error"
          }
        }
      }
    },
    "/v1/inventory/warehouses/{id}/replenishment-policies": {
      "get": {
        "summary": "List Policies",
        "description": "Returns the Replenishment Policy configurations of one warehouse specified by\nits `id` path parameter, in evaluation order. Calculated per-Product output is\navailable from the Replenishment Report endpoint.\n\nProduct subjects keep their writable ID fields. An editor can additionally\nrequest `fields=merchants,product_profiles,handling_classes` with narrow\nnested fields such as `fields:product_profiles=name,code` to resolve only\nthe selected objects through `included`. Load complete choice lists from\ntheir owning paged endpoints with similarly narrow fields:\n\n  - `/v1/system/merchants?fields=code,name,status` (active by default);\n  - `/v1/inventory/product-profiles?fields=name,code`;\n  - `/v1/inventory/handling-classes?fields=name,code&filter=warehouse_id:{id}`;\n  - `/v1/inventory/warehouses/{id}/location-profiles?fields=name,status&filter=status:ready`.\n\nLoad configured demand-period choices once from\n`/v1/inventory/warehouses/{id}/replenishment-policies/options`.\n\nPaging with `cursor_start` or `cursor_end` requires an explicit `id` or `-id`\nsort: the cursor is a range over the identifier, which the default evaluation\norder does not follow. A default-ordered listing therefore reports `has_more`\nwithout continuation links; to enumerate a collection larger than one page,\nrequest `sort=id` (or raise `limit`).",
        "tags": [
          "Replenishment"
        ],
        "operationId": "getReplenishmentPolicies",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "required": true,
            "description": "The `id` of the referenced `Warehouse`."
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_replenishment-policy-fields"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_fields-slotting-rule-merchants"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_fields-slotting-rule-product-profiles"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_fields-slotting-rule-handling-classes"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_fields-replenishment-policy-location_profile"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_replenishment-policy-filter"
          },
          {
            "name": "sort",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": false,
            "description": "The default sort order is **ascending** by `sort_order`, which is the order in which policies are evaluated for a Product. Every sort carries an ascending `id` tie-break, because duplicate `sort_order` values are allowed.\nThe following fields are available for sorting:\n  - `id`\n  - `name`\n  - `sort_order`\n  - `updated_at`"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_count"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_cursor_end"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_cursor_start"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_limit"
          }
        ],
        "responses": {
          "200": {
            "description": "A dictionary with a `collection` property containing up to `limit`\n`ReplenishmentPolicy` objects matching the query.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "collection": {
                      "type": "array",
                      "description": "A list of `ReplenishmentPolicy` objects.",
                      "items": {
                        "$ref": "#/components/schemas/Inventory_API_v1_ReplenishmentPolicy"
                      }
                    },
                    "has_more": {
                      "$ref": "#/components/schemas/Inventory_API_v1_has_more"
                    },
                    "next": {
                      "$ref": "#/components/schemas/Inventory_API_v1_next"
                    },
                    "previous": {
                      "$ref": "#/components/schemas/Inventory_API_v1_previous"
                    },
                    "included": {
                      "$ref": "#/components/schemas/Inventory_API_v1_replenishment-policies"
                    },
                    "meta": {
                      "$ref": "#/components/schemas/Inventory_API_v1_meta"
                    }
                  }
                },
                "example": {
                  "collection": [
                    {
                      "type": "ReplenishmentPolicy",
                      "id": 7,
                      "name": "Fast Movers - Forward Pick",
                      "is_active": true,
                      "sort_order": 10,
                      "merchant_ids": [
                        2,
                        7
                      ],
                      "product_profile_ids": [
                        12,
                        15
                      ],
                      "product_profile_match_mode": "any",
                      "handling_class_ids": [
                        4
                      ],
                      "merchants": [
                        {
                          "type": "Merchant",
                          "id": 2
                        },
                        {
                          "type": "Merchant",
                          "id": 7
                        }
                      ],
                      "product_profiles": [
                        {
                          "type": "ProductProfile",
                          "id": 12
                        },
                        {
                          "type": "ProductProfile",
                          "id": 15
                        }
                      ],
                      "handling_classes": [
                        {
                          "type": "HandlingClass",
                          "id": 4
                        }
                      ],
                      "location_profile": {
                        "type": "LocationProfile",
                        "id": 3
                      },
                      "demand_period_days": 30,
                      "trigger_doi_days": 7,
                      "target_doi_days": 21,
                      "qualification_reason": null,
                      "created_at": "2026-08-01T09:30:00Z",
                      "updated_at": "2026-08-12T10:15:00Z"
                    }
                  ],
                  "included": {
                    "Merchant": [
                      {
                        "type": "Merchant",
                        "id": 2,
                        "code": "retail_direct",
                        "name": "Retail Direct",
                        "status": "active"
                      },
                      {
                        "type": "Merchant",
                        "id": 7,
                        "code": "marketplace",
                        "name": "Marketplace",
                        "status": "active"
                      }
                    ],
                    "ProductProfile": [
                      {
                        "type": "ProductProfile",
                        "id": 12,
                        "name": "Regulated Aerosols",
                        "code": "regulated_aerosols"
                      },
                      {
                        "type": "ProductProfile",
                        "id": 15,
                        "name": "Fast Movers",
                        "code": "fast_movers"
                      }
                    ],
                    "HandlingClass": [
                      {
                        "type": "HandlingClass",
                        "id": 4,
                        "name": "Hazmat",
                        "code": "hazmat"
                      }
                    ],
                    "LocationProfile": [
                      {
                        "type": "LocationProfile",
                        "id": 3,
                        "name": "Pick Face",
                        "status": "ready",
                        "member_count": 1275
                      }
                    ]
                  },
                  "has_more": false,
                  "next": null,
                  "previous": null,
                  "meta": {
                    "processing_time": 0.0083,
                    "cursor_start": null,
                    "cursor_end": null
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Inventory_API_v1_400-bad-request"
          },
          "404": {
            "$ref": "#/components/responses/Inventory_API_v1_404-not-found"
          },
          "500": {
            "$ref": "#/components/responses/Inventory_API_v1_500-internal-server-error"
          }
        },
        "x-codeSamples": [
          {
            "lang": "curl",
            "label": "cURL",
            "source": "curl --request GET \\\n  --url 'https://example.shipstream.app/api/global/v1/inventory/warehouses/1/replenishment-policies?fields=merchants,product_profiles,handling_classes&fields:merchants=code,name,status&fields:product_profiles=name,code&fields:handling_classes=name,code&fields:location_profile=name,status,member_count&limit=100' \\\n  --header 'Authorization: Bearer <token>'"
          },
          {
            "lang": "python",
            "label": "Python",
            "source": "import requests\n\nurl = \"https://example.shipstream.app/api/global/v1/inventory/warehouses/1/replenishment-policies?fields=merchants,product_profiles,handling_classes&fields:merchants=code,name,status&fields:product_profiles=name,code&fields:handling_classes=name,code&fields:location_profile=name,status,member_count&limit=100\"\nheaders = {\"Authorization\": \"Bearer <token>\"}\n\nresponse = requests.get(url, headers=headers)\nprint(response.text)"
          },
          {
            "lang": "javascript",
            "label": "JavaScript",
            "source": "const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};\n\nfetch('https://example.shipstream.app/api/global/v1/inventory/warehouses/1/replenishment-policies?fields=merchants,product_profiles,handling_classes&fields:merchants=code,name,status&fields:product_profiles=name,code&fields:handling_classes=name,code&fields:location_profile=name,status,member_count&limit=100', options)\n  .then(response => response.json())\n  .then(response => console.log(response));"
          },
          {
            "lang": "php",
            "label": "PHP",
            "source": "<?php\n\n$curl = curl_init();\ncurl_setopt($curl, CURLOPT_URL, 'https://example.shipstream.app/api/global/v1/inventory/warehouses/1/replenishment-policies?fields=merchants,product_profiles,handling_classes&fields:merchants=code,name,status&fields:product_profiles=name,code&fields:handling_classes=name,code&fields:location_profile=name,status,member_count&limit=100');\ncurl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);\ncurl_setopt($curl, CURLOPT_HTTPHEADER, ['Authorization: Bearer <token>']);\n\n$response = curl_exec($curl);\ncurl_close($curl);\necho $response;"
          },
          {
            "lang": "go",
            "label": "Go",
            "source": "package main\n\nimport (\n    \"fmt\"\n    \"io\"\n    \"net/http\"\n)\n\nfunc main() {\n    req, _ := http.NewRequest(\"GET\", \"https://example.shipstream.app/api/global/v1/inventory/warehouses/1/replenishment-policies?fields=merchants,product_profiles,handling_classes&fields:merchants=code,name,status&fields:product_profiles=name,code&fields:handling_classes=name,code&fields:location_profile=name,status,member_count&limit=100\", nil)\n    req.Header.Add(\"Authorization\", \"Bearer <token>\")\n    response, _ := http.DefaultClient.Do(req)\n    defer response.Body.Close()\n    body, _ := io.ReadAll(response.Body)\n    fmt.Println(string(body))\n}"
          },
          {
            "lang": "java",
            "label": "Java",
            "source": "HttpResponse<String> response = Unirest.get(\"https://example.shipstream.app/api/global/v1/inventory/warehouses/1/replenishment-policies?fields=merchants,product_profiles,handling_classes&fields:merchants=code,name,status&fields:product_profiles=name,code&fields:handling_classes=name,code&fields:location_profile=name,status,member_count&limit=100\")\n  .header(\"Authorization\", \"Bearer <token>\")\n  .asString();"
          },
          {
            "lang": "ruby",
            "label": "Ruby",
            "source": "require 'uri'\nrequire 'net/http'\n\nurl = URI('https://example.shipstream.app/api/global/v1/inventory/warehouses/1/replenishment-policies?fields=merchants,product_profiles,handling_classes&fields:merchants=code,name,status&fields:product_profiles=name,code&fields:handling_classes=name,code&fields:location_profile=name,status,member_count&limit=100')\nrequest = Net::HTTP::Get.new(url)\nrequest['Authorization'] = 'Bearer <token>'\n\nresponse = Net::HTTP.start(url.hostname, url.port, use_ssl: true) do |http|\n  http.request(request)\nend\nputs response.read_body"
          }
        ]
      },
      "post": {
        "summary": "Create Policy",
        "description": "Creates a Replenishment Policy in the warehouse specified by its `id` path\nparameter.\n\nA Policy created without `is_active` is inactive: it is not evaluated and no\nReplenishment rebuild is requested. Creating an active Policy invalidates the\nwarehouse's published Replenishment results and requests a rebuild, so the\nreport catches up asynchronously.",
        "tags": [
          "Replenishment"
        ],
        "operationId": "createReplenishmentPolicy",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "required": true,
            "description": "The `id` of the referenced `Warehouse`."
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_replenishment-policy-fields"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_fields-slotting-rule-merchants"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_fields-slotting-rule-product-profiles"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_fields-slotting-rule-handling-classes"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_fields-replenishment-policy-location_profile"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Inventory_API_v1_ReplenishmentPolicyCreate"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "The Replenishment Policy was created successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "resource": {
                      "$ref": "#/components/schemas/Inventory_API_v1_ReplenishmentPolicy"
                    },
                    "included": {
                      "$ref": "#/components/schemas/Inventory_API_v1_replenishment-policies"
                    },
                    "meta": {
                      "$ref": "#/components/schemas/Inventory_API_v1_meta"
                    }
                  }
                },
                "example": {
                  "resource": {
                    "type": "ReplenishmentPolicy",
                    "id": 7,
                    "name": "Fast Movers - Forward Pick",
                    "is_active": false,
                    "sort_order": 0,
                    "merchant_ids": [
                      2,
                      7
                    ],
                    "product_profile_ids": [
                      12,
                      15
                    ],
                    "product_profile_match_mode": "any",
                    "handling_class_ids": [
                      4
                    ],
                    "merchants": [
                      {
                        "type": "Merchant",
                        "id": 2
                      },
                      {
                        "type": "Merchant",
                        "id": 7
                      }
                    ],
                    "product_profiles": [
                      {
                        "type": "ProductProfile",
                        "id": 12
                      },
                      {
                        "type": "ProductProfile",
                        "id": 15
                      }
                    ],
                    "handling_classes": [
                      {
                        "type": "HandlingClass",
                        "id": 4
                      }
                    ],
                    "location_profile": {
                      "type": "LocationProfile",
                      "id": 3
                    },
                    "demand_period_days": 30,
                    "trigger_doi_days": 7,
                    "target_doi_days": 21,
                    "qualification_reason": "inactive",
                    "created_at": "2026-08-12T11:30:00Z",
                    "updated_at": "2026-08-12T11:30:00Z"
                  },
                  "included": {
                    "Merchant": [
                      {
                        "type": "Merchant",
                        "id": 2,
                        "code": "retail_direct",
                        "name": "Retail Direct",
                        "status": "active"
                      },
                      {
                        "type": "Merchant",
                        "id": 7,
                        "code": "marketplace",
                        "name": "Marketplace",
                        "status": "active"
                      }
                    ],
                    "ProductProfile": [
                      {
                        "type": "ProductProfile",
                        "id": 12,
                        "name": "Regulated Aerosols",
                        "code": "regulated_aerosols"
                      },
                      {
                        "type": "ProductProfile",
                        "id": 15,
                        "name": "Fast Movers",
                        "code": "fast_movers"
                      }
                    ],
                    "HandlingClass": [
                      {
                        "type": "HandlingClass",
                        "id": 4,
                        "name": "Hazmat",
                        "code": "hazmat"
                      }
                    ],
                    "LocationProfile": [
                      {
                        "type": "LocationProfile",
                        "id": 3,
                        "name": "Pick Face",
                        "status": "ready",
                        "member_count": 1275
                      }
                    ]
                  },
                  "meta": {
                    "processing_time": 0.0114
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Inventory_API_v1_400-bad-request"
          },
          "404": {
            "$ref": "#/components/responses/Inventory_API_v1_404-not-found"
          },
          "422": {
            "$ref": "#/components/responses/Inventory_API_v1_422-unprocessable"
          },
          "500": {
            "$ref": "#/components/responses/Inventory_API_v1_500-internal-server-error"
          }
        },
        "x-codeSamples": [
          {
            "lang": "curl",
            "label": "cURL",
            "source": "curl --request POST \\\n  --url 'https://example.shipstream.app/api/global/v1/inventory/warehouses/1/replenishment-policies?fields=merchants,product_profiles,handling_classes&fields:merchants=code,name,status&fields:product_profiles=name,code&fields:handling_classes=name,code&fields:location_profile=name,status,member_count' \\\n  --header 'Authorization: Bearer <token>' \\\n  --header 'Content-Type: application/json' \\\n  --data '{\"name\":\"Fast Movers - Forward Pick\",\"is_active\":false,\"sort_order\":10,\"merchant_ids\":[2,7],\"product_profile_ids\":[12,15],\"product_profile_match_mode\":\"any\",\"handling_class_ids\":[4],\"location_profile_id\":3,\"demand_period_days\":30,\"trigger_doi_days\":7,\"target_doi_days\":21}'"
          },
          {
            "lang": "python",
            "label": "Python",
            "source": "import json\nimport requests\n\nurl = \"https://example.shipstream.app/api/global/v1/inventory/warehouses/1/replenishment-policies?fields=merchants,product_profiles,handling_classes&fields:merchants=code,name,status&fields:product_profiles=name,code&fields:handling_classes=name,code&fields:location_profile=name,status,member_count\"\nheaders = {\"Authorization\": \"Bearer <token>\"}\npayload = json.loads('{\"name\":\"Fast Movers - Forward Pick\",\"is_active\":false,\"sort_order\":10,\"merchant_ids\":[2,7],\"product_profile_ids\":[12,15],\"product_profile_match_mode\":\"any\",\"handling_class_ids\":[4],\"location_profile_id\":3,\"demand_period_days\":30,\"trigger_doi_days\":7,\"target_doi_days\":21}')\n\nresponse = requests.request('POST', url, headers=headers, json=payload)\nprint(response.text)"
          },
          {
            "lang": "javascript",
            "label": "JavaScript",
            "source": "const options = {\n  method: 'POST',\n  headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},\n  body: JSON.stringify({\"name\":\"Fast Movers - Forward Pick\",\"is_active\":false,\"sort_order\":10,\"merchant_ids\":[2,7],\"product_profile_ids\":[12,15],\"product_profile_match_mode\":\"any\",\"handling_class_ids\":[4],\"location_profile_id\":3,\"demand_period_days\":30,\"trigger_doi_days\":7,\"target_doi_days\":21}),\n};\n\nfetch('https://example.shipstream.app/api/global/v1/inventory/warehouses/1/replenishment-policies?fields=merchants,product_profiles,handling_classes&fields:merchants=code,name,status&fields:product_profiles=name,code&fields:handling_classes=name,code&fields:location_profile=name,status,member_count', options)\n  .then(response => response.json())\n  .then(response => console.log(response));"
          },
          {
            "lang": "php",
            "label": "PHP",
            "source": "<?php\n\n$curl = curl_init();\ncurl_setopt_array($curl, [\n    CURLOPT_URL => 'https://example.shipstream.app/api/global/v1/inventory/warehouses/1/replenishment-policies?fields=merchants,product_profiles,handling_classes&fields:merchants=code,name,status&fields:product_profiles=name,code&fields:handling_classes=name,code&fields:location_profile=name,status,member_count',\n    CURLOPT_RETURNTRANSFER => TRUE,\n    CURLOPT_CUSTOMREQUEST => 'POST',\n    CURLOPT_POSTFIELDS => '{\"name\":\"Fast Movers - Forward Pick\",\"is_active\":false,\"sort_order\":10,\"merchant_ids\":[2,7],\"product_profile_ids\":[12,15],\"product_profile_match_mode\":\"any\",\"handling_class_ids\":[4],\"location_profile_id\":3,\"demand_period_days\":30,\"trigger_doi_days\":7,\"target_doi_days\":21}',\n    CURLOPT_HTTPHEADER => ['Authorization: Bearer <token>', 'Content-Type: application/json'],\n]);\n\n$response = curl_exec($curl);\ncurl_close($curl);\necho $response;"
          },
          {
            "lang": "go",
            "label": "Go",
            "source": "package main\n\nimport (\n    \"fmt\"\n    \"io\"\n    \"net/http\"\n    \"strings\"\n)\n\nfunc main() {\n    request, _ := http.NewRequest(\"POST\", \"https://example.shipstream.app/api/global/v1/inventory/warehouses/1/replenishment-policies?fields=merchants,product_profiles,handling_classes&fields:merchants=code,name,status&fields:product_profiles=name,code&fields:handling_classes=name,code&fields:location_profile=name,status,member_count\", strings.NewReader(`{\"name\":\"Fast Movers - Forward Pick\",\"is_active\":false,\"sort_order\":10,\"merchant_ids\":[2,7],\"product_profile_ids\":[12,15],\"product_profile_match_mode\":\"any\",\"handling_class_ids\":[4],\"location_profile_id\":3,\"demand_period_days\":30,\"trigger_doi_days\":7,\"target_doi_days\":21}`))\n    request.Header.Add(\"Authorization\", \"Bearer <token>\")\n    request.Header.Add(\"Content-Type\", \"application/json\")\n    response, _ := http.DefaultClient.Do(request)\n    defer response.Body.Close()\n    body, _ := io.ReadAll(response.Body)\n    fmt.Println(string(body))\n}"
          },
          {
            "lang": "java",
            "label": "Java",
            "source": "HttpResponse<String> response = Unirest.post(\"https://example.shipstream.app/api/global/v1/inventory/warehouses/1/replenishment-policies?fields=merchants,product_profiles,handling_classes&fields:merchants=code,name,status&fields:product_profiles=name,code&fields:handling_classes=name,code&fields:location_profile=name,status,member_count\")\n  .header(\"Authorization\", \"Bearer <token>\")\n  .header(\"Content-Type\", \"application/json\")\n  .body(\"{\\\"name\\\":\\\"Fast Movers - Forward Pick\\\",\\\"is_active\\\":false,\\\"sort_order\\\":10,\\\"merchant_ids\\\":[2,7],\\\"product_profile_ids\\\":[12,15],\\\"product_profile_match_mode\\\":\\\"any\\\",\\\"handling_class_ids\\\":[4],\\\"location_profile_id\\\":3,\\\"demand_period_days\\\":30,\\\"trigger_doi_days\\\":7,\\\"target_doi_days\\\":21}\")\n  .asString();"
          },
          {
            "lang": "ruby",
            "label": "Ruby",
            "source": "require 'uri'\nrequire 'net/http'\n\nurl = URI('https://example.shipstream.app/api/global/v1/inventory/warehouses/1/replenishment-policies?fields=merchants,product_profiles,handling_classes&fields:merchants=code,name,status&fields:product_profiles=name,code&fields:handling_classes=name,code&fields:location_profile=name,status,member_count')\nrequest = Net::HTTP::Post.new(url)\nrequest['Authorization'] = 'Bearer <token>'\nrequest['Content-Type'] = 'application/json'\nrequest.body = '{\"name\":\"Fast Movers - Forward Pick\",\"is_active\":false,\"sort_order\":10,\"merchant_ids\":[2,7],\"product_profile_ids\":[12,15],\"product_profile_match_mode\":\"any\",\"handling_class_ids\":[4],\"location_profile_id\":3,\"demand_period_days\":30,\"trigger_doi_days\":7,\"target_doi_days\":21}'\n\nresponse = Net::HTTP.start(url.hostname, url.port, use_ssl: true) do |http|\n  http.request(request)\nend\nputs response.read_body"
          }
        ]
      }
    },
    "/v1/inventory/warehouses/{id}/replenishment-policies/options": {
      "get": {
        "summary": "List Policy Options",
        "description": "Returns the configured Product Velocity periods that may be selected when\ncreating or editing a Replenishment Policy in the warehouse specified by\n`id`. Load these measured-small options once when opening the editor; they\nare not repeated in every Policy resource.\n\nRepeated configured day lengths are returned once, in first-configured\norder, matching the existing Admin selector.",
        "tags": [
          "Replenishment"
        ],
        "operationId": "getReplenishmentPolicyOptions",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "required": true,
            "description": "The `id` of the referenced `Warehouse`."
          }
        ],
        "responses": {
          "200": {
            "description": "Configured Replenishment Policy options.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "demand_period_days": {
                      "type": "array",
                      "description": "Configured Product Velocity periods, in days and editor display order.",
                      "items": {
                        "type": "integer",
                        "minimum": 1,
                        "maximum": 365
                      }
                    },
                    "meta": {
                      "$ref": "#/components/schemas/Inventory_API_v1_meta"
                    }
                  },
                  "required": [
                    "demand_period_days",
                    "meta"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "demand_period_days": [
                    7,
                    30,
                    90,
                    180,
                    365
                  ],
                  "meta": {
                    "processing_time": 0.004
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Inventory_API_v1_400-bad-request"
          },
          "404": {
            "$ref": "#/components/responses/Inventory_API_v1_404-not-found"
          },
          "422": {
            "$ref": "#/components/responses/Inventory_API_v1_422-unprocessable"
          },
          "500": {
            "$ref": "#/components/responses/Inventory_API_v1_500-internal-server-error"
          }
        }
      }
    },
    "/v1/inventory/warehouses/{id}/replenishment-policies/{policy_id}": {
      "get": {
        "summary": "Get Policy",
        "description": "Returns one `ReplenishmentPolicy` of one warehouse specified by the `id` and\n`policy_id` path parameters.\n\n`qualification_reason` is derived on read and reports why the Policy currently\nfalls through during evaluation. The three published counts are `null` until the\nwarehouse publishes a Replenishment generation.\n\nTo resolve the current editor selections, add\n`fields=merchants,product_profiles,handling_classes` and request only direct\ndisplay fields such as `fields:merchants=code,name,status`. The writable ID\nproperties remain the mutation contract, and selected relationships never\nrecursively expand their own relationships.",
        "tags": [
          "Replenishment"
        ],
        "operationId": "getReplenishmentPolicy",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "required": true,
            "description": "The `id` of the referenced `Warehouse`."
          },
          {
            "name": "policy_id",
            "in": "path",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "required": true,
            "description": "The `id` of the referenced `ReplenishmentPolicy`."
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_replenishment-policy-fields"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_fields-slotting-rule-merchants"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_fields-slotting-rule-product-profiles"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_fields-slotting-rule-handling-classes"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_fields-replenishment-policy-location_profile"
          }
        ],
        "responses": {
          "200": {
            "description": "A dictionary with a `resource` property that contains the requested\n`ReplenishmentPolicy` object.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "resource": {
                      "$ref": "#/components/schemas/Inventory_API_v1_ReplenishmentPolicy"
                    },
                    "included": {
                      "$ref": "#/components/schemas/Inventory_API_v1_replenishment-policies"
                    },
                    "meta": {
                      "$ref": "#/components/schemas/Inventory_API_v1_meta"
                    }
                  }
                },
                "example": {
                  "resource": {
                    "type": "ReplenishmentPolicy",
                    "id": 7,
                    "name": "Fast Movers - Forward Pick",
                    "is_active": true,
                    "sort_order": 10,
                    "merchant_ids": [
                      2,
                      7
                    ],
                    "product_profile_ids": [
                      12,
                      15
                    ],
                    "product_profile_match_mode": "any",
                    "handling_class_ids": [
                      4
                    ],
                    "merchants": [
                      {
                        "type": "Merchant",
                        "id": 2
                      },
                      {
                        "type": "Merchant",
                        "id": 7
                      }
                    ],
                    "product_profiles": [
                      {
                        "type": "ProductProfile",
                        "id": 12
                      },
                      {
                        "type": "ProductProfile",
                        "id": 15
                      }
                    ],
                    "handling_classes": [
                      {
                        "type": "HandlingClass",
                        "id": 4
                      }
                    ],
                    "location_profile": {
                      "type": "LocationProfile",
                      "id": 3
                    },
                    "demand_period_days": 30,
                    "trigger_doi_days": 7,
                    "target_doi_days": 21,
                    "qualification_reason": null,
                    "created_at": "2026-08-01T09:30:00Z",
                    "updated_at": "2026-08-12T10:15:00Z"
                  },
                  "included": {
                    "Merchant": [
                      {
                        "type": "Merchant",
                        "id": 2,
                        "code": "retail_direct",
                        "name": "Retail Direct",
                        "status": "active"
                      },
                      {
                        "type": "Merchant",
                        "id": 7,
                        "code": "marketplace",
                        "name": "Marketplace",
                        "status": "active"
                      }
                    ],
                    "ProductProfile": [
                      {
                        "type": "ProductProfile",
                        "id": 12,
                        "name": "Regulated Aerosols",
                        "code": "regulated_aerosols"
                      },
                      {
                        "type": "ProductProfile",
                        "id": 15,
                        "name": "Fast Movers",
                        "code": "fast_movers"
                      }
                    ],
                    "HandlingClass": [
                      {
                        "type": "HandlingClass",
                        "id": 4,
                        "name": "Hazmat",
                        "code": "hazmat"
                      }
                    ],
                    "LocationProfile": [
                      {
                        "type": "LocationProfile",
                        "id": 3,
                        "name": "Pick Face",
                        "status": "ready",
                        "member_count": 1275
                      }
                    ]
                  },
                  "meta": {
                    "processing_time": 0.018
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Inventory_API_v1_400-bad-request"
          },
          "404": {
            "$ref": "#/components/responses/Inventory_API_v1_404-not-found"
          },
          "500": {
            "$ref": "#/components/responses/Inventory_API_v1_500-internal-server-error"
          }
        },
        "x-codeSamples": [
          {
            "lang": "curl",
            "label": "cURL",
            "source": "curl --request GET \\\n  --url 'https://example.shipstream.app/api/global/v1/inventory/warehouses/1/replenishment-policies/7?fields=merchants,product_profiles,handling_classes&fields:merchants=code,name,status&fields:product_profiles=name,code&fields:handling_classes=name,code&fields:location_profile=name,status,member_count' \\\n  --header 'Authorization: Bearer <token>'"
          },
          {
            "lang": "python",
            "label": "Python",
            "source": "import requests\n\nurl = \"https://example.shipstream.app/api/global/v1/inventory/warehouses/1/replenishment-policies/7?fields=merchants,product_profiles,handling_classes&fields:merchants=code,name,status&fields:product_profiles=name,code&fields:handling_classes=name,code&fields:location_profile=name,status,member_count\"\nheaders = {\"Authorization\": \"Bearer <token>\"}\n\nresponse = requests.get(url, headers=headers)\nprint(response.text)"
          },
          {
            "lang": "javascript",
            "label": "JavaScript",
            "source": "const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};\n\nfetch('https://example.shipstream.app/api/global/v1/inventory/warehouses/1/replenishment-policies/7?fields=merchants,product_profiles,handling_classes&fields:merchants=code,name,status&fields:product_profiles=name,code&fields:handling_classes=name,code&fields:location_profile=name,status,member_count', options)\n  .then(response => response.json())\n  .then(response => console.log(response));"
          },
          {
            "lang": "php",
            "label": "PHP",
            "source": "<?php\n\n$curl = curl_init();\ncurl_setopt($curl, CURLOPT_URL, 'https://example.shipstream.app/api/global/v1/inventory/warehouses/1/replenishment-policies/7?fields=merchants,product_profiles,handling_classes&fields:merchants=code,name,status&fields:product_profiles=name,code&fields:handling_classes=name,code&fields:location_profile=name,status,member_count');\ncurl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);\ncurl_setopt($curl, CURLOPT_HTTPHEADER, ['Authorization: Bearer <token>']);\n\n$response = curl_exec($curl);\ncurl_close($curl);\necho $response;"
          },
          {
            "lang": "go",
            "label": "Go",
            "source": "package main\n\nimport (\n    \"fmt\"\n    \"io\"\n    \"net/http\"\n)\n\nfunc main() {\n    req, _ := http.NewRequest(\"GET\", \"https://example.shipstream.app/api/global/v1/inventory/warehouses/1/replenishment-policies/7?fields=merchants,product_profiles,handling_classes&fields:merchants=code,name,status&fields:product_profiles=name,code&fields:handling_classes=name,code&fields:location_profile=name,status,member_count\", nil)\n    req.Header.Add(\"Authorization\", \"Bearer <token>\")\n    response, _ := http.DefaultClient.Do(req)\n    defer response.Body.Close()\n    body, _ := io.ReadAll(response.Body)\n    fmt.Println(string(body))\n}"
          },
          {
            "lang": "java",
            "label": "Java",
            "source": "HttpResponse<String> response = Unirest.get(\"https://example.shipstream.app/api/global/v1/inventory/warehouses/1/replenishment-policies/7?fields=merchants,product_profiles,handling_classes&fields:merchants=code,name,status&fields:product_profiles=name,code&fields:handling_classes=name,code&fields:location_profile=name,status,member_count\")\n  .header(\"Authorization\", \"Bearer <token>\")\n  .asString();"
          },
          {
            "lang": "ruby",
            "label": "Ruby",
            "source": "require 'uri'\nrequire 'net/http'\n\nurl = URI('https://example.shipstream.app/api/global/v1/inventory/warehouses/1/replenishment-policies/7?fields=merchants,product_profiles,handling_classes&fields:merchants=code,name,status&fields:product_profiles=name,code&fields:handling_classes=name,code&fields:location_profile=name,status,member_count')\nrequest = Net::HTTP::Get.new(url)\nrequest['Authorization'] = 'Bearer <token>'\n\nresponse = Net::HTTP.start(url.hostname, url.port, use_ssl: true) do |http|\n  http.request(request)\nend\nputs response.read_body"
          }
        ]
      },
      "put": {
        "summary": "Update Policy",
        "description": "Updates the Replenishment Policy identified by the `id` and `policy_id` path\nparameters. Only the properties present in the body are applied; an absent one\nkeeps its stored value.\n\nChanging a property that affects evaluation — the subject, Location Profile,\nDOI band, demand period, activity, or precedence — invalidates the warehouse's\npublished Replenishment results and requests a rebuild. Renaming a Policy does\nnot. There is no response body.",
        "tags": [
          "Replenishment"
        ],
        "operationId": "updateReplenishmentPolicy",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "required": true,
            "description": "The `id` of the referenced `Warehouse`."
          },
          {
            "name": "policy_id",
            "in": "path",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "required": true,
            "description": "The `id` of the referenced `ReplenishmentPolicy`."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Inventory_API_v1_ReplenishmentPolicyUpdate"
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/Inventory_API_v1_200-ok-no-body"
          },
          "400": {
            "$ref": "#/components/responses/Inventory_API_v1_400-bad-request"
          },
          "404": {
            "$ref": "#/components/responses/Inventory_API_v1_404-not-found"
          },
          "422": {
            "$ref": "#/components/responses/Inventory_API_v1_422-unprocessable"
          },
          "500": {
            "$ref": "#/components/responses/Inventory_API_v1_500-internal-server-error"
          }
        }
      },
      "delete": {
        "summary": "Delete Policy",
        "description": "Deletes the Replenishment Policy identified by the `id` and `policy_id` path\nparameters, along with its Merchant, Product Profile, and Handling Class\nselections.\n\nA Policy that already has computed Replenishment results cannot be deleted —\nthe published report still refers to it. The request is refused with `422` and a\n`used_by.published_replenishment_results` detail containing the blocking row count;\ndeactivate the Policy, let the warehouse rebuild, then delete it. Deleting an\nactive Policy changes what the index would produce, so it requests a rebuild.",
        "tags": [
          "Replenishment"
        ],
        "operationId": "deleteReplenishmentPolicy",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "required": true,
            "description": "The `id` of the referenced `Warehouse`."
          },
          {
            "name": "policy_id",
            "in": "path",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "required": true,
            "description": "The `id` of the referenced `ReplenishmentPolicy`."
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/Inventory_API_v1_200-ok-no-body"
          },
          "400": {
            "$ref": "#/components/responses/Inventory_API_v1_400-bad-request"
          },
          "404": {
            "$ref": "#/components/responses/Inventory_API_v1_404-not-found"
          },
          "422": {
            "$ref": "#/components/responses/Inventory_API_v1_422-unprocessable"
          },
          "500": {
            "$ref": "#/components/responses/Inventory_API_v1_500-internal-server-error"
          }
        }
      }
    },
    "/v1/inventory/warehouses/{id}/replenishment-report": {
      "get": {
        "summary": "List Report Rows",
        "description": "Returns published Replenishment Report rows for one warehouse specified by its `id` path parameter.\nEach row snapshots the effective Replenishment Policy and Location Profile, the exact profile\nrevision used for aggregation, quantity/DOI/shortfall results, and the calculation time.\n\nThe response `meta` identifies the published generation and whether it satisfies the latest rebuild\nrequest. Clients paging through a report should restart if `published_generation` changes between pages.\nEach row's `computed_at` is the per-product quantity-freshness contract.\n\nA report screen can additionally request `fields=policy,location_profile`\nwith selected direct fields such as `fields:policy=name,is_active` and\n`fields:location_profile=name,status,member_count`. The referenced objects\nare then returned once through `included`; their own relationships remain\navailable from the owning Policy and Location Profile endpoints.\n\nPaging with `cursor_start` or `cursor_end` requires the default `id` or `-id` sort: the cursor\nis a range over the identifier, which the other sort orders do not follow. A listing under any\nother sort therefore reports `has_more` without continuation links; to enumerate more than one\npage, use the default `id` or `-id` sort.",
        "tags": [
          "Replenishment"
        ],
        "operationId": "getReplenishmentReport",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "required": true,
            "description": "The `id` of the referenced `Warehouse`."
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_replenishment-report-fields"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_fields-replenishment-report-product"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_fields-product-merchant"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_fields-replenishment-report-policy"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_fields-replenishment-report-location-profile"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_replenishment-report-filter"
          },
          {
            "name": "sort",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": false,
            "description": "The default sort order is **ascending** by primary key (`sort=id`). Every sort carries an ascending `id` tie-break, because none of the other sortable values are unique. `sku` ordering joins the Product catalog, so it is intended for filtered or bounded result sets.\nThe following fields are available for sorting:\n  - `id`\n  - `sku`\n  - `doi_days`\n  - `shortfall_qty`\n  - `daily_demand`\n  - `computed_at`"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_count"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_cursor_end"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_cursor_start"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_limit"
          }
        ],
        "responses": {
          "200": {
            "description": "A dictionary with a `collection` property that contains a list of up to\n`limit` `ReplenishmentReport` objects matching the query.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "collection": {
                      "type": "array",
                      "description": "A list of `ReplenishmentReport` objects.",
                      "items": {
                        "$ref": "#/components/schemas/Inventory_API_v1_ReplenishmentReport"
                      }
                    },
                    "included": {
                      "$ref": "#/components/schemas/Inventory_API_v1_replenishment-report"
                    },
                    "has_more": {
                      "$ref": "#/components/schemas/Inventory_API_v1_has_more"
                    },
                    "next": {
                      "$ref": "#/components/schemas/Inventory_API_v1_next"
                    },
                    "previous": {
                      "$ref": "#/components/schemas/Inventory_API_v1_previous"
                    },
                    "meta": {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Inventory_API_v1_meta"
                        },
                        {
                          "type": "object",
                          "properties": {
                            "rebuild_status": {
                              "type": "string",
                              "enum": [
                                "idle",
                                "building",
                                "superseded",
                                "failed",
                                null
                              ],
                              "nullable": true,
                              "description": "The durable rebuild lifecycle state of the warehouse's Replenishment Report.\n`null` when the warehouse has never requested an index rebuild."
                            },
                            "published_generation": {
                              "type": "integer",
                              "format": "int64",
                              "minimum": 1,
                              "nullable": true,
                              "description": "The published generation observed immediately before the report rows were read. A\nconcurrent publication can make returned rows newer than this conservative marker.\nClients paging through a report should restart if this value changes between requests.\n`null` when no generation has been published yet."
                            },
                            "generation_current": {
                              "type": "boolean",
                              "nullable": true,
                              "description": "Whether the captured published generation satisfies the latest rebuild request. This\ncan be `false` while `rebuild_status` is `idle` when a successor generation is pending.\n`null` when the warehouse has never requested an index rebuild."
                            },
                            "generation_published_at": {
                              "type": "string",
                              "format": "date-time",
                              "nullable": true,
                              "description": "The time the captured index generation was published for the warehouse.\n`null` when no generation has been published yet."
                            }
                          }
                        }
                      ]
                    }
                  }
                },
                "example": {
                  "collection": [
                    {
                      "type": "ReplenishmentReport",
                      "id": 18427,
                      "product": {
                        "type": "Product",
                        "id": 18427
                      },
                      "policy": {
                        "type": "ReplenishmentPolicy",
                        "id": 7
                      },
                      "policy_id": 7,
                      "policy_name": "Fast Movers - Forward Pick",
                      "location_profile_id": 3,
                      "location_profile_name": "Pick Face",
                      "location_profile": {
                        "type": "LocationProfile",
                        "id": 3
                      },
                      "profile_revision_id": 15,
                      "group_qty": 24,
                      "assigned_count": 2,
                      "warehouse_qty": 150,
                      "available_to_move": 126,
                      "daily_demand": 3.5,
                      "doi_days": 6.8571,
                      "trigger_doi_days": 7,
                      "target_doi_days": 14,
                      "shortfall_qty": 25,
                      "is_flagged": true,
                      "presence": "replenish",
                      "computed_at": "2026-07-31T11:25:10Z"
                    }
                  ],
                  "included": {
                    "Product": [
                      {
                        "type": "Product",
                        "id": 18427,
                        "sku": "AER-12-CASE",
                        "name": "Regulated Aerosol 12 oz Case",
                        "is_enabled": true,
                        "merchant": {
                          "type": "Merchant",
                          "id": 2
                        }
                      }
                    ],
                    "ReplenishmentPolicy": [
                      {
                        "type": "ReplenishmentPolicy",
                        "id": 7,
                        "name": "Fast Movers - Forward Pick",
                        "is_active": true
                      }
                    ],
                    "LocationProfile": [
                      {
                        "type": "LocationProfile",
                        "id": 3,
                        "name": "Pick Face",
                        "status": "ready",
                        "member_count": 1275
                      }
                    ]
                  },
                  "has_more": false,
                  "next": null,
                  "previous": null,
                  "meta": {
                    "processing_time": 0.0142,
                    "cursor_start": null,
                    "cursor_end": null,
                    "rebuild_status": "idle",
                    "published_generation": 5,
                    "generation_current": true,
                    "generation_published_at": "2026-08-01T10:00:00Z"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Inventory_API_v1_400-bad-request"
          },
          "404": {
            "$ref": "#/components/responses/Inventory_API_v1_404-not-found"
          },
          "500": {
            "$ref": "#/components/responses/Inventory_API_v1_500-internal-server-error"
          }
        },
        "x-codeSamples": [
          {
            "lang": "curl",
            "label": "cURL",
            "source": "curl --request GET \\\n  --url 'https://example.shipstream.app/api/global/v1/inventory/warehouses/1/replenishment-report?fields=policy,location_profile&fields:product=basic&fields:policy=name,is_active&fields:location_profile=name,status,member_count&limit=100' \\\n  --header 'Authorization: Bearer <token>'"
          },
          {
            "lang": "python",
            "label": "Python",
            "source": "import requests\n\nurl = \"https://example.shipstream.app/api/global/v1/inventory/warehouses/1/replenishment-report?fields=policy,location_profile&fields:product=basic&fields:policy=name,is_active&fields:location_profile=name,status,member_count&limit=100\"\nheaders = {\"Authorization\": \"Bearer <token>\"}\n\nresponse = requests.get(url, headers=headers)\nprint(response.text)"
          },
          {
            "lang": "javascript",
            "label": "JavaScript",
            "source": "const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};\n\nfetch('https://example.shipstream.app/api/global/v1/inventory/warehouses/1/replenishment-report?fields=policy,location_profile&fields:product=basic&fields:policy=name,is_active&fields:location_profile=name,status,member_count&limit=100', options)\n  .then(response => response.json())\n  .then(response => console.log(response));"
          },
          {
            "lang": "php",
            "label": "PHP",
            "source": "<?php\n\n$curl = curl_init();\ncurl_setopt($curl, CURLOPT_URL, 'https://example.shipstream.app/api/global/v1/inventory/warehouses/1/replenishment-report?fields=policy,location_profile&fields:product=basic&fields:policy=name,is_active&fields:location_profile=name,status,member_count&limit=100');\ncurl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);\ncurl_setopt($curl, CURLOPT_HTTPHEADER, ['Authorization: Bearer <token>']);\n\n$response = curl_exec($curl);\ncurl_close($curl);\necho $response;"
          },
          {
            "lang": "go",
            "label": "Go",
            "source": "package main\n\nimport (\n    \"fmt\"\n    \"io\"\n    \"net/http\"\n)\n\nfunc main() {\n    req, _ := http.NewRequest(\"GET\", \"https://example.shipstream.app/api/global/v1/inventory/warehouses/1/replenishment-report?fields=policy,location_profile&fields:product=basic&fields:policy=name,is_active&fields:location_profile=name,status,member_count&limit=100\", nil)\n    req.Header.Add(\"Authorization\", \"Bearer <token>\")\n    response, _ := http.DefaultClient.Do(req)\n    defer response.Body.Close()\n    body, _ := io.ReadAll(response.Body)\n    fmt.Println(string(body))\n}"
          },
          {
            "lang": "java",
            "label": "Java",
            "source": "HttpResponse<String> response = Unirest.get(\"https://example.shipstream.app/api/global/v1/inventory/warehouses/1/replenishment-report?fields=policy,location_profile&fields:product=basic&fields:policy=name,is_active&fields:location_profile=name,status,member_count&limit=100\")\n  .header(\"Authorization\", \"Bearer <token>\")\n  .asString();"
          },
          {
            "lang": "ruby",
            "label": "Ruby",
            "source": "require 'uri'\nrequire 'net/http'\n\nurl = URI('https://example.shipstream.app/api/global/v1/inventory/warehouses/1/replenishment-report?fields=policy,location_profile&fields:product=basic&fields:policy=name,is_active&fields:location_profile=name,status,member_count&limit=100')\nrequest = Net::HTTP::Get.new(url)\nrequest['Authorization'] = 'Bearer <token>'\n\nresponse = Net::HTTP.start(url.hostname, url.port, use_ssl: true) do |http|\n  http.request(request)\nend\nputs response.read_body"
          }
        ]
      }
    },
    "/v1/inventory/warehouses/{id}/replenishment-index/status": {
      "get": {
        "summary": "Get Replenishment Index Status",
        "description": "Returns the rebuild lifecycle of the Warehouse's published Replenishment Index: the requested,\nbuilding, and published generations, whether the published generation satisfies the newest\nrequest, and failure diagnostics.\n\nPoll this endpoint until `generation_current` is `true` and `status` is `idle`, then read the\npublished report at `/v1/inventory/warehouses/{id}/replenishment-report` — its `meta` carries\nthe same `published_generation`, `generation_current`, and `generation_published_at` values.\n\nA Warehouse that has never had a rebuild requested returns NULL `status` and NULL generations;\nonly an unknown Warehouse is `404`.",
        "tags": [
          "Replenishment"
        ],
        "operationId": "getReplenishmentIndexStatus",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "required": true,
            "description": "The `id` of the referenced `Warehouse`."
          }
        ],
        "responses": {
          "200": {
            "description": "The Warehouse's current Replenishment Index rebuild status.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "resource": {
                      "$ref": "#/components/schemas/Inventory_API_v1_ReplenishmentIndexStatus"
                    }
                  }
                },
                "example": {
                  "resource": {
                    "type": "ReplenishmentIndexStatus",
                    "id": 1,
                    "status": "idle",
                    "requested_generation": 5,
                    "building_generation": null,
                    "published_generation": 5,
                    "generation_current": true,
                    "generation_published_at": "2026-08-01T10:00:00Z",
                    "requested_at": null,
                    "started_at": "2026-08-01T09:31:00Z",
                    "updated_at": "2026-08-01T10:00:00Z",
                    "attempt_count": 1,
                    "last_error": null
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Inventory_API_v1_400-bad-request"
          },
          "404": {
            "$ref": "#/components/responses/Inventory_API_v1_404-not-found"
          },
          "500": {
            "$ref": "#/components/responses/Inventory_API_v1_500-internal-server-error"
          }
        }
      }
    },
    "/v1/inventory/warehouses/{id}/replenishment-index/rebuild": {
      "post": {
        "summary": "Rebuild Replenishment Index",
        "description": "Durably requests a rebuild of the Warehouse's Replenishment Index. Repeated requests coalesce\ninto one pending generation, so retrying a request that may not have landed is safe; the\npublished report keeps serving its current generation until the new one publishes.\n\nA `soft` request lets a build already in progress finish and publish. A `force` request marks\na running build superseded — it stops without publishing and the fresh generation recomputes\neverything from scratch, so repeated `force` requests at intervals shorter than a full build\ndefer publication indefinitely. `force` is for an explicit operator-initiated full\nrecalculation; automation should default to `soft`.\n\nA successful request returns `202 Accepted` with the `requested_generation` this request\ncoalesced into. Poll `/v1/inventory/warehouses/{id}/replenishment-index/status` until\n`published_generation` is greater than or equal to that number (the report's\n`meta.published_generation` carries the same value), then read the report at\n`/v1/inventory/warehouses/{id}/replenishment-report`. If `status` reads `failed`, the server\nretries automatically and alerts operators on persistent failure — `last_error` carries a\nclassified failure summary; stop polling after an hour and escalate rather than wait\nindefinitely.",
        "tags": [
          "Replenishment"
        ],
        "operationId": "rebuildReplenishmentIndex",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "required": true,
            "description": "The `id` of the referenced `Warehouse`."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Inventory_API_v1_ReplenishmentIndexRebuild"
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Accepted - The rebuild request was durably recorded. `requested_generation` is this\ncaller's completion predicate: the rebuild is complete once the status endpoint's\n`published_generation` (also the report's `meta.published_generation`) is greater than\nor equal to it. The comparison is exact — a superseded generation never publishes, and\nany successor publishes with a higher number computed from data read after this request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "requested_generation": {
                      "type": "integer",
                      "format": "int64",
                      "minimum": 1,
                      "description": "The pending generation this request coalesced into. Repeated requests made\nbefore the build completes return the same number."
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "processing_time": {
                          "type": "number",
                          "description": "Total time in which request is processed and response is sent back."
                        }
                      }
                    }
                  },
                  "additionalProperties": false,
                  "required": [
                    "requested_generation",
                    "meta"
                  ]
                },
                "example": {
                  "requested_generation": 6,
                  "meta": {
                    "processing_time": 0.0042
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Inventory_API_v1_400-bad-request"
          },
          "404": {
            "$ref": "#/components/responses/Inventory_API_v1_404-not-found"
          },
          "500": {
            "$ref": "#/components/responses/Inventory_API_v1_500-internal-server-error"
          }
        }
      }
    },
    "/v1/inventory/warehouses/{id}/location-profiles": {
      "get": {
        "summary": "List Location Profiles",
        "description": "Returns Location Profiles of one warehouse specified by its `id` path parameter, with\npublication status, revision snapshots, the ordered match definition, and live usage\ncounts.\n\nThe response `meta` carries the warehouse-level membership repair freshness\n(`membership_status`, `membership_current`, `membership_repaired_at`).\n\nThe `match` clauses keep selected Location Tags and Slot Types as compact `{type, id}`\nreferences. For an editor, request `fields=location_tags,slot_types` together with\n`fields:location_tags=name,color` and `fields:slot_types=name,is_pickable` to resolve\nonly those direct selections through `included`.",
        "tags": [
          "LocationProfiles"
        ],
        "operationId": "getLocationProfiles",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "required": true,
            "description": "The `id` of the referenced `Warehouse`."
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_location-profile-fields"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_fields-location-profile-location-tags"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_fields-location-profile-slot-types"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_location-profile-filter"
          },
          {
            "name": "sort",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": false,
            "description": "The default sort order is **ascending** by primary key (`sort=id`).\nThe following fields are available for sorting:\n  - `id`\n  - `name`\n  - `member_count`\n  - `updated_at`\n\nA profile with no published revision has a `null` member count rather than zero, so sorting by `member_count` groups those profiles at the `null` end — first ascending, last descending."
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_count"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_cursor_end"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_cursor_start"
          },
          {
            "name": "limit",
            "in": "query",
            "description": "The number of `LocationProfile` objects to return. The default is 100 and the maximum is 250.",
            "style": "form",
            "schema": {
              "type": "integer",
              "example": 100,
              "default": 100,
              "minimum": 1,
              "maximum": 250
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A dictionary with a `collection` property that contains a list of up to\n`limit` `LocationProfile` objects matching the query.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "collection": {
                      "type": "array",
                      "description": "A list of `LocationProfile` objects.",
                      "items": {
                        "$ref": "#/components/schemas/Inventory_API_v1_LocationProfile"
                      }
                    },
                    "included": {
                      "$ref": "#/components/schemas/Inventory_API_v1_location-profiles"
                    },
                    "has_more": {
                      "$ref": "#/components/schemas/Inventory_API_v1_has_more"
                    },
                    "next": {
                      "$ref": "#/components/schemas/Inventory_API_v1_next"
                    },
                    "previous": {
                      "$ref": "#/components/schemas/Inventory_API_v1_previous"
                    },
                    "meta": {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Inventory_API_v1_meta"
                        },
                        {
                          "$ref": "#/components/schemas/Inventory_API_v1_location-profile-membership-meta"
                        }
                      ]
                    }
                  }
                },
                "example": {
                  "collection": [
                    {
                      "type": "LocationProfile",
                      "id": 26,
                      "name": "Cold Storage Pick Faces",
                      "description": "Pickable shelf locations approved for refrigerated inventory.",
                      "status": "ready",
                      "member_count": 486,
                      "match": [
                        {
                          "field": "slot_type",
                          "operator": "is_one_of",
                          "values": [
                            {
                              "type": "SlotType",
                              "id": 5
                            }
                          ]
                        },
                        {
                          "field": "location_tag",
                          "operator": "is_one_of",
                          "values": [
                            {
                              "type": "LocationTag",
                              "id": 12
                            }
                          ]
                        }
                      ],
                      "match_readable": "(present(slot_type_id) && (slot_type_id in [5])) && (12 in tag_ids)",
                      "location_tags": [
                        {
                          "type": "LocationTag",
                          "id": 12
                        }
                      ],
                      "slot_types": [
                        {
                          "type": "SlotType",
                          "id": 5
                        }
                      ],
                      "active_revision": {
                        "id": 1184,
                        "status": "ready",
                        "member_count": 486,
                        "ready_at": "2026-08-12T06:41:22Z"
                      },
                      "used_by": {
                        "slotting_rules": 3,
                        "replenishment_policies": 1
                      },
                      "created_at": "2026-07-14T09:12:05Z",
                      "updated_at": "2026-08-12T06:41:18Z"
                    }
                  ],
                  "included": {
                    "LocationTag": [
                      {
                        "type": "LocationTag",
                        "id": 12,
                        "name": "Cold Storage",
                        "color": "blue1"
                      }
                    ],
                    "SlotType": [
                      {
                        "type": "SlotType",
                        "id": 5,
                        "name": "Pickable Shelf",
                        "is_pickable": true
                      }
                    ]
                  },
                  "has_more": false,
                  "next": null,
                  "previous": null,
                  "meta": {
                    "processing_time": 0.0086,
                    "cursor_start": null,
                    "cursor_end": null,
                    "membership_status": "idle",
                    "membership_current": true,
                    "membership_repaired_at": "2026-08-12T06:40:58Z"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Inventory_API_v1_400-bad-request"
          },
          "404": {
            "$ref": "#/components/responses/Inventory_API_v1_404-not-found"
          },
          "500": {
            "$ref": "#/components/responses/Inventory_API_v1_500-internal-server-error"
          }
        },
        "x-codeSamples": [
          {
            "lang": "curl",
            "label": "cURL",
            "source": "curl --request GET \\\n  --url 'https://example.shipstream.app/api/global/v1/inventory/warehouses/1/location-profiles?fields=location_tags,slot_types&fields:location_tags=name,color&fields:slot_types=name,is_pickable&limit=100' \\\n  --header 'Authorization: Bearer <token>'"
          },
          {
            "lang": "python",
            "label": "Python",
            "source": "import requests\n\nurl = \"https://example.shipstream.app/api/global/v1/inventory/warehouses/1/location-profiles?fields=location_tags,slot_types&fields:location_tags=name,color&fields:slot_types=name,is_pickable&limit=100\"\nheaders = {\"Authorization\": \"Bearer <token>\"}\n\nresponse = requests.get(url, headers=headers)\nprint(response.text)"
          },
          {
            "lang": "javascript",
            "label": "JavaScript",
            "source": "const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};\n\nfetch('https://example.shipstream.app/api/global/v1/inventory/warehouses/1/location-profiles?fields=location_tags,slot_types&fields:location_tags=name,color&fields:slot_types=name,is_pickable&limit=100', options)\n  .then(response => response.json())\n  .then(response => console.log(response));"
          },
          {
            "lang": "php",
            "label": "PHP",
            "source": "<?php\n\n$curl = curl_init();\ncurl_setopt($curl, CURLOPT_URL, 'https://example.shipstream.app/api/global/v1/inventory/warehouses/1/location-profiles?fields=location_tags,slot_types&fields:location_tags=name,color&fields:slot_types=name,is_pickable&limit=100');\ncurl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);\ncurl_setopt($curl, CURLOPT_HTTPHEADER, ['Authorization: Bearer <token>']);\n\n$response = curl_exec($curl);\ncurl_close($curl);\necho $response;"
          },
          {
            "lang": "go",
            "label": "Go",
            "source": "package main\n\nimport (\n    \"fmt\"\n    \"io\"\n    \"net/http\"\n)\n\nfunc main() {\n    req, _ := http.NewRequest(\"GET\", \"https://example.shipstream.app/api/global/v1/inventory/warehouses/1/location-profiles?fields=location_tags,slot_types&fields:location_tags=name,color&fields:slot_types=name,is_pickable&limit=100\", nil)\n    req.Header.Add(\"Authorization\", \"Bearer <token>\")\n    response, _ := http.DefaultClient.Do(req)\n    defer response.Body.Close()\n    body, _ := io.ReadAll(response.Body)\n    fmt.Println(string(body))\n}"
          },
          {
            "lang": "java",
            "label": "Java",
            "source": "HttpResponse<String> response = Unirest.get(\"https://example.shipstream.app/api/global/v1/inventory/warehouses/1/location-profiles?fields=location_tags,slot_types&fields:location_tags=name,color&fields:slot_types=name,is_pickable&limit=100\")\n  .header(\"Authorization\", \"Bearer <token>\")\n  .asString();"
          },
          {
            "lang": "ruby",
            "label": "Ruby",
            "source": "require 'uri'\nrequire 'net/http'\n\nurl = URI('https://example.shipstream.app/api/global/v1/inventory/warehouses/1/location-profiles?fields=location_tags,slot_types&fields:location_tags=name,color&fields:slot_types=name,is_pickable&limit=100')\nrequest = Net::HTTP::Get.new(url)\nrequest['Authorization'] = 'Bearer <token>'\n\nresponse = Net::HTTP.start(url.hostname, url.port, use_ssl: true) do |http|\n  http.request(request)\nend\nputs response.read_body"
          }
        ]
      },
      "post": {
        "summary": "Create Location Profile",
        "description": "Creates a Location Profile in the warehouse specified by its `id` path parameter and starts\nmaterializing its membership.\n\nAlways returns `202 Accepted`: the profile exists immediately, but its member locations are\nresolved asynchronously. Poll the resource until `status` is `ready` before referencing it\nfrom a Slotting Rule. A Replenishment Policy may reference it earlier, but remains\ndisqualified until the profile is ready.",
        "tags": [
          "LocationProfiles"
        ],
        "operationId": "createLocationProfile",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "required": true,
            "description": "The `id` of the referenced `Warehouse`."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Inventory_API_v1_LocationProfileCreate"
              }
            }
          }
        },
        "responses": {
          "202": {
            "$ref": "#/components/responses/Inventory_API_v1_202-accepted-no-body"
          },
          "400": {
            "$ref": "#/components/responses/Inventory_API_v1_400-bad-request"
          },
          "404": {
            "$ref": "#/components/responses/Inventory_API_v1_404-not-found"
          },
          "422": {
            "$ref": "#/components/responses/Inventory_API_v1_422-unprocessable"
          },
          "500": {
            "$ref": "#/components/responses/Inventory_API_v1_500-internal-server-error"
          }
        }
      }
    },
    "/v1/inventory/warehouses/{id}/location-profiles/{profile_id}": {
      "get": {
        "summary": "Get Location Profile",
        "description": "Returns one `LocationProfile` of one warehouse specified by the `id` and `profile_id`\npath parameters. `match` is the latest intended definition — the pending revision's\nclauses while a rebuild is in flight, otherwise the published revision's.\n\nThe response `meta` carries the warehouse-level membership repair freshness\n(`membership_status`, `membership_current`, `membership_repaired_at`).\n\nThe `match` clauses keep selected Location Tags and Slot Types as compact `{type, id}`\nreferences. For an editor, request `fields=location_tags,slot_types` together with\n`fields:location_tags=name,color` and `fields:slot_types=name,is_pickable` to resolve\nonly those direct selections through `included`.",
        "tags": [
          "LocationProfiles"
        ],
        "operationId": "getLocationProfile",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "required": true,
            "description": "The `id` of the referenced `Warehouse`."
          },
          {
            "name": "profile_id",
            "in": "path",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "required": true,
            "description": "The `id` of the referenced `LocationProfile`."
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_location-profile-fields"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_fields-location-profile-location-tags"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_fields-location-profile-slot-types"
          }
        ],
        "responses": {
          "200": {
            "description": "A dictionary with a `resource` property that contains the requested\n`LocationProfile` object.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "resource": {
                      "$ref": "#/components/schemas/Inventory_API_v1_LocationProfile"
                    },
                    "included": {
                      "$ref": "#/components/schemas/Inventory_API_v1_location-profiles"
                    },
                    "meta": {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Inventory_API_v1_meta"
                        },
                        {
                          "$ref": "#/components/schemas/Inventory_API_v1_location-profile-membership-meta"
                        }
                      ]
                    }
                  }
                },
                "example": {
                  "resource": {
                    "type": "LocationProfile",
                    "id": 26,
                    "name": "Cold Storage Pick Faces",
                    "description": "Pickable shelf locations approved for refrigerated inventory.",
                    "status": "ready",
                    "member_count": 486,
                    "match": [
                      {
                        "field": "slot_type",
                        "operator": "is_one_of",
                        "values": [
                          {
                            "type": "SlotType",
                            "id": 5
                          }
                        ]
                      },
                      {
                        "field": "location_tag",
                        "operator": "is_one_of",
                        "values": [
                          {
                            "type": "LocationTag",
                            "id": 12
                          }
                        ]
                      }
                    ],
                    "match_readable": "(present(slot_type_id) && (slot_type_id in [5])) && (12 in tag_ids)",
                    "location_tags": [
                      {
                        "type": "LocationTag",
                        "id": 12
                      }
                    ],
                    "slot_types": [
                      {
                        "type": "SlotType",
                        "id": 5
                      }
                    ],
                    "active_revision": {
                      "id": 1184,
                      "status": "ready",
                      "member_count": 486,
                      "ready_at": "2026-08-12T06:41:22Z"
                    },
                    "used_by": {
                      "slotting_rules": 3,
                      "replenishment_policies": 1
                    },
                    "created_at": "2026-07-14T09:12:05Z",
                    "updated_at": "2026-08-12T06:41:18Z"
                  },
                  "included": {
                    "LocationTag": [
                      {
                        "type": "LocationTag",
                        "id": 12,
                        "name": "Cold Storage",
                        "color": "blue1"
                      }
                    ],
                    "SlotType": [
                      {
                        "type": "SlotType",
                        "id": 5,
                        "name": "Pickable Shelf",
                        "is_pickable": true
                      }
                    ]
                  },
                  "meta": {
                    "processing_time": 0.0074,
                    "membership_status": "idle",
                    "membership_current": true,
                    "membership_repaired_at": "2026-08-12T06:40:58Z"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Inventory_API_v1_400-bad-request"
          },
          "404": {
            "$ref": "#/components/responses/Inventory_API_v1_404-not-found"
          },
          "500": {
            "$ref": "#/components/responses/Inventory_API_v1_500-internal-server-error"
          }
        },
        "x-codeSamples": [
          {
            "lang": "curl",
            "label": "cURL",
            "source": "curl --request GET \\\n  --url 'https://example.shipstream.app/api/global/v1/inventory/warehouses/1/location-profiles/26?fields=location_tags,slot_types&fields:location_tags=name,color&fields:slot_types=name,is_pickable' \\\n  --header 'Authorization: Bearer <token>'"
          },
          {
            "lang": "python",
            "label": "Python",
            "source": "import requests\n\nurl = \"https://example.shipstream.app/api/global/v1/inventory/warehouses/1/location-profiles/26?fields=location_tags,slot_types&fields:location_tags=name,color&fields:slot_types=name,is_pickable\"\nheaders = {\"Authorization\": \"Bearer <token>\"}\n\nresponse = requests.get(url, headers=headers)\nprint(response.text)"
          },
          {
            "lang": "javascript",
            "label": "JavaScript",
            "source": "const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};\n\nfetch('https://example.shipstream.app/api/global/v1/inventory/warehouses/1/location-profiles/26?fields=location_tags,slot_types&fields:location_tags=name,color&fields:slot_types=name,is_pickable', options)\n  .then(response => response.json())\n  .then(response => console.log(response));"
          },
          {
            "lang": "php",
            "label": "PHP",
            "source": "<?php\n\n$curl = curl_init();\ncurl_setopt($curl, CURLOPT_URL, 'https://example.shipstream.app/api/global/v1/inventory/warehouses/1/location-profiles/26?fields=location_tags,slot_types&fields:location_tags=name,color&fields:slot_types=name,is_pickable');\ncurl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);\ncurl_setopt($curl, CURLOPT_HTTPHEADER, ['Authorization: Bearer <token>']);\n\n$response = curl_exec($curl);\ncurl_close($curl);\necho $response;"
          },
          {
            "lang": "go",
            "label": "Go",
            "source": "package main\n\nimport (\n    \"fmt\"\n    \"io\"\n    \"net/http\"\n)\n\nfunc main() {\n    req, _ := http.NewRequest(\"GET\", \"https://example.shipstream.app/api/global/v1/inventory/warehouses/1/location-profiles/26?fields=location_tags,slot_types&fields:location_tags=name,color&fields:slot_types=name,is_pickable\", nil)\n    req.Header.Add(\"Authorization\", \"Bearer <token>\")\n    response, _ := http.DefaultClient.Do(req)\n    defer response.Body.Close()\n    body, _ := io.ReadAll(response.Body)\n    fmt.Println(string(body))\n}"
          },
          {
            "lang": "java",
            "label": "Java",
            "source": "HttpResponse<String> response = Unirest.get(\"https://example.shipstream.app/api/global/v1/inventory/warehouses/1/location-profiles/26?fields=location_tags,slot_types&fields:location_tags=name,color&fields:slot_types=name,is_pickable\")\n  .header(\"Authorization\", \"Bearer <token>\")\n  .asString();"
          },
          {
            "lang": "ruby",
            "label": "Ruby",
            "source": "require 'uri'\nrequire 'net/http'\n\nurl = URI('https://example.shipstream.app/api/global/v1/inventory/warehouses/1/location-profiles/26?fields=location_tags,slot_types&fields:location_tags=name,color&fields:slot_types=name,is_pickable')\nrequest = Net::HTTP::Get.new(url)\nrequest['Authorization'] = 'Bearer <token>'\n\nresponse = Net::HTTP.start(url.hostname, url.port, use_ssl: true) do |http|\n  http.request(request)\nend\nputs response.read_body"
          }
        ]
      },
      "put": {
        "summary": "Update Location Profile",
        "description": "Updates the Location Profile identified by the `id` and `profile_id` path parameters. Only\nthe properties present in the body are applied.\n\nOmitting `match` keeps the saved definition; send `match: []` to mean \"every non-temporary\nlocation in the warehouse\" explicitly.\n\nReturns `202 Accepted` when the request started a new materialization, and `200 OK` when\nthe definition was unchanged and a published revision is already serving the profile. An\nunchanged definition submitted while a build is still in flight also returns `202`, because\nthe submitted definition has not published yet. During a replacement, `status` may remain\n`ready` because the previous revision still serves consumers. Poll `pending_revision` instead:\nsuccessful publication is complete when it becomes `null`, while a failed replacement remains\npresent with a `failed` status.",
        "tags": [
          "LocationProfiles"
        ],
        "operationId": "updateLocationProfile",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "required": true,
            "description": "The `id` of the referenced `Warehouse`."
          },
          {
            "name": "profile_id",
            "in": "path",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "required": true,
            "description": "The `id` of the referenced `LocationProfile`."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Inventory_API_v1_LocationProfileUpdate"
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/Inventory_API_v1_200-ok-no-body"
          },
          "202": {
            "$ref": "#/components/responses/Inventory_API_v1_202-accepted-no-body"
          },
          "400": {
            "$ref": "#/components/responses/Inventory_API_v1_400-bad-request"
          },
          "404": {
            "$ref": "#/components/responses/Inventory_API_v1_404-not-found"
          },
          "422": {
            "$ref": "#/components/responses/Inventory_API_v1_422-unprocessable"
          },
          "500": {
            "$ref": "#/components/responses/Inventory_API_v1_500-internal-server-error"
          }
        }
      },
      "delete": {
        "summary": "Delete Location Profile",
        "description": "Deletes the Location Profile identified by the `id` and `profile_id` path parameters, along\nwith its revisions, match clauses and materialized membership.\n\nA profile that any Slotting Rule, Replenishment Policy, or published Replenishment result\nstill references cannot be deleted. The request is refused with `422` and stable\n`used_by.slotting_rules`, `used_by.replenishment_policies`, and\n`used_by.published_replenishment_results` details reporting how many of each stand in the way.\nRemove live Rule and Policy references;\nafter a Policy moves away, the Warehouse Replenishment index must publish again before its\nprevious result rows release the profile. There is no force or cascade variant.",
        "tags": [
          "LocationProfiles"
        ],
        "operationId": "deleteLocationProfile",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "required": true,
            "description": "The `id` of the referenced `Warehouse`."
          },
          {
            "name": "profile_id",
            "in": "path",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "required": true,
            "description": "The `id` of the referenced `LocationProfile`."
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/Inventory_API_v1_200-ok-no-body"
          },
          "400": {
            "$ref": "#/components/responses/Inventory_API_v1_400-bad-request"
          },
          "404": {
            "$ref": "#/components/responses/Inventory_API_v1_404-not-found"
          },
          "422": {
            "$ref": "#/components/responses/Inventory_API_v1_422-unprocessable"
          },
          "500": {
            "$ref": "#/components/responses/Inventory_API_v1_500-internal-server-error"
          }
        }
      }
    },
    "/v1/inventory/warehouses/{id}/location-profiles/{profile_id}/locations": {
      "get": {
        "summary": "List Location Profile member Locations",
        "description": "Returns full `Location` objects from the resolved membership of one `LocationProfile`.\nThe response supports the same field selection, filtering, sorting, and cursor paging as\nthe Warehouse Locations endpoint. Membership is read from the ready active revision, and\n`meta.profile_revision_id` identifies the exact revision that supplied the page.\n\nA profile without a ready active revision has no resolved member set and responds with\n`422` instead of an empty collection; a ready profile with zero members is a genuine\nempty set and responds with an empty collection. Cursor continuation is available only\nwhen sorting by `id`; other sorts return the bounded page without cursor links.",
        "tags": [
          "LocationProfiles"
        ],
        "operationId": "getLocationProfileLocations",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "required": true,
            "description": "The `id` of the referenced `Warehouse`."
          },
          {
            "name": "profile_id",
            "in": "path",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "required": true,
            "description": "The `id` of the referenced `LocationProfile`."
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_location-fields"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_fields-lot"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_fields-lot-lot_type"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_fields-lot-product"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_fields-product"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_fields-product-merchant"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_fields-rack"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_fields-rack-rack_type"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_fields-rack-warehouse"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_fields-slot_type"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_location-filter"
          },
          {
            "name": "sort",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": false,
            "description": "The default sort order is **descending** by primary key (`sort=-id`).\nThe following fields are available for sorting:\n  - `id`\n  - `label`"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_count"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_cursor_end"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_cursor_start"
          },
          {
            "name": "limit",
            "in": "query",
            "description": "The number of member `Location` objects to return. The default is 50 and the maximum is 250.",
            "style": "form",
            "schema": {
              "type": "integer",
              "example": 50,
              "default": 50,
              "minimum": 1,
              "maximum": 250
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A dictionary with a `collection` property that contains a list of up to\n`limit` member `Location` objects matching the query.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "collection": {
                      "type": "array",
                      "description": "A list of resolved member `Location` objects.",
                      "items": {
                        "$ref": "#/components/schemas/Inventory_API_v1_Location"
                      }
                    },
                    "included": {
                      "$ref": "#/components/schemas/Inventory_API_v1_locations"
                    },
                    "has_more": {
                      "$ref": "#/components/schemas/Inventory_API_v1_has_more"
                    },
                    "next": {
                      "$ref": "#/components/schemas/Inventory_API_v1_next"
                    },
                    "previous": {
                      "$ref": "#/components/schemas/Inventory_API_v1_previous"
                    },
                    "meta": {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Inventory_API_v1_meta"
                        },
                        {
                          "type": "object",
                          "properties": {
                            "profile_revision_id": {
                              "type": "integer",
                              "description": "The `id` of the ready active revision whose resolved membership supplied the collection."
                            }
                          }
                        }
                      ]
                    }
                  }
                },
                "example": {
                  "collection": [
                    {
                      "type": "Location",
                      "id": 42,
                      "label": "RK07-R2-S1-L1",
                      "priority": 10,
                      "qty_putaway": 0,
                      "qty_unreserved": 72,
                      "qty_reserved": 4,
                      "qty_on_hand": 76,
                      "lot": null,
                      "product": {
                        "type": "Product",
                        "id": 38
                      }
                    }
                  ],
                  "included": {
                    "Product": [
                      {
                        "type": "Product",
                        "id": 38,
                        "sku": "AER-12-CASE",
                        "name": "Regulated Aerosol 12 oz Case",
                        "is_enabled": true,
                        "merchant": {
                          "type": "Merchant",
                          "id": 2
                        }
                      }
                    ]
                  },
                  "has_more": false,
                  "next": null,
                  "previous": null,
                  "meta": {
                    "processing_time": 0.0069,
                    "cursor_start": null,
                    "cursor_end": null,
                    "profile_revision_id": 1184
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Inventory_API_v1_400-bad-request"
          },
          "404": {
            "$ref": "#/components/responses/Inventory_API_v1_404-not-found"
          },
          "422": {
            "$ref": "#/components/responses/Inventory_API_v1_422-unprocessable"
          },
          "500": {
            "$ref": "#/components/responses/Inventory_API_v1_500-internal-server-error"
          }
        },
        "x-codeSamples": [
          {
            "lang": "curl",
            "label": "cURL",
            "source": "curl --request GET \\\n  --url 'https://example.shipstream.app/api/global/v1/inventory/warehouses/1/location-profiles/26/locations?fields:product=basic&limit=50' \\\n  --header 'Authorization: Bearer <token>'"
          },
          {
            "lang": "python",
            "label": "Python",
            "source": "import requests\n\nurl = \"https://example.shipstream.app/api/global/v1/inventory/warehouses/1/location-profiles/26/locations?fields:product=basic&limit=50\"\nheaders = {\"Authorization\": \"Bearer <token>\"}\n\nresponse = requests.get(url, headers=headers)\nprint(response.text)"
          },
          {
            "lang": "javascript",
            "label": "JavaScript",
            "source": "const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};\n\nfetch('https://example.shipstream.app/api/global/v1/inventory/warehouses/1/location-profiles/26/locations?fields:product=basic&limit=50', options)\n  .then(response => response.json())\n  .then(response => console.log(response));"
          },
          {
            "lang": "php",
            "label": "PHP",
            "source": "<?php\n\n$curl = curl_init();\ncurl_setopt($curl, CURLOPT_URL, 'https://example.shipstream.app/api/global/v1/inventory/warehouses/1/location-profiles/26/locations?fields:product=basic&limit=50');\ncurl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);\ncurl_setopt($curl, CURLOPT_HTTPHEADER, ['Authorization: Bearer <token>']);\n\n$response = curl_exec($curl);\ncurl_close($curl);\necho $response;"
          },
          {
            "lang": "go",
            "label": "Go",
            "source": "package main\n\nimport (\n    \"fmt\"\n    \"io\"\n    \"net/http\"\n)\n\nfunc main() {\n    req, _ := http.NewRequest(\"GET\", \"https://example.shipstream.app/api/global/v1/inventory/warehouses/1/location-profiles/26/locations?fields:product=basic&limit=50\", nil)\n    req.Header.Add(\"Authorization\", \"Bearer <token>\")\n    response, _ := http.DefaultClient.Do(req)\n    defer response.Body.Close()\n    body, _ := io.ReadAll(response.Body)\n    fmt.Println(string(body))\n}"
          },
          {
            "lang": "java",
            "label": "Java",
            "source": "HttpResponse<String> response = Unirest.get(\"https://example.shipstream.app/api/global/v1/inventory/warehouses/1/location-profiles/26/locations?fields:product=basic&limit=50\")\n  .header(\"Authorization\", \"Bearer <token>\")\n  .asString();"
          },
          {
            "lang": "ruby",
            "label": "Ruby",
            "source": "require 'uri'\nrequire 'net/http'\n\nurl = URI('https://example.shipstream.app/api/global/v1/inventory/warehouses/1/location-profiles/26/locations?fields:product=basic&limit=50')\nrequest = Net::HTTP::Get.new(url)\nrequest['Authorization'] = 'Bearer <token>'\n\nresponse = Net::HTTP.start(url.hostname, url.port, use_ssl: true) do |http|\n  http.request(request)\nend\nputs response.read_body"
          }
        ]
      }
    },
    "/v1/inventory/warehouses/{id}/location-profiles/{profile_id}/rebuild": {
      "post": {
        "summary": "Rebuild Location Profile",
        "description": "Re-materializes the current definition of the Location Profile identified by the `id` and\n`profile_id` path parameters, under a fresh revision. The definition itself is unchanged.\n\nUse this to retry a `failed` build, or to force a full re-scan when locations changed in a\nway the incremental pipeline could not observe. The profile keeps serving its published\nrevision, if it has one, until the rebuild finishes.\n\nA successful request returns `202 Accepted`. A ready profile remains `ready` while the replacement builds,\nso poll `pending_revision` rather than the top-level `status`. Successful publication is\ncomplete when `pending_revision` becomes `null`; a failed rebuild remains present there with\na `failed` status. A second rebuild request is rejected with `422 Unprocessable Entity` while\nthe pending revision is still `building`; wait for that build to settle before retrying.\n\nA profile that has never had a definition saved cannot be rebuilt — there is nothing to\nre-run, and treating it as the all-locations definition would silently make it match every\nlocation in the warehouse. Send a `PUT` with an explicit `match` instead.",
        "tags": [
          "LocationProfiles"
        ],
        "operationId": "rebuildLocationProfile",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "required": true,
            "description": "The `id` of the referenced `Warehouse`."
          },
          {
            "name": "profile_id",
            "in": "path",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "required": true,
            "description": "The `id` of the referenced `LocationProfile`."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Inventory_API_v1_LocationProfileRebuild"
              }
            }
          }
        },
        "responses": {
          "202": {
            "$ref": "#/components/responses/Inventory_API_v1_202-accepted-no-body"
          },
          "400": {
            "$ref": "#/components/responses/Inventory_API_v1_400-bad-request"
          },
          "404": {
            "$ref": "#/components/responses/Inventory_API_v1_404-not-found"
          },
          "422": {
            "$ref": "#/components/responses/Inventory_API_v1_422-unprocessable"
          },
          "500": {
            "$ref": "#/components/responses/Inventory_API_v1_500-internal-server-error"
          }
        }
      }
    },
    "/v1/inventory/warehouses/{id}/slotting-rule-sets": {
      "get": {
        "summary": "List Slotting Rule Sets",
        "description": "Returns Slotting Rule Sets of one warehouse with current Rule counts and\nthe latest recorded conflict results. Rule counts reflect current child\nRules. Conflict fields may change after asynchronous Slotting processing\ncompletes.",
        "tags": [
          "SlottingRules"
        ],
        "operationId": "getSlottingRuleSets",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "required": true,
            "description": "The `id` of the referenced `Warehouse`."
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_slotting-rule-set-fields"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_slotting-rule-set-filter"
          },
          {
            "name": "sort",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": false,
            "description": "The default sort order is ascending by `id`.\n\nThe following fields are available for sorting:\n  - `id`\n  - `name`\n  - `is_active`\n  - `updated_at`"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_count"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_cursor_end"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_cursor_start"
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Number of `SlottingRuleSet` objects to return; maximum 250.",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 250,
              "default": 100,
              "example": 50
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A bounded collection of Warehouse Slotting Rule Sets.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "collection": {
                      "type": "array",
                      "description": "Slotting Rule Sets matching the query.",
                      "items": {
                        "$ref": "#/components/schemas/Inventory_API_v1_SlottingRuleSet"
                      }
                    },
                    "included": {
                      "type": "object",
                      "description": "Always empty because Rule Sets have no expandable relationships in this slice."
                    },
                    "has_more": {
                      "$ref": "#/components/schemas/Inventory_API_v1_has_more"
                    },
                    "next": {
                      "$ref": "#/components/schemas/Inventory_API_v1_next"
                    },
                    "previous": {
                      "$ref": "#/components/schemas/Inventory_API_v1_previous"
                    },
                    "meta": {
                      "$ref": "#/components/schemas/Inventory_API_v1_meta"
                    }
                  }
                },
                "example": {
                  "collection": [
                    {
                      "type": "SlottingRuleSet",
                      "id": 18,
                      "name": "Hazmat Storage Rules",
                      "description": "Keeps regulated aerosols in approved storage areas.",
                      "is_active": true,
                      "rule_count": 6,
                      "has_conflicts": true,
                      "conflicting_rule_count": 1,
                      "created_at": "2026-07-18T13:20:00Z",
                      "updated_at": "2026-08-09T16:42:00Z"
                    }
                  ],
                  "included": {},
                  "has_more": false,
                  "next": null,
                  "previous": null,
                  "meta": {
                    "processing_time": 0.0065,
                    "cursor_start": null,
                    "cursor_end": null
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Inventory_API_v1_400-bad-request"
          },
          "404": {
            "$ref": "#/components/responses/Inventory_API_v1_404-not-found"
          },
          "500": {
            "$ref": "#/components/responses/Inventory_API_v1_500-internal-server-error"
          }
        }
      },
      "post": {
        "summary": "Create Slotting Rule Set",
        "description": "Creates an inactive Slotting Rule Set in the referenced warehouse. Add its\nRules before activating it with the update endpoint.",
        "tags": [
          "SlottingRules"
        ],
        "operationId": "createSlottingRuleSet",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "required": true,
            "description": "The `id` of the referenced `Warehouse`."
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_slotting-rule-set-fields"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Inventory_API_v1_SlottingRuleSetCreate"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "The inactive Slotting Rule Set was created.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "resource": {
                      "$ref": "#/components/schemas/Inventory_API_v1_SlottingRuleSet"
                    },
                    "included": {
                      "type": "object",
                      "description": "Always empty because Rule Sets have no expandable relationships in this slice."
                    },
                    "meta": {
                      "$ref": "#/components/schemas/Inventory_API_v1_meta"
                    }
                  }
                },
                "example": {
                  "resource": {
                    "type": "SlottingRuleSet",
                    "id": 19,
                    "name": "Hazmat Storage Rules",
                    "description": "Keeps regulated aerosols in approved storage areas.",
                    "is_active": false,
                    "rule_count": 0,
                    "has_conflicts": false,
                    "conflicting_rule_count": 0,
                    "created_at": "2026-08-10T10:30:00Z",
                    "updated_at": "2026-08-10T10:30:00Z"
                  },
                  "included": {},
                  "meta": {
                    "processing_time": 0.0042
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Inventory_API_v1_400-bad-request"
          },
          "404": {
            "$ref": "#/components/responses/Inventory_API_v1_404-not-found"
          },
          "422": {
            "$ref": "#/components/responses/Inventory_API_v1_422-unprocessable"
          },
          "500": {
            "$ref": "#/components/responses/Inventory_API_v1_500-internal-server-error"
          }
        }
      }
    },
    "/v1/inventory/warehouses/{id}/slotting-rule-sets/{rule_set_id}": {
      "get": {
        "summary": "Get Slotting Rule Set",
        "description": "Returns one Slotting Rule Set identified by the warehouse `id` and\n`rule_set_id` path parameters.",
        "tags": [
          "SlottingRules"
        ],
        "operationId": "getSlottingRuleSet",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "required": true,
            "description": "The `id` of the referenced `Warehouse`."
          },
          {
            "name": "rule_set_id",
            "in": "path",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "required": true,
            "description": "The `id` of the referenced `SlottingRuleSet`."
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_slotting-rule-set-fields"
          }
        ],
        "responses": {
          "200": {
            "description": "The requested Warehouse Slotting Rule Set.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "resource": {
                      "$ref": "#/components/schemas/Inventory_API_v1_SlottingRuleSet"
                    },
                    "included": {
                      "type": "object",
                      "description": "Always empty because Rule Sets have no expandable relationships in this slice."
                    },
                    "meta": {
                      "$ref": "#/components/schemas/Inventory_API_v1_meta"
                    }
                  }
                },
                "example": {
                  "resource": {
                    "type": "SlottingRuleSet",
                    "id": 18,
                    "name": "Hazmat Storage Rules",
                    "description": "Keeps regulated aerosols in approved storage areas.",
                    "is_active": true,
                    "rule_count": 6,
                    "has_conflicts": true,
                    "conflicting_rule_count": 1,
                    "created_at": "2026-07-18T13:20:00Z",
                    "updated_at": "2026-08-09T16:42:00Z"
                  },
                  "included": {},
                  "meta": {
                    "processing_time": 0.0048
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Inventory_API_v1_400-bad-request"
          },
          "404": {
            "$ref": "#/components/responses/Inventory_API_v1_404-not-found"
          },
          "500": {
            "$ref": "#/components/responses/Inventory_API_v1_500-internal-server-error"
          }
        }
      },
      "put": {
        "summary": "Update Slotting Rule Set",
        "description": "Partially updates a Slotting Rule Set. Omitted properties keep their saved\nvalues. Activating or deactivating a Set schedules the existing Slotting\nfollow-up work after the update commits.\n\nOn success, the endpoint returns `200 OK` with an empty response body.",
        "tags": [
          "SlottingRules"
        ],
        "operationId": "updateSlottingRuleSet",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "required": true,
            "description": "The `id` of the referenced `Warehouse`."
          },
          {
            "name": "rule_set_id",
            "in": "path",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "required": true,
            "description": "The `id` of the referenced `SlottingRuleSet`."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Inventory_API_v1_SlottingRuleSetUpdate"
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/Inventory_API_v1_200-ok-no-body"
          },
          "400": {
            "$ref": "#/components/responses/Inventory_API_v1_400-bad-request"
          },
          "404": {
            "$ref": "#/components/responses/Inventory_API_v1_404-not-found"
          },
          "422": {
            "$ref": "#/components/responses/Inventory_API_v1_422-unprocessable"
          },
          "500": {
            "$ref": "#/components/responses/Inventory_API_v1_500-internal-server-error"
          }
        }
      },
      "delete": {
        "summary": "Delete Slotting Rule Set",
        "description": "Deletes a Slotting Rule Set and its child Rules from the referenced\nwarehouse.\n\nOn success, the endpoint returns `200 OK` with an empty response body.",
        "tags": [
          "SlottingRules"
        ],
        "operationId": "deleteSlottingRuleSet",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "required": true,
            "description": "The `id` of the referenced `Warehouse`."
          },
          {
            "name": "rule_set_id",
            "in": "path",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "required": true,
            "description": "The `id` of the referenced `SlottingRuleSet`."
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/Inventory_API_v1_200-ok-no-body"
          },
          "400": {
            "$ref": "#/components/responses/Inventory_API_v1_400-bad-request"
          },
          "404": {
            "$ref": "#/components/responses/Inventory_API_v1_404-not-found"
          },
          "500": {
            "$ref": "#/components/responses/Inventory_API_v1_500-internal-server-error"
          }
        }
      }
    },
    "/v1/inventory/warehouses/{id}/slotting-rule-sets/{rule_set_id}/duplicate": {
      "post": {
        "summary": "Duplicate Slotting Rule Set",
        "description": "Creates an inactive copy in the requested target Warehouse. The copy uses\nthe source name with a ` (Copy)` suffix and copies the description and\nRules.\n\nA same-Warehouse copy reuses each Rule's ready Location Profile. For a\ndifferent Warehouse, typed Zone and Rack criteria are removed, unavailable\nHandling Classes are omitted, and equivalent target Location Profiles are\nreused or materialized before the response is returned. CEL/script criteria\nare copied unchanged and must be reviewed before activation. `meta.warnings`\nnames Rules whose target definition became broader.\n\nThe response includes the standard `SlottingRuleSet` fields. The normal\nadditive `fields` parameter is accepted for consistency with other resource\nendpoints.",
        "tags": [
          "SlottingRules"
        ],
        "operationId": "duplicateSlottingRuleSet",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "required": true,
            "description": "The `id` of the source `Warehouse`."
          },
          {
            "name": "rule_set_id",
            "in": "path",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "required": true,
            "description": "The `id` of the source `SlottingRuleSet`."
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_slotting-rule-set-fields"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Inventory_API_v1_SlottingRuleSetDuplicate"
              },
              "example": {
                "warehouse_id": 2
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "The inactive Slotting Rule Set copy was created.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "resource": {
                      "$ref": "#/components/schemas/Inventory_API_v1_SlottingRuleSet"
                    },
                    "included": {
                      "type": "object",
                      "description": "Always empty because Rule Sets have no expandable relationships."
                    },
                    "meta": {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Inventory_API_v1_meta"
                        },
                        {
                          "type": "object",
                          "properties": {
                            "warnings": {
                              "type": "array",
                              "description": "Rule names whose target definition is broader than the source.",
                              "items": {
                                "type": "string"
                              }
                            }
                          },
                          "required": [
                            "warnings"
                          ]
                        }
                      ]
                    }
                  },
                  "required": [
                    "resource",
                    "included",
                    "meta"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "resource": {
                    "type": "SlottingRuleSet",
                    "id": 24,
                    "name": "Cold Storage Rules (Copy)",
                    "description": "Keeps temperature-sensitive products in cold storage.",
                    "is_active": false,
                    "rule_count": 2,
                    "has_conflicts": false,
                    "conflicting_rule_count": 0,
                    "created_at": "2026-08-10T14:20:00Z",
                    "updated_at": "2026-08-10T14:20:00Z"
                  },
                  "included": {},
                  "meta": {
                    "warnings": [
                      "Frozen products require Freezer Zone"
                    ],
                    "processing_time": 0.1842
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Inventory_API_v1_400-bad-request"
          },
          "404": {
            "$ref": "#/components/responses/Inventory_API_v1_404-not-found"
          },
          "422": {
            "$ref": "#/components/responses/Inventory_API_v1_422-unprocessable"
          },
          "500": {
            "$ref": "#/components/responses/Inventory_API_v1_500-internal-server-error"
          }
        }
      }
    },
    "/v1/inventory/warehouses/{id}/slotting-rule-sets/{rule_set_id}/rules": {
      "get": {
        "summary": "List Slotting Rules",
        "description": "Returns cursor-paged Rules belonging to one Rule Set in the referenced\nwarehouse. Product subjects keep their writable ID fields. An editor can\nadditionally request `fields=merchants,product_profiles,handling_classes`\nwith minimal nested fields such as `fields:product_profiles=name,code` to\nresolve only the selected objects through `included`. Load complete choice\nlists from their owning paged endpoints rather than from every Rule row.\nConflict fields are the latest durable asynchronous detector result.",
        "tags": [
          "SlottingRules"
        ],
        "operationId": "getSlottingRules",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "required": true,
            "description": "The `id` of the referenced `Warehouse`."
          },
          {
            "name": "rule_set_id",
            "in": "path",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "required": true,
            "description": "The `id` of the referenced `SlottingRuleSet`."
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_slotting-rule-fields"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_fields-slotting-rule-rule_set"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_fields-slotting-rule-location_profile"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_fields-slotting-rule-merchants"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_fields-slotting-rule-product-profiles"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_fields-slotting-rule-handling-classes"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_slotting-rule-filter"
          },
          {
            "name": "sort",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": false,
            "description": "The default sort order is ascending by `id`.\n\nThe following fields are available for sorting:\n  - `id`\n  - `name`\n  - `relation`\n  - `priority`\n  - `has_conflicts`\n  - `updated_at`"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_count"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_cursor_end"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_cursor_start"
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Number of `SlottingRule` objects to return; maximum 250.",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 250,
              "default": 100,
              "example": 50
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A bounded collection of Rules in the requested Rule Set.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "collection": {
                      "type": "array",
                      "description": "Slotting Rules matching the query.",
                      "items": {
                        "$ref": "#/components/schemas/Inventory_API_v1_SlottingRule"
                      }
                    },
                    "included": {
                      "$ref": "#/components/schemas/Inventory_API_v1_slotting-rules"
                    },
                    "has_more": {
                      "$ref": "#/components/schemas/Inventory_API_v1_has_more"
                    },
                    "next": {
                      "$ref": "#/components/schemas/Inventory_API_v1_next"
                    },
                    "previous": {
                      "$ref": "#/components/schemas/Inventory_API_v1_previous"
                    },
                    "meta": {
                      "$ref": "#/components/schemas/Inventory_API_v1_meta"
                    }
                  }
                },
                "example": {
                  "collection": [
                    {
                      "type": "SlottingRule",
                      "id": 42,
                      "rule_set": {
                        "type": "SlottingRuleSet",
                        "id": 19
                      },
                      "name": "Regulated aerosols require Hazmat storage",
                      "relation": "require",
                      "strength": null,
                      "priority": 75,
                      "merchant_ids": [
                        2,
                        7
                      ],
                      "product_profile_ids": [
                        12
                      ],
                      "product_profile_match_mode": "any",
                      "handling_class_ids": [
                        4
                      ],
                      "merchants": [
                        {
                          "type": "Merchant",
                          "id": 2
                        },
                        {
                          "type": "Merchant",
                          "id": 7
                        }
                      ],
                      "product_profiles": [
                        {
                          "type": "ProductProfile",
                          "id": 12
                        }
                      ],
                      "handling_classes": [
                        {
                          "type": "HandlingClass",
                          "id": 4
                        }
                      ],
                      "location_profile": {
                        "type": "LocationProfile",
                        "id": 26
                      },
                      "subject_readable": "Merchants: Retail Direct, Marketplace; Product Profile: Regulated Aerosols; Handling Class: Hazmat",
                      "location_match_readable": "zone_id in [4] && is_pickable",
                      "has_conflicts": false,
                      "conflict_detail": null,
                      "created_at": "2026-08-10T10:45:00Z",
                      "updated_at": "2026-08-10T10:45:00Z"
                    }
                  ],
                  "included": {
                    "SlottingRuleSet": [
                      {
                        "type": "SlottingRuleSet",
                        "id": 19,
                        "name": "Regulated Goods Storage",
                        "is_active": true
                      }
                    ],
                    "Merchant": [
                      {
                        "type": "Merchant",
                        "id": 2,
                        "code": "retail_direct",
                        "name": "Retail Direct",
                        "status": "active"
                      },
                      {
                        "type": "Merchant",
                        "id": 7,
                        "code": "marketplace",
                        "name": "Marketplace",
                        "status": "active"
                      }
                    ],
                    "ProductProfile": [
                      {
                        "type": "ProductProfile",
                        "id": 12,
                        "name": "Regulated Aerosols",
                        "code": "regulated_aerosols"
                      }
                    ],
                    "HandlingClass": [
                      {
                        "type": "HandlingClass",
                        "id": 4,
                        "name": "Hazmat",
                        "code": "hazmat"
                      }
                    ],
                    "LocationProfile": [
                      {
                        "type": "LocationProfile",
                        "id": 26,
                        "name": "Cold Storage Pick Faces",
                        "status": "ready",
                        "member_count": 486
                      }
                    ]
                  },
                  "has_more": false,
                  "next": null,
                  "previous": null,
                  "meta": {
                    "processing_time": 0.0091,
                    "cursor_start": null,
                    "cursor_end": null
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Inventory_API_v1_400-bad-request"
          },
          "404": {
            "$ref": "#/components/responses/Inventory_API_v1_404-not-found"
          },
          "500": {
            "$ref": "#/components/responses/Inventory_API_v1_500-internal-server-error"
          }
        },
        "x-codeSamples": [
          {
            "lang": "curl",
            "label": "cURL",
            "source": "curl --request GET \\\n  --url 'https://example.shipstream.app/api/global/v1/inventory/warehouses/1/slotting-rule-sets/19/rules?fields=merchants,product_profiles,handling_classes&fields:rule_set=name,is_active&fields:merchants=code,name,status&fields:product_profiles=name,code&fields:handling_classes=name,code&fields:location_profile=name,status,member_count&limit=50' \\\n  --header 'Authorization: Bearer <token>'"
          },
          {
            "lang": "python",
            "label": "Python",
            "source": "import requests\n\nurl = \"https://example.shipstream.app/api/global/v1/inventory/warehouses/1/slotting-rule-sets/19/rules?fields=merchants,product_profiles,handling_classes&fields:rule_set=name,is_active&fields:merchants=code,name,status&fields:product_profiles=name,code&fields:handling_classes=name,code&fields:location_profile=name,status,member_count&limit=50\"\nheaders = {\"Authorization\": \"Bearer <token>\"}\n\nresponse = requests.get(url, headers=headers)\nprint(response.text)"
          },
          {
            "lang": "javascript",
            "label": "JavaScript",
            "source": "const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};\n\nfetch('https://example.shipstream.app/api/global/v1/inventory/warehouses/1/slotting-rule-sets/19/rules?fields=merchants,product_profiles,handling_classes&fields:rule_set=name,is_active&fields:merchants=code,name,status&fields:product_profiles=name,code&fields:handling_classes=name,code&fields:location_profile=name,status,member_count&limit=50', options)\n  .then(response => response.json())\n  .then(response => console.log(response));"
          },
          {
            "lang": "php",
            "label": "PHP",
            "source": "<?php\n\n$curl = curl_init();\ncurl_setopt($curl, CURLOPT_URL, 'https://example.shipstream.app/api/global/v1/inventory/warehouses/1/slotting-rule-sets/19/rules?fields=merchants,product_profiles,handling_classes&fields:rule_set=name,is_active&fields:merchants=code,name,status&fields:product_profiles=name,code&fields:handling_classes=name,code&fields:location_profile=name,status,member_count&limit=50');\ncurl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);\ncurl_setopt($curl, CURLOPT_HTTPHEADER, ['Authorization: Bearer <token>']);\n\n$response = curl_exec($curl);\ncurl_close($curl);\necho $response;"
          },
          {
            "lang": "go",
            "label": "Go",
            "source": "package main\n\nimport (\n    \"fmt\"\n    \"io\"\n    \"net/http\"\n)\n\nfunc main() {\n    req, _ := http.NewRequest(\"GET\", \"https://example.shipstream.app/api/global/v1/inventory/warehouses/1/slotting-rule-sets/19/rules?fields=merchants,product_profiles,handling_classes&fields:rule_set=name,is_active&fields:merchants=code,name,status&fields:product_profiles=name,code&fields:handling_classes=name,code&fields:location_profile=name,status,member_count&limit=50\", nil)\n    req.Header.Add(\"Authorization\", \"Bearer <token>\")\n    response, _ := http.DefaultClient.Do(req)\n    defer response.Body.Close()\n    body, _ := io.ReadAll(response.Body)\n    fmt.Println(string(body))\n}"
          },
          {
            "lang": "java",
            "label": "Java",
            "source": "HttpResponse<String> response = Unirest.get(\"https://example.shipstream.app/api/global/v1/inventory/warehouses/1/slotting-rule-sets/19/rules?fields=merchants,product_profiles,handling_classes&fields:rule_set=name,is_active&fields:merchants=code,name,status&fields:product_profiles=name,code&fields:handling_classes=name,code&fields:location_profile=name,status,member_count&limit=50\")\n  .header(\"Authorization\", \"Bearer <token>\")\n  .asString();"
          },
          {
            "lang": "ruby",
            "label": "Ruby",
            "source": "require 'uri'\nrequire 'net/http'\n\nurl = URI('https://example.shipstream.app/api/global/v1/inventory/warehouses/1/slotting-rule-sets/19/rules?fields=merchants,product_profiles,handling_classes&fields:rule_set=name,is_active&fields:merchants=code,name,status&fields:product_profiles=name,code&fields:handling_classes=name,code&fields:location_profile=name,status,member_count&limit=50')\nrequest = Net::HTTP::Get.new(url)\nrequest['Authorization'] = 'Bearer <token>'\n\nresponse = Net::HTTP.start(url.hostname, url.port, use_ssl: true) do |http|\n  http.request(request)\nend\nputs response.read_body"
          }
        ]
      },
      "post": {
        "summary": "Create Slotting Rule",
        "description": "Creates a Rule in the referenced Warehouse Rule Set. Hard Rules use\n`require` or `forbid` and omit `strength`; soft Rules use `prefer` or\n`discourage` and require a strength. The existing Slotting lifecycle\nschedules any required asynchronous recalculation after the save commits.",
        "tags": [
          "SlottingRules"
        ],
        "operationId": "createSlottingRule",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "required": true,
            "description": "The `id` of the referenced `Warehouse`."
          },
          {
            "name": "rule_set_id",
            "in": "path",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "required": true,
            "description": "The `id` of the owning `SlottingRuleSet`."
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_slotting-rule-fields"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_fields-slotting-rule-rule_set"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_fields-slotting-rule-location_profile"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_fields-slotting-rule-merchants"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_fields-slotting-rule-product-profiles"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_fields-slotting-rule-handling-classes"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Inventory_API_v1_SlottingRuleCreate"
              },
              "example": {
                "name": "Regulated aerosols require Hazmat storage",
                "relation": "require",
                "merchant_ids": [
                  2,
                  7
                ],
                "product_profile_ids": [
                  12
                ],
                "product_profile_match_mode": "any",
                "handling_class_ids": [
                  4
                ],
                "location_profile_id": 26
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "The Slotting Rule was created.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "resource": {
                      "$ref": "#/components/schemas/Inventory_API_v1_SlottingRule"
                    },
                    "included": {
                      "$ref": "#/components/schemas/Inventory_API_v1_slotting-rules"
                    },
                    "meta": {
                      "$ref": "#/components/schemas/Inventory_API_v1_meta"
                    }
                  }
                },
                "example": {
                  "resource": {
                    "type": "SlottingRule",
                    "id": 42,
                    "rule_set": {
                      "type": "SlottingRuleSet",
                      "id": 19
                    },
                    "name": "Regulated aerosols require Hazmat storage",
                    "relation": "require",
                    "strength": null,
                    "priority": 75,
                    "merchant_ids": [
                      2,
                      7
                    ],
                    "product_profile_ids": [
                      12
                    ],
                    "product_profile_match_mode": "any",
                    "handling_class_ids": [
                      4
                    ],
                    "merchants": [
                      {
                        "type": "Merchant",
                        "id": 2
                      },
                      {
                        "type": "Merchant",
                        "id": 7
                      }
                    ],
                    "product_profiles": [
                      {
                        "type": "ProductProfile",
                        "id": 12
                      }
                    ],
                    "handling_classes": [
                      {
                        "type": "HandlingClass",
                        "id": 4
                      }
                    ],
                    "location_profile": {
                      "type": "LocationProfile",
                      "id": 26
                    },
                    "subject_readable": "Merchants: Retail Direct, Marketplace; Product Profile: Regulated Aerosols; Handling Class: Hazmat",
                    "location_match_readable": "zone_id in [4] && is_pickable",
                    "has_conflicts": false,
                    "conflict_detail": null,
                    "created_at": "2026-08-10T10:45:00Z",
                    "updated_at": "2026-08-10T10:45:00Z"
                  },
                  "included": {
                    "SlottingRuleSet": [
                      {
                        "type": "SlottingRuleSet",
                        "id": 19,
                        "name": "Regulated Goods Storage",
                        "is_active": true
                      }
                    ],
                    "Merchant": [
                      {
                        "type": "Merchant",
                        "id": 2,
                        "code": "retail_direct",
                        "name": "Retail Direct",
                        "status": "active"
                      },
                      {
                        "type": "Merchant",
                        "id": 7,
                        "code": "marketplace",
                        "name": "Marketplace",
                        "status": "active"
                      }
                    ],
                    "ProductProfile": [
                      {
                        "type": "ProductProfile",
                        "id": 12,
                        "name": "Regulated Aerosols",
                        "code": "regulated_aerosols"
                      }
                    ],
                    "HandlingClass": [
                      {
                        "type": "HandlingClass",
                        "id": 4,
                        "name": "Hazmat",
                        "code": "hazmat"
                      }
                    ],
                    "LocationProfile": [
                      {
                        "type": "LocationProfile",
                        "id": 26,
                        "name": "Cold Storage Pick Faces",
                        "status": "ready",
                        "member_count": 486
                      }
                    ]
                  },
                  "meta": {
                    "processing_time": 0.012
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Inventory_API_v1_400-bad-request"
          },
          "404": {
            "$ref": "#/components/responses/Inventory_API_v1_404-not-found"
          },
          "422": {
            "$ref": "#/components/responses/Inventory_API_v1_422-unprocessable"
          },
          "500": {
            "$ref": "#/components/responses/Inventory_API_v1_500-internal-server-error"
          }
        },
        "x-codeSamples": [
          {
            "lang": "curl",
            "label": "cURL",
            "source": "curl --request POST \\\n  --url 'https://example.shipstream.app/api/global/v1/inventory/warehouses/1/slotting-rule-sets/19/rules?fields=merchants,product_profiles,handling_classes&fields:rule_set=name,is_active&fields:merchants=code,name,status&fields:product_profiles=name,code&fields:handling_classes=name,code&fields:location_profile=name,status,member_count' \\\n  --header 'Authorization: Bearer <token>' \\\n  --header 'Content-Type: application/json' \\\n  --data '{\"name\":\"Regulated aerosols require Hazmat storage\",\"relation\":\"require\",\"merchant_ids\":[2,7],\"product_profile_ids\":[12],\"product_profile_match_mode\":\"any\",\"handling_class_ids\":[4],\"location_profile_id\":26}'"
          },
          {
            "lang": "python",
            "label": "Python",
            "source": "import json\nimport requests\n\nurl = \"https://example.shipstream.app/api/global/v1/inventory/warehouses/1/slotting-rule-sets/19/rules?fields=merchants,product_profiles,handling_classes&fields:rule_set=name,is_active&fields:merchants=code,name,status&fields:product_profiles=name,code&fields:handling_classes=name,code&fields:location_profile=name,status,member_count\"\nheaders = {\"Authorization\": \"Bearer <token>\"}\npayload = json.loads('{\"name\":\"Regulated aerosols require Hazmat storage\",\"relation\":\"require\",\"merchant_ids\":[2,7],\"product_profile_ids\":[12],\"product_profile_match_mode\":\"any\",\"handling_class_ids\":[4],\"location_profile_id\":26}')\n\nresponse = requests.request('POST', url, headers=headers, json=payload)\nprint(response.text)"
          },
          {
            "lang": "javascript",
            "label": "JavaScript",
            "source": "const options = {\n  method: 'POST',\n  headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},\n  body: JSON.stringify({\"name\":\"Regulated aerosols require Hazmat storage\",\"relation\":\"require\",\"merchant_ids\":[2,7],\"product_profile_ids\":[12],\"product_profile_match_mode\":\"any\",\"handling_class_ids\":[4],\"location_profile_id\":26}),\n};\n\nfetch('https://example.shipstream.app/api/global/v1/inventory/warehouses/1/slotting-rule-sets/19/rules?fields=merchants,product_profiles,handling_classes&fields:rule_set=name,is_active&fields:merchants=code,name,status&fields:product_profiles=name,code&fields:handling_classes=name,code&fields:location_profile=name,status,member_count', options)\n  .then(response => response.json())\n  .then(response => console.log(response));"
          },
          {
            "lang": "php",
            "label": "PHP",
            "source": "<?php\n\n$curl = curl_init();\ncurl_setopt_array($curl, [\n    CURLOPT_URL => 'https://example.shipstream.app/api/global/v1/inventory/warehouses/1/slotting-rule-sets/19/rules?fields=merchants,product_profiles,handling_classes&fields:rule_set=name,is_active&fields:merchants=code,name,status&fields:product_profiles=name,code&fields:handling_classes=name,code&fields:location_profile=name,status,member_count',\n    CURLOPT_RETURNTRANSFER => TRUE,\n    CURLOPT_CUSTOMREQUEST => 'POST',\n    CURLOPT_POSTFIELDS => '{\"name\":\"Regulated aerosols require Hazmat storage\",\"relation\":\"require\",\"merchant_ids\":[2,7],\"product_profile_ids\":[12],\"product_profile_match_mode\":\"any\",\"handling_class_ids\":[4],\"location_profile_id\":26}',\n    CURLOPT_HTTPHEADER => ['Authorization: Bearer <token>', 'Content-Type: application/json'],\n]);\n\n$response = curl_exec($curl);\ncurl_close($curl);\necho $response;"
          },
          {
            "lang": "go",
            "label": "Go",
            "source": "package main\n\nimport (\n    \"fmt\"\n    \"io\"\n    \"net/http\"\n    \"strings\"\n)\n\nfunc main() {\n    request, _ := http.NewRequest(\"POST\", \"https://example.shipstream.app/api/global/v1/inventory/warehouses/1/slotting-rule-sets/19/rules?fields=merchants,product_profiles,handling_classes&fields:rule_set=name,is_active&fields:merchants=code,name,status&fields:product_profiles=name,code&fields:handling_classes=name,code&fields:location_profile=name,status,member_count\", strings.NewReader(`{\"name\":\"Regulated aerosols require Hazmat storage\",\"relation\":\"require\",\"merchant_ids\":[2,7],\"product_profile_ids\":[12],\"product_profile_match_mode\":\"any\",\"handling_class_ids\":[4],\"location_profile_id\":26}`))\n    request.Header.Add(\"Authorization\", \"Bearer <token>\")\n    request.Header.Add(\"Content-Type\", \"application/json\")\n    response, _ := http.DefaultClient.Do(request)\n    defer response.Body.Close()\n    body, _ := io.ReadAll(response.Body)\n    fmt.Println(string(body))\n}"
          },
          {
            "lang": "java",
            "label": "Java",
            "source": "HttpResponse<String> response = Unirest.post(\"https://example.shipstream.app/api/global/v1/inventory/warehouses/1/slotting-rule-sets/19/rules?fields=merchants,product_profiles,handling_classes&fields:rule_set=name,is_active&fields:merchants=code,name,status&fields:product_profiles=name,code&fields:handling_classes=name,code&fields:location_profile=name,status,member_count\")\n  .header(\"Authorization\", \"Bearer <token>\")\n  .header(\"Content-Type\", \"application/json\")\n  .body(\"{\\\"name\\\":\\\"Regulated aerosols require Hazmat storage\\\",\\\"relation\\\":\\\"require\\\",\\\"merchant_ids\\\":[2,7],\\\"product_profile_ids\\\":[12],\\\"product_profile_match_mode\\\":\\\"any\\\",\\\"handling_class_ids\\\":[4],\\\"location_profile_id\\\":26}\")\n  .asString();"
          },
          {
            "lang": "ruby",
            "label": "Ruby",
            "source": "require 'uri'\nrequire 'net/http'\n\nurl = URI('https://example.shipstream.app/api/global/v1/inventory/warehouses/1/slotting-rule-sets/19/rules?fields=merchants,product_profiles,handling_classes&fields:rule_set=name,is_active&fields:merchants=code,name,status&fields:product_profiles=name,code&fields:handling_classes=name,code&fields:location_profile=name,status,member_count')\nrequest = Net::HTTP::Post.new(url)\nrequest['Authorization'] = 'Bearer <token>'\nrequest['Content-Type'] = 'application/json'\nrequest.body = '{\"name\":\"Regulated aerosols require Hazmat storage\",\"relation\":\"require\",\"merchant_ids\":[2,7],\"product_profile_ids\":[12],\"product_profile_match_mode\":\"any\",\"handling_class_ids\":[4],\"location_profile_id\":26}'\n\nresponse = Net::HTTP.start(url.hostname, url.port, use_ssl: true) do |http|\n  http.request(request)\nend\nputs response.read_body"
          }
        ]
      }
    },
    "/v1/inventory/warehouses/{id}/slotting-rule-sets/{rule_set_id}/rules/{rule_id}": {
      "get": {
        "summary": "Get Slotting Rule",
        "description": "Returns one Rule identified by its warehouse, owning Rule Set, and Rule ID.\nA Rule outside either parent scope is not returned. To resolve the current\neditor selections, add `fields=merchants,product_profiles,handling_classes`\nand request only display fields such as `fields:merchants=code,name,status`.\nThe writable ID properties remain the mutation contract.",
        "tags": [
          "SlottingRules"
        ],
        "operationId": "getSlottingRule",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "required": true,
            "description": "The `id` of the referenced `Warehouse`."
          },
          {
            "name": "rule_set_id",
            "in": "path",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "required": true,
            "description": "The `id` of the referenced `SlottingRuleSet`."
          },
          {
            "name": "rule_id",
            "in": "path",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "required": true,
            "description": "The `id` of the referenced `SlottingRule`."
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_slotting-rule-fields"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_fields-slotting-rule-rule_set"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_fields-slotting-rule-location_profile"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_fields-slotting-rule-merchants"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_fields-slotting-rule-product-profiles"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_fields-slotting-rule-handling-classes"
          }
        ],
        "responses": {
          "200": {
            "description": "The requested Slotting Rule.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "resource": {
                      "$ref": "#/components/schemas/Inventory_API_v1_SlottingRule"
                    },
                    "included": {
                      "$ref": "#/components/schemas/Inventory_API_v1_slotting-rules"
                    },
                    "meta": {
                      "$ref": "#/components/schemas/Inventory_API_v1_meta"
                    }
                  }
                },
                "example": {
                  "resource": {
                    "type": "SlottingRule",
                    "id": 42,
                    "rule_set": {
                      "type": "SlottingRuleSet",
                      "id": 19
                    },
                    "name": "Regulated aerosols require Hazmat storage",
                    "relation": "require",
                    "strength": null,
                    "priority": 75,
                    "merchant_ids": [
                      2,
                      7
                    ],
                    "product_profile_ids": [
                      12
                    ],
                    "product_profile_match_mode": "any",
                    "handling_class_ids": [
                      4
                    ],
                    "merchants": [
                      {
                        "type": "Merchant",
                        "id": 2
                      },
                      {
                        "type": "Merchant",
                        "id": 7
                      }
                    ],
                    "product_profiles": [
                      {
                        "type": "ProductProfile",
                        "id": 12
                      }
                    ],
                    "handling_classes": [
                      {
                        "type": "HandlingClass",
                        "id": 4
                      }
                    ],
                    "location_profile": {
                      "type": "LocationProfile",
                      "id": 26
                    },
                    "subject_readable": "Merchants: Retail Direct, Marketplace; Product Profile: Regulated Aerosols; Handling Class: Hazmat",
                    "location_match_readable": "zone_id in [4] && is_pickable",
                    "has_conflicts": false,
                    "conflict_detail": null,
                    "created_at": "2026-08-10T10:45:00Z",
                    "updated_at": "2026-08-10T10:45:00Z"
                  },
                  "included": {
                    "SlottingRuleSet": [
                      {
                        "type": "SlottingRuleSet",
                        "id": 19,
                        "name": "Regulated Goods Storage",
                        "is_active": true
                      }
                    ],
                    "Merchant": [
                      {
                        "type": "Merchant",
                        "id": 2,
                        "code": "retail_direct",
                        "name": "Retail Direct",
                        "status": "active"
                      },
                      {
                        "type": "Merchant",
                        "id": 7,
                        "code": "marketplace",
                        "name": "Marketplace",
                        "status": "active"
                      }
                    ],
                    "ProductProfile": [
                      {
                        "type": "ProductProfile",
                        "id": 12,
                        "name": "Regulated Aerosols",
                        "code": "regulated_aerosols"
                      }
                    ],
                    "HandlingClass": [
                      {
                        "type": "HandlingClass",
                        "id": 4,
                        "name": "Hazmat",
                        "code": "hazmat"
                      }
                    ],
                    "LocationProfile": [
                      {
                        "type": "LocationProfile",
                        "id": 26,
                        "name": "Cold Storage Pick Faces",
                        "status": "ready",
                        "member_count": 486
                      }
                    ]
                  },
                  "meta": {
                    "processing_time": 0.012
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Inventory_API_v1_400-bad-request"
          },
          "404": {
            "$ref": "#/components/responses/Inventory_API_v1_404-not-found"
          },
          "500": {
            "$ref": "#/components/responses/Inventory_API_v1_500-internal-server-error"
          }
        },
        "x-codeSamples": [
          {
            "lang": "curl",
            "label": "cURL",
            "source": "curl --request GET \\\n  --url 'https://example.shipstream.app/api/global/v1/inventory/warehouses/1/slotting-rule-sets/19/rules/42?fields=merchants,product_profiles,handling_classes&fields:rule_set=name,is_active&fields:merchants=code,name,status&fields:product_profiles=name,code&fields:handling_classes=name,code&fields:location_profile=name,status,member_count' \\\n  --header 'Authorization: Bearer <token>'"
          },
          {
            "lang": "python",
            "label": "Python",
            "source": "import requests\n\nurl = \"https://example.shipstream.app/api/global/v1/inventory/warehouses/1/slotting-rule-sets/19/rules/42?fields=merchants,product_profiles,handling_classes&fields:rule_set=name,is_active&fields:merchants=code,name,status&fields:product_profiles=name,code&fields:handling_classes=name,code&fields:location_profile=name,status,member_count\"\nheaders = {\"Authorization\": \"Bearer <token>\"}\n\nresponse = requests.get(url, headers=headers)\nprint(response.text)"
          },
          {
            "lang": "javascript",
            "label": "JavaScript",
            "source": "const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};\n\nfetch('https://example.shipstream.app/api/global/v1/inventory/warehouses/1/slotting-rule-sets/19/rules/42?fields=merchants,product_profiles,handling_classes&fields:rule_set=name,is_active&fields:merchants=code,name,status&fields:product_profiles=name,code&fields:handling_classes=name,code&fields:location_profile=name,status,member_count', options)\n  .then(response => response.json())\n  .then(response => console.log(response));"
          },
          {
            "lang": "php",
            "label": "PHP",
            "source": "<?php\n\n$curl = curl_init();\ncurl_setopt($curl, CURLOPT_URL, 'https://example.shipstream.app/api/global/v1/inventory/warehouses/1/slotting-rule-sets/19/rules/42?fields=merchants,product_profiles,handling_classes&fields:rule_set=name,is_active&fields:merchants=code,name,status&fields:product_profiles=name,code&fields:handling_classes=name,code&fields:location_profile=name,status,member_count');\ncurl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);\ncurl_setopt($curl, CURLOPT_HTTPHEADER, ['Authorization: Bearer <token>']);\n\n$response = curl_exec($curl);\ncurl_close($curl);\necho $response;"
          },
          {
            "lang": "go",
            "label": "Go",
            "source": "package main\n\nimport (\n    \"fmt\"\n    \"io\"\n    \"net/http\"\n)\n\nfunc main() {\n    req, _ := http.NewRequest(\"GET\", \"https://example.shipstream.app/api/global/v1/inventory/warehouses/1/slotting-rule-sets/19/rules/42?fields=merchants,product_profiles,handling_classes&fields:rule_set=name,is_active&fields:merchants=code,name,status&fields:product_profiles=name,code&fields:handling_classes=name,code&fields:location_profile=name,status,member_count\", nil)\n    req.Header.Add(\"Authorization\", \"Bearer <token>\")\n    response, _ := http.DefaultClient.Do(req)\n    defer response.Body.Close()\n    body, _ := io.ReadAll(response.Body)\n    fmt.Println(string(body))\n}"
          },
          {
            "lang": "java",
            "label": "Java",
            "source": "HttpResponse<String> response = Unirest.get(\"https://example.shipstream.app/api/global/v1/inventory/warehouses/1/slotting-rule-sets/19/rules/42?fields=merchants,product_profiles,handling_classes&fields:rule_set=name,is_active&fields:merchants=code,name,status&fields:product_profiles=name,code&fields:handling_classes=name,code&fields:location_profile=name,status,member_count\")\n  .header(\"Authorization\", \"Bearer <token>\")\n  .asString();"
          },
          {
            "lang": "ruby",
            "label": "Ruby",
            "source": "require 'uri'\nrequire 'net/http'\n\nurl = URI('https://example.shipstream.app/api/global/v1/inventory/warehouses/1/slotting-rule-sets/19/rules/42?fields=merchants,product_profiles,handling_classes&fields:rule_set=name,is_active&fields:merchants=code,name,status&fields:product_profiles=name,code&fields:handling_classes=name,code&fields:location_profile=name,status,member_count')\nrequest = Net::HTTP::Get.new(url)\nrequest['Authorization'] = 'Bearer <token>'\n\nresponse = Net::HTTP.start(url.hostname, url.port, use_ssl: true) do |http|\n  http.request(request)\nend\nputs response.read_body"
          }
        ]
      },
      "put": {
        "summary": "Update Slotting Rule",
        "description": "Partially updates a Rule in the referenced Warehouse Rule Set. Omitted\nproperties retain their saved values. Empty subject lists clear those\nselectors. Hard Rules omit `strength`; soft Rules require it.\n\nOn success, the endpoint returns `200 OK` with an empty response body.",
        "tags": [
          "SlottingRules"
        ],
        "operationId": "updateSlottingRule",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "required": true,
            "description": "The `id` of the referenced `Warehouse`."
          },
          {
            "name": "rule_set_id",
            "in": "path",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "required": true,
            "description": "The `id` of the owning `SlottingRuleSet`."
          },
          {
            "name": "rule_id",
            "in": "path",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "required": true,
            "description": "The `id` of the referenced `SlottingRule`."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Inventory_API_v1_SlottingRuleUpdate"
              },
              "example": {
                "relation": "prefer",
                "strength": "high",
                "merchant_ids": []
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/Inventory_API_v1_200-ok-no-body"
          },
          "400": {
            "$ref": "#/components/responses/Inventory_API_v1_400-bad-request"
          },
          "404": {
            "$ref": "#/components/responses/Inventory_API_v1_404-not-found"
          },
          "422": {
            "$ref": "#/components/responses/Inventory_API_v1_422-unprocessable"
          },
          "500": {
            "$ref": "#/components/responses/Inventory_API_v1_500-internal-server-error"
          }
        }
      },
      "delete": {
        "summary": "Delete Slotting Rule",
        "description": "Deletes a Rule from the referenced Warehouse Rule Set. Existing Slotting\nlifecycle handling removes derived rows and schedules any required\nasynchronous recalculation after the delete commits.\n\nOn success, the endpoint returns `200 OK` with an empty response body.",
        "tags": [
          "SlottingRules"
        ],
        "operationId": "deleteSlottingRule",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "required": true,
            "description": "The `id` of the referenced `Warehouse`."
          },
          {
            "name": "rule_set_id",
            "in": "path",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "required": true,
            "description": "The `id` of the owning `SlottingRuleSet`."
          },
          {
            "name": "rule_id",
            "in": "path",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "required": true,
            "description": "The `id` of the referenced `SlottingRule`."
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/Inventory_API_v1_200-ok-no-body"
          },
          "400": {
            "$ref": "#/components/responses/Inventory_API_v1_400-bad-request"
          },
          "404": {
            "$ref": "#/components/responses/Inventory_API_v1_404-not-found"
          },
          "500": {
            "$ref": "#/components/responses/Inventory_API_v1_500-internal-server-error"
          }
        }
      }
    },
    "/v1/inventory/warehouses/{id}/slotting-conflicts": {
      "get": {
        "summary": "List Slotting Conflicts",
        "description": "Returns cursor-paged Slotting Rules whose latest durable conflict result is\npositive in the referenced Warehouse. Rule conflict fields are written by\nasynchronous conflict detection.\n\n`meta.status` describes current conflict-check queue activity. It is an\noperational signal, not a durable generation or point-in-time freshness\nguarantee. A detector commit can occur between reading the page, aggregate\ncounts, and status, so clients should refresh after queued or processing\nwork settles.",
        "tags": [
          "SlottingRules"
        ],
        "operationId": "getSlottingConflicts",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "required": true,
            "description": "The `id` of the referenced `Warehouse`."
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_slotting-rule-fields"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_fields-slotting-rule-rule_set"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_fields-slotting-rule-location_profile"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_fields-slotting-rule-merchants"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_fields-slotting-rule-product-profiles"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_fields-slotting-rule-handling-classes"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_slotting-rule-filter"
          },
          {
            "name": "sort",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": false,
            "description": "The default sort order is ascending by `id`.\n\nThe following fields are available for sorting:\n  - `id`\n  - `name`\n  - `relation`\n  - `priority`\n  - `has_conflicts`\n  - `updated_at`"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_count"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_cursor_end"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_cursor_start"
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Number of conflicting `SlottingRule` objects to return; maximum 250.",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 250,
              "default": 100,
              "example": 50
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A bounded collection of conflicting Rules in the requested Warehouse.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "collection": {
                      "type": "array",
                      "description": "Slotting Rules with a positive durable conflict result.",
                      "items": {
                        "$ref": "#/components/schemas/Inventory_API_v1_SlottingRule"
                      }
                    },
                    "included": {
                      "$ref": "#/components/schemas/Inventory_API_v1_slotting-rules"
                    },
                    "has_more": {
                      "$ref": "#/components/schemas/Inventory_API_v1_has_more"
                    },
                    "next": {
                      "$ref": "#/components/schemas/Inventory_API_v1_next"
                    },
                    "previous": {
                      "$ref": "#/components/schemas/Inventory_API_v1_previous"
                    },
                    "meta": {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Inventory_API_v1_meta"
                        },
                        {
                          "type": "object",
                          "properties": {
                            "status": {
                              "type": "object",
                              "description": "Current operational state of conflict-check queue work.",
                              "properties": {
                                "code": {
                                  "type": "string",
                                  "description": "Current conflict-detection queue state for the Warehouse.",
                                  "enum": [
                                    "up_to_date",
                                    "processing",
                                    "queued",
                                    "failed"
                                  ]
                                },
                                "detail": {
                                  "type": "string",
                                  "nullable": true,
                                  "description": "Safe retry guidance when conflict checking fails, or `null` otherwise."
                                }
                              },
                              "required": [
                                "code",
                                "detail"
                              ],
                              "additionalProperties": false
                            },
                            "conflicting_rule_set_count": {
                              "type": "integer",
                              "minimum": 0,
                              "description": "Number of Rule Sets with at least one conflicting Rule in this Warehouse."
                            },
                            "conflicting_rule_count": {
                              "type": "integer",
                              "minimum": 0,
                              "description": "Number of conflicting Rules in this Warehouse."
                            }
                          },
                          "required": [
                            "status",
                            "conflicting_rule_set_count",
                            "conflicting_rule_count"
                          ]
                        }
                      ]
                    }
                  }
                },
                "example": {
                  "collection": [
                    {
                      "type": "SlottingRule",
                      "id": 42,
                      "rule_set": {
                        "type": "SlottingRuleSet",
                        "id": 19
                      },
                      "name": "Hazmat products require approved storage",
                      "relation": "require",
                      "strength": null,
                      "priority": 340,
                      "merchant_ids": null,
                      "product_profile_ids": [
                        12
                      ],
                      "product_profile_match_mode": "any",
                      "handling_class_ids": [
                        4
                      ],
                      "product_profiles": [
                        {
                          "type": "ProductProfile",
                          "id": 12
                        }
                      ],
                      "handling_classes": [
                        {
                          "type": "HandlingClass",
                          "id": 4
                        }
                      ],
                      "location_profile": {
                        "type": "LocationProfile",
                        "id": 26
                      },
                      "subject_readable": "Product Profile: Regulated Aerosols; Handling Class: Hazmat",
                      "location_match_readable": "Zone is HAZ and Location is pickable",
                      "has_conflicts": true,
                      "conflict_detail": {
                        "rule_ids": [
                          47
                        ],
                        "product_ids": [
                          18042,
                          18043
                        ]
                      },
                      "created_at": "2026-08-10T09:20:00Z",
                      "updated_at": "2026-08-10T10:15:00Z"
                    }
                  ],
                  "included": {
                    "SlottingRuleSet": [
                      {
                        "type": "SlottingRuleSet",
                        "id": 19,
                        "name": "Regulated Goods Storage",
                        "is_active": true
                      }
                    ],
                    "ProductProfile": [
                      {
                        "type": "ProductProfile",
                        "id": 12,
                        "name": "Regulated Aerosols",
                        "code": "regulated_aerosols"
                      }
                    ],
                    "HandlingClass": [
                      {
                        "type": "HandlingClass",
                        "id": 4,
                        "name": "Hazmat",
                        "code": "hazmat"
                      }
                    ],
                    "LocationProfile": [
                      {
                        "type": "LocationProfile",
                        "id": 26,
                        "name": "Cold Storage Pick Faces",
                        "status": "ready",
                        "member_count": 486
                      }
                    ]
                  },
                  "has_more": false,
                  "next": null,
                  "previous": null,
                  "meta": {
                    "status": {
                      "code": "up_to_date",
                      "detail": null
                    },
                    "conflicting_rule_set_count": 1,
                    "conflicting_rule_count": 1,
                    "cursor_start": null,
                    "cursor_end": null,
                    "processing_time": 0.012
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Inventory_API_v1_400-bad-request"
          },
          "404": {
            "$ref": "#/components/responses/Inventory_API_v1_404-not-found"
          },
          "500": {
            "$ref": "#/components/responses/Inventory_API_v1_500-internal-server-error"
          }
        },
        "x-codeSamples": [
          {
            "lang": "curl",
            "label": "cURL",
            "source": "curl --request GET \\\n  --url 'https://example.shipstream.app/api/global/v1/inventory/warehouses/1/slotting-conflicts?fields=product_profiles,handling_classes&fields:rule_set=name,is_active&fields:product_profiles=name,code&fields:handling_classes=name,code&fields:location_profile=name,status,member_count&limit=50' \\\n  --header 'Authorization: Bearer <token>'"
          },
          {
            "lang": "python",
            "label": "Python",
            "source": "import requests\n\nurl = \"https://example.shipstream.app/api/global/v1/inventory/warehouses/1/slotting-conflicts?fields=product_profiles,handling_classes&fields:rule_set=name,is_active&fields:product_profiles=name,code&fields:handling_classes=name,code&fields:location_profile=name,status,member_count&limit=50\"\nheaders = {\"Authorization\": \"Bearer <token>\"}\n\nresponse = requests.get(url, headers=headers)\nprint(response.text)"
          },
          {
            "lang": "javascript",
            "label": "JavaScript",
            "source": "const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};\n\nfetch('https://example.shipstream.app/api/global/v1/inventory/warehouses/1/slotting-conflicts?fields=product_profiles,handling_classes&fields:rule_set=name,is_active&fields:product_profiles=name,code&fields:handling_classes=name,code&fields:location_profile=name,status,member_count&limit=50', options)\n  .then(response => response.json())\n  .then(response => console.log(response));"
          },
          {
            "lang": "php",
            "label": "PHP",
            "source": "<?php\n\n$curl = curl_init();\ncurl_setopt($curl, CURLOPT_URL, 'https://example.shipstream.app/api/global/v1/inventory/warehouses/1/slotting-conflicts?fields=product_profiles,handling_classes&fields:rule_set=name,is_active&fields:product_profiles=name,code&fields:handling_classes=name,code&fields:location_profile=name,status,member_count&limit=50');\ncurl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);\ncurl_setopt($curl, CURLOPT_HTTPHEADER, ['Authorization: Bearer <token>']);\n\n$response = curl_exec($curl);\ncurl_close($curl);\necho $response;"
          },
          {
            "lang": "go",
            "label": "Go",
            "source": "package main\n\nimport (\n    \"fmt\"\n    \"io\"\n    \"net/http\"\n)\n\nfunc main() {\n    req, _ := http.NewRequest(\"GET\", \"https://example.shipstream.app/api/global/v1/inventory/warehouses/1/slotting-conflicts?fields=product_profiles,handling_classes&fields:rule_set=name,is_active&fields:product_profiles=name,code&fields:handling_classes=name,code&fields:location_profile=name,status,member_count&limit=50\", nil)\n    req.Header.Add(\"Authorization\", \"Bearer <token>\")\n    response, _ := http.DefaultClient.Do(req)\n    defer response.Body.Close()\n    body, _ := io.ReadAll(response.Body)\n    fmt.Println(string(body))\n}"
          },
          {
            "lang": "java",
            "label": "Java",
            "source": "HttpResponse<String> response = Unirest.get(\"https://example.shipstream.app/api/global/v1/inventory/warehouses/1/slotting-conflicts?fields=product_profiles,handling_classes&fields:rule_set=name,is_active&fields:product_profiles=name,code&fields:handling_classes=name,code&fields:location_profile=name,status,member_count&limit=50\")\n  .header(\"Authorization\", \"Bearer <token>\")\n  .asString();"
          },
          {
            "lang": "ruby",
            "label": "Ruby",
            "source": "require 'uri'\nrequire 'net/http'\n\nurl = URI('https://example.shipstream.app/api/global/v1/inventory/warehouses/1/slotting-conflicts?fields=product_profiles,handling_classes&fields:rule_set=name,is_active&fields:product_profiles=name,code&fields:handling_classes=name,code&fields:location_profile=name,status,member_count&limit=50')\nrequest = Net::HTTP::Get.new(url)\nrequest['Authorization'] = 'Bearer <token>'\n\nresponse = Net::HTTP.start(url.hostname, url.port, use_ssl: true) do |http|\n  http.request(request)\nend\nputs response.read_body"
          }
        ]
      }
    },
    "/v1/inventory/products/{type}": {
      "get": {
        "summary": "List all Products and Packaging",
        "description": "Returns a list of [Products](https://help.shipstream.io/article/8b9rvho130-products) (SKUs) or [Packaging Features](https://help.shipstream.io/article/cxyprn6ysa-packaging-features)\nspecified by the `type` path parameter and according to the request body.",
        "tags": [
          "Products"
        ],
        "operationId": "getProducts",
        "parameters": [
          {
            "$ref": "#/components/parameters/Inventory_API_v1_product-type"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_product-fields"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_fields-merchant"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_fields-merchant-brands"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_fields-merchant-default_brand"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_fields-lot_type"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_product-filter"
          },
          {
            "in": "query",
            "name": "sort",
            "schema": {
              "type": "string"
            },
            "required": false,
            "description": "The default sort order is **descending** by primary key (`sort=-id`). The following fields are available for sorting:\n  - `id`\n  - `sku`\n  - `name`\n  - `is_enabled`\n  - `merchant`"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_count"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_cursor_end"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_cursor_start"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_limit"
          }
        ],
        "responses": {
          "200": {
            "description": "A dictionary with a `collection` property that contains an array of up to `limit` `Products` or `Packaging` features. If no products or packaging features are found the response will be an empty array.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "collection": {
                      "type": "array",
                      "items": {
                        "allOf": [
                          {
                            "description": "A reference to the `Product` or `Packaging` object linked with Warehouse Inventory Location."
                          },
                          {
                            "$ref": "#/components/schemas/Inventory_API_v1_CompositeProduct"
                          }
                        ]
                      }
                    },
                    "included": {
                      "$ref": "#/components/schemas/Inventory_API_v1_products"
                    },
                    "has_more": {
                      "$ref": "#/components/schemas/Inventory_API_v1_has_more"
                    },
                    "next": {
                      "$ref": "#/components/schemas/Inventory_API_v1_next"
                    },
                    "previous": {
                      "$ref": "#/components/schemas/Inventory_API_v1_previous"
                    },
                    "meta": {
                      "$ref": "#/components/schemas/Inventory_API_v1_meta"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Inventory_API_v1_400-bad-request"
          },
          "422": {
            "$ref": "#/components/responses/Inventory_API_v1_422-unprocessable"
          },
          "500": {
            "$ref": "#/components/responses/Inventory_API_v1_500-internal-server-error"
          }
        }
      }
    },
    "/v1/inventory/products/{type}/{id}": {
      "get": {
        "summary": "Get Product or Packaging",
        "description": "Returns a single `Product` or `Packaging*` object specified by its `id` & `type` path parameter.",
        "tags": [
          "Products"
        ],
        "operationId": "getProduct",
        "parameters": [
          {
            "$ref": "#/components/parameters/Inventory_API_v1_product-type"
          },
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "required": true,
            "description": "Returns a product or packaging feature specified by the `type` path parameter."
          },
          {
            "name": "fields",
            "in": "query",
            "required": false,
            "description": "Specify additional fields of the `Product` or `Packaging*` object to be included in the response. See the [selecting fields](/global-api/selecting-fields) page for more information.",
            "explode": false,
            "schema": {
              "$ref": "#/components/schemas/Inventory_API_v1_product-packaging-fields-enum"
            }
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_fields-merchant"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_fields-lot_type"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "resource": {
                      "allOf": [
                        {
                          "description": "A reference to the `Product` or `Packaging` object linked with Warehouse Inventory Location."
                        },
                        {
                          "$ref": "#/components/schemas/Inventory_API_v1_CompositeProduct"
                        }
                      ]
                    },
                    "included": {
                      "$ref": "#/components/schemas/Inventory_API_v1_products"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Inventory_API_v1_400-bad-request"
          },
          "404": {
            "$ref": "#/components/responses/Inventory_API_v1_404-not-found"
          },
          "500": {
            "$ref": "#/components/responses/Inventory_API_v1_500-internal-server-error"
          }
        }
      },
      "put": {
        "summary": "Update Product or Packaging",
        "description": "Updates a `Product` in ShipStream specified by its `id` path parameter and according to the request body.",
        "tags": [
          "Products"
        ],
        "operationId": "updateProduct",
        "parameters": [
          {
            "$ref": "#/components/parameters/Inventory_API_v1_product-type"
          },
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "required": true,
            "description": "Returns a product or packaging feature specified by the `type` path parameter."
          }
        ],
        "requestBody": {
          "description": "An object conforming to the Inventory `Product` or `Packaging` schema to be updated.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "resource": {
                    "allOf": [
                      {
                        "description": "A reference to the `Product` or `Packaging` object linked with Warehouse Inventory Location."
                      },
                      {
                        "$ref": "#/components/schemas/Inventory_API_v1_CompositeProduct"
                      }
                    ]
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/Inventory_API_v1_200-ok-no-body"
          },
          "400": {
            "$ref": "#/components/responses/Inventory_API_v1_400-bad-request"
          },
          "404": {
            "$ref": "#/components/responses/Inventory_API_v1_404-not-found"
          },
          "422": {
            "$ref": "#/components/responses/Inventory_API_v1_422-unprocessable"
          },
          "500": {
            "$ref": "#/components/responses/Inventory_API_v1_500-internal-server-error"
          }
        }
      }
    },
    "/v1/inventory/products/{type}/{id}/classifications": {
      "get": {
        "summary": "Get Product Classifications",
        "description": "Returns the Product's current materialized Product Profile memberships and per-Warehouse\nHandling Class assignments. Classification is eventually consistent: Product changes flow\nthrough an asynchronous changelog and typically converge within a couple of minutes, and no\nper-Product freshness signal exists. The Handling Class `classification.status` covers only\nHandling Class definition changes (conditions and Warehouse assignments); it does not reflect\npending Product-triggered reclassification.\n\nOnly enabled `normal` Products are classified: a disabled or packaging Product returns empty\n`product_profiles` and a NULL `handling_class` for every Warehouse it is stocked in. A NULL\nHandling Class means the Product is stocked in that Warehouse but has no assigned class —\neither no Handling Class conditions matched or the Product is not classifiable. A Warehouse\nappears only when the Product is stocked there and the Warehouse has at least one Handling\nClass.",
        "tags": [
          "Products"
        ],
        "operationId": "getProductClassifications",
        "parameters": [
          {
            "$ref": "#/components/parameters/Inventory_API_v1_product-type"
          },
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Product or packaging ID.",
            "schema": {
              "type": "integer",
              "format": "int64",
              "minimum": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Current materialized classifications for the Product.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "resource": {
                      "$ref": "#/components/schemas/Inventory_API_v1_ProductClassifications"
                    }
                  }
                },
                "example": {
                  "resource": {
                    "type": "ProductClassifications",
                    "id": 18427,
                    "product": {
                      "type": "Product",
                      "id": 18427
                    },
                    "product_profiles": [
                      {
                        "type": "ProductProfile",
                        "id": 26
                      }
                    ],
                    "handling_classes_by_warehouse": [
                      {
                        "warehouse": {
                          "type": "Warehouse",
                          "id": 1
                        },
                        "handling_class": {
                          "type": "HandlingClass",
                          "id": 4
                        }
                      },
                      {
                        "warehouse": {
                          "type": "Warehouse",
                          "id": 2
                        },
                        "handling_class": null
                      }
                    ]
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Inventory_API_v1_400-bad-request"
          },
          "404": {
            "$ref": "#/components/responses/Inventory_API_v1_404-not-found"
          },
          "500": {
            "$ref": "#/components/responses/Inventory_API_v1_500-internal-server-error"
          }
        }
      }
    },
    "/v1/inventory/products": {
      "post": {
        "summary": "Create Product or Packaging",
        "description": "Creates a new `Product` or `PackagingFeature` in ShipStream according to the request body.",
        "tags": [
          "Products"
        ],
        "operationId": "createProduct",
        "requestBody": {
          "description": "An object conforming to the Inventory `Product` or `PackagingFeature` schema to be created.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "resource": {
                    "allOf": [
                      {
                        "description": "A reference object that will be used to create a `Product` or `Packaging` object."
                      },
                      {
                        "$ref": "#/components/schemas/Inventory_API_v1_CompositeProduct"
                      }
                    ]
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "$ref": "#/components/responses/Inventory_API_v1_201-created-single"
          },
          "400": {
            "$ref": "#/components/responses/Inventory_API_v1_400-bad-request"
          },
          "422": {
            "$ref": "#/components/responses/Inventory_API_v1_422-unprocessable"
          },
          "500": {
            "$ref": "#/components/responses/Inventory_API_v1_500-internal-server-error"
          }
        }
      }
    },
    "/v1/inventory/product-profiles": {
      "get": {
        "summary": "List Product Profiles",
        "description": "Returns Product Profiles and their current asynchronous classification state. Request\n`fields=conditions,conditions_readable` when a client needs the canonical condition\ndefinition for editing.",
        "tags": [
          "ProductProfiles"
        ],
        "operationId": "listProductProfiles",
        "parameters": [
          {
            "$ref": "#/components/parameters/Inventory_API_v1_product-profile-fields"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_product-profile-filter"
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "The default sort is ascending by `id`. Available fields are:\n  - `id`\n  - `name`\n  - `code`\n  - `matched_count`\n  - `updated_at`\n\nCursor paging supports only `id` or `-id` sorting."
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_count"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_cursor_end"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_cursor_start"
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Maximum number of Product Profiles to return.",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 250,
              "default": 100
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A cursor-paginated collection of Product Profiles.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "collection": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/Inventory_API_v1_ProductProfile"
                      }
                    },
                    "has_more": {
                      "$ref": "#/components/schemas/Inventory_API_v1_has_more"
                    },
                    "next": {
                      "$ref": "#/components/schemas/Inventory_API_v1_next"
                    },
                    "previous": {
                      "$ref": "#/components/schemas/Inventory_API_v1_previous"
                    },
                    "meta": {
                      "$ref": "#/components/schemas/Inventory_API_v1_meta"
                    }
                  }
                },
                "example": {
                  "collection": [
                    {
                      "type": "ProductProfile",
                      "id": 26,
                      "name": "Lightweight Parcel",
                      "code": "lightweight_parcel",
                      "matched_count": 482,
                      "classification": {
                        "status": "up_to_date",
                        "indexed_at": "2026-08-04T09:15:00Z"
                      },
                      "created_at": "2026-07-15T14:30:00Z",
                      "updated_at": "2026-08-04T09:15:00Z"
                    }
                  ],
                  "has_more": false,
                  "next": null,
                  "previous": null,
                  "meta": {
                    "processing_time": 0.0062,
                    "cursor_start": null,
                    "cursor_end": null
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Inventory_API_v1_400-product-profile-bad-request"
          },
          "500": {
            "$ref": "#/components/responses/Inventory_API_v1_500-internal-server-error"
          }
        }
      },
      "post": {
        "summary": "Create Product Profile",
        "description": "Creates a Product Profile. When `code` is omitted or blank, ShipStream generates one from\nthe name. Classification is scheduled after the save commits. Add\n`fields=conditions,conditions_readable` to include canonical conditions in the created\nresource.",
        "tags": [
          "ProductProfiles"
        ],
        "operationId": "createProductProfile",
        "parameters": [
          {
            "$ref": "#/components/parameters/Inventory_API_v1_product-profile-fields"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 255,
                    "description": "Human-readable Product Profile name.",
                    "example": "Lightweight Parcel"
                  },
                  "code": {
                    "type": "string",
                    "maxLength": 64,
                    "pattern": "^[A-Za-z0-9_]*$",
                    "description": "Optional stable code; blank or omitted values are generated from the name.",
                    "example": "lightweight_parcel"
                  },
                  "conditions": {
                    "$ref": "#/components/schemas/Inventory_API_v1_ConditionTree"
                  }
                },
                "required": [
                  "name",
                  "conditions"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Product Profile created and classification scheduled.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "resource": {
                      "$ref": "#/components/schemas/Inventory_API_v1_ProductProfile"
                    }
                  }
                },
                "example": {
                  "resource": {
                    "type": "ProductProfile",
                    "id": 27,
                    "name": "Lightweight Parcel",
                    "code": "lightweight_parcel",
                    "matched_count": 0,
                    "classification": {
                      "status": "queued",
                      "indexed_at": null
                    },
                    "created_at": "2026-08-04T10:30:00Z",
                    "updated_at": "2026-08-04T10:30:00Z"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Inventory_API_v1_400-product-profile-bad-request"
          },
          "422": {
            "$ref": "#/components/responses/Inventory_API_v1_422-product-profile-unprocessable"
          },
          "500": {
            "$ref": "#/components/responses/Inventory_API_v1_500-internal-server-error"
          }
        }
      }
    },
    "/v1/inventory/product-profiles/condition-fields": {
      "get": {
        "summary": "List Product Profile condition fields",
        "description": "Returns the server-owned Product condition catalogue for editor clients. Load this catalogue\nwhen opening an editor; it is not repeated in each Product Profile response. Fields with a\n`value_source` use the advertised bounded search endpoint instead of an inline option list.",
        "tags": [
          "ProductProfiles"
        ],
        "operationId": "getProductProfileConditionFields",
        "responses": {
          "200": {
            "description": "Product condition field catalogue.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "groups": {
                      "type": "array",
                      "description": "Product condition fields grouped in editor display order.",
                      "items": {
                        "$ref": "#/components/schemas/Inventory_API_v1_ConditionFieldGroup"
                      }
                    },
                    "expression": {
                      "$ref": "#/components/schemas/Inventory_API_v1_ConditionExpression"
                    },
                    "meta": {
                      "$ref": "#/components/schemas/Inventory_API_v1_meta"
                    }
                  },
                  "required": [
                    "groups",
                    "expression",
                    "meta"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "groups": [
                    {
                      "code": "general",
                      "label": "General",
                      "fields": [
                        {
                          "code": "sku",
                          "label": "SKU",
                          "type": "select",
                          "operators": [
                            "in",
                            "not_in"
                          ],
                          "value_cast": "string",
                          "value_source": {
                            "mode": "search",
                            "endpoint": "/api/global/v1/inventory/product-condition-values",
                            "field": "sku",
                            "minimum_query_length": 2,
                            "maximum_results": 50
                          }
                        },
                        {
                          "code": "weight",
                          "label": "Weight",
                          "type": "measurement",
                          "operators": [
                            "<",
                            "<=",
                            "==",
                            "!=",
                            ">",
                            ">="
                          ],
                          "unit_family": "weight",
                          "units": [
                            "lb",
                            "kg"
                          ],
                          "base_unit": "lb"
                        }
                      ]
                    }
                  ],
                  "expression": {
                    "code": "expr",
                    "label": "Expression is true",
                    "help_url": "https://help.shipstream.io/scripting/common-expression-language"
                  },
                  "meta": {
                    "processing_time": 0.0081
                  }
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/Inventory_API_v1_500-internal-server-error"
          }
        }
      }
    },
    "/v1/inventory/product-profiles/by-code/{code}": {
      "get": {
        "summary": "Get Product Profile by code",
        "description": "Returns a Product Profile by its stable immutable external code. Add\n`fields=conditions,conditions_readable` when loading the Profile for editing.",
        "tags": [
          "ProductProfiles"
        ],
        "operationId": "getProductProfileByCode",
        "parameters": [
          {
            "name": "code",
            "in": "path",
            "required": true,
            "description": "Stable Product Profile code.",
            "schema": {
              "type": "string",
              "maxLength": 64,
              "pattern": "^[A-Za-z0-9_]+$",
              "example": "lightweight_parcel"
            }
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_product-profile-fields"
          }
        ],
        "responses": {
          "200": {
            "description": "The requested Product Profile.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "resource": {
                      "$ref": "#/components/schemas/Inventory_API_v1_ProductProfile"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Inventory_API_v1_400-product-profile-bad-request"
          },
          "404": {
            "$ref": "#/components/responses/Inventory_API_v1_404-not-found"
          },
          "500": {
            "$ref": "#/components/responses/Inventory_API_v1_500-internal-server-error"
          }
        }
      }
    },
    "/v1/inventory/product-profiles/{id}": {
      "get": {
        "summary": "Get Product Profile",
        "description": "Returns one `ProductProfile` by its numeric ID. Add\n`fields=conditions,conditions_readable` when loading the Profile for editing.",
        "tags": [
          "ProductProfiles"
        ],
        "operationId": "getProductProfile",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Product Profile ID.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1,
              "example": 26
            }
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_product-profile-fields"
          }
        ],
        "responses": {
          "200": {
            "description": "The requested Product Profile.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "resource": {
                      "$ref": "#/components/schemas/Inventory_API_v1_ProductProfile"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Inventory_API_v1_400-product-profile-bad-request"
          },
          "404": {
            "$ref": "#/components/responses/Inventory_API_v1_404-not-found"
          },
          "500": {
            "$ref": "#/components/responses/Inventory_API_v1_500-internal-server-error"
          }
        }
      },
      "put": {
        "summary": "Update Product Profile",
        "description": "Partially updates a Product Profile. `code` is immutable and is not accepted. A conditions\nchange schedules asynchronous reclassification after commit.\n\nOn success, the endpoint returns `200 OK` with an empty response body.",
        "tags": [
          "ProductProfiles"
        ],
        "operationId": "updateProductProfile",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Product Profile ID.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1,
              "example": 26
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "minProperties": 1,
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 255,
                    "description": "Human-readable Product Profile name.",
                    "example": "Lightweight Parcel Products"
                  },
                  "conditions": {
                    "$ref": "#/components/schemas/Inventory_API_v1_ConditionTree"
                  }
                },
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/Inventory_API_v1_200-ok-no-body"
          },
          "400": {
            "$ref": "#/components/responses/Inventory_API_v1_400-product-profile-bad-request"
          },
          "404": {
            "$ref": "#/components/responses/Inventory_API_v1_404-not-found"
          },
          "422": {
            "$ref": "#/components/responses/Inventory_API_v1_422-product-profile-unprocessable"
          },
          "500": {
            "$ref": "#/components/responses/Inventory_API_v1_500-internal-server-error"
          }
        }
      },
      "delete": {
        "summary": "Delete Product Profile",
        "description": "Deletes a Product Profile. Returns `422` with `used_by.slotting_rules`,\n`used_by.replenishment_policies`, and `used_by.handling_classes` counts while any dependency exists.\n\nOn success, the endpoint returns `200 OK` with an empty response body.",
        "tags": [
          "ProductProfiles"
        ],
        "operationId": "deleteProductProfile",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Product Profile ID.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1,
              "example": 26
            }
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/Inventory_API_v1_200-ok-no-body"
          },
          "400": {
            "$ref": "#/components/responses/Inventory_API_v1_400-product-profile-bad-request"
          },
          "404": {
            "$ref": "#/components/responses/Inventory_API_v1_404-not-found"
          },
          "422": {
            "$ref": "#/components/responses/Inventory_API_v1_422-product-profile-delete-unprocessable"
          },
          "500": {
            "$ref": "#/components/responses/Inventory_API_v1_500-internal-server-error"
          }
        }
      }
    },
    "/v1/inventory/product-profiles/{id}/products": {
      "get": {
        "summary": "List Product Profile member Products",
        "description": "Returns the current materialized Product membership. The request does not evaluate conditions;\nafter creating a Profile or changing its conditions, poll it until classification is\n`up_to_date`. Product changes are classified through a separate asynchronous changelog, so a\nrecently changed Product may not immediately enter or leave this member set. The default page\nsize is 50 and the maximum is 250.",
        "tags": [
          "ProductProfiles"
        ],
        "operationId": "listProductProfileProducts",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Product Profile ID.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1,
              "example": 26
            }
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_product-profile-member-fields"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_fields-merchant"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_fields-merchant-brands"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_fields-merchant-default_brand"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_fields-lot_type"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_product-filter"
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "The default sort is ascending by `id`. Available fields are:\n  - `id`"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_count"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_cursor_end"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_cursor_start"
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Maximum number of member Products to return.",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 250,
              "default": 50
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A cursor-paginated collection of materialized member Products.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "collection": {
                      "type": "array",
                      "items": {
                        "allOf": [
                          {
                            "description": "A Product currently materialized as a member of this Product Profile."
                          },
                          {
                            "$ref": "#/components/schemas/Inventory_API_v1_ProductProfileMember"
                          }
                        ]
                      }
                    },
                    "included": {
                      "$ref": "#/components/schemas/Inventory_API_v1_products"
                    },
                    "has_more": {
                      "$ref": "#/components/schemas/Inventory_API_v1_has_more"
                    },
                    "next": {
                      "$ref": "#/components/schemas/Inventory_API_v1_next"
                    },
                    "previous": {
                      "$ref": "#/components/schemas/Inventory_API_v1_previous"
                    },
                    "meta": {
                      "$ref": "#/components/schemas/Inventory_API_v1_meta"
                    }
                  }
                },
                "example": {
                  "collection": [
                    {
                      "type": "Product",
                      "id": 18427,
                      "sku": "TSHIRT-BLK-M",
                      "name": "Cotton T-Shirt - Black / Medium",
                      "is_enabled": true,
                      "merchant": {
                        "type": "Merchant",
                        "id": 4
                      }
                    }
                  ],
                  "included": {
                    "Merchant": [
                      {
                        "type": "Merchant",
                        "id": 4,
                        "code": "acme_inc",
                        "name": "ACME Inc.",
                        "status": "active"
                      }
                    ]
                  },
                  "has_more": false,
                  "next": null,
                  "previous": null,
                  "meta": {
                    "processing_time": 0.0081,
                    "cursor_start": null,
                    "cursor_end": null
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Inventory_API_v1_400-product-profile-bad-request"
          },
          "404": {
            "$ref": "#/components/responses/Inventory_API_v1_404-not-found"
          },
          "500": {
            "$ref": "#/components/responses/Inventory_API_v1_500-internal-server-error"
          }
        },
        "x-codeSamples": [
          {
            "lang": "curl",
            "label": "cURL",
            "source": "curl --request GET \\\n  --url 'https://example.shipstream.app/api/global/v1/inventory/product-profiles/26/products?fields:merchant=code,name,status&limit=50' \\\n  --header 'Authorization: Bearer <token>'"
          },
          {
            "lang": "python",
            "label": "Python",
            "source": "import requests\n\nurl = \"https://example.shipstream.app/api/global/v1/inventory/product-profiles/26/products?fields:merchant=code,name,status&limit=50\"\nheaders = {\"Authorization\": \"Bearer <token>\"}\n\nresponse = requests.get(url, headers=headers)\nprint(response.text)"
          },
          {
            "lang": "javascript",
            "label": "JavaScript",
            "source": "const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};\n\nfetch('https://example.shipstream.app/api/global/v1/inventory/product-profiles/26/products?fields:merchant=code,name,status&limit=50', options)\n  .then(response => response.json())\n  .then(response => console.log(response));"
          },
          {
            "lang": "php",
            "label": "PHP",
            "source": "<?php\n\n$curl = curl_init();\ncurl_setopt($curl, CURLOPT_URL, 'https://example.shipstream.app/api/global/v1/inventory/product-profiles/26/products?fields:merchant=code,name,status&limit=50');\ncurl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);\ncurl_setopt($curl, CURLOPT_HTTPHEADER, ['Authorization: Bearer <token>']);\n\n$response = curl_exec($curl);\ncurl_close($curl);\necho $response;"
          },
          {
            "lang": "go",
            "label": "Go",
            "source": "package main\n\nimport (\n    \"fmt\"\n    \"io\"\n    \"net/http\"\n)\n\nfunc main() {\n    req, _ := http.NewRequest(\"GET\", \"https://example.shipstream.app/api/global/v1/inventory/product-profiles/26/products?fields:merchant=code,name,status&limit=50\", nil)\n    req.Header.Add(\"Authorization\", \"Bearer <token>\")\n    response, _ := http.DefaultClient.Do(req)\n    defer response.Body.Close()\n    body, _ := io.ReadAll(response.Body)\n    fmt.Println(string(body))\n}"
          },
          {
            "lang": "java",
            "label": "Java",
            "source": "HttpResponse<String> response = Unirest.get(\"https://example.shipstream.app/api/global/v1/inventory/product-profiles/26/products?fields:merchant=code,name,status&limit=50\")\n  .header(\"Authorization\", \"Bearer <token>\")\n  .asString();"
          },
          {
            "lang": "ruby",
            "label": "Ruby",
            "source": "require 'uri'\nrequire 'net/http'\n\nurl = URI('https://example.shipstream.app/api/global/v1/inventory/product-profiles/26/products?fields:merchant=code,name,status&limit=50')\nrequest = Net::HTTP::Get.new(url)\nrequest['Authorization'] = 'Bearer <token>'\n\nresponse = Net::HTTP.start(url.hostname, url.port, use_ssl: true) do |http|\n  http.request(request)\nend\nputs response.read_body"
          }
        ]
      }
    },
    "/v1/inventory/product-condition-values": {
      "get": {
        "summary": "List Product condition values",
        "description": "Returns a bounded prefix search of raw values for a Product condition field. Use the field,\nminimum query length, and maximum result count advertised by the condition catalogue. Results\ninclude disabled simple Products because saved Profile conditions must remain editable.",
        "tags": [
          "ProductProfiles"
        ],
        "operationId": "getProductConditionValues",
        "parameters": [
          {
            "name": "field",
            "in": "query",
            "required": true,
            "description": "Product field to search.",
            "schema": {
              "type": "string",
              "enum": [
                "sku",
                "name",
                "vendor_sku",
                "manufacturer_part_number",
                "external_id",
                "barcode"
              ],
              "example": "sku"
            }
          },
          {
            "name": "q",
            "in": "query",
            "required": true,
            "description": "Case-insensitive value prefix with at least two characters.",
            "schema": {
              "type": "string",
              "minLength": 2,
              "example": "ABC"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Maximum number of value options to return.",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 50,
              "default": 50
            },
            "example": 50
          }
        ],
        "responses": {
          "200": {
            "description": "Matching Product condition values.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "options": {
                      "type": "array",
                      "description": "Distinct raw values and human-readable Product labels.",
                      "items": {
                        "type": "object",
                        "properties": {
                          "value": {
                            "type": "string",
                            "description": "Raw value stored in a condition."
                          },
                          "label": {
                            "type": "string",
                            "description": "Product SKU and name shown by the editor."
                          }
                        },
                        "required": [
                          "value",
                          "label"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "meta": {
                      "$ref": "#/components/schemas/Inventory_API_v1_meta"
                    }
                  },
                  "required": [
                    "options",
                    "meta"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "options": [
                    {
                      "value": "ABC-100",
                      "label": "ABC-100 — Small Parcel Carton"
                    },
                    {
                      "value": "ABC-110",
                      "label": "ABC-110 — Medium Parcel Carton"
                    }
                  ],
                  "meta": {
                    "processing_time": 0.0064
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Inventory_API_v1_400-bad-request"
          },
          "500": {
            "$ref": "#/components/responses/Inventory_API_v1_500-internal-server-error"
          }
        },
        "x-codeSamples": [
          {
            "lang": "curl",
            "label": "cURL",
            "source": "curl --request GET \\\n  --url 'https://example.shipstream.app/api/global/v1/inventory/product-condition-values?field=sku&q=ABC&limit=50' \\\n  --header 'Authorization: Bearer <token>'"
          },
          {
            "lang": "python",
            "label": "Python",
            "source": "import requests\n\nurl = \"https://example.shipstream.app/api/global/v1/inventory/product-condition-values?field=sku&q=ABC&limit=50\"\nheaders = {\"Authorization\": \"Bearer <token>\"}\n\nresponse = requests.get(url, headers=headers)\nprint(response.text)"
          },
          {
            "lang": "javascript",
            "label": "JavaScript",
            "source": "const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};\n\nfetch('https://example.shipstream.app/api/global/v1/inventory/product-condition-values?field=sku&q=ABC&limit=50', options)\n  .then(response => response.json())\n  .then(response => console.log(response));"
          },
          {
            "lang": "php",
            "label": "PHP",
            "source": "<?php\n\n$curl = curl_init();\ncurl_setopt($curl, CURLOPT_URL, 'https://example.shipstream.app/api/global/v1/inventory/product-condition-values?field=sku&q=ABC&limit=50');\ncurl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);\ncurl_setopt($curl, CURLOPT_HTTPHEADER, ['Authorization: Bearer <token>']);\n\n$response = curl_exec($curl);\ncurl_close($curl);\necho $response;"
          },
          {
            "lang": "go",
            "label": "Go",
            "source": "package main\n\nimport (\n    \"fmt\"\n    \"io\"\n    \"net/http\"\n)\n\nfunc main() {\n    req, _ := http.NewRequest(\"GET\", \"https://example.shipstream.app/api/global/v1/inventory/product-condition-values?field=sku&q=ABC&limit=50\", nil)\n    req.Header.Add(\"Authorization\", \"Bearer <token>\")\n    response, _ := http.DefaultClient.Do(req)\n    defer response.Body.Close()\n    body, _ := io.ReadAll(response.Body)\n    fmt.Println(string(body))\n}"
          },
          {
            "lang": "java",
            "label": "Java",
            "source": "HttpResponse<String> response = Unirest.get(\"https://example.shipstream.app/api/global/v1/inventory/product-condition-values?field=sku&q=ABC&limit=50\")\n  .header(\"Authorization\", \"Bearer <token>\")\n  .asString();"
          },
          {
            "lang": "ruby",
            "label": "Ruby",
            "source": "require 'uri'\nrequire 'net/http'\n\nurl = URI('https://example.shipstream.app/api/global/v1/inventory/product-condition-values?field=sku&q=ABC&limit=50')\nrequest = Net::HTTP::Get.new(url)\nrequest['Authorization'] = 'Bearer <token>'\n\nresponse = Net::HTTP.start(url.hostname, url.port, use_ssl: true) do |http|\n  http.request(request)\nend\nputs response.read_body"
          }
        ]
      }
    },
    "/v1/inventory/handling-classes": {
      "get": {
        "summary": "List Handling Classes",
        "description": "Returns Handling Classes and their current asynchronous classification state. Request\n`fields=conditions,conditions_readable` when a client needs the canonical condition\ndefinition for editing.",
        "tags": [
          "HandlingClasses"
        ],
        "operationId": "listHandlingClasses",
        "parameters": [
          {
            "$ref": "#/components/parameters/Inventory_API_v1_handling-class-fields"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_fields-handling-class-warehouses"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_fields-handling-class-referenced-product-profiles"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_handling-class-filter"
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "The default sort is ascending by `id`. Available fields are:\n  - `id`\n\nCursor paging supports only `id` or `-id` sorting."
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_count"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_cursor_end"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_cursor_start"
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Maximum number of Handling Classes to return.",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 250,
              "default": 100
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A cursor-paginated collection of Handling Classes.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "collection": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/Inventory_API_v1_HandlingClass"
                      }
                    },
                    "included": {
                      "$ref": "#/components/schemas/Inventory_API_v1_handling-classes"
                    },
                    "has_more": {
                      "$ref": "#/components/schemas/Inventory_API_v1_has_more"
                    },
                    "next": {
                      "$ref": "#/components/schemas/Inventory_API_v1_next"
                    },
                    "previous": {
                      "$ref": "#/components/schemas/Inventory_API_v1_previous"
                    },
                    "meta": {
                      "$ref": "#/components/schemas/Inventory_API_v1_meta"
                    }
                  }
                },
                "example": {
                  "collection": [
                    {
                      "type": "HandlingClass",
                      "id": 14,
                      "name": "Heavy Bulky",
                      "code": "heavy_bulky",
                      "sort_order": 20,
                      "warehouses": [
                        {
                          "type": "Warehouse",
                          "id": 1
                        }
                      ],
                      "referenced_product_profiles": [
                        {
                          "type": "ProductProfile",
                          "id": 31
                        }
                      ],
                      "matched_count": 318,
                      "classification": {
                        "status": "up_to_date",
                        "indexed_at": "2026-08-04T09:15:00Z"
                      },
                      "created_at": "2026-07-15T14:30:00Z",
                      "updated_at": "2026-08-04T09:15:00Z"
                    }
                  ],
                  "included": {
                    "Warehouse": [
                      {
                        "type": "Warehouse",
                        "id": 1,
                        "name": "Newark NJ"
                      }
                    ],
                    "ProductProfile": [
                      {
                        "type": "ProductProfile",
                        "id": 31,
                        "name": "Oversized Products",
                        "code": "oversized_products"
                      }
                    ]
                  },
                  "has_more": false,
                  "next": null,
                  "previous": null,
                  "meta": {
                    "processing_time": 0.0068,
                    "cursor_start": null,
                    "cursor_end": null
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Inventory_API_v1_400-bad-request"
          },
          "500": {
            "$ref": "#/components/responses/Inventory_API_v1_500-internal-server-error"
          }
        },
        "x-codeSamples": [
          {
            "lang": "curl",
            "label": "cURL",
            "source": "curl --request GET \\\n  --url 'https://example.shipstream.app/api/global/v1/inventory/handling-classes?fields:warehouses=name&fields:referenced_product_profiles=name,code&limit=100' \\\n  --header 'Authorization: Bearer <token>'"
          },
          {
            "lang": "python",
            "label": "Python",
            "source": "import requests\n\nurl = \"https://example.shipstream.app/api/global/v1/inventory/handling-classes?fields:warehouses=name&fields:referenced_product_profiles=name,code&limit=100\"\nheaders = {\"Authorization\": \"Bearer <token>\"}\n\nresponse = requests.get(url, headers=headers)\nprint(response.text)"
          },
          {
            "lang": "javascript",
            "label": "JavaScript",
            "source": "const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};\n\nfetch('https://example.shipstream.app/api/global/v1/inventory/handling-classes?fields:warehouses=name&fields:referenced_product_profiles=name,code&limit=100', options)\n  .then(response => response.json())\n  .then(response => console.log(response));"
          },
          {
            "lang": "php",
            "label": "PHP",
            "source": "<?php\n\n$curl = curl_init();\ncurl_setopt($curl, CURLOPT_URL, 'https://example.shipstream.app/api/global/v1/inventory/handling-classes?fields:warehouses=name&fields:referenced_product_profiles=name,code&limit=100');\ncurl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);\ncurl_setopt($curl, CURLOPT_HTTPHEADER, ['Authorization: Bearer <token>']);\n\n$response = curl_exec($curl);\ncurl_close($curl);\necho $response;"
          },
          {
            "lang": "go",
            "label": "Go",
            "source": "package main\n\nimport (\n    \"fmt\"\n    \"io\"\n    \"net/http\"\n)\n\nfunc main() {\n    req, _ := http.NewRequest(\"GET\", \"https://example.shipstream.app/api/global/v1/inventory/handling-classes?fields:warehouses=name&fields:referenced_product_profiles=name,code&limit=100\", nil)\n    req.Header.Add(\"Authorization\", \"Bearer <token>\")\n    response, _ := http.DefaultClient.Do(req)\n    defer response.Body.Close()\n    body, _ := io.ReadAll(response.Body)\n    fmt.Println(string(body))\n}"
          },
          {
            "lang": "java",
            "label": "Java",
            "source": "HttpResponse<String> response = Unirest.get(\"https://example.shipstream.app/api/global/v1/inventory/handling-classes?fields:warehouses=name&fields:referenced_product_profiles=name,code&limit=100\")\n  .header(\"Authorization\", \"Bearer <token>\")\n  .asString();"
          },
          {
            "lang": "ruby",
            "label": "Ruby",
            "source": "require 'uri'\nrequire 'net/http'\n\nurl = URI('https://example.shipstream.app/api/global/v1/inventory/handling-classes?fields:warehouses=name&fields:referenced_product_profiles=name,code&limit=100')\nrequest = Net::HTTP::Get.new(url)\nrequest['Authorization'] = 'Bearer <token>'\n\nresponse = Net::HTTP.start(url.hostname, url.port, use_ssl: true) do |http|\n  http.request(request)\nend\nputs response.read_body"
          }
        ]
      },
      "post": {
        "summary": "Create Handling Class",
        "description": "Creates a Warehouse-scoped Handling Class. When `code` is omitted or blank, ShipStream\ngenerates one from the name. Classification is scheduled after the save commits. Add\n`fields=conditions,conditions_readable` to include canonical conditions in the created\nresource.",
        "tags": [
          "HandlingClasses"
        ],
        "operationId": "createHandlingClass",
        "parameters": [
          {
            "$ref": "#/components/parameters/Inventory_API_v1_handling-class-fields"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_fields-handling-class-warehouses"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_fields-handling-class-referenced-product-profiles"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 255,
                    "description": "Human-readable Handling Class name.",
                    "example": "Heavy Bulky"
                  },
                  "code": {
                    "type": "string",
                    "maxLength": 64,
                    "pattern": "^[A-Za-z0-9_]*$",
                    "description": "Optional stable code; blank or omitted values are generated from the name.",
                    "example": "heavy_bulky"
                  },
                  "sort_order": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 1000000,
                    "description": "Evaluation precedence within every selected Warehouse.",
                    "example": 20
                  },
                  "warehouses": {
                    "type": "array",
                    "minItems": 1,
                    "description": "Warehouses where the Handling Class is evaluated.",
                    "items": {
                      "$ref": "#/components/schemas/Inventory_API_v1_WarehouseRef"
                    }
                  },
                  "conditions": {
                    "$ref": "#/components/schemas/Inventory_API_v1_ConditionTree"
                  }
                },
                "required": [
                  "name",
                  "sort_order",
                  "warehouses",
                  "conditions"
                ],
                "additionalProperties": false
              },
              "example": {
                "name": "Heavy Bulky",
                "code": "heavy_bulky",
                "sort_order": 20,
                "warehouses": [
                  {
                    "type": "Warehouse",
                    "id": 1
                  }
                ],
                "conditions": {
                  "or": [
                    {
                      "and": [
                        {
                          ">=": [
                            {
                              "var": "weight"
                            },
                            {
                              "value": 70,
                              "unit": "lb"
                            }
                          ]
                        },
                        {
                          "contains_any": [
                            {
                              "var": "product_profiles"
                            },
                            [
                              31
                            ]
                          ]
                        }
                      ]
                    }
                  ]
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Handling Class created and Warehouse classification scheduled.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "resource": {
                      "$ref": "#/components/schemas/Inventory_API_v1_HandlingClass"
                    },
                    "included": {
                      "$ref": "#/components/schemas/Inventory_API_v1_handling-classes"
                    }
                  }
                },
                "example": {
                  "resource": {
                    "type": "HandlingClass",
                    "id": 14,
                    "name": "Heavy Bulky",
                    "code": "heavy_bulky",
                    "sort_order": 20,
                    "warehouses": [
                      {
                        "type": "Warehouse",
                        "id": 1
                      }
                    ],
                    "referenced_product_profiles": [
                      {
                        "type": "ProductProfile",
                        "id": 31
                      }
                    ],
                    "conditions": {
                      "or": [
                        {
                          "and": [
                            {
                              ">=": [
                                {
                                  "var": "weight"
                                },
                                {
                                  "value": 70,
                                  "unit": "lb"
                                }
                              ]
                            },
                            {
                              "contains_any": [
                                {
                                  "var": "product_profiles"
                                },
                                [
                                  31
                                ]
                              ]
                            }
                          ]
                        }
                      ]
                    },
                    "matched_count": 0,
                    "classification": {
                      "status": "queued",
                      "indexed_at": null
                    },
                    "created_at": "2026-08-05T10:30:00Z",
                    "updated_at": "2026-08-05T10:30:00Z"
                  },
                  "included": {
                    "Warehouse": [
                      {
                        "type": "Warehouse",
                        "id": 1,
                        "name": "Newark NJ"
                      }
                    ],
                    "ProductProfile": [
                      {
                        "type": "ProductProfile",
                        "id": 31,
                        "name": "Oversized Products",
                        "code": "oversized_products"
                      }
                    ]
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Inventory_API_v1_400-bad-request"
          },
          "422": {
            "$ref": "#/components/responses/Inventory_API_v1_422-unprocessable"
          },
          "500": {
            "$ref": "#/components/responses/Inventory_API_v1_500-internal-server-error"
          }
        },
        "x-codeSamples": [
          {
            "lang": "curl",
            "label": "cURL",
            "source": "curl --request POST \\\n  --url 'https://example.shipstream.app/api/global/v1/inventory/handling-classes?fields=conditions&fields:warehouses=name&fields:referenced_product_profiles=name,code' \\\n  --header 'Authorization: Bearer <token>' \\\n  --header 'Content-Type: application/json' \\\n  --data '{\"name\":\"Heavy Bulky\",\"code\":\"heavy_bulky\",\"sort_order\":20,\"warehouses\":[{\"type\":\"Warehouse\",\"id\":1}],\"conditions\":{\"or\":[{\"and\":[{\">=\":[{\"var\":\"weight\"},{\"value\":70,\"unit\":\"lb\"}]},{\"contains_any\":[{\"var\":\"product_profiles\"},[31]]}]}]}}'"
          },
          {
            "lang": "python",
            "label": "Python",
            "source": "import json\nimport requests\n\nurl = \"https://example.shipstream.app/api/global/v1/inventory/handling-classes?fields=conditions&fields:warehouses=name&fields:referenced_product_profiles=name,code\"\nheaders = {\"Authorization\": \"Bearer <token>\"}\npayload = json.loads('{\"name\":\"Heavy Bulky\",\"code\":\"heavy_bulky\",\"sort_order\":20,\"warehouses\":[{\"type\":\"Warehouse\",\"id\":1}],\"conditions\":{\"or\":[{\"and\":[{\">=\":[{\"var\":\"weight\"},{\"value\":70,\"unit\":\"lb\"}]},{\"contains_any\":[{\"var\":\"product_profiles\"},[31]]}]}]}}')\n\nresponse = requests.request('POST', url, headers=headers, json=payload)\nprint(response.text)"
          },
          {
            "lang": "javascript",
            "label": "JavaScript",
            "source": "const options = {\n  method: 'POST',\n  headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},\n  body: JSON.stringify({\"name\":\"Heavy Bulky\",\"code\":\"heavy_bulky\",\"sort_order\":20,\"warehouses\":[{\"type\":\"Warehouse\",\"id\":1}],\"conditions\":{\"or\":[{\"and\":[{\">=\":[{\"var\":\"weight\"},{\"value\":70,\"unit\":\"lb\"}]},{\"contains_any\":[{\"var\":\"product_profiles\"},[31]]}]}]}}),\n};\n\nfetch('https://example.shipstream.app/api/global/v1/inventory/handling-classes?fields=conditions&fields:warehouses=name&fields:referenced_product_profiles=name,code', options)\n  .then(response => response.json())\n  .then(response => console.log(response));"
          },
          {
            "lang": "php",
            "label": "PHP",
            "source": "<?php\n\n$curl = curl_init();\ncurl_setopt_array($curl, [\n    CURLOPT_URL => 'https://example.shipstream.app/api/global/v1/inventory/handling-classes?fields=conditions&fields:warehouses=name&fields:referenced_product_profiles=name,code',\n    CURLOPT_RETURNTRANSFER => TRUE,\n    CURLOPT_CUSTOMREQUEST => 'POST',\n    CURLOPT_POSTFIELDS => '{\"name\":\"Heavy Bulky\",\"code\":\"heavy_bulky\",\"sort_order\":20,\"warehouses\":[{\"type\":\"Warehouse\",\"id\":1}],\"conditions\":{\"or\":[{\"and\":[{\">=\":[{\"var\":\"weight\"},{\"value\":70,\"unit\":\"lb\"}]},{\"contains_any\":[{\"var\":\"product_profiles\"},[31]]}]}]}}',\n    CURLOPT_HTTPHEADER => ['Authorization: Bearer <token>', 'Content-Type: application/json'],\n]);\n\n$response = curl_exec($curl);\ncurl_close($curl);\necho $response;"
          },
          {
            "lang": "go",
            "label": "Go",
            "source": "package main\n\nimport (\n    \"fmt\"\n    \"io\"\n    \"net/http\"\n    \"strings\"\n)\n\nfunc main() {\n    request, _ := http.NewRequest(\"POST\", \"https://example.shipstream.app/api/global/v1/inventory/handling-classes?fields=conditions&fields:warehouses=name&fields:referenced_product_profiles=name,code\", strings.NewReader(`{\"name\":\"Heavy Bulky\",\"code\":\"heavy_bulky\",\"sort_order\":20,\"warehouses\":[{\"type\":\"Warehouse\",\"id\":1}],\"conditions\":{\"or\":[{\"and\":[{\">=\":[{\"var\":\"weight\"},{\"value\":70,\"unit\":\"lb\"}]},{\"contains_any\":[{\"var\":\"product_profiles\"},[31]]}]}]}}`))\n    request.Header.Add(\"Authorization\", \"Bearer <token>\")\n    request.Header.Add(\"Content-Type\", \"application/json\")\n    response, _ := http.DefaultClient.Do(request)\n    defer response.Body.Close()\n    body, _ := io.ReadAll(response.Body)\n    fmt.Println(string(body))\n}"
          },
          {
            "lang": "java",
            "label": "Java",
            "source": "HttpResponse<String> response = Unirest.post(\"https://example.shipstream.app/api/global/v1/inventory/handling-classes?fields=conditions&fields:warehouses=name&fields:referenced_product_profiles=name,code\")\n  .header(\"Authorization\", \"Bearer <token>\")\n  .header(\"Content-Type\", \"application/json\")\n  .body(\"{\\\"name\\\":\\\"Heavy Bulky\\\",\\\"code\\\":\\\"heavy_bulky\\\",\\\"sort_order\\\":20,\\\"warehouses\\\":[{\\\"type\\\":\\\"Warehouse\\\",\\\"id\\\":1}],\\\"conditions\\\":{\\\"or\\\":[{\\\"and\\\":[{\\\">=\\\":[{\\\"var\\\":\\\"weight\\\"},{\\\"value\\\":70,\\\"unit\\\":\\\"lb\\\"}]},{\\\"contains_any\\\":[{\\\"var\\\":\\\"product_profiles\\\"},[31]]}]}]}}\")\n  .asString();"
          },
          {
            "lang": "ruby",
            "label": "Ruby",
            "source": "require 'uri'\nrequire 'net/http'\n\nurl = URI('https://example.shipstream.app/api/global/v1/inventory/handling-classes?fields=conditions&fields:warehouses=name&fields:referenced_product_profiles=name,code')\nrequest = Net::HTTP::Post.new(url)\nrequest['Authorization'] = 'Bearer <token>'\nrequest['Content-Type'] = 'application/json'\nrequest.body = '{\"name\":\"Heavy Bulky\",\"code\":\"heavy_bulky\",\"sort_order\":20,\"warehouses\":[{\"type\":\"Warehouse\",\"id\":1}],\"conditions\":{\"or\":[{\"and\":[{\">=\":[{\"var\":\"weight\"},{\"value\":70,\"unit\":\"lb\"}]},{\"contains_any\":[{\"var\":\"product_profiles\"},[31]]}]}]}}'\n\nresponse = Net::HTTP.start(url.hostname, url.port, use_ssl: true) do |http|\n  http.request(request)\nend\nputs response.read_body"
          }
        ]
      }
    },
    "/v1/inventory/handling-classes/condition-fields": {
      "get": {
        "summary": "List Handling Class condition fields",
        "description": "Returns the server-owned Product condition catalogue for Handling Class editor clients.\nLoad this catalogue when opening an editor; it is not repeated in each Handling Class\nresponse. Fields with a `value_source` use the advertised bounded search endpoint, while\nProduct Profiles are returned as a finite inline option map.",
        "tags": [
          "HandlingClasses"
        ],
        "operationId": "getHandlingClassConditionFields",
        "responses": {
          "200": {
            "description": "Handling Class condition field catalogue.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "groups": {
                      "type": "array",
                      "description": "Handling Class condition fields grouped in editor display order.",
                      "items": {
                        "$ref": "#/components/schemas/Inventory_API_v1_ConditionFieldGroup"
                      }
                    },
                    "expression": {
                      "$ref": "#/components/schemas/Inventory_API_v1_ConditionExpression"
                    },
                    "meta": {
                      "$ref": "#/components/schemas/Inventory_API_v1_meta"
                    }
                  },
                  "required": [
                    "groups",
                    "expression",
                    "meta"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "groups": [
                    {
                      "code": "handling_class",
                      "label": "Handling Class",
                      "fields": [
                        {
                          "code": "product_profiles",
                          "label": "Product Profile",
                          "type": "multiselect",
                          "operators": [
                            "contains_any",
                            "contains_none"
                          ],
                          "value_cast": "int",
                          "options": {
                            "31": "Oversized Furniture",
                            "44": "Regulated Aerosols"
                          }
                        }
                      ]
                    }
                  ],
                  "expression": {
                    "code": "expr",
                    "label": "Expression is true",
                    "help_url": "https://help.shipstream.io/scripting/common-expression-language"
                  },
                  "meta": {
                    "processing_time": 0.0094
                  }
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/Inventory_API_v1_500-internal-server-error"
          }
        }
      }
    },
    "/v1/inventory/handling-classes/by-code/{code}": {
      "get": {
        "summary": "Get Handling Class by code",
        "description": "Returns a Handling Class by its stable immutable code. Add\n`fields=conditions,conditions_readable` when loading the class for editing.",
        "tags": [
          "HandlingClasses"
        ],
        "operationId": "getHandlingClassByCode",
        "parameters": [
          {
            "name": "code",
            "in": "path",
            "required": true,
            "description": "Stable Handling Class code.",
            "schema": {
              "type": "string",
              "maxLength": 64,
              "pattern": "^[A-Za-z0-9_]+$",
              "example": "heavy_bulky"
            }
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_handling-class-fields"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_fields-handling-class-warehouses"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_fields-handling-class-referenced-product-profiles"
          }
        ],
        "responses": {
          "200": {
            "description": "The requested Handling Class.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "resource": {
                      "$ref": "#/components/schemas/Inventory_API_v1_HandlingClass"
                    },
                    "included": {
                      "$ref": "#/components/schemas/Inventory_API_v1_handling-classes"
                    }
                  }
                },
                "example": {
                  "resource": {
                    "type": "HandlingClass",
                    "id": 14,
                    "name": "Heavy Bulky",
                    "code": "heavy_bulky",
                    "sort_order": 20,
                    "warehouses": [
                      {
                        "type": "Warehouse",
                        "id": 1
                      }
                    ],
                    "referenced_product_profiles": [
                      {
                        "type": "ProductProfile",
                        "id": 31
                      }
                    ],
                    "conditions": {
                      "or": [
                        {
                          "and": [
                            {
                              ">=": [
                                {
                                  "var": "weight"
                                },
                                {
                                  "value": 70,
                                  "unit": "lb"
                                }
                              ]
                            },
                            {
                              "contains_any": [
                                {
                                  "var": "product_profiles"
                                },
                                [
                                  31
                                ]
                              ]
                            }
                          ]
                        }
                      ]
                    },
                    "matched_count": 318,
                    "classification": {
                      "status": "up_to_date",
                      "indexed_at": "2026-08-04T09:15:00Z"
                    },
                    "created_at": "2026-07-15T14:30:00Z",
                    "updated_at": "2026-08-04T09:15:00Z"
                  },
                  "included": {
                    "Warehouse": [
                      {
                        "type": "Warehouse",
                        "id": 1,
                        "name": "Newark NJ"
                      }
                    ],
                    "ProductProfile": [
                      {
                        "type": "ProductProfile",
                        "id": 31,
                        "name": "Oversized Products",
                        "code": "oversized_products"
                      }
                    ]
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Inventory_API_v1_400-bad-request"
          },
          "404": {
            "$ref": "#/components/responses/Inventory_API_v1_404-not-found"
          },
          "500": {
            "$ref": "#/components/responses/Inventory_API_v1_500-internal-server-error"
          }
        },
        "x-codeSamples": [
          {
            "lang": "curl",
            "label": "cURL",
            "source": "curl --request GET \\\n  --url 'https://example.shipstream.app/api/global/v1/inventory/handling-classes/by-code/heavy_bulky?fields=conditions&fields:warehouses=name&fields:referenced_product_profiles=name,code' \\\n  --header 'Authorization: Bearer <token>'"
          },
          {
            "lang": "python",
            "label": "Python",
            "source": "import requests\n\nurl = \"https://example.shipstream.app/api/global/v1/inventory/handling-classes/by-code/heavy_bulky?fields=conditions&fields:warehouses=name&fields:referenced_product_profiles=name,code\"\nheaders = {\"Authorization\": \"Bearer <token>\"}\n\nresponse = requests.get(url, headers=headers)\nprint(response.text)"
          },
          {
            "lang": "javascript",
            "label": "JavaScript",
            "source": "const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};\n\nfetch('https://example.shipstream.app/api/global/v1/inventory/handling-classes/by-code/heavy_bulky?fields=conditions&fields:warehouses=name&fields:referenced_product_profiles=name,code', options)\n  .then(response => response.json())\n  .then(response => console.log(response));"
          },
          {
            "lang": "php",
            "label": "PHP",
            "source": "<?php\n\n$curl = curl_init();\ncurl_setopt($curl, CURLOPT_URL, 'https://example.shipstream.app/api/global/v1/inventory/handling-classes/by-code/heavy_bulky?fields=conditions&fields:warehouses=name&fields:referenced_product_profiles=name,code');\ncurl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);\ncurl_setopt($curl, CURLOPT_HTTPHEADER, ['Authorization: Bearer <token>']);\n\n$response = curl_exec($curl);\ncurl_close($curl);\necho $response;"
          },
          {
            "lang": "go",
            "label": "Go",
            "source": "package main\n\nimport (\n    \"fmt\"\n    \"io\"\n    \"net/http\"\n)\n\nfunc main() {\n    req, _ := http.NewRequest(\"GET\", \"https://example.shipstream.app/api/global/v1/inventory/handling-classes/by-code/heavy_bulky?fields=conditions&fields:warehouses=name&fields:referenced_product_profiles=name,code\", nil)\n    req.Header.Add(\"Authorization\", \"Bearer <token>\")\n    response, _ := http.DefaultClient.Do(req)\n    defer response.Body.Close()\n    body, _ := io.ReadAll(response.Body)\n    fmt.Println(string(body))\n}"
          },
          {
            "lang": "java",
            "label": "Java",
            "source": "HttpResponse<String> response = Unirest.get(\"https://example.shipstream.app/api/global/v1/inventory/handling-classes/by-code/heavy_bulky?fields=conditions&fields:warehouses=name&fields:referenced_product_profiles=name,code\")\n  .header(\"Authorization\", \"Bearer <token>\")\n  .asString();"
          },
          {
            "lang": "ruby",
            "label": "Ruby",
            "source": "require 'uri'\nrequire 'net/http'\n\nurl = URI('https://example.shipstream.app/api/global/v1/inventory/handling-classes/by-code/heavy_bulky?fields=conditions&fields:warehouses=name&fields:referenced_product_profiles=name,code')\nrequest = Net::HTTP::Get.new(url)\nrequest['Authorization'] = 'Bearer <token>'\n\nresponse = Net::HTTP.start(url.hostname, url.port, use_ssl: true) do |http|\n  http.request(request)\nend\nputs response.read_body"
          }
        ]
      }
    },
    "/v1/inventory/handling-classes/{id}": {
      "get": {
        "summary": "Get Handling Class",
        "description": "Returns one `HandlingClass` by its numeric ID. Add\n`fields=conditions,conditions_readable` when loading the class for editing.",
        "tags": [
          "HandlingClasses"
        ],
        "operationId": "getHandlingClass",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Handling Class ID.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1,
              "example": 14
            }
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_handling-class-fields"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_fields-handling-class-warehouses"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_fields-handling-class-referenced-product-profiles"
          }
        ],
        "responses": {
          "200": {
            "description": "The requested Handling Class.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "resource": {
                      "$ref": "#/components/schemas/Inventory_API_v1_HandlingClass"
                    },
                    "included": {
                      "$ref": "#/components/schemas/Inventory_API_v1_handling-classes"
                    }
                  }
                },
                "example": {
                  "resource": {
                    "type": "HandlingClass",
                    "id": 14,
                    "name": "Heavy Bulky",
                    "code": "heavy_bulky",
                    "sort_order": 20,
                    "warehouses": [
                      {
                        "type": "Warehouse",
                        "id": 1
                      }
                    ],
                    "referenced_product_profiles": [
                      {
                        "type": "ProductProfile",
                        "id": 31
                      }
                    ],
                    "conditions": {
                      "or": [
                        {
                          "and": [
                            {
                              ">=": [
                                {
                                  "var": "weight"
                                },
                                {
                                  "value": 70,
                                  "unit": "lb"
                                }
                              ]
                            },
                            {
                              "contains_any": [
                                {
                                  "var": "product_profiles"
                                },
                                [
                                  31
                                ]
                              ]
                            }
                          ]
                        }
                      ]
                    },
                    "matched_count": 318,
                    "classification": {
                      "status": "up_to_date",
                      "indexed_at": "2026-08-04T09:15:00Z"
                    },
                    "created_at": "2026-07-15T14:30:00Z",
                    "updated_at": "2026-08-04T09:15:00Z"
                  },
                  "included": {
                    "Warehouse": [
                      {
                        "type": "Warehouse",
                        "id": 1,
                        "name": "Newark NJ"
                      }
                    ],
                    "ProductProfile": [
                      {
                        "type": "ProductProfile",
                        "id": 31,
                        "name": "Oversized Products",
                        "code": "oversized_products"
                      }
                    ]
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Inventory_API_v1_400-bad-request"
          },
          "404": {
            "$ref": "#/components/responses/Inventory_API_v1_404-not-found"
          },
          "500": {
            "$ref": "#/components/responses/Inventory_API_v1_500-internal-server-error"
          }
        },
        "x-codeSamples": [
          {
            "lang": "curl",
            "label": "cURL",
            "source": "curl --request GET \\\n  --url 'https://example.shipstream.app/api/global/v1/inventory/handling-classes/14?fields=conditions&fields:warehouses=name&fields:referenced_product_profiles=name,code' \\\n  --header 'Authorization: Bearer <token>'"
          },
          {
            "lang": "python",
            "label": "Python",
            "source": "import requests\n\nurl = \"https://example.shipstream.app/api/global/v1/inventory/handling-classes/14?fields=conditions&fields:warehouses=name&fields:referenced_product_profiles=name,code\"\nheaders = {\"Authorization\": \"Bearer <token>\"}\n\nresponse = requests.get(url, headers=headers)\nprint(response.text)"
          },
          {
            "lang": "javascript",
            "label": "JavaScript",
            "source": "const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};\n\nfetch('https://example.shipstream.app/api/global/v1/inventory/handling-classes/14?fields=conditions&fields:warehouses=name&fields:referenced_product_profiles=name,code', options)\n  .then(response => response.json())\n  .then(response => console.log(response));"
          },
          {
            "lang": "php",
            "label": "PHP",
            "source": "<?php\n\n$curl = curl_init();\ncurl_setopt($curl, CURLOPT_URL, 'https://example.shipstream.app/api/global/v1/inventory/handling-classes/14?fields=conditions&fields:warehouses=name&fields:referenced_product_profiles=name,code');\ncurl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);\ncurl_setopt($curl, CURLOPT_HTTPHEADER, ['Authorization: Bearer <token>']);\n\n$response = curl_exec($curl);\ncurl_close($curl);\necho $response;"
          },
          {
            "lang": "go",
            "label": "Go",
            "source": "package main\n\nimport (\n    \"fmt\"\n    \"io\"\n    \"net/http\"\n)\n\nfunc main() {\n    req, _ := http.NewRequest(\"GET\", \"https://example.shipstream.app/api/global/v1/inventory/handling-classes/14?fields=conditions&fields:warehouses=name&fields:referenced_product_profiles=name,code\", nil)\n    req.Header.Add(\"Authorization\", \"Bearer <token>\")\n    response, _ := http.DefaultClient.Do(req)\n    defer response.Body.Close()\n    body, _ := io.ReadAll(response.Body)\n    fmt.Println(string(body))\n}"
          },
          {
            "lang": "java",
            "label": "Java",
            "source": "HttpResponse<String> response = Unirest.get(\"https://example.shipstream.app/api/global/v1/inventory/handling-classes/14?fields=conditions&fields:warehouses=name&fields:referenced_product_profiles=name,code\")\n  .header(\"Authorization\", \"Bearer <token>\")\n  .asString();"
          },
          {
            "lang": "ruby",
            "label": "Ruby",
            "source": "require 'uri'\nrequire 'net/http'\n\nurl = URI('https://example.shipstream.app/api/global/v1/inventory/handling-classes/14?fields=conditions&fields:warehouses=name&fields:referenced_product_profiles=name,code')\nrequest = Net::HTTP::Get.new(url)\nrequest['Authorization'] = 'Bearer <token>'\n\nresponse = Net::HTTP.start(url.hostname, url.port, use_ssl: true) do |http|\n  http.request(request)\nend\nputs response.read_body"
          }
        ]
      },
      "put": {
        "summary": "Update Handling Class",
        "description": "Partially updates a Handling Class. `code` is immutable and is not accepted. Changes to\nconditions, sort order, or Warehouse assignments schedule asynchronous reclassification\nafter commit.\n\nOn success, the endpoint returns `200 OK` with an empty response body.",
        "tags": [
          "HandlingClasses"
        ],
        "operationId": "updateHandlingClass",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Handling Class ID.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1,
              "example": 14
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "minProperties": 1,
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 255,
                    "description": "Human-readable Handling Class name.",
                    "example": "Heavy and Oversized"
                  },
                  "sort_order": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 1000000,
                    "description": "Evaluation precedence within every selected Warehouse.",
                    "example": 25
                  },
                  "warehouses": {
                    "type": "array",
                    "minItems": 1,
                    "description": "Complete replacement Warehouse set. An empty array is never accepted: a class emptied by a Warehouse deletion must be given a new Warehouse set here, or be deleted.",
                    "items": {
                      "$ref": "#/components/schemas/Inventory_API_v1_WarehouseRef"
                    }
                  },
                  "conditions": {
                    "$ref": "#/components/schemas/Inventory_API_v1_ConditionTree"
                  }
                },
                "additionalProperties": false
              },
              "example": {
                "name": "Heavy or Oversized",
                "sort_order": 15,
                "conditions": {
                  "or": [
                    {
                      "and": [
                        {
                          ">=": [
                            {
                              "var": "weight"
                            },
                            {
                              "value": 70,
                              "unit": "lb"
                            }
                          ]
                        }
                      ]
                    },
                    {
                      "and": [
                        {
                          "contains_any": [
                            {
                              "var": "product_profiles"
                            },
                            [
                              31
                            ]
                          ]
                        }
                      ]
                    }
                  ]
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/Inventory_API_v1_200-ok-no-body"
          },
          "400": {
            "$ref": "#/components/responses/Inventory_API_v1_400-bad-request"
          },
          "404": {
            "$ref": "#/components/responses/Inventory_API_v1_404-not-found"
          },
          "422": {
            "$ref": "#/components/responses/Inventory_API_v1_422-unprocessable"
          },
          "500": {
            "$ref": "#/components/responses/Inventory_API_v1_500-internal-server-error"
          }
        }
      },
      "delete": {
        "summary": "Delete Handling Class",
        "description": "Deletes a Handling Class. Returns `422` with `used_by.slotting_rules` and\n`used_by.replenishment_policies` counts while either dependency exists.\n\nOn success, the endpoint returns `200 OK` with an empty response body.",
        "tags": [
          "HandlingClasses"
        ],
        "operationId": "deleteHandlingClass",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Handling Class ID.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1,
              "example": 14
            }
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/Inventory_API_v1_200-ok-no-body"
          },
          "400": {
            "$ref": "#/components/responses/Inventory_API_v1_400-bad-request"
          },
          "404": {
            "$ref": "#/components/responses/Inventory_API_v1_404-not-found"
          },
          "422": {
            "$ref": "#/components/responses/Inventory_API_v1_422-unprocessable"
          },
          "500": {
            "$ref": "#/components/responses/Inventory_API_v1_500-internal-server-error"
          }
        }
      }
    },
    "/v1/inventory/levels/total": {
      "get": {
        "summary": "List total inventory levels",
        "description": "Returns a list of `TotalLevel` objects showing aggregated inventory quantities \nacross all warehouses for each product.\n\nThis endpoint provides a system-wide view of inventory, combining quantities \nfrom all warehouses where products are stocked.",
        "tags": [
          "Levels"
        ],
        "operationId": "getTotalLevels",
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "required": false,
            "style": "form",
            "explode": true,
            "allowReserved": true,
            "description": "Using the [filtering syntax](/global-api/filtering-syntax), you may filter the results using the following fields:\n\n**Product Fields:**\n  - `id` - Product entity ID (alias for `product_id`)\n  - `product_id` - Product entity ID\n  - `sku` - Product SKU\n  - `product_name` - Product name\n  - `product_type` - Product type (normal, packaging, containers, supplies, infill)\n  - `product_created_at` - Product creation date\n  - `product_updated_at` - Product last update date\n  - `merchant_id` - Merchant/website ID\n  - `vendor_sku` - Vendor SKU\n  - `external_id` - External product ID\n  - `barcode` - Product barcode\n  - `goods_type` - Goods classification\n  - `is_enabled` - Product enabled status (default: true)\n  - `is_available` - Product availability status\n  - `is_visible` - Product visibility status\n\n**Inventory Fields:**\n  - `updated_at` - Inventory last updated timestamp\n  - `qty_allocated` - Quantity allocated for orders\n  - `qty_backordered` - Quantity backordered\n  - `qty_reserved` - Quantity reserved for picking\n  - `qty_picked` - Quantity picked but not packed\n  - `qty_expected` - Quantity expected from deliveries\n  - `qty_processed` - Quantity processed from deliveries\n  - `qty_putaway` - Quantity waiting to be put away\n  - `qty_available` - Quantity available for allocation\n  - `qty_held` - Quantity placed on hold (quarantined, damaged, expired, etc.)\n  - `qty_on_hand` - Total physical quantity on hand\n  - `qty_advertised` - Quantity advertised to customers",
            "examples": {
              "Products with inventory": {
                "summary": "Only products with on-hand inventory",
                "value": [
                  "qty_on_hand{gt:0}"
                ]
              },
              "Recently updated": {
                "summary": "Inventory updated in last 24 hours",
                "value": [
                  "updated_at{from:\"2025-08-27T00:00:00Z\"}"
                ]
              },
              "Specific merchant and SKU pattern": {
                "summary": "Filter by merchant and SKU pattern",
                "value": [
                  "merchant_id:2",
                  "sku{start:\"ABC\"}"
                ]
              }
            }
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "The default sort order is **descending** by `updated_at` (`sort=-updated_at`).\n\nUsing the [sorting syntax](/global-api/sorting-syntax), the following fields are available for sorting:\n  - `product_id`\n  - `sku`\n  - `updated_at`"
          },
          {
            "name": "fields",
            "in": "query",
            "required": false,
            "description": "Specify additional fields of the `TotalLevel` object to be included in the response.",
            "explode": false,
            "schema": {
              "type": "string",
              "enum": [
                "all",
                "product",
                "warehouse",
                "qty_allocated",
                "qty_backordered",
                "qty_reserved",
                "qty_picked",
                "qty_expected",
                "qty_processed",
                "qty_putaway",
                "qty_available",
                "qty_held",
                "qty_on_hand",
                "qty_advertised",
                "updated_at"
              ]
            }
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_fields-product"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_count"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_cursor_end"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_cursor_start"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_limit"
          }
        ],
        "responses": {
          "200": {
            "description": "A dictionary with a `collection` property that contains an array of up to\n`limit` `TotalLevel` objects. If no inventory levels are found the array will be empty.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "collection": {
                      "type": "array",
                      "description": "A list of `TotalLevel` objects.",
                      "items": {
                        "$ref": "#/components/schemas/Inventory_API_v1_TotalLevel"
                      }
                    },
                    "included": {
                      "type": "object",
                      "description": "Lists of referenced objects included by specifying optional fields.\nSee the [selecting fields](/global-api/selecting-fields) page for more information.",
                      "properties": {
                        "Product": {
                          "type": "array",
                          "items": {
                            "$ref": "#/components/schemas/Inventory_API_v1_Product"
                          }
                        }
                      }
                    },
                    "has_more": {
                      "$ref": "#/components/schemas/Inventory_API_v1_has_more"
                    },
                    "next": {
                      "$ref": "#/components/schemas/Inventory_API_v1_next"
                    },
                    "previous": {
                      "$ref": "#/components/schemas/Inventory_API_v1_previous"
                    },
                    "meta": {
                      "$ref": "#/components/schemas/Inventory_API_v1_meta"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Inventory_API_v1_400-bad-request"
          },
          "422": {
            "$ref": "#/components/responses/Inventory_API_v1_422-unprocessable"
          },
          "500": {
            "$ref": "#/components/responses/Inventory_API_v1_500-internal-server-error"
          }
        }
      }
    },
    "/v1/inventory/levels/warehouse": {
      "get": {
        "summary": "List warehouse inventory levels",
        "description": "Retrieve inventory levels grouped by warehouse for each product. This endpoint returns\nwarehouse-specific inventory data with quantity information per product per warehouse.\n",
        "tags": [
          "Levels"
        ],
        "operationId": "getWarehouseLevels",
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "required": false,
            "style": "form",
            "explode": true,
            "allowReserved": true,
            "description": "Using the [filtering syntax](/global-api/filtering-syntax), you may filter the results using the following fields:\n\n**Product Fields:**\n  - `id` - Warehouse level item ID\n  - `product_id` - Product entity ID\n  - `sku` - Product SKU\n  - `product_name` - Product name\n  - `product_type` - Product type (normal, packaging, containers, supplies, infill)\n  - `product_created_at` - Product creation date\n  - `product_updated_at` - Product last update date\n  - `merchant_id` - Merchant/website ID\n  - `vendor_sku` - Vendor SKU\n  - `external_id` - External product ID\n  - `barcode` - Product barcode\n  - `goods_type` - Goods classification\n  - `is_enabled` - Product enabled status (default: true)\n  - `is_available` - Product availability status\n  - `is_visible` - Product visibility status\n\n**Inventory Fields:**\n  - `updated_at` - Inventory last updated timestamp\n  - `qty_allocated` - Quantity allocated for orders\n  - `qty_reserved` - Quantity reserved for picking\n  - `qty_picked` - Quantity picked but not packed\n  - `qty_expected` - Quantity expected from deliveries\n  - `qty_processed` - Quantity processed from deliveries\n  - `qty_putaway` - Quantity waiting to be put away\n  - `qty_available` - Quantity available for allocation\n  - `qty_held` - Quantity placed on hold (quarantined, damaged, expired, etc.)\n  - `qty_on_hand` - Total physical quantity on hand\n  - `qty_advertised` - Quantity advertised to customers",
            "examples": {
              "Products with inventory": {
                "summary": "Only products with on-hand inventory",
                "value": [
                  "qty_on_hand{gt:0}"
                ]
              },
              "Recently updated": {
                "summary": "Inventory updated in last 24 hours",
                "value": [
                  "updated_at{from:\"2025-08-27T00:00:00Z\"}"
                ]
              },
              "Specific merchant and SKU pattern": {
                "summary": "Filter by merchant and SKU pattern",
                "value": [
                  "merchant_id:2",
                  "sku{start:\"ABC\"}"
                ]
              }
            }
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "The default sort order is **descending** by `updated_at` (`sort=-updated_at`).\n\nUsing the [sorting syntax](/global-api/sorting-syntax), the following fields are available for sorting:\n  - `id`\n  - `product_id`\n  - `warehouse_id`\n  - `sku`\n  - `updated_at`"
          },
          {
            "name": "fields",
            "in": "query",
            "required": false,
            "description": "Specify additional fields of the `TotalLevel` object to be included in the response.",
            "explode": false,
            "schema": {
              "type": "string",
              "enum": [
                "all",
                "product",
                "qty_allocated",
                "qty_reserved",
                "qty_picked",
                "qty_expected",
                "qty_processed",
                "qty_putaway",
                "qty_available",
                "qty_held",
                "qty_on_hand",
                "qty_advertised",
                "updated_at"
              ]
            }
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_fields-product"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_fields-warehouse"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_count"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_cursor_end"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_cursor_start"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_limit"
          }
        ],
        "responses": {
          "200": {
            "description": "List of warehouse inventory levels",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "collection": {
                      "type": "array",
                      "description": "A list of `WarehouseLevel` objects.",
                      "items": {
                        "$ref": "#/components/schemas/Inventory_API_v1_WarehouseLevel"
                      }
                    },
                    "included": {
                      "type": "object",
                      "description": "Lists of referenced objects included by specifying optional fields.\nSee the [selecting fields](/global-api/selecting-fields) page for more information.",
                      "properties": {
                        "Product": {
                          "type": "array",
                          "items": {
                            "$ref": "#/components/schemas/Inventory_API_v1_Product"
                          }
                        },
                        "Warehouse": {
                          "type": "array",
                          "items": {
                            "$ref": "#/components/schemas/Inventory_API_v1_Warehouse"
                          }
                        }
                      }
                    },
                    "has_more": {
                      "$ref": "#/components/schemas/Inventory_API_v1_has_more"
                    },
                    "next": {
                      "$ref": "#/components/schemas/Inventory_API_v1_next"
                    },
                    "previous": {
                      "$ref": "#/components/schemas/Inventory_API_v1_previous"
                    },
                    "meta": {
                      "$ref": "#/components/schemas/Inventory_API_v1_meta"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Inventory_API_v1_400-bad-request"
          },
          "422": {
            "$ref": "#/components/responses/Inventory_API_v1_422-unprocessable"
          },
          "500": {
            "$ref": "#/components/responses/Inventory_API_v1_500-internal-server-error"
          }
        }
      }
    },
    "/v1/inventory/location-tags": {
      "get": {
        "summary": "List Location Tags",
        "description": "Returns a list of `LocationTag` objects.\n\nSoft-deleted tags are excluded unless the request filters on `is_deleted`, in which case\nthe filter alone decides which tags are returned.",
        "tags": [
          "LocationTags"
        ],
        "operationId": "getLocationTags",
        "parameters": [
          {
            "$ref": "#/components/parameters/Inventory_API_v1_location-tag-fields"
          },
          {
            "name": "filter",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "required": false,
            "style": "form",
            "explode": true,
            "allowReserved": true,
            "description": "Using the [filtering syntax](/global-api/filtering-syntax), you may filter the results\nusing the following fields:\n  - `id`\n  - `name`\n  - `sort_order`\n  - `is_deleted`\n  - `created_at`\n  - `updated_at`",
            "examples": {
              "Deleted only": {
                "summary": "Only soft-deleted tags.",
                "value": [
                  "is_deleted:true"
                ]
              },
              "Every tag": {
                "summary": "Both live and soft-deleted tags.",
                "value": [
                  "is_deleted{in:[true, false]}"
                ]
              }
            }
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "The default sort order is **ascending** by primary key (`sort=id`).\n\nUsing the [sorting syntax](/global-api/sorting-syntax), the following fields are available for sorting:\n  - `id`\n  - `name`\n  - `sort_order`\n  - `created_at`\n  - `updated_at`"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_count"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_cursor_end"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_cursor_start"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_limit"
          }
        ],
        "responses": {
          "200": {
            "description": "A dictionary with a `collection` property that contains an array of up to\n`limit` `LocationTag` objects. If no tags are found the array will be empty.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "collection": {
                      "type": "array",
                      "description": "A list of `LocationTag` objects.",
                      "items": {
                        "$ref": "#/components/schemas/Inventory_API_v1_LocationTag"
                      }
                    },
                    "has_more": {
                      "$ref": "#/components/schemas/Inventory_API_v1_has_more"
                    },
                    "next": {
                      "$ref": "#/components/schemas/Inventory_API_v1_next"
                    },
                    "previous": {
                      "$ref": "#/components/schemas/Inventory_API_v1_previous"
                    },
                    "meta": {
                      "$ref": "#/components/schemas/Inventory_API_v1_meta"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Inventory_API_v1_400-bad-request"
          },
          "500": {
            "$ref": "#/components/responses/Inventory_API_v1_500-internal-server-error"
          }
        }
      },
      "post": {
        "summary": "Create Location Tag",
        "description": "Creates a new `LocationTag` according to the request body. The `name` must be unique among\nlive location tags; deleting a tag renames it with a suffix, so a deleted tag's original\nname is immediately reusable.",
        "tags": [
          "LocationTags"
        ],
        "operationId": "createLocationTag",
        "parameters": [
          {
            "$ref": "#/components/parameters/Inventory_API_v1_location-tag-fields"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 230,
                    "description": "The display name of the tag. HTML tags are stripped and surrounding whitespace is\ntrimmed. The limit is short of the field's own 255 characters because the rest is\nreserved for the suffix the name carries once the tag is deleted.",
                    "example": "Hazmat"
                  },
                  "description": {
                    "type": "string",
                    "maxLength": 255,
                    "nullable": true,
                    "description": "An explanation of what the tag signifies.",
                    "example": "Locations approved to store hazardous materials."
                  },
                  "color": {
                    "$ref": "#/components/schemas/Inventory_API_v1_tag_color"
                  },
                  "sort_order": {
                    "type": "integer",
                    "minimum": -2147483648,
                    "maximum": 2147483647,
                    "description": "The position the tag takes when tags are listed for selection. Defaults to `1`.",
                    "example": 1
                  }
                },
                "required": [
                  "name",
                  "color"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Location tag created.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "resource": {
                      "$ref": "#/components/schemas/Inventory_API_v1_LocationTag"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Inventory_API_v1_400-bad-request"
          },
          "422": {
            "$ref": "#/components/responses/Inventory_API_v1_422-unprocessable"
          },
          "500": {
            "$ref": "#/components/responses/Inventory_API_v1_500-internal-server-error"
          }
        }
      }
    },
    "/v1/inventory/location-tags/{id}": {
      "get": {
        "summary": "Get one Location Tag",
        "description": "Returns a single `LocationTag` object specified by its `id` path parameter. Soft-deleted tags\nremain readable here.",
        "tags": [
          "LocationTags"
        ],
        "operationId": "getLocationTag",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The `id` of the `LocationTag`.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1
            },
            "required": true
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_location-tag-fields"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "resource": {
                      "$ref": "#/components/schemas/Inventory_API_v1_LocationTag"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Inventory_API_v1_400-bad-request"
          },
          "404": {
            "$ref": "#/components/responses/Inventory_API_v1_404-not-found"
          },
          "500": {
            "$ref": "#/components/responses/Inventory_API_v1_500-internal-server-error"
          }
        }
      },
      "put": {
        "summary": "Update Location Tag",
        "description": "Partially updates a `LocationTag` specified by its `id` path parameter. Only the properties\npresent in the request body are changed.\n\nSetting `is_deleted` restores or soft-deletes the tag, which also rewrites its `name`: a\nsoft-delete appends a `(Deleted ID: n)` suffix and a restore strips it. A restore fails with\n`422` when the reclaimed name has since been taken by another tag.",
        "tags": [
          "LocationTags"
        ],
        "operationId": "updateLocationTag",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The `id` of the `LocationTag`.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1
            },
            "required": true
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 230,
                    "description": "The display name of the tag. HTML tags are stripped and surrounding whitespace is\ntrimmed. The limit is short of the field's own 255 characters because the rest is\nreserved for the suffix the name carries once the tag is deleted.",
                    "example": "Hazmat"
                  },
                  "description": {
                    "type": "string",
                    "maxLength": 255,
                    "nullable": true,
                    "description": "An explanation of what the tag signifies.",
                    "example": "Locations approved to store hazardous materials."
                  },
                  "color": {
                    "$ref": "#/components/schemas/Inventory_API_v1_tag_color"
                  },
                  "sort_order": {
                    "type": "integer",
                    "minimum": -2147483648,
                    "maximum": 2147483647,
                    "description": "The position the tag takes when tags are listed for selection.",
                    "example": 3
                  },
                  "is_deleted": {
                    "type": "boolean",
                    "description": "Set to `false` to restore a soft-deleted tag, or `true` to soft-delete it.",
                    "example": false
                  }
                },
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/Inventory_API_v1_200-ok-no-body"
          },
          "400": {
            "$ref": "#/components/responses/Inventory_API_v1_400-bad-request"
          },
          "404": {
            "$ref": "#/components/responses/Inventory_API_v1_404-not-found"
          },
          "422": {
            "$ref": "#/components/responses/Inventory_API_v1_422-unprocessable"
          },
          "500": {
            "$ref": "#/components/responses/Inventory_API_v1_500-internal-server-error"
          }
        }
      },
      "delete": {
        "summary": "Delete Location Tag",
        "description": "Soft-deletes a `LocationTag` specified by its `id` path parameter. The tag row is kept so that\nlocations already carrying it continue to display it; only new assignments are prevented. The\ntag's `name` gains a `(Deleted ID: n)` suffix, freeing the original name for reuse.\n\nBecause nothing is removed, a tag in use by locations deletes successfully — this operation\nnever reports a conflict. Reverse it with `PUT {\"is_deleted\": false}`. Deleting an\nalready-deleted tag is a no-op.",
        "tags": [
          "LocationTags"
        ],
        "operationId": "deleteLocationTag",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The `id` of the `LocationTag`.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1
            },
            "required": true
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/Inventory_API_v1_200-ok-no-body"
          },
          "400": {
            "$ref": "#/components/responses/Inventory_API_v1_400-bad-request"
          },
          "404": {
            "$ref": "#/components/responses/Inventory_API_v1_404-not-found"
          },
          "422": {
            "$ref": "#/components/responses/Inventory_API_v1_422-unprocessable"
          },
          "500": {
            "$ref": "#/components/responses/Inventory_API_v1_500-internal-server-error"
          }
        }
      }
    },
    "/v1/inventory/slot-types": {
      "get": {
        "summary": "List Slot Types",
        "description": "Returns a list of `SlotType` objects.\n\nThe default field set is the small one embedded on `Location` responses (`id`, `name`,\n`is_pickable`); request `fields=all` for the management fields such as `sort_order`,\n`patterns` and the capacity measurements.",
        "tags": [
          "SlotTypes"
        ],
        "operationId": "getSlotTypes",
        "parameters": [
          {
            "$ref": "#/components/parameters/Inventory_API_v1_slot_type-fields"
          },
          {
            "name": "filter",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "required": false,
            "style": "form",
            "explode": true,
            "allowReserved": true,
            "description": "Using the [filtering syntax](/global-api/filtering-syntax), you may filter the results\nusing the following fields:\n  - `id`\n  - `name`\n  - `sort_order`\n  - `is_pickable` — supports only the `eq` and `neq` operators\n  - `is_fixed_capacity`\n  - `created_at`\n  - `updated_at`",
            "examples": {
              "Pickable only": {
                "summary": "Only slot types whose locations are pickable.",
                "value": [
                  "is_pickable:true"
                ]
              },
              "Fixed capacity only": {
                "summary": "Only slot types that declare a fixed capacity.",
                "value": [
                  "is_fixed_capacity:true"
                ]
              }
            }
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "The default sort order is **descending** by primary key (`sort=-id`).\n\nUsing the [sorting syntax](/global-api/sorting-syntax), the following fields are available for sorting:\n  - `id`\n  - `name`\n  - `sort_order`\n  - `created_at`\n  - `updated_at`"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_count"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_cursor_end"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_cursor_start"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_limit"
          }
        ],
        "responses": {
          "200": {
            "description": "A dictionary with a `collection` property that contains an array of up to\n`limit` `SlotType` objects. If no slot types are found the array will be empty.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "collection": {
                      "type": "array",
                      "description": "A list of `SlotType` objects.",
                      "items": {
                        "$ref": "#/components/schemas/Inventory_API_v1_SlotType"
                      }
                    },
                    "has_more": {
                      "$ref": "#/components/schemas/Inventory_API_v1_has_more"
                    },
                    "next": {
                      "$ref": "#/components/schemas/Inventory_API_v1_next"
                    },
                    "previous": {
                      "$ref": "#/components/schemas/Inventory_API_v1_previous"
                    },
                    "meta": {
                      "$ref": "#/components/schemas/Inventory_API_v1_meta"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Inventory_API_v1_400-bad-request"
          },
          "500": {
            "$ref": "#/components/responses/Inventory_API_v1_500-internal-server-error"
          }
        }
      },
      "post": {
        "summary": "Create Slot Type",
        "description": "Creates a new `SlotType` according to the request body. The `name` must be unique.\n\nMeasurements are stored in the instance's base unit; a value submitted with a different\n`unit` is converted first. Setting `is_fixed_capacity` to `true` requires all three slot\ndimensions to be present and greater than zero.",
        "tags": [
          "SlotTypes"
        ],
        "operationId": "createSlotType",
        "parameters": [
          {
            "$ref": "#/components/parameters/Inventory_API_v1_slot_type-fields"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "maxLength": 45,
                    "description": "The descriptive name of the slot type.",
                    "example": "Pickable Pallets"
                  },
                  "is_pickable": {
                    "type": "boolean",
                    "description": "Whether locations of this type are easy to pick from. Defaults to `true`.",
                    "example": true
                  },
                  "sort_order": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 65535,
                    "description": "The order in which this slot type's auto-assign patterns are tested, lowest first;\namong slot types sharing a sort order the newest is tested first. Defaults to\n`65535` (the maximum) so a new slot type is tested after every explicitly ordered\ntype, but ahead of any older type also left at the maximum — including the\nbuilt-in match-all `Default` type.",
                    "example": 10
                  },
                  "patterns": {
                    "type": "array",
                    "description": "Label patterns that automatically assign this slot type to matching locations.\nStored in a canonical order rather than the submitted one.",
                    "items": {
                      "$ref": "#/components/schemas/Inventory_API_v1_Pattern"
                    }
                  },
                  "is_fixed_capacity": {
                    "type": "boolean",
                    "description": "Whether slots of this type hold a fixed, known amount. Defaults to `false`.",
                    "example": true
                  },
                  "slot_dimensions": {
                    "$ref": "#/components/schemas/Inventory_API_v1_DimensionsWHDNonNegative"
                  },
                  "weight_capacity": {
                    "$ref": "#/components/schemas/Inventory_API_v1_WeightNonNegative"
                  }
                },
                "required": [
                  "name"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Slot type created.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "resource": {
                      "$ref": "#/components/schemas/Inventory_API_v1_SlotType"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Inventory_API_v1_400-bad-request"
          },
          "422": {
            "$ref": "#/components/responses/Inventory_API_v1_422-unprocessable"
          },
          "500": {
            "$ref": "#/components/responses/Inventory_API_v1_500-internal-server-error"
          }
        }
      }
    },
    "/v1/inventory/slot-types/{id}": {
      "get": {
        "summary": "Get one Slot Type",
        "description": "Returns a single `SlotType` object specified by its `id` path parameter.",
        "tags": [
          "SlotTypes"
        ],
        "operationId": "getSlotType",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The `id` of the `SlotType`.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1
            },
            "required": true
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_slot_type-fields"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "resource": {
                      "$ref": "#/components/schemas/Inventory_API_v1_SlotType"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Inventory_API_v1_400-bad-request"
          },
          "404": {
            "$ref": "#/components/responses/Inventory_API_v1_404-not-found"
          },
          "500": {
            "$ref": "#/components/responses/Inventory_API_v1_500-internal-server-error"
          }
        }
      },
      "put": {
        "summary": "Update Slot Type",
        "description": "Partially updates a `SlotType` specified by its `id` path parameter. Only the properties\npresent in the request body are changed; sending `patterns` replaces the whole list.\n\nChanging the slot dimensions or `is_fixed_capacity` queues the affected locations for\ncapacity recalculation, so a change is not reflected in utilization figures until those\njobs run.",
        "tags": [
          "SlotTypes"
        ],
        "operationId": "updateSlotType",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The `id` of the `SlotType`.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1
            },
            "required": true
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "maxLength": 45,
                    "description": "The descriptive name of the slot type.",
                    "example": "Pickable Pallets"
                  },
                  "is_pickable": {
                    "type": "boolean",
                    "description": "Whether locations of this type are easy to pick from.",
                    "example": true
                  },
                  "sort_order": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 65535,
                    "description": "The order in which this slot type's auto-assign patterns are tested, lowest first.",
                    "example": 10
                  },
                  "patterns": {
                    "type": "array",
                    "description": "Label patterns that automatically assign this slot type to matching locations,\nreplacing the existing list. Stored in a canonical order rather than the submitted one.",
                    "items": {
                      "$ref": "#/components/schemas/Inventory_API_v1_Pattern"
                    }
                  },
                  "is_fixed_capacity": {
                    "type": "boolean",
                    "description": "Whether slots of this type hold a fixed, known amount.",
                    "example": true
                  },
                  "slot_dimensions": {
                    "$ref": "#/components/schemas/Inventory_API_v1_DimensionsWHDNonNegative"
                  },
                  "weight_capacity": {
                    "$ref": "#/components/schemas/Inventory_API_v1_WeightNonNegative"
                  }
                },
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/Inventory_API_v1_200-ok-no-body"
          },
          "400": {
            "$ref": "#/components/responses/Inventory_API_v1_400-bad-request"
          },
          "404": {
            "$ref": "#/components/responses/Inventory_API_v1_404-not-found"
          },
          "422": {
            "$ref": "#/components/responses/Inventory_API_v1_422-unprocessable"
          },
          "500": {
            "$ref": "#/components/responses/Inventory_API_v1_500-internal-server-error"
          }
        }
      },
      "delete": {
        "summary": "Delete Slot Type",
        "description": "Deletes a `SlotType` specified by its `id` path parameter.\n\nA slot type that is assigned to any location cannot be deleted and returns `422` with a\n`used_by` detail reporting how many locations are in the way. Deleting the last\nnon-pickable slot type is also refused with `422`, because every warehouse needs one.",
        "tags": [
          "SlotTypes"
        ],
        "operationId": "deleteSlotType",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The `id` of the `SlotType`.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1
            },
            "required": true
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/Inventory_API_v1_200-ok-no-body"
          },
          "400": {
            "$ref": "#/components/responses/Inventory_API_v1_400-bad-request"
          },
          "404": {
            "$ref": "#/components/responses/Inventory_API_v1_404-not-found"
          },
          "422": {
            "$ref": "#/components/responses/Inventory_API_v1_422-unprocessable"
          },
          "500": {
            "$ref": "#/components/responses/Inventory_API_v1_500-internal-server-error"
          }
        }
      }
    },
    "/v1/inventory/hold-reasons": {
      "get": {
        "summary": "List active hold reasons",
        "description": "Returns the active hold-reason tree as a flat list of parent (system) reasons; each parent\ninlines its user-defined child reasons via the `children` array. Schema enforces a single\nnesting level — child reasons never carry a `children` key.\n\nCross-merchant by design (no website scoping). System reasons are always returned; user-defined\nreasons are returned regardless of which merchant created them.\n\nSee the **Inventory Hold System** documentation for hold semantics.",
        "tags": [
          "HoldReasons"
        ],
        "operationId": "listHoldReasons",
        "parameters": [
          {
            "$ref": "#/components/parameters/Inventory_API_v1_hold-reason-fields"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_fields-parent"
          },
          {
            "name": "filter",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "required": false,
            "style": "form",
            "explode": true,
            "allowReserved": true,
            "description": "Using the [filtering syntax](/global-api/filtering-syntax), you may filter the results\nusing the following fields:\n  - `id` — reason_id\n  - `code`"
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Default sort is **ascending** by `id`. Using the [sorting syntax](/global-api/sorting-syntax),\nthe following fields are available for sorting:\n  - `id`\n  - `code`\n  - `sort_order`"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_count"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_cursor_end"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_cursor_start"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_limit"
          }
        ],
        "responses": {
          "200": {
            "description": "A dictionary with a `collection` property containing an array of `HoldReason` objects (parents only;\neach parent's `children` array carries any user-defined sub-reasons). If no active reasons exist\nthe array will be empty.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "collection": {
                      "type": "array",
                      "description": "A list of parent `HoldReason` objects with their `children` inlined.",
                      "items": {
                        "$ref": "#/components/schemas/Inventory_API_v1_HoldReason"
                      }
                    },
                    "has_more": {
                      "$ref": "#/components/schemas/Inventory_API_v1_has_more"
                    },
                    "next": {
                      "$ref": "#/components/schemas/Inventory_API_v1_next"
                    },
                    "previous": {
                      "$ref": "#/components/schemas/Inventory_API_v1_previous"
                    },
                    "meta": {
                      "$ref": "#/components/schemas/Inventory_API_v1_meta"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Inventory_API_v1_400-bad-request"
          },
          "500": {
            "$ref": "#/components/responses/Inventory_API_v1_500-internal-server-error"
          }
        }
      },
      "post": {
        "summary": "Create user-defined hold reason",
        "description": "Creates a new user-defined child hold reason under an existing top-level system reason.\nSystem fields (`is_system`, `reason_id`, `parent_code`, `parent_reason_id`) are\nserver-controlled and must not be included in the request body.\n\nThe `code` must be unique, match `^[a-z0-9_]+$`, and be ≤ 64 characters.\nThe `parent.id` must reference a top-level system reason.",
        "tags": [
          "HoldReasons"
        ],
        "operationId": "createHoldReason",
        "parameters": [
          {
            "$ref": "#/components/parameters/Inventory_API_v1_hold-reason-fields"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_fields-parent"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "code": {
                    "type": "string",
                    "description": "Stable identifier. Must match `^[a-z0-9_]+$`, ≤ 64 characters, unique.",
                    "example": "qc_followup"
                  },
                  "label": {
                    "type": "string",
                    "description": "Human-readable label, ≤ 255 characters.",
                    "example": "QC Follow-up"
                  },
                  "parent": {
                    "$ref": "#/components/schemas/Inventory_API_v1_HoldReasonRef",
                    "description": "Reference to the top-level system reason that owns this child."
                  },
                  "display_group": {
                    "type": "string",
                    "nullable": true,
                    "description": "Display group name, ≤ 25 characters. Defaults to \"Hold\" via model.",
                    "example": "Hold"
                  },
                  "allow_relocation": {
                    "type": "boolean",
                    "nullable": true,
                    "description": "Whether inventory under this hold may be relocated. `null` = inherit from parent.",
                    "example": null
                  },
                  "merchants": {
                    "type": "array",
                    "nullable": true,
                    "description": "Merchant scope restrictions. Empty array or omit for unrestricted.",
                    "items": {
                      "$ref": "#/components/schemas/Inventory_API_v1_MerchantRef"
                    }
                  },
                  "is_active": {
                    "type": "boolean",
                    "description": "Whether this reason is active. Defaults to `true`.",
                    "example": true
                  },
                  "sort_order": {
                    "type": "integer",
                    "description": "Display order within siblings. Defaults to `0`.",
                    "example": 0
                  }
                },
                "required": [
                  "code",
                  "label",
                  "parent"
                ]
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Hold reason created.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "resource": {
                      "$ref": "#/components/schemas/Inventory_API_v1_HoldReason"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Inventory_API_v1_400-bad-request"
          },
          "404": {
            "$ref": "#/components/responses/Inventory_API_v1_404-not-found"
          },
          "422": {
            "$ref": "#/components/responses/Inventory_API_v1_422-unprocessable"
          },
          "500": {
            "$ref": "#/components/responses/Inventory_API_v1_500-internal-server-error"
          }
        }
      }
    },
    "/v1/inventory/hold-reasons/{id}": {
      "put": {
        "summary": "Update hold reason",
        "description": "Partially updates a `HoldReason` specified by an `id` path parameter. Per-field constraints\ndiffer between system and user-defined reasons — see each property's description below.",
        "tags": [
          "HoldReasons"
        ],
        "operationId": "updateHoldReason",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "description": "reason_id"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "label": {
                    "type": "string",
                    "description": "Human-readable label, ≤ 255 characters. Mutable on both system and user reasons.",
                    "example": "QC Follow-up (revised)"
                  },
                  "display_group": {
                    "type": "string",
                    "nullable": true,
                    "description": "Display group name, ≤ 25 characters. Mutable on both system and user reasons.",
                    "example": "Hold"
                  },
                  "allow_relocation": {
                    "type": "boolean",
                    "nullable": true,
                    "description": "Whether inventory under this hold may be relocated.\nUser reasons: `true` / `false` / `null` (`null` = inherit from parent).\nSystem reasons: `true` or `false` only — `null` is rejected (422) because system reasons have no parent to inherit from.\n",
                    "example": false
                  },
                  "is_active": {
                    "type": "boolean",
                    "description": "Whether this reason is active. Mutable on both system and user reasons.",
                    "example": true
                  },
                  "sort_order": {
                    "type": "integer",
                    "description": "Display order within siblings. Mutable on both system and user reasons.",
                    "example": 10
                  },
                  "merchants": {
                    "type": "array",
                    "nullable": true,
                    "description": "Merchant scope restrictions. Empty array or `null` = unrestricted.\nUser reasons: mutable. System reasons: rejected (422) — system reasons are not merchant-scoped.\n",
                    "items": {
                      "$ref": "#/components/schemas/Inventory_API_v1_MerchantRef"
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Hold reason updated."
          },
          "400": {
            "$ref": "#/components/responses/Inventory_API_v1_400-bad-request"
          },
          "404": {
            "$ref": "#/components/responses/Inventory_API_v1_404-not-found"
          },
          "422": {
            "$ref": "#/components/responses/Inventory_API_v1_422-unprocessable"
          },
          "500": {
            "$ref": "#/components/responses/Inventory_API_v1_500-internal-server-error"
          }
        }
      },
      "delete": {
        "summary": "Delete user-defined hold reason",
        "description": "Deletes a user-defined `HoldReason` specified by an `id` path parameter. System reasons\ncannot be deleted. User reasons that are referenced by existing holds also cannot be\ndeleted (returns 422).",
        "tags": [
          "HoldReasons"
        ],
        "operationId": "deleteHoldReason",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "description": "reason_id"
          }
        ],
        "responses": {
          "200": {
            "description": "Hold reason deleted."
          },
          "404": {
            "$ref": "#/components/responses/Inventory_API_v1_404-not-found"
          },
          "422": {
            "$ref": "#/components/responses/Inventory_API_v1_422-unprocessable"
          },
          "500": {
            "$ref": "#/components/responses/Inventory_API_v1_500-internal-server-error"
          }
        }
      }
    },
    "/v1/inventory/holds": {
      "get": {
        "summary": "List / search inventory holds",
        "description": "Returns a list of `Hold` objects. Cross-merchant by design — filter by `merchant_id` or\n`product_id`/`sku` to scope to a specific merchant.",
        "tags": [
          "Holds"
        ],
        "operationId": "listHolds",
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "required": false,
            "style": "form",
            "explode": true,
            "allowReserved": true,
            "description": "Using the [filtering syntax](/global-api/filtering-syntax), you may filter the results\nusing the following fields:\n  - `id` — hold_id\n  - `merchant_id`\n  - `warehouse_id`\n  - `product_id`\n  - `location_id`\n  - `lot_id`\n  - `lot_number`\n  - `reason_code` — exact match (does NOT roll up to parent)\n  - `held_at` — supports `{from:...}`, `{to:...}` range syntax\n  - `status` — `active` or `released` (only `eq` and `in` operators supported)",
            "examples": {
              "Active only": {
                "summary": "Only active holds",
                "value": [
                  "status:active"
                ]
              },
              "For a given merchant": {
                "summary": "Filter to a single merchant",
                "value": [
                  "merchant_id:2"
                ]
              },
              "By reason code": {
                "summary": "Holds with reason \"damaged\"",
                "value": [
                  "reason_code:damaged"
                ]
              }
            }
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Default sort is **descending** by `id` (`sort=-id`) — PRIMARY-key backed and\nchronologically equivalent to `held_at` for unreleased rows under the canonical\ninsert path. Pass `sort=-held_at` explicitly if your dataset includes backfilled\nor timestamp-corrected rows where insert order diverges from `held_at`.\n\nUsing the [sorting syntax](/global-api/sorting-syntax), the following fields are available\nfor sorting:\n  - `id`\n  - `held_at`"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_fields-merchant"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_fields-warehouse"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_fields-product"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_fields-location"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_fields-lot"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_fields-held_by"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_fields-released_by"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_count"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_cursor_end"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_cursor_start"
          },
          {
            "$ref": "#/components/parameters/Inventory_API_v1_limit"
          }
        ],
        "responses": {
          "200": {
            "description": "List of `Hold` objects.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "collection": {
                      "type": "array",
                      "description": "A list of `Hold` objects.",
                      "items": {
                        "$ref": "#/components/schemas/Inventory_API_v1_Hold"
                      }
                    },
                    "has_more": {
                      "$ref": "#/components/schemas/Inventory_API_v1_has_more"
                    },
                    "next": {
                      "$ref": "#/components/schemas/Inventory_API_v1_next"
                    },
                    "previous": {
                      "$ref": "#/components/schemas/Inventory_API_v1_previous"
                    },
                    "meta": {
                      "$ref": "#/components/schemas/Inventory_API_v1_meta"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Inventory_API_v1_400-bad-request"
          },
          "500": {
            "$ref": "#/components/responses/Inventory_API_v1_500-internal-server-error"
          }
        }
      }
    },
    "/v1/inventory/holds/{id}": {
      "get": {
        "summary": "Get one Hold by ID",
        "description": "Returns a single `Hold` object specified by a hold `id` path parameter.",
        "tags": [
          "Holds"
        ],
        "operationId": "getHold",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "description": "hold_id"
          }
        ],
        "responses": {
          "200": {
            "description": "A single `Hold` object.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "resource": {
                      "$ref": "#/components/schemas/Inventory_API_v1_Hold"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "$ref": "#/components/responses/Inventory_API_v1_404-not-found"
          },
          "500": {
            "$ref": "#/components/responses/Inventory_API_v1_500-internal-server-error"
          }
        }
      }
    },
    "/v1/inventory/holds/location": {
      "post": {
        "summary": "Place location-level Hold",
        "description": "Places an inventory hold on the specified location for the given reason. A hold freezes the\nentire location: its on-shelf inventory becomes held — excluded from available and advertised\nquantity and unavailable for allocation — until the hold is released.\n\nPartial holds are not supported. `qty` is optional; when supplied it must equal the location's\nfull on-shelf quantity at the time of the call, or the request returns 422. When omitted, the\nwhole location is held.",
        "tags": [
          "Holds"
        ],
        "operationId": "holdLocation",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "location_id": {
                    "type": "integer",
                    "format": "int64",
                    "description": "Target location.",
                    "example": 6
                  },
                  "reason_code": {
                    "type": "string",
                    "description": "Hold reason code (system or user-defined).",
                    "example": "damaged"
                  },
                  "qty": {
                    "type": "number",
                    "format": "float",
                    "nullable": true,
                    "description": "Optional. When supplied it must be > 0 and equal to the location's full on-shelf \nqty; partial holds are not supported. When omitted, the whole location is held.",
                    "example": 5
                  },
                  "notes": {
                    "type": "string",
                    "nullable": true,
                    "description": "Free-form notes.",
                    "example": "Damaged at receiving"
                  }
                },
                "required": [
                  "location_id",
                  "reason_code"
                ]
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Hold placed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "resource": {
                      "$ref": "#/components/schemas/Inventory_API_v1_Hold"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Inventory_API_v1_400-bad-request"
          },
          "404": {
            "$ref": "#/components/responses/Inventory_API_v1_404-not-found"
          },
          "422": {
            "$ref": "#/components/responses/Inventory_API_v1_422-unprocessable"
          },
          "500": {
            "$ref": "#/components/responses/Inventory_API_v1_500-internal-server-error"
          }
        }
      }
    },
    "/v1/inventory/holds/lot": {
      "post": {
        "summary": "Place lot-level Hold (with optional BOM cascade)",
        "description": "Places holds on every active putaway location currently carrying the named lot.\n\n`cascade_bom=false` (default) — the engine's `Hold::placeByLot` path. Each affected location\ngets a location-scope `stock_hold` row with `parent_hold_id=NULL`.\n\n`cascade_bom=true` — the engine's `Hold::cascadeLotHold` path. The hold cascades through the\nBOM lineage discovered via `work_lot_input` / `work_component_lot`. The response carries\n`cascade.release_mode` as a hint for downstream tooling, but cascaded holds must currently be\nfreed per-id via `POST /v1/inventory/holds/{id}/release` using\n`origin.created_origin_hold_ids ∪ cascade.child_hold_ids`.\n\n**Do not blindly release `origin.root_hold_ids`** — those may include pre-existing roots\nfrom a prior `cascadeLotHold` call that this call attached children to, and releasing them\nwould also release siblings the current caller did not place.",
        "tags": [
          "Holds"
        ],
        "operationId": "holdLot",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "lot_id": {
                    "type": "integer",
                    "format": "int64",
                    "description": "Lot to hold.",
                    "example": 142
                  },
                  "reason_code": {
                    "type": "string",
                    "description": "Hold reason code.",
                    "example": "recalled"
                  },
                  "cascade_bom": {
                    "type": "boolean",
                    "default": false,
                    "description": "Cascade through BOM lineage.",
                    "example": false
                  },
                  "notes": {
                    "type": "string",
                    "nullable": true,
                    "description": "Free-form notes attached to the holds placed by this call.",
                    "example": "Recall #123"
                  }
                },
                "required": [
                  "lot_id",
                  "reason_code"
                ]
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Lot hold placed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "origin": {
                      "type": "object",
                      "properties": {
                        "lot_id": {
                          "type": "integer",
                          "format": "int64",
                          "description": "Origin lot the holds were placed against."
                        },
                        "created_origin_hold_ids": {
                          "type": "array",
                          "items": {
                            "type": "integer",
                            "format": "int64"
                          },
                          "description": "stock_hold IDs created by this call against the origin lot. Always release\nthese per-id when freeing a cascaded hold tree.\n"
                        },
                        "root_hold_ids": {
                          "type": "array",
                          "description": "Cascade tree roots (cascade_bom=true only). May include pre-existing roots\nfrom a prior cascadeLotHold call. Do NOT include in a per-id release set\nunless you specifically intend to release siblings.\n",
                          "items": {
                            "type": "integer",
                            "format": "int64"
                          }
                        }
                      },
                      "required": [
                        "lot_id",
                        "created_origin_hold_ids"
                      ]
                    },
                    "cascade": {
                      "type": "object",
                      "description": "Present only when cascade_bom=true.",
                      "properties": {
                        "release_mode": {
                          "type": "string",
                          "enum": [
                            "tree",
                            "by_hold_ids"
                          ],
                          "description": "Future-use hint reflecting the engine's view of the cascade shape.\nConsumers must release per-id today via `POST /v1/inventory/holds/{id}/release`\nusing `origin.created_origin_hold_ids ∪ cascade.child_hold_ids` regardless\nof which value is returned.\n"
                        },
                        "origin_empty": {
                          "type": "boolean",
                          "description": "True when the origin lot had no active putaway locations to hold."
                        },
                        "discovered_lots": {
                          "type": "integer",
                          "description": "Number of lineage-related lots discovered via the BOM walk."
                        },
                        "held_lots": {
                          "type": "integer",
                          "description": "Number of lineage-related lots that received at least one hold."
                        },
                        "child_hold_ids": {
                          "type": "array",
                          "items": {
                            "type": "integer",
                            "format": "int64"
                          },
                          "description": "Hold IDs created on lineage-related lots. Combine with\norigin.created_origin_hold_ids for a per-id release set.\n"
                        },
                        "affected_lot_ids": {
                          "type": "array",
                          "items": {
                            "type": "integer",
                            "format": "int64"
                          }
                        },
                        "skipped_lots_cross_merchant": {
                          "type": "integer",
                          "description": "Lineage lots skipped because they belong to another merchant."
                        },
                        "skipped_lots_no_putaway": {
                          "type": "integer",
                          "description": "Lineage lots skipped because they have no active putaway location."
                        },
                        "skipped_lots_fully_already_held": {
                          "type": "integer",
                          "description": "Lineage lots skipped because every active location already carries a hold."
                        },
                        "skipped_lots_no_origin_in_stock": {
                          "type": "integer",
                          "description": "Lineage lots skipped because the origin lot has no holdable qty remaining\nto anchor the cascade against.\n"
                        },
                        "skipped_lots_no_holdable_qty": {
                          "type": "integer",
                          "description": "Lineage lots skipped because no location had any holdable qty."
                        },
                        "skipped_locations_already_held": {
                          "type": "integer",
                          "description": "Locations skipped because an active hold already covers the lot at that location."
                        },
                        "skipped_locations_no_holdable_qty": {
                          "type": "integer",
                          "description": "Locations skipped because the holdable qty would be zero."
                        },
                        "skipped_locations_no_origin_in_stock": {
                          "type": "integer",
                          "description": "Locations skipped because the origin lot has no holdable qty in the matching\nstock for this lineage lot.\n"
                        }
                      }
                    }
                  },
                  "required": [
                    "origin"
                  ]
                },
                "examples": {
                  "cascade_bom=false": {
                    "summary": "cascade_bom=false response (no cascade key)",
                    "value": {
                      "origin": {
                        "lot_id": 142,
                        "created_origin_hold_ids": [
                          501,
                          502,
                          503
                        ]
                      }
                    }
                  },
                  "cascade_bom=true (tree mode)": {
                    "summary": "cascade_bom=true with tree-mode cascade",
                    "value": {
                      "origin": {
                        "lot_id": 142,
                        "created_origin_hold_ids": [
                          501,
                          502
                        ],
                        "root_hold_ids": [
                          501
                        ]
                      },
                      "cascade": {
                        "release_mode": "tree",
                        "origin_empty": false,
                        "discovered_lots": 4,
                        "held_lots": 3,
                        "child_hold_ids": [
                          610,
                          611,
                          612
                        ],
                        "affected_lot_ids": [
                          201,
                          202,
                          203
                        ]
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Inventory_API_v1_400-bad-request"
          },
          "404": {
            "$ref": "#/components/responses/Inventory_API_v1_404-not-found"
          },
          "422": {
            "$ref": "#/components/responses/Inventory_API_v1_422-unprocessable"
          },
          "500": {
            "$ref": "#/components/responses/Inventory_API_v1_500-internal-server-error"
          }
        }
      }
    },
    "/v1/inventory/holds/{id}/release": {
      "post": {
        "summary": "Release one Hold by ID",
        "description": "Releases a single active `stock_hold` row by its `id`.",
        "tags": [
          "Holds"
        ],
        "operationId": "releaseHold",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "description": "hold_id to release."
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Empty object `{}`. The engine's `Hold::release()` does not currently accept release-time\nnotes — the `notes` set when the hold was placed is preserved in the audit history.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Hold released.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "resource": {
                      "$ref": "#/components/schemas/Inventory_API_v1_Hold"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "$ref": "#/components/responses/Inventory_API_v1_404-not-found"
          },
          "422": {
            "description": "Hold is not active (already released) — see error body for details.",
            "$ref": "#/components/responses/Inventory_API_v1_422-unprocessable"
          },
          "500": {
            "$ref": "#/components/responses/Inventory_API_v1_500-internal-server-error"
          }
        }
      }
    },
    "/v1/inventory/holds/lot/{lot_id}/release": {
      "post": {
        "summary": "Release all active Holds on Lot",
        "description": "Releases every active `stock_hold` row whose `lot_id` matches the path parameter, regardless\nof reason. Useful for \"lift quarantine on lot X\" workflows.\n\n**Cascaded lot release is not currently supported.** Sending `release_cascaded=true` returns\na 400 RequestNotValid. To free a cascaded hold tree, release each child via\n`POST /v1/inventory/holds/{id}/release`.\n\nFor cascaded holds (placed via `holdLot` with `cascade_bom=true`), release per-id using\n`origin.created_origin_hold_ids ∪ cascade.child_hold_ids` from the original `holdLot`\nresponse.",
        "tags": [
          "Holds"
        ],
        "operationId": "releaseLot",
        "parameters": [
          {
            "name": "lot_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "description": "Lot whose holds to release."
          }
        ],
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "release_cascaded": {
                    "type": "boolean",
                    "default": false,
                    "description": "Only `false` is currently supported. Sending `true` returns 400 with a pointer\nto the per-id release endpoint.\n"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Lot release outcome.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "lot_id": {
                      "type": "integer",
                      "format": "int64",
                      "description": "Lot whose holds were targeted by this release call."
                    },
                    "released_hold_ids": {
                      "type": "array",
                      "description": "Hold IDs newly released by this call. Empty when the lot had no active holds.",
                      "items": {
                        "type": "integer",
                        "format": "int64"
                      }
                    }
                  },
                  "required": [
                    "lot_id",
                    "released_hold_ids"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid request (e.g. release_cascaded=true is unsupported in this slice).",
            "$ref": "#/components/responses/Inventory_API_v1_400-bad-request"
          },
          "404": {
            "$ref": "#/components/responses/Inventory_API_v1_404-not-found"
          },
          "500": {
            "$ref": "#/components/responses/Inventory_API_v1_500-internal-server-error"
          }
        }
      }
    },
    "/v1/receiving/{type}": {
      "get": {
        "summary": "List all Deliveries",
        "description": "Returns a list of `ASN`, `RMA`, or `Other` objects specified by the `type` path parameter.",
        "tags": [
          "Deliveries"
        ],
        "operationId": "getDeliveries",
        "parameters": [
          {
            "$ref": "#/components/parameters/Receiving_API_v1_delivery-type"
          },
          {
            "$ref": "#/components/parameters/Receiving_API_v1_delivery-fields"
          },
          {
            "$ref": "#/components/parameters/Receiving_API_v1_fields-merchant"
          },
          {
            "$ref": "#/components/parameters/Receiving_API_v1_fields-warehouse"
          },
          {
            "$ref": "#/components/parameters/Receiving_API_v1_fields-status_history"
          },
          {
            "$ref": "#/components/parameters/Receiving_API_v1_fields-delivery-items"
          },
          {
            "$ref": "#/components/parameters/Receiving_API_v1_fields-items-product"
          },
          {
            "$ref": "#/components/parameters/Receiving_API_v1_fields-delivery-items-exceptions"
          },
          {
            "$ref": "#/components/parameters/Receiving_API_v1_fields-delivery-items-lots"
          },
          {
            "$ref": "#/components/parameters/Receiving_API_v1_fields-delivery-items-locations"
          },
          {
            "$ref": "#/components/parameters/Receiving_API_v1_fields-delivery-containers"
          },
          {
            "$ref": "#/components/parameters/Receiving_API_v1_fields-containers-container_type"
          },
          {
            "$ref": "#/components/parameters/Receiving_API_v1_delivery-filter"
          },
          {
            "in": "query",
            "name": "sort",
            "schema": {
              "type": "string"
            },
            "required": false,
            "description": "The default sort order is **descending** by primary key (`sort=-id`). The following fields are available for sorting:\n  - `id`\n  - `label`"
          },
          {
            "$ref": "#/components/parameters/Receiving_API_v1_count"
          },
          {
            "$ref": "#/components/parameters/Receiving_API_v1_cursor_end"
          },
          {
            "$ref": "#/components/parameters/Receiving_API_v1_cursor_start"
          },
          {
            "$ref": "#/components/parameters/Receiving_API_v1_limit"
          }
        ],
        "responses": {
          "200": {
            "description": "A dictionary with a `collection` property that contains an array of up to `limit` `ASN`, `RMA`, or `Other` objects. If no matching deliveries are found the array will be empty.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "collection": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/Receiving_API_v1_CompositeDelivery"
                      }
                    },
                    "included": {
                      "$ref": "#/components/schemas/Receiving_API_v1_deliveries"
                    },
                    "has_more": {
                      "$ref": "#/components/schemas/Receiving_API_v1_has_more"
                    },
                    "next": {
                      "$ref": "#/components/schemas/Receiving_API_v1_next"
                    },
                    "previous": {
                      "$ref": "#/components/schemas/Receiving_API_v1_previous"
                    },
                    "meta": {
                      "$ref": "#/components/schemas/Receiving_API_v1_meta"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Receiving_API_v1_400-bad-request"
          },
          "500": {
            "$ref": "#/components/responses/Receiving_API_v1_500-internal-server-error"
          }
        }
      }
    },
    "/v1/receiving/{type}/{id}": {
      "get": {
        "summary": "Get one Delivery",
        "description": "Returns a single `ASN`, `RMA`, or `Other` object specified by its `type` & `id` path parameters.",
        "tags": [
          "Deliveries"
        ],
        "operationId": "getDelivery",
        "parameters": [
          {
            "$ref": "#/components/parameters/Receiving_API_v1_delivery-type"
          },
          {
            "$ref": "#/components/parameters/Receiving_API_v1_delivery-fields"
          },
          {
            "$ref": "#/components/parameters/Receiving_API_v1_fields-merchant"
          },
          {
            "$ref": "#/components/parameters/Receiving_API_v1_fields-warehouse"
          },
          {
            "$ref": "#/components/parameters/Receiving_API_v1_fields-status_history"
          },
          {
            "$ref": "#/components/parameters/Receiving_API_v1_fields-delivery-items"
          },
          {
            "$ref": "#/components/parameters/Receiving_API_v1_fields-delivery-items-exceptions"
          },
          {
            "$ref": "#/components/parameters/Receiving_API_v1_fields-delivery-items-lots"
          },
          {
            "$ref": "#/components/parameters/Receiving_API_v1_fields-delivery-items-locations"
          },
          {
            "$ref": "#/components/parameters/Receiving_API_v1_fields-delivery-containers"
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1
            },
            "description": "The `id` of the referenced `Delivery`."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "resource": {
                      "$ref": "#/components/schemas/Receiving_API_v1_CompositeDelivery"
                    },
                    "included": {
                      "$ref": "#/components/schemas/Receiving_API_v1_deliveries"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Receiving_API_v1_400-bad-request"
          },
          "404": {
            "$ref": "#/components/responses/Receiving_API_v1_404-not-found"
          },
          "500": {
            "$ref": "#/components/responses/Receiving_API_v1_500-internal-server-error"
          }
        }
      }
    },
    "/v1/shipping/shipments": {
      "get": {
        "summary": "List all Shipments",
        "description": "Returns a list of `Shipment` objects.",
        "tags": [
          "Shipments"
        ],
        "operationId": "getShipments",
        "parameters": [
          {
            "$ref": "#/components/parameters/Shipping_API_v1_shipment-fields"
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_shipment-items-fields"
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_shipment-items-product-fields"
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_fields-items-order_item"
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_fields-order"
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_fields-order-items"
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_fields-order-shipments"
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_fields-order-merchant"
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_fields-order-brand"
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_fields-order-shipping_address"
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_fields-order-status_history"
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_fields-order-original_address"
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_fields-order-address_candidates"
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_fields-order-instructions"
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_fields-order-tpb_group"
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_fields-warehouse"
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_fields-packages"
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_fields-gallery"
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_fields-gallery-items"
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_fields-packages-gallery"
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_fields-packages-items"
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_fields-packing_solution"
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_fields-retailer"
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_fields-retailer_ship_to_location"
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_fields-shipment-retailer.parent_retailer"
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_fields-shipment-retailer_ship_to_location.retailer"
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_fields-shipment-order.retailer"
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_fields-shipment-order.retailer_ship_to_location"
          },
          {
            "name": "filter",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "in": "query",
            "required": false,
            "style": "form",
            "explode": true,
            "description": "Using the [filtering syntax](/global-api/filtering-syntax), you may filter the results using the following fields:\n  - `id`\n  - `unique_id`\n  - `created_at`\n  - `updated_at`\n  - `packed_at`\n  - `tracking_number`\n  - `alt_tracking_number`\n  - `retailer_id`"
          },
          {
            "name": "sort",
            "schema": {
              "type": "string"
            },
            "in": "query",
            "required": false,
            "description": "The default sort order is **descending** by primary key (`sort=-id`).\nThe following fields are available for sorting:\n  - `id`\n  - `unique_id`\n  - `created_at`\n  - `updated_at`\n  - `packed_at`\n  - `merchant_id`"
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_count"
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_cursor_end"
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_cursor_start"
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_limit"
          }
        ],
        "responses": {
          "200": {
            "description": "A dictionary with a `collection` property that contains an array of up to\n`limit` `Shipment` objects. If no shipments are found the array will be empty.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "collection": {
                      "type": "array",
                      "description": "A list of `Shipment` objects.",
                      "items": {
                        "$ref": "#/components/schemas/Shipping_API_v1_Shipment"
                      }
                    },
                    "included": {
                      "$ref": "#/components/schemas/Shipping_API_v1_shipments"
                    },
                    "has_more": {
                      "$ref": "#/components/schemas/Shipping_API_v1_has_more"
                    },
                    "next": {
                      "$ref": "#/components/schemas/Shipping_API_v1_next"
                    },
                    "previous": {
                      "$ref": "#/components/schemas/Shipping_API_v1_previous"
                    },
                    "meta": {
                      "$ref": "#/components/schemas/Shipping_API_v1_meta"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Shipping_API_v1_400-bad-request"
          },
          "422": {
            "$ref": "#/components/responses/Shipping_API_v1_422-unprocessable"
          },
          "500": {
            "$ref": "#/components/responses/Shipping_API_v1_500-internal-server-error"
          }
        }
      }
    },
    "/v1/shipping/shipments/{id}": {
      "get": {
        "summary": "Get one Shipment",
        "description": "Returns a single `Shipment` object specified by a shipment `id` path parameter.",
        "tags": [
          "Shipments"
        ],
        "operationId": "getShipment",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1
            },
            "required": true,
            "description": "The `id` of the referenced `Shipment`."
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_shipment-fields"
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_shipment-items-fields"
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_shipment-items-product-fields"
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_fields-items-order_item"
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_fields-order"
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_fields-order-items"
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_fields-order-shipments"
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_fields-order-merchant"
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_fields-order-brand"
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_fields-order-shipping_address"
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_fields-order-status_history"
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_fields-order-original_address"
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_fields-order-address_candidates"
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_fields-order-instructions"
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_fields-warehouse"
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_fields-packages"
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_fields-gallery"
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_fields-gallery-items"
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_fields-packages-gallery"
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_fields-packages-items"
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_fields-packing_solution"
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_fields-retailer"
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_fields-retailer_ship_to_location"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "resource": {
                      "$ref": "#/components/schemas/Shipping_API_v1_Shipment"
                    },
                    "included": {
                      "$ref": "#/components/schemas/Shipping_API_v1_shipments"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Shipping_API_v1_400-bad-request"
          },
          "404": {
            "$ref": "#/components/responses/Shipping_API_v1_404-not-found"
          },
          "422": {
            "$ref": "#/components/responses/Shipping_API_v1_422-unprocessable"
          },
          "500": {
            "$ref": "#/components/responses/Shipping_API_v1_500-internal-server-error"
          }
        }
      }
    },
    "/v1/shipping/shipments/{id}/process": {
      "post": {
        "summary": "Process Shipment",
        "tags": [
          "Shipments"
        ],
        "operationId": "processShipment",
        "description": "Processes a `Shipment`, specified by its `id` path parameter, in the “new” status so that it is reserved\nto specific stock locations and is ready to be picked.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "integer",
              "minimum": 1
            },
            "required": true,
            "description": "The `id` of the referenced `Shipment`."
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "pick_locations": {
                    "type": "array",
                    "uniqueItems": false,
                    "description": "Optionally specify the exact locations to which the shipment\nitems should be reserved.",
                    "items": {
                      "$ref": "#/components/schemas/Shipping_API_v1_PickupLocation"
                    },
                    "writeOnly": true
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/Shipping_API_v1_200-ok-no-body"
          },
          "400": {
            "$ref": "#/components/responses/Shipping_API_v1_400-bad-request"
          },
          "404": {
            "$ref": "#/components/responses/Shipping_API_v1_404-not-found"
          },
          "422": {
            "$ref": "#/components/responses/Shipping_API_v1_422-unprocessable"
          },
          "500": {
            "$ref": "#/components/responses/Shipping_API_v1_500-internal-server-error"
          }
        }
      }
    },
    "/v1/shipping/shipments/{id}/reservations": {
      "get": {
        "summary": "Get Shipment Reservations",
        "description": "Returns the assigned reservations (pick locations) for a shipment in Picking status.\n\nReservations represent the specific warehouse locations where items should be picked\nfrom to fulfill this shipment. This endpoint is only available for shipments with\nstatus \"picking\".",
        "tags": [
          "Shipments"
        ],
        "operationId": "getShipmentReservations",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1
            },
            "required": true,
            "description": "The shipment ID"
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_limit"
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_cursor_start"
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_shipment-reservation-sort"
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_shipment-reservation-filter"
          },
          {
            "name": "fields",
            "in": "query",
            "required": false,
            "description": "Specify additional fields to include in the response",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "all",
                  "basic",
                  "quantity",
                  "is_locked",
                  "location",
                  "item",
                  "qty_picked"
                ]
              }
            }
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_shipment-item-fields"
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_shipment-item-product-fields"
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_fields-item-order_item"
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_fields-location"
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_fields-location-lot"
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_fields-location-slot_type"
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_fields-location-product"
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_fields-location-rack"
          }
        ],
        "responses": {
          "200": {
            "description": "A dictionary with a `collection` property that contains a list of \n`Reservation` objects for the specified shipment.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "collection": {
                      "type": "array",
                      "description": "A list of `Reservation` objects.",
                      "items": {
                        "$ref": "#/components/schemas/Shipping_API_v1_Reservation"
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Shipping_API_v1_400-bad-request"
          },
          "404": {
            "$ref": "#/components/responses/Shipping_API_v1_404-not-found"
          },
          "422": {
            "$ref": "#/components/responses/Shipping_API_v1_422-unprocessable"
          },
          "500": {
            "$ref": "#/components/responses/Shipping_API_v1_500-internal-server-error"
          }
        }
      }
    },
    "/v1/shipping/shipments/{id}/pick": {
      "post": {
        "summary": "Pick Shipment",
        "tags": [
          "Shipments"
        ],
        "operationId": "pickShipment",
        "description": "Completes some or all picks for the `Shipment` specified by its `id` path parameter.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "integer",
              "minimum": 1
            },
            "required": true,
            "description": "The `id` of the referenced `Shipment`."
          }
        ],
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "pick_locations": {
                    "type": "array",
                    "uniqueItems": false,
                    "description": "Optionally specify the exact locations and amounts which should\nbe picked. If not specified then all locations for this shipment\nwill be picked. Cannot be used together with `reservation_refs`.",
                    "items": {
                      "$ref": "#/components/schemas/Shipping_API_v1_PickupLocation"
                    },
                    "writeOnly": true
                  },
                  "reservation_refs": {
                    "type": "array",
                    "uniqueItems": false,
                    "description": "Optionally specify the exact reservations to pick by their IDs.\nIf not specified then all reservations for this shipment will be picked. \nCannot be used together with `pick_locations`.",
                    "items": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "integer",
                          "description": "The ID of the reservation to pick."
                        },
                        "quantity": {
                          "type": "number",
                          "description": "The quantity to pick from this reservation. If not specified,\nall remaining quantity from the reservation will be picked."
                        }
                      },
                      "required": [
                        "id"
                      ]
                    },
                    "writeOnly": true
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/Shipping_API_v1_200-ok-no-body"
          },
          "400": {
            "$ref": "#/components/responses/Shipping_API_v1_400-bad-request"
          },
          "404": {
            "$ref": "#/components/responses/Shipping_API_v1_404-not-found"
          },
          "422": {
            "$ref": "#/components/responses/Shipping_API_v1_422-unprocessable"
          },
          "500": {
            "$ref": "#/components/responses/Shipping_API_v1_500-internal-server-error"
          }
        }
      }
    },
    "/v1/shipping/shipments/{id}/pack": {
      "post": {
        "summary": "Pack Shipment",
        "tags": [
          "Shipments"
        ],
        "operationId": "packShipment",
        "description": "This endpoint can be used in multiple modes of operation and in all cases operates on a `Shipment` specified by its `id` path parameter.\n\nThe available modes are:\n1. Pack and Label: Create packages for a shipment and complete packing (create label if supported) in one step.\n2. Pack Only: Create packages for a shipment without completing packing.\n3. Complete Packing: Complete the packing of a shipment (creates a label if supported) in the \"packing\" status which was previously packed with the second mode.\n\nAdditionally, many of the parameters are optional, in which case the system will attempt to intelligently determine the best course of action based on the current state of the shipment and its contents. For example, if the Shipment has a Packing Solution and no package details are provided, the system will assume the containers specified by the Packing Solution were used and thus create the packages accordingly.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "integer",
              "minimum": 1
            },
            "required": true,
            "description": "The `id` of the referenced `Shipment`."
          }
        ],
        "requestBody": {
          "description": "Optional request parameters for packing, labeling, and printing operations.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "packages": {
                    "type": "array",
                    "description": "Describes each package and its contents. If not provided, and the Shipment has a Packing Solution, the Packing Solution containers will be used to create the packages. If neither are provided, the system will attempt to create a single package containing all items in the shipment.",
                    "items": {
                      "$ref": "#/components/schemas/Shipping_API_v1_Package"
                    }
                  },
                  "complete_packing": {
                    "type": "boolean",
                    "description": "If `true`, the packing process will be completed and the shipment status will advance to 'Packed'. Otherwise, the packages will be saved and the shipment status will advance only to 'Packing'. A second request without the `packages` property and with `complete_packing` set to `true` is then required to complete the packing process using the package data from the first request (two-step).\n\nRequired to be `true` if `return_label` or `print_label` is `true` and no existing label exists.",
                    "default": false,
                    "example": true
                  },
                  "return_label": {
                    "type": "boolean",
                    "description": "Whether to return the generated shipping labels in the response as base64-encoded PDF data.\nRequires `complete_packing` to be `true` or an existing shipping label to be present.\nLabels are returned in the response under the `labels` key.",
                    "default": false,
                    "example": false
                  },
                  "print_label": {
                    "type": "boolean",
                    "description": "Whether to send the generated labels to the specified printers.\nRequires `complete_packing` to be `true` or an existing shipping label to be present.\nMust specify the appropriate printer parameters based on shipment type and documents returned by the carrier API.",
                    "default": false,
                    "example": false
                  },
                  "printers": {
                    "$ref": "#/components/schemas/Shipping_API_v1_printers"
                  },
                  "post_automation_url": {
                    "type": "string",
                    "format": "uri",
                    "description": "URL to send shipment data to after successful packing operation.\nMust be a valid HTTP or HTTPS URL.\nShipment data including ID, tracking info, and package data will be transmitted to this URL via an HTTP POST request synchronously.\nAny 200 response will be considered a success. Any non-200 response will be considered an error, and the request body will be truncated to 255 characters and displayed to the user and added as a history comment to the order.\n\nThe JSON-encoded payload contains the following keys: `shipment_id`, `external_id`, `order_unique_id`, `order_ref`, `carrier_code`, `shipping_method`, `batch_tag`, `automation_data`, `website_code`, `store_code`, `shipment_weight`, `shipment_weight_unit`, `order_weight`, `order_weight_unit`, `is_international`, `is_documents_required`, and `stock_id`.",
                    "example": "https://automation.example.com/shipment/packed"
                  },
                  "solution_override": {
                    "type": "object",
                    "description": "Packing solution override parameters for manual or automatic solution adjustment.\nUsed to specify alternative packing solutions or create new ones.",
                    "properties": {
                      "solution_id": {
                        "type": "integer",
                        "description": "ID of an existing packing solution to use instead of the current one.\nUse -1 to create a new solution from the current shipment data.",
                        "example": 12345
                      },
                      "reason": {
                        "type": "string",
                        "description": "Reason for the packing solution override.",
                        "example": "Container size adjustment required"
                      },
                      "comment": {
                        "type": "string",
                        "description": "Additional comments about the solution override.",
                        "example": "Customer requested specific packaging"
                      },
                      "mark_solution_invalid": {
                        "type": "boolean",
                        "description": "Whether to mark the original solution as invalid.",
                        "default": false,
                        "example": false
                      }
                    }
                  },
                  "mark_solution_invalid": {
                    "type": "boolean",
                    "description": "Whether to mark the current packing solution as invalid/disabled.\nWhen `true`, disables the current solution after packing is complete.\nCannot be used in combination with other solution override parameters.",
                    "default": false,
                    "example": false
                  },
                  "initial_solution_id": {
                    "type": "integer",
                    "description": "ID of the initial packing solution to set on the shipment before processing.\nUsed to establish a baseline solution before applying any overrides.",
                    "example": 54321
                  },
                  "ship_offline": {
                    "type": "boolean",
                    "description": "Whether to pack the shipment in offline mode without carrier API integration.\nWhen `true`, skips carrier API calls and address validation.\nUseful for situations where carrier services are unavailable.",
                    "default": false,
                    "example": false
                  },
                  "confirmed_instructions": {
                    "type": "object",
                    "description": "Object mapping instruction IDs to quantities for order instructions that have been confirmed.\nKeys are instruction IDs (as strings), values are the quantities confirmed.\nUsed to record fulfillment of special order instructions during packing.",
                    "additionalProperties": {
                      "type": "integer",
                      "minimum": 1,
                      "description": "Quantity of the instruction that was confirmed."
                    },
                    "example": {
                      "123": 2,
                      "456": 1
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Shipment packed successfully",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "warnings": {
                      "type": "array",
                      "description": "Any warnings generated during the packing process",
                      "items": {
                        "type": "string"
                      },
                      "example": [
                        "Address validation warning"
                      ]
                    },
                    "labels": {
                      "type": "object",
                      "description": "Base64-encoded PDF labels (returned only when `return_label` is `true`).\nAvailable keys depend on shipment type and requirements.",
                      "properties": {
                        "shipping_label": {
                          "type": "string",
                          "format": "byte",
                          "description": "Base64-encoded shipping label PDF"
                        },
                        "customs_documents": {
                          "type": "string",
                          "format": "byte",
                          "description": "Base64-encoded customs documents PDF"
                        },
                        "bill_of_lading": {
                          "type": "string",
                          "format": "byte",
                          "description": "Base64-encoded bill of lading PDF"
                        },
                        "hazmat_shipping_papers": {
                          "type": "string",
                          "format": "byte",
                          "description": "Base64-encoded hazmat shipping papers PDF"
                        },
                        "hazmat_shippers_declaration": {
                          "type": "string",
                          "format": "byte",
                          "description": "Base64-encoded hazmat shipper's declaration PDF"
                        },
                        "sscc_pack_label": {
                          "type": "string",
                          "format": "byte",
                          "description": "Base64-encoded SSCC pack label PDF"
                        }
                      }
                    },
                    "messages": {
                      "type": "array",
                      "description": "Status messages about printing operations (returned only when `print_label` is `true`)",
                      "items": {
                        "type": "string"
                      },
                      "example": [
                        "Labels have been sent to the label printer (label-printer-01).",
                        "Customs Documents have been sent to the laser printer (laser-printer-01)."
                      ]
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Shipping_API_v1_400-bad-request"
          },
          "404": {
            "$ref": "#/components/responses/Shipping_API_v1_404-not-found"
          },
          "422": {
            "$ref": "#/components/responses/Shipping_API_v1_422-unprocessable"
          },
          "500": {
            "$ref": "#/components/responses/Shipping_API_v1_500-internal-server-error"
          }
        }
      }
    },
    "/v1/shipping/shipments/{id}/shipped": {
      "post": {
        "summary": "Mark Shipment as Shipped",
        "tags": [
          "Shipments"
        ],
        "operationId": "shippedShipment",
        "description": "Marks a `Shipment` in the \"packed\" status as shipped, specified by its `id` path parameter.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "integer",
              "minimum": 1
            },
            "required": true,
            "description": "The `id` of the referenced `Shipment`."
          }
        ],
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "primary_tracking_number": {
                    "type": "string",
                    "description": "Primary tracking number for the shipment.",
                    "example": "987654321"
                  },
                  "primary_tracking_description": {
                    "type": "string",
                    "description": "Description of the primary tracking number.",
                    "example": "FedEx Ground"
                  },
                  "alternate_tracking_number": {
                    "type": "string",
                    "description": "Alternate tracking number for the shipment.",
                    "example": "123456789"
                  },
                  "alternate_tracking_description": {
                    "type": "string",
                    "description": "Description of the alternate tracking number.",
                    "example": "FedEx Alternate"
                  },
                  "manifest_courier_code": {
                    "type": "string",
                    "description": "Courier code for the manifest.",
                    "example": "FEDEX"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/Shipping_API_v1_200-ok-no-body"
          },
          "400": {
            "$ref": "#/components/responses/Shipping_API_v1_400-bad-request"
          },
          "404": {
            "$ref": "#/components/responses/Shipping_API_v1_404-not-found"
          },
          "422": {
            "$ref": "#/components/responses/Shipping_API_v1_422-unprocessable"
          },
          "500": {
            "$ref": "#/components/responses/Shipping_API_v1_500-internal-server-error"
          }
        }
      }
    },
    "/v1/shipping/orders": {
      "get": {
        "summary": "List all Orders",
        "description": "Returns a list of `Order` objects.\n\nTo find an order by its unique ID (increment ID), use the filter:\n`filter[]=unique_id:eq:1100000042`",
        "tags": [
          "Orders"
        ],
        "operationId": "getOrders",
        "parameters": [
          {
            "$ref": "#/components/parameters/Shipping_API_v1_order-fields"
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_fields-items"
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_fields-shipments"
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_fields-shipments-warehouse"
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_fields-shipments-order"
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_fields-shipments-items"
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_fields-shipments-packages"
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_fields-shipments-packing_solution"
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_fields-shipments-gallery"
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_fields-merchant"
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_fields-merchant-brands"
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_fields-merchant-default_brand"
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_fields-brand"
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_fields-shipping_address"
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_fields-order_status_history"
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_fields-original_address"
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_fields-address_candidates"
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_fields-instructions"
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_fields-tpb_group"
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_fields-retailer"
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_fields-retailer_ship_to_location"
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_fields-order-retailer.parent_retailer"
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_fields-order-retailer_ship_to_location.retailer"
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_fields-order-shipments.retailer"
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_fields-order-shipments.retailer_ship_to_location"
          },
          {
            "name": "filter",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "in": "query",
            "required": false,
            "style": "form",
            "explode": true,
            "description": "Using the [filtering syntax](/global-api/filtering-syntax), you may filter the results using the following fields:\n  - `id`\n  - `unique_id`\n  - `order_ref`\n  - `state` - Order lifecycle state (new, processing, complete, canceled, holded)\n  - `status` - Order status (new, holded, processing, complete, canceled, invalid_address, unresolved, unable_to_process, delayed_shipment, partial_backorder, backordered)\n  - `merchant_id`\n  - `merchant_code`\n  - `source` - Order source identifier set by APIs/plugins\n  - `batch_tag` - Batch grouping tag\n  - `can_fulfill` - Fulfillment readiness (true/false)\n  - `created_at`\n  - `updated_at`\n  - `completed_at`\n  - `retailer_id`"
          },
          {
            "name": "sort",
            "schema": {
              "type": "string"
            },
            "in": "query",
            "required": false,
            "description": "The default sort order is **descending** by primary key (`sort=-id`).\nThe following fields are available for sorting:\n  - `id`\n  - `unique_id`\n  - `created_at`\n  - `updated_at`\n  - `completed_at`\n  - `merchant_id`"
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_count"
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_cursor_end"
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_cursor_start"
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_limit"
          }
        ],
        "responses": {
          "200": {
            "description": "A dictionary with a `collection` property that contains an array of up to\n`limit` `Order` objects. If no orders are found the array will be empty.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "collection": {
                      "type": "array",
                      "description": "A list of `Order` objects.",
                      "items": {
                        "$ref": "#/components/schemas/Shipping_API_v1_Order"
                      }
                    },
                    "included": {
                      "$ref": "#/components/schemas/Shipping_API_v1_orders"
                    },
                    "has_more": {
                      "$ref": "#/components/schemas/Shipping_API_v1_has_more"
                    },
                    "next": {
                      "$ref": "#/components/schemas/Shipping_API_v1_next"
                    },
                    "previous": {
                      "$ref": "#/components/schemas/Shipping_API_v1_previous"
                    },
                    "meta": {
                      "$ref": "#/components/schemas/Shipping_API_v1_meta"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Shipping_API_v1_400-bad-request"
          },
          "422": {
            "$ref": "#/components/responses/Shipping_API_v1_422-unprocessable"
          },
          "500": {
            "$ref": "#/components/responses/Shipping_API_v1_500-internal-server-error"
          }
        }
      }
    },
    "/v1/shipping/orders/massUpdate": {
      "get": {
        "summary": "Method not allowed",
        "description": "GET method is not allowed for this endpoint. Use POST instead.",
        "tags": [
          "Orders"
        ],
        "operationId": "massUpdateNotAllowed",
        "x-hidden": true,
        "responses": {
          "303": {
            "description": "See Other. Use POST method instead."
          },
          "405": {
            "$ref": "#/components/responses/Shipping_API_v1_405-method-not-allowed"
          }
        }
      },
      "post": {
        "summary": "Mass update orders",
        "description": "Updates a batch of orders specified by and according to the request body.",
        "tags": [
          "Orders"
        ],
        "operationId": "massUpdate",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "orders": {
                    "type": "object",
                    "description": "An object containing the orders to be updated.",
                    "properties": {
                      "ids": {
                        "type": "array",
                        "description": "An array of order IDs.",
                        "items": {
                          "type": "integer",
                          "format": "int32",
                          "minimum": 1
                        },
                        "minItems": 1,
                        "maxItems": 10000,
                        "uniqueItems": true
                      }
                    },
                    "additionalProperties": false,
                    "required": [
                      "ids"
                    ]
                  },
                  "actions": {
                    "type": "object",
                    "description": "An object containing all of the actions to be taken on the specified `Order` ids.",
                    "properties": {
                      "setValues": {
                        "type": "object",
                        "description": "Set the value of an order field.",
                        "properties": {
                          "order_reference": {
                            "type": "string",
                            "nullable": true,
                            "example": "O-382227",
                            "description": "An optional merchant-supplied reference for the order. Not a unique identifier."
                          },
                          "require_overbox": {
                            "type": "boolean",
                            "default": false,
                            "description": "Flag to indicate that the order should be shipped in an over-box."
                          },
                          "require_signature": {
                            "$ref": "#/components/schemas/Shipping_API_v1_signature"
                          },
                          "require_saturday_delivery": {
                            "type": "boolean",
                            "default": false,
                            "description": "Flag to indicate whether Saturday delivery is required."
                          },
                          "desired_delivery_date": {
                            "type": "string",
                            "format": "date",
                            "nullable": true,
                            "description": "The date by which the customer desires the order to be delivered. The value is only used and is required\nwhen the shipping method is a Virtual Shipping Method with the \"Desired Delivery Date\" option, such as\nthe Cheapest On-Time shipping method.",
                            "example": "2021-02-21"
                          },
                          "shipping_method": {
                            "type": "string",
                            "example": "ups_03",
                            "maxLength": 255,
                            "description": "The Shipping Method."
                          },
                          "third_party_billing_group_id": {
                            "type": "integer",
                            "nullable": true,
                            "minimum": 0,
                            "description": "The ID number of a Third Party Billing Account Group. If unset or null, and a default group is configured,\nthe default group will be used. Set to 0 to disable third party billing.",
                            "example": 12
                          },
                          "custom_greeting": {
                            "type": "string",
                            "nullable": true,
                            "maxLength": 65535,
                            "description": "If specified, this will override the configured Packing Slip default greeting for a given order."
                          },
                          "note": {
                            "type": "string",
                            "nullable": true,
                            "maxLength": 65535,
                            "description": "The \"Note\" adds a status history to the order that only you and the warehouse staff may see. Adding\na note will not affect the way the order is picked and packed and is not required."
                          },
                          "declared_value_service": {
                            "type": "boolean",
                            "default": false,
                            "description": "Flag to indicate that a declared value service is required. If `true` then either the `declared_value`\nmust also be set or the order items must have a `unit_declared_value`.",
                            "example": true
                          },
                          "declared_value": {
                            "allOf": [
                              {
                                "$ref": "#/components/schemas/Shipping_API_v1_Monetary"
                              }
                            ],
                            "nullable": true,
                            "description": "If specified, `declared_value_service` must also be `true`."
                          },
                          "backorder_policy": {
                            "oneOf": [
                              {
                                "type": "string",
                                "enum": [
                                  "default",
                                  "all_or_nothing",
                                  "as_available"
                                ]
                              },
                              {
                                "type": "string",
                                "pattern": "^up_to_\\d+$",
                                "example": "up_to_3"
                              }
                            ],
                            "type": "string",
                            "description": "- `default` Store's default policy.\n- `all_or_nothing` Accept order but do not ship anything until all items are in stock.\n- `as_available` No limit to number or frequency of additional shipments.\n- `up_to_X` Same as \"As Available\", but changes to All or Nothing before shipping Xth shipment.\n  When using up_to_X, \"X\" represent a positive integer number.",
                            "example": "default"
                          },
                          "reason_for_export": {
                            "type": "string",
                            "enum": [
                              "sold",
                              "not_sold",
                              "gift",
                              "sample",
                              "repair_return",
                              "personal_effects"
                            ],
                            "default": "sold",
                            "description": "Reason for export. Only applicable to international orders."
                          },
                          "priority": {
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 100,
                            "default": 50,
                            "description": "This order's priority. Setting the priority will boost or suppress this order's priority in relation\nto other orders for the same products. Lower numbers are higher in priority."
                          },
                          "allocation_options": {
                            "type": "object",
                            "nullable": true,
                            "description": "The provided object will **replace** the existing allocation options and `null` will unset all values."
                          },
                          "requested_ship_date": {
                            "type": "string",
                            "format": "date-time",
                            "nullable": true,
                            "description": "Date when the order was requested to be shipped.",
                            "example": "2021-02-21T07:00:00Z"
                          },
                          "generate_sscc": {
                            "type": "string",
                            "nullable": true,
                            "enum": [
                              "pack",
                              "item"
                            ],
                            "description": "Generate Serial Shipping Container Codes option."
                          },
                          "other_shipping_options": {
                            "type": "object",
                            "nullable": true,
                            "description": "The provided object will **replace** the existing allocation options and `null` will unset all values."
                          },
                          "batch_tag": {
                            "type": "string",
                            "maxLength": 64,
                            "nullable": true,
                            "description": "The \"Batch Tag\" property.",
                            "example": "Smalls-CartA"
                          },
                          "telephone": {
                            "type": "string",
                            "nullable": true,
                            "maxLength": 255,
                            "description": "The \"Telephone\" property.",
                            "example": "865-971-4663"
                          },
                          "email": {
                            "type": "string",
                            "nullable": true,
                            "maxLength": 255,
                            "description": "The \"Email\" property.",
                            "example": "celina.goalley@thompson-torp.com"
                          }
                        },
                        "additionalProperties": false,
                        "minProperties": 1
                      },
                      "updateAllocationOptions": {
                        "type": "object",
                        "description": "Modify the `allocation_options` object. To replace the entire object with a new one use the `setValues` action instead.",
                        "properties": {
                          "set": {
                            "type": "object",
                            "description": "The top-level keys will be added and will replace any existing values without modifying the other keys."
                          },
                          "unset": {
                            "type": "array",
                            "description": "The top-level keys will be unset from the existing object without modifying the other keys."
                          },
                          "merge": {
                            "type": "object",
                            "description": "Perform a deep merge of the provided object with the existing object. All keys with null values in the provided object will be unset."
                          },
                          "clear": {
                            "type": "boolean",
                            "description": "Unset all values if `true`."
                          }
                        },
                        "additionalProperties": false,
                        "minProperties": 1,
                        "example": {
                          "set": {
                            "algorithms": [
                              "default"
                            ]
                          },
                          "unset": [
                            "dynamic_allocation"
                          ]
                        }
                      },
                      "updateOtherShippingOptions": {
                        "type": "object",
                        "description": "Modify the `other_shipping_options` object. To replace the entire object with a new one use the `setValues` action instead.",
                        "properties": {
                          "set": {
                            "type": "object",
                            "description": "The top-level keys will be added and will replace any existing values without modifying the other keys."
                          },
                          "unset": {
                            "type": "array",
                            "description": "The top-level keys will be unset from the existing object without modifying the other keys."
                          },
                          "merge": {
                            "type": "object",
                            "description": "Perform a deep merge of the provided object with the existing object. All keys with null values in the provided object will be unset."
                          },
                          "clear": {
                            "type": "boolean",
                            "description": "Unset all values if `true`."
                          }
                        },
                        "additionalProperties": false,
                        "minProperties": 1,
                        "example": {
                          "merge": {
                            "reference_numbers": {
                              "invoice": null
                            }
                          }
                        }
                      },
                      "cancel": {
                        "type": "object",
                        "description": "Cancel order items.",
                        "properties": {
                          "items": {
                            "type": "array",
                            "items": {
                              "anyOf": [
                                {
                                  "type": "string",
                                  "enum": [
                                    "all",
                                    "unfulfilled",
                                    "backordered"
                                  ]
                                }
                              ]
                            },
                            "uniqueItems": true,
                            "maxItems": 1,
                            "minItems": 1,
                            "description": "- `all` Cancel all order items (includes `backordered` and `unfilfulled`).\n- `unfulfilled` Cancel all unfulfilled order items (inclues `backordered`).\n- `backordered` Cancel all backordered order items."
                          }
                        },
                        "additionalProperties": false,
                        "required": [
                          "items"
                        ]
                      },
                      "hold": {
                        "type": "object",
                        "description": "Place an order on hold.",
                        "properties": {
                          "until": {
                            "type": "string",
                            "format": "date-time",
                            "example": "2017-07-21T17:32:28Z",
                            "nullable": true,
                            "description": "Set to `null` or omit to hold indefinitely. If a Hold Until date is already set it will be replaced."
                          },
                          "comment": {
                            "type": "string",
                            "description": "A comment to be added to the order history.",
                            "minLength": 0,
                            "maxLength": 65535
                          }
                        },
                        "additionalProperties": false
                      },
                      "unhold": {
                        "type": "object",
                        "description": "Release an order from hold.",
                        "properties": {
                          "comment": {
                            "type": "string",
                            "description": "A comment to be added to the order history.",
                            "minLength": 0,
                            "maxLength": 65535
                          }
                        },
                        "additionalProperties": false
                      },
                      "updatePriority": {
                        "type": "object",
                        "description": "Change the order's priority in relation to other orders for the same products. **Lower numbers are higher\nin priority.** The final value is clamped between 0 and 100.",
                        "properties": {
                          "operation": {
                            "type": "string",
                            "enum": [
                              "boost",
                              "suppress",
                              "set"
                            ],
                            "description": "- `boost` Increase the priority by `amount` (lowers the value).\n- `suppress` Decrease the priority by `amount` (raises the value).\n- `set` Set the priority to `amount`."
                          },
                          "amount": {
                            "type": "integer",
                            "description": "The amount to boost, suppress or set according to the `operation`.",
                            "minimum": 0,
                            "maximum": 100
                          }
                        },
                        "additionalProperties": false,
                        "required": [
                          "operation",
                          "amount"
                        ]
                      },
                      "lockToWarehouse": {
                        "type": "object",
                        "description": "Restrict inventory allocation to a specific warehouse.",
                        "properties": {
                          "warehouse_id": {
                            "type": "integer",
                            "description": "The Warehouse ID",
                            "minimum": 1,
                            "maximum": 65535,
                            "example": 3
                          }
                        },
                        "additionalProperties": false,
                        "required": [
                          "warehouse_id"
                        ]
                      },
                      "unlockFromWarehouse": {
                        "type": "object",
                        "description": "Release warehouse lock.",
                        "minProperties": 0,
                        "maxProperties": 0,
                        "additionalProperties": false
                      },
                      "addComment": {
                        "type": "object",
                        "description": "Add a comment to the order history.",
                        "properties": {
                          "comment": {
                            "type": "string",
                            "description": "The descriptive comment to be added to the order.",
                            "minLength": 1,
                            "maxLength": 65535
                          }
                        },
                        "additionalProperties": false,
                        "required": [
                          "comment"
                        ]
                      }
                    },
                    "additionalProperties": false,
                    "minProperties": 1
                  },
                  "onError": {
                    "type": "string",
                    "enum": [
                      "continue",
                      "stop",
                      "abort"
                    ],
                    "default": "continue",
                    "description": "The value determining how errors are to be handled.\n- `continue` The current entity will be rolled back and any remaining entities will continue to be processed.\n- `stop` The current entity will be rolled back and the request will stop processing any remaining entities.\n- `abort` The entire request will be rolled back."
                  }
                },
                "additionalProperties": false,
                "required": [
                  "orders",
                  "actions"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "An object with orders mass update results.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "loaded": {
                      "type": "integer",
                      "description": "The number of entities that were successfully loaded.",
                      "minimum": 0
                    },
                    "committed": {
                      "type": "integer",
                      "description": "The number of entities that were successfully updated.",
                      "minimum": 0
                    },
                    "failed": {
                      "type": "integer",
                      "description": "The number of entities that failed to be updated.",
                      "minimum": 0
                    },
                    "not-found": {
                      "type": "integer",
                      "description": "The number of entities that were not found.",
                      "minimum": 0
                    },
                    "results": {
                      "type": "array",
                      "description": "The list of update results for the requested `Order` objects.",
                      "minItems": 1,
                      "items": {
                        "$ref": "#/components/schemas/Shipping_API_v1_Result"
                      }
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "processing_time": {
                          "type": "number",
                          "description": "Total time in which request is processed and response is sent back."
                        }
                      }
                    }
                  },
                  "additionalProperties": false,
                  "required": [
                    "loaded",
                    "committed",
                    "failed",
                    "not-found",
                    "results",
                    "meta"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Bad Request."
          },
          "404": {
            "description": "The server could not find the requested resource."
          },
          "405": {
            "description": "The request method is not supported for the requested resource."
          },
          "409": {
            "description": "Unexpected error."
          },
          "422": {
            "description": "There was an error processing the request."
          },
          "500": {
            "description": "Internal server error."
          }
        }
      }
    },
    "/v1/shipping/orders/{id}": {
      "get": {
        "summary": "Get one Order",
        "description": "Returns a single `Order` object specified by an order `id` path parameter.",
        "tags": [
          "Orders"
        ],
        "operationId": "getOrder",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1
            },
            "required": true,
            "description": "The `id` of the referenced `Order`."
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_order-fields"
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_fields-items"
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_fields-shipments"
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_fields-shipments-warehouse"
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_fields-shipments-order"
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_fields-shipments-items"
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_fields-shipments-packages"
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_fields-shipments-packing_solution"
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_fields-shipments-gallery"
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_fields-merchant"
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_fields-merchant-brands"
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_fields-merchant-default_brand"
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_fields-brand"
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_fields-shipping_address"
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_fields-order_status_history"
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_fields-original_address"
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_fields-address_candidates"
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_fields-instructions"
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_fields-tpb_group"
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_fields-retailer"
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_fields-retailer_ship_to_location"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "resource": {
                      "$ref": "#/components/schemas/Shipping_API_v1_Order"
                    },
                    "included": {
                      "$ref": "#/components/schemas/Shipping_API_v1_orders"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Shipping_API_v1_400-bad-request"
          },
          "404": {
            "$ref": "#/components/responses/Shipping_API_v1_404-not-found"
          },
          "422": {
            "$ref": "#/components/responses/Shipping_API_v1_422-unprocessable"
          },
          "500": {
            "$ref": "#/components/responses/Shipping_API_v1_500-internal-server-error"
          }
        }
      }
    },
    "/v1/shipping/retailers": {
      "get": {
        "summary": "List all Retailers",
        "description": "Returns a list of `Retailer` objects. Archived retailers are excluded by default. Use `archived=true` to include them.",
        "tags": [
          "Retailers"
        ],
        "operationId": "getRetailers",
        "parameters": [
          {
            "$ref": "#/components/parameters/Shipping_API_v1_retailer-fields"
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_fields-retailer-parent_retailer"
          },
          {
            "name": "archived",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            },
            "description": "Include archived retailers in the result set."
          },
          {
            "name": "filter",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "in": "query",
            "required": false,
            "style": "form",
            "explode": true,
            "allowReserved": true,
            "description": "Using the [filtering syntax](/global-api/filtering-syntax), you may filter the results using the following fields:\n  - `id`\n  - `code`\n  - `name`\n  - `status`\n  - `fulfillment_model`\n  - `created_at`\n  - `updated_at`"
          },
          {
            "name": "sort",
            "schema": {
              "type": "string"
            },
            "in": "query",
            "required": false,
            "description": "The default sort order is **ascending** by primary key (`sort=id`).\n\nUsing the [sorting syntax](/global-api/sorting-syntax), the following fields are available for sorting:\n  - `id`\n  - `code`\n  - `name`\n  - `status`\n  - `fulfillment_model`\n  - `created_at`\n  - `updated_at`"
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_count"
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_cursor_end"
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_cursor_start"
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_limit"
          }
        ],
        "responses": {
          "200": {
            "description": "A dictionary with a `collection` property that contains an array of up to\n`limit` `Retailer` objects. If no retailers are found the array will be empty.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "collection": {
                      "type": "array",
                      "description": "A list of `Retailer` objects.",
                      "items": {
                        "$ref": "#/components/schemas/Shipping_API_v1_Retailer"
                      }
                    },
                    "included": {
                      "$ref": "#/components/schemas/Shipping_API_v1_retailers"
                    },
                    "has_more": {
                      "$ref": "#/components/schemas/Shipping_API_v1_has_more"
                    },
                    "next": {
                      "$ref": "#/components/schemas/Shipping_API_v1_next"
                    },
                    "previous": {
                      "$ref": "#/components/schemas/Shipping_API_v1_previous"
                    },
                    "meta": {
                      "$ref": "#/components/schemas/Shipping_API_v1_meta"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Shipping_API_v1_400-bad-request"
          },
          "422": {
            "$ref": "#/components/responses/Shipping_API_v1_422-unprocessable"
          },
          "500": {
            "$ref": "#/components/responses/Shipping_API_v1_500-internal-server-error"
          }
        }
      },
      "post": {
        "summary": "Create Retailer",
        "description": "Creates a new `Retailer`.",
        "tags": [
          "Retailers"
        ],
        "operationId": "createRetailer",
        "requestBody": {
          "required": true,
          "description": "An object conforming to the `Retailer` schema to be created.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Shipping_API_v1_Retailer"
              }
            }
          }
        },
        "responses": {
          "201": {
            "$ref": "#/components/responses/Shipping_API_v1_201-created-single"
          },
          "400": {
            "$ref": "#/components/responses/Shipping_API_v1_400-bad-request"
          },
          "422": {
            "$ref": "#/components/responses/Shipping_API_v1_422-unprocessable"
          },
          "500": {
            "$ref": "#/components/responses/Shipping_API_v1_500-internal-server-error"
          }
        }
      }
    },
    "/v1/shipping/retailers/{id}": {
      "get": {
        "summary": "Get one Retailer",
        "description": "Returns a single `Retailer` object specified by a retailer `id` path parameter.",
        "tags": [
          "Retailers"
        ],
        "operationId": "getRetailer",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1
            },
            "required": true,
            "description": "The `id` of the referenced `Retailer`."
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_retailer-fields"
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_fields-retailer-parent_retailer"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "resource": {
                      "$ref": "#/components/schemas/Shipping_API_v1_Retailer"
                    },
                    "included": {
                      "$ref": "#/components/schemas/Shipping_API_v1_retailers"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Shipping_API_v1_400-bad-request"
          },
          "404": {
            "$ref": "#/components/responses/Shipping_API_v1_404-not-found"
          },
          "422": {
            "$ref": "#/components/responses/Shipping_API_v1_422-unprocessable"
          },
          "500": {
            "$ref": "#/components/responses/Shipping_API_v1_500-internal-server-error"
          }
        }
      },
      "put": {
        "summary": "Update Retailer",
        "description": "Updates a `Retailer` specified by its `id` path parameter and according to the request body.",
        "tags": [
          "Retailers"
        ],
        "operationId": "updateRetailer",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1
            },
            "required": true,
            "description": "The `id` of the referenced `Retailer`."
          }
        ],
        "requestBody": {
          "required": true,
          "description": "An object conforming to the `Retailer` schema to be merged with the existing Retailer.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Shipping_API_v1_Retailer"
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/Shipping_API_v1_200-ok-no-body"
          },
          "400": {
            "$ref": "#/components/responses/Shipping_API_v1_400-bad-request"
          },
          "404": {
            "$ref": "#/components/responses/Shipping_API_v1_404-not-found"
          },
          "422": {
            "$ref": "#/components/responses/Shipping_API_v1_422-unprocessable"
          },
          "500": {
            "$ref": "#/components/responses/Shipping_API_v1_500-internal-server-error"
          }
        }
      },
      "delete": {
        "summary": "Delete Retailer",
        "description": "Archives a `Retailer` specified by its `id` path parameter. The row is soft-deleted by setting status to `archived`.",
        "tags": [
          "Retailers"
        ],
        "operationId": "deleteRetailer",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1
            },
            "required": true,
            "description": "The `id` of the referenced `Retailer`."
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/Shipping_API_v1_200-ok-no-body"
          },
          "400": {
            "$ref": "#/components/responses/Shipping_API_v1_400-bad-request"
          },
          "404": {
            "$ref": "#/components/responses/Shipping_API_v1_404-not-found"
          },
          "500": {
            "$ref": "#/components/responses/Shipping_API_v1_500-internal-server-error"
          }
        }
      }
    },
    "/v1/shipping/retailers/{id}/identifiers": {
      "get": {
        "summary": "List Retailer Identifiers",
        "description": "Returns a list of `RetailerIdentifier` objects under the given Retailer.",
        "tags": [
          "Retailers"
        ],
        "operationId": "getRetailerIdentifiers",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1
            },
            "required": true,
            "description": "The `id` of the parent `Retailer`."
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_retailer-identifier-fields"
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_fields-merchant"
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_fields-retailer_identifier-retailer"
          },
          {
            "name": "filter",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "in": "query",
            "required": false,
            "style": "form",
            "explode": true,
            "allowReserved": true,
            "description": "Using the [filtering syntax](/global-api/filtering-syntax), you may filter the results using the following fields:\n  - `id`\n  - `qualifier`\n  - `value`\n  - `label`\n  - `created_at`\n  - `updated_at`"
          },
          {
            "name": "sort",
            "schema": {
              "type": "string"
            },
            "in": "query",
            "required": false,
            "description": "The default sort order is **ascending** by primary key (`sort=id`).\n\nUsing the [sorting syntax](/global-api/sorting-syntax), the following fields are available for sorting:\n  - `id`\n  - `qualifier`\n  - `value`\n  - `label`\n  - `created_at`\n  - `updated_at`"
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_count"
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_cursor_end"
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_cursor_start"
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_limit"
          }
        ],
        "responses": {
          "200": {
            "description": "A dictionary with a `collection` property that contains an array of `RetailerIdentifier` objects.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "collection": {
                      "type": "array",
                      "description": "A list of `RetailerIdentifier` objects.",
                      "items": {
                        "$ref": "#/components/schemas/Shipping_API_v1_Identifier"
                      }
                    },
                    "has_more": {
                      "$ref": "#/components/schemas/Shipping_API_v1_has_more"
                    },
                    "next": {
                      "$ref": "#/components/schemas/Shipping_API_v1_next"
                    },
                    "previous": {
                      "$ref": "#/components/schemas/Shipping_API_v1_previous"
                    },
                    "meta": {
                      "$ref": "#/components/schemas/Shipping_API_v1_meta"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Shipping_API_v1_400-bad-request"
          },
          "404": {
            "$ref": "#/components/responses/Shipping_API_v1_404-not-found"
          },
          "422": {
            "$ref": "#/components/responses/Shipping_API_v1_422-unprocessable"
          },
          "500": {
            "$ref": "#/components/responses/Shipping_API_v1_500-internal-server-error"
          }
        }
      },
      "post": {
        "summary": "Create Retailer Identifier",
        "description": "Creates a new `RetailerIdentifier` under the given Retailer.",
        "tags": [
          "Retailers"
        ],
        "operationId": "createRetailerIdentifier",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1
            },
            "required": true,
            "description": "The `id` of the parent `Retailer`."
          }
        ],
        "requestBody": {
          "required": true,
          "description": "An object conforming to the `RetailerIdentifier` schema to be created.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Shipping_API_v1_Identifier"
              }
            }
          }
        },
        "responses": {
          "201": {
            "$ref": "#/components/responses/Shipping_API_v1_201-created-single"
          },
          "400": {
            "$ref": "#/components/responses/Shipping_API_v1_400-bad-request"
          },
          "404": {
            "$ref": "#/components/responses/Shipping_API_v1_404-not-found"
          },
          "422": {
            "$ref": "#/components/responses/Shipping_API_v1_422-unprocessable"
          },
          "500": {
            "$ref": "#/components/responses/Shipping_API_v1_500-internal-server-error"
          }
        }
      }
    },
    "/v1/shipping/retailers/{id}/identifiers/{identifier_id}": {
      "get": {
        "summary": "Get one Retailer Identifier",
        "description": "Returns a single `RetailerIdentifier` under the given Retailer.",
        "tags": [
          "Retailers"
        ],
        "operationId": "getRetailerIdentifier",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1
            },
            "required": true,
            "description": "The `id` of the parent `Retailer`."
          },
          {
            "name": "identifier_id",
            "in": "path",
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1
            },
            "required": true,
            "description": "The `id` of the referenced `RetailerIdentifier`."
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_retailer-identifier-fields"
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_fields-merchant"
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_fields-retailer_identifier-retailer"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "resource": {
                      "$ref": "#/components/schemas/Shipping_API_v1_Identifier"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Shipping_API_v1_400-bad-request"
          },
          "404": {
            "$ref": "#/components/responses/Shipping_API_v1_404-not-found"
          },
          "422": {
            "$ref": "#/components/responses/Shipping_API_v1_422-unprocessable"
          },
          "500": {
            "$ref": "#/components/responses/Shipping_API_v1_500-internal-server-error"
          }
        }
      },
      "put": {
        "summary": "Update Retailer Identifier",
        "description": "Updates a `RetailerIdentifier` under the given Retailer.",
        "tags": [
          "Retailers"
        ],
        "operationId": "updateRetailerIdentifier",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1
            },
            "required": true,
            "description": "The `id` of the parent `Retailer`."
          },
          {
            "name": "identifier_id",
            "in": "path",
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1
            },
            "required": true,
            "description": "The `id` of the referenced `RetailerIdentifier`."
          }
        ],
        "requestBody": {
          "required": true,
          "description": "An object conforming to the `RetailerIdentifier` schema to be merged.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Shipping_API_v1_Identifier"
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/Shipping_API_v1_200-ok-no-body"
          },
          "400": {
            "$ref": "#/components/responses/Shipping_API_v1_400-bad-request"
          },
          "404": {
            "$ref": "#/components/responses/Shipping_API_v1_404-not-found"
          },
          "422": {
            "$ref": "#/components/responses/Shipping_API_v1_422-unprocessable"
          },
          "500": {
            "$ref": "#/components/responses/Shipping_API_v1_500-internal-server-error"
          }
        }
      },
      "delete": {
        "summary": "Delete Retailer Identifier",
        "description": "Hard-deletes a `RetailerIdentifier` under the given Retailer. The parent Retailer is unaffected.",
        "tags": [
          "Retailers"
        ],
        "operationId": "deleteRetailerIdentifier",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1
            },
            "required": true,
            "description": "The `id` of the parent `Retailer`."
          },
          {
            "name": "identifier_id",
            "in": "path",
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1
            },
            "required": true,
            "description": "The `id` of the referenced `RetailerIdentifier`."
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/Shipping_API_v1_200-ok-no-body"
          },
          "400": {
            "$ref": "#/components/responses/Shipping_API_v1_400-bad-request"
          },
          "404": {
            "$ref": "#/components/responses/Shipping_API_v1_404-not-found"
          },
          "500": {
            "$ref": "#/components/responses/Shipping_API_v1_500-internal-server-error"
          }
        }
      }
    },
    "/v1/shipping/retailers/{id}/merchant-settings": {
      "get": {
        "summary": "List Retailer Merchant Settings",
        "description": "Returns a list of `RetailerMerchantSetting` objects under the given Retailer.",
        "tags": [
          "Retailers"
        ],
        "operationId": "getRetailerMerchantSettings",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1
            },
            "required": true,
            "description": "The `id` of the parent `Retailer`."
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_retailer-merchant-setting-fields"
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_fields-merchant"
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_fields-retailer_merchant_setting-retailer"
          },
          {
            "name": "filter",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "in": "query",
            "required": false,
            "style": "form",
            "explode": true,
            "allowReserved": true,
            "description": "Using the [filtering syntax](/global-api/filtering-syntax), you may filter the results using the following fields:\n  - `id`\n  - `created_at`\n  - `updated_at`"
          },
          {
            "name": "sort",
            "schema": {
              "type": "string"
            },
            "in": "query",
            "required": false,
            "description": "The default sort order is **ascending** by primary key (`sort=id`).\n\nUsing the [sorting syntax](/global-api/sorting-syntax), the following fields are available for sorting:\n  - `id`\n  - `created_at`\n  - `updated_at`"
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_count"
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_cursor_end"
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_cursor_start"
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_limit"
          }
        ],
        "responses": {
          "200": {
            "description": "A dictionary with a `collection` property that contains an array of `RetailerMerchantSetting` objects.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "collection": {
                      "type": "array",
                      "description": "A list of `RetailerMerchantSetting` objects.",
                      "items": {
                        "$ref": "#/components/schemas/Shipping_API_v1_MerchantSetting"
                      }
                    },
                    "has_more": {
                      "$ref": "#/components/schemas/Shipping_API_v1_has_more"
                    },
                    "next": {
                      "$ref": "#/components/schemas/Shipping_API_v1_next"
                    },
                    "previous": {
                      "$ref": "#/components/schemas/Shipping_API_v1_previous"
                    },
                    "meta": {
                      "$ref": "#/components/schemas/Shipping_API_v1_meta"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Shipping_API_v1_400-bad-request"
          },
          "404": {
            "$ref": "#/components/responses/Shipping_API_v1_404-not-found"
          },
          "422": {
            "$ref": "#/components/responses/Shipping_API_v1_422-unprocessable"
          },
          "500": {
            "$ref": "#/components/responses/Shipping_API_v1_500-internal-server-error"
          }
        }
      },
      "post": {
        "summary": "Create Retailer Merchant Setting",
        "description": "Creates a new `RetailerMerchantSetting` under the given Retailer. Only one row may exist per (retailer, merchant) pair.",
        "tags": [
          "Retailers"
        ],
        "operationId": "createRetailerMerchantSetting",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1
            },
            "required": true,
            "description": "The `id` of the parent `Retailer`."
          }
        ],
        "requestBody": {
          "required": true,
          "description": "An object conforming to the `RetailerMerchantSetting` schema to be created. The `merchant` property is required.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Shipping_API_v1_MerchantSetting"
              }
            }
          }
        },
        "responses": {
          "201": {
            "$ref": "#/components/responses/Shipping_API_v1_201-created-single"
          },
          "400": {
            "$ref": "#/components/responses/Shipping_API_v1_400-bad-request"
          },
          "404": {
            "$ref": "#/components/responses/Shipping_API_v1_404-not-found"
          },
          "422": {
            "$ref": "#/components/responses/Shipping_API_v1_422-unprocessable"
          },
          "500": {
            "$ref": "#/components/responses/Shipping_API_v1_500-internal-server-error"
          }
        }
      }
    },
    "/v1/shipping/retailers/{id}/merchant-settings/{setting_id}": {
      "get": {
        "summary": "Get one Retailer Merchant Setting",
        "description": "Returns a single `RetailerMerchantSetting` under the given Retailer.",
        "tags": [
          "Retailers"
        ],
        "operationId": "getRetailerMerchantSetting",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1
            },
            "required": true,
            "description": "The `id` of the parent `Retailer`."
          },
          {
            "name": "setting_id",
            "in": "path",
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1
            },
            "required": true,
            "description": "The `id` of the referenced `RetailerMerchantSetting`."
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_retailer-merchant-setting-fields"
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_fields-merchant"
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_fields-retailer_merchant_setting-retailer"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "resource": {
                      "$ref": "#/components/schemas/Shipping_API_v1_MerchantSetting"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Shipping_API_v1_400-bad-request"
          },
          "404": {
            "$ref": "#/components/responses/Shipping_API_v1_404-not-found"
          },
          "422": {
            "$ref": "#/components/responses/Shipping_API_v1_422-unprocessable"
          },
          "500": {
            "$ref": "#/components/responses/Shipping_API_v1_500-internal-server-error"
          }
        }
      },
      "put": {
        "summary": "Update Retailer Merchant Setting",
        "description": "Updates a `RetailerMerchantSetting` under the given Retailer. The `merchant` cannot be changed.",
        "tags": [
          "Retailers"
        ],
        "operationId": "updateRetailerMerchantSetting",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1
            },
            "required": true,
            "description": "The `id` of the parent `Retailer`."
          },
          {
            "name": "setting_id",
            "in": "path",
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1
            },
            "required": true,
            "description": "The `id` of the referenced `RetailerMerchantSetting`."
          }
        ],
        "requestBody": {
          "required": true,
          "description": "An object conforming to the `RetailerMerchantSetting` schema to be merged.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Shipping_API_v1_MerchantSetting"
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/Shipping_API_v1_200-ok-no-body"
          },
          "400": {
            "$ref": "#/components/responses/Shipping_API_v1_400-bad-request"
          },
          "404": {
            "$ref": "#/components/responses/Shipping_API_v1_404-not-found"
          },
          "422": {
            "$ref": "#/components/responses/Shipping_API_v1_422-unprocessable"
          },
          "500": {
            "$ref": "#/components/responses/Shipping_API_v1_500-internal-server-error"
          }
        }
      },
      "delete": {
        "summary": "Delete Retailer Merchant Setting",
        "description": "Hard-deletes a `RetailerMerchantSetting` under the given Retailer. The parent Retailer is unaffected.",
        "tags": [
          "Retailers"
        ],
        "operationId": "deleteRetailerMerchantSetting",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1
            },
            "required": true,
            "description": "The `id` of the parent `Retailer`."
          },
          {
            "name": "setting_id",
            "in": "path",
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1
            },
            "required": true,
            "description": "The `id` of the referenced `RetailerMerchantSetting`."
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/Shipping_API_v1_200-ok-no-body"
          },
          "400": {
            "$ref": "#/components/responses/Shipping_API_v1_400-bad-request"
          },
          "404": {
            "$ref": "#/components/responses/Shipping_API_v1_404-not-found"
          },
          "500": {
            "$ref": "#/components/responses/Shipping_API_v1_500-internal-server-error"
          }
        }
      }
    },
    "/v1/shipping/retailers/{id}/ship-to-locations": {
      "get": {
        "summary": "List Retailer Ship-To Locations",
        "description": "Returns a list of `RetailerShipToLocation` objects under the given Retailer.",
        "tags": [
          "Retailers"
        ],
        "operationId": "getRetailerShipToLocations",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1
            },
            "required": true,
            "description": "The `id` of the parent `Retailer`."
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_retailer-ship-to-location-fields"
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_fields-retailer_ship_to_location-retailer"
          },
          {
            "name": "filter",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "in": "query",
            "required": false,
            "style": "form",
            "explode": true,
            "allowReserved": true,
            "description": "Using the [filtering syntax](/global-api/filtering-syntax), you may filter the results using:\n`id`, `code`, `qualifier`, `label`, `location_type`, `is_default`, `status`, `city`, `region`, `postcode`, `country_id`, `created_at`, `updated_at`."
          },
          {
            "name": "sort",
            "schema": {
              "type": "string"
            },
            "in": "query",
            "required": false,
            "description": "The default sort order is **ascending** by primary key (`sort=id`).\n\nUsing the [sorting syntax](/global-api/sorting-syntax), the following fields are available for sorting:\n  - `id`\n  - `code`\n  - `qualifier`\n  - `label`\n  - `location_type`\n  - `is_default`\n  - `status`\n  - `city`\n  - `region`\n  - `postcode`\n  - `country_id`\n  - `created_at`\n  - `updated_at`"
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_count"
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_cursor_end"
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_cursor_start"
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_limit"
          }
        ],
        "responses": {
          "200": {
            "description": "A dictionary with a `collection` of `RetailerShipToLocation` objects.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "collection": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/Shipping_API_v1_ShipToLocation"
                      }
                    },
                    "has_more": {
                      "$ref": "#/components/schemas/Shipping_API_v1_has_more"
                    },
                    "next": {
                      "$ref": "#/components/schemas/Shipping_API_v1_next"
                    },
                    "previous": {
                      "$ref": "#/components/schemas/Shipping_API_v1_previous"
                    },
                    "meta": {
                      "$ref": "#/components/schemas/Shipping_API_v1_meta"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Shipping_API_v1_400-bad-request"
          },
          "404": {
            "$ref": "#/components/responses/Shipping_API_v1_404-not-found"
          },
          "422": {
            "$ref": "#/components/responses/Shipping_API_v1_422-unprocessable"
          },
          "500": {
            "$ref": "#/components/responses/Shipping_API_v1_500-internal-server-error"
          }
        }
      },
      "post": {
        "summary": "Create Retailer Ship-To Location",
        "description": "Creates a new `RetailerShipToLocation`. If `is_default=true`, sibling defaults under\nthe same Retailer are atomically unset.",
        "tags": [
          "Retailers"
        ],
        "operationId": "createRetailerShipToLocation",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1
            },
            "required": true,
            "description": "The `id` of the parent `Retailer`."
          }
        ],
        "requestBody": {
          "required": true,
          "description": "An object conforming to the `RetailerShipToLocation` schema to be created.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Shipping_API_v1_ShipToLocation"
              }
            }
          }
        },
        "responses": {
          "201": {
            "$ref": "#/components/responses/Shipping_API_v1_201-created-single"
          },
          "400": {
            "$ref": "#/components/responses/Shipping_API_v1_400-bad-request"
          },
          "404": {
            "$ref": "#/components/responses/Shipping_API_v1_404-not-found"
          },
          "422": {
            "$ref": "#/components/responses/Shipping_API_v1_422-unprocessable"
          },
          "500": {
            "$ref": "#/components/responses/Shipping_API_v1_500-internal-server-error"
          }
        }
      }
    },
    "/v1/shipping/retailers/{id}/ship-to-locations/{location_id}": {
      "get": {
        "summary": "Get one Retailer Ship-To Location",
        "description": "Returns a single `RetailerShipToLocation` under the given Retailer.",
        "tags": [
          "Retailers"
        ],
        "operationId": "getRetailerShipToLocation",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1
            },
            "required": true,
            "description": "The `id` of the parent `Retailer`."
          },
          {
            "name": "location_id",
            "in": "path",
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1
            },
            "required": true,
            "description": "The `id` of the referenced `RetailerShipToLocation`."
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_retailer-ship-to-location-fields"
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_fields-retailer_ship_to_location-retailer"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "resource": {
                      "$ref": "#/components/schemas/Shipping_API_v1_ShipToLocation"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Shipping_API_v1_400-bad-request"
          },
          "404": {
            "$ref": "#/components/responses/Shipping_API_v1_404-not-found"
          },
          "422": {
            "$ref": "#/components/responses/Shipping_API_v1_422-unprocessable"
          },
          "500": {
            "$ref": "#/components/responses/Shipping_API_v1_500-internal-server-error"
          }
        }
      },
      "put": {
        "summary": "Update Retailer Ship-To Location",
        "description": "Updates a `RetailerShipToLocation`. If the resulting `is_default=true`, sibling\ndefaults under the same Retailer are atomically unset.",
        "tags": [
          "Retailers"
        ],
        "operationId": "updateRetailerShipToLocation",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1
            },
            "required": true,
            "description": "The `id` of the parent `Retailer`."
          },
          {
            "name": "location_id",
            "in": "path",
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1
            },
            "required": true,
            "description": "The `id` of the referenced `RetailerShipToLocation`."
          }
        ],
        "requestBody": {
          "required": true,
          "description": "An object conforming to the `RetailerShipToLocation` schema to be merged.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Shipping_API_v1_ShipToLocation"
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/Shipping_API_v1_200-ok-no-body"
          },
          "400": {
            "$ref": "#/components/responses/Shipping_API_v1_400-bad-request"
          },
          "404": {
            "$ref": "#/components/responses/Shipping_API_v1_404-not-found"
          },
          "422": {
            "$ref": "#/components/responses/Shipping_API_v1_422-unprocessable"
          },
          "500": {
            "$ref": "#/components/responses/Shipping_API_v1_500-internal-server-error"
          }
        }
      },
      "delete": {
        "summary": "Delete Retailer Ship-To Location",
        "description": "Hard-deletes a `RetailerShipToLocation`. The parent Retailer is unaffected.",
        "tags": [
          "Retailers"
        ],
        "operationId": "deleteRetailerShipToLocation",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1
            },
            "required": true,
            "description": "The `id` of the parent `Retailer`."
          },
          {
            "name": "location_id",
            "in": "path",
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1
            },
            "required": true,
            "description": "The `id` of the referenced `RetailerShipToLocation`."
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/Shipping_API_v1_200-ok-no-body"
          },
          "400": {
            "$ref": "#/components/responses/Shipping_API_v1_400-bad-request"
          },
          "404": {
            "$ref": "#/components/responses/Shipping_API_v1_404-not-found"
          },
          "500": {
            "$ref": "#/components/responses/Shipping_API_v1_500-internal-server-error"
          }
        }
      }
    },
    "/v1/shipping/retailers/{id}/routing-guides": {
      "get": {
        "summary": "List Retailer Routing Guides",
        "description": "Returns a list of `RetailerRoutingGuide` objects under the given Retailer.",
        "tags": [
          "Retailers"
        ],
        "operationId": "getRetailerRoutingGuides",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1
            },
            "required": true,
            "description": "The `id` of the parent `Retailer`."
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_retailer-routing-guide-fields"
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_fields-retailer_routing_guide-retailer"
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_fields-retailer_routing_guide-uploaded_by"
          },
          {
            "name": "filter",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "in": "query",
            "required": false,
            "style": "form",
            "explode": true,
            "allowReserved": true,
            "description": "Using the [filtering syntax](/global-api/filtering-syntax), you may filter the results using:\n`id`, `title`, `file_type`, `file_size`, `uploaded_at`, `created_at`, `updated_at`."
          },
          {
            "name": "sort",
            "schema": {
              "type": "string"
            },
            "in": "query",
            "required": false,
            "description": "The default sort order is **descending** by primary key (`sort=-id`).\n\nUsing the [sorting syntax](/global-api/sorting-syntax), the following fields are available for sorting:\n  - `id`\n  - `title`\n  - `file_type`\n  - `file_size`\n  - `uploaded_at`\n  - `created_at`\n  - `updated_at`"
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_count"
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_cursor_end"
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_cursor_start"
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_limit"
          }
        ],
        "responses": {
          "200": {
            "description": "A dictionary with a `collection` of `RetailerRoutingGuide` objects.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "collection": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/Shipping_API_v1_RoutingGuide"
                      }
                    },
                    "has_more": {
                      "$ref": "#/components/schemas/Shipping_API_v1_has_more"
                    },
                    "next": {
                      "$ref": "#/components/schemas/Shipping_API_v1_next"
                    },
                    "previous": {
                      "$ref": "#/components/schemas/Shipping_API_v1_previous"
                    },
                    "meta": {
                      "$ref": "#/components/schemas/Shipping_API_v1_meta"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Shipping_API_v1_400-bad-request"
          },
          "404": {
            "$ref": "#/components/responses/Shipping_API_v1_404-not-found"
          },
          "500": {
            "$ref": "#/components/responses/Shipping_API_v1_500-internal-server-error"
          }
        }
      },
      "post": {
        "summary": "Create Retailer Routing Guide",
        "description": "Creates a new `RetailerRoutingGuide` from base64-encoded file content.\nAllowed extensions: pdf, doc, docx, xls, xlsx, csv, txt.\nMaximum decoded file size: 20 MB.",
        "tags": [
          "Retailers"
        ],
        "operationId": "createRetailerRoutingGuide",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1
            },
            "required": true,
            "description": "The `id` of the parent `Retailer`."
          }
        ],
        "requestBody": {
          "required": true,
          "description": "Create payload — flat JSON with `file_name`, `file_content` (base64), and optional `title` / `description`.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "title": {
                    "type": "string",
                    "nullable": true,
                    "maxLength": 255,
                    "description": "Optional title; defaults to the uploaded file name when blank."
                  },
                  "description": {
                    "type": "string",
                    "nullable": true,
                    "description": "Optional notes."
                  },
                  "file_name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 255,
                    "description": "Uploaded file name with extension (e.g. `routing-guide.pdf`)."
                  },
                  "file_content": {
                    "type": "string",
                    "format": "byte",
                    "maxLength": 27962028,
                    "description": "Base64-encoded file bytes. Maximum decoded file size is 20 MB."
                  }
                },
                "required": [
                  "file_name",
                  "file_content"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "201": {
            "$ref": "#/components/responses/Shipping_API_v1_201-created-single"
          },
          "400": {
            "$ref": "#/components/responses/Shipping_API_v1_400-bad-request"
          },
          "404": {
            "$ref": "#/components/responses/Shipping_API_v1_404-not-found"
          },
          "500": {
            "$ref": "#/components/responses/Shipping_API_v1_500-internal-server-error"
          }
        }
      }
    },
    "/v1/shipping/retailers/{id}/routing-guides/{guide_id}": {
      "get": {
        "summary": "Get one Retailer Routing Guide",
        "description": "Returns a single `RetailerRoutingGuide` (metadata only — use `/file` for content).",
        "tags": [
          "Retailers"
        ],
        "operationId": "getRetailerRoutingGuide",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1
            },
            "required": true,
            "description": "The `id` of the parent `Retailer`."
          },
          {
            "name": "guide_id",
            "in": "path",
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1
            },
            "required": true,
            "description": "The `id` of the referenced `RetailerRoutingGuide`."
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_retailer-routing-guide-fields"
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_fields-retailer_routing_guide-retailer"
          },
          {
            "$ref": "#/components/parameters/Shipping_API_v1_fields-retailer_routing_guide-uploaded_by"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "resource": {
                      "$ref": "#/components/schemas/Shipping_API_v1_RoutingGuide"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Shipping_API_v1_400-bad-request"
          },
          "404": {
            "$ref": "#/components/responses/Shipping_API_v1_404-not-found"
          },
          "500": {
            "$ref": "#/components/responses/Shipping_API_v1_500-internal-server-error"
          }
        }
      },
      "put": {
        "summary": "Update Retailer Routing Guide metadata",
        "description": "Updates `title` and/or `description` only. `file_name` / `file_content` in the body\nreturn `400`; delete and re-create the guide to replace the file.",
        "tags": [
          "Retailers"
        ],
        "operationId": "updateRetailerRoutingGuide",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1
            },
            "required": true,
            "description": "The `id` of the parent `Retailer`."
          },
          {
            "name": "guide_id",
            "in": "path",
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1
            },
            "required": true,
            "description": "The `id` of the referenced `RetailerRoutingGuide`."
          }
        ],
        "requestBody": {
          "required": true,
          "description": "Metadata-only update.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "title": {
                    "type": "string",
                    "nullable": true,
                    "maxLength": 255,
                    "description": "Optional title. Set to NULL or omit to keep the existing value."
                  },
                  "description": {
                    "type": "string",
                    "nullable": true,
                    "description": "Optional long-form notes. Set to NULL or omit to keep the existing value."
                  }
                },
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/Shipping_API_v1_200-ok-no-body"
          },
          "400": {
            "$ref": "#/components/responses/Shipping_API_v1_400-bad-request"
          },
          "404": {
            "$ref": "#/components/responses/Shipping_API_v1_404-not-found"
          },
          "500": {
            "$ref": "#/components/responses/Shipping_API_v1_500-internal-server-error"
          }
        }
      },
      "delete": {
        "summary": "Delete Retailer Routing Guide",
        "description": "Hard-deletes a `RetailerRoutingGuide` and removes the linked storage file. The parent Retailer is unaffected.",
        "tags": [
          "Retailers"
        ],
        "operationId": "deleteRetailerRoutingGuide",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1
            },
            "required": true,
            "description": "The `id` of the parent `Retailer`."
          },
          {
            "name": "guide_id",
            "in": "path",
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1
            },
            "required": true,
            "description": "The `id` of the referenced `RetailerRoutingGuide`."
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/Shipping_API_v1_200-ok-no-body"
          },
          "400": {
            "$ref": "#/components/responses/Shipping_API_v1_400-bad-request"
          },
          "404": {
            "$ref": "#/components/responses/Shipping_API_v1_404-not-found"
          },
          "500": {
            "$ref": "#/components/responses/Shipping_API_v1_500-internal-server-error"
          }
        }
      }
    },
    "/v1/shipping/retailers/{id}/routing-guides/{guide_id}/file": {
      "get": {
        "summary": "Get Retailer Routing Guide file content",
        "description": "Returns the routing-guide file body wrapped as JSON. `file_content` is\nbase64-encoded; clients decode it locally.",
        "tags": [
          "Retailers"
        ],
        "operationId": "getRetailerRoutingGuideFile",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1
            },
            "required": true,
            "description": "The `id` of the parent `Retailer`."
          },
          {
            "name": "guide_id",
            "in": "path",
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1
            },
            "required": true,
            "description": "The `id` of the referenced `RetailerRoutingGuide`."
          }
        ],
        "responses": {
          "200": {
            "description": "Routing guide file content envelope.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Shipping_API_v1_RoutingGuideFile"
                }
              }
            }
          },
          "404": {
            "$ref": "#/components/responses/Shipping_API_v1_404-not-found"
          },
          "422": {
            "$ref": "#/components/responses/Shipping_API_v1_422-unprocessable"
          },
          "500": {
            "$ref": "#/components/responses/Shipping_API_v1_500-internal-server-error"
          }
        }
      }
    },
    "/v1/system/merchants": {
      "get": {
        "summary": "List all Merchants",
        "description": "Returns a list of `Merchant` objects sorted ascending by `id` unless specified otherwise.",
        "tags": [
          "Merchants"
        ],
        "operationId": "getMerchants",
        "parameters": [
          {
            "$ref": "#/components/parameters/System_API_v1_merchant-fields"
          },
          {
            "$ref": "#/components/parameters/System_API_v1_fields-brands"
          },
          {
            "$ref": "#/components/parameters/System_API_v1_fields-default_brand"
          },
          {
            "name": "filter",
            "in": "query",
            "description": "The result is filtered to only include active merchants by default. To return only inactive merchants, set the `inactive` filter to `true` (e.g. `?filter=inactive:true`). Otherwise, use any filter on `status` to override the default filter and potentially include inactive merchants in the results.\n\nUsing the [filtering syntax](/global-api/filtering-syntax), you may filter the results using the following fields:\n  - `id`\n  - `code`\n  - `name`\n  - `status`\n  - `created_at`\n  - `updated_at`\n  - `inactive` (boolean)\n",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "name{regex:\"^ACME\"}"
              ]
            },
            "allowReserved": true
          },
          {
            "name": "sort",
            "in": "query",
            "schema": {
              "type": "string",
              "pattern": "^-?\\w+(,-?\\w+)*$",
              "example": "created_at,-id"
            },
            "description": "The default sort order is **ascending** by primary key (`sort=id`).\nUse the [sorting syntax](/global-api/sorting-syntax) to override the default sort order.\nThe following fields are available for sorting:\n  - `id`\n  - `code`\n  - `name`\n  - `status`\n  - `created_at`\n  - `updated_at`",
            "required": false
          },
          {
            "$ref": "#/components/parameters/System_API_v1_count"
          },
          {
            "$ref": "#/components/parameters/System_API_v1_cursor_end"
          },
          {
            "$ref": "#/components/parameters/System_API_v1_cursor_start"
          },
          {
            "$ref": "#/components/parameters/System_API_v1_limit"
          }
        ],
        "responses": {
          "200": {
            "description": "A dictionary with a `collection` property that contains an array of up to\n`limit` `Merchant` objects. If no merchants are found the array will be empty.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "collection": {
                      "type": "array",
                      "description": "A list of `Merchant` objects.",
                      "items": {
                        "$ref": "#/components/schemas/System_API_v1_Merchant"
                      }
                    },
                    "included": {
                      "$ref": "#/components/schemas/System_API_v1_merchants"
                    },
                    "has_more": {
                      "$ref": "#/components/schemas/System_API_v1_has_more"
                    },
                    "next": {
                      "$ref": "#/components/schemas/System_API_v1_next"
                    },
                    "previous": {
                      "$ref": "#/components/schemas/System_API_v1_previous"
                    },
                    "meta": {
                      "$ref": "#/components/schemas/System_API_v1_meta"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/System_API_v1_400-bad-request"
          },
          "422": {
            "$ref": "#/components/responses/System_API_v1_422-unprocessable"
          },
          "500": {
            "$ref": "#/components/responses/System_API_v1_500-internal-server-error"
          }
        }
      }
    },
    "/v1/system/users/{type}": {
      "get": {
        "summary": "List all Users",
        "description": "Returns a list of `User` objects of a specified user `type` path parameter.",
        "tags": [
          "Users"
        ],
        "operationId": "getUsers",
        "parameters": [
          {
            "$ref": "#/components/parameters/System_API_v1_user-type"
          },
          {
            "$ref": "#/components/parameters/System_API_v1_user-fields"
          },
          {
            "$ref": "#/components/parameters/System_API_v1_fields-roles"
          },
          {
            "$ref": "#/components/parameters/System_API_v1_fields-default_warehouse"
          },
          {
            "name": "deleted",
            "schema": {
              "type": "string",
              "enum": [
                "true"
              ]
            },
            "in": "query",
            "description": "Deleted users are not returned by default. Pass this parameter with the value `true` to return only deleted users."
          },
          {
            "name": "filter",
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "example": "email:admin@example.com'"
              }
            },
            "in": "query",
            "required": false,
            "style": "form",
            "explode": true,
            "description": "Using the [filtering syntax](/global-api/filtering-syntax), you may filter the results using the following fields:\n  - `id`\n  - `name`\n  - `email`\n  - `username`\n  - `is_active`\n  - `created_at`\n  - `last_login_at`"
          },
          {
            "name": "sort",
            "schema": {
              "type": "string"
            },
            "in": "query",
            "required": false,
            "description": "The default sort order is **descending** by primary key (`sort=-id`).\nThe following fields are available for sorting:\n  - `id`\n  - `username`\n  - `created_at`\n  - `last_login_at`\n  - `email`"
          },
          {
            "$ref": "#/components/parameters/System_API_v1_count"
          },
          {
            "$ref": "#/components/parameters/System_API_v1_cursor_end"
          },
          {
            "$ref": "#/components/parameters/System_API_v1_cursor_start"
          },
          {
            "$ref": "#/components/parameters/System_API_v1_limit"
          }
        ],
        "responses": {
          "200": {
            "description": "A dictionary with a `collection` property that contains an array of up to\n`limit` `User` objects. If no users are found the array will be empty.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "collection": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/System_API_v1_CompositeUser"
                      }
                    },
                    "included": {
                      "$ref": "#/components/schemas/System_API_v1_users"
                    },
                    "has_more": {
                      "$ref": "#/components/schemas/System_API_v1_has_more"
                    },
                    "next": {
                      "$ref": "#/components/schemas/System_API_v1_next"
                    },
                    "previous": {
                      "$ref": "#/components/schemas/System_API_v1_previous"
                    },
                    "meta": {
                      "$ref": "#/components/schemas/System_API_v1_meta"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/System_API_v1_400-bad-request"
          },
          "422": {
            "$ref": "#/components/responses/System_API_v1_422-unprocessable"
          },
          "500": {
            "$ref": "#/components/responses/System_API_v1_500-internal-server-error"
          }
        }
      }
    },
    "/v1/system/users/{type}/{id}": {
      "get": {
        "summary": "Get one User",
        "description": "Returns a single `User` object specified by its `type` and `id` path parameters.",
        "tags": [
          "Users"
        ],
        "operationId": "getUser",
        "parameters": [
          {
            "$ref": "#/components/parameters/System_API_v1_user-type"
          },
          {
            "$ref": "#/components/parameters/System_API_v1_user-fields"
          },
          {
            "$ref": "#/components/parameters/System_API_v1_fields-roles"
          },
          {
            "$ref": "#/components/parameters/System_API_v1_fields-warehouse"
          },
          {
            "in": "path",
            "name": "id",
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1
            },
            "required": true,
            "description": "The `id` of the referenced `User`."
          },
          {
            "$ref": "#/components/parameters/System_API_v1_fields-merchant"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "resource": {
                      "$ref": "#/components/schemas/System_API_v1_CompositeUser"
                    },
                    "included": {
                      "$ref": "#/components/schemas/System_API_v1_users"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/System_API_v1_400-bad-request"
          },
          "404": {
            "$ref": "#/components/responses/System_API_v1_404-not-found"
          },
          "500": {
            "$ref": "#/components/responses/System_API_v1_500-internal-server-error"
          }
        }
      },
      "put": {
        "summary": "Update one User",
        "description": "Updates an existing `User` specified by its `type` and `id` path parameters and according to the request body.",
        "tags": [
          "Users"
        ],
        "operationId": "updateUser",
        "parameters": [
          {
            "$ref": "#/components/parameters/System_API_v1_user-type"
          },
          {
            "in": "path",
            "name": "id",
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1
            },
            "required": true,
            "description": "The `id` of the referenced `User`."
          }
        ],
        "requestBody": {
          "description": "An object conforming to the User schema to be merged with the existing User.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/System_API_v1_CompositeUser"
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/System_API_v1_200-ok-no-body"
          },
          "400": {
            "$ref": "#/components/responses/System_API_v1_400-bad-request"
          },
          "404": {
            "$ref": "#/components/responses/System_API_v1_404-not-found"
          },
          "422": {
            "$ref": "#/components/responses/System_API_v1_422-unprocessable"
          },
          "500": {
            "$ref": "#/components/responses/System_API_v1_500-internal-server-error"
          }
        }
      },
      "delete": {
        "summary": "Delete User",
        "description": "Deletes an existing `User` specified by its `type` and `id` path parameters.",
        "tags": [
          "Users"
        ],
        "operationId": "deleteUser",
        "parameters": [
          {
            "$ref": "#/components/parameters/System_API_v1_user-type"
          },
          {
            "in": "path",
            "name": "id",
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1
            },
            "required": true,
            "description": "The `id` of the referenced `User`."
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/System_API_v1_200-ok-no-body"
          },
          "400": {
            "$ref": "#/components/responses/System_API_v1_400-bad-request"
          },
          "404": {
            "$ref": "#/components/responses/System_API_v1_404-not-found"
          },
          "500": {
            "$ref": "#/components/responses/System_API_v1_500-internal-server-error"
          }
        }
      }
    },
    "/v1/system/userRoles/{type}": {
      "get": {
        "summary": "List all User Roles",
        "description": "Returns a list of `UserRole` objects specified by its `type` path parameter.",
        "tags": [
          "User Roles"
        ],
        "operationId": "getRoles",
        "parameters": [
          {
            "$ref": "#/components/parameters/System_API_v1_user-type"
          },
          {
            "name": "filter",
            "schema": {
              "type": "string",
              "items": {
                "type": "string"
              }
            },
            "in": "query",
            "required": false,
            "style": "form",
            "explode": true,
            "description": "Using the [filtering syntax](/global-api/filtering-syntax), you may filter the results using the following fields:\n  - `id`\n  - `name`"
          },
          {
            "name": "sort",
            "schema": {
              "type": "string"
            },
            "in": "query",
            "required": false,
            "description": "The default sort order is **descending** by primary key (`sort=-id`).\nThe following fields are available for sorting:\n  - `id`\n  - `name`"
          },
          {
            "$ref": "#/components/parameters/System_API_v1_count"
          },
          {
            "$ref": "#/components/parameters/System_API_v1_cursor_end"
          },
          {
            "$ref": "#/components/parameters/System_API_v1_cursor_start"
          },
          {
            "$ref": "#/components/parameters/System_API_v1_limit"
          }
        ],
        "responses": {
          "200": {
            "description": "A dictionary with a `collection` property that contains an array of up to\n`limit` `UserRole` objects. If no users are found the array will be empty.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "collection": {
                      "type": "array",
                      "description": "A list of `UserRole` objects.",
                      "items": {
                        "$ref": "#/components/schemas/System_API_v1_CompositeUserRole"
                      }
                    },
                    "has_more": {
                      "$ref": "#/components/schemas/System_API_v1_has_more"
                    },
                    "next": {
                      "$ref": "#/components/schemas/System_API_v1_next"
                    },
                    "previous": {
                      "$ref": "#/components/schemas/System_API_v1_previous"
                    },
                    "meta": {
                      "$ref": "#/components/schemas/System_API_v1_meta"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/System_API_v1_400-bad-request"
          },
          "422": {
            "$ref": "#/components/responses/System_API_v1_422-unprocessable"
          },
          "500": {
            "$ref": "#/components/responses/System_API_v1_500-internal-server-error"
          }
        }
      }
    },
    "/v1/system/userRoles/{type}/{id}": {
      "get": {
        "summary": "Get one User Role",
        "description": "Returns a single `UserRole` object specified by its `type` and `id` path parameters.",
        "tags": [
          "User Roles"
        ],
        "operationId": "getUserRole",
        "parameters": [
          {
            "$ref": "#/components/parameters/System_API_v1_user-type"
          },
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "The `id` of the referenced `UserRole`.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "resource": {
                      "$ref": "#/components/schemas/System_API_v1_CompositeUserRole"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/System_API_v1_400-bad-request"
          },
          "404": {
            "$ref": "#/components/responses/System_API_v1_404-not-found"
          },
          "422": {
            "$ref": "#/components/responses/System_API_v1_422-unprocessable"
          },
          "500": {
            "$ref": "#/components/responses/System_API_v1_500-internal-server-error"
          }
        }
      },
      "put": {
        "summary": "Update one User Role",
        "description": "Update an existing User Role by internal ID.",
        "tags": [
          "User Roles"
        ],
        "operationId": "updateUserRole",
        "parameters": [
          {
            "$ref": "#/components/parameters/System_API_v1_user-type"
          },
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "The `id` of the referenced `UserRole`.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1
            }
          }
        ],
        "requestBody": {
          "description": "Updates an existing `UserRole` specified by its `type` and `id` path parameters and according to the request body.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/System_API_v1_CompositeUserRole"
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/System_API_v1_200-ok-no-body"
          },
          "400": {
            "$ref": "#/components/responses/System_API_v1_400-bad-request"
          },
          "404": {
            "$ref": "#/components/responses/System_API_v1_404-not-found"
          },
          "422": {
            "$ref": "#/components/responses/System_API_v1_422-unprocessable"
          },
          "500": {
            "$ref": "#/components/responses/System_API_v1_500-internal-server-error"
          }
        }
      },
      "delete": {
        "summary": "Delete User Role",
        "description": "Deletes an existing `UserRole` specified by its `type` and `id` path parameters.",
        "tags": [
          "User Roles"
        ],
        "operationId": "deleteUserRole",
        "parameters": [
          {
            "$ref": "#/components/parameters/System_API_v1_user-type"
          },
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "The `id` of the referenced `UserRole`.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1
            }
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/System_API_v1_200-ok-no-body"
          },
          "400": {
            "$ref": "#/components/responses/System_API_v1_400-bad-request"
          },
          "404": {
            "$ref": "#/components/responses/System_API_v1_404-not-found"
          },
          "422": {
            "$ref": "#/components/responses/System_API_v1_422-unprocessable"
          },
          "500": {
            "$ref": "#/components/responses/System_API_v1_500-internal-server-error"
          }
        }
      }
    },
    "/v1/system/status": {
      "get": {
        "summary": "Healthcheck",
        "description": "Endpoint that is inexpensive and can be used to determine things like:\n- The API is \"up\" or some other status\n- The request has valid authentication or not\n- What version of the software is running\n- If there are any ongoing notices or issues reported\n- The oldest API version supported\n- The newest API version supported",
        "tags": [
          "Healthcheck"
        ],
        "operationId": "getStatus",
        "responses": {
          "200": {
            "description": "A dictionary with a `collection` property that contains an array of up to\n`limit` `Merchant` objects. If no merchants are found the array will be empty.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string",
                      "description": "General status of the service.",
                      "example": "healthy"
                    },
                    "status_detail": {
                      "type": "string",
                      "description": "Detailed status information of the service.",
                      "example": "Service is operating normally."
                    },
                    "authentication": {
                      "type": "string",
                      "description": "Status of the authentication.",
                      "example": "valid"
                    },
                    "instance_uid": {
                      "type": "string",
                      "description": "Unique identifier for the instance.",
                      "example": "acmeinc"
                    },
                    "time": {
                      "type": "string",
                      "format": "date-time",
                      "description": "Human-readable timestamp with millisecond precision in the following format ISO 8601 (yyyy-MM-dd'T'HH:mm:ss.SSS'Z).",
                      "example": "2024-04-15T15:21:15.739Z"
                    },
                    "shipstream_version": {
                      "type": "string",
                      "description": "Version of ShipStream.",
                      "example": "2023.2"
                    },
                    "shipstream_build": {
                      "type": "string",
                      "description": "Build identifier of ShipStream.",
                      "example": "a1b2c3d4"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/System_API_v1_400-bad-request"
          },
          "422": {
            "$ref": "#/components/responses/System_API_v1_422-unprocessable"
          },
          "500": {
            "$ref": "#/components/responses/System_API_v1_500-internal-server-error"
          }
        }
      }
    }
  },
  "components": {
    "securitySchemes": {
      "ShipStream_bearerAuth": {
        "type": "http",
        "scheme": "bearer",
        "bearerFormat": "JWT",
        "description": "Generate a JWT access token through a Custom Global Integration and provide it with each request in the `Authorization` header prefixed with \"Bearer\" and then a single space."
      }
    },
    "schemas": {
      "Inventory_API_v1_warehouse-fields-enum": {
        "title": "Warehouse",
        "description": "Specify additional fields of the `Warehouse` object to be included in the response.",
        "type": "array",
        "items": {
          "type": "string",
          "enum": [
            "basic",
            "all",
            "id",
            "name",
            "is_active",
            "abbreviation"
          ]
        }
      },
      "Inventory_API_v1_Warehouse": {
        "title": "Warehouse",
        "type": "object",
        "description": "A `Warehouse` represents a physical location from which you can store inventory and perform operations independently of other warehouses.",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "Warehouse"
            ],
            "readOnly": true,
            "description": "This is a read-only property that describes the type of object in the response body."
          },
          "id": {
            "type": "integer",
            "format": "int32",
            "example": 3,
            "readOnly": true,
            "description": "The internal `id` property used as a path parameter in a resource lookup."
          },
          "name": {
            "type": "string",
            "example": "East Coast 1",
            "maxLength": 255,
            "description": "The display name for the `Warehouse`."
          },
          "abbreviation": {
            "type": "string",
            "maxLength": 10,
            "nullable": true,
            "example": "EC1",
            "description": "A short abbreviation for the `Warehouse`, up to 10 characters. Recommended to be fewer than 6 characters.\\\n  `Optional Field`"
          },
          "is_active": {
            "type": "boolean",
            "example": true,
            "description": "This flag determines if the `Warehouse` is active and viable for fulfillment."
          }
        },
        "required": [
          "type",
          "id"
        ],
        "additionalProperties": false
      },
      "Inventory_API_v1_has_more": {
        "type": "boolean",
        "description": "True if the collection has more items on the next page.\nUse the \"next\" link to retrieve the next page of results."
      },
      "Inventory_API_v1_next": {
        "type": "string",
        "nullable": true,
        "description": "The resource path for the next page of results if any are expected."
      },
      "Inventory_API_v1_previous": {
        "type": "string",
        "nullable": true,
        "description": "The resource path for the previous page of results if any are expected."
      },
      "Inventory_API_v1_meta": {
        "type": "object",
        "properties": {
          "processing_time": {
            "type": "number",
            "description": "Total time in which request is processed and response is sent back.",
            "example": 0.2525252525
          },
          "cursor_start": {
            "type": "integer",
            "description": "A cursor for use in pagination which defines the starting `id` of the next page of results.\nSee [paging parameters](/global-api/paging-parameters) for more information on paging.",
            "nullable": true
          },
          "cursor_end": {
            "type": "integer",
            "description": "A cursor for use in pagination which defines the last `id` of the next page of results, non-inclusive.\nSee [paging parameters](/global-api/paging-parameters) for more information on paging.",
            "nullable": true
          },
          "count": {
            "type": "integer",
            "description": "The total number of items matching the query before applying paging parameters.\nThis field is only present if the query parameter `count=1` is present in the request."
          }
        },
        "description": "Additional metadata pertaining to the response."
      },
      "Inventory_API_v1_location-fields-enum": {
        "title": "Location",
        "description": "Specify additional fields of the `Location` object to be included in the response.",
        "type": "array",
        "items": {
          "type": "string",
          "enum": [
            "basic",
            "all",
            "label",
            "priority",
            "qty_on_hand",
            "qty_putaway",
            "qty_unreserved",
            "qty_reserved",
            "qty_locked",
            "is_temp",
            "is_pickable",
            "is_type_auto",
            "created_at",
            "updated_at",
            "last_cyclecount_at",
            "tags",
            "lot",
            "product",
            "rack",
            "slot_type"
          ]
        }
      },
      "Inventory_API_v1_lot-fields-enum": {
        "title": "Lot",
        "description": "Specify additional fields of the `Lot` object to be included in the response.",
        "type": "array",
        "items": {
          "type": "string",
          "enum": [
            "basic",
            "all",
            "id",
            "lot_number",
            "origination_date",
            "expiration_date",
            "is_expired",
            "is_active",
            "lot_number_input",
            "expiration_input",
            "sort_value",
            "days_until_expiration",
            "sort_direction",
            "group_value",
            "created_at",
            "updated_at",
            "created_by",
            "lot_type",
            "product"
          ]
        }
      },
      "Inventory_API_v1_lot_type-fields-enum": {
        "title": "LotType",
        "description": "Specify additional fields of the `LotType` object to be included in the response.",
        "type": "array",
        "items": {
          "type": "string",
          "enum": [
            "basic",
            "all",
            "allow_mixing_locations",
            "allow_mixing_fulfillment",
            "lot_number_example",
            "lot_number_replacement",
            "expiration_date_pattern",
            "expiration_date_delta",
            "created_at",
            "updated_at"
          ]
        }
      },
      "Inventory_API_v1_product-packaging-fields-enum": {
        "title": "Product Or Packaging",
        "description": "Specify additional fields of the `Product` or `Packaging*` object to be included in the response.",
        "type": "array",
        "items": {
          "type": "string",
          "enum": [
            "basic",
            "all",
            "created_at",
            "updated_at",
            "container_options",
            "supplies_options",
            "data_collection_options",
            "instruction_options",
            "infill_options",
            "vendor_sku",
            "manufacturer_part_number",
            "external_id",
            "barcodes",
            "goods_type",
            "is_available",
            "is_visible",
            "weight",
            "dimensions",
            "volume",
            "inventory",
            "export",
            "regulated_goods",
            "packaging",
            "custom_fields"
          ]
        }
      },
      "Inventory_API_v1_merchant-fields-enum": {
        "title": "Merchant",
        "type": "array",
        "items": {
          "type": "string",
          "enum": [
            "basic",
            "all",
            "code",
            "name",
            "status",
            "created_at",
            "updated_at",
            "brands",
            "default_brand",
            "custom_fields"
          ]
        }
      },
      "Inventory_API_v1_rack-fields-enum": {
        "title": "Rack",
        "description": "Specify additional fields of the `Rack` object to be included in the response.",
        "type": "array",
        "items": {
          "type": "string",
          "enum": [
            "all",
            "id",
            "name",
            "rack_type",
            "location_pattern",
            "warehouse"
          ]
        }
      },
      "Inventory_API_v1_rack_type-fields-enum": {
        "title": "RackType",
        "description": "Specify additional fields of the `RackType` object to be included in the response.",
        "type": "array",
        "items": {
          "type": "string",
          "enum": [
            "basic",
            "all",
            "id",
            "name",
            "notes"
          ]
        }
      },
      "Inventory_API_v1_slot_type-fields-enum": {
        "title": "SlotType",
        "description": "Specify additional fields of the `SlotType` object to be included in the response.",
        "type": "array",
        "items": {
          "type": "string",
          "enum": [
            "basic",
            "all",
            "name",
            "is_pickable",
            "sort_order",
            "patterns",
            "is_fixed_capacity",
            "slot_dimensions",
            "weight_capacity",
            "created_at",
            "updated_at"
          ]
        }
      },
      "Inventory_API_v1_LocationTagRef": {
        "title": "LocationTagRef",
        "type": "object",
        "description": "A reference to a `LocationTag` object.",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "LocationTag"
            ],
            "description": "This property describes the type of object in the response body."
          },
          "id": {
            "type": "integer",
            "description": "The internal `id` property used as a path parameter in a resource lookup.",
            "example": 4
          }
        },
        "required": [
          "type",
          "id"
        ],
        "additionalProperties": false
      },
      "Inventory_API_v1_LotRef": {
        "title": "LotRef",
        "type": "object",
        "description": "A reference to a `Lot` object. The Lot records the time some inventory was originated (first received or\notherwise created) and optionally a lot number and expiration date and may affect the order in which\ninventory is \"burned\" depending on the `LotType`.",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "Lot"
            ],
            "description": "This property describes the type of object in the response body."
          },
          "id": {
            "type": "integer",
            "example": 54,
            "description": "The internal `id` property used as a path parameter in a resource lookup."
          }
        },
        "required": [
          "type",
          "id"
        ],
        "nullable": true,
        "additionalProperties": false
      },
      "Inventory_API_v1_StockableProductRef": {
        "title": "StockableProductRef",
        "type": "object",
        "description": "A reference to a `Product` or stockable packaging type object by `id`.",
        "properties": {
          "type": {
            "type": "string",
            "description": "This is a read-only property that describes the type of object in the response body.",
            "enum": [
              "Product",
              "PackagingContainer",
              "PackagingInfill",
              "PackagingSupplies"
            ]
          },
          "id": {
            "type": "integer",
            "description": "The internal, read-only, `id` property used as a path parameter in a resource lookup.",
            "format": "int32"
          }
        },
        "required": [
          "type",
          "id"
        ],
        "nullable": true,
        "additionalProperties": false
      },
      "Inventory_API_v1_RackRef": {
        "title": "RackRef",
        "type": "object",
        "description": "A `Rack` is a grouping of locations in a warehouse implying a very close proximity.",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "Rack"
            ],
            "description": "This property describes the type of object in the response body."
          },
          "id": {
            "type": "integer",
            "description": "The internal `id` property used as a path parameter in a resource lookup."
          }
        },
        "required": [
          "type",
          "id"
        ],
        "nullable": true,
        "additionalProperties": false
      },
      "Inventory_API_v1_SlotTypeRef": {
        "title": "SlotTypeRef",
        "type": "object",
        "description": "A reference to a `SlotType` object.",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "SlotType"
            ],
            "description": "This property describes the type of object in the response body."
          },
          "id": {
            "type": "integer",
            "description": "The internal `id` property used as a path parameter in a resource lookup.",
            "example": 54
          }
        },
        "required": [
          "type",
          "id"
        ],
        "nullable": true,
        "additionalProperties": false
      },
      "Inventory_API_v1_Location": {
        "title": "Location",
        "type": "object",
        "description": "A Location describes a user-specified inventory address within a warehouse.",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "Location"
            ],
            "readOnly": true,
            "description": "This is a read-only property that describes the type of object in the response body."
          },
          "id": {
            "type": "integer",
            "example": 42,
            "readOnly": true,
            "description": "The internal `id` property used as a path parameter in a resource lookup."
          },
          "label": {
            "type": "string",
            "nullable": true,
            "example": "A4-55-C3",
            "description": "The human-readable name of a location and also the value encoded in location's barcode label.\nThis value must be unique within each warehouse."
          },
          "priority": {
            "type": "integer",
            "example": 10,
            "description": "The inventory reservation order relative to other locations containing the same product."
          },
          "qty_putaway": {
            "type": "number",
            "format": "double",
            "example": 10,
            "readOnly": true,
            "nullable": true,
            "description": "The quantity of a product associated with a Delivery that have not yet been committed to the inventory."
          },
          "qty_unreserved": {
            "type": "number",
            "format": "double",
            "example": 20,
            "readOnly": true,
            "nullable": true,
            "description": "The quantity of a product not yet assigned to a specific Shipment. This does not imply that the inventory is Available."
          },
          "qty_reserved": {
            "type": "number",
            "format": "double",
            "example": 4,
            "readOnly": true,
            "nullable": true,
            "description": "The quantity assigned to a Shipment or Work Order and ready to be picked."
          },
          "qty_on_hand": {
            "type": "number",
            "format": "double",
            "example": 34,
            "readOnly": true,
            "nullable": true,
            "description": "The \"On Hand\" amount is the same as Put-Away + Unreserved + Reserved quantities."
          },
          "qty_locked": {
            "type": "number",
            "format": "double",
            "example": 4,
            "readOnly": true,
            "nullable": true,
            "description": "The quantity that is reserved to a Shipment or Work Order as chosen specifically by a user and therefore should not be re-reserved to a new location on the fly in the event that an adjustment needs to re-optimize pick locations. This amount is already included in `qty_reserved` so is not added again to `qty_on_hand`.\\\n  `Optional Field`"
          },
          "is_temp": {
            "type": "boolean",
            "example": false,
            "readOnly": true,
            "nullable": true,
            "description": "Temporary locations are used to track inventory that is being relocated and cannot be created or modified.\\\n  `Optional Field`"
          },
          "is_pickable": {
            "type": "boolean",
            "example": true,
            "nullable": true,
            "readOnly": true,
            "description": "Whether or not the location is considered to be easy to pick from for the purpose of generating pickable batches.\\\n  `Optional Field`"
          },
          "is_type_auto": {
            "type": "boolean",
            "example": true,
            "nullable": true,
            "description": "If Slot Type is \"Automatic\" then it will cause the type to be maintained automatically according to the Auto-Assign Patterns of the slot types.\\\n  `Optional Field`"
          },
          "created_at": {
            "type": "string",
            "format": "datetime",
            "example": "2021-11-17T14:32:44Z",
            "readOnly": true,
            "nullable": true,
            "description": "The date and time when the object was created.\\\n  `Optional Field`"
          },
          "updated_at": {
            "type": "string",
            "format": "datetime",
            "example": "2021-11-17T14:32:44Z",
            "readOnly": true,
            "description": "The date and time when the object was last updated.\\\n  `Optional Field`"
          },
          "last_cyclecount_at": {
            "type": "string",
            "format": "datetime",
            "example": "2021-11-17T14:32:44Z",
            "readOnly": true,
            "nullable": true,
            "description": "The date and time when last cycle count was performed.\\\n  `Optional Field`"
          },
          "tags": {
            "type": "array",
            "description": "The `LocationTag` objects assigned to this location. Soft-deleted tags remain assigned and\nare still listed, so resolve each reference to learn its current state.\n\nOn create or update, a submitted array replaces the location's whole tag set (an empty\narray clears it) and an omitted key leaves it untouched. A soft-deleted tag may remain\nassigned but cannot be newly assigned. See the batch tags operation for adding or removing\ntags across many locations at once.\\\n  `Optional Field`",
            "items": {
              "$ref": "#/components/schemas/Inventory_API_v1_LocationTagRef"
            }
          },
          "lot": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Inventory_API_v1_LotRef"
              },
              {
                "description": "A reference to the `Lot` object assigned to this location."
              }
            ]
          },
          "product": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Inventory_API_v1_StockableProductRef"
              },
              {
                "description": "A reference to the stockable product assigned to this location."
              }
            ]
          },
          "rack": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Inventory_API_v1_RackRef"
              },
              {
                "description": "A reference to the `Rack` to which this location is assigned. This may be managed automatically or assigned manually."
              }
            ]
          },
          "slot_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Inventory_API_v1_SlotTypeRef"
              },
              {
                "description": "A reference to the `SlotType` object assigned to this location. This may be managed automatically or assigned manually."
              }
            ]
          }
        }
      },
      "Inventory_API_v1_WarehouseRef": {
        "title": "WarehouseRef",
        "type": "object",
        "description": "A reference to a `Warehouse` by `id`.",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "Warehouse"
            ],
            "description": "This property describes the type of object in the response body."
          },
          "id": {
            "type": "integer",
            "format": "int32",
            "description": "The internal `id` property used as a path parameter in a resource lookup."
          }
        },
        "required": [
          "type",
          "id"
        ],
        "nullable": true,
        "additionalProperties": false
      },
      "Inventory_API_v1_Pattern": {
        "title": "SlotTypePattern",
        "type": "object",
        "description": "A rule that assigns its slot type to every location whose label matches `regex`, applied only\nto locations that are still set to automatic slot type assignment.",
        "properties": {
          "description": {
            "type": "string",
            "example": "Pallet racks on aisles A through D",
            "description": "An explanation of which locations the pattern is meant to capture."
          },
          "regex": {
            "type": "string",
            "example": "P-[A-D]-\\d+",
            "description": "A regular expression matched against the whole location label."
          },
          "warehouses": {
            "type": "array",
            "description": "The warehouses the pattern applies to. An empty list, or omitting the property on a\nrequest, applies it to every warehouse. Always present in responses.",
            "items": {
              "$ref": "#/components/schemas/Inventory_API_v1_WarehouseRef"
            }
          }
        },
        "required": [
          "description",
          "regex"
        ],
        "additionalProperties": false
      },
      "Inventory_API_v1_LengthUnit": {
        "type": "string",
        "description": "The imperical or metric unit of measurement.",
        "enum": [
          "in",
          "mm",
          "cm",
          "m"
        ]
      },
      "Inventory_API_v1_DimensionsWHD": {
        "title": "DimensionsWHD",
        "type": "object",
        "nullable": true,
        "properties": {
          "width": {
            "type": "number",
            "description": "The width defined as a floating-point number up to 4 decimal places.",
            "format": "float",
            "example": 48
          },
          "height": {
            "type": "number",
            "description": "The height defined as a floating-point number up to 4 decimal places.",
            "format": "float",
            "example": 60
          },
          "depth": {
            "type": "number",
            "description": "The depth defined as a floating-point number up to 4 decimal places.",
            "format": "float",
            "example": 42
          },
          "unit": {
            "$ref": "#/components/schemas/Inventory_API_v1_LengthUnit"
          }
        }
      },
      "Inventory_API_v1_WeightUnit": {
        "type": "string",
        "description": "This can be an imperial or metric unit for weight.",
        "enum": [
          "lb",
          "oz",
          "kg",
          "g"
        ]
      },
      "Inventory_API_v1_WeightNonNegative": {
        "title": "WeightNonNegative",
        "type": "object",
        "nullable": true,
        "description": "A weight that describes a capacity or an allowance rather than a measurement, and so cannot be\nnegative. Send `null` rather than an object without a `value` to clear a stored weight.",
        "required": [
          "value"
        ],
        "properties": {
          "value": {
            "type": "number",
            "description": "The weight quantity defined as a floating point value of up to 4 decimal places.",
            "format": "float",
            "minimum": 0,
            "maximum": 99999999.999999,
            "example": 20
          },
          "unit": {
            "$ref": "#/components/schemas/Inventory_API_v1_WeightUnit"
          }
        }
      },
      "Inventory_API_v1_SlotType": {
        "title": "SlotType",
        "type": "object",
        "description": "The `SlotType` object allows locations with common attributes or purposes to be easily distinguishable.\nThe slot type also determines if a location is pickable or not which may affect whether or not the location\ncan be reserved for shipments when creating a batch.\n\nA slot type may additionally declare a fixed physical capacity, which drives slot capacity and\nutilization calculations, and a list of label patterns that auto-assign the type to matching locations.",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "SlotType"
            ],
            "readOnly": true,
            "description": "This is a read-only property that describes the type of object in the response body."
          },
          "id": {
            "type": "integer",
            "description": "The internal `id` property used as a path parameter in a resource lookup.",
            "example": 54
          },
          "name": {
            "type": "string",
            "maxLength": 45,
            "description": "The descriptive name of the slot type, unique across slot types.",
            "example": "Pickable Pallets"
          },
          "is_pickable": {
            "type": "boolean",
            "description": "Whether or not the location is considered to be easy to pick from for the purpose of generating pickable batches.",
            "default": true
          },
          "sort_order": {
            "type": "integer",
            "minimum": 0,
            "maximum": 65535,
            "example": 10,
            "description": "The order in which this slot type's auto-assign patterns are tested, lowest first; among slot\ntypes sharing a sort order the newest is tested first. The first pattern to match a location\nlabel decides its slot type.\\\n  `Optional Field`"
          },
          "patterns": {
            "type": "array",
            "description": "Label patterns that automatically assign this slot type to matching locations. Stored in a\ncanonical order, which is not necessarily the order they were submitted in.\\\n  `Optional Field`",
            "items": {
              "$ref": "#/components/schemas/Inventory_API_v1_Pattern"
            }
          },
          "is_fixed_capacity": {
            "type": "boolean",
            "example": true,
            "description": "Whether slots of this type hold a fixed, known amount, making them eligible for slot capacity\nand utilization calculations. When enabled, all three slot dimensions are required.\\\n  `Optional Field`"
          },
          "slot_dimensions": {
            "description": "The interior dimensions of slots assigned to this slot type.\\\n  `Optional Field`",
            "allOf": [
              {
                "$ref": "#/components/schemas/Inventory_API_v1_DimensionsWHD"
              }
            ]
          },
          "weight_capacity": {
            "description": "The maximum weight a slot of this type may hold, used to clamp computed slot capacities.\nMust not be negative.\\\n  `Optional Field`",
            "allOf": [
              {
                "$ref": "#/components/schemas/Inventory_API_v1_WeightNonNegative"
              }
            ]
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "example": "2026-08-01T14:03:22Z",
            "description": "The UTC date and time the slot type was created.\\\n  `Optional Field`"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "example": "2026-08-01T14:03:22Z",
            "description": "The UTC date and time the slot type was last modified.\\\n  `Optional Field`"
          }
        },
        "required": [
          "type",
          "id"
        ],
        "additionalProperties": false
      },
      "Inventory_API_v1_Lot": {
        "title": "Lot",
        "type": "object",
        "description": "The Lot records the time some inventory was originated (first received or\notherwise created) and optionally a lot number and expiration date and may affect the order in which\ninventory is \"burned\" depending on the `LotType`.",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "Lot"
            ],
            "readOnly": true,
            "description": "This is a read-only property that describes the type of object in the response body."
          },
          "id": {
            "type": "integer",
            "example": 54,
            "readOnly": true,
            "description": "The internal `id` property used as a path parameter in a resource lookup."
          }
        },
        "nullable": true
      },
      "Inventory_API_v1_created_at": {
        "type": "string",
        "format": "date-time",
        "description": "The date and time the object was created in RFC 3339 section 5.6 notation.",
        "example": "2017-07-21T17:32:28Z",
        "readOnly": true
      },
      "Inventory_API_v1_updated_at": {
        "type": "string",
        "format": "date-time",
        "description": "The date and time the object was last updated in RFC 3339 section 5.6 notation.\\\n  `Optional Field`",
        "example": "2017-07-21T17:39:43Z",
        "nullable": true,
        "readOnly": true
      },
      "Inventory_API_v1_LotType": {
        "title": "LotType",
        "type": "object",
        "description": "LotType",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "LotType"
            ],
            "readOnly": true,
            "description": "This is a read-only property that describes the type of object in the response body."
          },
          "id": {
            "type": "integer",
            "format": "int64",
            "description": "The internal `id` property used as a path parameter in a resource lookup.",
            "readOnly": true,
            "example": 4
          },
          "name": {
            "type": "string",
            "description": "Any string which uniquely identifies a LotType.",
            "minLength": 1,
            "maxLength": 255,
            "example": "MixFulfillment-Extract-Choose-FEFO"
          },
          "allow_mixing_locations": {
            "type": "boolean",
            "description": "This flag must be `true` for mixing with other Lots/Expirations in the same location..",
            "example": true
          },
          "allow_mixing_fulfillment": {
            "type": "boolean",
            "description": "This flag must be `true` for mixing with other Lots/Expirations when fulfilling an order..",
            "example": true
          },
          "lot_number_input": {
            "description": "The input method used when processing a lot number..",
            "type": "string",
            "enum": [
              "none",
              "choose_date",
              "extract_date",
              "text"
            ],
            "example": "text"
          },
          "lot_number_example": {
            "type": "string",
            "description": "Enter a typical example of a lot number which can be used to validate the Lot Number Pattern. It will also be displayed as an example when users are prompted for input.",
            "example": "AB190405G"
          },
          "lot_number_pattern": {
            "type": "string",
            "description": "Enter a RegEx for capturing the Lot Number Input. Regex must contain one or more capturing group.",
            "example": "^([A-Z]{2}-[0-9]+)$"
          },
          "lot_number_replacement": {
            "type": "string",
            "description": "Enter a RegEx to either save the Lot Number Input as is or transform the entry into something more readable. Must contain one or more non-empty capturing group from the Lot Number Pattern.",
            "example": "$2$1"
          },
          "expiration_date": {
            "type": "string",
            "description": "The input method used when processing the expiration date.",
            "enum": [
              "none",
              "choose_date",
              "extract_date",
              "lot_number_date"
            ],
            "example": "lot_number_date"
          },
          "burn_order": {
            "type": "string",
            "description": "Specifies what stock should be used first when fulfilling orders.",
            "enum": [
              "none",
              "fifo",
              "lifo",
              "fefo",
              "lefo",
              "fifo_lot_number",
              "lifo_lot_number"
            ],
            "example": "fefo"
          },
          "created_at": {
            "$ref": "#/components/schemas/Inventory_API_v1_created_at"
          },
          "updated_at": {
            "$ref": "#/components/schemas/Inventory_API_v1_updated_at"
          }
        }
      },
      "Inventory_API_v1_created_at-optional": {
        "type": "string",
        "format": "date-time",
        "description": "The date and time the object was created in RFC 3339 section 5.6 notation.\\\n  `Optional Field`",
        "example": "2017-07-21T17:32:28Z",
        "nullable": true,
        "readOnly": true
      },
      "Inventory_API_v1_BrandRef": {
        "title": "BrandRef",
        "type": "object",
        "description": "Reference a `Brand` by `id`.",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "Brand"
            ]
          },
          "id": {
            "type": "integer",
            "format": "int32",
            "description": "The numeric `id` of a particular resource being updated.",
            "example": 4
          }
        },
        "required": [
          "type",
          "id"
        ],
        "additionalProperties": false
      },
      "Inventory_API_v1_custom_field_scalar_value": {
        "type": "object",
        "description": "A wrapper for scalar custom field values.\nThe value type depends on the field's input type:\n- **boolean**: boolean value\n- **text/multiline-text/email/url/date**: string value\n- **number**: number value\n- **admin-user/client-user**: integer value (user ID)",
        "required": [
          "value"
        ],
        "properties": {
          "value": {
            "description": "The field value. Type varies based on field configuration.",
            "oneOf": [
              {
                "type": "boolean"
              },
              {
                "type": "string"
              },
              {
                "type": "number"
              },
              {
                "type": "integer"
              }
            ]
          }
        },
        "additionalProperties": false
      },
      "Inventory_API_v1_Monetary": {
        "title": "Monetary",
        "type": "object",
        "nullable": true,
        "properties": {
          "amount": {
            "type": "number",
            "description": "This is the monetary value..",
            "format": "float",
            "example": 99
          },
          "currency": {
            "type": "string",
            "description": "An ISO 3166-1 alpha-3 currency code.",
            "example": "USD"
          }
        }
      },
      "Inventory_API_v1_custom_field_select_option": {
        "type": "object",
        "description": "A selected option for select type fields.",
        "required": [
          "id",
          "label"
        ],
        "properties": {
          "id": {
            "type": "integer",
            "description": "The option ID."
          },
          "label": {
            "type": "string",
            "description": "The display label for the selected option."
          }
        },
        "additionalProperties": false
      },
      "Inventory_API_v1_custom_field_multiselect_value": {
        "type": "array",
        "description": "Array of selected options for multiselect type fields.",
        "items": {
          "$ref": "#/components/schemas/Inventory_API_v1_custom_field_select_option"
        }
      },
      "Inventory_API_v1_custom_field_value": {
        "description": "Union type for all possible custom field value formats.",
        "anyOf": [
          {
            "$ref": "#/components/schemas/Inventory_API_v1_custom_field_scalar_value"
          },
          {
            "$ref": "#/components/schemas/Inventory_API_v1_Monetary"
          },
          {
            "$ref": "#/components/schemas/Inventory_API_v1_custom_field_select_option"
          },
          {
            "$ref": "#/components/schemas/Inventory_API_v1_custom_field_multiselect_value"
          }
        ]
      },
      "Inventory_API_v1_sales_custom_fields": {
        "type": "object",
        "description": "Custom field values for the order, keyed by field code.\n\nThe format of each value depends on the field's input type:\n- **select**: `{\"id\": <integer>, \"label\": \"<string>\"}`\n- **multiselect**: `[{\"id\": <integer>, \"label\": \"<string>\"}, ...]`\n- **currency**: Uses the Monetary type `{\"amount\": <number>, \"currency\": \"<string>\"}`\n- **boolean**: `{\"value\": <boolean>}`\n- **text/multiline-text/email/url/date**: `{\"value\": \"<string>\"}`\n- **number**: `{\"value\": <number>}`\n- **admin-user/client-user**: `{\"value\": <integer>}` (user ID)",
        "additionalProperties": {
          "$ref": "#/components/schemas/Inventory_API_v1_custom_field_value"
        },
        "example": {
          "is_gift": {
            "value": true
          },
          "order_details": {
            "value": "test details"
          },
          "department": {
            "id": 3,
            "label": "Shipping"
          },
          "priority_levels": [
            {
              "id": 1,
              "label": "Urgent"
            },
            {
              "id": 2,
              "label": "High"
            }
          ],
          "cost_of_goods": {
            "amount": 156.99,
            "currency": "USD"
          },
          "assigned_user": {
            "value": 42
          }
        }
      },
      "Inventory_API_v1_Merchant": {
        "title": "Merchant",
        "type": "object",
        "description": "A `Merchant` represents an entity that owns a distinct pool of inventory and line of business.",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "Merchant"
            ],
            "readOnly": true
          },
          "id": {
            "type": "integer",
            "format": "int32",
            "description": "The internal `id` property used as a path parameter in a resource lookup.",
            "readOnly": true,
            "example": 4
          },
          "code": {
            "type": "string",
            "description": "Merchant code may only contain letters (a-z), numbers (0-9) or underscore(_), the first character must be a letter.",
            "minLength": 1,
            "maxLength": 32,
            "example": "acme_inc"
          },
          "name": {
            "type": "string",
            "description": "Any string which uniquely identifies a Merchant.",
            "minLength": 1,
            "maxLength": 64,
            "example": "ACME Inc."
          },
          "status": {
            "type": "string",
            "enum": [
              "active",
              "inactive",
              "suspended",
              "archived"
            ],
            "default": "active",
            "description": "Lifecycle status of the Merchant:\n- `active`: Merchant is operational and available for use\n- `suspended`: Temporarily on hold, can be easily reactivated\n- `inactive`: Long-term offline status, reactivation is possible but may require additional steps\n- `archived`: Soft delete status, manual recovery required",
            "example": "active",
            "nullable": true,
            "readOnly": true
          },
          "created_at": {
            "$ref": "#/components/schemas/Inventory_API_v1_created_at-optional"
          },
          "updated_at": {
            "$ref": "#/components/schemas/Inventory_API_v1_updated_at"
          },
          "brands": {
            "type": "array",
            "items": {
              "allOf": [
                {
                  "$ref": "#/components/schemas/Inventory_API_v1_BrandRef"
                }
              ]
            },
            "description": "A merchant must have one or more brands which may share the same pool of inventory. Brands can be used for\ncustomizing presentation and behaviors and often correspond to distinct lines of business or market presences.\\\n  `Optional Field`",
            "readOnly": true
          },
          "default_brand": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Inventory_API_v1_BrandRef"
              }
            ],
            "description": "This is the primary brand used when defining only the merchant for operations such as creating a new product.\\\n  `Optional Field`"
          },
          "custom_fields": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/components/schemas/Inventory_API_v1_sales_custom_fields"
              }
            ],
            "nullable": true,
            "description": "Custom fields associated with the merchant in script format. Each field contains\na code and value, with additional properties depending on the field type.\\\n  `Optional Field`"
          }
        }
      },
      "Inventory_API_v1_barcodes": {
        "anyOf": [
          {
            "type": "string",
            "nullable": true,
            "example": "956623520-4"
          },
          {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true,
            "example": [
              "956623520-4",
              "O-VS-Oregano-p3"
            ]
          }
        ]
      },
      "Inventory_API_v1_Weight": {
        "title": "Weight",
        "type": "object",
        "nullable": true,
        "properties": {
          "value": {
            "type": "number",
            "description": "The weight quantity defined as a floating point value of up to 4 decimal places.",
            "format": "float",
            "example": 20
          },
          "unit": {
            "$ref": "#/components/schemas/Inventory_API_v1_WeightUnit"
          }
        }
      },
      "Inventory_API_v1_Dimensions": {
        "title": "Dimensions",
        "type": "object",
        "nullable": true,
        "properties": {
          "length": {
            "type": "number",
            "description": "This distance value is usually assigned to the longest side of the object and is defined as a floating-point number up to 4 decimal places.",
            "format": "float",
            "example": 8
          },
          "width": {
            "type": "number",
            "description": "This value describes the horizontal distance of the subject defined as a floating-point number up to 4 decimal places.",
            "format": "float",
            "example": 6
          },
          "height": {
            "type": "number",
            "description": "This value describes the vertical distance of the subject defined as a floating-point number up to 4 decimal places.",
            "format": "float",
            "example": 4
          },
          "unit": {
            "$ref": "#/components/schemas/Inventory_API_v1_LengthUnit"
          }
        }
      },
      "Inventory_API_v1_VolumeUnit": {
        "type": "string",
        "description": "The imperical or metric unit of measurement as a cubic value.",
        "enum": [
          "in^3",
          "mm^3",
          "cm^3",
          "m^3"
        ]
      },
      "Inventory_API_v1_Volume": {
        "title": "Volume",
        "type": "object",
        "nullable": true,
        "properties": {
          "value": {
            "type": "number",
            "description": "This value describes the cubic size of the subject as a floating-point number up to 4 decimal places.",
            "format": "float",
            "example": 300
          },
          "unit": {
            "$ref": "#/components/schemas/Inventory_API_v1_VolumeUnit"
          }
        }
      },
      "Inventory_API_v1_ProductRef": {
        "title": "ProductRef",
        "type": "object",
        "description": "A reference to a `Product` object by `id`.",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "Product"
            ],
            "description": "This property describes the type of object in the response body."
          },
          "id": {
            "type": "integer",
            "format": "int32",
            "example": 3,
            "description": "The internal `id` property used as a path parameter in a resource lookup."
          }
        },
        "required": [
          "type",
          "id"
        ],
        "additionalProperties": false
      },
      "Inventory_API_v1_MerchantRef": {
        "title": "MerchantRef",
        "type": "object",
        "description": "Reference a `Merchant` by `id`.",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "Merchant"
            ]
          },
          "id": {
            "type": "integer",
            "format": "int32",
            "example": 4,
            "description": "The internal `id` property used as a path parameter in a resource lookup."
          }
        },
        "required": [
          "type",
          "id"
        ],
        "additionalProperties": false
      },
      "Inventory_API_v1_updated_at-optional": {
        "type": "string",
        "format": "date-time",
        "description": "The date and time the object was last updated in RFC 3339 section 5.6 notation.",
        "example": "2017-07-21T17:39:43Z",
        "nullable": true,
        "readOnly": true
      },
      "Inventory_API_v1_AbstractProduct": {
        "type": "object",
        "properties": {
          "sku": {
            "type": "string",
            "description": "The Stock Keeping Unit (SKU) is a unique identifier for the `Product`.",
            "example": "SKU-1AD"
          },
          "name": {
            "type": "string",
            "description": "This is displayed as a short, descriptive title for the `Product`.",
            "example": "Test Product"
          },
          "is_enabled": {
            "type": "boolean",
            "description": "Disabled products are effectively deleted.",
            "enum": [
              true,
              false
            ],
            "default": true
          },
          "merchant": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Inventory_API_v1_MerchantRef"
              },
              {
                "description": "The `Merchant` to which the product belongs."
              }
            ]
          },
          "created_at": {
            "$ref": "#/components/schemas/Inventory_API_v1_created_at-optional"
          },
          "updated_at": {
            "$ref": "#/components/schemas/Inventory_API_v1_updated_at-optional"
          }
        }
      },
      "Inventory_API_v1_PackagingContainer": {
        "title": "PackagingContainer",
        "description": "A reference to the `PackagingContainer` object linked with Warehouse Inventory Location.",
        "allOf": [
          {
            "type": "object",
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "PackagingContainer"
                ],
                "description": "This property describes the type of object in the response body."
              },
              "id": {
                "type": "integer",
                "description": "The internal, read-only, `id` property used as a path parameter in a resource lookup.",
                "readOnly": true
              },
              "container_options": {
                "type": "object",
                "properties": {
                  "barcodes": {
                    "allOf": [
                      {
                        "$ref": "#/components/schemas/Inventory_API_v1_barcodes"
                      },
                      {
                        "description": "A comma separated list of unique packaging feature barcodes.\\\n  `Optional Field`"
                      }
                    ]
                  },
                  "weight": {
                    "allOf": [
                      {
                        "$ref": "#/components/schemas/Inventory_API_v1_Weight"
                      },
                      {
                        "description": "The weight of the container when packed with the shipment items."
                      }
                    ]
                  },
                  "dimensions": {
                    "allOf": [
                      {
                        "$ref": "#/components/schemas/Inventory_API_v1_Dimensions"
                      },
                      {
                        "description": "The dimensions of the container in imperial or metric units."
                      }
                    ]
                  },
                  "volume": {
                    "allOf": [
                      {
                        "$ref": "#/components/schemas/Inventory_API_v1_Volume"
                      },
                      {
                        "description": "The total volume of the container in imperial or metric units.",
                        "readOnly": true
                      }
                    ]
                  },
                  "manage_stock": {
                    "type": "boolean",
                    "description": "This flag indicates whether or not to adjust the inventory quantity of the packaging feature with each use. If `true` then the inventory levels will decrease with each use. If `no` then the inventory will not adjust with each use.",
                    "enum": [
                      true,
                      false
                    ]
                  },
                  "associated_products": {
                    "type": "array",
                    "description": "A list of products with this packaging feature selected in its \"Other Special Features\" option in the product's \"Packaging\" tab.",
                    "items": {
                      "$ref": "#/components/schemas/Inventory_API_v1_ProductRef"
                    }
                  },
                  "allow_for_brands": {
                    "type": "array",
                    "description": "If specified, this packaging feature will only be applicable to the selected merchants/brands.",
                    "items": {
                      "anyOf": [
                        {
                          "$ref": "#/components/schemas/Inventory_API_v1_MerchantRef"
                        },
                        {
                          "$ref": "#/components/schemas/Inventory_API_v1_BrandRef"
                        }
                      ]
                    }
                  },
                  "disallow_for_brands": {
                    "type": "array",
                    "description": "If specified, this packaging feature will not be applicable to the selected merchants/brands.",
                    "items": {
                      "anyOf": [
                        {
                          "$ref": "#/components/schemas/Inventory_API_v1_MerchantRef"
                        },
                        {
                          "$ref": "#/components/schemas/Inventory_API_v1_BrandRef"
                        }
                      ]
                    }
                  },
                  "billing_amount": {
                    "allOf": [
                      {
                        "$ref": "#/components/schemas/Inventory_API_v1_Monetary"
                      },
                      {
                        "description": "The amount that will be billable for consumption of one unit of this packaging feature.\\\n  `Optional Field`"
                      }
                    ]
                  },
                  "allow_for_warehouses": {
                    "type": "array",
                    "description": "If specified, this packaging feature will only be applicable to the selected warehouses.",
                    "items": {
                      "$ref": "#/components/schemas/Inventory_API_v1_WarehouseRef"
                    }
                  },
                  "allow_for_shipping_methods": {
                    "type": "array",
                    "description": "If specified, this packaging feature will only be applicable to the selected carriers/shipping methods.",
                    "items": {
                      "type": "string"
                    }
                  },
                  "satisfies_overbox": {
                    "type": "boolean",
                    "description": "Will be a valid container for products which have `Requires Overbox: Yes`.",
                    "enum": [
                      true,
                      false
                    ]
                  },
                  "use_for_bin_packing": {
                    "type": "string",
                    "description": "Containers with \"Use for Bin Packing: No\" will not be used by packing solution providers.",
                    "enum": [
                      "yes",
                      "no",
                      "fallback"
                    ]
                  },
                  "weight_capacity": {
                    "allOf": [
                      {
                        "$ref": "#/components/schemas/Inventory_API_v1_Weight"
                      },
                      {
                        "description": "Maximum allowed weight of the container, including tare weight.\n`Optional Field`"
                      }
                    ]
                  },
                  "container_style": {
                    "type": "string",
                    "description": "Specify the container type. Currently, only \"Rigid Box\" is supported.",
                    "enum": [
                      "rigid_box"
                    ]
                  },
                  "packaging_handling_surcharge": {
                    "type": "boolean",
                    "description": "The Packaging Surcharge is applicable for this packaging feature (e.g. cylindrical, non-fiberboard material, protrusions, non-conveyable, etc.)",
                    "enum": [
                      true,
                      false
                    ]
                  }
                }
              }
            }
          },
          {
            "$ref": "#/components/schemas/Inventory_API_v1_AbstractProduct"
          }
        ]
      },
      "Inventory_API_v1_PackagingDataCollection": {
        "title": "PackagingDataCollection",
        "description": "A reference to the `PackagingDataCollection` object linked with Warehouse Inventory Location.",
        "allOf": [
          {
            "$ref": "#/components/schemas/Inventory_API_v1_AbstractProduct"
          },
          {
            "type": "object",
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "PackagingDataCollection"
                ],
                "description": "This property describes the type of object in the response body."
              },
              "id": {
                "type": "integer",
                "description": "The internal, read-only, `id` property used as a path parameter in a resource lookup.",
                "readOnly": true
              },
              "data_collection_options": {
                "type": "object",
                "properties": {
                  "associated_products": {
                    "type": "array",
                    "description": "A list of products with this packaging feature selected in its \"Other Special Features\" option in the product's \"Packaging\" tab.",
                    "items": {
                      "$ref": "#/components/schemas/Inventory_API_v1_ProductRef"
                    }
                  },
                  "allow_for_brands": {
                    "type": "array",
                    "description": "If specified, this packaging feature will only be applicable to the selected merchants/brands.",
                    "items": {
                      "anyOf": [
                        {
                          "$ref": "#/components/schemas/Inventory_API_v1_MerchantRef"
                        },
                        {
                          "$ref": "#/components/schemas/Inventory_API_v1_BrandRef"
                        }
                      ]
                    }
                  },
                  "disallow_for_brands": {
                    "type": "array",
                    "description": "If specified, this packaging feature will not be applicable to the selected merchants/brands.",
                    "items": {
                      "anyOf": [
                        {
                          "$ref": "#/components/schemas/Inventory_API_v1_MerchantRef"
                        },
                        {
                          "$ref": "#/components/schemas/Inventory_API_v1_BrandRef"
                        }
                      ]
                    }
                  },
                  "billing_amount": {
                    "allOf": [
                      {
                        "$ref": "#/components/schemas/Inventory_API_v1_Monetary"
                      },
                      {
                        "description": "The amount that will be billable for consumption of one unit of this packaging feature.\\\n  `Optional Field`"
                      }
                    ]
                  },
                  "allow_for_shipping_methods": {
                    "type": "array",
                    "description": "If specified, this packaging feature will only be applicable to the selected carriers/shipping methods.",
                    "items": {
                      "type": "string"
                    }
                  },
                  "apply_to_goods_type": {
                    "type": "string",
                    "enum": [
                      "any",
                      "NORMAL",
                      "ORM_D"
                    ],
                    "description": "This packaging feature will be applied to all shipments containing an item with this Goods Type. \\\n- `NORMAL` Not Regulated\n- `ORM_D`  ORM-D\n`Optional Field`"
                  },
                  "never_apply_to_goods_type": {
                    "type": "string",
                    "enum": [
                      "NORMAL",
                      "LIMITED_QUANTITIES_COMMODITIES",
                      "HAZMAT"
                    ],
                    "description": "This packaging feature will be applied to all shipments which do not contain an item with this Goods Type. \\\n- `NORMAL` Not Regulated\n- `LIMITED_QUANTITIES_COMMODITIES`  Limited Quantities: Consumer Commodity\n- `HAZMAT` Regulated\n`Optional Field`"
                  },
                  "apply_only_above_weight": {
                    "allOf": [
                      {
                        "$ref": "#/components/schemas/Inventory_API_v1_Weight"
                      },
                      {
                        "description": "If specified, this packaging product is not a requirement for packages under the given weight when \"Always/Never Apply to Goods Type\" is specified.\n`Optional Field`"
                      }
                    ]
                  },
                  "one_per": {
                    "type": "string",
                    "description": "The expected number of scans per shipment. The product \"Unit Quantity\" is used as a multiplier for \"One Scan Per: Each\".",
                    "enum": [
                      "order",
                      "package",
                      "item",
                      "each"
                    ]
                  },
                  "require_scan_timing": {
                    "type": "string",
                    "description": "Choose how the scan timer should begin recording time data on this product or packaging feature.",
                    "enum": [
                      "after_product_scan|on_full",
                      "on_start"
                    ]
                  },
                  "disable_confirm_button": {
                    "type": "boolean",
                    "description": "If \"No\", the user will be able to tap \"Confirm\" rather than scanning a barcode.",
                    "enum": [
                      true,
                      false
                    ]
                  },
                  "require_packaging_type": {
                    "type": "string",
                    "description": "If specified, this packaging feature will only be applicable when the container meets the chosen criteria based on the container's \"Satisfies Overbox\" attribute when \"Always/Never Apply to Goods Type\" is specified.",
                    "enum": [
                      "overbox",
                      "non_overbox"
                    ]
                  },
                  "apply_unless_container_meets_hazmat": {
                    "type": "boolean",
                    "description": "If \"Yes\", this packaging product will be applicable unless a package contains a DG item with \"Container Meets Hazmat Specs: Yes\" when \"Always/Never Apply to Goods Type\" is specified.",
                    "enum": [
                      true,
                      false
                    ]
                  },
                  "apply_to_multi_sku_package": {
                    "type": "boolean",
                    "description": "If \"Yes\", this packaging product will only be applied to packages containing more than one SKU when \"Always/Never Apply to Goods Type\" is specified.",
                    "enum": [
                      true,
                      false
                    ]
                  },
                  "collect_data_pattern": {
                    "type": "string",
                    "description": "Specify a Javascript-compatible regular expression which describes the format of the data to be collected. Examples: \".+\" for anything, or \"^[0-9]{15}$\" for a 15-digit number. See http://regexpal.com/"
                  },
                  "apply_to_region": {
                    "type": "string",
                    "description": "Unless specified, this packaging feature will apply to all regions when \"Always/Never Apply to Goods Type\" is specified."
                  },
                  "is_collected_data_unique": {
                    "type": "boolean",
                    "description": "Prevent the same data collection value from being collected more than once on the same shipment.",
                    "enum": [
                      true,
                      false
                    ]
                  }
                }
              }
            }
          }
        ]
      },
      "Inventory_API_v1_Length": {
        "title": "Length",
        "type": "object",
        "nullable": true,
        "properties": {
          "value": {
            "type": "number",
            "description": "This value describes the length of the object as a floating-point number up to 4 decimal places.",
            "format": "float",
            "example": 12
          },
          "unit": {
            "$ref": "#/components/schemas/Inventory_API_v1_LengthUnit"
          }
        }
      },
      "Inventory_API_v1_PackagingInfill": {
        "title": "PackagingInfill",
        "description": "A reference to the `PackagingInfill` object linked with Warehouse Inventory Location.",
        "allOf": [
          {
            "type": "object",
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "PackagingInfill"
                ],
                "description": "This property describes the type of object in the response body."
              },
              "id": {
                "type": "integer",
                "description": "The internal, read-only, `id` property used as a path parameter in a resource lookup.",
                "readOnly": true
              },
              "infill_options": {
                "type": "object",
                "properties": {
                  "barcodes": {
                    "allOf": [
                      {
                        "$ref": "#/components/schemas/Inventory_API_v1_barcodes"
                      },
                      {
                        "description": "A comma separated list of unique packaging feature barcodes.\\\n  `Optional Field`"
                      }
                    ]
                  },
                  "weight": {
                    "allOf": [
                      {
                        "$ref": "#/components/schemas/Inventory_API_v1_Weight"
                      },
                      {
                        "description": "The weight of the infill.\n`Optional Field`"
                      }
                    ]
                  },
                  "manage_stock": {
                    "type": "boolean",
                    "description": "This flag indicates whether or not to adjust the inventory quantity of the packaging feature with each use. If `true` then the inventory levels will decrease with each use. If `no` then the inventory will not adjust with each use.",
                    "enum": [
                      true,
                      false
                    ]
                  },
                  "associated_products": {
                    "type": "array",
                    "description": "A list of products with this packaging feature selected in its \"Other Special Features\" option in the product's \"Packaging\" tab.",
                    "items": {
                      "$ref": "#/components/schemas/Inventory_API_v1_ProductRef"
                    }
                  },
                  "allow_for_brands": {
                    "type": "array",
                    "description": "If specified, this packaging feature will only be applicable to the selected merchants/brands.",
                    "items": {
                      "anyOf": [
                        {
                          "$ref": "#/components/schemas/Inventory_API_v1_MerchantRef"
                        },
                        {
                          "$ref": "#/components/schemas/Inventory_API_v1_BrandRef"
                        }
                      ]
                    }
                  },
                  "disallow_for_brands": {
                    "type": "array",
                    "description": "If specified, this packaging feature will not be applicable to the selected merchants/brands.",
                    "items": {
                      "anyOf": [
                        {
                          "$ref": "#/components/schemas/Inventory_API_v1_MerchantRef"
                        },
                        {
                          "$ref": "#/components/schemas/Inventory_API_v1_BrandRef"
                        }
                      ]
                    }
                  },
                  "billing_amount": {
                    "allOf": [
                      {
                        "$ref": "#/components/schemas/Inventory_API_v1_Monetary"
                      },
                      {
                        "description": "The amount that will be billable for consumption of one unit of this packaging feature.\\\n  `Optional Field`"
                      }
                    ]
                  },
                  "disable_confirm_button": {
                    "type": "boolean",
                    "description": "If \"No\", the user will be able to tap \"Confirm\" rather than scanning a barcode.",
                    "enum": [
                      true,
                      false
                    ]
                  },
                  "apply_unless_container_meets_hazmat": {
                    "type": "boolean",
                    "description": "If \"Yes\", this packaging product will be applicable unless a package contains a DG item with \"Container Meets Hazmat Specs: Yes\" when \"Always/Never Apply to Goods Type\" is specified.",
                    "enum": [
                      true,
                      false
                    ]
                  },
                  "is_confirmation_required": {
                    "type": "boolean",
                    "description": "If \"Yes\", this packer will be prompted and required to confirm the use of infill.",
                    "enum": [
                      true,
                      false
                    ]
                  },
                  "infill_horizontal": {
                    "allOf": [
                      {
                        "$ref": "#/components/schemas/Inventory_API_v1_Length"
                      },
                      {
                        "description": "The amount of space to reserve on each horizontal side of the package for infill. \\\n`Optional Field`"
                      }
                    ]
                  },
                  "infill_vertical": {
                    "allOf": [
                      {
                        "$ref": "#/components/schemas/Inventory_API_v1_Length"
                      },
                      {
                        "description": "The amount of space to reserve on each vertical side of the package for infill.\n`Optional Field`"
                      }
                    ]
                  },
                  "infill_priority": {
                    "type": "integer",
                    "description": "If multiple infill types are prescribed for a mix of items, the infill with the lowest Infill Priority number will prevail."
                  }
                }
              }
            }
          },
          {
            "$ref": "#/components/schemas/Inventory_API_v1_AbstractProduct"
          }
        ]
      },
      "Inventory_API_v1_PackagingInstruction": {
        "title": "PackagingInstruction",
        "description": "A reference to the `PackagingInstruction` object linked with Warehouse Inventory Location.",
        "allOf": [
          {
            "type": "object",
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "PackagingInstruction"
                ],
                "description": "This property describes the type of object in the response body."
              },
              "id": {
                "type": "integer",
                "description": "The internal, read-only, `id` property used as a path parameter in a resource lookup.",
                "readOnly": true
              },
              "instruction_options": {
                "type": "object",
                "properties": {
                  "barcodes": {
                    "allOf": [
                      {
                        "$ref": "#/components/schemas/Inventory_API_v1_barcodes"
                      },
                      {
                        "description": "A comma separated list of unique packaging feature barcodes.\\\n  `Optional Field`"
                      }
                    ]
                  },
                  "associated_products": {
                    "type": "array",
                    "description": "A list of products with this packaging feature selected in its \"Other Special Features\" option in the product's \"Packaging\" tab.",
                    "items": {
                      "$ref": "#/components/schemas/Inventory_API_v1_ProductRef"
                    }
                  },
                  "allow_for_brands": {
                    "type": "array",
                    "description": "If specified, this packaging feature will only be applicable to the selected merchants/brands.",
                    "items": {
                      "anyOf": [
                        {
                          "$ref": "#/components/schemas/Inventory_API_v1_MerchantRef"
                        },
                        {
                          "$ref": "#/components/schemas/Inventory_API_v1_BrandRef"
                        }
                      ]
                    }
                  },
                  "disallow_for_brands": {
                    "type": "array",
                    "description": "If specified, this packaging feature will not be applicable to the selected merchants/brands.",
                    "items": {
                      "anyOf": [
                        {
                          "$ref": "#/components/schemas/Inventory_API_v1_MerchantRef"
                        },
                        {
                          "$ref": "#/components/schemas/Inventory_API_v1_BrandRef"
                        }
                      ]
                    }
                  },
                  "billing_amount": {
                    "allOf": [
                      {
                        "$ref": "#/components/schemas/Inventory_API_v1_Monetary"
                      },
                      {
                        "description": "The amount that will be billable for consumption of one unit of this packaging feature.\\\n  `Optional Field`"
                      }
                    ]
                  },
                  "allow_for_shipping_methods": {
                    "type": "array",
                    "description": "If specified, this packaging feature will only be applicable to the selected carriers/shipping methods.",
                    "items": {
                      "type": "string"
                    }
                  },
                  "apply_to_goods_type": {
                    "type": "string",
                    "enum": [
                      "any",
                      "NORMAL",
                      "ORM_D"
                    ],
                    "description": "This packaging feature will be applied to all shipments containing an item with this Goods Type.\n- `NORMAL` Not Regulated\n- `ORM_D`  ORM-D\n`Optional Field`"
                  },
                  "never_apply_to_goods_type": {
                    "type": "string",
                    "enum": [
                      "NORMAL",
                      "LIMITED_QUANTITIES_COMMODITIES",
                      "HAZMAT"
                    ],
                    "description": "This packaging feature will be applied to all shipments which do not contain an item with this Goods Type.\n- `NORMAL` Not Regulated\n- `LIMITED_QUANTITIES_COMMODITIES`  Limited Quantities: Consumer Commodity\n- `HAZMAT` Regulated\n`Optional Field`"
                  },
                  "apply_only_above_weight": {
                    "allOf": [
                      {
                        "$ref": "#/components/schemas/Inventory_API_v1_Weight"
                      },
                      {
                        "description": "If specified, this packaging product is not a requirement for packages under the given weight when \"Always/Never Apply to Goods Type\" is specified. \\\n`Optional Field`"
                      }
                    ]
                  },
                  "one_per": {
                    "type": "string",
                    "description": "The expected number of scans per shipment. The product \"Unit Quantity\" is used as a multiplier for \"One Scan Per: Each\".",
                    "enum": [
                      "order",
                      "package",
                      "item",
                      "each"
                    ]
                  },
                  "require_scan_timing": {
                    "type": "string",
                    "description": "Choose how the scan timer should begin recording time data on this product or packaging feature.",
                    "enum": [
                      "after_product_scan|on_full",
                      "on_start"
                    ]
                  },
                  "disable_confirm_button": {
                    "type": "boolean",
                    "description": "If \"No\", the user will be able to tap \"Confirm\" rather than scanning a barcode.",
                    "enum": [
                      true,
                      false
                    ]
                  },
                  "require_packaging_type": {
                    "type": "string",
                    "description": "If specified, this packaging feature will only be applicable when the container meets the chosen criteria based on the container's \"Satisfies Overbox\" attribute when \"Always/Never Apply to Goods Type\" is specified.",
                    "enum": [
                      "overbox",
                      "non_overbox"
                    ]
                  },
                  "apply_to_region": {
                    "type": "string",
                    "description": "Unless specified, this packaging feature will apply to all regions when \"Always/Never Apply to Goods Type\" is specified."
                  },
                  "apply_unless_container_meets_hazmat": {
                    "type": "boolean",
                    "description": "If \"Yes\", this packaging product will be applicable unless a package contains a DG item with \"Container Meets Hazmat Specs: Yes\" when \"Always/Never Apply to Goods Type\" is specified.",
                    "enum": [
                      true,
                      false
                    ]
                  },
                  "apply_to_multi_sku_package": {
                    "type": "boolean",
                    "description": "If \"Yes\", this packaging product will only be applied to packages containing more than one SKU when \"Always/Never Apply to Goods Type\" is specified.",
                    "enum": [
                      true,
                      false
                    ]
                  }
                }
              }
            }
          },
          {
            "$ref": "#/components/schemas/Inventory_API_v1_AbstractProduct"
          }
        ]
      },
      "Inventory_API_v1_PackagingSupplies": {
        "title": "PackagingSupplies",
        "description": "A reference to the `PackagingSupplies` object linked with Warehouse Inventory Location.",
        "allOf": [
          {
            "type": "object",
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "PackagingSupplies"
                ],
                "description": "This property describes the type of object in the response body."
              },
              "id": {
                "type": "integer",
                "description": "The internal, read-only, `id` property used as a path parameter in a resource lookup.",
                "readOnly": true
              },
              "supplies_options": {
                "type": "object",
                "properties": {
                  "barcodes": {
                    "allOf": [
                      {
                        "$ref": "#/components/schemas/Inventory_API_v1_barcodes"
                      },
                      {
                        "description": "A comma separated list of unique packaging feature barcodes.\\\n  `Optional Field`"
                      }
                    ]
                  },
                  "weight": {
                    "allOf": [
                      {
                        "$ref": "#/components/schemas/Inventory_API_v1_Weight"
                      },
                      {
                        "description": "The weight of the infill.\n`Optional Field`"
                      }
                    ]
                  },
                  "manage_stock": {
                    "type": "boolean",
                    "description": "This flag indicates whether or not to adjust the inventory quantity of the packaging feature with each use. If `true` then the inventory levels will decrease with each use. If `no` then the inventory will not adjust with each use.",
                    "enum": [
                      true,
                      false
                    ]
                  },
                  "associated_products": {
                    "type": "array",
                    "description": "A list of products with this packaging feature selected in its \"Other Special Features\" option in the product's \"Packaging\" tab.",
                    "items": {
                      "$ref": "#/components/schemas/Inventory_API_v1_ProductRef"
                    }
                  },
                  "allow_for_brands": {
                    "type": "array",
                    "description": "If specified, this packaging feature will only be applicable to the selected merchants/brands.",
                    "items": {
                      "anyOf": [
                        {
                          "$ref": "#/components/schemas/Inventory_API_v1_MerchantRef"
                        },
                        {
                          "$ref": "#/components/schemas/Inventory_API_v1_BrandRef"
                        }
                      ]
                    }
                  },
                  "disallow_for_brands": {
                    "type": "array",
                    "description": "If specified, this packaging feature will not be applicable to the selected merchants/brands.",
                    "items": {
                      "anyOf": [
                        {
                          "$ref": "#/components/schemas/Inventory_API_v1_MerchantRef"
                        },
                        {
                          "$ref": "#/components/schemas/Inventory_API_v1_BrandRef"
                        }
                      ]
                    }
                  },
                  "billing_amount": {
                    "allOf": [
                      {
                        "$ref": "#/components/schemas/Inventory_API_v1_Monetary"
                      },
                      {
                        "description": "The amount that will be billable for consumption of one unit of this packaging feature.\\\n  `Optional Field`"
                      }
                    ]
                  },
                  "allow_for_warehouses": {
                    "type": "array",
                    "description": "If specified, this packaging feature will only be applicable to the selected warehouses.",
                    "items": {
                      "$ref": "#/components/schemas/Inventory_API_v1_WarehouseRef"
                    }
                  },
                  "allow_for_shipping_methods": {
                    "type": "array",
                    "description": "If specified, this packaging feature will only be applicable to the selected carriers/shipping methods.",
                    "items": {
                      "type": "string"
                    }
                  },
                  "packaging_handling_surcharge": {
                    "type": "boolean",
                    "description": "The Packaging Surcharge is applicable for this packaging feature (e.g. cylindrical, non-fiberboard material, protrusions, non-conveyable, etc.)",
                    "enum": [
                      true,
                      false
                    ]
                  },
                  "apply_to_goods_type": {
                    "type": "string",
                    "enum": [
                      "any",
                      "NORMAL",
                      "ORM_D"
                    ],
                    "description": "This packaging feature will be applied to all shipments which do not contain an item with this Goods Type.\n- `NORMAL` Not Regulated\n- `ORM_D`  ORM-D\n`Optional Field`"
                  },
                  "never_apply_to_goods_type": {
                    "type": "string",
                    "enum": [
                      "NORMAL",
                      "LIMITED_QUANTITIES_COMMODITIES",
                      "HAZMAT"
                    ],
                    "description": "This packaging feature will be applied to all shipments which do not contain an item with this Goods Type.\n- `NORMAL` Not Regulated\n- `LIMITED_QUANTITIES_COMMODITIES`  Limited Quantities: Consumer Commodity\n- `HAZMAT` Regulated\n`Optional Field`"
                  },
                  "apply_only_above_weight": {
                    "allOf": [
                      {
                        "$ref": "#/components/schemas/Inventory_API_v1_Weight"
                      },
                      {
                        "description": "If specified, this packaging supply is not a requirement for packages under the given weight when \"Always/Never Apply to Goods Type\" is specified.\n`Optional Field`"
                      }
                    ]
                  },
                  "one_per": {
                    "type": "string",
                    "description": "The expected number of scans per shipment. The product \"Unit Quantity\" is used as a multiplier for \"One Scan Per: Each\".",
                    "enum": [
                      "order",
                      "package",
                      "item",
                      "each"
                    ]
                  },
                  "require_scan_timing": {
                    "type": "string",
                    "description": "Choose how the scan timer should begin recording time data on this product or packaging feature.",
                    "enum": [
                      "after_product_scan|on_full",
                      "on_start"
                    ]
                  },
                  "disable_confirm_button": {
                    "type": "boolean",
                    "description": "If \"No\", the user will be able to tap \"Confirm\" rather than scanning a barcode.",
                    "enum": [
                      true,
                      false
                    ]
                  },
                  "require_packaging_type": {
                    "type": "string",
                    "description": "If specified, this packaging feature will only be applicable when the container meets the chosen criteria based on the container's \"Satisfies Overbox\" attribute when \"Always/Never Apply to Goods Type\" is specified.",
                    "enum": [
                      "overbox",
                      "non_overbox"
                    ]
                  },
                  "apply_to_region": {
                    "type": "string",
                    "description": "Unless specified, this packaging feature will apply to all regions when \"Always/Never Apply to Goods Type\" is specified."
                  },
                  "apply_unless_container_meets_hazmat": {
                    "type": "boolean",
                    "description": "If \"Yes\", this packaging product will be applicable unless a package contains a DG item with \"Container Meets Hazmat Specs: Yes\" when \"Always/Never Apply to Goods Type\" is specified.",
                    "enum": [
                      true,
                      false
                    ]
                  },
                  "apply_to_multi_sku_package": {
                    "type": "boolean",
                    "description": "If \"Yes\", this packaging product will only be applied to packages containing more than one SKU when \"Always/Never Apply to Goods Type\" is specified.",
                    "enum": [
                      true,
                      false
                    ]
                  }
                }
              }
            }
          },
          {
            "$ref": "#/components/schemas/Inventory_API_v1_AbstractProduct"
          }
        ]
      },
      "Inventory_API_v1_LotTypeRef": {
        "title": "LotTypeRef",
        "description": "LotType",
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "LotType"
            ],
            "description": "This property describes the type of object in the response body."
          },
          "id": {
            "type": "integer",
            "format": "int64",
            "description": "The internal `id` property used as a path parameter in a resource lookup.",
            "example": 4
          }
        },
        "required": [
          "type",
          "id"
        ],
        "nullable": true,
        "additionalProperties": false
      },
      "Inventory_API_v1_Inventory": {
        "title": "Inventory",
        "type": "object",
        "description": "Product Inventory information",
        "properties": {
          "backorders": {
            "description": "This determines if `Product` that is no longer in stock may be backordered or whether or not to use ShipStream's scoped configurations.",
            "anyOf": [
              {
                "type": "boolean",
                "example": true
              },
              {
                "type": "string",
                "enum": [
                  "use_config"
                ]
              }
            ]
          },
          "dynamic_allocation": {
            "description": "This will allow the `Product` to source from inventory in other warehouses in real-time if enabled, and can be set to use ShipStream's scoped configurations.",
            "anyOf": [
              {
                "type": "boolean",
                "example": true
              },
              {
                "type": "string",
                "enum": [
                  "use_config"
                ]
              }
            ]
          },
          "virtual_inventory": {
            "type": "string",
            "description": "This is the method used to predict an esitmate of inventory available when kitting from the `Product`.",
            "enum": [
              "none",
              "optimistic",
              "realistic",
              "pessimistic"
            ],
            "example": "optimistic"
          }
        }
      },
      "Inventory_API_v1_country_extension": {
        "type": "array",
        "nullable": true,
        "items": {
          "type": "object",
          "properties": {
            "country_id": {
              "type": "string",
              "description": "This is the two-digit ISO (Alpha-2) country code."
            },
            "extension": {
              "type": "string",
              "description": "Country-specific extension to the 6-digit Harmonized System code. For imports into the United States this is the last 4 digits of the 10-digit HTS (Harmonized Tariff Schedule) code."
            }
          }
        },
        "example": [
          {
            "country_id": "TW",
            "extension": "002"
          },
          {
            "country_id": "US",
            "extension": "011"
          }
        ]
      },
      "Inventory_API_v1_Export": {
        "title": "Export",
        "type": "object",
        "description": "Product Export and Custom information",
        "properties": {
          "description": {
            "type": "string",
            "description": "This is used to describe in detail the `Product` for international shipping and customs regulations.",
            "nullable": true,
            "example": "Plastic children's toy with steel weights and ball bearings"
          },
          "customs_value": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Inventory_API_v1_Monetary"
              },
              {
                "description": "The value of the products the purpose of calculating duties and taxes in the destination country."
              }
            ]
          },
          "country_of_manufacture": {
            "type": "string",
            "nullable": true,
            "description": "2 letters Country ISO Code",
            "example": "TW"
          },
          "hs_base_code": {
            "type": "string",
            "description": "This is the Harmonized System Code (HS Code); a standardized numerical method of classifying traded products. These are 6 digit codes in the format \\#\\#\\#\\#.\\#\\# (e.g. 8471.30) which are associated with a standard HS Code Description, not including country-specific extensions.",
            "nullable": true,
            "example": "8518.30"
          },
          "hs_country_extension": {
            "$ref": "#/components/schemas/Inventory_API_v1_country_extension"
          }
        }
      },
      "Inventory_API_v1_RegulationRef": {
        "title": "Regulation",
        "type": "object",
        "description": "A reference to a `Regulation` by `id`.",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "Regulation"
            ],
            "description": "This property describes the type of object in the response body."
          },
          "id": {
            "type": "integer",
            "description": "The internal `id` property used as a path parameter in a resource lookup."
          }
        },
        "required": [
          "type",
          "id"
        ],
        "nullable": true,
        "additionalProperties": false
      },
      "Inventory_API_v1_container_type": {
        "type": "string",
        "nullable": true,
        "description": "The Overpack Container Type can be a combination of material and container type such as Aluminum Box, Steel Drum, or a combination of a material and container type from these two lists:\n  - `Material:` Aluminum, Fiberboard, Glass, Plywood, Plastic, Steel, Wood\n  - `Container:` Bag, Bottle, Box, Bucket, Cylinder, Drum, Jerrican, Pail",
        "example": "Plastic Box"
      },
      "Inventory_API_v1_RegulatedGoods": {
        "title": "RegulatedGoods",
        "type": "object",
        "description": "Product Regulation Information",
        "properties": {
          "regulation": {
            "$ref": "#/components/schemas/Inventory_API_v1_RegulationRef"
          },
          "technical_name": {
            "type": "string",
            "nullable": true,
            "description": "Must match against Regulation's Technical Name Pattern if specified.",
            "example": "Hydro Polymer Acetylene Coating"
          },
          "additional_information": {
            "type": "string",
            "nullable": true,
            "description": "Must match against Regulation's Additional Regulatory Information Pattern if specified.",
            "example": "Flamable Liquid"
          },
          "net_weight": {
            "$ref": "#/components/schemas/Inventory_API_v1_Weight"
          },
          "container_type": {
            "$ref": "#/components/schemas/Inventory_API_v1_container_type"
          },
          "container_meets_hazmat_specs": {
            "type": "boolean",
            "description": "This flag indicates that the `RegulatedGoods` container is sufficient for a regulated (HAZMAT) product.",
            "example": true
          },
          "regulation_units": {
            "type": "number",
            "description": "These units are arbitrary and should be relative to the Regulation's Pickup Weight Limit. E.g. it could be in pounds, kilowatt/hours, etc.",
            "format": "float",
            "example": 5
          }
        }
      },
      "Inventory_API_v1_boolean": {
        "type": "boolean",
        "enum": [
          true,
          false
        ],
        "example": true
      },
      "Inventory_API_v1_Packaging": {
        "title": "Packaging",
        "type": "object",
        "description": "Product Packaging information",
        "properties": {
          "require_packaging": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Inventory_API_v1_boolean"
              },
              {
                "description": "If Yes, packaging will require a Box with \"Satisfies Overbox: Yes\"."
              }
            ]
          },
          "require_weight_check": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Inventory_API_v1_boolean"
              },
              {
                "description": "If Yes, the associated product will require the use of a scale to verify that the package's weight falls within the expected amount. If this is set to No, this step will be skipped by the packer."
              }
            ]
          },
          "require_confirmation_per_item": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Inventory_API_v1_boolean"
              },
              {
                "description": "If Yes, Packaging Products with \"One Scan Per: Item\" will require a scan for each item packed rather than just one for the first item in a package."
              }
            ]
          },
          "unit_quantity": {
            "type": "integer",
            "example": 1,
            "nullable": true,
            "description": "Number of individually packaged items contained therein for purposes of special packaging features."
          },
          "bulk_quantity": {
            "type": "integer",
            "nullable": true,
            "example": 10,
            "description": "Prefer to split into packages when necessary using multiples of this amount."
          },
          "max_per_package": {
            "type": "integer",
            "nullable": true,
            "example": 15,
            "description": "The maximum quantity of this product to ever include in the same package. \nMultiply by \"Unit Quantity\" to achieve common units between other products with the same \"Ship Separate Tag\" value."
          },
          "is_ship_separately": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Inventory_API_v1_boolean"
              },
              {
                "description": "This item cannot ship in the same package as other items (unless they have the same \"Ship Separate Tag\")."
              }
            ]
          },
          "ship_separately_tag": {
            "type": "string",
            "nullable": true,
            "description": "Applies only if \"Ship Separate\" is \"Yes\". Assign the same tag to treat similar products as interchangeable \nwith respect to the \"Ship Separate\" and \"Max Per Package\" attribute.",
            "example": "PVC"
          },
          "can_tip": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Inventory_API_v1_boolean"
              },
              {
                "description": "If Yes, the item is allowed to be rotated vertically when packed."
              }
            ]
          },
          "can_contain_other_items": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Inventory_API_v1_boolean"
              },
              {
                "description": "If Yes then other smaller items are allowed to be placed within this larger item. This is useful when the item is hollow or is a bin/bucket."
              }
            ]
          },
          "is_handling_surcharge": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Inventory_API_v1_boolean"
              },
              {
                "description": "The Packaging Surcharge is applicable when shipped without an Overbox."
              }
            ]
          }
        }
      },
      "Inventory_API_v1_custom_fields": {
        "type": "array",
        "description": "Custom field values as an array of code/value pairs.",
        "items": {
          "type": "object",
          "properties": {
            "code": {
              "type": "string",
              "description": "The custom field code/identifier."
            },
            "value": {
              "description": "The field value (type depends on field configuration)."
            },
            "label": {
              "type": "string",
              "description": "For select fields, the display label of the selected option."
            },
            "options": {
              "type": "object",
              "description": "For multiselect fields, a map of option IDs to labels.",
              "additionalProperties": {
                "type": "string"
              }
            }
          },
          "required": [
            "code"
          ]
        },
        "example": [
          {
            "code": "color",
            "value": 13,
            "label": "Red and Black"
          },
          {
            "code": "cost_of_goods",
            "value": 41.32
          },
          {
            "code": "allow_mailer",
            "value": true
          }
        ]
      },
      "Inventory_API_v1_Product": {
        "title": "Product",
        "description": "A Product contains information about a sellable item.",
        "allOf": [
          {
            "type": "object",
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "Product"
                ],
                "description": "This property describes the type of object in the response body."
              },
              "id": {
                "type": "integer",
                "description": "The internal, read-only, `id` property used as a path parameter in a resource lookup.",
                "readOnly": true
              },
              "vendor_sku": {
                "type": "string",
                "description": "For informational use only. Displayed during delivery processing to help match products.\\\n  `Optional Field`",
                "nullable": true,
                "example": "Vendor-SKU-1AD2"
              },
              "manufacturer_part_number": {
                "type": "string",
                "description": "The manufacturer's part number for the item. May be required for customs on shipments to EU countries.\\\n  `Optional Field`",
                "nullable": true,
                "example": "MPN-1AD2"
              },
              "external_id": {
                "type": "string",
                "nullable": true,
                "example": "11-993-9048",
                "description": "May be used for external product sync."
              },
              "barcodes": {
                "anyOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "nullable": true,
                    "example": [
                      "956623520-4",
                      "O-VS-Oregano-p3"
                    ]
                  },
                  {
                    "type": "string",
                    "nullable": true,
                    "example": "956623520-4"
                  }
                ],
                "description": "A comma separated list of unique packaging feature barcodes."
              },
              "goods_type": {
                "type": "string",
                "nullable": true,
                "enum": [
                  "NORMAL",
                  "ORM_D",
                  "LIMITED_QUANTITIES_COMMODITIES",
                  "HAZMAT",
                  null
                ],
                "description": "This defines the regulations, if any, assigned to a `Product`.\n- `NORMAL` Not Regulated\n- `ORM_D`  ORM-D\n- `LIMITED_QUANTITIES_COMMODITIES`  Limited Quantities: Consumer Commodity\n- `HAZMAT` Regulated"
              },
              "is_available": {
                "type": "boolean",
                "enum": [
                  true,
                  false
                ],
                "default": true,
                "description": "This flag must be `true` to allow the `Product` to be ordered."
              },
              "is_visible": {
                "type": "boolean",
                "enum": [
                  true,
                  false
                ],
                "default": true,
                "description": "This flag must be `true` to show the `Product` in the inventory feed."
              },
              "lot_type": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Inventory_API_v1_LotTypeRef"
                  }
                ],
                "nullable": true,
                "description": "This `LotType` determines how a `Product` should be \"burned\" and whether lots with dissimilar data\ncan be \"mixed\".\\\n  `Optional Field`"
              },
              "weight": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Inventory_API_v1_Weight"
                  },
                  {
                    "description": "This object defines the weight of the `Product` in imperial or metric units.\\\n  `Optional Field`"
                  }
                ]
              },
              "dimensions": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Inventory_API_v1_Dimensions"
                  },
                  {
                    "description": "This object defines the length, width, and height of the `Product` in imperial or metric units.\\\n  `Optional Field`"
                  }
                ]
              },
              "volume": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Inventory_API_v1_Volume"
                  },
                  {
                    "description": "This object defines the cubic size of the `Product` in imperial or metric units.\\\n  `Optional Field`"
                  }
                ]
              },
              "inventory": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Inventory_API_v1_Inventory"
                  },
                  {
                    "description": "This object describes how the `Product` Stock is defined, such as real config values, or Virtual Inventory, and how to handle Backorders.\\\n  `Optional Field`"
                  }
                ]
              },
              "export": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Inventory_API_v1_Export"
                  },
                  {
                    "description": "This object contains fields for describing and codifying an internationally exportable `Product`.\\\n  `Optional Field`"
                  }
                ]
              },
              "regulated_goods": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Inventory_API_v1_RegulatedGoods"
                  },
                  {
                    "description": "This object only applies a `Product` using the \"Regulated\" Goods Type, and describes the `Regulation` and container specifications for the `Product`.\\\n  `Optional Field`"
                  }
                ]
              },
              "packaging": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Inventory_API_v1_Packaging"
                  },
                  {
                    "description": "This object defines how the shipping container/box for the `Product` is to be processed and whether there are any special instructions during packing.\\\n  `Optional Field`"
                  }
                ]
              },
              "custom_fields": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Inventory_API_v1_custom_fields"
                  },
                  {
                    "description": "This will set any Product Attributes, pre-defined by the user, for the `Product`.\\\n  `Optional Field`"
                  }
                ]
              }
            }
          },
          {
            "$ref": "#/components/schemas/Inventory_API_v1_AbstractProduct"
          }
        ]
      },
      "Inventory_API_v1_CompositeStockableProduct": {
        "anyOf": [
          {
            "$ref": "#/components/schemas/Inventory_API_v1_Product"
          },
          {
            "$ref": "#/components/schemas/Inventory_API_v1_PackagingContainer"
          },
          {
            "$ref": "#/components/schemas/Inventory_API_v1_PackagingSupplies"
          },
          {
            "$ref": "#/components/schemas/Inventory_API_v1_PackagingInfill"
          }
        ],
        "discriminator": {
          "propertyName": "type"
        }
      },
      "Inventory_API_v1_RackTypeRef": {
        "title": "RackTypeRef",
        "type": "object",
        "description": "A `RackType` classifies racks by their physical characteristics (e.g. \"Wide Aisle\", \"Narrow Aisle\").",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "RackType"
            ],
            "description": "This property describes the type of object in the response body."
          },
          "id": {
            "type": "integer",
            "description": "The internal `id` property used as a path parameter in a resource lookup."
          }
        },
        "required": [
          "type",
          "id"
        ],
        "nullable": true,
        "additionalProperties": false
      },
      "Inventory_API_v1_Rack": {
        "title": "Rack",
        "type": "object",
        "description": "A `Rack` is a grouping of locations in a warehouse implying a very close proximity.",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "Rack"
            ],
            "readOnly": true,
            "description": "This property describes the type of object in the response body."
          },
          "id": {
            "type": "integer",
            "description": "The internal `id` property used as a path parameter in a resource lookup.",
            "example": 54
          },
          "rack_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Inventory_API_v1_RackTypeRef"
              },
              {
                "description": "A reference to the `RackType` that classifies this rack."
              }
            ]
          }
        },
        "nullable": true
      },
      "Inventory_API_v1_RackType": {
        "title": "RackType",
        "type": "object",
        "description": "A `RackType` classifies racks by their physical characteristics (e.g. \"Wide Aisle\", \"Narrow Aisle\").",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "RackType"
            ],
            "readOnly": true,
            "description": "This property describes the type of object in the response body."
          },
          "id": {
            "type": "integer",
            "description": "The internal `id` property used as a path parameter in a resource lookup.",
            "example": 1
          },
          "name": {
            "type": "string",
            "description": "The name of the rack type.",
            "example": "Wide Aisle"
          },
          "notes": {
            "type": "string",
            "nullable": true,
            "description": "Optional notes about this rack type."
          }
        },
        "nullable": true
      },
      "Inventory_API_v1_locations": {
        "type": "object",
        "description": "Lists of referenced objects included by specifying optional fields.\nSee the [selecting fields](/global-api/selecting-fields) page for more information.",
        "properties": {
          "SlotType": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Inventory_API_v1_SlotType"
            }
          },
          "Lot": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Inventory_API_v1_Lot"
            }
          },
          "LotType": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Inventory_API_v1_LotType"
            }
          },
          "Merchant": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Inventory_API_v1_Merchant"
            }
          },
          "PackagingContainer": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Inventory_API_v1_PackagingContainer"
            }
          },
          "PackagingDataCollection": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Inventory_API_v1_PackagingDataCollection"
            }
          },
          "PackagingInfill": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Inventory_API_v1_PackagingInfill"
            }
          },
          "PackagingInstruction": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Inventory_API_v1_PackagingInstruction"
            }
          },
          "PackagingSupplies": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Inventory_API_v1_PackagingSupplies"
            }
          },
          "Product": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Inventory_API_v1_CompositeStockableProduct"
            }
          },
          "Rack": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Inventory_API_v1_Rack"
            }
          },
          "RackType": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Inventory_API_v1_RackType"
            }
          },
          "Warehouse": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Inventory_API_v1_Warehouse"
            }
          }
        }
      },
      "Inventory_API_v1_LocationCreateUpdateRef": {
        "title": "LocationCreateUpdateRef",
        "type": "object",
        "description": "A reference to a `Location` create or update request body data.",
        "properties": {
          "label": {
            "type": "string",
            "example": "RK07-R2-S1-L1",
            "maxLength": 45,
            "description": "A unique string to identify Inventory Location Label assigned to a specific Warehouse."
          },
          "rack": {
            "type": "object",
            "properties": {
              "type": {
                "type": "string",
                "description": "The type of resource being created or updated. In this case it will be \"Rack\".",
                "enum": [
                  "Rack"
                ]
              },
              "id": {
                "type": "integer",
                "example": 3,
                "description": "The `id` of the `Rack` to which this `Location` will be associated. If not specified the `Rack` will be assigned automatically."
              }
            }
          },
          "slot_type": {
            "type": "object",
            "properties": {
              "type": {
                "type": "string",
                "description": "The type of resource being created. In this case it will be \"SlotType\".",
                "enum": [
                  "SlotType"
                ]
              },
              "id": {
                "type": "integer",
                "example": 3,
                "description": "The `id` of the Slot Type to which this location will be associated. If not specified the slot type will be assigned automatically."
              }
            }
          },
          "priority": {
            "type": "integer",
            "example": 2,
            "description": "The inventory reservation order relative to other locations containing the same product."
          },
          "tags": {
            "type": "array",
            "description": "The `LocationTag` references to assign to this location. A submitted array replaces the\nlocation's whole tag set (an empty array clears it) and an omitted key leaves it untouched.",
            "items": {
              "$ref": "#/components/schemas/Inventory_API_v1_LocationTagRef"
            }
          }
        }
      },
      "Inventory_API_v1_replenishment-policy-fields-enum": {
        "title": "ReplenishmentPolicy",
        "description": "Specify additional fields of the `ReplenishmentPolicy` object to be included in the response.",
        "type": "array",
        "items": {
          "type": "string",
          "enum": [
            "basic",
            "all",
            "name",
            "is_active",
            "sort_order",
            "merchant_ids",
            "merchants",
            "product_profile_ids",
            "product_profiles",
            "product_profile_match_mode",
            "handling_class_ids",
            "handling_classes",
            "subject_readable",
            "location_profile",
            "demand_period_days",
            "trigger_doi_days",
            "target_doi_days",
            "qualification_reason",
            "flagged_sku_count",
            "skipped_sku_count",
            "slotting_forbidden_count",
            "results_refresh_pending",
            "created_at",
            "updated_at"
          ]
        }
      },
      "Inventory_API_v1_merchant-relationship-fields-enum": {
        "title": "SlottingRuleMerchantSelection",
        "description": "Specify direct fields of an included `Merchant` object.",
        "type": "array",
        "items": {
          "type": "string",
          "enum": [
            "code",
            "name",
            "status",
            "created_at",
            "updated_at"
          ]
        }
      },
      "Inventory_API_v1_product-profile-relationship-fields-enum": {
        "title": "ProductProfile",
        "description": "Specify fields of an included `ProductProfile` object.",
        "type": "array",
        "items": {
          "type": "string",
          "enum": [
            "basic",
            "all",
            "name",
            "code",
            "conditions",
            "conditions_readable",
            "matched_count",
            "classification",
            "created_at",
            "updated_at"
          ]
        }
      },
      "Inventory_API_v1_handling-class-relationship-fields-enum": {
        "title": "SlottingRuleHandlingClassSelection",
        "description": "Specify direct fields of an included `HandlingClass` object.",
        "type": "array",
        "items": {
          "type": "string",
          "enum": [
            "name",
            "code",
            "sort_order",
            "conditions",
            "conditions_readable",
            "matched_count",
            "classification",
            "created_at",
            "updated_at"
          ]
        }
      },
      "Inventory_API_v1_location-profile-policy-relationship-fields-enum": {
        "title": "ReplenishmentPolicyLocationProfileSelection",
        "description": "Specify direct fields of the included `LocationProfile` object.",
        "type": "array",
        "items": {
          "type": "string",
          "enum": [
            "name",
            "description",
            "status",
            "member_count",
            "match",
            "match_readable",
            "active_revision",
            "pending_revision",
            "used_by",
            "created_at",
            "updated_at"
          ]
        }
      },
      "Inventory_API_v1_ProductProfileRef": {
        "title": "ProductProfileRef",
        "type": "object",
        "description": "A reference to a `ProductProfile` by `id`.",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "ProductProfile"
            ]
          },
          "id": {
            "type": "integer",
            "format": "int32",
            "minimum": 1,
            "description": "Product Profile ID."
          }
        },
        "required": [
          "type",
          "id"
        ],
        "additionalProperties": false
      },
      "Inventory_API_v1_HandlingClassRef": {
        "title": "HandlingClassRef",
        "type": "object",
        "description": "A reference to a Handling Class by ID.",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "HandlingClass"
            ]
          },
          "id": {
            "type": "integer",
            "format": "int32",
            "minimum": 1,
            "description": "Handling Class ID."
          }
        },
        "required": [
          "type",
          "id"
        ],
        "additionalProperties": false
      },
      "Inventory_API_v1_LocationProfileRef": {
        "title": "LocationProfileRef",
        "type": "object",
        "description": "A reference to a Location Profile by ID.",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "LocationProfile"
            ]
          },
          "id": {
            "type": "integer",
            "format": "int32",
            "minimum": 1,
            "description": "Location Profile ID."
          }
        },
        "required": [
          "type",
          "id"
        ],
        "nullable": true,
        "additionalProperties": false
      },
      "Inventory_API_v1_ReplenishmentPolicy": {
        "title": "ReplenishmentPolicy",
        "type": "object",
        "description": "A Replenishment Policy configuration for one warehouse. The Policy selects\nProducts by Merchant, Product Profile, and Handling Class, then applies Trigger\nand Target days-of-inventory thresholds to one Location Profile.",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "ReplenishmentPolicy"
            ],
            "readOnly": true,
            "description": "This is a read-only property that describes the type of object in the response body."
          },
          "id": {
            "type": "integer",
            "example": 7,
            "readOnly": true,
            "description": "The internal `id` property used to identify the Replenishment Policy."
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "example": "Fast Movers - Forward Pick",
            "description": "The user-visible Policy name, unique within the warehouse."
          },
          "is_active": {
            "type": "boolean",
            "description": "Whether this Policy participates in Product evaluation."
          },
          "sort_order": {
            "type": "integer",
            "minimum": 0,
            "maximum": 65535,
            "example": 10,
            "description": "Policy precedence; lower values are evaluated first, with `id` as the\ntie-break. The first qualified Policy wins for a given Product."
          },
          "merchant_ids": {
            "type": "array",
            "nullable": true,
            "items": {
              "type": "integer",
              "minimum": 1
            },
            "example": [
              2,
              7
            ],
            "description": "Merchant IDs selected by the Policy; `null` means every Merchant."
          },
          "merchants": {
            "type": "array",
            "nullable": true,
            "readOnly": true,
            "description": "Direct references to the selected Merchants. Request this optional relationship when an editor needs names. `null` means the Policy applies to every Merchant.\\\n  `Optional Field`",
            "items": {
              "$ref": "#/components/schemas/Inventory_API_v1_MerchantRef"
            }
          },
          "product_profile_ids": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 1
            },
            "example": [
              12,
              15
            ],
            "description": "Product Profile IDs selected by the Policy; an empty list means Product Profiles do not restrict the subject."
          },
          "product_profiles": {
            "type": "array",
            "readOnly": true,
            "description": "Direct references to selected Product Profiles for editor display.\\\n  `Optional Field`",
            "items": {
              "$ref": "#/components/schemas/Inventory_API_v1_ProductProfileRef"
            }
          },
          "product_profile_match_mode": {
            "type": "string",
            "enum": [
              "any",
              "all",
              "none"
            ],
            "description": "How the selected Product Profiles are matched against a Product."
          },
          "handling_class_ids": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 1
            },
            "example": [
              4
            ],
            "description": "Handling Class IDs selected by the Policy; an empty list means Handling Classes do not restrict the subject."
          },
          "handling_classes": {
            "type": "array",
            "readOnly": true,
            "description": "Direct references to selected Handling Classes for editor display.\\\n  `Optional Field`",
            "items": {
              "$ref": "#/components/schemas/Inventory_API_v1_HandlingClassRef"
            }
          },
          "subject_readable": {
            "type": "string",
            "example": "Merchants: Acme Supply; Product Profiles (Any of): Fast Movers; Handling Classes: Hazmat",
            "readOnly": true,
            "description": "A rendered summary of the Merchant, Product Profile, and Handling Class selectors, resolved to names rather than identifiers.\\\n  `Optional Field`"
          },
          "location_profile": {
            "description": "The Location Profile whose resolved membership supplies the target group.",
            "allOf": [
              {
                "$ref": "#/components/schemas/Inventory_API_v1_LocationProfileRef"
              }
            ]
          },
          "demand_period_days": {
            "type": "integer",
            "minimum": 1,
            "maximum": 65535,
            "example": 30,
            "description": "The Product Velocity window used to derive daily demand."
          },
          "trigger_doi_days": {
            "type": "number",
            "minimum": 0,
            "maximum": 999999.9999,
            "example": 7,
            "description": "The coverage threshold below which an assigned Product is flagged for Replenishment."
          },
          "target_doi_days": {
            "type": "number",
            "minimum": 0,
            "maximum": 999999.9999,
            "example": 14,
            "description": "The target coverage used to calculate the required replenishment quantity."
          },
          "qualification_reason": {
            "type": "string",
            "nullable": true,
            "enum": [
              "inactive",
              "profile_building",
              "profile_failed",
              "profile_not_ready",
              "profile_empty",
              "demand_period_unconfigured",
              null
            ],
            "example": "profile_empty",
            "description": "Why this Policy currently falls through during evaluation, or `null` when it is qualified."
          },
          "flagged_sku_count": {
            "type": "integer",
            "nullable": true,
            "example": 42,
            "readOnly": true,
            "description": "How many Products this Policy flagged for Replenishment in the published generation. `null` means the warehouse has not published a Replenishment generation yet, so no count has been calculated.\\\n  `Optional Field`"
          },
          "skipped_sku_count": {
            "type": "integer",
            "nullable": true,
            "example": 3,
            "readOnly": true,
            "description": "How many Products the published generation skipped for this Policy. `null` means the warehouse has not published a Replenishment generation yet.\\\n  `Optional Field`"
          },
          "slotting_forbidden_count": {
            "type": "integer",
            "nullable": true,
            "example": 1,
            "readOnly": true,
            "description": "How many Products the published generation could not replenish because Slotting forbids the target group. `null` means the warehouse has not published a Replenishment generation yet.\\\n  `Optional Field`"
          },
          "results_refresh_pending": {
            "type": "boolean",
            "readOnly": true,
            "description": "Whether the published counts are already superseded by a requested generation that has not finished building.\\\n  `Optional Field`"
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "description": "The time the Policy was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "description": "The time the Policy was last updated."
          }
        },
        "required": [
          "type",
          "id"
        ],
        "additionalProperties": false,
        "example": {
          "type": "ReplenishmentPolicy",
          "id": 7,
          "name": "Fast Movers - Forward Pick",
          "is_active": true,
          "sort_order": 10,
          "merchant_ids": [
            2,
            7
          ],
          "product_profile_ids": [
            12,
            15
          ],
          "product_profile_match_mode": "any",
          "handling_class_ids": [
            4
          ],
          "location_profile": {
            "type": "LocationProfile",
            "id": 3
          },
          "demand_period_days": 30,
          "trigger_doi_days": 7,
          "target_doi_days": 21,
          "qualification_reason": null,
          "created_at": "2026-08-01T09:30:00Z",
          "updated_at": "2026-08-12T10:15:00Z"
        }
      },
      "Inventory_API_v1_LocationProfileMatchClause": {
        "title": "LocationProfileMatchClause",
        "type": "object",
        "description": "One clause of a Location Profile definition. Clauses are ANDed and evaluated in the order\nthey appear, so a location joins the profile only when every clause matches it.\n\nA clause carries its operands in exactly one channel: `values` for the typed operators and\n`cel` for `script`. Only the channel in use is present — the other is omitted rather than\nreturned as `null`.",
        "properties": {
          "field": {
            "type": "string",
            "enum": [
              "zone",
              "rack",
              "rack_type",
              "location_label",
              "slot_type",
              "location_tag",
              "script"
            ],
            "example": "location_label",
            "description": "The location property the clause tests:\n  - `zone`, `rack`, `rack_type`, `slot_type`, `location_tag` — entity references.\n  - `location_label` — the location's label text.\n  - `script` — a CEL expression evaluated against the location, for cases the typed\n    fields cannot express."
          },
          "operator": {
            "type": "string",
            "enum": [
              "is_one_of",
              "is_not_one_of",
              "starts_with",
              "not_starts_with",
              "contains",
              "not_contains",
              "ends_with",
              "not_ends_with",
              "matches",
              "not_matches",
              "returns_true"
            ],
            "example": "starts_with",
            "description": "The comparison applied to the field. Which operators are available depends on the field:\n  - entity fields (`zone`, `rack`, `rack_type`, `slot_type`, `location_tag`) take\n    `is_one_of` and `is_not_one_of`.\n  - `location_label` takes `starts_with`, `contains`, `ends_with`, `matches` and their\n    `not_` counterparts. `matches` takes a regular expression.\n  - `script` takes `returns_true`."
          },
          "values": {
            "type": "array",
            "description": "The operands. Absent on a `script` clause, which carries `cel` instead. Entity fields whose target is exposed as\nits own Global API resource carry `{type, id}` references; `zone` carries bare integer\nids because zones have no resource of their own. `location_label` carries a single\nstring needle.",
            "items": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/Inventory_API_v1_RackRef"
                },
                {
                  "$ref": "#/components/schemas/Inventory_API_v1_RackTypeRef"
                },
                {
                  "$ref": "#/components/schemas/Inventory_API_v1_SlotTypeRef"
                },
                {
                  "$ref": "#/components/schemas/Inventory_API_v1_LocationTagRef"
                },
                {
                  "type": "integer",
                  "description": "A warehouse zone `id`."
                },
                {
                  "type": "string",
                  "description": "A `location_label` needle, or a regular expression for the `matches` operators."
                }
              ]
            }
          },
          "cel": {
            "type": "string",
            "example": "is_pickable",
            "description": "The CEL expression evaluated for a `script` clause. Absent on every other clause, which\ncarries `values` instead. The expression returns a boolean."
          }
        },
        "required": [
          "field",
          "operator"
        ],
        "additionalProperties": false
      },
      "Inventory_API_v1_LocationProfileActiveRevision": {
        "title": "LocationProfileActiveRevision",
        "type": "object",
        "description": "The published Location Profile revision whose materialized membership is serving consumers.\nA published revision is always `ready`; it keeps serving until a replacement finishes\nbuilding and atomically takes over.",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32",
            "example": 1184,
            "description": "The internal `id` of the published revision."
          },
          "status": {
            "type": "string",
            "enum": [
              "ready"
            ],
            "description": "Always `ready` — an unpublished revision is never the active one."
          },
          "member_count": {
            "type": "integer",
            "format": "int32",
            "example": 486,
            "description": "The number of locations this revision resolved to. Zero is a genuine empty set."
          },
          "ready_at": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "example": "2026-08-02T06:41:22Z",
            "description": "The UTC date and time this revision finished materializing and was published."
          }
        },
        "required": [
          "id",
          "status",
          "member_count",
          "ready_at"
        ],
        "additionalProperties": false
      },
      "Inventory_API_v1_LocationProfilePendingRevision": {
        "title": "LocationProfilePendingRevision",
        "type": "object",
        "description": "The Location Profile revision being materialized, or whose latest attempt failed. It is not\nserving anyone yet: while it builds, the profile keeps answering with its published revision\nif it has one. A `failed` pending revision is retried by a rebuild.",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32",
            "example": 1185,
            "description": "The internal `id` of the pending revision."
          },
          "status": {
            "type": "string",
            "enum": [
              "building",
              "failed"
            ],
            "description": "`building` while membership is being materialized, `failed` when the latest attempt\nstopped with an error. See `last_error` for the diagnostic."
          },
          "started_at": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "example": "2026-08-02T06:41:19Z",
            "description": "The UTC date and time the latest materialization attempt started."
          },
          "failed_at": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "example": "2026-08-02T06:41:21Z",
            "description": "The UTC date and time the revision was marked failed, or `null` when it has not failed."
          },
          "last_error": {
            "type": "string",
            "nullable": true,
            "example": "A location rule in this Profile could not be evaluated. Review the Profile rules.",
            "description": "The diagnostic from the latest failed attempt, or `null` when it has not failed."
          }
        },
        "required": [
          "id",
          "status",
          "started_at",
          "failed_at",
          "last_error"
        ],
        "additionalProperties": false
      },
      "Inventory_API_v1_LocationProfileUsedBy": {
        "title": "LocationProfileUsedBy",
        "type": "object",
        "description": "Live counts of the authoring objects referencing this Location Profile. A profile with any\nreference cannot be deleted. These fields do not include published Replenishment result rows,\nwhich may temporarily continue to reference the profile until the Warehouse index is rebuilt.",
        "properties": {
          "slotting_rules": {
            "type": "integer",
            "format": "int32",
            "example": 3,
            "description": "The number of Slotting Rules currently referencing this profile."
          },
          "replenishment_policies": {
            "type": "integer",
            "format": "int32",
            "example": 1,
            "description": "The number of Replenishment Policies currently referencing this profile."
          }
        },
        "required": [
          "slotting_rules",
          "replenishment_policies"
        ],
        "additionalProperties": false
      },
      "Inventory_API_v1_LocationProfile": {
        "title": "LocationProfile",
        "type": "object",
        "description": "A `LocationProfile` is a warehouse-scoped, named set of locations defined by match clauses\nrather than by enumeration. Slotting Rules and Replenishment Policies target a profile\ninstead of listing locations, so the same policy keeps working as the warehouse grows.\n\nMembership is materialized asynchronously. Saving a definition creates an immutable revision\nand starts a build; the previously published revision keeps serving consumers until the\nreplacement is ready. A profile without a ready active revision has no resolved member set\nand is never represented as an empty one — `member_count` is `null` rather than `0`.",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "LocationProfile"
            ],
            "readOnly": true,
            "description": "This is a read-only property that describes the type of object in the response body."
          },
          "id": {
            "type": "integer",
            "format": "int32",
            "example": 42,
            "readOnly": true,
            "description": "The internal `id` property used as a path parameter in a resource lookup."
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "example": "Rack Pick Face",
            "description": "The user-visible profile name, unique within the warehouse."
          },
          "description": {
            "type": "string",
            "nullable": true,
            "example": "Pickable shelf locations on rack aisles, excluding ground-level overflow.",
            "description": "An optional explanation of the locations represented by this profile."
          },
          "status": {
            "type": "string",
            "enum": [
              "ready",
              "building",
              "failed",
              "none"
            ],
            "description": "The availability of the revision currently published for this profile:\n  - `ready` — a published revision is serving consumers, and stays serving while any\n    replacement builds. Check `pending_revision` to see a rebuild in flight.\n  - `building` — no revision has been published yet and the first one is materializing.\n  - `failed` — no revision has been published and the latest attempt failed.\n  - `none` — no published or actionable pending revision is available.\n\nA Slotting Rule may reference only a `ready` profile. A Replenishment Policy may\nreference a profile before it is ready, but remains disqualified until a revision\npublishes. For a new profile, poll until `status` is `ready`. For an update or rebuild,\ninspect `pending_revision`: successful publication is complete when it becomes `null`,\nwhile a failed replacement remains present with a `failed` status."
          },
          "member_count": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "example": 486,
            "description": "The resolved member location count of the published revision. A ready profile with zero\nmembers is a genuine empty set; `null` means the profile has no published revision and\ntherefore no resolved member set at all."
          },
          "match": {
            "type": "array",
            "nullable": true,
            "description": "The ordered clauses defining membership, all of which must match. This is the latest\n*intended* definition: the pending revision's clauses while a rebuild is in flight,\notherwise the published revision's.\n\nAn empty array is the saved all-locations definition, which matches every non-temporary\nlocation in the warehouse. `null` means no definition has ever been saved, which only a\nlegacy profile head can be.",
            "items": {
              "$ref": "#/components/schemas/Inventory_API_v1_LocationProfileMatchClause"
            },
            "example": [
              {
                "field": "location_label",
                "operator": "starts_with",
                "values": [
                  "RK"
                ]
              },
              {
                "field": "slot_type",
                "operator": "is_one_of",
                "values": [
                  {
                    "type": "SlotType",
                    "id": 4
                  }
                ]
              },
              {
                "field": "location_tag",
                "operator": "is_not_one_of",
                "values": [
                  {
                    "type": "LocationTag",
                    "id": 1
                  }
                ]
              },
              {
                "field": "script",
                "operator": "returns_true",
                "cel": "is_pickable"
              }
            ]
          },
          "match_readable": {
            "type": "string",
            "nullable": true,
            "example": "startsWith(label.toLower(), 'rk') && (present(slot_type_id) && (slot_type_id in [4])) && !(1 in tag_ids) && (is_pickable)",
            "description": "The same definition compiled to a single CEL expression, for display and for comparing\ntwo profiles at a glance. This is the read-only counterpart of a `ProductProfile`'s\n`conditions_readable`.\n\n`true` is the all-locations definition. `null` whenever `match` is `null`."
          },
          "location_tags": {
            "type": "array",
            "readOnly": true,
            "description": "Unique Location Tags referenced by the ordered match definition, in first-appearance order. Request this field when an editor needs to resolve the shallow Tag references.",
            "items": {
              "$ref": "#/components/schemas/Inventory_API_v1_LocationTagRef"
            }
          },
          "slot_types": {
            "type": "array",
            "readOnly": true,
            "description": "Unique Slot Types referenced by the ordered match definition, in first-appearance order. Request this field when an editor needs to resolve the shallow Slot Type references.",
            "items": {
              "$ref": "#/components/schemas/Inventory_API_v1_SlotTypeRef"
            }
          },
          "active_revision": {
            "type": "object",
            "nullable": true,
            "description": "The published revision currently serving consumers, or `null` when none has published yet.",
            "allOf": [
              {
                "$ref": "#/components/schemas/Inventory_API_v1_LocationProfileActiveRevision"
              }
            ]
          },
          "pending_revision": {
            "type": "object",
            "nullable": true,
            "description": "The replacement revision being materialized, or whose latest attempt failed. `null` once\na revision publishes and no rebuild is in flight.",
            "allOf": [
              {
                "$ref": "#/components/schemas/Inventory_API_v1_LocationProfilePendingRevision"
              }
            ]
          },
          "used_by": {
            "$ref": "#/components/schemas/Inventory_API_v1_LocationProfileUsedBy"
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "example": "2026-07-14T09:12:05Z",
            "description": "The UTC date and time the profile was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "example": "2026-08-02T06:41:18Z",
            "description": "The UTC date and time the profile metadata or revision pointers last changed."
          }
        },
        "required": [
          "type",
          "id"
        ],
        "additionalProperties": false,
        "example": {
          "type": "LocationProfile",
          "id": 26,
          "name": "Cold Storage Pick Faces",
          "description": "Pickable shelf locations approved for refrigerated inventory.",
          "status": "ready",
          "member_count": 486,
          "match": [
            {
              "field": "slot_type",
              "operator": "is_one_of",
              "values": [
                {
                  "type": "SlotType",
                  "id": 5
                }
              ]
            },
            {
              "field": "location_tag",
              "operator": "is_one_of",
              "values": [
                {
                  "type": "LocationTag",
                  "id": 12
                }
              ]
            }
          ],
          "match_readable": "(present(slot_type_id) && (slot_type_id in [5])) && (12 in tag_ids)",
          "active_revision": {
            "id": 1184,
            "status": "ready",
            "member_count": 486,
            "ready_at": "2026-08-12T06:41:22Z"
          },
          "used_by": {
            "slotting_rules": 3,
            "replenishment_policies": 1
          },
          "created_at": "2026-07-14T09:12:05Z",
          "updated_at": "2026-08-12T06:41:18Z"
        }
      },
      "Inventory_API_v1_Variable": {
        "type": "object",
        "properties": {
          "var": {
            "type": "string",
            "minLength": 1,
            "description": "Product condition field code.",
            "example": "weight"
          }
        },
        "required": [
          "var"
        ],
        "additionalProperties": false
      },
      "Inventory_API_v1_MeasurementValue": {
        "type": "object",
        "description": "Measurement input. Clients provide `value` and `unit`; canonical responses also contain the\nnormalized `base_value` used by the evaluator.",
        "properties": {
          "value": {
            "type": "number",
            "description": "Measurement expressed in the submitted unit.",
            "example": 15
          },
          "unit": {
            "type": "string",
            "minLength": 1,
            "description": "Supported unit code for the condition field.",
            "example": "lb"
          },
          "base_value": {
            "type": "number",
            "readOnly": true,
            "description": "Server-normalized measurement in the field's base unit.",
            "example": 15
          }
        },
        "required": [
          "value",
          "unit"
        ],
        "additionalProperties": false
      },
      "Inventory_API_v1_ConditionValue": {
        "oneOf": [
          {
            "type": "string",
            "minLength": 1,
            "maxLength": 4096
          },
          {
            "type": "number"
          },
          {
            "type": "boolean"
          },
          {
            "type": "array",
            "minItems": 1,
            "items": {
              "oneOf": [
                {
                  "type": "integer"
                },
                {
                  "type": "string"
                }
              ]
            }
          },
          {
            "$ref": "#/components/schemas/Inventory_API_v1_MeasurementValue"
          }
        ]
      },
      "Inventory_API_v1_PredicateOperands": {
        "type": "array",
        "minItems": 2,
        "maxItems": 2,
        "items": {
          "oneOf": [
            {
              "$ref": "#/components/schemas/Inventory_API_v1_Variable"
            },
            {
              "$ref": "#/components/schemas/Inventory_API_v1_ConditionValue"
            }
          ]
        }
      },
      "Inventory_API_v1_ExpressionOperands": {
        "type": "array",
        "description": "The first item is a CEL expression object and the second item must be `true`.",
        "minItems": 2,
        "maxItems": 2,
        "items": {
          "oneOf": [
            {
              "type": "object",
              "properties": {
                "cel": {
                  "type": "string",
                  "minLength": 1,
                  "description": "Boolean CEL expression evaluated against Product facts. Selector fields that\nexist only for the consuming resource (such as the Handling Class Product\nProfile selector, `product_profiles`) are rejected here because the server\ntracks their references; they may only be used through their structured\noperators.",
                  "example": "present(weight) && weight <= 15.0"
                }
              },
              "required": [
                "cel"
              ],
              "additionalProperties": false
            },
            {
              "type": "boolean",
              "enum": [
                true
              ]
            }
          ]
        }
      },
      "Inventory_API_v1_ConditionRow": {
        "type": "object",
        "description": "One predicate or raw CEL expression. Predicate operands are ordered as\n`[{\"var\": \"field_code\"}, value]`; expression operands are ordered as\n`[{\"cel\": \"boolean expression\"}, true]`.",
        "minProperties": 1,
        "maxProperties": 1,
        "properties": {
          "<": {
            "$ref": "#/components/schemas/Inventory_API_v1_PredicateOperands"
          },
          "<=": {
            "$ref": "#/components/schemas/Inventory_API_v1_PredicateOperands"
          },
          "==": {
            "$ref": "#/components/schemas/Inventory_API_v1_PredicateOperands"
          },
          "!=": {
            "$ref": "#/components/schemas/Inventory_API_v1_PredicateOperands"
          },
          ">": {
            "$ref": "#/components/schemas/Inventory_API_v1_PredicateOperands"
          },
          ">=": {
            "$ref": "#/components/schemas/Inventory_API_v1_PredicateOperands"
          },
          "contains": {
            "$ref": "#/components/schemas/Inventory_API_v1_PredicateOperands"
          },
          "not_contains": {
            "$ref": "#/components/schemas/Inventory_API_v1_PredicateOperands"
          },
          "matches": {
            "$ref": "#/components/schemas/Inventory_API_v1_PredicateOperands"
          },
          "not_matches": {
            "$ref": "#/components/schemas/Inventory_API_v1_PredicateOperands"
          },
          "in": {
            "$ref": "#/components/schemas/Inventory_API_v1_PredicateOperands"
          },
          "not_in": {
            "$ref": "#/components/schemas/Inventory_API_v1_PredicateOperands"
          },
          "contains_any": {
            "$ref": "#/components/schemas/Inventory_API_v1_PredicateOperands"
          },
          "contains_none": {
            "$ref": "#/components/schemas/Inventory_API_v1_PredicateOperands"
          },
          "expr": {
            "$ref": "#/components/schemas/Inventory_API_v1_ExpressionOperands"
          }
        },
        "additionalProperties": false
      },
      "Inventory_API_v1_ConditionGroup": {
        "type": "object",
        "properties": {
          "and": {
            "type": "array",
            "minItems": 1,
            "maxItems": 64,
            "items": {
              "$ref": "#/components/schemas/Inventory_API_v1_ConditionRow"
            }
          }
        },
        "required": [
          "and"
        ],
        "additionalProperties": false
      },
      "Inventory_API_v1_ConditionTree": {
        "oneOf": [
          {
            "type": "object",
            "description": "Canonical condition tree returned by the API.",
            "properties": {
              "or": {
                "type": "array",
                "minItems": 1,
                "items": {
                  "$ref": "#/components/schemas/Inventory_API_v1_ConditionGroup"
                }
              }
            },
            "required": [
              "or"
            ],
            "additionalProperties": false
          },
          {
            "$ref": "#/components/schemas/Inventory_API_v1_ConditionGroup"
          }
        ],
        "description": "A one-level OR-of-AND condition tree. The server accepts the `{\"and\": [...]}` shorthand\nfor a single group and always returns the canonical `{\"or\": [{\"and\": [...]}]}` form.\n\nOpenAPI validates the structural envelope. ShipStream remains authoritative for available\nProduct fields, field/operator compatibility, option values, measurement units, raw CEL\nvalidity, normalization, the limit of 64 condition rows across all groups, and the\n65,535-byte compiled-expression limit. Editor clients can\nload the applicable Product field catalogue from\n`GET /api/global/v1/inventory/product-profiles/condition-fields` or\n`GET /api/global/v1/inventory/handling-classes/condition-fields`.",
        "example": {
          "or": [
            {
              "and": [
                {
                  "<=": [
                    {
                      "var": "weight"
                    },
                    {
                      "value": 15,
                      "unit": "lb"
                    }
                  ]
                }
              ]
            }
          ]
        }
      },
      "Inventory_API_v1_ProductProfile": {
        "title": "ProductProfile",
        "type": "object",
        "description": "A reusable Product classification whose conditions may match many Products. Classification is\nasynchronous: after a create or condition update, poll the resource until\n`classification.status` is `up_to_date`. This status confirms that the Profile's current\nconditions were classified. Product changes flow through a separate asynchronous changelog and\nmay not appear immediately in materialized membership.",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "ProductProfile"
            ],
            "readOnly": true
          },
          "id": {
            "type": "integer",
            "format": "int32",
            "minimum": 1,
            "readOnly": true,
            "description": "Product Profile ID."
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "description": "Human-readable Product Profile name.",
            "example": "Lightweight Parcel"
          },
          "code": {
            "type": "string",
            "maxLength": 64,
            "pattern": "^[A-Za-z0-9_]+$",
            "example": "lightweight_parcel",
            "description": "Stable unique code. It may be supplied on create and cannot be changed later."
          },
          "conditions": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Inventory_API_v1_ConditionTree"
              }
            ],
            "description": "Canonical Product matching conditions. Request with `fields=conditions` when editing.\\\n  `Optional Field`\\"
          },
          "conditions_readable": {
            "type": "string",
            "readOnly": true,
            "description": "Compiled CEL expression corresponding to the canonical conditions. Request with\n`fields=conditions_readable` for diagnostics or previews.\\\n  `Optional Field`\\"
          },
          "matched_count": {
            "type": "integer",
            "minimum": 0,
            "readOnly": true,
            "description": "Number of Products in the most recently completed materialized membership."
          },
          "classification": {
            "type": "object",
            "readOnly": true,
            "properties": {
              "status": {
                "type": "string",
                "description": "Current state of the asynchronous Product classification.",
                "enum": [
                  "up_to_date",
                  "processing",
                  "queued",
                  "failed",
                  "out_of_date",
                  "not_indexed"
                ]
              },
              "indexed_at": {
                "type": "string",
                "format": "date-time",
                "nullable": true,
                "description": "Completion time of the most recent successful classification, if any."
              }
            },
            "required": [
              "status",
              "indexed_at"
            ],
            "additionalProperties": false
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "readOnly": true,
            "description": "Time when the Product Profile was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "readOnly": true,
            "description": "Time when the Product Profile was last updated."
          }
        },
        "required": [
          "type",
          "id"
        ],
        "additionalProperties": false,
        "example": {
          "type": "ProductProfile",
          "id": 26,
          "name": "Lightweight Parcel",
          "code": "lightweight_parcel",
          "conditions": {
            "or": [
              {
                "and": [
                  {
                    "<=": [
                      {
                        "var": "weight"
                      },
                      {
                        "value": 15,
                        "unit": "lb",
                        "base_value": 15
                      }
                    ]
                  }
                ]
              }
            ]
          },
          "conditions_readable": "((present(weight) && weight <= 15.0))",
          "matched_count": 482,
          "classification": {
            "status": "up_to_date",
            "indexed_at": "2026-08-04T09:15:00Z"
          },
          "created_at": "2026-07-15T14:30:00Z",
          "updated_at": "2026-08-04T09:15:00Z"
        }
      },
      "Inventory_API_v1_HandlingClass": {
        "title": "HandlingClass",
        "type": "object",
        "description": "A Warehouse-scoped Product classification used by Slotting and Replenishment. Classification\nis asynchronous: after conditions or Warehouse assignments change, poll the resource until\n`classification.status` is `up_to_date`. Product changes flow through a separate asynchronous\nchangelog and may not appear immediately in materialized classification.",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "HandlingClass"
            ],
            "readOnly": true
          },
          "id": {
            "type": "integer",
            "format": "int32",
            "minimum": 1,
            "readOnly": true,
            "description": "Handling Class ID."
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "description": "Human-readable Handling Class name.",
            "example": "Heavy Bulky"
          },
          "code": {
            "type": "string",
            "maxLength": 64,
            "pattern": "^[A-Za-z0-9_]+$",
            "description": "Stable unique code.",
            "example": "heavy_bulky"
          },
          "sort_order": {
            "type": "integer",
            "minimum": 0,
            "maximum": 1000000,
            "description": "Evaluation precedence; lower values are evaluated first.",
            "example": 20
          },
          "warehouses": {
            "type": "array",
            "description": "Warehouses where the Handling Class is evaluated. Deleting a Warehouse detaches it immediately, so a class scoped only to a deleted Warehouse reads `warehouses: []` and stops classifying until it is assigned again; updates must always supply at least one Warehouse.",
            "items": {
              "$ref": "#/components/schemas/Inventory_API_v1_WarehouseRef"
            }
          },
          "conditions": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Inventory_API_v1_ConditionTree"
              }
            ],
            "description": "Canonical Product matching conditions. Request with `fields=conditions` when editing.\\\n  `Optional Field`\\"
          },
          "referenced_product_profiles": {
            "type": "array",
            "readOnly": true,
            "description": "Product Profiles referenced by the canonical conditions — the Profiles this rule depends on, not any Product's memberships.",
            "items": {
              "$ref": "#/components/schemas/Inventory_API_v1_ProductProfileRef"
            }
          },
          "conditions_readable": {
            "type": "string",
            "readOnly": true,
            "description": "Compiled CEL expression corresponding to the canonical conditions. Request with\n`fields=conditions_readable` for diagnostics or previews.\\\n  `Optional Field`\\"
          },
          "matched_count": {
            "type": "integer",
            "minimum": 0,
            "readOnly": true,
            "description": "Products in the most recently completed materialized classification."
          },
          "classification": {
            "type": "object",
            "readOnly": true,
            "properties": {
              "status": {
                "type": "string",
                "description": "Current state of asynchronous classification.",
                "enum": [
                  "up_to_date",
                  "processing",
                  "queued",
                  "failed",
                  "out_of_date",
                  "not_indexed"
                ]
              },
              "indexed_at": {
                "type": "string",
                "format": "date-time",
                "nullable": true,
                "description": "Completion time of the most recent successful classification, if any."
              }
            },
            "required": [
              "status",
              "indexed_at"
            ],
            "additionalProperties": false
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "readOnly": true,
            "description": "Time when the Handling Class was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "readOnly": true,
            "description": "Time when the Handling Class was last updated."
          }
        },
        "required": [
          "type",
          "id"
        ],
        "additionalProperties": false,
        "example": {
          "type": "HandlingClass",
          "id": 14,
          "name": "Heavy Bulky",
          "code": "heavy_bulky",
          "sort_order": 20,
          "warehouses": [
            {
              "type": "Warehouse",
              "id": 1
            }
          ],
          "referenced_product_profiles": [
            {
              "type": "ProductProfile",
              "id": 31
            }
          ],
          "matched_count": 318,
          "classification": {
            "status": "up_to_date",
            "indexed_at": "2026-08-04T09:15:00Z"
          },
          "created_at": "2026-07-15T14:30:00Z",
          "updated_at": "2026-08-04T09:15:00Z"
        }
      },
      "Inventory_API_v1_replenishment-policies": {
        "type": "object",
        "description": "Lists of referenced objects included by specifying optional fields.\nSee the [selecting fields](/global-api/selecting-fields) page for more information.",
        "example": {},
        "properties": {
          "LocationProfile": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Inventory_API_v1_LocationProfile"
            }
          },
          "Merchant": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Inventory_API_v1_Merchant"
            }
          },
          "ProductProfile": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Inventory_API_v1_ProductProfile"
            }
          },
          "HandlingClass": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Inventory_API_v1_HandlingClass"
            }
          }
        },
        "additionalProperties": false
      },
      "Inventory_API_v1_ReplenishmentPolicyCreate": {
        "title": "ReplenishmentPolicyCreate",
        "type": "object",
        "description": "The configuration of a new Replenishment Policy. The warehouse comes from the\npath, and every derived or index-owned property of `ReplenishmentPolicy` is\nrejected if present.",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "example": "Fast Movers - Forward Pick",
            "description": "The user-visible Policy name; must be unique within the warehouse."
          },
          "is_active": {
            "type": "boolean",
            "default": false,
            "description": "Whether the Policy participates in Product evaluation. Omitted, a Policy is\ncreated inactive and no Replenishment rebuild is requested."
          },
          "sort_order": {
            "type": "integer",
            "minimum": 0,
            "maximum": 65535,
            "default": 0,
            "example": 10,
            "description": "Policy precedence; lower values are evaluated first, with `id` as the tie-break."
          },
          "merchant_ids": {
            "type": "array",
            "nullable": true,
            "maxItems": 100,
            "items": {
              "type": "integer",
              "minimum": 1
            },
            "example": [
              2,
              7
            ],
            "description": "Merchant IDs the Policy selects. `null` or an empty list means every Merchant."
          },
          "product_profile_ids": {
            "type": "array",
            "maxItems": 100,
            "items": {
              "type": "integer",
              "minimum": 1
            },
            "example": [
              12,
              15
            ],
            "description": "Product Profile IDs the Policy selects. An empty list means Product Profiles do not restrict the subject."
          },
          "product_profile_match_mode": {
            "type": "string",
            "enum": [
              "any",
              "all",
              "none"
            ],
            "default": "any",
            "description": "How the selected Product Profiles are matched against a Product. The `none`\nmode requires at least one Product Profile."
          },
          "handling_class_ids": {
            "type": "array",
            "maxItems": 100,
            "items": {
              "type": "integer",
              "minimum": 1
            },
            "example": [
              4
            ],
            "description": "Handling Class IDs the Policy selects. Each must be assigned to this\nwarehouse. An empty list means Handling Classes do not restrict the subject."
          },
          "location_profile_id": {
            "type": "integer",
            "format": "int32",
            "minimum": 1,
            "example": 3,
            "description": "The `id` of the Location Profile supplying the target group. It must belong\nto this warehouse and already have a published revision."
          },
          "demand_period_days": {
            "type": "integer",
            "minimum": 1,
            "maximum": 65535,
            "example": 30,
            "description": "The Product Velocity window used to derive daily demand. Must equal one of\nthe configured Product Velocity periods."
          },
          "trigger_doi_days": {
            "type": "number",
            "minimum": 0,
            "maximum": 999999.9999,
            "example": 7,
            "description": "The coverage threshold below which an assigned Product is flagged for Replenishment."
          },
          "target_doi_days": {
            "type": "number",
            "minimum": 0,
            "maximum": 999999.9999,
            "example": 21,
            "description": "The target coverage used to calculate the required replenishment quantity.\nMust not be lower than `trigger_doi_days`; equal values are accepted."
          }
        },
        "required": [
          "name",
          "location_profile_id",
          "demand_period_days",
          "trigger_doi_days",
          "target_doi_days"
        ],
        "additionalProperties": false
      },
      "Inventory_API_v1_ReplenishmentPolicyUpdate": {
        "title": "ReplenishmentPolicyUpdate",
        "type": "object",
        "description": "Properties of a Replenishment Policy to change. Only the properties present in\nthe body are applied; an absent one keeps its stored value rather than being\ncleared. The warehouse cannot be changed, and every derived or index-owned\nproperty of `ReplenishmentPolicy` is rejected if present.",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "example": "Fast Movers - Forward Pick",
            "description": "The user-visible Policy name; must be unique within the warehouse."
          },
          "is_active": {
            "type": "boolean",
            "description": "Whether the Policy participates in Product evaluation. Changing this\ninvalidates the warehouse's published Replenishment results."
          },
          "sort_order": {
            "type": "integer",
            "minimum": 0,
            "maximum": 65535,
            "example": 10,
            "description": "Policy precedence; lower values are evaluated first, with `id` as the tie-break."
          },
          "merchant_ids": {
            "type": "array",
            "nullable": true,
            "maxItems": 100,
            "items": {
              "type": "integer",
              "minimum": 1
            },
            "example": [
              2,
              7
            ],
            "description": "Merchant IDs the Policy selects. `null` or an empty list means every Merchant."
          },
          "product_profile_ids": {
            "type": "array",
            "maxItems": 100,
            "items": {
              "type": "integer",
              "minimum": 1
            },
            "example": [
              12,
              15
            ],
            "description": "Product Profile IDs the Policy selects. An empty list means Product Profiles do not restrict the subject."
          },
          "product_profile_match_mode": {
            "type": "string",
            "enum": [
              "any",
              "all",
              "none"
            ],
            "description": "How the selected Product Profiles are matched against a Product. The `none`\nmode requires at least one Product Profile."
          },
          "handling_class_ids": {
            "type": "array",
            "maxItems": 100,
            "items": {
              "type": "integer",
              "minimum": 1
            },
            "example": [
              4
            ],
            "description": "Handling Class IDs the Policy selects. Each must be assigned to this\nwarehouse. An empty list means Handling Classes do not restrict the subject."
          },
          "location_profile_id": {
            "type": "integer",
            "format": "int32",
            "minimum": 1,
            "example": 3,
            "description": "The `id` of the Location Profile supplying the target group. It must belong\nto this warehouse and already have a published revision."
          },
          "demand_period_days": {
            "type": "integer",
            "minimum": 1,
            "maximum": 65535,
            "example": 30,
            "description": "The Product Velocity window used to derive daily demand. Must equal one of\nthe configured Product Velocity periods."
          },
          "trigger_doi_days": {
            "type": "number",
            "minimum": 0,
            "maximum": 999999.9999,
            "example": 7,
            "description": "The coverage threshold below which an assigned Product is flagged for Replenishment."
          },
          "target_doi_days": {
            "type": "number",
            "minimum": 0,
            "maximum": 999999.9999,
            "example": 21,
            "description": "The target coverage used to calculate the required replenishment quantity.\nMust not be lower than `trigger_doi_days`; equal values are accepted."
          }
        },
        "additionalProperties": false
      },
      "Inventory_API_v1_replenishment-report-fields-enum": {
        "title": "ReplenishmentReport",
        "description": "Specify additional fields of the `ReplenishmentReport` object to be included in the response.",
        "type": "array",
        "items": {
          "type": "string",
          "enum": [
            "basic",
            "all",
            "product",
            "policy",
            "policy_id",
            "policy_name",
            "location_profile",
            "location_profile_id",
            "location_profile_name",
            "profile_revision_id",
            "group_qty",
            "assigned_count",
            "warehouse_qty",
            "available_to_move",
            "daily_demand",
            "doi_days",
            "trigger_doi_days",
            "target_doi_days",
            "shortfall_qty",
            "is_flagged",
            "presence",
            "computed_at"
          ]
        }
      },
      "Inventory_API_v1_replenishment-report-product-fields-enum": {
        "title": "Replenishment Report Product",
        "description": "Specify additional common fields of the `Product` or stockable `Packaging*`\nobject referenced by a Replenishment Report row.",
        "type": "array",
        "items": {
          "type": "string",
          "enum": [
            "basic",
            "all",
            "vendor_sku",
            "manufacturer_part_number",
            "external_id",
            "barcodes",
            "goods_type",
            "is_available",
            "is_visible",
            "created_at",
            "updated_at",
            "weight",
            "dimensions",
            "volume",
            "inventory",
            "export",
            "regulated_goods",
            "packaging",
            "custom_fields"
          ]
        }
      },
      "Inventory_API_v1_replenishment-report-policy-fields-enum": {
        "title": "ReplenishmentReportPolicySelection",
        "description": "Specify direct fields of the included `ReplenishmentPolicy` object.",
        "type": "array",
        "items": {
          "type": "string",
          "enum": [
            "name",
            "is_active",
            "sort_order",
            "demand_period_days",
            "trigger_doi_days",
            "target_doi_days",
            "qualification_reason",
            "created_at",
            "updated_at"
          ]
        }
      },
      "Inventory_API_v1_replenishment-report-location-profile-fields-enum": {
        "title": "ReplenishmentReportLocationProfileSelection",
        "description": "Specify direct summary fields of the included `LocationProfile` object.",
        "type": "array",
        "items": {
          "type": "string",
          "enum": [
            "name",
            "description",
            "status",
            "member_count",
            "created_at",
            "updated_at"
          ]
        }
      },
      "Inventory_API_v1_ReplenishmentPolicyRef": {
        "title": "ReplenishmentPolicyRef",
        "type": "object",
        "description": "A reference to a Replenishment Policy by ID.",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "ReplenishmentPolicy"
            ]
          },
          "id": {
            "type": "integer",
            "format": "int32",
            "minimum": 1,
            "description": "Replenishment Policy ID."
          }
        },
        "required": [
          "type",
          "id"
        ],
        "additionalProperties": false
      },
      "Inventory_API_v1_ReplenishmentReport": {
        "title": "ReplenishmentReport",
        "type": "object",
        "description": "A published Replenishment Report row for one warehouse and product: the effective\nReplenishment Policy and Location Profile identity, the exact Location Profile\nrevision whose member locations supplied the aggregation, quantity/DOI/shortfall\nresults, and the calculation time.\n\nThe one-row-per-warehouse-and-product identity is the Phase 1 planning contract\nonly; future multi-destination planning models may introduce a separate,\nversioned shape.",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "ReplenishmentReport"
            ],
            "readOnly": true,
            "description": "This is a read-only property that describes the type of object in the response body."
          },
          "id": {
            "type": "integer",
            "example": 42,
            "readOnly": true,
            "description": "The `id` of the product represented by this row, unique within the warehouse."
          },
          "product": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Inventory_API_v1_StockableProductRef"
              },
              {
                "description": "A reference to the stockable product represented by this row."
              }
            ]
          },
          "policy": {
            "description": "A direct reference to the effective Replenishment Policy. Request selected `fields:policy` when a report screen needs the current Policy configuration.\\\n  `Optional Field`",
            "allOf": [
              {
                "$ref": "#/components/schemas/Inventory_API_v1_ReplenishmentPolicyRef"
              }
            ]
          },
          "policy_id": {
            "type": "integer",
            "example": 7,
            "description": "The `id` of the effective Replenishment Policy that produced this row."
          },
          "policy_name": {
            "type": "string",
            "example": "Fast Movers",
            "description": "The name of the effective Replenishment Policy at the time of the response."
          },
          "location_profile_id": {
            "type": "integer",
            "example": 3,
            "description": "The `id` of the Location Profile selected by the effective Policy."
          },
          "location_profile_name": {
            "type": "string",
            "example": "Pick Face",
            "description": "The name of the selected Location Profile at the time of the response."
          },
          "location_profile": {
            "description": "A direct reference to the selected Location Profile. Request selected `fields:location_profile` when a report screen needs its current state.\\\n  `Optional Field`",
            "allOf": [
              {
                "$ref": "#/components/schemas/Inventory_API_v1_LocationProfileRef"
              }
            ]
          },
          "profile_revision_id": {
            "type": "integer",
            "example": 15,
            "description": "The exact Location Profile revision whose member locations supplied the\nquantity aggregation for this row."
          },
          "group_qty": {
            "type": "number",
            "example": 24,
            "description": "The physical on-hand quantity across the member locations of the Location Profile revision."
          },
          "assigned_count": {
            "type": "integer",
            "example": 2,
            "description": "The number of non-temporary member locations assigned to the product,\nincluding assignments that are currently empty."
          },
          "warehouse_qty": {
            "type": "number",
            "example": 150,
            "description": "The physical on-hand quantity across the whole warehouse on the same basis as `group_qty`."
          },
          "available_to_move": {
            "type": "number",
            "example": 126,
            "description": "The warehouse stock outside the target location group (`warehouse_qty` minus\n`group_qty`) that a movement could draw from. A diagnostic value, not a status."
          },
          "daily_demand": {
            "type": "number",
            "example": 3.5,
            "description": "Pickable units per day derived from the effective Policy's velocity window."
          },
          "doi_days": {
            "type": "number",
            "example": 6.8571,
            "description": "Days of inventory at calculation time (`group_qty` divided by `daily_demand`)."
          },
          "trigger_doi_days": {
            "type": "number",
            "example": 7,
            "description": "The effective Policy's coverage threshold below which the product is flagged, copied at calculation time."
          },
          "target_doi_days": {
            "type": "number",
            "example": 14,
            "description": "The effective Policy's coverage target used to calculate the shortfall, copied at calculation time."
          },
          "shortfall_qty": {
            "type": "number",
            "example": 25,
            "description": "The quantity required to restore coverage to `target_doi_days`. Zero when the product is not flagged."
          },
          "is_flagged": {
            "type": "boolean",
            "description": "Whether the calculated coverage is below `trigger_doi_days`."
          },
          "presence": {
            "type": "string",
            "enum": [
              "slot",
              "replenish",
              "ok"
            ],
            "description": "The presence state of the product in the selected Location Profile: `slot` means\nrecorded pickable demand with no persistent assignment in the profile, `replenish`\nmeans an assignment exists but coverage is below `trigger_doi_days`, and `ok`\nmeans an assignment exists and coverage is at or above the trigger."
          },
          "computed_at": {
            "type": "string",
            "format": "date-time",
            "example": "2026-07-31T11:25:10Z",
            "description": "The time this row was calculated. This is the per-product quantity-freshness\ncontract, distinct from the Location Profile membership freshness."
          }
        },
        "required": [
          "type",
          "id"
        ],
        "additionalProperties": false,
        "example": {
          "type": "ReplenishmentReport",
          "id": 18427,
          "product": {
            "type": "Product",
            "id": 18427
          },
          "policy_id": 7,
          "policy_name": "Fast Movers - Forward Pick",
          "location_profile_id": 3,
          "location_profile_name": "Pick Face",
          "profile_revision_id": 15,
          "group_qty": 24,
          "assigned_count": 2,
          "warehouse_qty": 150,
          "available_to_move": 126,
          "daily_demand": 3.5,
          "doi_days": 6.8571,
          "trigger_doi_days": 7,
          "target_doi_days": 14,
          "shortfall_qty": 25,
          "is_flagged": true,
          "presence": "replenish",
          "computed_at": "2026-07-31T11:25:10Z"
        }
      },
      "Inventory_API_v1_replenishment-report": {
        "type": "object",
        "description": "Lists of referenced objects included by specifying optional fields.\nSee the [selecting fields](/global-api/selecting-fields) page for more information.",
        "example": {},
        "properties": {
          "Merchant": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Inventory_API_v1_Merchant"
            }
          },
          "PackagingContainer": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Inventory_API_v1_PackagingContainer"
            }
          },
          "PackagingInfill": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Inventory_API_v1_PackagingInfill"
            }
          },
          "PackagingSupplies": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Inventory_API_v1_PackagingSupplies"
            }
          },
          "Product": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Inventory_API_v1_CompositeStockableProduct"
            }
          },
          "ReplenishmentPolicy": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Inventory_API_v1_ReplenishmentPolicy"
            }
          },
          "LocationProfile": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Inventory_API_v1_LocationProfile"
            }
          }
        }
      },
      "Inventory_API_v1_ReplenishmentIndexStatus": {
        "title": "ReplenishmentIndexStatus",
        "type": "object",
        "description": "Rebuild lifecycle of one Warehouse's published Replenishment Index. A Warehouse that has never had a rebuild requested reads as NULL `status` and NULL generations, whether or not internal bookkeeping has already created a state row for it.",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "ReplenishmentIndexStatus"
            ]
          },
          "id": {
            "type": "integer",
            "format": "int32",
            "minimum": 1,
            "description": "Warehouse ID."
          },
          "status": {
            "type": "string",
            "nullable": true,
            "enum": [
              "idle",
              "building",
              "superseded",
              "failed",
              null
            ],
            "description": "Durable rebuild lifecycle state. `idle` when no build is running, `building` while a generation is being computed, `superseded` after a `force` rebuild invalidated the running build (it stops without publishing and the fresh generation takes over), `failed` after the latest completed attempt failed — `failed` and `last_error` describe that attempt, and a pending successor may already be queued. A `requested_generation` greater than `building_generation` means a newer generation is pending regardless of status. A Warehouse that stays `failed` is retried server-side with operator alerting. NULL when no rebuild was ever requested."
          },
          "requested_generation": {
            "type": "integer",
            "format": "int64",
            "nullable": true,
            "description": "Newest generation requested for complete recalculation, or NULL when none was ever requested."
          },
          "building_generation": {
            "type": "integer",
            "format": "int64",
            "nullable": true,
            "description": "Generation currently being computed, or NULL when no build is in progress. Non-NULL only while `status` is `building`, `superseded`, or `failed`; while `failed` it identifies the generation whose attempt failed."
          },
          "published_generation": {
            "type": "integer",
            "format": "int64",
            "nullable": true,
            "description": "Generation currently visible in the published Replenishment Report, or NULL when nothing has been published yet. The same value appears in the report's `meta.published_generation`."
          },
          "generation_current": {
            "type": "boolean",
            "nullable": true,
            "description": "Whether the published generation satisfies the newest rebuild request. NULL when no rebuild was ever requested. The same value appears in the report's `meta.generation_current`."
          },
          "generation_published_at": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "description": "Time the published generation was completed, or NULL when nothing has been published."
          },
          "requested_at": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "description": "Time the currently pending, not-yet-claimed generation was first requested. NULL while a build is running or when nothing is pending."
          },
          "started_at": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "description": "Start time of the latest rebuild attempt."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "description": "Last rebuild progress, heartbeat, or lifecycle-state change time."
          },
          "attempt_count": {
            "type": "integer",
            "format": "int32",
            "minimum": 0,
            "description": "Attempts recorded for the generation currently being built or last attempted — reset when a new generation is claimed and incremented on same-generation retries. Zero for a Warehouse that never built."
          },
          "last_error": {
            "type": "string",
            "nullable": true,
            "description": "Classified summary of the latest rebuild failure — one of a small set of fixed messages, not the raw diagnostic (which stays in the server log) — or NULL when the latest attempt succeeded."
          }
        },
        "required": [
          "type",
          "id",
          "status",
          "requested_generation",
          "building_generation",
          "published_generation",
          "generation_current",
          "generation_published_at",
          "requested_at",
          "started_at",
          "updated_at",
          "attempt_count",
          "last_error"
        ],
        "additionalProperties": false,
        "example": {
          "type": "ReplenishmentIndexStatus",
          "id": 1,
          "status": "idle",
          "requested_generation": 5,
          "building_generation": null,
          "published_generation": 5,
          "generation_current": true,
          "generation_published_at": "2026-08-01T10:00:00Z",
          "requested_at": null,
          "started_at": "2026-08-01T09:31:00Z",
          "updated_at": "2026-08-01T10:00:00Z",
          "attempt_count": 1,
          "last_error": null
        }
      },
      "Inventory_API_v1_ReplenishmentIndexRebuild": {
        "title": "ReplenishmentIndexRebuild",
        "type": "object",
        "description": "Rebuild request for one Warehouse's Replenishment Index.",
        "properties": {
          "mode": {
            "type": "string",
            "enum": [
              "soft",
              "force"
            ],
            "description": "`soft` coalesces into the pending generation and lets a build already in progress finish and publish. `force` additionally marks a running build superseded, so its result is never published and the fresh generation recomputes everything from scratch — repeated `force` requests at intervals shorter than a full build defer publication indefinitely. Both request a new generation when none is pending. `force` is for an explicit operator-initiated full recalculation; automation should default to `soft`."
          }
        },
        "required": [
          "mode"
        ],
        "additionalProperties": false,
        "example": {
          "mode": "soft"
        }
      },
      "Inventory_API_v1_location-profile-fields-enum": {
        "title": "LocationProfile",
        "description": "Specify additional fields of the `LocationProfile` object to be included in the response.",
        "type": "array",
        "items": {
          "type": "string",
          "enum": [
            "all",
            "name",
            "description",
            "status",
            "member_count",
            "match",
            "match_readable",
            "location_tags",
            "slot_types",
            "active_revision",
            "pending_revision",
            "used_by",
            "created_at",
            "updated_at"
          ]
        }
      },
      "Inventory_API_v1_location-tag-fields-enum": {
        "title": "LocationTag",
        "description": "Specify additional fields of the `LocationTag` object to be included in the response.",
        "type": "array",
        "items": {
          "type": "string",
          "enum": [
            "basic",
            "all",
            "name",
            "description",
            "color",
            "sort_order",
            "is_deleted",
            "created_at",
            "updated_at"
          ]
        }
      },
      "Inventory_API_v1_tag_color": {
        "type": "string",
        "enum": [
          "black1",
          "black2",
          "black3",
          "black4",
          "black5",
          "blue1",
          "blue2",
          "blue3",
          "blue4",
          "blue5",
          "brown1",
          "brown2",
          "brown3",
          "brown4",
          "brown5",
          "gray1",
          "gray2",
          "gray3",
          "gray4",
          "gray5",
          "green1",
          "green2",
          "green3",
          "green4",
          "green5",
          "orange1",
          "orange2",
          "orange3",
          "orange4",
          "orange5",
          "purple1",
          "purple2",
          "purple3",
          "purple4",
          "purple5",
          "red1",
          "red2",
          "red3",
          "red4",
          "red5",
          "yellow1",
          "yellow2",
          "yellow3",
          "yellow4",
          "yellow5"
        ],
        "example": "blue3",
        "description": "The palette entry the tag renders with, written as a color family followed by a shade from 1 (lightest) to 5 (darkest)."
      },
      "Inventory_API_v1_LocationTag": {
        "title": "LocationTag",
        "type": "object",
        "description": "A `LocationTag` is a free-form label that warehouse staff assign to locations to record a\nproperty the location schema does not model — \"hazmat approved\", \"cold storage\", \"mezzanine\".\nLocation Profiles match on tags, so the set of tags is part of a warehouse's slotting policy\nrather than mere decoration.\n\nDeleting a tag is a soft delete: the row survives so locations already carrying it keep\nrendering it, and only its availability for new assignments is withdrawn.",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "LocationTag"
            ],
            "readOnly": true,
            "description": "This is a read-only property that describes the type of object in the response body."
          },
          "id": {
            "type": "integer",
            "format": "int32",
            "example": 4,
            "readOnly": true,
            "description": "The internal `id` property used as a path parameter in a resource lookup."
          },
          "name": {
            "type": "string",
            "maxLength": 255,
            "example": "Hazmat",
            "description": "The display name of the tag, unique among location tags. A submitted name is limited to 230\ncharacters; the remainder of the field is reserved for the suffix a deleted tag carries."
          },
          "description": {
            "type": "string",
            "maxLength": 255,
            "nullable": true,
            "example": "Locations approved to store hazardous materials.",
            "description": "An explanation of what the tag signifies."
          },
          "color": {
            "$ref": "#/components/schemas/Inventory_API_v1_tag_color"
          },
          "sort_order": {
            "type": "integer",
            "example": 1,
            "description": "The position the tag takes relative to other location tags when they are listed for selection."
          },
          "is_deleted": {
            "type": "boolean",
            "example": false,
            "description": "Whether the tag has been soft-deleted. Deleted tags cannot be assigned to further\nlocations, and their `name` carries a `(Deleted ID: n)` suffix so the original name\nbecomes available again."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "example": "2026-08-01T14:03:22Z",
            "description": "The UTC date and time the tag was created.\\\n  `Optional Field`"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "example": "2026-08-01T14:03:22Z",
            "description": "The UTC date and time the tag was last modified.\\\n  `Optional Field`"
          }
        },
        "required": [
          "type",
          "id"
        ],
        "additionalProperties": false
      },
      "Inventory_API_v1_location-profiles": {
        "type": "object",
        "description": "Direct Location Tags and Slot Types expanded through nested `fields:*` parameters.",
        "example": {},
        "properties": {
          "LocationTag": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Inventory_API_v1_LocationTag"
            }
          },
          "SlotType": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Inventory_API_v1_SlotType"
            }
          }
        },
        "additionalProperties": false
      },
      "Inventory_API_v1_location-profile-membership-meta": {
        "type": "object",
        "description": "Warehouse-level membership repair freshness. This is the freshness of the\nauthoritative resolved membership, distinct from the Replenishment quantity\ncomputation freshness.",
        "properties": {
          "membership_status": {
            "type": "string",
            "enum": [
              "idle",
              "repairing",
              "failed",
              null
            ],
            "nullable": true,
            "description": "The durable membership repair lifecycle state of the warehouse, or `null` when\nno location change was ever recorded."
          },
          "membership_current": {
            "type": "boolean",
            "description": "Whether every recorded location change has been applied to the active profile\nmemberships of the warehouse."
          },
          "membership_repaired_at": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "description": "The time the last requested membership repair completed, or `null` when none ran yet."
          }
        }
      },
      "Inventory_API_v1_LocationProfileMatchClauseInput": {
        "title": "LocationProfileMatchClauseInput",
        "type": "object",
        "description": "One clause of a Location Profile definition, as submitted. Clauses are ANDed and evaluated\nin the order given, so a location joins the profile only when every clause matches it.\n\nA clause carries its operands in exactly one channel: `values` for the typed operators and\n`cel` for `script`. The unused channel may be omitted or sent as `null`, so a clause read\nback from this API can be submitted again unchanged.\n\n**Shorthand:** a clause that supplies only `cel` is taken as a script clause — `field` and\n`operator` default to `script` and `returns_true`, their only possible values there. The\nresponse always spells them out, so what you read back is always writable.",
        "properties": {
          "field": {
            "type": "string",
            "enum": [
              "zone",
              "rack",
              "rack_type",
              "location_label",
              "slot_type",
              "location_tag",
              "script"
            ],
            "example": "location_label",
            "description": "The location property the clause tests. May be omitted only when the clause supplies\n`cel` alone, in which case it defaults to `script`."
          },
          "operator": {
            "type": "string",
            "enum": [
              "is_one_of",
              "is_not_one_of",
              "starts_with",
              "not_starts_with",
              "contains",
              "not_contains",
              "ends_with",
              "not_ends_with",
              "matches",
              "not_matches",
              "returns_true"
            ],
            "example": "starts_with",
            "description": "The comparison applied to the field. Only the operators the field actually offers are\naccepted:\n  - entity fields (`zone`, `rack`, `rack_type`, `slot_type`, `location_tag`) take\n    `is_one_of` and `is_not_one_of`.\n  - `location_label` takes `starts_with`, `contains`, `ends_with`, `matches` and their\n    `not_` counterparts. It does **not** accept `is_one_of`.\n  - `script` takes `returns_true`."
          },
          "values": {
            "type": "array",
            "nullable": true,
            "maxItems": 250,
            "description": "The operands, omitted or `null` for a `script` clause. Entity fields accept either a\nbare integer id or the `{type, id}` reference the response returns; a reference whose\n`type` does not match the field is rejected. `location_label` takes a single string\nneedle, or a regular expression for the `matches` operators. A clause accepts at most\n250 values, and a text or regular-expression operand cannot exceed 4 KiB of UTF-8 data.",
            "example": [
              "RK"
            ],
            "items": {
              "oneOf": [
                {
                  "type": "integer",
                  "description": "The `id` of the referenced entity."
                },
                {
                  "type": "string",
                  "description": "A `location_label` needle or regular expression."
                },
                {
                  "$ref": "#/components/schemas/Inventory_API_v1_RackRef"
                },
                {
                  "$ref": "#/components/schemas/Inventory_API_v1_RackTypeRef"
                },
                {
                  "$ref": "#/components/schemas/Inventory_API_v1_SlotTypeRef"
                },
                {
                  "$ref": "#/components/schemas/Inventory_API_v1_LocationTagRef"
                }
              ]
            }
          },
          "cel": {
            "type": "string",
            "nullable": true,
            "example": "is_pickable",
            "description": "The CEL expression evaluated for a `script` clause; omitted or `null` for every other\nclause. The expression must return a boolean and is validated against the location\ncontext before the profile is saved. Its UTF-8 representation cannot exceed 4 KiB."
          }
        },
        "additionalProperties": false
      },
      "Inventory_API_v1_LocationProfileCreate": {
        "title": "LocationProfileCreate",
        "type": "object",
        "description": "The body of a Location Profile create request. The warehouse comes from the path, and every\nother property of the resource — status, revisions, counts, timestamps — is derived by the\nserver and cannot be submitted.",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "example": "Rack Pick Face",
            "description": "The profile name, which must be unique within the warehouse."
          },
          "description": {
            "type": "string",
            "nullable": true,
            "maxLength": 16000,
            "example": "Pickable shelf locations on rack aisles, excluding ground-level overflow.",
            "description": "An optional explanation of the locations represented by this profile."
          },
          "match": {
            "type": "array",
            "maxItems": 64,
            "description": "The ordered clauses defining membership, all of which must match.\n\nRequired, and deliberately so: an empty array means \"every non-temporary location in the\nwarehouse\", which is the widest possible profile, so it has to be asked for rather than\narrived at by leaving a field out. A definition accepts at most 64 clauses, 250 values\nper clause, 1,000 values across all clauses, and 512 KiB of JSON.",
            "items": {
              "$ref": "#/components/schemas/Inventory_API_v1_LocationProfileMatchClauseInput"
            },
            "example": [
              {
                "field": "location_label",
                "operator": "starts_with",
                "values": [
                  "RK"
                ]
              },
              {
                "field": "slot_type",
                "operator": "is_one_of",
                "values": [
                  4
                ]
              },
              {
                "cel": "is_pickable"
              }
            ]
          }
        },
        "required": [
          "name",
          "match"
        ],
        "additionalProperties": false
      },
      "Inventory_API_v1_LocationProfileUpdate": {
        "title": "LocationProfileUpdate",
        "type": "object",
        "description": "The body of a Location Profile update request. Every property is optional and only the ones\npresent are applied.\n\nOmitting `match` keeps the saved definition — it never clears it to the all-locations one.\nSend `match: []` to mean \"every non-temporary location in the warehouse\" explicitly. A\nprofile that has no saved definition at all (a legacy record) must be sent a `match`.",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "example": "Rack Pick Face",
            "description": "The profile name, which must be unique within the warehouse."
          },
          "description": {
            "type": "string",
            "nullable": true,
            "maxLength": 16000,
            "example": "Pickable shelf locations on rack aisles, excluding ground-level overflow.",
            "description": "An optional explanation of the locations represented by this profile. Send `null` to clear it."
          },
          "match": {
            "type": "array",
            "maxItems": 64,
            "description": "Replaces the ordered clauses defining membership. Sending a definition that differs from\nthe saved one starts a new materialization. A definition accepts at most 64 clauses,\n250 values per clause, 1,000 values across all clauses, and 512 KiB of JSON.",
            "items": {
              "$ref": "#/components/schemas/Inventory_API_v1_LocationProfileMatchClauseInput"
            },
            "example": [
              {
                "field": "location_label",
                "operator": "starts_with",
                "values": [
                  "RK"
                ]
              },
              {
                "field": "slot_type",
                "operator": "is_one_of",
                "values": [
                  4
                ]
              },
              {
                "cel": "is_pickable"
              }
            ]
          }
        },
        "additionalProperties": false
      },
      "Inventory_API_v1_LocationProfileRebuild": {
        "title": "LocationProfileRebuild",
        "type": "object",
        "description": "The body of a Location Profile rebuild request. A rebuild takes no parameters — it re-runs\nthe definition already saved on the profile — so this is always the empty object `{}`. The\nGlobal API requires a JSON object body on every `POST`, which is why it cannot be omitted.",
        "properties": {},
        "additionalProperties": false
      },
      "Inventory_API_v1_slotting-rule-set-fields-enum": {
        "title": "SlottingRuleSet",
        "description": "Specify fields of the `SlottingRuleSet` object to include in the response.",
        "type": "array",
        "items": {
          "type": "string",
          "enum": [
            "all",
            "name",
            "description",
            "is_active",
            "rule_count",
            "has_conflicts",
            "conflicting_rule_count",
            "created_at",
            "updated_at"
          ]
        }
      },
      "Inventory_API_v1_SlottingRuleSet": {
        "title": "SlottingRuleSet",
        "type": "object",
        "description": "Warehouse-scoped collection of Slotting Rules that can be activated or\ndeactivated as one unit.",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "SlottingRuleSet"
            ],
            "readOnly": true,
            "description": "Resource type."
          },
          "id": {
            "type": "integer",
            "format": "int32",
            "minimum": 1,
            "readOnly": true,
            "description": "Slotting Rule Set ID."
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "description": "Human-readable name, unique within the warehouse.",
            "example": "Hazmat Storage Rules"
          },
          "description": {
            "type": "string",
            "nullable": true,
            "description": "Optional purpose or operating note for the Rule Set.",
            "example": "Keeps regulated aerosols in approved storage areas."
          },
          "is_active": {
            "type": "boolean",
            "description": "Whether child Rules currently participate in Slotting decisions."
          },
          "rule_count": {
            "type": "integer",
            "minimum": 0,
            "readOnly": true,
            "description": "Number of Rules in the Set."
          },
          "has_conflicts": {
            "type": "boolean",
            "readOnly": true,
            "description": "Whether at least one Rule currently has a recorded conflict."
          },
          "conflicting_rule_count": {
            "type": "integer",
            "minimum": 0,
            "readOnly": true,
            "description": "Number of Rules with recorded conflicts."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "readOnly": true,
            "description": "Time when the Rule Set was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "readOnly": true,
            "description": "Time when the Rule Set was last updated."
          }
        },
        "required": [
          "type",
          "id"
        ],
        "additionalProperties": false,
        "example": {
          "type": "SlottingRuleSet",
          "id": 18,
          "name": "Hazmat Storage Rules",
          "description": "Keeps regulated aerosols in approved storage areas.",
          "is_active": true,
          "rule_count": 6,
          "has_conflicts": true,
          "conflicting_rule_count": 1,
          "created_at": "2026-07-18T13:20:00Z",
          "updated_at": "2026-08-09T16:42:00Z"
        }
      },
      "Inventory_API_v1_SlottingRuleSetCreate": {
        "title": "SlottingRuleSetCreate",
        "type": "object",
        "description": "The body of a Slotting Rule Set create request. The warehouse comes from the\npath. New Rule Sets are inactive so their Rules can be reviewed before the\nSet participates in Slotting decisions.",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "description": "Name unique within the warehouse.",
            "example": "Hazmat Storage Rules"
          },
          "description": {
            "type": "string",
            "nullable": true,
            "maxLength": 16000,
            "description": "Optional purpose or operating note for the Rule Set.",
            "example": "Keeps regulated aerosols in approved storage areas."
          }
        },
        "required": [
          "name"
        ],
        "additionalProperties": false
      },
      "Inventory_API_v1_SlottingRuleSetUpdate": {
        "title": "SlottingRuleSetUpdate",
        "type": "object",
        "minProperties": 1,
        "description": "The body of a partial Slotting Rule Set update. Omitted properties retain\ntheir saved values. Send `description: null` or a blank description to clear\nit.",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "description": "Name unique within the warehouse.",
            "example": "Hazmat Pick-Face Rules"
          },
          "description": {
            "type": "string",
            "nullable": true,
            "maxLength": 16000,
            "description": "Optional purpose or operating note for the Rule Set.",
            "example": "Keeps regulated aerosols in approved pick faces."
          },
          "is_active": {
            "type": "boolean",
            "description": "Whether child Rules participate in Slotting decisions.",
            "example": true
          }
        },
        "additionalProperties": false
      },
      "Inventory_API_v1_SlottingRuleSetDuplicate": {
        "title": "SlottingRuleSetDuplicate",
        "type": "object",
        "description": "Target Warehouse for a duplicated Slotting Rule Set.",
        "properties": {
          "warehouse_id": {
            "type": "integer",
            "format": "int32",
            "minimum": 1,
            "description": "ID of the Warehouse that will own the inactive copy.",
            "example": 2
          }
        },
        "required": [
          "warehouse_id"
        ],
        "additionalProperties": false
      },
      "Inventory_API_v1_slotting-rule-fields-enum": {
        "title": "SlottingRule",
        "description": "Specify fields of the `SlottingRule` object to include in the response.",
        "type": "array",
        "items": {
          "type": "string",
          "enum": [
            "all",
            "rule_set",
            "name",
            "relation",
            "strength",
            "priority",
            "merchant_ids",
            "merchants",
            "product_profile_ids",
            "product_profiles",
            "product_profile_match_mode",
            "handling_class_ids",
            "handling_classes",
            "location_profile",
            "subject_readable",
            "location_match_readable",
            "has_conflicts",
            "conflict_detail",
            "created_at",
            "updated_at"
          ]
        }
      },
      "Inventory_API_v1_location-profile-slotting-rule-relationship-fields-enum": {
        "title": "SlottingRuleLocationProfileSelection",
        "description": "Specify direct display fields of an included `LocationProfile` object.",
        "type": "array",
        "items": {
          "type": "string",
          "enum": [
            "name",
            "description",
            "status",
            "member_count",
            "match_readable",
            "created_at",
            "updated_at"
          ]
        }
      },
      "Inventory_API_v1_SlottingRuleSetRef": {
        "title": "SlottingRuleSetRef",
        "type": "object",
        "description": "A reference to a Slotting Rule Set by ID.",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "SlottingRuleSet"
            ]
          },
          "id": {
            "type": "integer",
            "format": "int32",
            "minimum": 1,
            "description": "Slotting Rule Set ID."
          }
        },
        "required": [
          "type",
          "id"
        ],
        "additionalProperties": false
      },
      "Inventory_API_v1_SlottingRule": {
        "title": "SlottingRule",
        "type": "object",
        "description": "A Rule inside one Warehouse Slotting Rule Set. It selects Products and\nMerchants, applies a hard or advisory relation, and targets the resolved\nmembership of one ready Location Profile. Conflict fields are the latest\ndurable result of asynchronous Slotting conflict detection.",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "SlottingRule"
            ],
            "readOnly": true,
            "description": "This is a read-only property that describes the type of object in the response body."
          },
          "id": {
            "type": "integer",
            "format": "int32",
            "minimum": 1,
            "example": 42,
            "readOnly": true,
            "description": "The internal `id` property used to identify the Slotting Rule."
          },
          "rule_set": {
            "$ref": "#/components/schemas/Inventory_API_v1_SlottingRuleSetRef"
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "example": "Regulated aerosols require Hazmat storage",
            "description": "The user-visible Rule name."
          },
          "relation": {
            "type": "string",
            "enum": [
              "require",
              "forbid",
              "prefer",
              "discourage"
            ],
            "example": "require",
            "description": "The hard requirement or advisory preference applied by the Rule."
          },
          "strength": {
            "type": "string",
            "nullable": true,
            "enum": [
              "low",
              "normal",
              "high",
              "critical",
              null
            ],
            "example": null,
            "description": "Preference strength for `prefer` and `discourage`; `null` for hard Rules."
          },
          "priority": {
            "type": "integer",
            "format": "int32",
            "minimum": 0,
            "example": 340,
            "readOnly": true,
            "description": "Server-calculated Rule specificity used to order applicable Rules."
          },
          "merchant_ids": {
            "type": "array",
            "nullable": true,
            "uniqueItems": true,
            "items": {
              "type": "integer",
              "format": "int32",
              "minimum": 1
            },
            "example": [
              2,
              7
            ],
            "description": "Merchant IDs selected by the Rule; `null` means every Merchant."
          },
          "merchants": {
            "type": "array",
            "nullable": true,
            "readOnly": true,
            "description": "Direct references to the selected Merchants. Request this optional relationship when an editor needs names. `null` means the Rule applies to every Merchant.\\\n  `Optional Field`",
            "items": {
              "$ref": "#/components/schemas/Inventory_API_v1_MerchantRef"
            }
          },
          "product_profile_ids": {
            "type": "array",
            "uniqueItems": true,
            "items": {
              "type": "integer",
              "format": "int32",
              "minimum": 1
            },
            "example": [
              12
            ],
            "description": "Product Profile IDs selected by the Rule; an empty list means this dimension does not restrict Products."
          },
          "product_profiles": {
            "type": "array",
            "readOnly": true,
            "description": "Direct references to selected Product Profiles for editor display.\\\n  `Optional Field`",
            "items": {
              "$ref": "#/components/schemas/Inventory_API_v1_ProductProfileRef"
            }
          },
          "product_profile_match_mode": {
            "type": "string",
            "enum": [
              "any",
              "all",
              "none"
            ],
            "example": "any",
            "description": "How the selected Product Profiles are matched against a Product."
          },
          "handling_class_ids": {
            "type": "array",
            "uniqueItems": true,
            "items": {
              "type": "integer",
              "format": "int32",
              "minimum": 1
            },
            "example": [
              4
            ],
            "description": "Handling Class IDs selected by the Rule; an empty list means this dimension does not restrict Products."
          },
          "handling_classes": {
            "type": "array",
            "readOnly": true,
            "description": "Direct references to selected Handling Classes for editor display.\\\n  `Optional Field`",
            "items": {
              "$ref": "#/components/schemas/Inventory_API_v1_HandlingClassRef"
            }
          },
          "location_profile": {
            "$ref": "#/components/schemas/Inventory_API_v1_LocationProfileRef"
          },
          "subject_readable": {
            "type": "string",
            "nullable": true,
            "example": "Merchants: Retail Direct; Product Profiles: Regulated Aerosols",
            "readOnly": true,
            "description": "Server-generated summary of the Merchant and Product subject."
          },
          "location_match_readable": {
            "type": "string",
            "nullable": true,
            "example": "zone_id in [4] && is_pickable",
            "readOnly": true,
            "description": "Server-generated summary of the target Location Profile definition."
          },
          "has_conflicts": {
            "type": "boolean",
            "readOnly": true,
            "description": "Whether the latest completed conflict scan found this Rule in a conflicting combination."
          },
          "conflict_detail": {
            "type": "object",
            "nullable": true,
            "readOnly": true,
            "description": "Sampled IDs from the latest completed conflict scan, or `null` when no detail is stored.",
            "properties": {
              "rule_ids": {
                "type": "array",
                "uniqueItems": true,
                "items": {
                  "type": "integer",
                  "format": "int32",
                  "minimum": 1
                },
                "example": [
                  47
                ],
                "description": "Other Rules participating in sampled conflicts."
              },
              "product_ids": {
                "type": "array",
                "uniqueItems": true,
                "items": {
                  "type": "integer",
                  "format": "int32",
                  "minimum": 1
                },
                "example": [
                  18042,
                  18043
                ],
                "description": "Products affected by sampled conflicts."
              }
            },
            "required": [
              "rule_ids",
              "product_ids"
            ],
            "additionalProperties": false
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "example": "2026-08-10T09:20:00Z",
            "readOnly": true,
            "description": "The UTC date and time the Rule was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "example": "2026-08-10T10:15:00Z",
            "readOnly": true,
            "description": "The UTC date and time the Rule was last updated."
          }
        },
        "required": [
          "type",
          "id"
        ],
        "additionalProperties": false,
        "example": {
          "type": "SlottingRule",
          "id": 42,
          "rule_set": {
            "type": "SlottingRuleSet",
            "id": 19
          },
          "name": "Regulated aerosols require Hazmat storage",
          "relation": "require",
          "strength": null,
          "priority": 75,
          "merchant_ids": [
            2,
            7
          ],
          "product_profile_ids": [
            12
          ],
          "product_profile_match_mode": "any",
          "handling_class_ids": [
            4
          ],
          "location_profile": {
            "type": "LocationProfile",
            "id": 26
          },
          "subject_readable": "Merchants: Retail Direct, Marketplace; Product Profile: Regulated Aerosols; Handling Class: Hazmat",
          "location_match_readable": "zone_id in [4] && is_pickable",
          "has_conflicts": false,
          "conflict_detail": null,
          "created_at": "2026-08-10T10:45:00Z",
          "updated_at": "2026-08-10T10:45:00Z"
        }
      },
      "Inventory_API_v1_slotting-rules": {
        "type": "object",
        "description": "Direct objects included by specifying nested fields. Relationship trees below these\neditor selections are never expanded. See the\n[selecting fields](/global-api/selecting-fields) page.",
        "example": {},
        "properties": {
          "SlottingRuleSet": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Inventory_API_v1_SlottingRuleSet"
            }
          },
          "LocationProfile": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Inventory_API_v1_LocationProfile"
            }
          },
          "Merchant": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Inventory_API_v1_Merchant"
            }
          },
          "ProductProfile": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Inventory_API_v1_ProductProfile"
            }
          },
          "HandlingClass": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Inventory_API_v1_HandlingClass"
            }
          }
        },
        "additionalProperties": false
      },
      "Inventory_API_v1_SlottingRuleCreate": {
        "title": "SlottingRuleCreate",
        "type": "object",
        "description": "The body of a Slotting Rule create request. The Warehouse and owning Rule Set\ncome from the path. The Location Profile must belong to that Warehouse and\nhave a ready active revision.",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "example": "Regulated aerosols require Hazmat storage",
            "description": "User-visible Rule name."
          },
          "relation": {
            "type": "string",
            "enum": [
              "require",
              "forbid",
              "prefer",
              "discourage"
            ],
            "example": "require",
            "description": "Hard requirement or advisory preference applied by the Rule."
          },
          "strength": {
            "type": "string",
            "nullable": true,
            "enum": [
              "low",
              "normal",
              "high",
              "critical",
              null
            ],
            "example": null,
            "description": "Required for `prefer` and `discourage`. Omit this property for `require`\nand `forbid`; explicitly sending it for a hard Rule is rejected."
          },
          "merchant_ids": {
            "type": "array",
            "nullable": true,
            "maxItems": 100,
            "uniqueItems": true,
            "items": {
              "type": "integer",
              "format": "int32",
              "minimum": 1
            },
            "example": [
              2,
              7
            ],
            "description": "Merchant IDs selected by the Rule; `null` or an empty list means every Merchant."
          },
          "product_profile_ids": {
            "type": "array",
            "maxItems": 100,
            "uniqueItems": true,
            "items": {
              "type": "integer",
              "format": "int32",
              "minimum": 1
            },
            "example": [
              12
            ],
            "description": "Product Profile IDs selected by the Rule; an empty list leaves this dimension unrestricted."
          },
          "product_profile_match_mode": {
            "type": "string",
            "enum": [
              "any",
              "all",
              "none"
            ],
            "default": "any",
            "example": "any",
            "description": "How the selected Product Profiles are matched. `none` requires at least one ID."
          },
          "handling_class_ids": {
            "type": "array",
            "maxItems": 100,
            "uniqueItems": true,
            "items": {
              "type": "integer",
              "format": "int32",
              "minimum": 1
            },
            "example": [
              4
            ],
            "description": "Handling Class IDs assigned to the Warehouse; an empty list leaves this dimension unrestricted."
          },
          "location_profile_id": {
            "type": "integer",
            "format": "int32",
            "minimum": 1,
            "example": 26,
            "description": "Ready Location Profile in the path Warehouse targeted by the Rule."
          }
        },
        "required": [
          "name",
          "relation",
          "location_profile_id"
        ],
        "additionalProperties": false
      },
      "Inventory_API_v1_SlottingRuleUpdate": {
        "title": "SlottingRuleUpdate",
        "type": "object",
        "minProperties": 1,
        "description": "The body of a partial Slotting Rule update. Omitted properties retain their\nsaved values. Send empty subject lists to clear those selectors.",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "example": "Regulated aerosols prefer the Hazmat pick face",
            "description": "User-visible Rule name."
          },
          "relation": {
            "type": "string",
            "enum": [
              "require",
              "forbid",
              "prefer",
              "discourage"
            ],
            "example": "prefer",
            "description": "Hard requirement or advisory preference applied by the Rule."
          },
          "strength": {
            "type": "string",
            "nullable": true,
            "enum": [
              "low",
              "normal",
              "high",
              "critical",
              null
            ],
            "example": "high",
            "description": "Required for `prefer` and `discourage`. Omit this property for `require`\nand `forbid`; explicitly sending it for a hard Rule is rejected."
          },
          "merchant_ids": {
            "type": "array",
            "nullable": true,
            "maxItems": 100,
            "uniqueItems": true,
            "items": {
              "type": "integer",
              "format": "int32",
              "minimum": 1
            },
            "example": [],
            "description": "Merchant IDs selected by the Rule; `null` or an empty list means every Merchant."
          },
          "product_profile_ids": {
            "type": "array",
            "maxItems": 100,
            "uniqueItems": true,
            "items": {
              "type": "integer",
              "format": "int32",
              "minimum": 1
            },
            "example": [
              12
            ],
            "description": "Product Profile IDs selected by the Rule; an empty list leaves this dimension unrestricted."
          },
          "product_profile_match_mode": {
            "type": "string",
            "enum": [
              "any",
              "all",
              "none"
            ],
            "example": "any",
            "description": "How the selected Product Profiles are matched. `none` requires at least one ID."
          },
          "handling_class_ids": {
            "type": "array",
            "maxItems": 100,
            "uniqueItems": true,
            "items": {
              "type": "integer",
              "format": "int32",
              "minimum": 1
            },
            "example": [
              4
            ],
            "description": "Handling Class IDs assigned to the Warehouse; an empty list leaves this dimension unrestricted."
          },
          "location_profile_id": {
            "type": "integer",
            "format": "int32",
            "minimum": 1,
            "example": 26,
            "description": "Ready Location Profile in the path Warehouse targeted by the Rule."
          }
        },
        "additionalProperties": false
      },
      "Inventory_API_v1_brand-fields-enum": {
        "type": "array",
        "items": {
          "type": "string",
          "enum": [
            "basic",
            "all",
            "code",
            "name",
            "is_active",
            "is_deleted",
            "sort_order"
          ]
        }
      },
      "Inventory_API_v1_CompositeProduct": {
        "anyOf": [
          {
            "$ref": "#/components/schemas/Inventory_API_v1_Product"
          },
          {
            "$ref": "#/components/schemas/Inventory_API_v1_PackagingContainer"
          },
          {
            "$ref": "#/components/schemas/Inventory_API_v1_PackagingSupplies"
          },
          {
            "$ref": "#/components/schemas/Inventory_API_v1_PackagingDataCollection"
          },
          {
            "$ref": "#/components/schemas/Inventory_API_v1_PackagingInstruction"
          },
          {
            "$ref": "#/components/schemas/Inventory_API_v1_PackagingInfill"
          }
        ],
        "discriminator": {
          "propertyName": "type"
        }
      },
      "Inventory_API_v1_products": {
        "type": "object",
        "description": "Lists of referenced objects included by specifying optional fields.\nSee the [selecting fields](/global-api/selecting-fields) page for more information.",
        "properties": {
          "LotType": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Inventory_API_v1_LotType"
            }
          },
          "Merchant": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Inventory_API_v1_Merchant"
            }
          }
        }
      },
      "Inventory_API_v1_CompositeProductRef": {
        "title": "CompositeProductRef",
        "type": "object",
        "description": "A reference to a Product or packaging object by ID.",
        "properties": {
          "type": {
            "type": "string",
            "description": "Concrete Product or packaging object type.",
            "enum": [
              "Product",
              "PackagingContainer",
              "PackagingSupplies",
              "PackagingDataCollection",
              "PackagingInstruction",
              "PackagingInfill"
            ]
          },
          "id": {
            "type": "integer",
            "format": "int64",
            "minimum": 1,
            "description": "Product or packaging ID."
          }
        },
        "required": [
          "type",
          "id"
        ],
        "additionalProperties": false
      },
      "Inventory_API_v1_ProductClassifications": {
        "title": "ProductClassifications",
        "type": "object",
        "description": "Current materialized storage classifications for one Product or packaging object.",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "ProductClassifications"
            ]
          },
          "id": {
            "type": "integer",
            "format": "int64",
            "minimum": 1,
            "description": "Product or packaging ID."
          },
          "product": {
            "description": "Product or packaging object whose classifications are returned.",
            "allOf": [
              {
                "$ref": "#/components/schemas/Inventory_API_v1_CompositeProductRef"
              }
            ]
          },
          "product_profiles": {
            "type": "array",
            "description": "Materialized Product Profile memberships ordered by Product Profile ID. Always empty for disabled or packaging Products.",
            "items": {
              "$ref": "#/components/schemas/Inventory_API_v1_ProductProfileRef"
            }
          },
          "handling_classes_by_warehouse": {
            "type": "array",
            "description": "Materialized Handling Class assignments ordered by Warehouse ID. One entry per Warehouse where the Product is stocked and the Warehouse has at least one Handling Class; Warehouses with no Handling Classes are omitted.",
            "items": {
              "type": "object",
              "properties": {
                "warehouse": {
                  "description": "Warehouse represented by the materialized assignment.",
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/Inventory_API_v1_WarehouseRef"
                    }
                  ]
                },
                "handling_class": {
                  "description": "Assigned Handling Class, or NULL when none is assigned in that Warehouse — because no Handling Class conditions matched, or because the Product is not classifiable (disabled or not a `normal` Product).",
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/Inventory_API_v1_HandlingClassRef"
                    },
                    {
                      "type": "object",
                      "nullable": true,
                      "enum": [
                        null
                      ]
                    }
                  ]
                }
              },
              "required": [
                "warehouse",
                "handling_class"
              ],
              "additionalProperties": false
            }
          }
        },
        "required": [
          "type",
          "id",
          "product",
          "product_profiles",
          "handling_classes_by_warehouse"
        ],
        "additionalProperties": false
      },
      "Inventory_API_v1_product-profile-fields-enum": {
        "title": "ProductProfile",
        "description": "Specify fields of the `ProductProfile` object to include in the response.",
        "type": "array",
        "items": {
          "type": "string",
          "enum": [
            "all",
            "name",
            "code",
            "conditions",
            "conditions_readable",
            "matched_count",
            "classification",
            "created_at",
            "updated_at"
          ]
        }
      },
      "Inventory_API_v1_Detail": {
        "type": "object",
        "properties": {
          "key": {
            "type": "string",
            "description": "Request field or dependency represented by the detail."
          },
          "message": {
            "type": "string",
            "description": "Human-readable detail value."
          }
        },
        "required": [
          "key",
          "message"
        ],
        "additionalProperties": false
      },
      "Inventory_API_v1_BadRequest": {
        "type": "object",
        "properties": {
          "errors": {
            "type": "array",
            "minItems": 1,
            "items": {
              "type": "object",
              "properties": {
                "type": {
                  "type": "string",
                  "description": "Machine-readable request error category.",
                  "enum": [
                    "parser",
                    "parameters",
                    "openapi"
                  ]
                },
                "message": {
                  "type": "string",
                  "description": "Human-readable request error summary."
                },
                "details": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Inventory_API_v1_Detail"
                  }
                }
              },
              "additionalProperties": false
            }
          }
        },
        "additionalProperties": false
      },
      "Inventory_API_v1_Unprocessable": {
        "type": "object",
        "properties": {
          "errors": {
            "type": "array",
            "minItems": 1,
            "items": {
              "type": "object",
              "properties": {
                "type": {
                  "type": "string",
                  "description": "Machine-readable processing error category.",
                  "enum": [
                    "application",
                    "unable_to_process"
                  ]
                },
                "message": {
                  "type": "string",
                  "description": "Human-readable processing error summary."
                },
                "details": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Inventory_API_v1_Detail"
                  }
                }
              },
              "additionalProperties": false
            }
          }
        },
        "additionalProperties": false
      },
      "Inventory_API_v1_ConditionValueSource": {
        "type": "object",
        "description": "Bounded endpoint used to search a field's non-finite values.",
        "properties": {
          "mode": {
            "type": "string",
            "description": "Value loading mode.",
            "enum": [
              "search"
            ]
          },
          "endpoint": {
            "type": "string",
            "description": "Global API endpoint path for value search.",
            "enum": [
              "/api/global/v1/inventory/product-condition-values"
            ]
          },
          "field": {
            "type": "string",
            "description": "Field query parameter to send to the endpoint.",
            "enum": [
              "sku",
              "name",
              "vendor_sku",
              "manufacturer_part_number",
              "external_id",
              "barcode"
            ]
          },
          "minimum_query_length": {
            "type": "integer",
            "minimum": 1,
            "description": "Minimum number of characters required before searching.",
            "example": 2
          },
          "maximum_results": {
            "type": "integer",
            "minimum": 1,
            "description": "Maximum number of returned value options.",
            "example": 50
          }
        },
        "required": [
          "mode",
          "endpoint",
          "field",
          "minimum_query_length",
          "maximum_results"
        ],
        "additionalProperties": false
      },
      "Inventory_API_v1_ConditionField": {
        "type": "object",
        "description": "Public validation and editor metadata for one condition field.",
        "properties": {
          "code": {
            "type": "string",
            "minLength": 1,
            "description": "Field code stored in condition variable operands.",
            "example": "weight"
          },
          "label": {
            "type": "string",
            "minLength": 1,
            "description": "Display label for the field.",
            "example": "Weight"
          },
          "type": {
            "type": "string",
            "description": "Value and editor-control type.",
            "enum": [
              "numeric",
              "measurement",
              "boolean",
              "date",
              "string",
              "select",
              "enum",
              "multiselect"
            ]
          },
          "operators": {
            "type": "array",
            "minItems": 1,
            "description": "Operators accepted for this field.",
            "items": {
              "type": "string",
              "enum": [
                "<",
                "<=",
                "==",
                "!=",
                ">",
                ">=",
                "contains",
                "not_contains",
                "matches",
                "not_matches",
                "in",
                "not_in",
                "contains_any",
                "contains_none"
              ]
            }
          },
          "value_cast": {
            "type": "string",
            "description": "Scalar cast applied by the condition normalizer.",
            "enum": [
              "int",
              "float",
              "string"
            ]
          },
          "options": {
            "type": "object",
            "description": "Finite accepted values mapped to their display labels.",
            "additionalProperties": {
              "type": "string"
            }
          },
          "unit_family": {
            "type": "string",
            "description": "Measurement family used for unit conversion.",
            "enum": [
              "weight",
              "length",
              "volume"
            ]
          },
          "units": {
            "type": "array",
            "minItems": 1,
            "description": "Unit codes accepted for a measurement field.",
            "items": {
              "type": "string",
              "minLength": 1
            }
          },
          "base_unit": {
            "type": "string",
            "minLength": 1,
            "description": "Unit used for normalized comparison values.",
            "example": "lb"
          },
          "value_source": {
            "$ref": "#/components/schemas/Inventory_API_v1_ConditionValueSource"
          }
        },
        "required": [
          "code",
          "label",
          "type",
          "operators"
        ],
        "additionalProperties": false
      },
      "Inventory_API_v1_ConditionFieldGroup": {
        "type": "object",
        "description": "A labeled group of related condition fields.",
        "properties": {
          "code": {
            "type": "string",
            "minLength": 1,
            "description": "Stable group code.",
            "example": "general"
          },
          "label": {
            "type": "string",
            "minLength": 1,
            "description": "Display label for the group.",
            "example": "General"
          },
          "fields": {
            "type": "array",
            "description": "Available condition fields in display order.",
            "items": {
              "$ref": "#/components/schemas/Inventory_API_v1_ConditionField"
            }
          }
        },
        "required": [
          "code",
          "label",
          "fields"
        ],
        "additionalProperties": false
      },
      "Inventory_API_v1_ConditionExpression": {
        "type": "object",
        "description": "Metadata for a raw CEL expression condition row.",
        "properties": {
          "code": {
            "type": "string",
            "minLength": 1,
            "description": "Stable expression-row code.",
            "example": "expr"
          },
          "label": {
            "type": "string",
            "minLength": 1,
            "description": "Display label for a raw expression row.",
            "example": "Expression is true"
          },
          "help_url": {
            "type": "string",
            "format": "uri",
            "description": "CEL reference for condition authors.",
            "example": "https://help.shipstream.io/scripting/common-expression-language"
          }
        },
        "required": [
          "code",
          "label",
          "help_url"
        ],
        "additionalProperties": false
      },
      "Inventory_API_v1_product-profile-member-fields-enum": {
        "title": "Product Profile Member Product",
        "description": "Specify additional fields of member `Product` objects to include in the response.",
        "type": "array",
        "items": {
          "type": "string",
          "enum": [
            "basic",
            "all",
            "created_at",
            "updated_at",
            "vendor_sku",
            "manufacturer_part_number",
            "external_id",
            "barcodes",
            "goods_type",
            "is_available",
            "is_visible",
            "weight",
            "dimensions",
            "volume",
            "inventory",
            "export",
            "regulated_goods",
            "packaging",
            "custom_fields"
          ]
        }
      },
      "Inventory_API_v1_ProductProfileMember": {
        "title": "ProductProfileMember",
        "description": "A regular Product materialized as a member of a Product Profile.",
        "allOf": [
          {
            "$ref": "#/components/schemas/Inventory_API_v1_Product"
          }
        ]
      },
      "Inventory_API_v1_handling-class-fields-enum": {
        "title": "HandlingClass",
        "description": "Specify fields of the `HandlingClass` object to include in the response.",
        "type": "array",
        "items": {
          "type": "string",
          "enum": [
            "all",
            "name",
            "code",
            "sort_order",
            "warehouses",
            "conditions",
            "referenced_product_profiles",
            "conditions_readable",
            "matched_count",
            "classification",
            "created_at",
            "updated_at"
          ]
        }
      },
      "Inventory_API_v1_handling-classes": {
        "type": "object",
        "description": "Related Warehouses and Product Profiles requested through nested `fields:*` parameters.",
        "example": {},
        "properties": {
          "Warehouse": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Inventory_API_v1_Warehouse"
            }
          },
          "ProductProfile": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Inventory_API_v1_ProductProfile"
            }
          }
        },
        "additionalProperties": false
      },
      "Inventory_API_v1_Levels": {
        "title": "Levels",
        "type": "object",
        "description": "Base inventory quantity fields shared by all inventory level types.",
        "properties": {
          "qty_allocated": {
            "type": "number",
            "format": "float",
            "description": "Quantity allocated for orders",
            "example": 10.5
          },
          "qty_reserved": {
            "type": "number",
            "format": "float",
            "description": "Quantity reserved for picking",
            "example": 15.25
          },
          "qty_picked": {
            "type": "number",
            "format": "float",
            "description": "Quantity picked but not packed",
            "example": 8
          },
          "qty_expected": {
            "type": "number",
            "format": "float",
            "description": "Quantity expected from deliveries",
            "example": 100
          },
          "qty_processed": {
            "type": "number",
            "format": "float",
            "description": "Quantity processed from deliveries but not put-away",
            "example": 75.5
          },
          "qty_putaway": {
            "type": "number",
            "format": "float",
            "description": "Quantity waiting to be put away",
            "example": 25
          },
          "qty_available": {
            "type": "number",
            "format": "float",
            "description": "Quantity available for allocation",
            "example": 150.75
          },
          "qty_held": {
            "type": "number",
            "format": "float",
            "description": "Quantity placed on hold (e.g. quarantined, damaged, expired).\nExcluded from `qty_advertised` and unavailable for allocation, but still\ncounted in `qty_on_hand` because it is physically present in the warehouse.\n",
            "example": 12
          },
          "qty_on_hand": {
            "type": "number",
            "format": "float",
            "description": "Total physical quantity on hand",
            "example": 200
          },
          "qty_advertised": {
            "type": "integer",
            "nullable": true,
            "description": "Quantity advertised to customers",
            "example": 180
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "When inventory was last updated",
            "example": "2025-08-28T10:30:00Z"
          }
        },
        "required": [
          "qty_allocated",
          "qty_reserved",
          "qty_picked",
          "qty_expected",
          "qty_processed",
          "qty_putaway",
          "qty_available",
          "qty_held",
          "qty_on_hand",
          "updated_at"
        ]
      },
      "Inventory_API_v1_TotalLevel": {
        "title": "TotalLevel",
        "allOf": [
          {
            "type": "object",
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "TotalLevel"
                ],
                "description": "Resource type identifier"
              },
              "product": {
                "allOf": [
                  {
                    "description": "Reference to the product"
                  },
                  {
                    "$ref": "#/components/schemas/Inventory_API_v1_StockableProductRef"
                  }
                ]
              },
              "qty_backordered": {
                "type": "number",
                "format": "float",
                "description": "Quantity backordered",
                "example": 5
              }
            },
            "required": [
              "type",
              "product",
              "qty_backordered"
            ]
          },
          {
            "$ref": "#/components/schemas/Inventory_API_v1_Levels"
          }
        ],
        "description": "Total inventory levels aggregated across all warehouses for a specific product.\n\nThis provides a system-wide view of inventory quantities, combining data from all \nwarehouses where the product is stocked.",
        "example": {
          "type": "TotalLevel",
          "product": {
            "type": "Product",
            "id": 5,
            "sku": "ABC123"
          },
          "qty_allocated": 15,
          "qty_backordered": 0,
          "qty_reserved": 7,
          "qty_picked": 2,
          "qty_expected": 100,
          "qty_processed": 0,
          "qty_putaway": 50,
          "qty_available": 166,
          "qty_on_hand": 230,
          "qty_advertised": 195,
          "updated_at": "2025-08-28T10:30:00Z"
        }
      },
      "Inventory_API_v1_WarehouseLevel": {
        "title": "WarehouseLevel",
        "allOf": [
          {
            "type": "object",
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "WarehouseLevel"
                ],
                "description": "Type discriminator for warehouse-level inventory"
              },
              "product": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Inventory_API_v1_StockableProductRef"
                  }
                ]
              },
              "warehouse": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Inventory_API_v1_WarehouseRef"
                  }
                ]
              }
            },
            "required": [
              "type",
              "product",
              "warehouse"
            ]
          },
          {
            "$ref": "#/components/schemas/Inventory_API_v1_Levels"
          }
        ],
        "description": "Warehouse-specific inventory levels for a product at a particular warehouse.\n\nThis provides inventory quantities for a specific product at a specific warehouse,\nshowing the stock situation at that individual location.",
        "example": {
          "type": "WarehouseLevel",
          "product": {
            "type": "Product",
            "id": 5,
            "sku": "ABC123"
          },
          "warehouse": {
            "type": "Warehouse",
            "id": 1,
            "name": "Main Warehouse"
          },
          "qty_allocated": 15,
          "qty_reserved": 7,
          "qty_picked": 2,
          "qty_expected": 100,
          "qty_processed": 0,
          "qty_putaway": 50,
          "qty_available": 166,
          "qty_on_hand": 230,
          "qty_advertised": 195,
          "updated_at": "2025-08-28T10:30:00Z"
        }
      },
      "Inventory_API_v1_DimensionsWHDNonNegative": {
        "title": "DimensionsWHDNonNegative",
        "type": "object",
        "nullable": true,
        "description": "Interior dimensions that describe physical extents, so none of them may be negative. All three\naxes are supplied together; send `null` rather than a partial object to clear them.",
        "required": [
          "width",
          "height",
          "depth"
        ],
        "properties": {
          "width": {
            "type": "number",
            "description": "The width defined as a floating-point number up to 4 decimal places.",
            "format": "float",
            "minimum": 0,
            "maximum": 99999999.999999,
            "example": 48
          },
          "height": {
            "type": "number",
            "description": "The height defined as a floating-point number up to 4 decimal places.",
            "format": "float",
            "minimum": 0,
            "maximum": 99999999.999999,
            "example": 60
          },
          "depth": {
            "type": "number",
            "description": "The depth defined as a floating-point number up to 4 decimal places.",
            "format": "float",
            "minimum": 0,
            "maximum": 99999999.999999,
            "example": 42
          },
          "unit": {
            "$ref": "#/components/schemas/Inventory_API_v1_LengthUnit"
          }
        }
      },
      "Inventory_API_v1_hold-reason-fields-enum": {
        "title": "HoldReason",
        "description": "Specify additional fields of the `HoldReason` object to be included in the response.",
        "type": "array",
        "items": {
          "type": "string",
          "enum": [
            "basic",
            "all",
            "code",
            "label",
            "parent_code",
            "allow_relocation",
            "sort_order",
            "is_active",
            "is_system",
            "children",
            "parent",
            "merchants"
          ]
        }
      },
      "Inventory_API_v1_HoldReason": {
        "title": "HoldReason",
        "type": "object",
        "description": "An inventory hold reason. System (parent) reasons are seeded and immutable; user-defined\nchild reasons can be added under any system parent and inherit `allow_relocation`\nsemantics. Schema enforces a single nesting level: parent reasons MAY include a `children`\narray; child reasons do NOT carry a `children` key.",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "HoldReason"
            ],
            "readOnly": true,
            "description": "This is a read-only property that describes the type of object in the response body."
          },
          "id": {
            "type": "integer",
            "format": "int32",
            "description": "Internal reason_id. Emitted on top-level reasons (the framework merges it into every\nresource envelope); inline child reasons under a parent's `children` array omit it,\nso this property is optional.\n",
            "example": 12
          },
          "code": {
            "type": "string",
            "description": "Stable identifier (immutable for system reasons).",
            "example": "damaged"
          },
          "label": {
            "type": "string",
            "description": "Human-readable label.",
            "example": "Damaged"
          },
          "parent_code": {
            "type": "string",
            "nullable": true,
            "description": "For child reasons, the `code` of the parent (system) reason. NULL for parent (system) reasons.\n",
            "example": "damaged"
          },
          "allow_relocation": {
            "type": "boolean",
            "nullable": true,
            "description": "Whether held inventory under this reason may be relocated. NULL means \"inherit from parent\".\n",
            "example": false
          },
          "sort_order": {
            "type": "integer",
            "description": "Display order within siblings.",
            "example": 30
          },
          "is_active": {
            "type": "boolean",
            "description": "Whether this reason is currently active.",
            "example": true
          },
          "is_system": {
            "type": "boolean",
            "description": "Whether this reason is a seeded system reason (immutable).",
            "example": true
          },
          "children": {
            "type": "array",
            "description": "User-defined child reasons under this parent. Present only on parent reasons; child\nreasons omit this key. Each child has the same field shape minus `children`.\n",
            "items": {
              "$ref": "#/components/schemas/Inventory_API_v1_HoldReason"
            }
          },
          "parent": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Inventory_API_v1_HoldReasonRef"
              }
            ],
            "nullable": true,
            "description": "Reference to the parent system reason. Opt-in via `?fields=parent`; only meaningful\non single-resource GET/POST endpoints. NULL for system (root) reasons.\\\n  `Optional Field`"
          },
          "merchants": {
            "type": "array",
            "description": "Merchant scope restrictions. Opt-in via `?fields=merchants`. Empty array means\nvisible to all merchants (unrestricted). Each entry is a compact `{type, id}` ref.\\\n  `Optional Field`",
            "items": {
              "$ref": "#/components/schemas/Inventory_API_v1_MerchantRef"
            }
          }
        },
        "required": [
          "type",
          "code",
          "label",
          "sort_order",
          "is_active",
          "is_system"
        ],
        "additionalProperties": false
      },
      "Inventory_API_v1_HoldReasonRef": {
        "title": "HoldReasonRef",
        "type": "object",
        "description": "Reference to a `HoldReason` by `id`.",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "HoldReason"
            ],
            "description": "This property describes the type of object in the response body."
          },
          "id": {
            "type": "integer",
            "format": "int32",
            "example": 3,
            "description": "The internal `reason_id` of the hold reason."
          }
        },
        "required": [
          "type",
          "id"
        ],
        "nullable": true,
        "additionalProperties": false
      },
      "Inventory_API_v1_LocationRef": {
        "title": "LocationRef",
        "type": "object",
        "description": "A reference to a `Location` by `id`.",
        "properties": {
          "type": {
            "type": "string",
            "description": "This property describes the type of object in the response body.",
            "enum": [
              "Location"
            ]
          },
          "id": {
            "type": "integer",
            "format": "int32",
            "example": 42,
            "description": "The internal `id` property used as a path parameter in a resource lookup."
          }
        },
        "required": [
          "type",
          "id"
        ],
        "nullable": true,
        "additionalProperties": false
      },
      "Inventory_API_v1_RequesterRef": {
        "title": "RequesterRef",
        "type": "object",
        "description": "Reference a requester (who/what performed an action) by `type` and `id`.",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "Requester"
            ],
            "example": "Requester",
            "description": "The resource type (always \"Requester\")."
          },
          "id": {
            "type": "integer",
            "format": "int32",
            "example": 3,
            "description": "The internal requester ID (`requester_id`)."
          }
        },
        "required": [
          "type",
          "id"
        ],
        "additionalProperties": false
      },
      "Inventory_API_v1_Hold": {
        "title": "Hold",
        "type": "object",
        "description": "An inventory hold record. Cross-merchant view (Global API surface).\n\n**Releasing cascaded holds:** when `holdLot` is called with `cascade_bom=true`, free the\ncascade tree by releasing each child via `POST /holds/{id}/release`, using\n`origin.created_origin_hold_ids ∪ cascade.child_hold_ids` from the original `holdLot`\nresponse.\n\n**Do not** include `origin.root_hold_ids` blindly in the release set — those may include\npre-existing roots from a prior `cascadeLotHold` call that this call attached children to,\nand releasing them would also release siblings the current caller did not place.",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "Hold"
            ],
            "readOnly": true
          },
          "id": {
            "type": "integer",
            "format": "int64",
            "description": "Internal `hold_id` primary key.",
            "readOnly": true,
            "example": 142
          },
          "merchant": {
            "description": "Merchant that owns the held product.",
            "allOf": [
              {
                "$ref": "#/components/schemas/Inventory_API_v1_MerchantRef"
              }
            ]
          },
          "warehouse": {
            "description": "Warehouse where the held inventory lives.",
            "allOf": [
              {
                "$ref": "#/components/schemas/Inventory_API_v1_WarehouseRef"
              }
            ]
          },
          "product": {
            "description": "Product whose inventory is on hold.",
            "allOf": [
              {
                "$ref": "#/components/schemas/Inventory_API_v1_StockableProductRef"
              }
            ]
          },
          "location": {
            "description": "Specific location holding the inventory (label included).",
            "allOf": [
              {
                "$ref": "#/components/schemas/Inventory_API_v1_LocationRef"
              }
            ]
          },
          "lot": {
            "description": "Lot whose inventory is on hold (NULL when the hold is location-scope without a lot).",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/Inventory_API_v1_LotRef"
              }
            ]
          },
          "reason": {
            "type": "object",
            "description": "Hold reason — emitted inline with parent_code resolved.",
            "properties": {
              "code": {
                "type": "string",
                "description": "Reason code (system or user-defined).",
                "example": "damaged"
              },
              "label": {
                "type": "string",
                "description": "Human-readable reason label.",
                "example": "Damaged"
              },
              "parent_code": {
                "type": "string",
                "nullable": true,
                "description": "Parent (system) reason code; NULL when this reason is itself a system parent.",
                "example": "damaged"
              }
            },
            "required": [
              "code",
              "label"
            ]
          },
          "qty": {
            "type": "number",
            "format": "float",
            "description": "Held quantity.",
            "example": 12
          },
          "held_at": {
            "type": "string",
            "format": "date-time",
            "description": "When the hold was placed.",
            "example": "2026-04-28T14:32:00Z"
          },
          "held_by": {
            "nullable": true,
            "description": "Requester who placed the hold (admin user, client user, API key, integration, etc.).",
            "allOf": [
              {
                "$ref": "#/components/schemas/Inventory_API_v1_RequesterRef"
              }
            ]
          },
          "released_at": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "description": "When the hold was released (NULL while still active).",
            "example": null
          },
          "released_by": {
            "nullable": true,
            "description": "Requester who released the hold.",
            "allOf": [
              {
                "$ref": "#/components/schemas/Inventory_API_v1_RequesterRef"
              }
            ]
          },
          "notes": {
            "type": "string",
            "nullable": true,
            "description": "Free-form notes attached at place / release time.",
            "example": "Damaged in receiving"
          },
          "status": {
            "type": "string",
            "enum": [
              "active",
              "released"
            ],
            "description": "Computed from released_at; 'active' when released_at IS NULL.",
            "example": "active"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "description": "Last meaningful timestamp (released_at when present, otherwise held_at).",
            "example": "2026-04-28T14:32:00Z"
          }
        },
        "required": [
          "type",
          "id",
          "qty",
          "held_at",
          "status"
        ]
      },
      "Receiving_API_v1_delivery-fields-enum": {
        "title": "Delivery",
        "type": "array",
        "items": {
          "type": "string",
          "enum": [
            "basic",
            "all",
            "customer_name",
            "carrier_name",
            "authorized_at",
            "delivered_at",
            "receive_by",
            "processed_at",
            "putaway_at",
            "completed_at",
            "ready_to_process_at",
            "merchant_rma_number",
            "merchant_status",
            "carrier_tracking_number",
            "merchant_order_number",
            "item_count",
            "container_count",
            "label_count",
            "exception_count",
            "processing_comments",
            "special_requirements",
            "is_auto_commit",
            "order",
            "created_at",
            "updated_at",
            "supplier_name",
            "expected_at",
            "merchant_reference",
            "supplier_invoice_reference",
            "supplier_order_reference",
            "shipment_type",
            "bill_of_lading",
            "tracking_numbers",
            "standard_carrier_alpha_code",
            "status_history",
            "items"
          ]
        }
      },
      "Receiving_API_v1_merchant-fields-enum": {
        "title": "Merchant",
        "type": "array",
        "items": {
          "type": "string",
          "enum": [
            "basic",
            "all",
            "code",
            "name",
            "status",
            "created_at",
            "updated_at",
            "brands",
            "default_brand",
            "custom_fields"
          ]
        }
      },
      "Receiving_API_v1_warehouse-fields-enum": {
        "title": "Warehouse",
        "description": "Specify additional fields of the `Warehouse` object to be included in the response.",
        "type": "array",
        "items": {
          "type": "string",
          "enum": [
            "basic",
            "all",
            "id",
            "name",
            "is_active",
            "abbreviation"
          ]
        }
      },
      "Receiving_API_v1_status_history-fields-enum": {
        "title": "DeliveryStatusHistory",
        "type": "array",
        "items": {
          "type": "string",
          "enum": [
            "all",
            "delivery_item",
            "status",
            "exception",
            "exception_status",
            "comment",
            "user",
            "created_at",
            "package"
          ]
        }
      },
      "Receiving_API_v1_delivery-item-fields-enum": {
        "title": "DeliveryItem",
        "type": "array",
        "items": {
          "type": "string",
          "enum": [
            "basic",
            "all",
            "product",
            "quantity",
            "qty_expected",
            "qty_received",
            "qty_shortage",
            "qty_overage",
            "qty_processed",
            "qty_putaway",
            "qty_committed",
            "qty_returned",
            "is_sku_merge_email_sent",
            "lots",
            "locations",
            "exceptions"
          ]
        }
      },
      "Receiving_API_v1_product-packaging-fields-enum": {
        "title": "Product Or Packaging",
        "description": "Specify additional fields of the `Product` or `Packaging*` object to be included in the response.",
        "type": "array",
        "items": {
          "type": "string",
          "enum": [
            "basic",
            "all",
            "created_at",
            "updated_at",
            "container_options",
            "supplies_options",
            "data_collection_options",
            "instruction_options",
            "infill_options",
            "vendor_sku",
            "manufacturer_part_number",
            "external_id",
            "barcodes",
            "goods_type",
            "is_available",
            "is_visible",
            "weight",
            "dimensions",
            "volume",
            "inventory",
            "export",
            "regulated_goods",
            "packaging",
            "custom_fields"
          ]
        }
      },
      "Receiving_API_v1_delivery-exception-fields-enum": {
        "title": "DeliveryException",
        "type": "array",
        "items": {
          "type": "string",
          "enum": [
            "basic",
            "all",
            "container",
            "lot",
            "status",
            "sign",
            "reason",
            "comment",
            "quantity"
          ]
        }
      },
      "Receiving_API_v1_delivery-item-lot-fields-enum": {
        "title": "DeliveryItemLot",
        "type": "array",
        "items": {
          "type": "string",
          "enum": [
            "all",
            "lot",
            "qty_counted",
            "qty_putaway"
          ]
        }
      },
      "Receiving_API_v1_delivery-item-location-fields-enum": {
        "title": "DeliveryItemLocation",
        "type": "array",
        "items": {
          "type": "string",
          "enum": [
            "all",
            "location",
            "qty_putaway",
            "qty_committed"
          ]
        }
      },
      "Receiving_API_v1_delivery-container-fields-enum": {
        "title": "DeliveryContainer",
        "type": "array",
        "items": {
          "type": "string",
          "enum": [
            "basic",
            "all",
            "label",
            "type",
            "status",
            "weight",
            "length",
            "width",
            "height",
            "total_skus",
            "total_qty",
            "contents"
          ]
        }
      },
      "Receiving_API_v1_delivery-container-type-fields-enum": {
        "title": "DeliveryContainerType",
        "type": "array",
        "items": {
          "type": "string",
          "enum": [
            "basic",
            "all",
            "is_default",
            "is_system"
          ]
        }
      },
      "Receiving_API_v1_WarehouseRef": {
        "title": "WarehouseRef",
        "type": "object",
        "description": "A reference to a `Warehouse` by `id`.",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "Warehouse"
            ],
            "description": "This property describes the type of object in the response body."
          },
          "id": {
            "type": "integer",
            "format": "int32",
            "description": "The internal `id` property used as a path parameter in a resource lookup."
          }
        },
        "required": [
          "type",
          "id"
        ],
        "nullable": true,
        "additionalProperties": false
      },
      "Receiving_API_v1_MerchantRef": {
        "title": "MerchantRef",
        "type": "object",
        "description": "Reference a `Merchant` by `id`.",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "Merchant"
            ]
          },
          "id": {
            "type": "integer",
            "format": "int32",
            "example": 4,
            "description": "The internal `id` property used as a path parameter in a resource lookup."
          }
        },
        "required": [
          "type",
          "id"
        ],
        "additionalProperties": false
      },
      "Receiving_API_v1_created_at-optional": {
        "type": "string",
        "format": "date-time",
        "description": "The date and time the object was created in RFC 3339 section 5.6 notation.\\\n  `Optional Field`",
        "example": "2017-07-21T17:32:28Z",
        "nullable": true,
        "readOnly": true
      },
      "Receiving_API_v1_updated_at-optional": {
        "type": "string",
        "format": "date-time",
        "description": "The date and time the object was last updated in RFC 3339 section 5.6 notation.",
        "example": "2017-07-21T17:39:43Z",
        "nullable": true,
        "readOnly": true
      },
      "Receiving_API_v1_ProductRef": {
        "title": "ProductRef",
        "type": "object",
        "description": "A reference to a `Product` object by `id`.",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "Product"
            ],
            "description": "This property describes the type of object in the response body."
          },
          "id": {
            "type": "integer",
            "format": "int32",
            "example": 3,
            "description": "The internal `id` property used as a path parameter in a resource lookup."
          }
        },
        "required": [
          "type",
          "id"
        ],
        "additionalProperties": false
      },
      "Receiving_API_v1_DeliveryItemLotRef": {
        "title": "DeliveryItemLotRef",
        "type": "object",
        "description": "A reference to `DeliveryItemLot` object.",
        "properties": {
          "type": {
            "type": "string",
            "readOnly": true,
            "enum": [
              "DeliveryItemLot"
            ]
          },
          "id": {
            "type": "integer",
            "format": "int32",
            "example": 3,
            "readOnly": true,
            "description": "The internal `id` property used as a path parameter in a resource lookup."
          }
        }
      },
      "Receiving_API_v1_DeliveryItemLocationRef": {
        "title": "DeliveryItemLocationRef",
        "type": "object",
        "description": "A reference to `DeliveryItemLocation` object.",
        "properties": {
          "type": {
            "type": "string",
            "readOnly": true,
            "enum": [
              "DeliveryItemLocation"
            ]
          },
          "id": {
            "type": "integer",
            "format": "int32",
            "example": 3,
            "readOnly": true,
            "description": "The internal `id` property used as a path parameter in a resource lookup."
          }
        }
      },
      "Receiving_API_v1_DeliveryExceptionRef": {
        "title": "DeliveryExceptionRef",
        "type": "object",
        "description": "A reference to `DeliveryException` object.",
        "properties": {
          "type": {
            "type": "string",
            "readOnly": true,
            "enum": [
              "DeliveryException"
            ]
          },
          "id": {
            "type": "integer",
            "format": "int32",
            "example": 3,
            "readOnly": true,
            "description": "The internal `id` property used as a path parameter in a resource lookup."
          }
        }
      },
      "Receiving_API_v1_DeliveryItem": {
        "title": "DeliveryItem",
        "type": "object",
        "description": "An object to represent `DeliveryItem`.",
        "properties": {
          "type": {
            "type": "string",
            "readOnly": true,
            "enum": [
              "DeliveryItem"
            ]
          },
          "id": {
            "type": "integer",
            "format": "int32",
            "example": 3,
            "readOnly": true,
            "description": "The internal `id` property used as a path parameter in a resource lookup."
          },
          "product": {
            "$ref": "#/components/schemas/Receiving_API_v1_ProductRef"
          },
          "quantity": {
            "type": "number",
            "description": "The quantity of items in the delivery.",
            "format": "float"
          },
          "qty_expected": {
            "type": "number",
            "description": "The quantity of items expected in the delivery.",
            "format": "float"
          },
          "qty_received": {
            "type": "number",
            "description": "The quantity of items received at the time of delivery.",
            "format": "float"
          },
          "qty_shortage": {
            "type": "number",
            "description": "The quantity of missing items in the delivery.",
            "format": "float"
          },
          "qty_overage": {
            "type": "number",
            "description": "The quantity of extra items in the delivery.",
            "format": "float"
          },
          "qty_processed": {
            "type": "number",
            "description": "The quantity of items processed in the delivery.",
            "format": "float"
          },
          "qty_putaway": {
            "type": "number",
            "description": "The quantity of items in \"put-away\".",
            "format": "float"
          },
          "qty_committed": {
            "type": "number",
            "description": "The quantity of items committed in the delivery.",
            "format": "float"
          },
          "qty_returned": {
            "type": "number",
            "description": "The quantity of items returned in the delivery.",
            "format": "float"
          },
          "is_sku_merge_email_sent": {
            "type": "boolean",
            "description": "A flag indicating if the SKU merge email was sent.",
            "enum": [
              true,
              false
            ]
          },
          "lots": {
            "type": "array",
            "description": "The item lot associated with the delivery item.",
            "readOnly": true,
            "items": {
              "$ref": "#/components/schemas/Receiving_API_v1_DeliveryItemLotRef"
            }
          },
          "locations": {
            "type": "array",
            "description": "The location assigned to the delivery item.",
            "readOnly": true,
            "items": {
              "$ref": "#/components/schemas/Receiving_API_v1_DeliveryItemLocationRef"
            }
          },
          "exceptions": {
            "type": "array",
            "description": "An array of exceptions for the delivery item.",
            "readOnly": true,
            "items": {
              "$ref": "#/components/schemas/Receiving_API_v1_DeliveryExceptionRef"
            }
          }
        }
      },
      "Receiving_API_v1_RequesterRef": {
        "title": "RequesterRef",
        "type": "object",
        "description": "Reference a requester (who/what performed an action) by `type` and `id`.",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "Requester"
            ],
            "example": "Requester",
            "description": "The resource type (always \"Requester\")."
          },
          "id": {
            "type": "integer",
            "format": "int32",
            "example": 3,
            "description": "The internal requester ID (`requester_id`)."
          }
        },
        "required": [
          "type",
          "id"
        ],
        "additionalProperties": false
      },
      "Receiving_API_v1_created_at": {
        "type": "string",
        "format": "date-time",
        "description": "The date and time the object was created in RFC 3339 section 5.6 notation.",
        "example": "2017-07-21T17:32:28Z",
        "readOnly": true
      },
      "Receiving_API_v1_DeliveryStatusHistory": {
        "title": "DeliveryStatusHistory",
        "type": "object",
        "description": "A `DeliveryStatusHistory` represents a status history of a delivery.",
        "properties": {
          "delivery_item": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Receiving_API_v1_DeliveryItem"
              },
              {
                "description": "The item being delivered which includes inventory quantities and stock movement information. "
              }
            ]
          },
          "status": {
            "type": "string",
            "description": "The status of the delivery at the time the history event was added.",
            "readOnly": true,
            "enum": [
              "new",
              "accepting",
              "accepted",
              "ready_to_process",
              "processing",
              "processing_exception",
              "processed",
              "putting_away",
              "put_away",
              "complete",
              "canceled",
              "void"
            ]
          },
          "exception": {
            "type": "object",
            "description": "The processing exception of the container in the delivery.",
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "Exception"
                ]
              },
              "id": {
                "type": "integer",
                "description": "The internal id property used as a path parameter in a resource lookup."
              }
            }
          },
          "exception_status": {
            "type": "string",
            "description": "The status of the processing exception.",
            "enum": [
              "new",
              "pending",
              "approved",
              "rejected",
              "void"
            ]
          },
          "comment": {
            "type": "string",
            "description": "An optional description for the history event which can be added programatically.",
            "readOnly": true
          },
          "requester": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Receiving_API_v1_RequesterRef"
              }
            ],
            "nullable": true,
            "description": "The requester attributed to the delivery's status history update."
          },
          "created_at": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Receiving_API_v1_created_at"
              }
            ]
          },
          "package": {
            "type": "object",
            "description": "The package associated with the delivery.",
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "Package"
                ]
              },
              "id": {
                "type": "integer",
                "description": "The internal `id` property used as a path parameter in a resource lookup."
              }
            }
          }
        }
      },
      "Receiving_API_v1_DeliveryAbstract": {
        "type": "object",
        "properties": {
          "warehouse": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Receiving_API_v1_WarehouseRef"
              },
              {
                "description": "The `Warehouse` which is the destination for this delivery."
              }
            ]
          },
          "merchant": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Receiving_API_v1_MerchantRef"
              },
              {
                "description": "The `Merchant` to which this delivery belongs."
              }
            ]
          },
          "increment_id": {
            "type": "string",
            "example": "11000020",
            "description": "Unique identifier for the `Delivery`.",
            "readOnly": true
          },
          "state": {
            "type": "string",
            "description": "This describes the high-level, overall progress of the delivery.",
            "enum": [
              "new",
              "processing",
              "putting_away",
              "pending_commit",
              "complete",
              "canceled"
            ],
            "readOnly": true
          },
          "status": {
            "type": "string",
            "description": "This describes the low-level details of the current process of the delivery.",
            "enum": [
              "new",
              "accepting",
              "accepted",
              "ready_to_process",
              "processing",
              "processing_exception",
              "processed",
              "putting_away",
              "put_away",
              "complete",
              "canceled",
              "void"
            ],
            "readOnly": true
          },
          "progress_percent": {
            "type": "integer",
            "description": "The overall delivery completion progress from 0 to 100 percent.",
            "minimum": 0,
            "maximum": 100,
            "readOnly": true
          },
          "carrier_name": {
            "type": "string",
            "description": "The name of the carrier assigned to the delivery.",
            "minLength": 1,
            "maxLength": 255
          },
          "delivered_at": {
            "type": "string",
            "format": "date-time",
            "example": "2019-12-03T21:06:26Z",
            "readOnly": true,
            "nullable": true,
            "description": "The date and time the delivery was delivered in RFC 3339 section 5.6 notation. This corresponds with the \"Delivered At\" field in the ShipStream UI. \\\n  `Optional Field`"
          },
          "receive_by": {
            "type": "string",
            "format": "date-time",
            "example": "2019-12-03T21:06:26Z",
            "readOnly": true,
            "nullable": true,
            "description": "The date and time the delivery was received in RFC 3339 section 5.6 notation. \\\n  `Optional Field`"
          },
          "processed_at": {
            "type": "string",
            "format": "date-time",
            "example": "2019-12-03T21:06:26Z",
            "readOnly": true,
            "nullable": true,
            "description": "The date and time the delivery was processed in RFC 3339 section 5.6 notation. \\\n  `Optional Field`"
          },
          "putaway_at": {
            "type": "string",
            "format": "date-time",
            "example": "2019-12-03T21:06:26Z",
            "readOnly": true,
            "nullable": true,
            "description": "The date and time the delivery was put away in RFC 3339 section 5.6 notation. \\\n  `Optional Field`"
          },
          "completed_at": {
            "type": "string",
            "format": "date-time",
            "example": "2019-12-03T21:06:26Z",
            "readOnly": true,
            "nullable": true,
            "description": "The date and time the delivery was completed in RFC 3339 section 5.6 notation. \\\n  `Optional Field`"
          },
          "ready_to_process_at": {
            "type": "string",
            "format": "date-time",
            "example": "2019-12-03T21:06:26Z",
            "readOnly": true,
            "nullable": true,
            "description": "The date and time the delivery will be ready to process in RFC 3339 section 5.6 notation. \\\n  `Optional Field`"
          },
          "merchant_status": {
            "type": "string",
            "description": "The merchant status for a delivery.",
            "minLength": 1,
            "maxLength": 45,
            "nullable": true
          },
          "item_count": {
            "type": "integer",
            "description": "The quantity of delivery items.",
            "readOnly": true
          },
          "container_count": {
            "type": "integer",
            "description": "The quantity of delivery containers.",
            "readOnly": true
          },
          "label_count": {
            "type": "integer",
            "description": "The quantity of delivery labels.",
            "readOnly": true
          },
          "exception_count": {
            "type": "integer",
            "description": "The quantity of delivery exceptions.",
            "readOnly": true
          },
          "processing_comments": {
            "type": "string",
            "description": "Comments for the delivery are recorded in the History tab of the ShipStream Delivery view. This corresponds to Processing Options > Processing Comments when creating a delivery.",
            "minLength": 1,
            "maxLength": 1000,
            "nullable": true
          },
          "special_requirements": {
            "type": "array",
            "description": "Special delivery requirements are set in the ShipStream Configurations.",
            "items": {
              "type": "string"
            }
          },
          "is_auto_commit": {
            "type": "boolean",
            "description": "This is a flag indicating whether or not inventory can be commited automatically. 0 - Disabled, 1 - Enabled, 2 - Use default from config."
          },
          "created_at": {
            "$ref": "#/components/schemas/Receiving_API_v1_created_at-optional"
          },
          "updated_at": {
            "$ref": "#/components/schemas/Receiving_API_v1_updated_at-optional"
          },
          "tracking_numbers": {
            "type": "array",
            "description": "The tracking numbers associated with the delivery.",
            "items": {
              "type": "string"
            }
          },
          "status_history": {
            "type": "array",
            "description": "A log of updates, comments and status changes added to this object.",
            "readOnly": true,
            "items": {
              "allOf": [
                {
                  "$ref": "#/components/schemas/Receiving_API_v1_DeliveryStatusHistory"
                }
              ]
            }
          },
          "items": {
            "type": "array",
            "description": "The items included in this delivery.",
            "readOnly": true,
            "items": {
              "$ref": "#/components/schemas/Receiving_API_v1_DeliveryItem"
            }
          }
        },
        "required": [
          "type",
          "warehouse"
        ]
      },
      "Receiving_API_v1_ASN": {
        "title": "ASN",
        "description": "An `ASN` (Advanced Shipping Notification) delivery object.",
        "allOf": [
          {
            "type": "object",
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "ASN"
                ],
                "description": "This property describes the type of object in the response body."
              },
              "id": {
                "type": "integer",
                "readOnly": true,
                "description": "The internal `id` property used as a path parameter in a resource lookup."
              },
              "supplier_name": {
                "type": "string",
                "description": "Name of the supplier.",
                "minLength": 1,
                "maxLength": 255,
                "nullable": true
              },
              "expected_at": {
                "type": "string",
                "format": "date-time",
                "example": "2019-12-03T21:06:26Z",
                "readOnly": true,
                "nullable": true,
                "description": "The date and time the ASN delivery is expected in RFC 3339 section 5.6 notation."
              },
              "merchant_reference": {
                "type": "string",
                "description": "The \"Merchant Reference\" property. Uniqueness based on this field is enforced so an error will be given if a delivery with the same merchant_ref already exists.",
                "minLength": 1,
                "maxLength": 45,
                "nullable": true
              },
              "supplier_invoice_reference": {
                "type": "string",
                "description": "Unique reference number that will help to identify the invoice of a specific supplier.",
                "minLength": 1,
                "maxLength": 45,
                "nullable": true
              },
              "supplier_order_reference": {
                "type": "string",
                "description": "Unique reference number that will help to identify the order of a specific supplier.",
                "minLength": 1,
                "maxLength": 45,
                "nullable": true
              },
              "shipment_type": {
                "type": "string",
                "description": "The shipment type that the carrier will use for delivery.",
                "nullable": true,
                "enum": [
                  "international_maritime_freight",
                  "international_air_freight",
                  "ftl_freight",
                  "ltl_freight",
                  "parcel",
                  "other"
                ]
              },
              "bill_of_lading": {
                "type": "string",
                "description": "The legal document used in freight shipping issued by the carrier which details the goods being shipped and the destination. This will not be available for Parcel or Other/Unknown shipment types.",
                "minLength": 1,
                "maxLength": 45,
                "nullable": true
              },
              "standard_carrier_alpha_code": {
                "type": "string",
                "description": "The SCAC (Standard Carrier Alpha Code) is typically marked on a shipper's containers and useful for identifying the carrier for International Maritime Freight type shipments. This should be 2 to 4 characters for a specific carrier.",
                "minLength": 4,
                "maxLength": 4,
                "nullable": true
              }
            }
          },
          {
            "$ref": "#/components/schemas/Receiving_API_v1_DeliveryAbstract"
          }
        ]
      },
      "Receiving_API_v1_OrderRef": {
        "title": "OrderRef",
        "type": "object",
        "description": "A reference to an `Order` by `id`.",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "Order"
            ]
          },
          "id": {
            "type": "integer",
            "format": "int32",
            "description": "The internal `id` property used as a path parameter in a resource lookup."
          }
        },
        "required": [
          "type",
          "id"
        ],
        "nullable": true,
        "additionalProperties": false
      },
      "Receiving_API_v1_RMA": {
        "title": "RMA",
        "description": "An `RMA` (Return Merchandise Authorization) delivery object.",
        "allOf": [
          {
            "type": "object",
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "RMA"
                ],
                "description": "This property describes the type of object in the response body."
              },
              "id": {
                "type": "integer",
                "readOnly": true,
                "description": "The internal `id` property used as a path parameter in a resource lookup."
              },
              "customer_name": {
                "type": "string",
                "description": "The name of the customer from which the return merchandise authorization (RMA) originated.",
                "minLength": 1,
                "maxLength": 255
              },
              "expected_at": {
                "type": "string",
                "format": "date-time",
                "example": "2019-12-03T21:06:26Z",
                "readOnly": true,
                "nullable": true,
                "description": "The date and time the return was authorized in RFC 3339 section 5.6 notation. \\\n  `Optional Field`"
              },
              "merchant_rma_number": {
                "type": "string",
                "description": "The RMA number defined for the merchant. This field does not have to be unique.",
                "minLength": 1,
                "maxLength": 45
              },
              "carrier_tracking_number": {
                "type": "string",
                "description": "Carrier tracking number of a spcific delivery",
                "minLength": 1,
                "maxLength": 45
              },
              "merchant_order_number": {
                "type": "string",
                "description": "The Merchant Order Number is used to associate the RMA with a specific merchant order. This field does not have to be unique.",
                "minLength": 1,
                "maxLength": 45
              },
              "order": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Receiving_API_v1_OrderRef"
                  },
                  {
                    "description": "The original order that the RMA is being issued for. "
                  }
                ]
              }
            }
          },
          {
            "$ref": "#/components/schemas/Receiving_API_v1_DeliveryAbstract"
          }
        ]
      },
      "Receiving_API_v1_Other": {
        "title": "Other",
        "description": "An `Other` delivery object for miscellaneous receiving operations.",
        "allOf": [
          {
            "type": "object",
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "Other"
                ],
                "description": "This property describes the type of object in the response body."
              },
              "id": {
                "type": "integer",
                "readOnly": true,
                "description": "The internal `id` property used as a path parameter in a resource lookup."
              },
              "sender_name": {
                "type": "string",
                "description": "Name of the sender.",
                "minLength": 1,
                "maxLength": 255,
                "nullable": true
              },
              "expected_at": {
                "type": "string",
                "format": "date-time",
                "example": "2019-12-03T21:06:26Z",
                "readOnly": true,
                "nullable": true,
                "description": "The date and time the delivery is expected in RFC 3339 section 5.6 notation."
              },
              "merchant_reference": {
                "type": "string",
                "description": "The \"Merchant Reference\" property. Uniqueness based on this field is enforced so an error will be given if a delivery with the same merchant_ref already exists.",
                "minLength": 1,
                "maxLength": 45,
                "nullable": true
              },
              "sender_reference": {
                "type": "string",
                "description": "A reference number from the sender.",
                "minLength": 1,
                "maxLength": 45,
                "nullable": true
              },
              "sender_reference_alt": {
                "type": "string",
                "description": "An alternate reference number from the sender.",
                "minLength": 1,
                "maxLength": 45,
                "nullable": true
              }
            }
          },
          {
            "$ref": "#/components/schemas/Receiving_API_v1_DeliveryAbstract"
          }
        ]
      },
      "Receiving_API_v1_CompositeDelivery": {
        "anyOf": [
          {
            "$ref": "#/components/schemas/Receiving_API_v1_ASN"
          },
          {
            "$ref": "#/components/schemas/Receiving_API_v1_RMA"
          },
          {
            "$ref": "#/components/schemas/Receiving_API_v1_Other"
          }
        ],
        "discriminator": {
          "propertyName": "type"
        }
      },
      "Receiving_API_v1_WeightUnit": {
        "type": "string",
        "description": "This can be an imperial or metric unit for weight.",
        "enum": [
          "lb",
          "oz",
          "kg",
          "g"
        ]
      },
      "Receiving_API_v1_Weight": {
        "title": "Weight",
        "type": "object",
        "nullable": true,
        "properties": {
          "value": {
            "type": "number",
            "description": "The weight quantity defined as a floating point value of up to 4 decimal places.",
            "format": "float",
            "example": 20
          },
          "unit": {
            "$ref": "#/components/schemas/Receiving_API_v1_WeightUnit"
          }
        }
      },
      "Receiving_API_v1_DeliveryContainerType": {
        "title": "DeliveryContainerType",
        "type": "object",
        "description": "An object to represent `DeliveryContainerType`.",
        "properties": {
          "type": {
            "type": "string",
            "readOnly": true,
            "enum": [
              "DeliveryContainerType"
            ]
          },
          "id": {
            "type": "integer",
            "format": "int32",
            "example": 3,
            "readOnly": true,
            "description": "The internal `id` property used as a path parameter in a resource lookup."
          },
          "merchant": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Receiving_API_v1_MerchantRef"
              },
              {
                "description": "The `Merchant` associated with this delivery container type."
              }
            ]
          },
          "delivery_type": {
            "type": "string",
            "description": "The type of delivery allowed for the container type.",
            "enum": [
              "asn",
              "rma",
              "other_delivery",
              "cancellation",
              "work_order_output"
            ]
          },
          "name": {
            "type": "string",
            "description": "The name of the delivery container type.",
            "minLength": 1,
            "maxLength": 255
          },
          "name_plural": {
            "type": "string",
            "description": "The plural form of the delivery container type name used internally when referring to more than one type.",
            "minLength": 1,
            "maxLength": 255
          },
          "weight": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Receiving_API_v1_Weight"
              },
              {
                "description": "This defines the weight of the `DeliveryContainerType` in imperial or metric units."
              }
            ]
          },
          "is_default": {
            "type": "boolean",
            "description": "This indicates whether or not the `DeliveryContainerType` is the default type.",
            "enum": [
              true,
              false
            ]
          },
          "is_system": {
            "type": "boolean",
            "description": "This indicates that the `DeliveryContainerType` is used only for internal system operations.",
            "enum": [
              true,
              false
            ]
          }
        }
      },
      "Receiving_API_v1_UserRef": {
        "title": "UserRef",
        "type": "object",
        "description": "Reference an `OrganizationUser` or `ClientUser` by `id`.",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "OrganizationUser",
              "ClientUser"
            ]
          },
          "id": {
            "type": "integer",
            "description": "The internal `id` property used as a path parameter in a resource lookup.",
            "format": "int32",
            "example": 3
          }
        },
        "required": [
          "type",
          "id"
        ],
        "additionalProperties": false
      },
      "Receiving_API_v1_DeliveryItemRef": {
        "title": "DeliveryItem",
        "description": "A reference to a `DeliveryItem` object.",
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "DeliveryItem"
            ]
          },
          "id": {
            "type": "integer",
            "description": "The internal `id` property used as a path parameter in a resource lookup."
          }
        },
        "required": [
          "type",
          "id"
        ]
      },
      "Receiving_API_v1_LotRef": {
        "title": "LotRef",
        "type": "object",
        "description": "A reference to a `Lot` object. The Lot records the time some inventory was originated (first received or\notherwise created) and optionally a lot number and expiration date and may affect the order in which\ninventory is \"burned\" depending on the `LotType`.",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "Lot"
            ],
            "description": "This property describes the type of object in the response body."
          },
          "id": {
            "type": "integer",
            "example": 54,
            "description": "The internal `id` property used as a path parameter in a resource lookup."
          }
        },
        "required": [
          "type",
          "id"
        ],
        "nullable": true,
        "additionalProperties": false
      },
      "Receiving_API_v1_DeliveryContainerContent": {
        "title": "DeliveryContainerContent",
        "type": "object",
        "description": "An object to represents a `DeliveryContainerContent`.",
        "properties": {
          "delivery_item": {
            "$ref": "#/components/schemas/Receiving_API_v1_DeliveryItemRef"
          },
          "qty_counted": {
            "type": "number",
            "description": "The quantity of contents within a delivery container.",
            "format": "float"
          },
          "qty_shortage": {
            "type": "number",
            "description": "The quantity of items missing from the delivery container.",
            "format": "float"
          },
          "qty_counted_per_lot": {
            "type": "array",
            "description": "The quantity of items in the container counted per delivery container lot.",
            "items": {
              "type": "object",
              "properties": {
                "lot": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/Receiving_API_v1_LotRef"
                    }
                  ]
                },
                "quantity": {
                  "type": "number",
                  "description": "The quantity of items for the specified delivery container lot.",
                  "format": "float"
                }
              }
            }
          }
        }
      },
      "Receiving_API_v1_DeliveryContainer": {
        "title": "DeliveryContainer",
        "type": "object",
        "description": "An object to represents a `DeliveryContainer`.",
        "properties": {
          "type": {
            "type": "string",
            "readOnly": true,
            "enum": [
              "DeliveryContainer"
            ]
          },
          "id": {
            "type": "integer",
            "format": "int32",
            "example": 3,
            "readOnly": true,
            "description": "The internal `id` property used as a path parameter in a resource lookup."
          },
          "container_type": {
            "$ref": "#/components/schemas/Receiving_API_v1_DeliveryContainerType"
          },
          "damage_type": {
            "type": "string",
            "description": "This indicates if the container damage is noted or not.",
            "enum": [
              "none",
              "noted",
              "unnoted"
            ]
          },
          "weight_discrepancy_reason": {
            "type": "string",
            "description": "A description for why the delivery's weight is not matching the expected value.",
            "enum": [
              "none",
              "shortage_noted",
              "shortage_unnoted",
              "overage|unknown"
            ]
          },
          "tare_weight": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Receiving_API_v1_Weight"
              },
              {
                "description": "The total weight of the delivery container when empty."
              }
            ]
          },
          "weight": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Receiving_API_v1_Weight"
              },
              {
                "description": "This defines the full weight of the `DeliveryContainer` in imperial or metric units."
              }
            ]
          },
          "weighed_at": {
            "type": "string",
            "format": "date-time",
            "example": "2019-12-03T21:06:26Z",
            "readOnly": true,
            "nullable": true,
            "description": "The date and time the object was weighed in RFC 3339 section 5.6 notation. \\\n  `Optional Field`"
          },
          "weighed_by": {
            "allOf": [
              {
                "description": "A user with limited access and assigned to a single merchant."
              },
              {
                "$ref": "#/components/schemas/Receiving_API_v1_UserRef"
              }
            ]
          },
          "contents": {
            "type": "array",
            "description": "A list of `DeliveryContainerContent` objects.",
            "items": {
              "$ref": "#/components/schemas/Receiving_API_v1_DeliveryContainerContent"
            }
          },
          "condition_note": {
            "type": "string",
            "description": "A description of the container condition upon reception."
          },
          "item_count": {
            "type": "integer",
            "description": "The quantity of items in the delivery container."
          }
        }
      },
      "Receiving_API_v1_DeliveryContainerRef": {
        "title": "DeliveryContainerRef",
        "type": "object",
        "description": "A reference to `DeliveryContainer` object.",
        "properties": {
          "type": {
            "type": "string",
            "readOnly": true,
            "enum": [
              "DeliveryContainer"
            ]
          },
          "id": {
            "type": "integer",
            "format": "int32",
            "example": 3,
            "readOnly": true,
            "description": "The internal `id` property used as a path parameter in a resource lookup."
          }
        }
      },
      "Receiving_API_v1_DeliveryException": {
        "title": "DeliveryException",
        "type": "object",
        "description": "An object to represent `DeliveryException`.",
        "properties": {
          "type": {
            "type": "string",
            "readOnly": true,
            "enum": [
              "DeliveryException"
            ]
          },
          "id": {
            "type": "integer",
            "format": "int32",
            "example": 3,
            "readOnly": true,
            "description": "The internal `id` property used as a path parameter in a resource lookup."
          },
          "container": {
            "$ref": "#/components/schemas/Receiving_API_v1_DeliveryContainerRef"
          },
          "lot": {
            "$ref": "#/components/schemas/Receiving_API_v1_LotRef"
          },
          "status": {
            "type": "string",
            "description": "The status of the exception.",
            "enum": [
              "new",
              "pending",
              "approved",
              "rejected",
              "void",
              "closed"
            ]
          },
          "sign": {
            "type": "integer",
            "description": "The sign indicating shortage (-1), overage (1), or none (0).",
            "enum": [
              -1,
              0,
              1
            ]
          },
          "reason": {
            "type": "string",
            "description": "The reason for this exception.",
            "nullable": true
          },
          "comment": {
            "type": "string",
            "description": "A comment included with the exception.",
            "nullable": true
          },
          "quantity": {
            "type": "number",
            "description": "The quantity of the exception.",
            "format": "float"
          }
        }
      },
      "Receiving_API_v1_LocationRef": {
        "title": "LocationRef",
        "type": "object",
        "description": "A reference to a `Location` by `id`.",
        "properties": {
          "type": {
            "type": "string",
            "description": "This property describes the type of object in the response body.",
            "enum": [
              "Location"
            ]
          },
          "id": {
            "type": "integer",
            "format": "int32",
            "example": 42,
            "description": "The internal `id` property used as a path parameter in a resource lookup."
          }
        },
        "required": [
          "type",
          "id"
        ],
        "nullable": true,
        "additionalProperties": false
      },
      "Receiving_API_v1_DeliveryItemLocation": {
        "title": "DeliveryItemLocation",
        "type": "object",
        "description": "An object to represents a `DeliveryItemLocation`.",
        "properties": {
          "type": {
            "type": "string",
            "readOnly": true,
            "enum": [
              "DeliveryItemLocation"
            ]
          },
          "id": {
            "type": "integer",
            "format": "int32",
            "example": 3,
            "readOnly": true,
            "description": "The internal `id` property used as a path parameter in a resource lookup."
          },
          "location": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Receiving_API_v1_LocationRef"
              },
              {
                "description": "A Location describes a user-specified inventory address within a warehouse."
              }
            ]
          },
          "qty_putaway": {
            "type": "number",
            "description": "The quantity of delivery items for \"put-away\" in this location.",
            "format": "float"
          },
          "qty_committed": {
            "type": "number",
            "description": "The quantity of delivery items committed to this location.",
            "format": "float"
          }
        }
      },
      "Receiving_API_v1_Lot": {
        "title": "Lot",
        "type": "object",
        "description": "The Lot records the time some inventory was originated (first received or\notherwise created) and optionally a lot number and expiration date and may affect the order in which\ninventory is \"burned\" depending on the `LotType`.",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "Lot"
            ],
            "readOnly": true,
            "description": "This is a read-only property that describes the type of object in the response body."
          },
          "id": {
            "type": "integer",
            "example": 54,
            "readOnly": true,
            "description": "The internal `id` property used as a path parameter in a resource lookup."
          }
        },
        "nullable": true
      },
      "Receiving_API_v1_DeliveryItemLot": {
        "title": "DeliveryItemLot",
        "type": "object",
        "description": "An object to represents a `DeliveryItemLot`.",
        "properties": {
          "type": {
            "type": "string",
            "readOnly": true,
            "enum": [
              "DeliveryItemLot"
            ]
          },
          "id": {
            "type": "integer",
            "format": "int32",
            "example": 3,
            "readOnly": true,
            "description": "The internal `id` property used as a path parameter in a resource lookup."
          },
          "lot": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Receiving_API_v1_Lot"
              },
              {
                "description": "A reference to the `Lot` object associated with Warehouse Inventory Location."
              }
            ]
          },
          "qty_counted": {
            "type": "number",
            "description": "The quantity of delivery items counted.",
            "format": "float"
          },
          "qty_putaway": {
            "type": "number",
            "description": "The quantity of delivery items for \"put-away\"",
            "format": "float"
          }
        }
      },
      "Receiving_API_v1_updated_at": {
        "type": "string",
        "format": "date-time",
        "description": "The date and time the object was last updated in RFC 3339 section 5.6 notation.\\\n  `Optional Field`",
        "example": "2017-07-21T17:39:43Z",
        "nullable": true,
        "readOnly": true
      },
      "Receiving_API_v1_BrandRef": {
        "title": "BrandRef",
        "type": "object",
        "description": "Reference a `Brand` by `id`.",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "Brand"
            ]
          },
          "id": {
            "type": "integer",
            "format": "int32",
            "description": "The numeric `id` of a particular resource being updated.",
            "example": 4
          }
        },
        "required": [
          "type",
          "id"
        ],
        "additionalProperties": false
      },
      "Receiving_API_v1_custom_field_scalar_value": {
        "type": "object",
        "description": "A wrapper for scalar custom field values.\nThe value type depends on the field's input type:\n- **boolean**: boolean value\n- **text/multiline-text/email/url/date**: string value\n- **number**: number value\n- **admin-user/client-user**: integer value (user ID)",
        "required": [
          "value"
        ],
        "properties": {
          "value": {
            "description": "The field value. Type varies based on field configuration.",
            "oneOf": [
              {
                "type": "boolean"
              },
              {
                "type": "string"
              },
              {
                "type": "number"
              },
              {
                "type": "integer"
              }
            ]
          }
        },
        "additionalProperties": false
      },
      "Receiving_API_v1_Monetary": {
        "title": "Monetary",
        "type": "object",
        "nullable": true,
        "properties": {
          "amount": {
            "type": "number",
            "description": "This is the monetary value..",
            "format": "float",
            "example": 99
          },
          "currency": {
            "type": "string",
            "description": "An ISO 3166-1 alpha-3 currency code.",
            "example": "USD"
          }
        }
      },
      "Receiving_API_v1_custom_field_select_option": {
        "type": "object",
        "description": "A selected option for select type fields.",
        "required": [
          "id",
          "label"
        ],
        "properties": {
          "id": {
            "type": "integer",
            "description": "The option ID."
          },
          "label": {
            "type": "string",
            "description": "The display label for the selected option."
          }
        },
        "additionalProperties": false
      },
      "Receiving_API_v1_custom_field_multiselect_value": {
        "type": "array",
        "description": "Array of selected options for multiselect type fields.",
        "items": {
          "$ref": "#/components/schemas/Receiving_API_v1_custom_field_select_option"
        }
      },
      "Receiving_API_v1_custom_field_value": {
        "description": "Union type for all possible custom field value formats.",
        "anyOf": [
          {
            "$ref": "#/components/schemas/Receiving_API_v1_custom_field_scalar_value"
          },
          {
            "$ref": "#/components/schemas/Receiving_API_v1_Monetary"
          },
          {
            "$ref": "#/components/schemas/Receiving_API_v1_custom_field_select_option"
          },
          {
            "$ref": "#/components/schemas/Receiving_API_v1_custom_field_multiselect_value"
          }
        ]
      },
      "Receiving_API_v1_sales_custom_fields": {
        "type": "object",
        "description": "Custom field values for the order, keyed by field code.\n\nThe format of each value depends on the field's input type:\n- **select**: `{\"id\": <integer>, \"label\": \"<string>\"}`\n- **multiselect**: `[{\"id\": <integer>, \"label\": \"<string>\"}, ...]`\n- **currency**: Uses the Monetary type `{\"amount\": <number>, \"currency\": \"<string>\"}`\n- **boolean**: `{\"value\": <boolean>}`\n- **text/multiline-text/email/url/date**: `{\"value\": \"<string>\"}`\n- **number**: `{\"value\": <number>}`\n- **admin-user/client-user**: `{\"value\": <integer>}` (user ID)",
        "additionalProperties": {
          "$ref": "#/components/schemas/Receiving_API_v1_custom_field_value"
        },
        "example": {
          "is_gift": {
            "value": true
          },
          "order_details": {
            "value": "test details"
          },
          "department": {
            "id": 3,
            "label": "Shipping"
          },
          "priority_levels": [
            {
              "id": 1,
              "label": "Urgent"
            },
            {
              "id": 2,
              "label": "High"
            }
          ],
          "cost_of_goods": {
            "amount": 156.99,
            "currency": "USD"
          },
          "assigned_user": {
            "value": 42
          }
        }
      },
      "Receiving_API_v1_Merchant": {
        "title": "Merchant",
        "type": "object",
        "description": "A `Merchant` represents an entity that owns a distinct pool of inventory and line of business.",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "Merchant"
            ],
            "readOnly": true
          },
          "id": {
            "type": "integer",
            "format": "int32",
            "description": "The internal `id` property used as a path parameter in a resource lookup.",
            "readOnly": true,
            "example": 4
          },
          "code": {
            "type": "string",
            "description": "Merchant code may only contain letters (a-z), numbers (0-9) or underscore(_), the first character must be a letter.",
            "minLength": 1,
            "maxLength": 32,
            "example": "acme_inc"
          },
          "name": {
            "type": "string",
            "description": "Any string which uniquely identifies a Merchant.",
            "minLength": 1,
            "maxLength": 64,
            "example": "ACME Inc."
          },
          "status": {
            "type": "string",
            "enum": [
              "active",
              "inactive",
              "suspended",
              "archived"
            ],
            "default": "active",
            "description": "Lifecycle status of the Merchant:\n- `active`: Merchant is operational and available for use\n- `suspended`: Temporarily on hold, can be easily reactivated\n- `inactive`: Long-term offline status, reactivation is possible but may require additional steps\n- `archived`: Soft delete status, manual recovery required",
            "example": "active",
            "nullable": true,
            "readOnly": true
          },
          "created_at": {
            "$ref": "#/components/schemas/Receiving_API_v1_created_at-optional"
          },
          "updated_at": {
            "$ref": "#/components/schemas/Receiving_API_v1_updated_at"
          },
          "brands": {
            "type": "array",
            "items": {
              "allOf": [
                {
                  "$ref": "#/components/schemas/Receiving_API_v1_BrandRef"
                }
              ]
            },
            "description": "A merchant must have one or more brands which may share the same pool of inventory. Brands can be used for\ncustomizing presentation and behaviors and often correspond to distinct lines of business or market presences.\\\n  `Optional Field`",
            "readOnly": true
          },
          "default_brand": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Receiving_API_v1_BrandRef"
              }
            ],
            "description": "This is the primary brand used when defining only the merchant for operations such as creating a new product.\\\n  `Optional Field`"
          },
          "custom_fields": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/components/schemas/Receiving_API_v1_sales_custom_fields"
              }
            ],
            "nullable": true,
            "description": "Custom fields associated with the merchant in script format. Each field contains\na code and value, with additional properties depending on the field type.\\\n  `Optional Field`"
          }
        }
      },
      "Receiving_API_v1_LotTypeRef": {
        "title": "LotTypeRef",
        "description": "LotType",
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "LotType"
            ],
            "description": "This property describes the type of object in the response body."
          },
          "id": {
            "type": "integer",
            "format": "int64",
            "description": "The internal `id` property used as a path parameter in a resource lookup.",
            "example": 4
          }
        },
        "required": [
          "type",
          "id"
        ],
        "nullable": true,
        "additionalProperties": false
      },
      "Receiving_API_v1_LengthUnit": {
        "type": "string",
        "description": "The imperical or metric unit of measurement.",
        "enum": [
          "in",
          "mm",
          "cm",
          "m"
        ]
      },
      "Receiving_API_v1_Dimensions": {
        "title": "Dimensions",
        "type": "object",
        "nullable": true,
        "properties": {
          "length": {
            "type": "number",
            "description": "This distance value is usually assigned to the longest side of the object and is defined as a floating-point number up to 4 decimal places.",
            "format": "float",
            "example": 8
          },
          "width": {
            "type": "number",
            "description": "This value describes the horizontal distance of the subject defined as a floating-point number up to 4 decimal places.",
            "format": "float",
            "example": 6
          },
          "height": {
            "type": "number",
            "description": "This value describes the vertical distance of the subject defined as a floating-point number up to 4 decimal places.",
            "format": "float",
            "example": 4
          },
          "unit": {
            "$ref": "#/components/schemas/Receiving_API_v1_LengthUnit"
          }
        }
      },
      "Receiving_API_v1_VolumeUnit": {
        "type": "string",
        "description": "The imperical or metric unit of measurement as a cubic value.",
        "enum": [
          "in^3",
          "mm^3",
          "cm^3",
          "m^3"
        ]
      },
      "Receiving_API_v1_Volume": {
        "title": "Volume",
        "type": "object",
        "nullable": true,
        "properties": {
          "value": {
            "type": "number",
            "description": "This value describes the cubic size of the subject as a floating-point number up to 4 decimal places.",
            "format": "float",
            "example": 300
          },
          "unit": {
            "$ref": "#/components/schemas/Receiving_API_v1_VolumeUnit"
          }
        }
      },
      "Receiving_API_v1_Inventory": {
        "title": "Inventory",
        "type": "object",
        "description": "Product Inventory information",
        "properties": {
          "backorders": {
            "description": "This determines if `Product` that is no longer in stock may be backordered or whether or not to use ShipStream's scoped configurations.",
            "anyOf": [
              {
                "type": "boolean",
                "example": true
              },
              {
                "type": "string",
                "enum": [
                  "use_config"
                ]
              }
            ]
          },
          "dynamic_allocation": {
            "description": "This will allow the `Product` to source from inventory in other warehouses in real-time if enabled, and can be set to use ShipStream's scoped configurations.",
            "anyOf": [
              {
                "type": "boolean",
                "example": true
              },
              {
                "type": "string",
                "enum": [
                  "use_config"
                ]
              }
            ]
          },
          "virtual_inventory": {
            "type": "string",
            "description": "This is the method used to predict an esitmate of inventory available when kitting from the `Product`.",
            "enum": [
              "none",
              "optimistic",
              "realistic",
              "pessimistic"
            ],
            "example": "optimistic"
          }
        }
      },
      "Receiving_API_v1_country_extension": {
        "type": "array",
        "nullable": true,
        "items": {
          "type": "object",
          "properties": {
            "country_id": {
              "type": "string",
              "description": "This is the two-digit ISO (Alpha-2) country code."
            },
            "extension": {
              "type": "string",
              "description": "Country-specific extension to the 6-digit Harmonized System code. For imports into the United States this is the last 4 digits of the 10-digit HTS (Harmonized Tariff Schedule) code."
            }
          }
        },
        "example": [
          {
            "country_id": "TW",
            "extension": "002"
          },
          {
            "country_id": "US",
            "extension": "011"
          }
        ]
      },
      "Receiving_API_v1_Export": {
        "title": "Export",
        "type": "object",
        "description": "Product Export and Custom information",
        "properties": {
          "description": {
            "type": "string",
            "description": "This is used to describe in detail the `Product` for international shipping and customs regulations.",
            "nullable": true,
            "example": "Plastic children's toy with steel weights and ball bearings"
          },
          "customs_value": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Receiving_API_v1_Monetary"
              },
              {
                "description": "The value of the products the purpose of calculating duties and taxes in the destination country."
              }
            ]
          },
          "country_of_manufacture": {
            "type": "string",
            "nullable": true,
            "description": "2 letters Country ISO Code",
            "example": "TW"
          },
          "hs_base_code": {
            "type": "string",
            "description": "This is the Harmonized System Code (HS Code); a standardized numerical method of classifying traded products. These are 6 digit codes in the format \\#\\#\\#\\#.\\#\\# (e.g. 8471.30) which are associated with a standard HS Code Description, not including country-specific extensions.",
            "nullable": true,
            "example": "8518.30"
          },
          "hs_country_extension": {
            "$ref": "#/components/schemas/Receiving_API_v1_country_extension"
          }
        }
      },
      "Receiving_API_v1_RegulationRef": {
        "title": "Regulation",
        "type": "object",
        "description": "A reference to a `Regulation` by `id`.",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "Regulation"
            ],
            "description": "This property describes the type of object in the response body."
          },
          "id": {
            "type": "integer",
            "description": "The internal `id` property used as a path parameter in a resource lookup."
          }
        },
        "required": [
          "type",
          "id"
        ],
        "nullable": true,
        "additionalProperties": false
      },
      "Receiving_API_v1_container_type": {
        "type": "string",
        "nullable": true,
        "description": "The Overpack Container Type can be a combination of material and container type such as Aluminum Box, Steel Drum, or a combination of a material and container type from these two lists:\n  - `Material:` Aluminum, Fiberboard, Glass, Plywood, Plastic, Steel, Wood\n  - `Container:` Bag, Bottle, Box, Bucket, Cylinder, Drum, Jerrican, Pail",
        "example": "Plastic Box"
      },
      "Receiving_API_v1_RegulatedGoods": {
        "title": "RegulatedGoods",
        "type": "object",
        "description": "Product Regulation Information",
        "properties": {
          "regulation": {
            "$ref": "#/components/schemas/Receiving_API_v1_RegulationRef"
          },
          "technical_name": {
            "type": "string",
            "nullable": true,
            "description": "Must match against Regulation's Technical Name Pattern if specified.",
            "example": "Hydro Polymer Acetylene Coating"
          },
          "additional_information": {
            "type": "string",
            "nullable": true,
            "description": "Must match against Regulation's Additional Regulatory Information Pattern if specified.",
            "example": "Flamable Liquid"
          },
          "net_weight": {
            "$ref": "#/components/schemas/Receiving_API_v1_Weight"
          },
          "container_type": {
            "$ref": "#/components/schemas/Receiving_API_v1_container_type"
          },
          "container_meets_hazmat_specs": {
            "type": "boolean",
            "description": "This flag indicates that the `RegulatedGoods` container is sufficient for a regulated (HAZMAT) product.",
            "example": true
          },
          "regulation_units": {
            "type": "number",
            "description": "These units are arbitrary and should be relative to the Regulation's Pickup Weight Limit. E.g. it could be in pounds, kilowatt/hours, etc.",
            "format": "float",
            "example": 5
          }
        }
      },
      "Receiving_API_v1_boolean": {
        "type": "boolean",
        "enum": [
          true,
          false
        ],
        "example": true
      },
      "Receiving_API_v1_Packaging": {
        "title": "Packaging",
        "type": "object",
        "description": "Product Packaging information",
        "properties": {
          "require_packaging": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Receiving_API_v1_boolean"
              },
              {
                "description": "If Yes, packaging will require a Box with \"Satisfies Overbox: Yes\"."
              }
            ]
          },
          "require_weight_check": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Receiving_API_v1_boolean"
              },
              {
                "description": "If Yes, the associated product will require the use of a scale to verify that the package's weight falls within the expected amount. If this is set to No, this step will be skipped by the packer."
              }
            ]
          },
          "require_confirmation_per_item": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Receiving_API_v1_boolean"
              },
              {
                "description": "If Yes, Packaging Products with \"One Scan Per: Item\" will require a scan for each item packed rather than just one for the first item in a package."
              }
            ]
          },
          "unit_quantity": {
            "type": "integer",
            "example": 1,
            "nullable": true,
            "description": "Number of individually packaged items contained therein for purposes of special packaging features."
          },
          "bulk_quantity": {
            "type": "integer",
            "nullable": true,
            "example": 10,
            "description": "Prefer to split into packages when necessary using multiples of this amount."
          },
          "max_per_package": {
            "type": "integer",
            "nullable": true,
            "example": 15,
            "description": "The maximum quantity of this product to ever include in the same package. \nMultiply by \"Unit Quantity\" to achieve common units between other products with the same \"Ship Separate Tag\" value."
          },
          "is_ship_separately": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Receiving_API_v1_boolean"
              },
              {
                "description": "This item cannot ship in the same package as other items (unless they have the same \"Ship Separate Tag\")."
              }
            ]
          },
          "ship_separately_tag": {
            "type": "string",
            "nullable": true,
            "description": "Applies only if \"Ship Separate\" is \"Yes\". Assign the same tag to treat similar products as interchangeable \nwith respect to the \"Ship Separate\" and \"Max Per Package\" attribute.",
            "example": "PVC"
          },
          "can_tip": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Receiving_API_v1_boolean"
              },
              {
                "description": "If Yes, the item is allowed to be rotated vertically when packed."
              }
            ]
          },
          "can_contain_other_items": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Receiving_API_v1_boolean"
              },
              {
                "description": "If Yes then other smaller items are allowed to be placed within this larger item. This is useful when the item is hollow or is a bin/bucket."
              }
            ]
          },
          "is_handling_surcharge": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Receiving_API_v1_boolean"
              },
              {
                "description": "The Packaging Surcharge is applicable when shipped without an Overbox."
              }
            ]
          }
        }
      },
      "Receiving_API_v1_custom_fields": {
        "type": "array",
        "description": "Custom field values as an array of code/value pairs.",
        "items": {
          "type": "object",
          "properties": {
            "code": {
              "type": "string",
              "description": "The custom field code/identifier."
            },
            "value": {
              "description": "The field value (type depends on field configuration)."
            },
            "label": {
              "type": "string",
              "description": "For select fields, the display label of the selected option."
            },
            "options": {
              "type": "object",
              "description": "For multiselect fields, a map of option IDs to labels.",
              "additionalProperties": {
                "type": "string"
              }
            }
          },
          "required": [
            "code"
          ]
        },
        "example": [
          {
            "code": "color",
            "value": 13,
            "label": "Red and Black"
          },
          {
            "code": "cost_of_goods",
            "value": 41.32
          },
          {
            "code": "allow_mailer",
            "value": true
          }
        ]
      },
      "Receiving_API_v1_AbstractProduct": {
        "type": "object",
        "properties": {
          "sku": {
            "type": "string",
            "description": "The Stock Keeping Unit (SKU) is a unique identifier for the `Product`.",
            "example": "SKU-1AD"
          },
          "name": {
            "type": "string",
            "description": "This is displayed as a short, descriptive title for the `Product`.",
            "example": "Test Product"
          },
          "is_enabled": {
            "type": "boolean",
            "description": "Disabled products are effectively deleted.",
            "enum": [
              true,
              false
            ],
            "default": true
          },
          "merchant": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Receiving_API_v1_MerchantRef"
              },
              {
                "description": "The `Merchant` to which the product belongs."
              }
            ]
          },
          "created_at": {
            "$ref": "#/components/schemas/Receiving_API_v1_created_at-optional"
          },
          "updated_at": {
            "$ref": "#/components/schemas/Receiving_API_v1_updated_at-optional"
          }
        }
      },
      "Receiving_API_v1_Product": {
        "title": "Product",
        "description": "A Product contains information about a sellable item.",
        "allOf": [
          {
            "type": "object",
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "Product"
                ],
                "description": "This property describes the type of object in the response body."
              },
              "id": {
                "type": "integer",
                "description": "The internal, read-only, `id` property used as a path parameter in a resource lookup.",
                "readOnly": true
              },
              "vendor_sku": {
                "type": "string",
                "description": "For informational use only. Displayed during delivery processing to help match products.\\\n  `Optional Field`",
                "nullable": true,
                "example": "Vendor-SKU-1AD2"
              },
              "manufacturer_part_number": {
                "type": "string",
                "description": "The manufacturer's part number for the item. May be required for customs on shipments to EU countries.\\\n  `Optional Field`",
                "nullable": true,
                "example": "MPN-1AD2"
              },
              "external_id": {
                "type": "string",
                "nullable": true,
                "example": "11-993-9048",
                "description": "May be used for external product sync."
              },
              "barcodes": {
                "anyOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "nullable": true,
                    "example": [
                      "956623520-4",
                      "O-VS-Oregano-p3"
                    ]
                  },
                  {
                    "type": "string",
                    "nullable": true,
                    "example": "956623520-4"
                  }
                ],
                "description": "A comma separated list of unique packaging feature barcodes."
              },
              "goods_type": {
                "type": "string",
                "nullable": true,
                "enum": [
                  "NORMAL",
                  "ORM_D",
                  "LIMITED_QUANTITIES_COMMODITIES",
                  "HAZMAT",
                  null
                ],
                "description": "This defines the regulations, if any, assigned to a `Product`.\n- `NORMAL` Not Regulated\n- `ORM_D`  ORM-D\n- `LIMITED_QUANTITIES_COMMODITIES`  Limited Quantities: Consumer Commodity\n- `HAZMAT` Regulated"
              },
              "is_available": {
                "type": "boolean",
                "enum": [
                  true,
                  false
                ],
                "default": true,
                "description": "This flag must be `true` to allow the `Product` to be ordered."
              },
              "is_visible": {
                "type": "boolean",
                "enum": [
                  true,
                  false
                ],
                "default": true,
                "description": "This flag must be `true` to show the `Product` in the inventory feed."
              },
              "lot_type": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Receiving_API_v1_LotTypeRef"
                  }
                ],
                "nullable": true,
                "description": "This `LotType` determines how a `Product` should be \"burned\" and whether lots with dissimilar data\ncan be \"mixed\".\\\n  `Optional Field`"
              },
              "weight": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Receiving_API_v1_Weight"
                  },
                  {
                    "description": "This object defines the weight of the `Product` in imperial or metric units.\\\n  `Optional Field`"
                  }
                ]
              },
              "dimensions": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Receiving_API_v1_Dimensions"
                  },
                  {
                    "description": "This object defines the length, width, and height of the `Product` in imperial or metric units.\\\n  `Optional Field`"
                  }
                ]
              },
              "volume": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Receiving_API_v1_Volume"
                  },
                  {
                    "description": "This object defines the cubic size of the `Product` in imperial or metric units.\\\n  `Optional Field`"
                  }
                ]
              },
              "inventory": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Receiving_API_v1_Inventory"
                  },
                  {
                    "description": "This object describes how the `Product` Stock is defined, such as real config values, or Virtual Inventory, and how to handle Backorders.\\\n  `Optional Field`"
                  }
                ]
              },
              "export": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Receiving_API_v1_Export"
                  },
                  {
                    "description": "This object contains fields for describing and codifying an internationally exportable `Product`.\\\n  `Optional Field`"
                  }
                ]
              },
              "regulated_goods": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Receiving_API_v1_RegulatedGoods"
                  },
                  {
                    "description": "This object only applies a `Product` using the \"Regulated\" Goods Type, and describes the `Regulation` and container specifications for the `Product`.\\\n  `Optional Field`"
                  }
                ]
              },
              "packaging": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Receiving_API_v1_Packaging"
                  },
                  {
                    "description": "This object defines how the shipping container/box for the `Product` is to be processed and whether there are any special instructions during packing.\\\n  `Optional Field`"
                  }
                ]
              },
              "custom_fields": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Receiving_API_v1_custom_fields"
                  },
                  {
                    "description": "This will set any Product Attributes, pre-defined by the user, for the `Product`.\\\n  `Optional Field`"
                  }
                ]
              }
            }
          },
          {
            "$ref": "#/components/schemas/Receiving_API_v1_AbstractProduct"
          }
        ]
      },
      "Receiving_API_v1_barcodes": {
        "anyOf": [
          {
            "type": "string",
            "nullable": true,
            "example": "956623520-4"
          },
          {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true,
            "example": [
              "956623520-4",
              "O-VS-Oregano-p3"
            ]
          }
        ]
      },
      "Receiving_API_v1_PackagingContainer": {
        "title": "PackagingContainer",
        "description": "A reference to the `PackagingContainer` object linked with Warehouse Inventory Location.",
        "allOf": [
          {
            "type": "object",
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "PackagingContainer"
                ],
                "description": "This property describes the type of object in the response body."
              },
              "id": {
                "type": "integer",
                "description": "The internal, read-only, `id` property used as a path parameter in a resource lookup.",
                "readOnly": true
              },
              "container_options": {
                "type": "object",
                "properties": {
                  "barcodes": {
                    "allOf": [
                      {
                        "$ref": "#/components/schemas/Receiving_API_v1_barcodes"
                      },
                      {
                        "description": "A comma separated list of unique packaging feature barcodes.\\\n  `Optional Field`"
                      }
                    ]
                  },
                  "weight": {
                    "allOf": [
                      {
                        "$ref": "#/components/schemas/Receiving_API_v1_Weight"
                      },
                      {
                        "description": "The weight of the container when packed with the shipment items."
                      }
                    ]
                  },
                  "dimensions": {
                    "allOf": [
                      {
                        "$ref": "#/components/schemas/Receiving_API_v1_Dimensions"
                      },
                      {
                        "description": "The dimensions of the container in imperial or metric units."
                      }
                    ]
                  },
                  "volume": {
                    "allOf": [
                      {
                        "$ref": "#/components/schemas/Receiving_API_v1_Volume"
                      },
                      {
                        "description": "The total volume of the container in imperial or metric units.",
                        "readOnly": true
                      }
                    ]
                  },
                  "manage_stock": {
                    "type": "boolean",
                    "description": "This flag indicates whether or not to adjust the inventory quantity of the packaging feature with each use. If `true` then the inventory levels will decrease with each use. If `no` then the inventory will not adjust with each use.",
                    "enum": [
                      true,
                      false
                    ]
                  },
                  "associated_products": {
                    "type": "array",
                    "description": "A list of products with this packaging feature selected in its \"Other Special Features\" option in the product's \"Packaging\" tab.",
                    "items": {
                      "$ref": "#/components/schemas/Receiving_API_v1_ProductRef"
                    }
                  },
                  "allow_for_brands": {
                    "type": "array",
                    "description": "If specified, this packaging feature will only be applicable to the selected merchants/brands.",
                    "items": {
                      "anyOf": [
                        {
                          "$ref": "#/components/schemas/Receiving_API_v1_MerchantRef"
                        },
                        {
                          "$ref": "#/components/schemas/Receiving_API_v1_BrandRef"
                        }
                      ]
                    }
                  },
                  "disallow_for_brands": {
                    "type": "array",
                    "description": "If specified, this packaging feature will not be applicable to the selected merchants/brands.",
                    "items": {
                      "anyOf": [
                        {
                          "$ref": "#/components/schemas/Receiving_API_v1_MerchantRef"
                        },
                        {
                          "$ref": "#/components/schemas/Receiving_API_v1_BrandRef"
                        }
                      ]
                    }
                  },
                  "billing_amount": {
                    "allOf": [
                      {
                        "$ref": "#/components/schemas/Receiving_API_v1_Monetary"
                      },
                      {
                        "description": "The amount that will be billable for consumption of one unit of this packaging feature.\\\n  `Optional Field`"
                      }
                    ]
                  },
                  "allow_for_warehouses": {
                    "type": "array",
                    "description": "If specified, this packaging feature will only be applicable to the selected warehouses.",
                    "items": {
                      "$ref": "#/components/schemas/Receiving_API_v1_WarehouseRef"
                    }
                  },
                  "allow_for_shipping_methods": {
                    "type": "array",
                    "description": "If specified, this packaging feature will only be applicable to the selected carriers/shipping methods.",
                    "items": {
                      "type": "string"
                    }
                  },
                  "satisfies_overbox": {
                    "type": "boolean",
                    "description": "Will be a valid container for products which have `Requires Overbox: Yes`.",
                    "enum": [
                      true,
                      false
                    ]
                  },
                  "use_for_bin_packing": {
                    "type": "string",
                    "description": "Containers with \"Use for Bin Packing: No\" will not be used by packing solution providers.",
                    "enum": [
                      "yes",
                      "no",
                      "fallback"
                    ]
                  },
                  "weight_capacity": {
                    "allOf": [
                      {
                        "$ref": "#/components/schemas/Receiving_API_v1_Weight"
                      },
                      {
                        "description": "Maximum allowed weight of the container, including tare weight.\n`Optional Field`"
                      }
                    ]
                  },
                  "container_style": {
                    "type": "string",
                    "description": "Specify the container type. Currently, only \"Rigid Box\" is supported.",
                    "enum": [
                      "rigid_box"
                    ]
                  },
                  "packaging_handling_surcharge": {
                    "type": "boolean",
                    "description": "The Packaging Surcharge is applicable for this packaging feature (e.g. cylindrical, non-fiberboard material, protrusions, non-conveyable, etc.)",
                    "enum": [
                      true,
                      false
                    ]
                  }
                }
              }
            }
          },
          {
            "$ref": "#/components/schemas/Receiving_API_v1_AbstractProduct"
          }
        ]
      },
      "Receiving_API_v1_PackagingSupplies": {
        "title": "PackagingSupplies",
        "description": "A reference to the `PackagingSupplies` object linked with Warehouse Inventory Location.",
        "allOf": [
          {
            "type": "object",
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "PackagingSupplies"
                ],
                "description": "This property describes the type of object in the response body."
              },
              "id": {
                "type": "integer",
                "description": "The internal, read-only, `id` property used as a path parameter in a resource lookup.",
                "readOnly": true
              },
              "supplies_options": {
                "type": "object",
                "properties": {
                  "barcodes": {
                    "allOf": [
                      {
                        "$ref": "#/components/schemas/Receiving_API_v1_barcodes"
                      },
                      {
                        "description": "A comma separated list of unique packaging feature barcodes.\\\n  `Optional Field`"
                      }
                    ]
                  },
                  "weight": {
                    "allOf": [
                      {
                        "$ref": "#/components/schemas/Receiving_API_v1_Weight"
                      },
                      {
                        "description": "The weight of the infill.\n`Optional Field`"
                      }
                    ]
                  },
                  "manage_stock": {
                    "type": "boolean",
                    "description": "This flag indicates whether or not to adjust the inventory quantity of the packaging feature with each use. If `true` then the inventory levels will decrease with each use. If `no` then the inventory will not adjust with each use.",
                    "enum": [
                      true,
                      false
                    ]
                  },
                  "associated_products": {
                    "type": "array",
                    "description": "A list of products with this packaging feature selected in its \"Other Special Features\" option in the product's \"Packaging\" tab.",
                    "items": {
                      "$ref": "#/components/schemas/Receiving_API_v1_ProductRef"
                    }
                  },
                  "allow_for_brands": {
                    "type": "array",
                    "description": "If specified, this packaging feature will only be applicable to the selected merchants/brands.",
                    "items": {
                      "anyOf": [
                        {
                          "$ref": "#/components/schemas/Receiving_API_v1_MerchantRef"
                        },
                        {
                          "$ref": "#/components/schemas/Receiving_API_v1_BrandRef"
                        }
                      ]
                    }
                  },
                  "disallow_for_brands": {
                    "type": "array",
                    "description": "If specified, this packaging feature will not be applicable to the selected merchants/brands.",
                    "items": {
                      "anyOf": [
                        {
                          "$ref": "#/components/schemas/Receiving_API_v1_MerchantRef"
                        },
                        {
                          "$ref": "#/components/schemas/Receiving_API_v1_BrandRef"
                        }
                      ]
                    }
                  },
                  "billing_amount": {
                    "allOf": [
                      {
                        "$ref": "#/components/schemas/Receiving_API_v1_Monetary"
                      },
                      {
                        "description": "The amount that will be billable for consumption of one unit of this packaging feature.\\\n  `Optional Field`"
                      }
                    ]
                  },
                  "allow_for_warehouses": {
                    "type": "array",
                    "description": "If specified, this packaging feature will only be applicable to the selected warehouses.",
                    "items": {
                      "$ref": "#/components/schemas/Receiving_API_v1_WarehouseRef"
                    }
                  },
                  "allow_for_shipping_methods": {
                    "type": "array",
                    "description": "If specified, this packaging feature will only be applicable to the selected carriers/shipping methods.",
                    "items": {
                      "type": "string"
                    }
                  },
                  "packaging_handling_surcharge": {
                    "type": "boolean",
                    "description": "The Packaging Surcharge is applicable for this packaging feature (e.g. cylindrical, non-fiberboard material, protrusions, non-conveyable, etc.)",
                    "enum": [
                      true,
                      false
                    ]
                  },
                  "apply_to_goods_type": {
                    "type": "string",
                    "enum": [
                      "any",
                      "NORMAL",
                      "ORM_D"
                    ],
                    "description": "This packaging feature will be applied to all shipments which do not contain an item with this Goods Type.\n- `NORMAL` Not Regulated\n- `ORM_D`  ORM-D\n`Optional Field`"
                  },
                  "never_apply_to_goods_type": {
                    "type": "string",
                    "enum": [
                      "NORMAL",
                      "LIMITED_QUANTITIES_COMMODITIES",
                      "HAZMAT"
                    ],
                    "description": "This packaging feature will be applied to all shipments which do not contain an item with this Goods Type.\n- `NORMAL` Not Regulated\n- `LIMITED_QUANTITIES_COMMODITIES`  Limited Quantities: Consumer Commodity\n- `HAZMAT` Regulated\n`Optional Field`"
                  },
                  "apply_only_above_weight": {
                    "allOf": [
                      {
                        "$ref": "#/components/schemas/Receiving_API_v1_Weight"
                      },
                      {
                        "description": "If specified, this packaging supply is not a requirement for packages under the given weight when \"Always/Never Apply to Goods Type\" is specified.\n`Optional Field`"
                      }
                    ]
                  },
                  "one_per": {
                    "type": "string",
                    "description": "The expected number of scans per shipment. The product \"Unit Quantity\" is used as a multiplier for \"One Scan Per: Each\".",
                    "enum": [
                      "order",
                      "package",
                      "item",
                      "each"
                    ]
                  },
                  "require_scan_timing": {
                    "type": "string",
                    "description": "Choose how the scan timer should begin recording time data on this product or packaging feature.",
                    "enum": [
                      "after_product_scan|on_full",
                      "on_start"
                    ]
                  },
                  "disable_confirm_button": {
                    "type": "boolean",
                    "description": "If \"No\", the user will be able to tap \"Confirm\" rather than scanning a barcode.",
                    "enum": [
                      true,
                      false
                    ]
                  },
                  "require_packaging_type": {
                    "type": "string",
                    "description": "If specified, this packaging feature will only be applicable when the container meets the chosen criteria based on the container's \"Satisfies Overbox\" attribute when \"Always/Never Apply to Goods Type\" is specified.",
                    "enum": [
                      "overbox",
                      "non_overbox"
                    ]
                  },
                  "apply_to_region": {
                    "type": "string",
                    "description": "Unless specified, this packaging feature will apply to all regions when \"Always/Never Apply to Goods Type\" is specified."
                  },
                  "apply_unless_container_meets_hazmat": {
                    "type": "boolean",
                    "description": "If \"Yes\", this packaging product will be applicable unless a package contains a DG item with \"Container Meets Hazmat Specs: Yes\" when \"Always/Never Apply to Goods Type\" is specified.",
                    "enum": [
                      true,
                      false
                    ]
                  },
                  "apply_to_multi_sku_package": {
                    "type": "boolean",
                    "description": "If \"Yes\", this packaging product will only be applied to packages containing more than one SKU when \"Always/Never Apply to Goods Type\" is specified.",
                    "enum": [
                      true,
                      false
                    ]
                  }
                }
              }
            }
          },
          {
            "$ref": "#/components/schemas/Receiving_API_v1_AbstractProduct"
          }
        ]
      },
      "Receiving_API_v1_Length": {
        "title": "Length",
        "type": "object",
        "nullable": true,
        "properties": {
          "value": {
            "type": "number",
            "description": "This value describes the length of the object as a floating-point number up to 4 decimal places.",
            "format": "float",
            "example": 12
          },
          "unit": {
            "$ref": "#/components/schemas/Receiving_API_v1_LengthUnit"
          }
        }
      },
      "Receiving_API_v1_PackagingInfill": {
        "title": "PackagingInfill",
        "description": "A reference to the `PackagingInfill` object linked with Warehouse Inventory Location.",
        "allOf": [
          {
            "type": "object",
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "PackagingInfill"
                ],
                "description": "This property describes the type of object in the response body."
              },
              "id": {
                "type": "integer",
                "description": "The internal, read-only, `id` property used as a path parameter in a resource lookup.",
                "readOnly": true
              },
              "infill_options": {
                "type": "object",
                "properties": {
                  "barcodes": {
                    "allOf": [
                      {
                        "$ref": "#/components/schemas/Receiving_API_v1_barcodes"
                      },
                      {
                        "description": "A comma separated list of unique packaging feature barcodes.\\\n  `Optional Field`"
                      }
                    ]
                  },
                  "weight": {
                    "allOf": [
                      {
                        "$ref": "#/components/schemas/Receiving_API_v1_Weight"
                      },
                      {
                        "description": "The weight of the infill.\n`Optional Field`"
                      }
                    ]
                  },
                  "manage_stock": {
                    "type": "boolean",
                    "description": "This flag indicates whether or not to adjust the inventory quantity of the packaging feature with each use. If `true` then the inventory levels will decrease with each use. If `no` then the inventory will not adjust with each use.",
                    "enum": [
                      true,
                      false
                    ]
                  },
                  "associated_products": {
                    "type": "array",
                    "description": "A list of products with this packaging feature selected in its \"Other Special Features\" option in the product's \"Packaging\" tab.",
                    "items": {
                      "$ref": "#/components/schemas/Receiving_API_v1_ProductRef"
                    }
                  },
                  "allow_for_brands": {
                    "type": "array",
                    "description": "If specified, this packaging feature will only be applicable to the selected merchants/brands.",
                    "items": {
                      "anyOf": [
                        {
                          "$ref": "#/components/schemas/Receiving_API_v1_MerchantRef"
                        },
                        {
                          "$ref": "#/components/schemas/Receiving_API_v1_BrandRef"
                        }
                      ]
                    }
                  },
                  "disallow_for_brands": {
                    "type": "array",
                    "description": "If specified, this packaging feature will not be applicable to the selected merchants/brands.",
                    "items": {
                      "anyOf": [
                        {
                          "$ref": "#/components/schemas/Receiving_API_v1_MerchantRef"
                        },
                        {
                          "$ref": "#/components/schemas/Receiving_API_v1_BrandRef"
                        }
                      ]
                    }
                  },
                  "billing_amount": {
                    "allOf": [
                      {
                        "$ref": "#/components/schemas/Receiving_API_v1_Monetary"
                      },
                      {
                        "description": "The amount that will be billable for consumption of one unit of this packaging feature.\\\n  `Optional Field`"
                      }
                    ]
                  },
                  "disable_confirm_button": {
                    "type": "boolean",
                    "description": "If \"No\", the user will be able to tap \"Confirm\" rather than scanning a barcode.",
                    "enum": [
                      true,
                      false
                    ]
                  },
                  "apply_unless_container_meets_hazmat": {
                    "type": "boolean",
                    "description": "If \"Yes\", this packaging product will be applicable unless a package contains a DG item with \"Container Meets Hazmat Specs: Yes\" when \"Always/Never Apply to Goods Type\" is specified.",
                    "enum": [
                      true,
                      false
                    ]
                  },
                  "is_confirmation_required": {
                    "type": "boolean",
                    "description": "If \"Yes\", this packer will be prompted and required to confirm the use of infill.",
                    "enum": [
                      true,
                      false
                    ]
                  },
                  "infill_horizontal": {
                    "allOf": [
                      {
                        "$ref": "#/components/schemas/Receiving_API_v1_Length"
                      },
                      {
                        "description": "The amount of space to reserve on each horizontal side of the package for infill. \\\n`Optional Field`"
                      }
                    ]
                  },
                  "infill_vertical": {
                    "allOf": [
                      {
                        "$ref": "#/components/schemas/Receiving_API_v1_Length"
                      },
                      {
                        "description": "The amount of space to reserve on each vertical side of the package for infill.\n`Optional Field`"
                      }
                    ]
                  },
                  "infill_priority": {
                    "type": "integer",
                    "description": "If multiple infill types are prescribed for a mix of items, the infill with the lowest Infill Priority number will prevail."
                  }
                }
              }
            }
          },
          {
            "$ref": "#/components/schemas/Receiving_API_v1_AbstractProduct"
          }
        ]
      },
      "Receiving_API_v1_CompositeStockableProduct": {
        "anyOf": [
          {
            "$ref": "#/components/schemas/Receiving_API_v1_Product"
          },
          {
            "$ref": "#/components/schemas/Receiving_API_v1_PackagingContainer"
          },
          {
            "$ref": "#/components/schemas/Receiving_API_v1_PackagingSupplies"
          },
          {
            "$ref": "#/components/schemas/Receiving_API_v1_PackagingInfill"
          }
        ],
        "discriminator": {
          "propertyName": "type"
        }
      },
      "Receiving_API_v1_Requester": {
        "title": "Requester",
        "type": "object",
        "description": "A `Requester` represents the entity (user, API token, integration, script, etc.) that performed\nan action in the system. The `entity_type` indicates the kind of entity and `entity_id` is the\nID of that entity in its respective table.",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "Requester"
            ],
            "description": "The resource type (always \"Requester\")."
          },
          "id": {
            "type": "integer",
            "format": "int32",
            "example": 3,
            "readOnly": true,
            "description": "The internal requester ID (`requester_id`)."
          },
          "entity_type": {
            "type": "string",
            "enum": [
              "OrganizationUser",
              "ClientUser",
              "MerchantAPI",
              "GlobalAPI",
              "MerchantIntegration",
              "GlobalIntegration",
              "Script",
              "Other"
            ],
            "description": "The type of entity that performed the action."
          },
          "entity_id": {
            "type": "integer",
            "format": "int32",
            "example": 5,
            "description": "The ID of the entity in its respective table (e.g., user ID, integration ID)."
          },
          "name": {
            "type": "string",
            "maxLength": 255,
            "example": "Bernard Greensmith",
            "description": "Human-readable display name for the requester."
          },
          "status": {
            "type": "string",
            "enum": [
              "active",
              "inactive",
              "suspended",
              "deleted",
              "unknown"
            ],
            "description": "The current status of the requester entity."
          }
        },
        "required": [
          "type",
          "id",
          "entity_type",
          "entity_id"
        ],
        "additionalProperties": false
      },
      "Receiving_API_v1_Warehouse": {
        "title": "Warehouse",
        "type": "object",
        "description": "A `Warehouse` represents a physical location from which you can store inventory and perform operations independently of other warehouses.",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "Warehouse"
            ],
            "readOnly": true,
            "description": "This is a read-only property that describes the type of object in the response body."
          },
          "id": {
            "type": "integer",
            "format": "int32",
            "example": 3,
            "readOnly": true,
            "description": "The internal `id` property used as a path parameter in a resource lookup."
          },
          "name": {
            "type": "string",
            "example": "East Coast 1",
            "maxLength": 255,
            "description": "The display name for the `Warehouse`."
          },
          "abbreviation": {
            "type": "string",
            "maxLength": 10,
            "nullable": true,
            "example": "EC1",
            "description": "A short abbreviation for the `Warehouse`, up to 10 characters. Recommended to be fewer than 6 characters.\\\n  `Optional Field`"
          },
          "is_active": {
            "type": "boolean",
            "example": true,
            "description": "This flag determines if the `Warehouse` is active and viable for fulfillment."
          }
        },
        "required": [
          "type",
          "id"
        ],
        "additionalProperties": false
      },
      "Receiving_API_v1_deliveries": {
        "type": "object",
        "description": "Lists of referenced objects included by specifying optional fields.\nSee the [selecting fields](/global-api/selecting-fields) page for more information.",
        "properties": {
          "DeliveryContainer": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Receiving_API_v1_DeliveryContainer"
            }
          },
          "DeliveryContainerType": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Receiving_API_v1_DeliveryContainerType"
            }
          },
          "DeliveryException": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Receiving_API_v1_DeliveryException"
            }
          },
          "DeliveryItem": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Receiving_API_v1_DeliveryItem"
            }
          },
          "DeliveryItemLocation": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Receiving_API_v1_DeliveryItemLocation"
            }
          },
          "DeliveryItemLot": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Receiving_API_v1_DeliveryItemLot"
            }
          },
          "DeliveryStatusHistory": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Receiving_API_v1_DeliveryStatusHistory"
            }
          },
          "Lot": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Receiving_API_v1_Lot"
            }
          },
          "Merchant": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Receiving_API_v1_Merchant"
            }
          },
          "Product": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Receiving_API_v1_CompositeStockableProduct"
            }
          },
          "Requester": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Receiving_API_v1_Requester"
            }
          },
          "Warehouse": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Receiving_API_v1_Warehouse"
            }
          }
        }
      },
      "Receiving_API_v1_has_more": {
        "type": "boolean",
        "description": "True if the collection has more items on the next page.\nUse the \"next\" link to retrieve the next page of results."
      },
      "Receiving_API_v1_next": {
        "type": "string",
        "nullable": true,
        "description": "The resource path for the next page of results if any are expected."
      },
      "Receiving_API_v1_previous": {
        "type": "string",
        "nullable": true,
        "description": "The resource path for the previous page of results if any are expected."
      },
      "Receiving_API_v1_meta": {
        "type": "object",
        "properties": {
          "processing_time": {
            "type": "number",
            "description": "Total time in which request is processed and response is sent back.",
            "example": 0.2525252525
          },
          "cursor_start": {
            "type": "integer",
            "description": "A cursor for use in pagination which defines the starting `id` of the next page of results.\nSee [paging parameters](/global-api/paging-parameters) for more information on paging.",
            "nullable": true
          },
          "cursor_end": {
            "type": "integer",
            "description": "A cursor for use in pagination which defines the last `id` of the next page of results, non-inclusive.\nSee [paging parameters](/global-api/paging-parameters) for more information on paging.",
            "nullable": true
          },
          "count": {
            "type": "integer",
            "description": "The total number of items matching the query before applying paging parameters.\nThis field is only present if the query parameter `count=1` is present in the request."
          }
        },
        "description": "Additional metadata pertaining to the response."
      },
      "Shipping_API_v1_shipment-fields-enum": {
        "type": "array",
        "items": {
          "type": "string",
          "enum": [
            "basic",
            "all",
            "shipping_account",
            "shipping_method",
            "shipping_method_name",
            "target_ship_date",
            "total_weight",
            "shipped_weight",
            "items",
            "item_weight",
            "packages",
            "packing_solution",
            "gallery",
            "picking_class_id",
            "is_cutoff_date_exception",
            "is_manually_processed",
            "label_print_target",
            "scac",
            "carrier_shipping_cost",
            "is_international",
            "is_documents_required",
            "is_electronic_customs",
            "infill_product_id",
            "max_package_weight",
            "packing_solution_providers",
            "tpb_group",
            "created_at",
            "updated_at",
            "packed_at",
            "retailer",
            "retailer_ship_to_location"
          ]
        }
      },
      "Shipping_API_v1_shipment-item-fields-enum": {
        "type": "array",
        "items": {
          "type": "string",
          "enum": [
            "basic",
            "all",
            "sku",
            "product",
            "quantity",
            "qty_shipped",
            "qty_picked",
            "qty_canceled",
            "qty_cancel_requested",
            "order_item",
            "reservations"
          ]
        }
      },
      "Shipping_API_v1_product-packaging-fields-enum": {
        "title": "Product Or Packaging",
        "description": "Specify additional fields of the `Product` or `Packaging*` object to be included in the response.",
        "type": "array",
        "items": {
          "type": "string",
          "enum": [
            "basic",
            "all",
            "created_at",
            "updated_at",
            "container_options",
            "supplies_options",
            "data_collection_options",
            "instruction_options",
            "infill_options",
            "vendor_sku",
            "manufacturer_part_number",
            "external_id",
            "barcodes",
            "goods_type",
            "is_available",
            "is_visible",
            "weight",
            "dimensions",
            "volume",
            "inventory",
            "export",
            "regulated_goods",
            "packaging",
            "custom_fields"
          ]
        }
      },
      "Shipping_API_v1_items-order_item-fields-enum": {
        "type": "array",
        "items": {
          "type": "string",
          "enum": [
            "all",
            "order_item_ref",
            "qty_ordered",
            "qty_assigned",
            "qty_allocated",
            "qty_backordered",
            "qty_processing",
            "qty_picked",
            "qty_shipped",
            "qty_cancel_requested",
            "qty_canceled",
            "row_weight"
          ]
        }
      },
      "Shipping_API_v1_order-fields-enum": {
        "title": "Order",
        "type": "array",
        "items": {
          "type": "string",
          "enum": [
            "basic",
            "all",
            "carrier_code",
            "shipping_method",
            "signature_required",
            "is_saturday_delivery",
            "is_overbox_required",
            "other_shipping_options",
            "priority",
            "requested_ship_date",
            "is_declared_value_service",
            "declared_value",
            "duties_payor",
            "shipping_address",
            "items",
            "shipments",
            "created_at",
            "updated_at",
            "completed_at",
            "status_history",
            "custom_greeting",
            "custom_fields",
            "weight",
            "total_item_count",
            "submitted_by",
            "submitted_by_type",
            "backorder_policy",
            "source",
            "customer_note",
            "batch_tag",
            "desired_delivery_date",
            "can_fulfill",
            "can_fulfill_at",
            "is_address_modified",
            "is_address_modified_auto",
            "hold_until_time",
            "tpb_group",
            "customs_value",
            "reason_for_export",
            "generate_sscc",
            "shipped_at",
            "delivered_at",
            "shipping_description",
            "carrier",
            "allocation_options",
            "automation_data",
            "original_address",
            "address_candidates",
            "instructions",
            "retailer",
            "retailer_ship_to_location"
          ]
        }
      },
      "Shipping_API_v1_order-item-fields-enum": {
        "type": "array",
        "items": {
          "type": "string",
          "enum": [
            "all",
            "sku",
            "order_item_ref",
            "product",
            "qty_ordered",
            "qty_assigned",
            "qty_allocated",
            "qty_backordered",
            "qty_processing",
            "qty_picked",
            "qty_shipped",
            "qty_cancel_requested",
            "qty_canceled",
            "row_weight"
          ]
        }
      },
      "Shipping_API_v1_merchant-fields-enum": {
        "title": "Merchant",
        "type": "array",
        "items": {
          "type": "string",
          "enum": [
            "basic",
            "all",
            "code",
            "name",
            "status",
            "created_at",
            "updated_at",
            "brands",
            "default_brand",
            "custom_fields"
          ]
        }
      },
      "Shipping_API_v1_brand-fields-enum": {
        "type": "array",
        "items": {
          "type": "string",
          "enum": [
            "basic",
            "all",
            "code",
            "name",
            "is_active",
            "is_deleted",
            "sort_order"
          ]
        }
      },
      "Shipping_API_v1_order-address-fields-enum": {
        "type": "array",
        "items": {
          "type": "string",
          "enum": [
            "all",
            "first_name,",
            "last_name,",
            "company,",
            "street,",
            "city,",
            "region,",
            "postcode,",
            "country,",
            "telephone,",
            "email,",
            "classification,",
            "is_valid"
          ]
        }
      },
      "Shipping_API_v1_order-status_history-fields-enum": {
        "type": "array",
        "items": {
          "type": "string",
          "enum": [
            "all",
            "status",
            "comment",
            "notify_merchant",
            "user",
            "script_id",
            "created_at"
          ]
        }
      },
      "Shipping_API_v1_order-address_candidate-fields-enum": {
        "title": "OrderAddressCandidate",
        "type": "array",
        "items": {
          "type": "string",
          "enum": [
            "all",
            "address_id",
            "street",
            "city",
            "region_code",
            "postal_code",
            "country_code",
            "classification"
          ]
        }
      },
      "Shipping_API_v1_order-instruction-fields-enum": {
        "title": "OrderInstruction",
        "type": "array",
        "items": {
          "type": "string",
          "enum": [
            "basic",
            "all",
            "order_id",
            "note",
            "file_name",
            "presentation",
            "print_target",
            "print_orientation",
            "copies_printed"
          ]
        }
      },
      "Shipping_API_v1_tpb-group-fields-enum": {
        "title": "ThirdPartyBillingGroup",
        "type": "array",
        "items": {
          "type": "string",
          "enum": [
            "all",
            "label",
            "status"
          ]
        }
      },
      "Shipping_API_v1_warehouse-fields-enum": {
        "title": "Warehouse",
        "description": "Specify additional fields of the `Warehouse` object to be included in the response.",
        "type": "array",
        "items": {
          "type": "string",
          "enum": [
            "basic",
            "all",
            "id",
            "name",
            "is_active",
            "abbreviation"
          ]
        }
      },
      "Shipping_API_v1_shipment-package-fields-enum": {
        "title": "ShipmentPackage",
        "description": "Specify additional fields of the `ShipmentPackage` object to be included in the response.",
        "type": "array",
        "items": {
          "type": "string",
          "enum": [
            "basic",
            "all",
            "tracking_ref",
            "alt_tracking_number",
            "alt_tracking_description",
            "billable_weight",
            "dimensional_weight",
            "dimensional_weight_divisor",
            "total_item_volume",
            "total_void_percent",
            "container_style",
            "num_cartons",
            "sscc",
            "manifest_courier_code",
            "items",
            "container",
            "infill",
            "packaging",
            "collected_data",
            "gallery",
            "created_at",
            "updated_at"
          ]
        }
      },
      "Shipping_API_v1_gallery-fields-enum": {
        "title": "Gallery",
        "description": "Specify additional fields of the `Gallery` object to be included in the response.",
        "type": "array",
        "items": {
          "type": "string",
          "enum": [
            "basic",
            "all",
            "items"
          ]
        }
      },
      "Shipping_API_v1_gallery-item-fields-enum": {
        "title": "GalleryItem",
        "description": "Specify additional fields of the `GalleryItem` object to be included in the response.",
        "type": "array",
        "items": {
          "type": "string",
          "enum": [
            "all",
            "url",
            "thumbnail_url",
            "caption",
            "taken_at",
            "device_info",
            "media_info",
            "created_at"
          ]
        }
      },
      "Shipping_API_v1_packages-items-fields-enum": {
        "title": "ShipmentPackageItem",
        "description": "Specify additional fields of the `ShipmentPackageItem` object to be included in the response.",
        "type": "array",
        "items": {
          "type": "string",
          "enum": [
            "all",
            "sku",
            "name",
            "quantity",
            "weight",
            "hazmat_unit_weight",
            "customs_value",
            "order_item_id",
            "order_item_sku",
            "order_item_quantity"
          ]
        }
      },
      "Shipping_API_v1_packing_solutions-fields-enum": {
        "title": "Product Or Packaging",
        "description": "Specify additional fields of the `Product` or `Packaging*` object to be included in the response.",
        "type": "array",
        "items": {
          "type": "string",
          "enum": [
            "all",
            "created_at",
            "updated_at"
          ]
        }
      },
      "Shipping_API_v1_retailer-fields-enum": {
        "title": "Retailer",
        "type": "array",
        "items": {
          "type": "string",
          "enum": [
            "basic",
            "all",
            "code",
            "name",
            "status",
            "fulfillment_model",
            "parent_retailer",
            "legal_name",
            "dba",
            "default_duties_payor",
            "default_shipping_method",
            "allowed_shipping_methods",
            "routing_guide_notes",
            "custom_fields",
            "created_at",
            "updated_at"
          ]
        }
      },
      "Shipping_API_v1_retailer-ship-to-location-fields-enum": {
        "title": "RetailerShipToLocation",
        "type": "array",
        "items": {
          "type": "string",
          "enum": [
            "basic",
            "all",
            "code",
            "qualifier",
            "label",
            "location_type",
            "company",
            "street",
            "city",
            "region_id",
            "region",
            "postcode",
            "country_id",
            "telephone",
            "email",
            "is_default",
            "status",
            "retailer",
            "created_at",
            "updated_at"
          ]
        }
      },
      "Shipping_API_v1_WarehouseRef": {
        "title": "WarehouseRef",
        "type": "object",
        "description": "A reference to a `Warehouse` by `id`.",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "Warehouse"
            ],
            "description": "This property describes the type of object in the response body."
          },
          "id": {
            "type": "integer",
            "format": "int32",
            "description": "The internal `id` property used as a path parameter in a resource lookup."
          }
        },
        "required": [
          "type",
          "id"
        ],
        "nullable": true,
        "additionalProperties": false
      },
      "Shipping_API_v1_OrderRef": {
        "title": "OrderRef",
        "type": "object",
        "description": "A reference to an `Order` by `id`.",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "Order"
            ]
          },
          "id": {
            "type": "integer",
            "format": "int32",
            "description": "The internal `id` property used as a path parameter in a resource lookup."
          }
        },
        "required": [
          "type",
          "id"
        ],
        "nullable": true,
        "additionalProperties": false
      },
      "Shipping_API_v1_ShippingAccountRef": {
        "title": "ShippingAccount",
        "type": "object",
        "description": "Reference a `ShippingAccount` by `id`.",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "ShippingAccount"
            ]
          },
          "id": {
            "type": "integer",
            "format": "int32",
            "example": 4,
            "description": "The internal `id` property used as a path parameter in a resource lookup."
          }
        },
        "required": [
          "type",
          "id"
        ],
        "additionalProperties": false
      },
      "Shipping_API_v1_WeightUnit": {
        "type": "string",
        "description": "This can be an imperial or metric unit for weight.",
        "enum": [
          "lb",
          "oz",
          "kg",
          "g"
        ]
      },
      "Shipping_API_v1_Weight": {
        "title": "Weight",
        "type": "object",
        "nullable": true,
        "properties": {
          "value": {
            "type": "number",
            "description": "The weight quantity defined as a floating point value of up to 4 decimal places.",
            "format": "float",
            "example": 20
          },
          "unit": {
            "$ref": "#/components/schemas/Shipping_API_v1_WeightUnit"
          }
        }
      },
      "Shipping_API_v1_ProductRef": {
        "title": "ProductRef",
        "type": "object",
        "description": "A reference to a `Product` object by `id`.",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "Product"
            ],
            "description": "This property describes the type of object in the response body."
          },
          "id": {
            "type": "integer",
            "format": "int32",
            "example": 3,
            "description": "The internal `id` property used as a path parameter in a resource lookup."
          }
        },
        "required": [
          "type",
          "id"
        ],
        "additionalProperties": false
      },
      "Shipping_API_v1_ShipmentItemRef": {
        "title": "ShipmentItem",
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "ShipmentItem"
            ]
          },
          "id": {
            "type": "integer",
            "description": "The internal `id` property used as a path parameter in a resource lookup.",
            "format": "int32"
          },
          "product": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Shipping_API_v1_ProductRef"
              },
              {
                "description": "The Product this shipment line-item refers to."
              }
            ]
          }
        },
        "required": [
          "type",
          "id"
        ],
        "additionalProperties": false
      },
      "Shipping_API_v1_Monetary": {
        "title": "Monetary",
        "type": "object",
        "nullable": true,
        "properties": {
          "amount": {
            "type": "number",
            "description": "This is the monetary value..",
            "format": "float",
            "example": 99
          },
          "currency": {
            "type": "string",
            "description": "An ISO 3166-1 alpha-3 currency code.",
            "example": "USD"
          }
        }
      },
      "Shipping_API_v1_PackagePackaging": {
        "type": "object",
        "title": "PackagePackaging",
        "properties": {
          "product": {
            "$ref": "#/components/schemas/Shipping_API_v1_ProductRef"
          },
          "quantity": {
            "type": "integer",
            "example": 4,
            "description": "The product quantity in the package."
          }
        },
        "required": [
          "product",
          "quantity"
        ],
        "additionalProperties": false
      },
      "Shipping_API_v1_CollectedData": {
        "type": "object",
        "title": "CollectedData",
        "properties": {
          "order_item_id": {
            "type": "integer",
            "format": "int32",
            "example": 4,
            "readOnly": true,
            "description": "The internal `id` property used as a path parameter in a resource lookup."
          },
          "label": {
            "type": "string",
            "description": "The label of the collected order item."
          },
          "value": {
            "type": "string",
            "description": "The value of the collected order item."
          }
        }
      },
      "Shipping_API_v1_updated_at": {
        "type": "string",
        "format": "date-time",
        "description": "The date and time the object was last updated in RFC 3339 section 5.6 notation.\\\n  `Optional Field`",
        "example": "2017-07-21T17:39:43Z",
        "nullable": true,
        "readOnly": true
      },
      "Shipping_API_v1_created_at": {
        "type": "string",
        "format": "date-time",
        "description": "The date and time the object was created in RFC 3339 section 5.6 notation.",
        "example": "2017-07-21T17:32:28Z",
        "readOnly": true
      },
      "Shipping_API_v1_Item": {
        "title": "GalleryItem",
        "type": "object",
        "readOnly": true,
        "description": "A single photo item in a `Gallery`.",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "GalleryItem"
            ],
            "readOnly": true
          },
          "id": {
            "type": "integer",
            "format": "int32",
            "readOnly": true,
            "description": "The internal `id` property used as a path parameter in a resource lookup."
          },
          "url": {
            "type": "string",
            "description": "The URL to the original image."
          },
          "thumbnail_url": {
            "type": "string",
            "nullable": true,
            "description": "The URL to a thumbnail version of the image."
          },
          "caption": {
            "type": "string",
            "description": "The photo caption."
          },
          "taken_at": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "description": "The photo timestamp from image metadata, when available."
          },
          "device_info": {
            "type": "object",
            "nullable": true,
            "description": "Device metadata extracted from the image, when available.",
            "additionalProperties": true
          },
          "media_info": {
            "type": "object",
            "nullable": true,
            "description": "Media metadata extracted from the image, when available.",
            "additionalProperties": true
          },
          "created_at": {
            "$ref": "#/components/schemas/Shipping_API_v1_created_at"
          }
        }
      },
      "Shipping_API_v1_Gallery": {
        "title": "Gallery",
        "type": "object",
        "readOnly": true,
        "description": "A `Gallery` contains photos attached to a specific entity.",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "Gallery"
            ],
            "readOnly": true
          },
          "id": {
            "type": "integer",
            "format": "int32",
            "readOnly": true,
            "description": "The internal `id` property used as a path parameter in a resource lookup."
          },
          "photo_count": {
            "type": "integer",
            "format": "int32",
            "minimum": 0,
            "description": "The number of photos in the gallery."
          },
          "updated_at": {
            "$ref": "#/components/schemas/Shipping_API_v1_updated_at"
          },
          "items": {
            "type": "array",
            "description": "The list of photo items in this gallery.\\\n  `Optional Field`",
            "items": {
              "$ref": "#/components/schemas/Shipping_API_v1_Item"
            }
          }
        }
      },
      "Shipping_API_v1_ShipmentPackage": {
        "title": "ShipmentPackage",
        "type": "object",
        "readOnly": true,
        "description": "A Package",
        "properties": {
          "items": {
            "type": "array",
            "description": "A list of items contained within the `ShipmentPackage`.",
            "minItems": 1,
            "items": {
              "type": "object",
              "properties": {
                "sku": {
                  "type": "string",
                  "example": "KDS2108",
                  "description": "The SKU identifier for the product contained in the package."
                },
                "quantity": {
                  "type": "integer",
                  "example": 2,
                  "description": "The quantity of a particular product in a package."
                },
                "order_item_id": {
                  "type": "integer",
                  "format": "int32",
                  "example": 4,
                  "readOnly": true,
                  "description": "The internal `id` property used as a path parameter in a resource lookup."
                },
                "order_item_sku": {
                  "type": "string",
                  "example": "KDS2108",
                  "description": "The SKU identifier for the product as it relates to the shipment in an order."
                },
                "order_item_qty": {
                  "type": "number",
                  "format": "float",
                  "example": 2,
                  "description": "The quantity of a product in the shipment of an order."
                },
                "shipment_item_id": {
                  "type": "integer",
                  "format": "int32",
                  "example": 4,
                  "readOnly": true,
                  "description": "The internal `id` property used as a path parameter in a resource lookup."
                },
                "weight": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/Shipping_API_v1_Weight"
                    },
                    {
                      "description": "The combined weight of the the same items in the package."
                    }
                  ]
                },
                "hazmat_unit_weight": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/Shipping_API_v1_Weight"
                    },
                    {
                      "description": "The combined weight of the same items in thie package formatted for hazmat inspection."
                    }
                  ]
                },
                "total_customs_value": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/Shipping_API_v1_Monetary"
                    },
                    {
                      "description": "The combined value of the same items in the package."
                    }
                  ]
                }
              }
            }
          },
          "packaging": {
            "type": "array",
            "description": "Packaging data to be used to process the shipment.",
            "items": {
              "$ref": "#/components/schemas/Shipping_API_v1_PackagePackaging"
            }
          },
          "collected_data": {
            "type": "array",
            "description": "Data collected for a shipment package.",
            "items": {
              "$ref": "#/components/schemas/Shipping_API_v1_CollectedData"
            }
          },
          "gallery": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Shipping_API_v1_Gallery"
              },
              {
                "nullable": true
              }
            ],
            "description": "The package-level gallery.\\\n  `Optional Field`"
          },
          "created_at": {
            "$ref": "#/components/schemas/Shipping_API_v1_created_at"
          },
          "updated_at": {
            "$ref": "#/components/schemas/Shipping_API_v1_updated_at"
          }
        }
      },
      "Shipping_API_v1_LengthUnit": {
        "type": "string",
        "description": "The imperical or metric unit of measurement.",
        "enum": [
          "in",
          "mm",
          "cm",
          "m"
        ]
      },
      "Shipping_API_v1_Dimensions": {
        "title": "Dimensions",
        "type": "object",
        "nullable": true,
        "properties": {
          "length": {
            "type": "number",
            "description": "This distance value is usually assigned to the longest side of the object and is defined as a floating-point number up to 4 decimal places.",
            "format": "float",
            "example": 8
          },
          "width": {
            "type": "number",
            "description": "This value describes the horizontal distance of the subject defined as a floating-point number up to 4 decimal places.",
            "format": "float",
            "example": 6
          },
          "height": {
            "type": "number",
            "description": "This value describes the vertical distance of the subject defined as a floating-point number up to 4 decimal places.",
            "format": "float",
            "example": 4
          },
          "unit": {
            "$ref": "#/components/schemas/Shipping_API_v1_LengthUnit"
          }
        }
      },
      "Shipping_API_v1_VolumeUnit": {
        "type": "string",
        "description": "The imperical or metric unit of measurement as a cubic value.",
        "enum": [
          "in^3",
          "mm^3",
          "cm^3",
          "m^3"
        ]
      },
      "Shipping_API_v1_Volume": {
        "title": "Volume",
        "type": "object",
        "nullable": true,
        "properties": {
          "value": {
            "type": "number",
            "description": "This value describes the cubic size of the subject as a floating-point number up to 4 decimal places.",
            "format": "float",
            "example": 300
          },
          "unit": {
            "$ref": "#/components/schemas/Shipping_API_v1_VolumeUnit"
          }
        }
      },
      "Shipping_API_v1_regulation_type": {
        "type": "string",
        "enum": [
          "full",
          "orm-d",
          "limited",
          "small",
          "li-battery",
          "normal"
        ],
        "description": "Determines which exception will apply to either Air or Ground shipping methods.\n  - `full` Fully Regulated\n  - `orm-d` ORM-D\n  - `limited` Limited Quantity\n  - `small` Excepted Quantity \n  - `li-battery` Lithium Batteries (49 CFR § 173.185)\n  - `normal` Normal Goods "
      },
      "Shipping_API_v1_PackingSolutionContainerItem": {
        "title": "ShipmentPackingSolutionContainerItem",
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "ShipmentPackingSolutionContainerItem"
            ],
            "readOnly": true
          },
          "sku": {
            "type": "string",
            "example": "KDS2108",
            "description": "The SKU identifier for the product packed in the container."
          },
          "quantity": {
            "type": "integer",
            "example": 2,
            "description": "The quantity of a particular product within the packing solution's container."
          },
          "order_item_id": {
            "type": "integer",
            "format": "int32",
            "example": 4,
            "readOnly": true,
            "description": "The internal `id` property used as a path parameter in a resource lookup."
          },
          "order_item_sku": {
            "type": "string",
            "example": "KDS2108",
            "description": "The product SKU associated with the container as it relates to the whole order."
          },
          "order_item_qty": {
            "type": "number",
            "format": "float",
            "example": 2,
            "description": "The quantity of a product in the container as it relates to the whole order."
          },
          "shipment_item_id": {
            "type": "integer",
            "format": "int32",
            "example": 4,
            "readOnly": true,
            "description": "The internal `id` property used as a path parameter in a resource lookup."
          },
          "weight": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Shipping_API_v1_Weight"
              },
              {
                "description": "The combined product weight within the container."
              }
            ]
          }
        }
      },
      "Shipping_API_v1_PackingSolutionContainer": {
        "title": "ShipmentPackingSolutionContainer",
        "type": "object",
        "readOnly": true,
        "description": "A Package",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "ShipmentPackingSolutionContainer"
            ],
            "readOnly": true
          },
          "weight": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Shipping_API_v1_Weight"
              },
              {
                "description": "The weight of the container when packed with the shipment items."
              }
            ]
          },
          "dimensions": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Shipping_API_v1_Dimensions"
              },
              {
                "description": "The dimensions of the container in imperial or metric units."
              }
            ]
          },
          "volume": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Shipping_API_v1_Volume"
              },
              {
                "description": "The total volume of the container in imperial or metric units."
              }
            ]
          },
          "void_percent": {
            "type": "number",
            "format": "float",
            "example": 15.23,
            "description": "The percentage of void space remaining in the container after using the packing solution to pack the items."
          },
          "regulation_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Shipping_API_v1_regulation_type"
              },
              {
                "description": "The regulation type of which this container fulfills the packaging requirements."
              }
            ]
          },
          "items": {
            "type": "array",
            "minItems": 1,
            "items": {
              "$ref": "#/components/schemas/Shipping_API_v1_PackingSolutionContainerItem"
            },
            "description": "The shipment items contained within the packaging."
          }
        }
      },
      "Shipping_API_v1_PackingSolution": {
        "title": "ShipmentPackingSolution",
        "type": "object",
        "readOnly": true,
        "description": "A Package",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "ShipmentPackingSolution"
            ],
            "readOnly": true
          },
          "id": {
            "type": "integer",
            "readOnly": true,
            "example": 3,
            "description": "The internal `id` property used as a path parameter in a resource lookup."
          },
          "containers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Shipping_API_v1_PackingSolutionContainer"
            },
            "description": "The list of containers that make up the shipment's packing solution."
          }
        }
      },
      "Shipping_API_v1_RetailerRef": {
        "title": "RetailerRef",
        "type": "object",
        "description": "Reference a `Retailer` by `id`.",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "Retailer"
            ],
            "example": "Retailer"
          },
          "id": {
            "type": "integer",
            "format": "int32",
            "minimum": 1,
            "example": 2,
            "description": "The internal `id` property used as a path parameter in a resource lookup."
          }
        },
        "required": [
          "type",
          "id"
        ],
        "additionalProperties": false
      },
      "Shipping_API_v1_ShipToLocationRef": {
        "title": "RetailerShipToLocationRef",
        "type": "object",
        "description": "Reference a `RetailerShipToLocation` by `id`.",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "RetailerShipToLocation"
            ]
          },
          "id": {
            "type": "integer",
            "format": "int32",
            "minimum": 1,
            "description": "The internal `id` property used as a path parameter in a resource lookup."
          }
        },
        "required": [
          "type",
          "id"
        ],
        "additionalProperties": false
      },
      "Shipping_API_v1_Shipment": {
        "title": "Shipment",
        "type": "object",
        "description": "A `Shipment` represents one or more pickable items which may constitute a whole or part of an `Order`. \nShipments are assigned directly to a `Warehouse` which is the origin for the shipment.\nOnce packed, a Shipment will represent one or more packages containing all of the shipment items.",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "Shipment"
            ],
            "readOnly": true
          },
          "id": {
            "type": "integer",
            "description": "The internal `id` property used as a path parameter in a resource lookup.",
            "example": 3,
            "readOnly": true
          },
          "unique_id": {
            "type": "string",
            "description": "A unique ID for the shipment. This number may appear on the packing slip as the \"Packing Slip #\".",
            "example": "1100000003",
            "readOnly": true
          },
          "external_id": {
            "type": "string",
            "description": "An arbitrary string to use as an external reference ID.",
            "maxLength": 64
          },
          "status": {
            "type": "string",
            "description": "The shipment status indicates which stage the shipment is in.",
            "enum": [
              "new",
              "picking",
              "picked",
              "packing",
              "packed",
              "loaded",
              "canceled",
              "voided",
              "packing_exception",
              "shipped"
            ],
            "example": "new"
          },
          "shipping_carrier_code": {
            "type": "string",
            "description": "The ShipStream carrier code for the shipment. This will always be the same as the prefix for the `shipping_service_code`.",
            "example": "fedex",
            "readOnly": true
          },
          "shipping_method": {
            "type": "string",
            "description": "The shipping method that is ultimately chosen for the shipment. Virtual Shipping Methods such as \"Cheapest All\"\nwill determine the shipment's shipping method after rating data has been calculated.\\\n  `Optional Field`"
          },
          "shipping_method_name": {
            "type": "string",
            "description": "The name of the shipping method.\\\n  `Optional Field`"
          },
          "shipping_service_code": {
            "type": "string",
            "description": "The shipping service that is assigned to the shipment. This value is unique to ShipStream and the prefix is always\nequivalent to the `shipping_carrier_code` which is provided separately for convenience.\nThis value is often the same as the Order's `shipping_method_code` but could be different if:\n  - The order was updated after the shipment was packed\n  - A Virtual Shipping Method was used to assign a shipping method based on rate shopping\n  - A Preprocess Packing Solution Script was used to assign a specific shipping method"
          },
          "shipping_service_name": {
            "type": "string",
            "description": "The human-friendly name of the shipping service assigned to this shipment. This value is the same as the label returned\nby the `shipping/shipping_method` Enumeration.",
            "example": "fedex_FEDEX_2_DAY",
            "readOnly": true
          },
          "warehouse": {
            "$ref": "#/components/schemas/Shipping_API_v1_WarehouseRef"
          },
          "order": {
            "$ref": "#/components/schemas/Shipping_API_v1_OrderRef"
          },
          "shipping_account": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Shipping_API_v1_ShippingAccountRef"
              }
            ],
            "description": "The shipping account used to submit this shipment.\\\n  `Optional Field`"
          },
          "target_ship_date": {
            "type": "string",
            "description": "The date that the shipment is scheduled to be completed.\\\n  `Optional Field`",
            "format": "date",
            "nullable": true
          },
          "item_weight": {
            "description": "The total weight of all shipment items (does not include packaging).\\\n  `Optional Field`",
            "allOf": [
              {
                "$ref": "#/components/schemas/Shipping_API_v1_Weight"
              }
            ]
          },
          "shipped_weight": {
            "description": "The weight of all shipment items and packaging at the time of shipping.\\\n  `Optional Field`",
            "allOf": [
              {
                "$ref": "#/components/schemas/Shipping_API_v1_Weight"
              }
            ]
          },
          "items": {
            "type": "array",
            "description": "A list of items belonging to the `Shipment`.\\\n  `Optional Field`",
            "minItems": 1,
            "items": {
              "$ref": "#/components/schemas/Shipping_API_v1_ShipmentItemRef"
            }
          },
          "packages": {
            "type": "array",
            "description": "The list of packages included in the shipment.\\\n  `Optional Field`",
            "items": {
              "$ref": "#/components/schemas/Shipping_API_v1_ShipmentPackage"
            }
          },
          "packing_solution": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Shipping_API_v1_PackingSolution"
              },
              {
                "readOnly": true
              }
            ],
            "description": "The list of packaging solutions included in the shipment.\\\n  `Optional Field`"
          },
          "gallery": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Shipping_API_v1_Gallery"
              },
              {
                "nullable": true
              }
            ],
            "description": "The shipment-level gallery.\\\n  `Optional Field`"
          },
          "picking_class_id": {
            "type": "string",
            "example": "Default",
            "description": "The ID for the Picking Class used for Bulk Fulfill Orders and Picking Batches. \\\n  `Optional Field`"
          },
          "is_cutoff_date_exception": {
            "type": "boolean",
            "example": true,
            "description": "Flag to indicate that a shipment has a cutoff date exception. \\\n  `Optional Field`"
          },
          "is_manually_processed": {
            "type": "boolean",
            "example": true,
            "description": "Flag to indicate that a shipment is to be manually processed. \\\n  `Optional Field`"
          },
          "label_print_target": {
            "type": "string",
            "example": "label001",
            "description": "The label printer ID used for the shipment. \\\n  `Optional Field`"
          },
          "scac": {
            "type": "string",
            "example": "FDEG",
            "description": "The Standard Carrier Alpha Code which can be found at https://en.wikipedia.org/wiki/Standard_Carrier_Alpha_Code \\\n  `Optional Field`"
          },
          "carrier_shipping_cost": {
            "type": "number",
            "example": 3.9,
            "description": "The shipping cost given by the carrier. \\\n  `Optional Field`"
          },
          "is_international": {
            "type": "boolean",
            "example": true,
            "description": "Flag to indicate that a shipment is using international shipping. \\\n  `Optional Field`"
          },
          "is_documents_required": {
            "type": "boolean",
            "example": true,
            "description": "Flag to indicate that a shipment requires documents such as those for customs. \\\n  `Optional Field`"
          },
          "is_electronic_customs": {
            "type": "boolean",
            "example": true,
            "description": "The flag indicates the presence of electronic customs documents, which will skip printing customs documents. \\\n  `Optional Field`"
          },
          "infill_product_id": {
            "type": "string",
            "example": "kraft",
            "description": "The SKU for the infill product to be used in the shipment. \\\n  `Optional Field`"
          },
          "max_package_weight": {
            "type": "number",
            "example": 2.5,
            "description": "The maximum package weight set for the shipment. \\\n  `Optional Field`"
          },
          "packing_solution_providers": {
            "type": "array",
            "example": [
              "Provider 1",
              "Provider 2"
            ],
            "items": {
              "type": "string"
            },
            "description": "Packing solution providers for the shipment. \\\n  `Optional Field`"
          },
          "tpb_group": {
            "type": "string",
            "example": "ACME Inc",
            "description": "The third party billing group for the shipment. \\\n  `Optional Field`"
          },
          "retailer": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Shipping_API_v1_RetailerRef"
              }
            ],
            "nullable": true,
            "description": "Reference to the B2B retailer this shipment's order was placed for, if any.\\\n  `Optional Field`"
          },
          "retailer_ship_to_location": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Shipping_API_v1_ShipToLocationRef"
              }
            ],
            "nullable": true,
            "description": "Reference to the retailer ship-to location this shipment's order is destined for, if any.\\\n  `Optional Field`"
          },
          "created_at": {
            "description": "The date and time the object was created in RFC 3339 section 5.6 notation.\\\n  `Optional Field`",
            "allOf": [
              {
                "$ref": "#/components/schemas/Shipping_API_v1_created_at"
              }
            ]
          },
          "updated_at": {
            "description": "The date and time the object was last updated in RFC 3339 section 5.6 notation.\\\n  `Optional Field`",
            "allOf": [
              {
                "$ref": "#/components/schemas/Shipping_API_v1_updated_at"
              }
            ]
          },
          "packed_at": {
            "type": "string",
            "description": "The date and time the Shipment was packed in RFC 3339 section 5.6 notation.\\\n  `Optional Field`",
            "format": "date-time",
            "example": "2017-07-21T17:32:28Z",
            "readOnly": true,
            "nullable": true
          },
          "total_weight": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Shipping_API_v1_Weight"
              },
              {
                "description": "The total weight of the shipment as measured or estimated based on the packages and their contents."
              }
            ]
          }
        }
      },
      "Shipping_API_v1_Brand": {
        "title": "Brand",
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "Brand"
            ],
            "readOnly": true
          },
          "id": {
            "type": "integer",
            "description": "The internal `id` property used as a path parameter in a resource lookup.",
            "format": "int32",
            "readOnly": true,
            "example": 4
          },
          "code": {
            "type": "string",
            "description": "The brand code may contain only letters (a-z), numbers (0-9) or underscore(_), the first character must be a letter.",
            "minLength": 1,
            "maxLength": 32,
            "example": "acme_inc"
          },
          "name": {
            "type": "string",
            "description": "Any string which uniquely identifies a Brand.",
            "minLength": 1,
            "maxLength": 255,
            "example": "ACME Inc."
          },
          "is_active": {
            "type": "boolean",
            "description": "This flag is `true` if the Brand is active.",
            "example": true
          },
          "is_deleted": {
            "type": "boolean",
            "description": "This flag is `true` if the Brand has been deleted.",
            "example": false
          },
          "sort_order": {
            "type": "number",
            "nullable": true,
            "description": "The sort order property.",
            "example": 0
          }
        }
      },
      "Shipping_API_v1_created_at-optional": {
        "type": "string",
        "format": "date-time",
        "description": "The date and time the object was created in RFC 3339 section 5.6 notation.\\\n  `Optional Field`",
        "example": "2017-07-21T17:32:28Z",
        "nullable": true,
        "readOnly": true
      },
      "Shipping_API_v1_BrandRef": {
        "title": "BrandRef",
        "type": "object",
        "description": "Reference a `Brand` by `id`.",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "Brand"
            ]
          },
          "id": {
            "type": "integer",
            "format": "int32",
            "description": "The numeric `id` of a particular resource being updated.",
            "example": 4
          }
        },
        "required": [
          "type",
          "id"
        ],
        "additionalProperties": false
      },
      "Shipping_API_v1_custom_field_scalar_value": {
        "type": "object",
        "description": "A wrapper for scalar custom field values.\nThe value type depends on the field's input type:\n- **boolean**: boolean value\n- **text/multiline-text/email/url/date**: string value\n- **number**: number value\n- **admin-user/client-user**: integer value (user ID)",
        "required": [
          "value"
        ],
        "properties": {
          "value": {
            "description": "The field value. Type varies based on field configuration.",
            "oneOf": [
              {
                "type": "boolean"
              },
              {
                "type": "string"
              },
              {
                "type": "number"
              },
              {
                "type": "integer"
              }
            ]
          }
        },
        "additionalProperties": false
      },
      "Shipping_API_v1_custom_field_select_option": {
        "type": "object",
        "description": "A selected option for select type fields.",
        "required": [
          "id",
          "label"
        ],
        "properties": {
          "id": {
            "type": "integer",
            "description": "The option ID."
          },
          "label": {
            "type": "string",
            "description": "The display label for the selected option."
          }
        },
        "additionalProperties": false
      },
      "Shipping_API_v1_custom_field_multiselect_value": {
        "type": "array",
        "description": "Array of selected options for multiselect type fields.",
        "items": {
          "$ref": "#/components/schemas/Shipping_API_v1_custom_field_select_option"
        }
      },
      "Shipping_API_v1_custom_field_value": {
        "description": "Union type for all possible custom field value formats.",
        "anyOf": [
          {
            "$ref": "#/components/schemas/Shipping_API_v1_custom_field_scalar_value"
          },
          {
            "$ref": "#/components/schemas/Shipping_API_v1_Monetary"
          },
          {
            "$ref": "#/components/schemas/Shipping_API_v1_custom_field_select_option"
          },
          {
            "$ref": "#/components/schemas/Shipping_API_v1_custom_field_multiselect_value"
          }
        ]
      },
      "Shipping_API_v1_sales_custom_fields": {
        "type": "object",
        "description": "Custom field values for the order, keyed by field code.\n\nThe format of each value depends on the field's input type:\n- **select**: `{\"id\": <integer>, \"label\": \"<string>\"}`\n- **multiselect**: `[{\"id\": <integer>, \"label\": \"<string>\"}, ...]`\n- **currency**: Uses the Monetary type `{\"amount\": <number>, \"currency\": \"<string>\"}`\n- **boolean**: `{\"value\": <boolean>}`\n- **text/multiline-text/email/url/date**: `{\"value\": \"<string>\"}`\n- **number**: `{\"value\": <number>}`\n- **admin-user/client-user**: `{\"value\": <integer>}` (user ID)",
        "additionalProperties": {
          "$ref": "#/components/schemas/Shipping_API_v1_custom_field_value"
        },
        "example": {
          "is_gift": {
            "value": true
          },
          "order_details": {
            "value": "test details"
          },
          "department": {
            "id": 3,
            "label": "Shipping"
          },
          "priority_levels": [
            {
              "id": 1,
              "label": "Urgent"
            },
            {
              "id": 2,
              "label": "High"
            }
          ],
          "cost_of_goods": {
            "amount": 156.99,
            "currency": "USD"
          },
          "assigned_user": {
            "value": 42
          }
        }
      },
      "Shipping_API_v1_Merchant": {
        "title": "Merchant",
        "type": "object",
        "description": "A `Merchant` represents an entity that owns a distinct pool of inventory and line of business.",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "Merchant"
            ],
            "readOnly": true
          },
          "id": {
            "type": "integer",
            "format": "int32",
            "description": "The internal `id` property used as a path parameter in a resource lookup.",
            "readOnly": true,
            "example": 4
          },
          "code": {
            "type": "string",
            "description": "Merchant code may only contain letters (a-z), numbers (0-9) or underscore(_), the first character must be a letter.",
            "minLength": 1,
            "maxLength": 32,
            "example": "acme_inc"
          },
          "name": {
            "type": "string",
            "description": "Any string which uniquely identifies a Merchant.",
            "minLength": 1,
            "maxLength": 64,
            "example": "ACME Inc."
          },
          "status": {
            "type": "string",
            "enum": [
              "active",
              "inactive",
              "suspended",
              "archived"
            ],
            "default": "active",
            "description": "Lifecycle status of the Merchant:\n- `active`: Merchant is operational and available for use\n- `suspended`: Temporarily on hold, can be easily reactivated\n- `inactive`: Long-term offline status, reactivation is possible but may require additional steps\n- `archived`: Soft delete status, manual recovery required",
            "example": "active",
            "nullable": true,
            "readOnly": true
          },
          "created_at": {
            "$ref": "#/components/schemas/Shipping_API_v1_created_at-optional"
          },
          "updated_at": {
            "$ref": "#/components/schemas/Shipping_API_v1_updated_at"
          },
          "brands": {
            "type": "array",
            "items": {
              "allOf": [
                {
                  "$ref": "#/components/schemas/Shipping_API_v1_BrandRef"
                }
              ]
            },
            "description": "A merchant must have one or more brands which may share the same pool of inventory. Brands can be used for\ncustomizing presentation and behaviors and often correspond to distinct lines of business or market presences.\\\n  `Optional Field`",
            "readOnly": true
          },
          "default_brand": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Shipping_API_v1_BrandRef"
              }
            ],
            "description": "This is the primary brand used when defining only the merchant for operations such as creating a new product.\\\n  `Optional Field`"
          },
          "custom_fields": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/components/schemas/Shipping_API_v1_sales_custom_fields"
              }
            ],
            "nullable": true,
            "description": "Custom fields associated with the merchant in script format. Each field contains\na code and value, with additional properties depending on the field type.\\\n  `Optional Field`"
          }
        }
      },
      "Shipping_API_v1_Status": {
        "title": "OrderStatus",
        "type": "string",
        "enum": [
          "new",
          "delayed_shipment",
          "holded",
          "partial_backorder",
          "backordered",
          "unresolved",
          "unable_to_process",
          "processing",
          "complete",
          "canceled",
          "invalid_address"
        ],
        "example": "new",
        "readOnly": true,
        "description": "This describes the low-level details of the current process of the order.",
        "nullable": true
      },
      "Shipping_API_v1_signature": {
        "type": "string",
        "enum": [
          "none",
          "any",
          "indirect",
          "adult",
          "default"
        ],
        "description": "If a signature option is selected, this special service will instruct the carrier's driver to request a physical signature from the shipment recipient at the time of delivery. If it is not an available service, the shipping carrier will return an error when attempting to \"Pack and Ship\" the order.\\\n  - `none` No signature required.\n  - `any` Direct signature required.\n  - `indirect` Indirect signature required.\n  - `adult` Adult signature required.\n  - `default` The default option for the shipping method will be applied.",
        "example": "adult"
      },
      "Shipping_API_v1_classification": {
        "type": "string",
        "enum": [
          "residential",
          "commercial",
          "post_office",
          "military",
          "unknown"
        ],
        "description": "Address classification:\n- `residential` - Residential address\n- `commercial` - Commercial/business address\n- `post_office` - Post Office box\n- `military` - Military/Diplomatic address\n- `unknown` - Classification could not be determined",
        "example": "residential"
      },
      "Shipping_API_v1_Address": {
        "title": "OrderAddress",
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "OrderAddress"
            ],
            "readOnly": true
          },
          "id": {
            "type": "integer",
            "format": "int32",
            "example": 4,
            "readOnly": true,
            "description": "The internal `id` property used as a path parameter in a resource lookup."
          },
          "first_name": {
            "type": "string",
            "example": "Celina",
            "maxLength": 255,
            "description": "The recipient's first name."
          },
          "last_name": {
            "type": "string",
            "example": "Goalley",
            "maxLength": 255,
            "description": "The recipient's last name."
          },
          "company": {
            "type": "string",
            "example": "Thompson-Torp",
            "maxLength": 255,
            "description": "The recipient's company name (if applicable)."
          },
          "street": {
            "type": "array",
            "minItems": 1,
            "maxItems": 4,
            "items": {
              "type": "string",
              "example": "15491 West Whiteside Street"
            },
            "description": "The recipient's building, apartment, or suite number then a street name."
          },
          "city": {
            "type": "string",
            "example": "Springfield",
            "maxLength": 255,
            "description": "The recipient's city or town name within a state, providence, or region."
          },
          "region": {
            "type": "string",
            "example": "MO",
            "maxLength": 255,
            "description": "The recipient's full state, providence, or region name."
          },
          "postcode": {
            "type": "string",
            "example": "65807",
            "maxLength": 255,
            "description": "This is a country-specific postal code (also known as zip code, post code, etc.) that can comprise of any number of alpha-numeric characters and hyphens. (e.g. 99999 or 99999-999, A9A 9A9)."
          },
          "country": {
            "type": "string",
            "example": "US",
            "minLength": 2,
            "maxLength": 2,
            "description": "An ISO 3166 alpha-2 country code."
          },
          "telephone": {
            "type": "string",
            "example": "(417) 123-4567",
            "maxLength": 255,
            "description": "The phone number of the recipient including country code (e.g. +444175193773)."
          },
          "email": {
            "type": "string",
            "format": "email",
            "example": "celina.goalley@example.com",
            "maxLength": 255,
            "nullable": true,
            "description": "The full email address of the recipient."
          },
          "classification": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/Shipping_API_v1_classification"
              }
            ],
            "nullable": true,
            "description": "The type of address for the recipient which can affect rates and availability of shipping methods."
          },
          "is_valid": {
            "type": "boolean",
            "example": true,
            "description": "This flag indicates whether or not the address has been validating using a third party address validator."
          }
        }
      },
      "Shipping_API_v1_StockableProductRef": {
        "title": "StockableProductRef",
        "type": "object",
        "description": "A reference to a `Product` or stockable packaging type object by `id`.",
        "properties": {
          "type": {
            "type": "string",
            "description": "This is a read-only property that describes the type of object in the response body.",
            "enum": [
              "Product",
              "PackagingContainer",
              "PackagingInfill",
              "PackagingSupplies"
            ]
          },
          "id": {
            "type": "integer",
            "description": "The internal, read-only, `id` property used as a path parameter in a resource lookup.",
            "format": "int32"
          }
        },
        "required": [
          "type",
          "id"
        ],
        "nullable": true,
        "additionalProperties": false
      },
      "Shipping_API_v1_OrderItem": {
        "title": "OrderItem",
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "OrderItem"
            ],
            "readOnly": true
          },
          "id": {
            "type": "integer",
            "format": "int32",
            "example": 4,
            "readOnly": true,
            "description": "The internal `id` property used as a path parameter in a resource lookup."
          },
          "sku": {
            "type": "string",
            "example": "KDS2108",
            "description": "The SKU of the product being shipped in the order."
          },
          "order_item_ref": {
            "type": "string",
            "nullable": true,
            "description": "If required by your integration you may specify a reference to an external order item id."
          },
          "product": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Shipping_API_v1_StockableProductRef"
              },
              {
                "description": "Reference a `Product` by `id`."
              }
            ]
          },
          "qty_ordered": {
            "type": "integer",
            "example": 4,
            "minimum": 1,
            "maximum": 999999,
            "description": "Quantity of item ordered."
          },
          "qty_assigned": {
            "type": "number",
            "format": "float",
            "minimum": 0,
            "maximum": 999999.99999999,
            "example": 4,
            "readOnly": true,
            "description": "Quantity of item assigned to a warehouse."
          },
          "qty_allocated": {
            "type": "number",
            "format": "float",
            "minimum": 0,
            "maximum": 999999.99999999,
            "example": 0,
            "readOnly": true,
            "description": "Quantity of item allocated inventory."
          },
          "qty_backordered": {
            "type": "number",
            "format": "float",
            "minimum": 0,
            "maximum": 999999.99999999,
            "example": 0,
            "readOnly": true,
            "description": "Quantity of item back-ordered."
          },
          "qty_processing": {
            "type": "number",
            "format": "float",
            "minimum": 0,
            "maximum": 999999.99999999,
            "example": 0,
            "readOnly": true,
            "description": "Quantity of item ready to be picked."
          },
          "qty_picked": {
            "type": "number",
            "format": "float",
            "minimum": 0,
            "maximum": 999999.99999999,
            "example": 0,
            "readOnly": true,
            "description": "Quantity of item picked."
          },
          "qty_shipped": {
            "type": "number",
            "format": "float",
            "minimum": 0,
            "maximum": 999999.99999999,
            "example": 4,
            "readOnly": true,
            "description": "Quantity of item shipped."
          },
          "qty_cancel_requested": {
            "type": "number",
            "format": "float",
            "minimum": 0,
            "maximum": 999999.99999999,
            "example": 0,
            "readOnly": true,
            "description": "Quantity of item requested to be canceled."
          },
          "qty_canceled": {
            "type": "number",
            "format": "float",
            "minimum": 0,
            "maximum": 999999.99999999,
            "example": 0,
            "readOnly": true,
            "description": "Quantity of item canceled."
          },
          "row_weight": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Shipping_API_v1_Weight"
              },
              {
                "description": "Total weight of the item."
              }
            ]
          }
        }
      },
      "Shipping_API_v1_ShipmentRef": {
        "title": "ShipmentRef",
        "type": "object",
        "description": "A `Shipment` represents one or more pickable items which may constitute a whole or part of an `Order`. \nShipments are assigned directly to a `Warehouse` and may ultimately represent one or more packages once completed.",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "Shipment"
            ]
          },
          "id": {
            "type": "integer",
            "readOnly": true,
            "description": "The internal `id` property used as a path parameter in a resource lookup."
          }
        },
        "required": [
          "type",
          "id"
        ],
        "nullable": true,
        "additionalProperties": false
      },
      "Shipping_API_v1_RequesterRef": {
        "title": "RequesterRef",
        "type": "object",
        "description": "Reference a requester (who/what performed an action) by `type` and `id`.",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "Requester"
            ],
            "example": "Requester",
            "description": "The resource type (always \"Requester\")."
          },
          "id": {
            "type": "integer",
            "format": "int32",
            "example": 3,
            "description": "The internal requester ID (`requester_id`)."
          }
        },
        "required": [
          "type",
          "id"
        ],
        "additionalProperties": false
      },
      "Shipping_API_v1_OrderStatusHistory": {
        "title": "OrderStatusHistory",
        "type": "object",
        "description": "A status or comment added to an order.",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "OrderStatusHistory"
            ],
            "readOnly": true
          },
          "id": {
            "type": "integer",
            "format": "int32",
            "example": 3,
            "readOnly": true,
            "description": "The internal `id` property used as a path parameter in a resource lookup."
          },
          "status": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Shipping_API_v1_Status"
              }
            ],
            "nullable": true,
            "description": "The status of the order at the time the history event was added."
          },
          "comment": {
            "type": "string",
            "maxLength": 2048,
            "nullable": true,
            "example": "Changed shipping method to FedEx Ground",
            "description": "An optional description for the history event which can be added programatically."
          },
          "notify_merchant": {
            "type": "boolean",
            "nullable": true,
            "default": null,
            "description": "Set to `true` to notify the merchant, or `false` not to notify the merchant. Set to `null` or omit if a notification is not applicable."
          },
          "requester": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Shipping_API_v1_RequesterRef"
              }
            ],
            "nullable": true,
            "description": "The requester attributed to the order's status history update."
          },
          "script_id": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "description": "The ID of the script that added the comment.",
            "readOnly": true
          },
          "created_at": {
            "$ref": "#/components/schemas/Shipping_API_v1_created_at"
          }
        }
      },
      "Shipping_API_v1_OtherShippingOptions": {
        "title": "OrderOtherShippingOptions",
        "type": "object",
        "nullable": true,
        "additionalProperties": true,
        "properties": {
          "virtual_excluded_services": {
            "type": "array",
            "nullable": true,
            "items": {
              "type": "string"
            },
            "description": "An array of shipping methods or regular expressions to match against a shipping method.",
            "example": [
              "/^ups_/",
              "fedex_FEDEX_2_DAY"
            ]
          }
        }
      },
      "Shipping_API_v1_DutiesPayor": {
        "title": "DutiesPayor",
        "type": "object",
        "nullable": true,
        "additionalProperties": false,
        "properties": {
          "payor": {
            "type": "string",
            "enum": [
              "default",
              "shipper",
              "recipient",
              "third_party"
            ],
            "description": "- `default` Use carrier configuration. \n- `shipper` Shipper pays duties.\n- `recipient` Recipient pays duties.\n- `third_party` Use Third Party Billing for paying duties.",
            "nullable": true,
            "default": "default",
            "example": "third_party"
          },
          "tpb_group_id": {
            "type": "integer",
            "description": "The ID number of a Third Party Billing Account Group. If unset or null, and a default group is configured, the default group will be used. Set to 0 to disable third party billing.",
            "format": "int64",
            "example": 3,
            "minimum": 1,
            "nullable": true
          }
        }
      },
      "Shipping_API_v1_updated_at-optional": {
        "type": "string",
        "format": "date-time",
        "description": "The date and time the object was last updated in RFC 3339 section 5.6 notation.",
        "example": "2017-07-21T17:39:43Z",
        "nullable": true,
        "readOnly": true
      },
      "Shipping_API_v1_ThirdPartyBillingGroupRef": {
        "title": "ThirdPartyBillingGroupRef",
        "type": "object",
        "description": "Reference a `ThirdPartyBillingGroup` by `id`.",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "ThirdPartyBillingGroup"
            ]
          },
          "id": {
            "type": "integer",
            "format": "int32",
            "example": 1,
            "description": "The internal `id` property used as a path parameter in a resource lookup."
          }
        },
        "required": [
          "type",
          "id"
        ],
        "additionalProperties": false
      },
      "Shipping_API_v1_AddressCandidate": {
        "title": "OrderAddressCandidate",
        "type": "object",
        "description": "An address correction candidate suggested by the address validation service.\nWhen an order's shipping address has validation issues, the system may provide\none or more candidate addresses that could be used as corrections.",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "OrderAddressCandidate"
            ],
            "readOnly": true
          },
          "id": {
            "type": "integer",
            "format": "int32",
            "example": 1,
            "readOnly": true,
            "description": "The internal `id` property used as a path parameter in a resource lookup."
          },
          "street": {
            "type": "string",
            "nullable": true,
            "example": "15491 W Whiteside St",
            "description": "The suggested street address (may contain multiple lines separated by newlines)."
          },
          "city": {
            "type": "string",
            "example": "Springfield",
            "maxLength": 255,
            "description": "The suggested city or town name."
          },
          "region_code": {
            "type": "string",
            "example": "MO",
            "maxLength": 255,
            "description": "The suggested state, province, or region code."
          },
          "postal_code": {
            "type": "string",
            "example": "65807-1234",
            "maxLength": 255,
            "description": "The suggested postal code."
          },
          "country_code": {
            "type": "string",
            "example": "US",
            "minLength": 2,
            "maxLength": 2,
            "description": "An ISO 3166 alpha-2 country code."
          },
          "classification": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/Shipping_API_v1_classification"
              }
            ],
            "nullable": true,
            "description": "The address classification (residential or commercial) as determined by the validation service."
          }
        }
      },
      "Shipping_API_v1_Instruction": {
        "title": "OrderInstruction",
        "type": "object",
        "description": "A packing instruction attached to an order. Instructions can be notes, images, or PDF documents\nthat provide guidance to warehouse staff during fulfillment.",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "OrderInstruction"
            ],
            "readOnly": true
          },
          "id": {
            "type": "integer",
            "format": "int32",
            "example": 1,
            "readOnly": true,
            "description": "The internal `id` property used as a path parameter in a resource lookup."
          },
          "note": {
            "type": "string",
            "nullable": true,
            "example": "Handle with care - fragile items",
            "description": "A text note providing instructions for warehouse staff."
          },
          "file_name": {
            "type": "string",
            "nullable": true,
            "example": "packing-guide.pdf",
            "description": "The name of an attached file (image or PDF)."
          },
          "presentation": {
            "type": "string",
            "enum": [
              "once_per_order",
              "once_per_shipment",
              "once_per_package"
            ],
            "example": "once_per_shipment",
            "description": "When to display this instruction during fulfillment."
          },
          "print_target": {
            "type": "string",
            "enum": [
              "label",
              "small_label",
              "laser"
            ],
            "nullable": true,
            "example": "label",
            "description": "The print target for the instruction:\n- `label` - Standard label printer\n- `small_label` - Small label printer\n- `laser` - Laser printer"
          },
          "print_orientation": {
            "type": "string",
            "enum": [
              "portrait",
              "landscape"
            ],
            "nullable": true,
            "example": "portrait",
            "description": "The orientation for printing the instruction document."
          },
          "copies_printed": {
            "type": "integer",
            "format": "int32",
            "minimum": 0,
            "example": 0,
            "readOnly": true,
            "description": "The number of times this instruction has been printed."
          }
        }
      },
      "Shipping_API_v1_Order": {
        "title": "Order",
        "type": "object",
        "description": "An Order represents a request to ship goods to a customer.",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "Order"
            ],
            "readOnly": true
          },
          "id": {
            "type": "integer",
            "format": "int32",
            "example": 3,
            "readOnly": true,
            "description": "The internal `id` property used as a path parameter in a resource lookup."
          },
          "unique_id": {
            "type": "string",
            "minLength": 1,
            "maxLength": 50,
            "example": "1100000003",
            "description": "The unique id for the order. This will be auto-assigned if not specified by the merchant at order creation time."
          },
          "order_ref": {
            "type": "string",
            "nullable": true,
            "example": "O-382227",
            "description": "An optional merchant-supplied reference for the order. Not a unique identifier."
          },
          "state": {
            "type": "string",
            "enum": [
              "new",
              "processing",
              "complete",
              "canceled",
              "holded"
            ],
            "example": "new",
            "readOnly": true,
            "description": "This describes the high-level, overall progress of the order."
          },
          "status": {
            "$ref": "#/components/schemas/Shipping_API_v1_Status"
          },
          "brand": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Shipping_API_v1_Brand"
              },
              {
                "description": "The sub-level of a merchant which allows for separate customized configurations under the same merchant, such\n  as packing slip designs, plugin subscriptions, etc."
              }
            ]
          },
          "merchant": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Shipping_API_v1_Merchant"
              },
              {
                "description": "This describes the owner or vendor of a particular line of products. There can be more than one product or\n  brand for every merchant. And merchants can have their own shipping Rate Groups."
              }
            ]
          },
          "carrier_code": {
            "type": "string",
            "example": "fedex",
            "description": "The carrier code of the assigned shipping method.",
            "readOnly": true
          },
          "shipping_method": {
            "type": "string",
            "example": "fedex_FEDEX_2_DAY",
            "description": "The desired mode of transporting the shipment, which can either be a specific carrier and service, or a virtual method to select the optimal carrier and service for a specific criteria (e.g. Cheapest 2 Day, Cheapest All, etc.)."
          },
          "signature_required": {
            "$ref": "#/components/schemas/Shipping_API_v1_signature"
          },
          "is_saturday_delivery": {
            "type": "boolean",
            "default": false,
            "description": "This flag will indicate whether saturday delivery is required. May not be applicable to all shipping methods or delivery areas."
          },
          "is_overbox_required": {
            "type": "boolean",
            "default": false,
            "description": "This flag will will direct the packer to use a packaging container that has \"Satisfies Overbox\" enabled."
          },
          "priority": {
            "type": "integer",
            "minimum": 0,
            "maximum": 100,
            "default": 50,
            "description": "This order's priority. Setting the priority will boost or suppress this order's priority in relation to other orders for the same products. Lower numbers are higher in priority."
          },
          "requested_ship_date": {
            "type": "string",
            "format": "date",
            "nullable": true,
            "description": "Date when the order was requested to be shipped. If the order is Ready to Ship after the Service Level's Cutoff Time but before the Absolute Cutoff Time the Shipments may still receive the requested Target Ship Date and the Shipment's `is_cutoff_date_exception` flag will be `true`.",
            "example": "2021-02-21"
          },
          "is_declared_value_service": {
            "type": "boolean",
            "default": false,
            "description": "Flag to indicate that a declared value service is required. If `true` then `declared_value` should also be set.",
            "example": true
          },
          "declared_value": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Shipping_API_v1_Monetary"
              }
            ],
            "nullable": true,
            "description": "If specified, `is_declared_value_service` must also be `true`. This is the maximum value of the products used to calculate shipping insurance."
          },
          "shipping_address": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Shipping_API_v1_Address"
              },
              {
                "description": "The recipient's mailing address, phone number and email address. This also includes flags indicating the classification and validity of the address."
              }
            ]
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Shipping_API_v1_OrderItem"
            },
            "description": "A list of products with their stock movement statuses and quantities as they relate to an order."
          },
          "shipments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Shipping_API_v1_ShipmentRef"
            },
            "readOnly": true,
            "description": "A list of package groups that details their finalized shipping methods, warehouse origins, and packing solutions."
          },
          "custom_greeting": {
            "type": "string",
            "nullable": true,
            "maxLength": 65535,
            "description": "If specified will override the configured Packing Slip default greeting. Allowing the addition of a\nPacking Slip Custom Greeting.\\\n  `Optional Field`"
          },
          "status_history": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Shipping_API_v1_OrderStatusHistory"
            },
            "readOnly": true,
            "description": "An order's status history and comments.\\\n  `Optional Field`"
          },
          "other_shipping_options": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Shipping_API_v1_OtherShippingOptions"
              },
              {
                "description": "This field allows for JSON code to be processed about an order at the time of shipping, such as updating an address, order status, or shipping method.\\ `Optional Field`"
              }
            ]
          },
          "duties_payor": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Shipping_API_v1_DutiesPayor"
              },
              {
                "description": "Determines the party responsible for paying duties and taxes for international shipments.\\ `Optional Field`"
              }
            ]
          },
          "created_at": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Shipping_API_v1_created_at-optional"
              }
            ],
            "description": "The date and time the order was created in RFC 3339 section 5.6 notation.\\\n  `Optional Field`"
          },
          "updated_at": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Shipping_API_v1_updated_at-optional"
              }
            ],
            "description": "The date and time the order was last updated in RFC 3339 section 5.6 notation.\\\n  `Optional Field`"
          },
          "completed_at": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "description": "The date and time the order was completed in RFC 3339 section 5.6 notation.\\\n  `Optional Field`",
            "example": "2017-07-21T17:39:43Z",
            "readOnly": true
          },
          "custom_fields": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Shipping_API_v1_sales_custom_fields"
              }
            ],
            "description": "Custom fields associated with the order in script format. Each field contains\na code and value, with additional properties depending on the field type.\\\n  `Optional Field`"
          },
          "weight": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Shipping_API_v1_Weight"
              }
            ],
            "readOnly": true,
            "description": "The total weight of all items in the order.\\\n  `Optional Field`"
          },
          "total_item_count": {
            "type": "integer",
            "format": "int32",
            "minimum": 0,
            "example": 5,
            "readOnly": true,
            "description": "The total count of all item quantities in the order.\\\n  `Optional Field`"
          },
          "submitted_by": {
            "type": "string",
            "nullable": true,
            "example": "API Order Import",
            "readOnly": true,
            "description": "The name of the user or process that submitted the order.\\\n  `Optional Field`"
          },
          "submitted_by_type": {
            "type": "string",
            "enum": [
              "admin",
              "client",
              "api"
            ],
            "nullable": true,
            "example": "api",
            "readOnly": true,
            "description": "The type of entity that submitted the order.\\\n  `Optional Field`"
          },
          "backorder_policy": {
            "type": "string",
            "enum": [
              "default",
              "all_or_nothing",
              "as_available"
            ],
            "example": "default",
            "description": "The backorder policy for the order.\\\n  `Optional Field`"
          },
          "source": {
            "type": "string",
            "nullable": true,
            "example": "shopify",
            "description": "An identifier for the source system or integration that created the order.\\\n  `Optional Field`"
          },
          "customer_note": {
            "type": "string",
            "nullable": true,
            "maxLength": 65535,
            "example": "Please leave at front door",
            "description": "A note from the customer about the order.\\\n  `Optional Field`"
          },
          "batch_tag": {
            "type": "string",
            "nullable": true,
            "maxLength": 255,
            "example": "BATCH-2024-001",
            "description": "A tag used to group orders into batches for processing.\\\n  `Optional Field`"
          },
          "desired_delivery_date": {
            "type": "string",
            "format": "date",
            "nullable": true,
            "example": "2024-02-15",
            "description": "The date the customer desires delivery of the order.\\\n  `Optional Field`"
          },
          "can_fulfill": {
            "type": "boolean",
            "example": true,
            "readOnly": true,
            "description": "Indicates whether the order can currently be fulfilled based on inventory availability.\\\n  `Optional Field`"
          },
          "can_fulfill_at": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "example": "2024-02-10T14:30:00Z",
            "readOnly": true,
            "description": "The timestamp when can_fulfill was last evaluated.\\\n  `Optional Field`"
          },
          "is_address_modified": {
            "type": "boolean",
            "example": false,
            "readOnly": true,
            "description": "Indicates whether the shipping address has been modified from the original.\\\n  `Optional Field`"
          },
          "is_address_modified_auto": {
            "type": "boolean",
            "example": false,
            "readOnly": true,
            "description": "Indicates whether the shipping address was automatically modified by the system.\\\n  `Optional Field`"
          },
          "hold_until_time": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "example": "2024-02-12T08:00:00Z",
            "description": "If set, the order will be held until this time before being processed.\\\n  `Optional Field`"
          },
          "tpb_group": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Shipping_API_v1_ThirdPartyBillingGroupRef"
              }
            ],
            "nullable": true,
            "description": "Reference to the third-party billing group for consolidating billing.\\\n  `Optional Field`"
          },
          "retailer": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Shipping_API_v1_RetailerRef"
              }
            ],
            "nullable": true,
            "description": "Reference to the B2B retailer this order was placed for, if any.\\\n  `Optional Field`"
          },
          "retailer_ship_to_location": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Shipping_API_v1_ShipToLocationRef"
              }
            ],
            "nullable": true,
            "description": "Reference to the retailer ship-to location this order is destined for, if any.\\\n  `Optional Field`"
          },
          "customs_value": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Shipping_API_v1_Monetary"
              }
            ],
            "nullable": true,
            "description": "The declared customs value for international shipments.\\\n  `Optional Field`"
          },
          "reason_for_export": {
            "type": "string",
            "nullable": true,
            "example": "Sale",
            "description": "The reason for export for international shipments.\\\n  `Optional Field`"
          },
          "generate_sscc": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "pack",
                "item"
              ]
            },
            "nullable": true,
            "example": [
              "pack"
            ],
            "description": "SSCC generation modes. Values can be 'pack' (generate per package) or 'item' (generate per item).\\\n  `Optional Field`"
          },
          "shipped_at": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "example": "2024-02-10T16:45:00Z",
            "readOnly": true,
            "description": "The timestamp when the first shipment was shipped.\\\n  `Optional Field`"
          },
          "delivered_at": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "example": "2024-02-12T10:30:00Z",
            "readOnly": true,
            "description": "The timestamp when all shipments were delivered.\\\n  `Optional Field`"
          },
          "shipping_description": {
            "type": "string",
            "nullable": true,
            "example": "FedEx 2Day",
            "readOnly": true,
            "description": "A human-readable description of the shipping method.\\\n  `Optional Field`"
          },
          "carrier": {
            "type": "string",
            "nullable": true,
            "example": "FedEx",
            "readOnly": true,
            "description": "The name of the shipping carrier.\\\n  `Optional Field`"
          },
          "allocation_options": {
            "type": "object",
            "nullable": true,
            "description": "Options for controlling how inventory is allocated to this order.\\\n  `Optional Field`"
          },
          "automation_data": {
            "type": "object",
            "nullable": true,
            "description": "Data used by automation rules and workflows.\\\n  `Optional Field`"
          },
          "original_address": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Shipping_API_v1_Address"
              }
            ],
            "nullable": true,
            "description": "The original shipping address before any modifications were made.\\\n  `Optional Field`"
          },
          "address_candidates": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Shipping_API_v1_AddressCandidate"
            },
            "description": "A list of suggested address corrections from the address validation service.\\\n  `Optional Field`"
          },
          "instructions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Shipping_API_v1_Instruction"
            },
            "description": "A list of packing instructions attached to the order.\\\n  `Optional Field`"
          }
        }
      },
      "Shipping_API_v1_barcodes": {
        "anyOf": [
          {
            "type": "string",
            "nullable": true,
            "example": "956623520-4"
          },
          {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true,
            "example": [
              "956623520-4",
              "O-VS-Oregano-p3"
            ]
          }
        ]
      },
      "Shipping_API_v1_MerchantRef": {
        "title": "MerchantRef",
        "type": "object",
        "description": "Reference a `Merchant` by `id`.",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "Merchant"
            ]
          },
          "id": {
            "type": "integer",
            "format": "int32",
            "example": 4,
            "description": "The internal `id` property used as a path parameter in a resource lookup."
          }
        },
        "required": [
          "type",
          "id"
        ],
        "additionalProperties": false
      },
      "Shipping_API_v1_AbstractProduct": {
        "type": "object",
        "properties": {
          "sku": {
            "type": "string",
            "description": "The Stock Keeping Unit (SKU) is a unique identifier for the `Product`.",
            "example": "SKU-1AD"
          },
          "name": {
            "type": "string",
            "description": "This is displayed as a short, descriptive title for the `Product`.",
            "example": "Test Product"
          },
          "is_enabled": {
            "type": "boolean",
            "description": "Disabled products are effectively deleted.",
            "enum": [
              true,
              false
            ],
            "default": true
          },
          "merchant": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Shipping_API_v1_MerchantRef"
              },
              {
                "description": "The `Merchant` to which the product belongs."
              }
            ]
          },
          "created_at": {
            "$ref": "#/components/schemas/Shipping_API_v1_created_at-optional"
          },
          "updated_at": {
            "$ref": "#/components/schemas/Shipping_API_v1_updated_at-optional"
          }
        }
      },
      "Shipping_API_v1_PackagingContainer": {
        "title": "PackagingContainer",
        "description": "A reference to the `PackagingContainer` object linked with Warehouse Inventory Location.",
        "allOf": [
          {
            "type": "object",
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "PackagingContainer"
                ],
                "description": "This property describes the type of object in the response body."
              },
              "id": {
                "type": "integer",
                "description": "The internal, read-only, `id` property used as a path parameter in a resource lookup.",
                "readOnly": true
              },
              "container_options": {
                "type": "object",
                "properties": {
                  "barcodes": {
                    "allOf": [
                      {
                        "$ref": "#/components/schemas/Shipping_API_v1_barcodes"
                      },
                      {
                        "description": "A comma separated list of unique packaging feature barcodes.\\\n  `Optional Field`"
                      }
                    ]
                  },
                  "weight": {
                    "allOf": [
                      {
                        "$ref": "#/components/schemas/Shipping_API_v1_Weight"
                      },
                      {
                        "description": "The weight of the container when packed with the shipment items."
                      }
                    ]
                  },
                  "dimensions": {
                    "allOf": [
                      {
                        "$ref": "#/components/schemas/Shipping_API_v1_Dimensions"
                      },
                      {
                        "description": "The dimensions of the container in imperial or metric units."
                      }
                    ]
                  },
                  "volume": {
                    "allOf": [
                      {
                        "$ref": "#/components/schemas/Shipping_API_v1_Volume"
                      },
                      {
                        "description": "The total volume of the container in imperial or metric units.",
                        "readOnly": true
                      }
                    ]
                  },
                  "manage_stock": {
                    "type": "boolean",
                    "description": "This flag indicates whether or not to adjust the inventory quantity of the packaging feature with each use. If `true` then the inventory levels will decrease with each use. If `no` then the inventory will not adjust with each use.",
                    "enum": [
                      true,
                      false
                    ]
                  },
                  "associated_products": {
                    "type": "array",
                    "description": "A list of products with this packaging feature selected in its \"Other Special Features\" option in the product's \"Packaging\" tab.",
                    "items": {
                      "$ref": "#/components/schemas/Shipping_API_v1_ProductRef"
                    }
                  },
                  "allow_for_brands": {
                    "type": "array",
                    "description": "If specified, this packaging feature will only be applicable to the selected merchants/brands.",
                    "items": {
                      "anyOf": [
                        {
                          "$ref": "#/components/schemas/Shipping_API_v1_MerchantRef"
                        },
                        {
                          "$ref": "#/components/schemas/Shipping_API_v1_BrandRef"
                        }
                      ]
                    }
                  },
                  "disallow_for_brands": {
                    "type": "array",
                    "description": "If specified, this packaging feature will not be applicable to the selected merchants/brands.",
                    "items": {
                      "anyOf": [
                        {
                          "$ref": "#/components/schemas/Shipping_API_v1_MerchantRef"
                        },
                        {
                          "$ref": "#/components/schemas/Shipping_API_v1_BrandRef"
                        }
                      ]
                    }
                  },
                  "billing_amount": {
                    "allOf": [
                      {
                        "$ref": "#/components/schemas/Shipping_API_v1_Monetary"
                      },
                      {
                        "description": "The amount that will be billable for consumption of one unit of this packaging feature.\\\n  `Optional Field`"
                      }
                    ]
                  },
                  "allow_for_warehouses": {
                    "type": "array",
                    "description": "If specified, this packaging feature will only be applicable to the selected warehouses.",
                    "items": {
                      "$ref": "#/components/schemas/Shipping_API_v1_WarehouseRef"
                    }
                  },
                  "allow_for_shipping_methods": {
                    "type": "array",
                    "description": "If specified, this packaging feature will only be applicable to the selected carriers/shipping methods.",
                    "items": {
                      "type": "string"
                    }
                  },
                  "satisfies_overbox": {
                    "type": "boolean",
                    "description": "Will be a valid container for products which have `Requires Overbox: Yes`.",
                    "enum": [
                      true,
                      false
                    ]
                  },
                  "use_for_bin_packing": {
                    "type": "string",
                    "description": "Containers with \"Use for Bin Packing: No\" will not be used by packing solution providers.",
                    "enum": [
                      "yes",
                      "no",
                      "fallback"
                    ]
                  },
                  "weight_capacity": {
                    "allOf": [
                      {
                        "$ref": "#/components/schemas/Shipping_API_v1_Weight"
                      },
                      {
                        "description": "Maximum allowed weight of the container, including tare weight.\n`Optional Field`"
                      }
                    ]
                  },
                  "container_style": {
                    "type": "string",
                    "description": "Specify the container type. Currently, only \"Rigid Box\" is supported.",
                    "enum": [
                      "rigid_box"
                    ]
                  },
                  "packaging_handling_surcharge": {
                    "type": "boolean",
                    "description": "The Packaging Surcharge is applicable for this packaging feature (e.g. cylindrical, non-fiberboard material, protrusions, non-conveyable, etc.)",
                    "enum": [
                      true,
                      false
                    ]
                  }
                }
              }
            }
          },
          {
            "$ref": "#/components/schemas/Shipping_API_v1_AbstractProduct"
          }
        ]
      },
      "Shipping_API_v1_PackagingDataCollection": {
        "title": "PackagingDataCollection",
        "description": "A reference to the `PackagingDataCollection` object linked with Warehouse Inventory Location.",
        "allOf": [
          {
            "$ref": "#/components/schemas/Shipping_API_v1_AbstractProduct"
          },
          {
            "type": "object",
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "PackagingDataCollection"
                ],
                "description": "This property describes the type of object in the response body."
              },
              "id": {
                "type": "integer",
                "description": "The internal, read-only, `id` property used as a path parameter in a resource lookup.",
                "readOnly": true
              },
              "data_collection_options": {
                "type": "object",
                "properties": {
                  "associated_products": {
                    "type": "array",
                    "description": "A list of products with this packaging feature selected in its \"Other Special Features\" option in the product's \"Packaging\" tab.",
                    "items": {
                      "$ref": "#/components/schemas/Shipping_API_v1_ProductRef"
                    }
                  },
                  "allow_for_brands": {
                    "type": "array",
                    "description": "If specified, this packaging feature will only be applicable to the selected merchants/brands.",
                    "items": {
                      "anyOf": [
                        {
                          "$ref": "#/components/schemas/Shipping_API_v1_MerchantRef"
                        },
                        {
                          "$ref": "#/components/schemas/Shipping_API_v1_BrandRef"
                        }
                      ]
                    }
                  },
                  "disallow_for_brands": {
                    "type": "array",
                    "description": "If specified, this packaging feature will not be applicable to the selected merchants/brands.",
                    "items": {
                      "anyOf": [
                        {
                          "$ref": "#/components/schemas/Shipping_API_v1_MerchantRef"
                        },
                        {
                          "$ref": "#/components/schemas/Shipping_API_v1_BrandRef"
                        }
                      ]
                    }
                  },
                  "billing_amount": {
                    "allOf": [
                      {
                        "$ref": "#/components/schemas/Shipping_API_v1_Monetary"
                      },
                      {
                        "description": "The amount that will be billable for consumption of one unit of this packaging feature.\\\n  `Optional Field`"
                      }
                    ]
                  },
                  "allow_for_shipping_methods": {
                    "type": "array",
                    "description": "If specified, this packaging feature will only be applicable to the selected carriers/shipping methods.",
                    "items": {
                      "type": "string"
                    }
                  },
                  "apply_to_goods_type": {
                    "type": "string",
                    "enum": [
                      "any",
                      "NORMAL",
                      "ORM_D"
                    ],
                    "description": "This packaging feature will be applied to all shipments containing an item with this Goods Type. \\\n- `NORMAL` Not Regulated\n- `ORM_D`  ORM-D\n`Optional Field`"
                  },
                  "never_apply_to_goods_type": {
                    "type": "string",
                    "enum": [
                      "NORMAL",
                      "LIMITED_QUANTITIES_COMMODITIES",
                      "HAZMAT"
                    ],
                    "description": "This packaging feature will be applied to all shipments which do not contain an item with this Goods Type. \\\n- `NORMAL` Not Regulated\n- `LIMITED_QUANTITIES_COMMODITIES`  Limited Quantities: Consumer Commodity\n- `HAZMAT` Regulated\n`Optional Field`"
                  },
                  "apply_only_above_weight": {
                    "allOf": [
                      {
                        "$ref": "#/components/schemas/Shipping_API_v1_Weight"
                      },
                      {
                        "description": "If specified, this packaging product is not a requirement for packages under the given weight when \"Always/Never Apply to Goods Type\" is specified.\n`Optional Field`"
                      }
                    ]
                  },
                  "one_per": {
                    "type": "string",
                    "description": "The expected number of scans per shipment. The product \"Unit Quantity\" is used as a multiplier for \"One Scan Per: Each\".",
                    "enum": [
                      "order",
                      "package",
                      "item",
                      "each"
                    ]
                  },
                  "require_scan_timing": {
                    "type": "string",
                    "description": "Choose how the scan timer should begin recording time data on this product or packaging feature.",
                    "enum": [
                      "after_product_scan|on_full",
                      "on_start"
                    ]
                  },
                  "disable_confirm_button": {
                    "type": "boolean",
                    "description": "If \"No\", the user will be able to tap \"Confirm\" rather than scanning a barcode.",
                    "enum": [
                      true,
                      false
                    ]
                  },
                  "require_packaging_type": {
                    "type": "string",
                    "description": "If specified, this packaging feature will only be applicable when the container meets the chosen criteria based on the container's \"Satisfies Overbox\" attribute when \"Always/Never Apply to Goods Type\" is specified.",
                    "enum": [
                      "overbox",
                      "non_overbox"
                    ]
                  },
                  "apply_unless_container_meets_hazmat": {
                    "type": "boolean",
                    "description": "If \"Yes\", this packaging product will be applicable unless a package contains a DG item with \"Container Meets Hazmat Specs: Yes\" when \"Always/Never Apply to Goods Type\" is specified.",
                    "enum": [
                      true,
                      false
                    ]
                  },
                  "apply_to_multi_sku_package": {
                    "type": "boolean",
                    "description": "If \"Yes\", this packaging product will only be applied to packages containing more than one SKU when \"Always/Never Apply to Goods Type\" is specified.",
                    "enum": [
                      true,
                      false
                    ]
                  },
                  "collect_data_pattern": {
                    "type": "string",
                    "description": "Specify a Javascript-compatible regular expression which describes the format of the data to be collected. Examples: \".+\" for anything, or \"^[0-9]{15}$\" for a 15-digit number. See http://regexpal.com/"
                  },
                  "apply_to_region": {
                    "type": "string",
                    "description": "Unless specified, this packaging feature will apply to all regions when \"Always/Never Apply to Goods Type\" is specified."
                  },
                  "is_collected_data_unique": {
                    "type": "boolean",
                    "description": "Prevent the same data collection value from being collected more than once on the same shipment.",
                    "enum": [
                      true,
                      false
                    ]
                  }
                }
              }
            }
          }
        ]
      },
      "Shipping_API_v1_Length": {
        "title": "Length",
        "type": "object",
        "nullable": true,
        "properties": {
          "value": {
            "type": "number",
            "description": "This value describes the length of the object as a floating-point number up to 4 decimal places.",
            "format": "float",
            "example": 12
          },
          "unit": {
            "$ref": "#/components/schemas/Shipping_API_v1_LengthUnit"
          }
        }
      },
      "Shipping_API_v1_PackagingInfill": {
        "title": "PackagingInfill",
        "description": "A reference to the `PackagingInfill` object linked with Warehouse Inventory Location.",
        "allOf": [
          {
            "type": "object",
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "PackagingInfill"
                ],
                "description": "This property describes the type of object in the response body."
              },
              "id": {
                "type": "integer",
                "description": "The internal, read-only, `id` property used as a path parameter in a resource lookup.",
                "readOnly": true
              },
              "infill_options": {
                "type": "object",
                "properties": {
                  "barcodes": {
                    "allOf": [
                      {
                        "$ref": "#/components/schemas/Shipping_API_v1_barcodes"
                      },
                      {
                        "description": "A comma separated list of unique packaging feature barcodes.\\\n  `Optional Field`"
                      }
                    ]
                  },
                  "weight": {
                    "allOf": [
                      {
                        "$ref": "#/components/schemas/Shipping_API_v1_Weight"
                      },
                      {
                        "description": "The weight of the infill.\n`Optional Field`"
                      }
                    ]
                  },
                  "manage_stock": {
                    "type": "boolean",
                    "description": "This flag indicates whether or not to adjust the inventory quantity of the packaging feature with each use. If `true` then the inventory levels will decrease with each use. If `no` then the inventory will not adjust with each use.",
                    "enum": [
                      true,
                      false
                    ]
                  },
                  "associated_products": {
                    "type": "array",
                    "description": "A list of products with this packaging feature selected in its \"Other Special Features\" option in the product's \"Packaging\" tab.",
                    "items": {
                      "$ref": "#/components/schemas/Shipping_API_v1_ProductRef"
                    }
                  },
                  "allow_for_brands": {
                    "type": "array",
                    "description": "If specified, this packaging feature will only be applicable to the selected merchants/brands.",
                    "items": {
                      "anyOf": [
                        {
                          "$ref": "#/components/schemas/Shipping_API_v1_MerchantRef"
                        },
                        {
                          "$ref": "#/components/schemas/Shipping_API_v1_BrandRef"
                        }
                      ]
                    }
                  },
                  "disallow_for_brands": {
                    "type": "array",
                    "description": "If specified, this packaging feature will not be applicable to the selected merchants/brands.",
                    "items": {
                      "anyOf": [
                        {
                          "$ref": "#/components/schemas/Shipping_API_v1_MerchantRef"
                        },
                        {
                          "$ref": "#/components/schemas/Shipping_API_v1_BrandRef"
                        }
                      ]
                    }
                  },
                  "billing_amount": {
                    "allOf": [
                      {
                        "$ref": "#/components/schemas/Shipping_API_v1_Monetary"
                      },
                      {
                        "description": "The amount that will be billable for consumption of one unit of this packaging feature.\\\n  `Optional Field`"
                      }
                    ]
                  },
                  "disable_confirm_button": {
                    "type": "boolean",
                    "description": "If \"No\", the user will be able to tap \"Confirm\" rather than scanning a barcode.",
                    "enum": [
                      true,
                      false
                    ]
                  },
                  "apply_unless_container_meets_hazmat": {
                    "type": "boolean",
                    "description": "If \"Yes\", this packaging product will be applicable unless a package contains a DG item with \"Container Meets Hazmat Specs: Yes\" when \"Always/Never Apply to Goods Type\" is specified.",
                    "enum": [
                      true,
                      false
                    ]
                  },
                  "is_confirmation_required": {
                    "type": "boolean",
                    "description": "If \"Yes\", this packer will be prompted and required to confirm the use of infill.",
                    "enum": [
                      true,
                      false
                    ]
                  },
                  "infill_horizontal": {
                    "allOf": [
                      {
                        "$ref": "#/components/schemas/Shipping_API_v1_Length"
                      },
                      {
                        "description": "The amount of space to reserve on each horizontal side of the package for infill. \\\n`Optional Field`"
                      }
                    ]
                  },
                  "infill_vertical": {
                    "allOf": [
                      {
                        "$ref": "#/components/schemas/Shipping_API_v1_Length"
                      },
                      {
                        "description": "The amount of space to reserve on each vertical side of the package for infill.\n`Optional Field`"
                      }
                    ]
                  },
                  "infill_priority": {
                    "type": "integer",
                    "description": "If multiple infill types are prescribed for a mix of items, the infill with the lowest Infill Priority number will prevail."
                  }
                }
              }
            }
          },
          {
            "$ref": "#/components/schemas/Shipping_API_v1_AbstractProduct"
          }
        ]
      },
      "Shipping_API_v1_PackagingInstruction": {
        "title": "PackagingInstruction",
        "description": "A reference to the `PackagingInstruction` object linked with Warehouse Inventory Location.",
        "allOf": [
          {
            "type": "object",
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "PackagingInstruction"
                ],
                "description": "This property describes the type of object in the response body."
              },
              "id": {
                "type": "integer",
                "description": "The internal, read-only, `id` property used as a path parameter in a resource lookup.",
                "readOnly": true
              },
              "instruction_options": {
                "type": "object",
                "properties": {
                  "barcodes": {
                    "allOf": [
                      {
                        "$ref": "#/components/schemas/Shipping_API_v1_barcodes"
                      },
                      {
                        "description": "A comma separated list of unique packaging feature barcodes.\\\n  `Optional Field`"
                      }
                    ]
                  },
                  "associated_products": {
                    "type": "array",
                    "description": "A list of products with this packaging feature selected in its \"Other Special Features\" option in the product's \"Packaging\" tab.",
                    "items": {
                      "$ref": "#/components/schemas/Shipping_API_v1_ProductRef"
                    }
                  },
                  "allow_for_brands": {
                    "type": "array",
                    "description": "If specified, this packaging feature will only be applicable to the selected merchants/brands.",
                    "items": {
                      "anyOf": [
                        {
                          "$ref": "#/components/schemas/Shipping_API_v1_MerchantRef"
                        },
                        {
                          "$ref": "#/components/schemas/Shipping_API_v1_BrandRef"
                        }
                      ]
                    }
                  },
                  "disallow_for_brands": {
                    "type": "array",
                    "description": "If specified, this packaging feature will not be applicable to the selected merchants/brands.",
                    "items": {
                      "anyOf": [
                        {
                          "$ref": "#/components/schemas/Shipping_API_v1_MerchantRef"
                        },
                        {
                          "$ref": "#/components/schemas/Shipping_API_v1_BrandRef"
                        }
                      ]
                    }
                  },
                  "billing_amount": {
                    "allOf": [
                      {
                        "$ref": "#/components/schemas/Shipping_API_v1_Monetary"
                      },
                      {
                        "description": "The amount that will be billable for consumption of one unit of this packaging feature.\\\n  `Optional Field`"
                      }
                    ]
                  },
                  "allow_for_shipping_methods": {
                    "type": "array",
                    "description": "If specified, this packaging feature will only be applicable to the selected carriers/shipping methods.",
                    "items": {
                      "type": "string"
                    }
                  },
                  "apply_to_goods_type": {
                    "type": "string",
                    "enum": [
                      "any",
                      "NORMAL",
                      "ORM_D"
                    ],
                    "description": "This packaging feature will be applied to all shipments containing an item with this Goods Type.\n- `NORMAL` Not Regulated\n- `ORM_D`  ORM-D\n`Optional Field`"
                  },
                  "never_apply_to_goods_type": {
                    "type": "string",
                    "enum": [
                      "NORMAL",
                      "LIMITED_QUANTITIES_COMMODITIES",
                      "HAZMAT"
                    ],
                    "description": "This packaging feature will be applied to all shipments which do not contain an item with this Goods Type.\n- `NORMAL` Not Regulated\n- `LIMITED_QUANTITIES_COMMODITIES`  Limited Quantities: Consumer Commodity\n- `HAZMAT` Regulated\n`Optional Field`"
                  },
                  "apply_only_above_weight": {
                    "allOf": [
                      {
                        "$ref": "#/components/schemas/Shipping_API_v1_Weight"
                      },
                      {
                        "description": "If specified, this packaging product is not a requirement for packages under the given weight when \"Always/Never Apply to Goods Type\" is specified. \\\n`Optional Field`"
                      }
                    ]
                  },
                  "one_per": {
                    "type": "string",
                    "description": "The expected number of scans per shipment. The product \"Unit Quantity\" is used as a multiplier for \"One Scan Per: Each\".",
                    "enum": [
                      "order",
                      "package",
                      "item",
                      "each"
                    ]
                  },
                  "require_scan_timing": {
                    "type": "string",
                    "description": "Choose how the scan timer should begin recording time data on this product or packaging feature.",
                    "enum": [
                      "after_product_scan|on_full",
                      "on_start"
                    ]
                  },
                  "disable_confirm_button": {
                    "type": "boolean",
                    "description": "If \"No\", the user will be able to tap \"Confirm\" rather than scanning a barcode.",
                    "enum": [
                      true,
                      false
                    ]
                  },
                  "require_packaging_type": {
                    "type": "string",
                    "description": "If specified, this packaging feature will only be applicable when the container meets the chosen criteria based on the container's \"Satisfies Overbox\" attribute when \"Always/Never Apply to Goods Type\" is specified.",
                    "enum": [
                      "overbox",
                      "non_overbox"
                    ]
                  },
                  "apply_to_region": {
                    "type": "string",
                    "description": "Unless specified, this packaging feature will apply to all regions when \"Always/Never Apply to Goods Type\" is specified."
                  },
                  "apply_unless_container_meets_hazmat": {
                    "type": "boolean",
                    "description": "If \"Yes\", this packaging product will be applicable unless a package contains a DG item with \"Container Meets Hazmat Specs: Yes\" when \"Always/Never Apply to Goods Type\" is specified.",
                    "enum": [
                      true,
                      false
                    ]
                  },
                  "apply_to_multi_sku_package": {
                    "type": "boolean",
                    "description": "If \"Yes\", this packaging product will only be applied to packages containing more than one SKU when \"Always/Never Apply to Goods Type\" is specified.",
                    "enum": [
                      true,
                      false
                    ]
                  }
                }
              }
            }
          },
          {
            "$ref": "#/components/schemas/Shipping_API_v1_AbstractProduct"
          }
        ]
      },
      "Shipping_API_v1_PackagingSupplies": {
        "title": "PackagingSupplies",
        "description": "A reference to the `PackagingSupplies` object linked with Warehouse Inventory Location.",
        "allOf": [
          {
            "type": "object",
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "PackagingSupplies"
                ],
                "description": "This property describes the type of object in the response body."
              },
              "id": {
                "type": "integer",
                "description": "The internal, read-only, `id` property used as a path parameter in a resource lookup.",
                "readOnly": true
              },
              "supplies_options": {
                "type": "object",
                "properties": {
                  "barcodes": {
                    "allOf": [
                      {
                        "$ref": "#/components/schemas/Shipping_API_v1_barcodes"
                      },
                      {
                        "description": "A comma separated list of unique packaging feature barcodes.\\\n  `Optional Field`"
                      }
                    ]
                  },
                  "weight": {
                    "allOf": [
                      {
                        "$ref": "#/components/schemas/Shipping_API_v1_Weight"
                      },
                      {
                        "description": "The weight of the infill.\n`Optional Field`"
                      }
                    ]
                  },
                  "manage_stock": {
                    "type": "boolean",
                    "description": "This flag indicates whether or not to adjust the inventory quantity of the packaging feature with each use. If `true` then the inventory levels will decrease with each use. If `no` then the inventory will not adjust with each use.",
                    "enum": [
                      true,
                      false
                    ]
                  },
                  "associated_products": {
                    "type": "array",
                    "description": "A list of products with this packaging feature selected in its \"Other Special Features\" option in the product's \"Packaging\" tab.",
                    "items": {
                      "$ref": "#/components/schemas/Shipping_API_v1_ProductRef"
                    }
                  },
                  "allow_for_brands": {
                    "type": "array",
                    "description": "If specified, this packaging feature will only be applicable to the selected merchants/brands.",
                    "items": {
                      "anyOf": [
                        {
                          "$ref": "#/components/schemas/Shipping_API_v1_MerchantRef"
                        },
                        {
                          "$ref": "#/components/schemas/Shipping_API_v1_BrandRef"
                        }
                      ]
                    }
                  },
                  "disallow_for_brands": {
                    "type": "array",
                    "description": "If specified, this packaging feature will not be applicable to the selected merchants/brands.",
                    "items": {
                      "anyOf": [
                        {
                          "$ref": "#/components/schemas/Shipping_API_v1_MerchantRef"
                        },
                        {
                          "$ref": "#/components/schemas/Shipping_API_v1_BrandRef"
                        }
                      ]
                    }
                  },
                  "billing_amount": {
                    "allOf": [
                      {
                        "$ref": "#/components/schemas/Shipping_API_v1_Monetary"
                      },
                      {
                        "description": "The amount that will be billable for consumption of one unit of this packaging feature.\\\n  `Optional Field`"
                      }
                    ]
                  },
                  "allow_for_warehouses": {
                    "type": "array",
                    "description": "If specified, this packaging feature will only be applicable to the selected warehouses.",
                    "items": {
                      "$ref": "#/components/schemas/Shipping_API_v1_WarehouseRef"
                    }
                  },
                  "allow_for_shipping_methods": {
                    "type": "array",
                    "description": "If specified, this packaging feature will only be applicable to the selected carriers/shipping methods.",
                    "items": {
                      "type": "string"
                    }
                  },
                  "packaging_handling_surcharge": {
                    "type": "boolean",
                    "description": "The Packaging Surcharge is applicable for this packaging feature (e.g. cylindrical, non-fiberboard material, protrusions, non-conveyable, etc.)",
                    "enum": [
                      true,
                      false
                    ]
                  },
                  "apply_to_goods_type": {
                    "type": "string",
                    "enum": [
                      "any",
                      "NORMAL",
                      "ORM_D"
                    ],
                    "description": "This packaging feature will be applied to all shipments which do not contain an item with this Goods Type.\n- `NORMAL` Not Regulated\n- `ORM_D`  ORM-D\n`Optional Field`"
                  },
                  "never_apply_to_goods_type": {
                    "type": "string",
                    "enum": [
                      "NORMAL",
                      "LIMITED_QUANTITIES_COMMODITIES",
                      "HAZMAT"
                    ],
                    "description": "This packaging feature will be applied to all shipments which do not contain an item with this Goods Type.\n- `NORMAL` Not Regulated\n- `LIMITED_QUANTITIES_COMMODITIES`  Limited Quantities: Consumer Commodity\n- `HAZMAT` Regulated\n`Optional Field`"
                  },
                  "apply_only_above_weight": {
                    "allOf": [
                      {
                        "$ref": "#/components/schemas/Shipping_API_v1_Weight"
                      },
                      {
                        "description": "If specified, this packaging supply is not a requirement for packages under the given weight when \"Always/Never Apply to Goods Type\" is specified.\n`Optional Field`"
                      }
                    ]
                  },
                  "one_per": {
                    "type": "string",
                    "description": "The expected number of scans per shipment. The product \"Unit Quantity\" is used as a multiplier for \"One Scan Per: Each\".",
                    "enum": [
                      "order",
                      "package",
                      "item",
                      "each"
                    ]
                  },
                  "require_scan_timing": {
                    "type": "string",
                    "description": "Choose how the scan timer should begin recording time data on this product or packaging feature.",
                    "enum": [
                      "after_product_scan|on_full",
                      "on_start"
                    ]
                  },
                  "disable_confirm_button": {
                    "type": "boolean",
                    "description": "If \"No\", the user will be able to tap \"Confirm\" rather than scanning a barcode.",
                    "enum": [
                      true,
                      false
                    ]
                  },
                  "require_packaging_type": {
                    "type": "string",
                    "description": "If specified, this packaging feature will only be applicable when the container meets the chosen criteria based on the container's \"Satisfies Overbox\" attribute when \"Always/Never Apply to Goods Type\" is specified.",
                    "enum": [
                      "overbox",
                      "non_overbox"
                    ]
                  },
                  "apply_to_region": {
                    "type": "string",
                    "description": "Unless specified, this packaging feature will apply to all regions when \"Always/Never Apply to Goods Type\" is specified."
                  },
                  "apply_unless_container_meets_hazmat": {
                    "type": "boolean",
                    "description": "If \"Yes\", this packaging product will be applicable unless a package contains a DG item with \"Container Meets Hazmat Specs: Yes\" when \"Always/Never Apply to Goods Type\" is specified.",
                    "enum": [
                      true,
                      false
                    ]
                  },
                  "apply_to_multi_sku_package": {
                    "type": "boolean",
                    "description": "If \"Yes\", this packaging product will only be applied to packages containing more than one SKU when \"Always/Never Apply to Goods Type\" is specified.",
                    "enum": [
                      true,
                      false
                    ]
                  }
                }
              }
            }
          },
          {
            "$ref": "#/components/schemas/Shipping_API_v1_AbstractProduct"
          }
        ]
      },
      "Shipping_API_v1_LotTypeRef": {
        "title": "LotTypeRef",
        "description": "LotType",
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "LotType"
            ],
            "description": "This property describes the type of object in the response body."
          },
          "id": {
            "type": "integer",
            "format": "int64",
            "description": "The internal `id` property used as a path parameter in a resource lookup.",
            "example": 4
          }
        },
        "required": [
          "type",
          "id"
        ],
        "nullable": true,
        "additionalProperties": false
      },
      "Shipping_API_v1_Inventory": {
        "title": "Inventory",
        "type": "object",
        "description": "Product Inventory information",
        "properties": {
          "backorders": {
            "description": "This determines if `Product` that is no longer in stock may be backordered or whether or not to use ShipStream's scoped configurations.",
            "anyOf": [
              {
                "type": "boolean",
                "example": true
              },
              {
                "type": "string",
                "enum": [
                  "use_config"
                ]
              }
            ]
          },
          "dynamic_allocation": {
            "description": "This will allow the `Product` to source from inventory in other warehouses in real-time if enabled, and can be set to use ShipStream's scoped configurations.",
            "anyOf": [
              {
                "type": "boolean",
                "example": true
              },
              {
                "type": "string",
                "enum": [
                  "use_config"
                ]
              }
            ]
          },
          "virtual_inventory": {
            "type": "string",
            "description": "This is the method used to predict an esitmate of inventory available when kitting from the `Product`.",
            "enum": [
              "none",
              "optimistic",
              "realistic",
              "pessimistic"
            ],
            "example": "optimistic"
          }
        }
      },
      "Shipping_API_v1_country_extension": {
        "type": "array",
        "nullable": true,
        "items": {
          "type": "object",
          "properties": {
            "country_id": {
              "type": "string",
              "description": "This is the two-digit ISO (Alpha-2) country code."
            },
            "extension": {
              "type": "string",
              "description": "Country-specific extension to the 6-digit Harmonized System code. For imports into the United States this is the last 4 digits of the 10-digit HTS (Harmonized Tariff Schedule) code."
            }
          }
        },
        "example": [
          {
            "country_id": "TW",
            "extension": "002"
          },
          {
            "country_id": "US",
            "extension": "011"
          }
        ]
      },
      "Shipping_API_v1_Export": {
        "title": "Export",
        "type": "object",
        "description": "Product Export and Custom information",
        "properties": {
          "description": {
            "type": "string",
            "description": "This is used to describe in detail the `Product` for international shipping and customs regulations.",
            "nullable": true,
            "example": "Plastic children's toy with steel weights and ball bearings"
          },
          "customs_value": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Shipping_API_v1_Monetary"
              },
              {
                "description": "The value of the products the purpose of calculating duties and taxes in the destination country."
              }
            ]
          },
          "country_of_manufacture": {
            "type": "string",
            "nullable": true,
            "description": "2 letters Country ISO Code",
            "example": "TW"
          },
          "hs_base_code": {
            "type": "string",
            "description": "This is the Harmonized System Code (HS Code); a standardized numerical method of classifying traded products. These are 6 digit codes in the format \\#\\#\\#\\#.\\#\\# (e.g. 8471.30) which are associated with a standard HS Code Description, not including country-specific extensions.",
            "nullable": true,
            "example": "8518.30"
          },
          "hs_country_extension": {
            "$ref": "#/components/schemas/Shipping_API_v1_country_extension"
          }
        }
      },
      "Shipping_API_v1_RegulationRef": {
        "title": "Regulation",
        "type": "object",
        "description": "A reference to a `Regulation` by `id`.",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "Regulation"
            ],
            "description": "This property describes the type of object in the response body."
          },
          "id": {
            "type": "integer",
            "description": "The internal `id` property used as a path parameter in a resource lookup."
          }
        },
        "required": [
          "type",
          "id"
        ],
        "nullable": true,
        "additionalProperties": false
      },
      "Shipping_API_v1_container_type": {
        "type": "string",
        "nullable": true,
        "description": "The Overpack Container Type can be a combination of material and container type such as Aluminum Box, Steel Drum, or a combination of a material and container type from these two lists:\n  - `Material:` Aluminum, Fiberboard, Glass, Plywood, Plastic, Steel, Wood\n  - `Container:` Bag, Bottle, Box, Bucket, Cylinder, Drum, Jerrican, Pail",
        "example": "Plastic Box"
      },
      "Shipping_API_v1_RegulatedGoods": {
        "title": "RegulatedGoods",
        "type": "object",
        "description": "Product Regulation Information",
        "properties": {
          "regulation": {
            "$ref": "#/components/schemas/Shipping_API_v1_RegulationRef"
          },
          "technical_name": {
            "type": "string",
            "nullable": true,
            "description": "Must match against Regulation's Technical Name Pattern if specified.",
            "example": "Hydro Polymer Acetylene Coating"
          },
          "additional_information": {
            "type": "string",
            "nullable": true,
            "description": "Must match against Regulation's Additional Regulatory Information Pattern if specified.",
            "example": "Flamable Liquid"
          },
          "net_weight": {
            "$ref": "#/components/schemas/Shipping_API_v1_Weight"
          },
          "container_type": {
            "$ref": "#/components/schemas/Shipping_API_v1_container_type"
          },
          "container_meets_hazmat_specs": {
            "type": "boolean",
            "description": "This flag indicates that the `RegulatedGoods` container is sufficient for a regulated (HAZMAT) product.",
            "example": true
          },
          "regulation_units": {
            "type": "number",
            "description": "These units are arbitrary and should be relative to the Regulation's Pickup Weight Limit. E.g. it could be in pounds, kilowatt/hours, etc.",
            "format": "float",
            "example": 5
          }
        }
      },
      "Shipping_API_v1_boolean": {
        "type": "boolean",
        "enum": [
          true,
          false
        ],
        "example": true
      },
      "Shipping_API_v1_Packaging": {
        "title": "Packaging",
        "type": "object",
        "description": "Product Packaging information",
        "properties": {
          "require_packaging": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Shipping_API_v1_boolean"
              },
              {
                "description": "If Yes, packaging will require a Box with \"Satisfies Overbox: Yes\"."
              }
            ]
          },
          "require_weight_check": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Shipping_API_v1_boolean"
              },
              {
                "description": "If Yes, the associated product will require the use of a scale to verify that the package's weight falls within the expected amount. If this is set to No, this step will be skipped by the packer."
              }
            ]
          },
          "require_confirmation_per_item": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Shipping_API_v1_boolean"
              },
              {
                "description": "If Yes, Packaging Products with \"One Scan Per: Item\" will require a scan for each item packed rather than just one for the first item in a package."
              }
            ]
          },
          "unit_quantity": {
            "type": "integer",
            "example": 1,
            "nullable": true,
            "description": "Number of individually packaged items contained therein for purposes of special packaging features."
          },
          "bulk_quantity": {
            "type": "integer",
            "nullable": true,
            "example": 10,
            "description": "Prefer to split into packages when necessary using multiples of this amount."
          },
          "max_per_package": {
            "type": "integer",
            "nullable": true,
            "example": 15,
            "description": "The maximum quantity of this product to ever include in the same package. \nMultiply by \"Unit Quantity\" to achieve common units between other products with the same \"Ship Separate Tag\" value."
          },
          "is_ship_separately": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Shipping_API_v1_boolean"
              },
              {
                "description": "This item cannot ship in the same package as other items (unless they have the same \"Ship Separate Tag\")."
              }
            ]
          },
          "ship_separately_tag": {
            "type": "string",
            "nullable": true,
            "description": "Applies only if \"Ship Separate\" is \"Yes\". Assign the same tag to treat similar products as interchangeable \nwith respect to the \"Ship Separate\" and \"Max Per Package\" attribute.",
            "example": "PVC"
          },
          "can_tip": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Shipping_API_v1_boolean"
              },
              {
                "description": "If Yes, the item is allowed to be rotated vertically when packed."
              }
            ]
          },
          "can_contain_other_items": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Shipping_API_v1_boolean"
              },
              {
                "description": "If Yes then other smaller items are allowed to be placed within this larger item. This is useful when the item is hollow or is a bin/bucket."
              }
            ]
          },
          "is_handling_surcharge": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Shipping_API_v1_boolean"
              },
              {
                "description": "The Packaging Surcharge is applicable when shipped without an Overbox."
              }
            ]
          }
        }
      },
      "Shipping_API_v1_custom_fields": {
        "type": "array",
        "description": "Custom field values as an array of code/value pairs.",
        "items": {
          "type": "object",
          "properties": {
            "code": {
              "type": "string",
              "description": "The custom field code/identifier."
            },
            "value": {
              "description": "The field value (type depends on field configuration)."
            },
            "label": {
              "type": "string",
              "description": "For select fields, the display label of the selected option."
            },
            "options": {
              "type": "object",
              "description": "For multiselect fields, a map of option IDs to labels.",
              "additionalProperties": {
                "type": "string"
              }
            }
          },
          "required": [
            "code"
          ]
        },
        "example": [
          {
            "code": "color",
            "value": 13,
            "label": "Red and Black"
          },
          {
            "code": "cost_of_goods",
            "value": 41.32
          },
          {
            "code": "allow_mailer",
            "value": true
          }
        ]
      },
      "Shipping_API_v1_Product": {
        "title": "Product",
        "description": "A Product contains information about a sellable item.",
        "allOf": [
          {
            "type": "object",
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "Product"
                ],
                "description": "This property describes the type of object in the response body."
              },
              "id": {
                "type": "integer",
                "description": "The internal, read-only, `id` property used as a path parameter in a resource lookup.",
                "readOnly": true
              },
              "vendor_sku": {
                "type": "string",
                "description": "For informational use only. Displayed during delivery processing to help match products.\\\n  `Optional Field`",
                "nullable": true,
                "example": "Vendor-SKU-1AD2"
              },
              "manufacturer_part_number": {
                "type": "string",
                "description": "The manufacturer's part number for the item. May be required for customs on shipments to EU countries.\\\n  `Optional Field`",
                "nullable": true,
                "example": "MPN-1AD2"
              },
              "external_id": {
                "type": "string",
                "nullable": true,
                "example": "11-993-9048",
                "description": "May be used for external product sync."
              },
              "barcodes": {
                "anyOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "nullable": true,
                    "example": [
                      "956623520-4",
                      "O-VS-Oregano-p3"
                    ]
                  },
                  {
                    "type": "string",
                    "nullable": true,
                    "example": "956623520-4"
                  }
                ],
                "description": "A comma separated list of unique packaging feature barcodes."
              },
              "goods_type": {
                "type": "string",
                "nullable": true,
                "enum": [
                  "NORMAL",
                  "ORM_D",
                  "LIMITED_QUANTITIES_COMMODITIES",
                  "HAZMAT",
                  null
                ],
                "description": "This defines the regulations, if any, assigned to a `Product`.\n- `NORMAL` Not Regulated\n- `ORM_D`  ORM-D\n- `LIMITED_QUANTITIES_COMMODITIES`  Limited Quantities: Consumer Commodity\n- `HAZMAT` Regulated"
              },
              "is_available": {
                "type": "boolean",
                "enum": [
                  true,
                  false
                ],
                "default": true,
                "description": "This flag must be `true` to allow the `Product` to be ordered."
              },
              "is_visible": {
                "type": "boolean",
                "enum": [
                  true,
                  false
                ],
                "default": true,
                "description": "This flag must be `true` to show the `Product` in the inventory feed."
              },
              "lot_type": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Shipping_API_v1_LotTypeRef"
                  }
                ],
                "nullable": true,
                "description": "This `LotType` determines how a `Product` should be \"burned\" and whether lots with dissimilar data\ncan be \"mixed\".\\\n  `Optional Field`"
              },
              "weight": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Shipping_API_v1_Weight"
                  },
                  {
                    "description": "This object defines the weight of the `Product` in imperial or metric units.\\\n  `Optional Field`"
                  }
                ]
              },
              "dimensions": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Shipping_API_v1_Dimensions"
                  },
                  {
                    "description": "This object defines the length, width, and height of the `Product` in imperial or metric units.\\\n  `Optional Field`"
                  }
                ]
              },
              "volume": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Shipping_API_v1_Volume"
                  },
                  {
                    "description": "This object defines the cubic size of the `Product` in imperial or metric units.\\\n  `Optional Field`"
                  }
                ]
              },
              "inventory": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Shipping_API_v1_Inventory"
                  },
                  {
                    "description": "This object describes how the `Product` Stock is defined, such as real config values, or Virtual Inventory, and how to handle Backorders.\\\n  `Optional Field`"
                  }
                ]
              },
              "export": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Shipping_API_v1_Export"
                  },
                  {
                    "description": "This object contains fields for describing and codifying an internationally exportable `Product`.\\\n  `Optional Field`"
                  }
                ]
              },
              "regulated_goods": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Shipping_API_v1_RegulatedGoods"
                  },
                  {
                    "description": "This object only applies a `Product` using the \"Regulated\" Goods Type, and describes the `Regulation` and container specifications for the `Product`.\\\n  `Optional Field`"
                  }
                ]
              },
              "packaging": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Shipping_API_v1_Packaging"
                  },
                  {
                    "description": "This object defines how the shipping container/box for the `Product` is to be processed and whether there are any special instructions during packing.\\\n  `Optional Field`"
                  }
                ]
              },
              "custom_fields": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Shipping_API_v1_custom_fields"
                  },
                  {
                    "description": "This will set any Product Attributes, pre-defined by the user, for the `Product`.\\\n  `Optional Field`"
                  }
                ]
              }
            }
          },
          {
            "$ref": "#/components/schemas/Shipping_API_v1_AbstractProduct"
          }
        ]
      },
      "Shipping_API_v1_CompositeStockableProduct": {
        "anyOf": [
          {
            "$ref": "#/components/schemas/Shipping_API_v1_Product"
          },
          {
            "$ref": "#/components/schemas/Shipping_API_v1_PackagingContainer"
          },
          {
            "$ref": "#/components/schemas/Shipping_API_v1_PackagingSupplies"
          },
          {
            "$ref": "#/components/schemas/Shipping_API_v1_PackagingInfill"
          }
        ],
        "discriminator": {
          "propertyName": "type"
        }
      },
      "Shipping_API_v1_OrderItemRef": {
        "title": "OrderItem",
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "OrderItem"
            ]
          },
          "id": {
            "type": "integer",
            "format": "int32",
            "description": "The internal `id` property used as a path parameter in a resource lookup."
          }
        },
        "required": [
          "type",
          "id"
        ],
        "additionalProperties": false
      },
      "Shipping_API_v1_LocationRef": {
        "title": "LocationRef",
        "type": "object",
        "description": "A reference to a `Location` by `id`.",
        "properties": {
          "type": {
            "type": "string",
            "description": "This property describes the type of object in the response body.",
            "enum": [
              "Location"
            ]
          },
          "id": {
            "type": "integer",
            "format": "int32",
            "example": 42,
            "description": "The internal `id` property used as a path parameter in a resource lookup."
          }
        },
        "required": [
          "type",
          "id"
        ],
        "nullable": true,
        "additionalProperties": false
      },
      "Shipping_API_v1_ShipmentReservation": {
        "type": "object",
        "title": "ShipmentReservation",
        "properties": {
          "location": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Shipping_API_v1_LocationRef"
              },
              {
                "description": "The location from where reservation will be picked."
              }
            ]
          },
          "quantity": {
            "type": "number",
            "description": "The amount of the product to pick from the location."
          }
        }
      },
      "Shipping_API_v1_ShipmentItem": {
        "title": "ShipmentItem",
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "ShipmentItem"
            ],
            "readOnly": true
          },
          "id": {
            "type": "integer",
            "readOnly": true,
            "description": "The internal `id` property used as a path parameter in a resource lookup."
          },
          "sku": {
            "type": "string",
            "example": "KDS2108",
            "description": "The product SKU within the shipment."
          },
          "product": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Shipping_API_v1_StockableProductRef"
              }
            ]
          },
          "quantity": {
            "type": "integer",
            "example": 4,
            "description": "The product quantity in the shipment."
          },
          "qty_shipped": {
            "type": "integer",
            "readOnly": true,
            "example": 4,
            "description": "The quantity of a product's inventory in a shipment that has been shipped."
          },
          "qty_picked": {
            "type": "integer",
            "readOnly": true,
            "example": 0,
            "description": "The quantity of a product's inventory in a shipment that was picked from a location."
          },
          "qty_canceled": {
            "type": "integer",
            "readOnly": true,
            "example": 0,
            "description": "The quantity of a product's inventory in a shipment that was canceled."
          },
          "qty_cancel_requested": {
            "type": "integer",
            "readOnly": true,
            "example": 0,
            "description": "The quantity of a product's inventory in a shipment that is in the process of being canceled."
          },
          "order_item": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Shipping_API_v1_OrderItemRef"
              }
            ]
          },
          "reservations": {
            "type": "array",
            "description": "The locations at which inventory is reserved for this shipment item.",
            "items": {
              "$ref": "#/components/schemas/Shipping_API_v1_ShipmentReservation"
            }
          }
        }
      },
      "Shipping_API_v1_Item-2": {
        "title": "PackageItem",
        "type": "object",
        "properties": {
          "sku": {
            "type": "string",
            "description": "The SKU of the item."
          },
          "name": {
            "type": "string",
            "description": "The name of the item."
          },
          "quantity": {
            "type": "number",
            "description": "The number of units of this item contained in the package."
          },
          "weight": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Shipping_API_v1_Weight"
              },
              {
                "description": "The combined weight of all units of this item shipped in this package."
              }
            ]
          },
          "hazmat_unit_weight": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Shipping_API_v1_Weight"
              },
              {
                "description": "The net hazmat weight of a single units of this item. If a Net Hazmat Weight was not\ndefined for the product at the time of shipping, this will be the product's weight for a single unit (gross weight)."
              }
            ]
          },
          "customs_value": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Shipping_API_v1_Monetary"
              },
              {
                "description": "The combined customs value of all units of this item shipped in this package."
              }
            ]
          },
          "order_item_id": {
            "type": "number",
            "description": "A reference to the `OrderItem` to which this package item relates.",
            "format": "int32"
          },
          "order_item_sku": {
            "type": "string",
            "description": "The SKU of the `OrderItem` to which this package item relates."
          },
          "order_item_quantity": {
            "type": "number",
            "description": "The number of units of the related `OrderItem` which this package item represents.\n\n*Beware*, this number is susceptible to complex rounding issues. For example, if an order item which consists of three\npackage items is shipped, 0.3333 + 0.3333 + 0.3333 will add up to 0.9999 rather than 1.0.",
            "format": "float"
          }
        }
      },
      "Shipping_API_v1_ThirdPartyBillingGroup": {
        "title": "ThirdPartyBillingGroup",
        "type": "object",
        "description": "A `ThirdPartyBillingGroup` represents a group of third-party billing accounts\nthat can be used for shipping and/or duties and taxes payment.",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "ThirdPartyBillingGroup"
            ],
            "readOnly": true
          },
          "id": {
            "type": "integer",
            "format": "int32",
            "description": "The internal `id` property used as a path parameter in a resource lookup.",
            "readOnly": true,
            "example": 1
          },
          "label": {
            "type": "string",
            "description": "A human-readable label for the third-party billing group.",
            "example": "ACME Corp Billing"
          },
          "status": {
            "type": "string",
            "enum": [
              "pending_approval",
              "active",
              "inactive"
            ],
            "description": "The status of the third-party billing group.",
            "example": "active"
          }
        }
      },
      "Shipping_API_v1_Retailer": {
        "title": "Retailer",
        "type": "object",
        "description": "A `Retailer` represents a B2B retail partner shared by all merchants, including fulfillment defaults and retailer-specific custom fields.",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "Retailer"
            ],
            "readOnly": true,
            "description": "This is a read-only property that describes the type of object in the response body."
          },
          "id": {
            "type": "integer",
            "format": "int32",
            "minimum": 1,
            "example": 123,
            "readOnly": true,
            "description": "The internal `id` property used as a path parameter in a resource lookup."
          },
          "code": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64,
            "example": "walmart",
            "description": "Globally unique retailer code."
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "example": "Walmart",
            "description": "Retailer display name."
          },
          "status": {
            "type": "string",
            "enum": [
              "active",
              "archived"
            ],
            "default": "active",
            "example": "active",
            "description": "Retailer lifecycle status. Archived retailers are hidden from lists by default and cannot be assigned to new orders."
          },
          "fulfillment_model": {
            "type": "string",
            "enum": [
              "wholesale",
              "drop_ship",
              "mixed"
            ],
            "default": "wholesale",
            "example": "wholesale",
            "description": "Default fulfillment model used for this retailer."
          },
          "parent_retailer": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Shipping_API_v1_RetailerRef"
              }
            ],
            "nullable": true,
            "description": "Optional parent retailer reference. Any non-archived retailer may serve as the parent.\\\n  `Optional Field`"
          },
          "legal_name": {
            "type": "string",
            "nullable": true,
            "maxLength": 255,
            "example": "Walmart Inc.",
            "description": "Legal retailer name.\\\n  `Optional Field`"
          },
          "dba": {
            "type": "string",
            "nullable": true,
            "maxLength": 255,
            "example": "Walmart Marketplace",
            "description": "Doing-business-as name.\\\n  `Optional Field`"
          },
          "default_duties_payor": {
            "type": "string",
            "nullable": true,
            "enum": [
              "shipper",
              "recipient",
              "third_party"
            ],
            "example": "recipient",
            "description": "Default duties payor for order-integration defaults.\\\n  `Optional Field`"
          },
          "default_shipping_method": {
            "type": "string",
            "nullable": true,
            "maxLength": 255,
            "example": "fedex_FEDEX_GROUND",
            "description": "Default shipping method for order-integration defaults.\\\n  `Optional Field`"
          },
          "allowed_shipping_methods": {
            "type": "array",
            "nullable": true,
            "items": {
              "type": "string"
            },
            "example": [
              "fedex_FEDEX_GROUND",
              "ups_GND"
            ],
            "description": "Shipping methods allowed when this retailer is selected.\\\n  `Optional Field`"
          },
          "routing_guide_notes": {
            "type": "string",
            "nullable": true,
            "maxLength": 65535,
            "description": "Free-form routing-guide notes.\\\n  `Optional Field`"
          },
          "custom_fields": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Shipping_API_v1_sales_custom_fields"
              }
            ],
            "nullable": true,
            "description": "Custom fields associated with the retailer in script format. Each field contains\na code and value, with additional properties depending on the field type.\\\n  `Optional Field`"
          },
          "created_at": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Shipping_API_v1_created_at-optional"
              }
            ],
            "description": "The date and time the retailer was created in RFC 3339 section 5.6 notation.\\\n  `Optional Field`"
          },
          "updated_at": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Shipping_API_v1_updated_at-optional"
              }
            ],
            "description": "The date and time the retailer was last updated in RFC 3339 section 5.6 notation.\\\n  `Optional Field`"
          }
        },
        "required": [
          "type",
          "id"
        ],
        "additionalProperties": false
      },
      "Shipping_API_v1_ShipToLocation": {
        "title": "RetailerShipToLocation",
        "type": "object",
        "description": "A `RetailerShipToLocation` represents an EDI N1*ST destination\n(distribution center, store, drop-ship, or other) under a Retailer.",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "RetailerShipToLocation"
            ],
            "readOnly": true,
            "description": "This is a read-only property that describes the type of object in the response body."
          },
          "id": {
            "type": "integer",
            "format": "int32",
            "minimum": 1,
            "example": 7,
            "readOnly": true,
            "description": "The internal `id` property used as a path parameter in a resource lookup."
          },
          "code": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64,
            "example": "DC-001",
            "description": "Unique location code within the parent Retailer + merchant."
          },
          "qualifier": {
            "type": "string",
            "enum": [
              "duns",
              "duns_plus_4",
              "gln",
              "buyer_location",
              "seller_location",
              "third_party_location",
              "plant_code",
              "dodaac",
              "cage",
              "dea",
              "hin",
              "san",
              "approver_id",
              "clli",
              "census_schedule_d",
              "census_schedule_k"
            ],
            "example": "gln",
            "description": "The canonical scheme that identifies the location code (EDI qualifiers are normalized to this set)."
          },
          "label": {
            "type": "string",
            "nullable": true,
            "maxLength": 255,
            "example": "Bentonville DC",
            "description": "Optional display label."
          },
          "location_type": {
            "type": "string",
            "enum": [
              "dc",
              "store",
              "drop_ship",
              "other"
            ],
            "default": "dc",
            "example": "dc",
            "description": "Location type."
          },
          "company": {
            "type": "string",
            "nullable": true,
            "maxLength": 255,
            "example": "Walmart DC",
            "description": "Optional company name.\\\n  `Optional Field`"
          },
          "street": {
            "type": "string",
            "nullable": true,
            "description": "Optional street address; may contain newlines.\\\n  `Optional Field`"
          },
          "city": {
            "type": "string",
            "nullable": true,
            "maxLength": 255,
            "example": "Bentonville",
            "description": "Optional city.\\\n  `Optional Field`"
          },
          "region_id": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "example": 6,
            "description": "Optional Magento `directory_country_region` id. Reserved for future integration.\\\n  `Optional Field`"
          },
          "region": {
            "type": "string",
            "nullable": true,
            "maxLength": 255,
            "example": "AR",
            "description": "Optional free-form region (state/province).\\\n  `Optional Field`"
          },
          "postcode": {
            "type": "string",
            "nullable": true,
            "maxLength": 32,
            "example": "72712",
            "description": "Optional postal code.\\\n  `Optional Field`"
          },
          "country_id": {
            "type": "string",
            "nullable": true,
            "maxLength": 2,
            "example": "US",
            "description": "Optional two-letter ISO country code. Normalized to uppercase by the server.\\\n  `Optional Field`"
          },
          "telephone": {
            "type": "string",
            "nullable": true,
            "maxLength": 32,
            "example": "+1-479-273-4000",
            "description": "Optional telephone number.\\\n  `Optional Field`"
          },
          "email": {
            "type": "string",
            "nullable": true,
            "format": "email",
            "maxLength": 255,
            "example": "dc6045@example.com",
            "description": "Optional email address.\\\n  `Optional Field`"
          },
          "is_default": {
            "type": "boolean",
            "default": false,
            "example": true,
            "description": "When true on save, sibling default locations under the same Retailer are atomically unset."
          },
          "status": {
            "type": "string",
            "enum": [
              "active",
              "inactive"
            ],
            "default": "active",
            "example": "active",
            "description": "Location lifecycle status."
          },
          "retailer": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Shipping_API_v1_RetailerRef"
              }
            ],
            "description": "Parent Retailer reference. Set from the path; cannot be changed."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "readOnly": true,
            "example": "2026-05-26T12:34:56Z",
            "description": "Creation timestamp.\\\n  `Optional Field`"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "readOnly": true,
            "example": "2026-05-26T12:34:56Z",
            "description": "Last-update timestamp.\\\n  `Optional Field`"
          }
        },
        "required": [
          "code",
          "qualifier"
        ],
        "additionalProperties": false
      },
      "Shipping_API_v1_Warehouse": {
        "title": "Warehouse",
        "type": "object",
        "description": "A `Warehouse` represents a physical location from which you can store inventory and perform operations independently of other warehouses.",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "Warehouse"
            ],
            "readOnly": true,
            "description": "This is a read-only property that describes the type of object in the response body."
          },
          "id": {
            "type": "integer",
            "format": "int32",
            "example": 3,
            "readOnly": true,
            "description": "The internal `id` property used as a path parameter in a resource lookup."
          },
          "name": {
            "type": "string",
            "example": "East Coast 1",
            "maxLength": 255,
            "description": "The display name for the `Warehouse`."
          },
          "abbreviation": {
            "type": "string",
            "maxLength": 10,
            "nullable": true,
            "example": "EC1",
            "description": "A short abbreviation for the `Warehouse`, up to 10 characters. Recommended to be fewer than 6 characters.\\\n  `Optional Field`"
          },
          "is_active": {
            "type": "boolean",
            "example": true,
            "description": "This flag determines if the `Warehouse` is active and viable for fulfillment."
          }
        },
        "required": [
          "type",
          "id"
        ],
        "additionalProperties": false
      },
      "Shipping_API_v1_shipments": {
        "type": "object",
        "description": "Lists of referenced objects included by specifying optional fields.\nSee the [selecting fields](/global-api/selecting-fields) page for more information.",
        "properties": {
          "Brand": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Shipping_API_v1_Brand"
            }
          },
          "Merchant": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Shipping_API_v1_Merchant"
            }
          },
          "Order": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Shipping_API_v1_Order"
            }
          },
          "OrderAddress": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Shipping_API_v1_Address"
            }
          },
          "OrderItem": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Shipping_API_v1_OrderItem"
            }
          },
          "OrderStatusHistory": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Shipping_API_v1_OrderStatusHistory"
            }
          },
          "OrderAddressCandidate": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Shipping_API_v1_AddressCandidate"
            }
          },
          "OrderInstruction": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Shipping_API_v1_Instruction"
            }
          },
          "PackagingContainer": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Shipping_API_v1_PackagingContainer"
            }
          },
          "PackagingDataCollection": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Shipping_API_v1_PackagingDataCollection"
            }
          },
          "PackagingInfill": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Shipping_API_v1_PackagingInfill"
            }
          },
          "PackagingInstruction": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Shipping_API_v1_PackagingInstruction"
            }
          },
          "PackagingSupplies": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Shipping_API_v1_PackagingSupplies"
            }
          },
          "Product": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Shipping_API_v1_CompositeStockableProduct"
            }
          },
          "Gallery": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Shipping_API_v1_Gallery"
            }
          },
          "GalleryItem": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Shipping_API_v1_Item"
            }
          },
          "Shipment": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Shipping_API_v1_Shipment"
            }
          },
          "ShipmentItem": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Shipping_API_v1_ShipmentItem"
            }
          },
          "ShipmentPackage": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Shipping_API_v1_ShipmentPackage"
            }
          },
          "ShipmentPackageItem": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Shipping_API_v1_Item-2"
            }
          },
          "ShipmentPackingSolution": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Shipping_API_v1_PackingSolution"
            }
          },
          "ThirdPartyBillingGroup": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Shipping_API_v1_ThirdPartyBillingGroup"
            }
          },
          "Retailer": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Shipping_API_v1_Retailer"
            }
          },
          "RetailerShipToLocation": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Shipping_API_v1_ShipToLocation"
            }
          },
          "Warehouse": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Shipping_API_v1_Warehouse"
            }
          }
        }
      },
      "Shipping_API_v1_has_more": {
        "type": "boolean",
        "description": "True if the collection has more items on the next page.\nUse the \"next\" link to retrieve the next page of results."
      },
      "Shipping_API_v1_next": {
        "type": "string",
        "nullable": true,
        "description": "The resource path for the next page of results if any are expected."
      },
      "Shipping_API_v1_previous": {
        "type": "string",
        "nullable": true,
        "description": "The resource path for the previous page of results if any are expected."
      },
      "Shipping_API_v1_meta": {
        "type": "object",
        "properties": {
          "processing_time": {
            "type": "number",
            "description": "Total time in which request is processed and response is sent back.",
            "example": 0.2525252525
          },
          "cursor_start": {
            "type": "integer",
            "description": "A cursor for use in pagination which defines the starting `id` of the next page of results.\nSee [paging parameters](/global-api/paging-parameters) for more information on paging.",
            "nullable": true
          },
          "cursor_end": {
            "type": "integer",
            "description": "A cursor for use in pagination which defines the last `id` of the next page of results, non-inclusive.\nSee [paging parameters](/global-api/paging-parameters) for more information on paging.",
            "nullable": true
          },
          "count": {
            "type": "integer",
            "description": "The total number of items matching the query before applying paging parameters.\nThis field is only present if the query parameter `count=1` is present in the request."
          }
        },
        "description": "Additional metadata pertaining to the response."
      },
      "Shipping_API_v1_PickupLocation": {
        "type": "object",
        "title": "PickupLocation",
        "additionalProperties": false,
        "properties": {
          "location_label": {
            "type": "string",
            "description": "The label of the location to pick from."
          },
          "quantity": {
            "type": "number",
            "description": "The amount of the product to pick from the location."
          }
        },
        "required": [
          "location_label",
          "quantity"
        ]
      },
      "Shipping_API_v1_location-fields-enum": {
        "title": "Location",
        "description": "Specify additional fields of the `Location` object to be included in the response.",
        "type": "array",
        "items": {
          "type": "string",
          "enum": [
            "basic",
            "all",
            "label",
            "priority",
            "qty_on_hand",
            "qty_putaway",
            "qty_unreserved",
            "qty_reserved",
            "qty_locked",
            "is_temp",
            "is_pickable",
            "is_type_auto",
            "created_at",
            "updated_at",
            "last_cyclecount_at",
            "tags",
            "lot",
            "product",
            "rack",
            "slot_type"
          ]
        }
      },
      "Shipping_API_v1_lot-fields-enum": {
        "title": "Lot",
        "description": "Specify additional fields of the `Lot` object to be included in the response.",
        "type": "array",
        "items": {
          "type": "string",
          "enum": [
            "basic",
            "all",
            "id",
            "lot_number",
            "origination_date",
            "expiration_date",
            "is_expired",
            "is_active",
            "lot_number_input",
            "expiration_input",
            "sort_value",
            "days_until_expiration",
            "sort_direction",
            "group_value",
            "created_at",
            "updated_at",
            "created_by",
            "lot_type",
            "product"
          ]
        }
      },
      "Shipping_API_v1_slot_type-fields-enum": {
        "title": "SlotType",
        "description": "Specify additional fields of the `SlotType` object to be included in the response.",
        "type": "array",
        "items": {
          "type": "string",
          "enum": [
            "basic",
            "all",
            "name",
            "is_pickable",
            "sort_order",
            "patterns",
            "is_fixed_capacity",
            "slot_dimensions",
            "weight_capacity",
            "created_at",
            "updated_at"
          ]
        }
      },
      "Shipping_API_v1_rack-fields-enum": {
        "title": "Rack",
        "description": "Specify additional fields of the `Rack` object to be included in the response.",
        "type": "array",
        "items": {
          "type": "string",
          "enum": [
            "all",
            "id",
            "name",
            "rack_type",
            "location_pattern",
            "warehouse"
          ]
        }
      },
      "Shipping_API_v1_Reservation": {
        "title": "Reservation",
        "type": "object",
        "description": "Represents a reservation of inventory at a specific location for a shipment item.\nReservations indicate where warehouse workers should pick the specified quantity.",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "Reservation"
            ]
          },
          "id": {
            "type": "integer",
            "format": "int64",
            "description": "The reservation ID",
            "example": 12345
          },
          "quantity": {
            "type": "number",
            "format": "float",
            "description": "The quantity to pick from this location",
            "example": 2.5
          },
          "qty_picked": {
            "type": "number",
            "format": "float",
            "description": "The quantity already picked",
            "example": 0
          },
          "is_locked": {
            "type": "boolean",
            "description": "Whether this reservation is locked for picking",
            "example": true
          },
          "location": {
            "allOf": [
              {
                "description": "The warehouse location where the item should be picked"
              },
              {
                "$ref": "#/components/schemas/Shipping_API_v1_LocationRef"
              }
            ]
          },
          "item": {
            "allOf": [
              {
                "description": "The shipment item this reservation applies to"
              },
              {
                "$ref": "#/components/schemas/Shipping_API_v1_ShipmentItemRef"
              }
            ]
          }
        },
        "required": [
          "type",
          "id",
          "quantity",
          "qty_picked",
          "is_locked",
          "location",
          "item"
        ],
        "additionalProperties": false
      },
      "Shipping_API_v1_DimweightDivisorUnit": {
        "type": "string",
        "enum": [
          "in^3/lb",
          "in^3/oz",
          "cm^3/kg",
          "mm^3/kg",
          "cm^3/g",
          "mm^3/g"
        ],
        "description": "The unit of measurement for the dim-weight divisor."
      },
      "Shipping_API_v1_DimweightDivisor": {
        "title": "DimweightDivisor",
        "type": "object",
        "properties": {
          "value": {
            "type": "number",
            "format": "float",
            "example": 139,
            "description": "The value of the dim-weight divisor."
          },
          "unit": {
            "$ref": "#/components/schemas/Shipping_API_v1_DimweightDivisorUnit"
          }
        }
      },
      "Shipping_API_v1_Package": {
        "title": "ShipmentPackage",
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "ShipmentPackage"
            ],
            "readOnly": true
          },
          "id": {
            "type": "integer",
            "description": "The internal `id` property used as a path parameter in a resource lookup.",
            "format": "int32",
            "readOnly": true
          },
          "status": {
            "type": "string",
            "description": "The status of the package.",
            "enum": [
              "packing",
              "tracking_required",
              "packed",
              "manifested",
              "shipped",
              "delivered"
            ],
            "readOnly": true
          },
          "actual_weight": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Shipping_API_v1_Weight"
              },
              {
                "description": "The weight of the package as measured or estimated based on the contents and packaging."
              }
            ]
          },
          "dimensions": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Shipping_API_v1_Dimensions"
              },
              {
                "description": "The dimensions of the package."
              }
            ]
          },
          "customs_value": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Shipping_API_v1_Monetary"
              },
              {
                "description": "The combined customs value of all items in this package."
              }
            ]
          },
          "declared_value": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Shipping_API_v1_Monetary"
              },
              {
                "description": "The combined declared value of all items in this package."
              }
            ]
          },
          "regulation_type": {
            "type": "string",
            "description": "The type of regulation which applies to this package.",
            "enum": [
              "normal",
              "orm-d",
              "limited",
              "small",
              "li-battery",
              "hazmat"
            ],
            "readOnly": true
          },
          "tracking_number": {
            "type": "string",
            "description": "The tracking number to be associated with the shipment for use by the customer.",
            "nullable": true
          },
          "tracking_description": {
            "type": "string",
            "description": "A description of the tracking number. For parcel this is usually the name of the carrier and service level. For freight shipments it is usually just \"PRO Number\".",
            "nullable": true
          },
          "tracking_url": {
            "type": "string",
            "description": "A URL that can be provided to customers to track their shipment status.",
            "nullable": true
          },
          "tracking_ref": {
            "type": "string",
            "description": "A reference number to this package for external systems. This is not visible in the UI and typically reserved for internal use.",
            "nullable": true
          },
          "alt_tracking_number": {
            "type": "string",
            "description": "An alternative tracking number pertaining to the package if available. For freight shipments this is usually the Bill of Lading number.",
            "nullable": true
          },
          "alt_tracking_description": {
            "type": "string",
            "description": "A description of the alternative tracking number if one is specified. For freight shipments this is usually \"BOL Number\".",
            "nullable": true
          },
          "billable_weight": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Shipping_API_v1_Weight"
              },
              {
                "description": "The billable weight of the package. This is typically the greater of the actual weight and the\ndimensional weight but may also be subject to a minimum billable weight depending on the\ncarrier and service level."
              }
            ],
            "readOnly": true
          },
          "dimensional_weight": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Shipping_API_v1_Weight"
              },
              {
                "description": "The dimensional weight of the package based on the dimensions and the dimensional weight divisor."
              }
            ],
            "readOnly": true
          },
          "dimensional_weight_divisor": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Shipping_API_v1_DimweightDivisor"
              },
              {
                "description": "The dimensional weight of the package based on the dimensions and the dimensional weight divisor."
              }
            ],
            "readOnly": true
          },
          "total_item_volume": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Shipping_API_v1_Volume"
              },
              {
                "description": "The total item volume using rounding techniques used commonly by carriers for calculating dimensional weight."
              }
            ],
            "readOnly": true
          },
          "total_void_percent": {
            "type": "number",
            "description": "The amount of void space in the package as a percent of the total package volume.",
            "format": "float",
            "readOnly": true
          },
          "container_style": {
            "type": "string",
            "description": "The style of container used for the package.",
            "enum": [
              "rigid_box",
              "multi_depth_box",
              "telescopic",
              "mailer",
              "pallet",
              "bubble_mailer",
              "rigid_mailer"
            ],
            "readOnly": true
          },
          "num_cartons": {
            "type": "number",
            "description": "The number of cartons contained in this package (used only for `container_type: pallet`).",
            "format": "int32",
            "readOnly": true
          },
          "sscc": {
            "type": "string",
            "description": "The Serial Shipping Container Code if one was generated."
          },
          "manifest_code": {
            "type": "string",
            "description": "The code of the manifest courier by which the package is being shipped."
          },
          "items": {
            "type": "array",
            "description": "A list of items contained in the package.",
            "items": {
              "$ref": "#/components/schemas/Shipping_API_v1_Item-2"
            }
          },
          "container": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Shipping_API_v1_ProductRef"
              },
              {
                "description": "A reference to the packaging product which was used as the container for the package (if one was used)."
              }
            ]
          },
          "infill": {
            "$ref": "#/components/schemas/Shipping_API_v1_ProductRef"
          },
          "packaging": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Shipping_API_v1_PackagePackaging"
              },
              {
                "description": "Packaging data to be used in the packing process."
              }
            ]
          },
          "collected_data": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Shipping_API_v1_CollectedData"
              },
              {
                "description": "Data collected for a shipment package."
              }
            ]
          },
          "created_at": {
            "$ref": "#/components/schemas/Shipping_API_v1_created_at",
            "readOnly": true
          },
          "updated_at": {
            "$ref": "#/components/schemas/Shipping_API_v1_updated_at",
            "readOnly": true
          }
        }
      },
      "Shipping_API_v1_printers": {
        "type": "object",
        "description": "Specifies the printers to be used. The required printers depend on the shipment contents and type when `print_label` is true.\n- `small_label` is required for printing SSCC labels when the print target is configured for small labels.\n- `label` is required for parcel shipping labels or for SSCC labels when the print target is configured for standard labels.\n- `laser` is required for freight shipments, hazmat shipments, or other documents like customs forms and bills of lading.",
        "properties": {
          "small_label": {
            "type": "string",
            "description": "The printer name/identifier for small label printing (typically used for SSCC labels).",
            "example": "small-printer-01"
          },
          "label": {
            "type": "string",
            "description": "The printer name/identifier for standard label printing.",
            "example": "label-printer-01"
          },
          "laser": {
            "type": "string",
            "description": "The printer name/identifier for laser/document printing.",
            "example": "laser-printer-01"
          }
        }
      },
      "Shipping_API_v1_Requester": {
        "title": "Requester",
        "type": "object",
        "description": "A `Requester` represents the entity (user, API token, integration, script, etc.) that performed\nan action in the system. The `entity_type` indicates the kind of entity and `entity_id` is the\nID of that entity in its respective table.",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "Requester"
            ],
            "description": "The resource type (always \"Requester\")."
          },
          "id": {
            "type": "integer",
            "format": "int32",
            "example": 3,
            "readOnly": true,
            "description": "The internal requester ID (`requester_id`)."
          },
          "entity_type": {
            "type": "string",
            "enum": [
              "OrganizationUser",
              "ClientUser",
              "MerchantAPI",
              "GlobalAPI",
              "MerchantIntegration",
              "GlobalIntegration",
              "Script",
              "Other"
            ],
            "description": "The type of entity that performed the action."
          },
          "entity_id": {
            "type": "integer",
            "format": "int32",
            "example": 5,
            "description": "The ID of the entity in its respective table (e.g., user ID, integration ID)."
          },
          "name": {
            "type": "string",
            "maxLength": 255,
            "example": "Bernard Greensmith",
            "description": "Human-readable display name for the requester."
          },
          "status": {
            "type": "string",
            "enum": [
              "active",
              "inactive",
              "suspended",
              "deleted",
              "unknown"
            ],
            "description": "The current status of the requester entity."
          }
        },
        "required": [
          "type",
          "id",
          "entity_type",
          "entity_id"
        ],
        "additionalProperties": false
      },
      "Shipping_API_v1_orders": {
        "type": "object",
        "description": "Lists of referenced objects included by specifying optional fields.\nSee the [selecting fields](/global-api/selecting-fields) page for more information.",
        "properties": {
          "Brand": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Shipping_API_v1_Brand"
            }
          },
          "Merchant": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Shipping_API_v1_Merchant"
            }
          },
          "Order": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Shipping_API_v1_Order"
            }
          },
          "OrderAddress": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Shipping_API_v1_Address"
            }
          },
          "OrderAddressCandidate": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Shipping_API_v1_AddressCandidate"
            }
          },
          "OrderInstruction": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Shipping_API_v1_Instruction"
            }
          },
          "OrderItem": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Shipping_API_v1_OrderItem"
            }
          },
          "OrderStatusHistory": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Shipping_API_v1_OrderStatusHistory"
            }
          },
          "PackagingContainer": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Shipping_API_v1_PackagingContainer"
            }
          },
          "PackagingDataCollection": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Shipping_API_v1_PackagingDataCollection"
            }
          },
          "PackagingInfill": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Shipping_API_v1_PackagingInfill"
            }
          },
          "PackagingInstruction": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Shipping_API_v1_PackagingInstruction"
            }
          },
          "PackagingSupplies": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Shipping_API_v1_PackagingSupplies"
            }
          },
          "Product": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Shipping_API_v1_CompositeStockableProduct"
            }
          },
          "Gallery": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Shipping_API_v1_Gallery"
            }
          },
          "GalleryItem": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Shipping_API_v1_Item"
            }
          },
          "Shipment": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Shipping_API_v1_Shipment"
            }
          },
          "ShipmentItem": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Shipping_API_v1_ShipmentItem"
            }
          },
          "ShipmentPackage": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Shipping_API_v1_ShipmentPackage"
            }
          },
          "ShipmentPackingSolution": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Shipping_API_v1_PackingSolution"
            }
          },
          "ThirdPartyBillingGroup": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Shipping_API_v1_ThirdPartyBillingGroup"
            }
          },
          "Retailer": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Shipping_API_v1_Retailer"
            }
          },
          "RetailerShipToLocation": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Shipping_API_v1_ShipToLocation"
            }
          },
          "Requester": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Shipping_API_v1_Requester"
            }
          },
          "Warehouse": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Shipping_API_v1_Warehouse"
            }
          }
        }
      },
      "Shipping_API_v1_ActionDetails": {
        "title": "OrderUpdateResultActionDetails",
        "type": "object",
        "properties": {
          "status": {
            "type": "string",
            "description": "The resulting action's success status.",
            "enum": [
              "success",
              "not-updated"
            ]
          },
          "message": {
            "type": "string",
            "description": "The descriptive message regarding the update result."
          }
        },
        "required": [
          "status"
        ]
      },
      "Shipping_API_v1_Result": {
        "title": "OrderUpdateResult",
        "type": "object",
        "properties": {
          "resource": {
            "type": "object",
            "description": "The entity being updated.",
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "Order"
                ],
                "description": "This property describes the type of object in the response body."
              },
              "id": {
                "type": "integer",
                "description": "The numeric `id` of a particular resource being updated.",
                "minimum": 1
              }
            },
            "additionalProperties": false,
            "required": [
              "type",
              "id"
            ]
          },
          "status": {
            "type": "string",
            "description": "The completion status of the update action which will also notify of any \"user-errors\".",
            "enum": [
              "committed",
              "user-error",
              "unexpected-error",
              "not-found"
            ]
          },
          "message": {
            "type": "string",
            "description": "A descriptive summary of the update result."
          },
          "details": {
            "type": "object",
            "description": "If additional details are relevant to the actions taken they may be specified in this field.",
            "properties": {
              "updatePriority": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Shipping_API_v1_ActionDetails"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "new_value": {
                        "type": "integer",
                        "description": "The new value after applying the update."
                      }
                    }
                  },
                  {
                    "description": "The resulting change of an order's priority by specified amount (`new_value`)."
                  }
                ]
              },
              "lockToWarehouse": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Shipping_API_v1_ActionDetails"
                  },
                  {
                    "description": "The result of a request to lock the order(s) to a particular warehouse."
                  }
                ]
              },
              "unlockFromWarehouse": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Shipping_API_v1_ActionDetails"
                  },
                  {
                    "description": "The result of a request to unlock the order(s) from a particular warehouse."
                  }
                ]
              },
              "cancel": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Shipping_API_v1_ActionDetails"
                  },
                  {
                    "description": "The result of a request to cancel an order(s)."
                  }
                ]
              },
              "hold": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Shipping_API_v1_ActionDetails"
                  },
                  {
                    "description": "The result of a request to put an order(s) on hold."
                  }
                ]
              },
              "unhold": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Shipping_API_v1_ActionDetails"
                  },
                  {
                    "description": "The result of a request to take an order(s) off of hold."
                  }
                ]
              }
            },
            "additionalProperties": false
          }
        },
        "additionalProperties": false,
        "required": [
          "resource",
          "status"
        ]
      },
      "Shipping_API_v1_retailers": {
        "type": "object",
        "description": "Lists of referenced objects included by specifying optional fields.\nSee the [selecting fields](/global-api/selecting-fields) page for more information.",
        "properties": {
          "Retailer": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Shipping_API_v1_Retailer"
            }
          }
        }
      },
      "Shipping_API_v1_retailer-identifier-fields-enum": {
        "title": "RetailerIdentifier",
        "type": "array",
        "items": {
          "type": "string",
          "enum": [
            "basic",
            "all",
            "qualifier",
            "value",
            "label",
            "merchant",
            "notes",
            "retailer",
            "created_at",
            "updated_at"
          ]
        }
      },
      "Shipping_API_v1_Identifier": {
        "title": "RetailerIdentifier",
        "type": "object",
        "description": "A `RetailerIdentifier` represents an EDI / trading-partner identifier\nattached to a Retailer (e.g. DUNS, GLN, SPS Trading Partner ID).",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "RetailerIdentifier"
            ],
            "readOnly": true,
            "description": "This is a read-only property that describes the type of object in the response body."
          },
          "id": {
            "type": "integer",
            "format": "int32",
            "minimum": 1,
            "example": 42,
            "readOnly": true,
            "description": "The internal `id` property used as a path parameter in a resource lookup."
          },
          "qualifier": {
            "type": "string",
            "enum": [
              "sps_trading_partner_id"
            ],
            "example": "sps_trading_partner_id",
            "description": "Identifier qualifier kind."
          },
          "value": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64,
            "example": "123456789",
            "description": "Identifier value. Must be unique within `(qualifier, value)` per scope — a global row and a merchant-specific row may carry the same pair."
          },
          "label": {
            "type": "string",
            "nullable": true,
            "maxLength": 128,
            "example": "Primary EDI DUNS",
            "description": "Optional human-readable label."
          },
          "notes": {
            "type": "string",
            "nullable": true,
            "example": "Created from SPS onboarding kit.",
            "description": "Optional freeform notes.\\\n  `Optional Field`"
          },
          "merchant": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Shipping_API_v1_Merchant"
              }
            ],
            "nullable": true,
            "description": "Merchant scope of the identifier. `null` means the identifier is global (visible to all\nmerchants); a merchant-specific identifier overrides a global one with the same qualifier\nand value. The scope may be changed on update."
          },
          "retailer": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Shipping_API_v1_RetailerRef"
              }
            ],
            "description": "Parent Retailer reference. Set from the path; cannot be changed."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "readOnly": true,
            "example": "2026-05-26T12:34:56Z",
            "description": "Creation timestamp.\\\n  `Optional Field`"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "readOnly": true,
            "example": "2026-05-26T12:34:56Z",
            "description": "Last-update timestamp.\\\n  `Optional Field`"
          }
        },
        "required": [
          "qualifier",
          "value"
        ],
        "additionalProperties": false
      },
      "Shipping_API_v1_retailer-merchant-setting-fields-enum": {
        "title": "RetailerMerchantSetting",
        "type": "array",
        "items": {
          "type": "string",
          "enum": [
            "basic",
            "all",
            "merchant",
            "default_tpb_group_id",
            "default_duties_tpb_group_id",
            "retailer",
            "created_at",
            "updated_at"
          ]
        }
      },
      "Shipping_API_v1_MerchantSetting": {
        "title": "RetailerMerchantSetting",
        "type": "object",
        "description": "A `RetailerMerchantSetting` holds per-merchant defaults for a Retailer. Third-party billing\ngroups are merchant-scoped, so the retailer's TPB defaults live here — one row per\n(retailer, merchant).",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "RetailerMerchantSetting"
            ],
            "readOnly": true,
            "description": "This is a read-only property that describes the type of object in the response body."
          },
          "id": {
            "type": "integer",
            "format": "int32",
            "minimum": 1,
            "example": 7,
            "readOnly": true,
            "description": "The internal `id` property used as a path parameter in a resource lookup."
          },
          "merchant": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Shipping_API_v1_Merchant"
              }
            ],
            "description": "Merchant these settings apply to. Required on create; cannot be changed."
          },
          "default_tpb_group_id": {
            "type": "integer",
            "format": "int32",
            "minimum": 0,
            "nullable": true,
            "example": 5,
            "description": "Default shipping third-party billing group ID for order-integration defaults. Use `0` for None (no third-party billing); omit or `null` to fall back to the order default."
          },
          "default_duties_tpb_group_id": {
            "type": "integer",
            "format": "int32",
            "minimum": 1,
            "nullable": true,
            "example": 5,
            "description": "Default duties & taxes third-party billing group ID, applied when the retailer's `default_duties_payor` is `third_party`."
          },
          "retailer": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Shipping_API_v1_RetailerRef"
              }
            ],
            "description": "Parent Retailer reference. Set from the path; cannot be changed."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "readOnly": true,
            "example": "2026-05-26T12:34:56Z",
            "description": "Creation timestamp.\\\n  `Optional Field`"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "readOnly": true,
            "example": "2026-05-26T12:34:56Z",
            "description": "Last-update timestamp.\\\n  `Optional Field`"
          }
        },
        "additionalProperties": false
      },
      "Shipping_API_v1_retailer-routing-guide-fields-enum": {
        "title": "RetailerRoutingGuide",
        "type": "array",
        "items": {
          "type": "string",
          "enum": [
            "basic",
            "all",
            "title",
            "description",
            "file_name",
            "file_type",
            "file_size",
            "uploaded_by",
            "uploaded_at",
            "retailer",
            "created_at",
            "updated_at"
          ]
        }
      },
      "Shipping_API_v1_RoutingGuide": {
        "title": "RetailerRoutingGuide",
        "type": "object",
        "description": "A `RetailerRoutingGuide` represents a routing-guide document\n(PDF / DOC / XLS / CSV / TXT) uploaded against a Retailer.",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "RetailerRoutingGuide"
            ],
            "example": "RetailerRoutingGuide",
            "readOnly": true,
            "description": "This is a read-only property that describes the type of object in the response body."
          },
          "id": {
            "type": "integer",
            "format": "int32",
            "minimum": 1,
            "example": 12,
            "readOnly": true,
            "description": "The internal `id` property used as a path parameter in a resource lookup."
          },
          "title": {
            "type": "string",
            "nullable": true,
            "maxLength": 255,
            "example": "Walmart Routing Guide 2026",
            "description": "Optional title. Defaults to the uploaded file name when blank on create."
          },
          "description": {
            "type": "string",
            "nullable": true,
            "example": "Includes carton-label spec and ASN windows.",
            "description": "Optional long-form notes.\\\n  `Optional Field`"
          },
          "file_name": {
            "type": "string",
            "nullable": true,
            "readOnly": true,
            "example": "walmart-routing-guide-2026.pdf",
            "description": "Derived from the storage file path."
          },
          "file_type": {
            "type": "string",
            "nullable": true,
            "readOnly": true,
            "example": "pdf",
            "description": "Storage-file MIME / extension hint."
          },
          "file_size": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "readOnly": true,
            "example": 524288,
            "description": "File size in bytes."
          },
          "uploaded_at": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "readOnly": true,
            "example": "2026-05-26T12:34:56Z",
            "description": "Upload timestamp; set on create."
          },
          "retailer": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Shipping_API_v1_RetailerRef"
              }
            ],
            "description": "Parent Retailer reference. Set from the path; cannot be changed.\\\n  `Optional Field`"
          },
          "uploaded_by": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Shipping_API_v1_RequesterRef"
              }
            ],
            "nullable": true,
            "description": "Optional requester reference for the uploader."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "readOnly": true,
            "example": "2026-05-26T12:34:56Z",
            "description": "Creation timestamp.\\\n  `Optional Field`"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "readOnly": true,
            "example": "2026-05-26T12:34:56Z",
            "description": "Last-update timestamp.\\\n  `Optional Field`"
          }
        },
        "additionalProperties": false
      },
      "Shipping_API_v1_RoutingGuideFile": {
        "title": "RetailerRoutingGuideFile",
        "type": "object",
        "description": "Routing-guide file body wrapped as a JSON resource.\n`file_content` is **base64-encoded file bytes**.",
        "properties": {
          "file_name": {
            "type": "string",
            "nullable": true,
            "example": "walmart-routing-guide-2026.pdf",
            "description": "Storage filename derived from path."
          },
          "file_type": {
            "type": "string",
            "nullable": true,
            "example": "pdf",
            "description": "Storage-file MIME / extension hint."
          },
          "file_size": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "example": 524288,
            "description": "File size in bytes."
          },
          "file_content": {
            "type": "string",
            "format": "byte",
            "description": "Base64-encoded file bytes."
          },
          "meta": {
            "type": "object",
            "description": "Server-side metadata such as processing time."
          }
        },
        "required": [
          "file_content"
        ],
        "additionalProperties": false
      },
      "System_API_v1_merchant-fields-enum": {
        "title": "Merchant",
        "type": "array",
        "items": {
          "type": "string",
          "enum": [
            "basic",
            "all",
            "code",
            "name",
            "status",
            "created_at",
            "updated_at",
            "brands",
            "default_brand",
            "custom_fields"
          ]
        }
      },
      "System_API_v1_brand-fields-enum": {
        "type": "array",
        "items": {
          "type": "string",
          "enum": [
            "basic",
            "all",
            "code",
            "name",
            "is_active",
            "is_deleted",
            "sort_order"
          ]
        }
      },
      "System_API_v1_created_at-optional": {
        "type": "string",
        "format": "date-time",
        "description": "The date and time the object was created in RFC 3339 section 5.6 notation.\\\n  `Optional Field`",
        "example": "2017-07-21T17:32:28Z",
        "nullable": true,
        "readOnly": true
      },
      "System_API_v1_updated_at": {
        "type": "string",
        "format": "date-time",
        "description": "The date and time the object was last updated in RFC 3339 section 5.6 notation.\\\n  `Optional Field`",
        "example": "2017-07-21T17:39:43Z",
        "nullable": true,
        "readOnly": true
      },
      "System_API_v1_BrandRef": {
        "title": "BrandRef",
        "type": "object",
        "description": "Reference a `Brand` by `id`.",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "Brand"
            ]
          },
          "id": {
            "type": "integer",
            "format": "int32",
            "description": "The numeric `id` of a particular resource being updated.",
            "example": 4
          }
        },
        "required": [
          "type",
          "id"
        ],
        "additionalProperties": false
      },
      "System_API_v1_custom_field_scalar_value": {
        "type": "object",
        "description": "A wrapper for scalar custom field values.\nThe value type depends on the field's input type:\n- **boolean**: boolean value\n- **text/multiline-text/email/url/date**: string value\n- **number**: number value\n- **admin-user/client-user**: integer value (user ID)",
        "required": [
          "value"
        ],
        "properties": {
          "value": {
            "description": "The field value. Type varies based on field configuration.",
            "oneOf": [
              {
                "type": "boolean"
              },
              {
                "type": "string"
              },
              {
                "type": "number"
              },
              {
                "type": "integer"
              }
            ]
          }
        },
        "additionalProperties": false
      },
      "System_API_v1_Monetary": {
        "title": "Monetary",
        "type": "object",
        "nullable": true,
        "properties": {
          "amount": {
            "type": "number",
            "description": "This is the monetary value..",
            "format": "float",
            "example": 99
          },
          "currency": {
            "type": "string",
            "description": "An ISO 3166-1 alpha-3 currency code.",
            "example": "USD"
          }
        }
      },
      "System_API_v1_custom_field_select_option": {
        "type": "object",
        "description": "A selected option for select type fields.",
        "required": [
          "id",
          "label"
        ],
        "properties": {
          "id": {
            "type": "integer",
            "description": "The option ID."
          },
          "label": {
            "type": "string",
            "description": "The display label for the selected option."
          }
        },
        "additionalProperties": false
      },
      "System_API_v1_custom_field_multiselect_value": {
        "type": "array",
        "description": "Array of selected options for multiselect type fields.",
        "items": {
          "$ref": "#/components/schemas/System_API_v1_custom_field_select_option"
        }
      },
      "System_API_v1_custom_field_value": {
        "description": "Union type for all possible custom field value formats.",
        "anyOf": [
          {
            "$ref": "#/components/schemas/System_API_v1_custom_field_scalar_value"
          },
          {
            "$ref": "#/components/schemas/System_API_v1_Monetary"
          },
          {
            "$ref": "#/components/schemas/System_API_v1_custom_field_select_option"
          },
          {
            "$ref": "#/components/schemas/System_API_v1_custom_field_multiselect_value"
          }
        ]
      },
      "System_API_v1_sales_custom_fields": {
        "type": "object",
        "description": "Custom field values for the order, keyed by field code.\n\nThe format of each value depends on the field's input type:\n- **select**: `{\"id\": <integer>, \"label\": \"<string>\"}`\n- **multiselect**: `[{\"id\": <integer>, \"label\": \"<string>\"}, ...]`\n- **currency**: Uses the Monetary type `{\"amount\": <number>, \"currency\": \"<string>\"}`\n- **boolean**: `{\"value\": <boolean>}`\n- **text/multiline-text/email/url/date**: `{\"value\": \"<string>\"}`\n- **number**: `{\"value\": <number>}`\n- **admin-user/client-user**: `{\"value\": <integer>}` (user ID)",
        "additionalProperties": {
          "$ref": "#/components/schemas/System_API_v1_custom_field_value"
        },
        "example": {
          "is_gift": {
            "value": true
          },
          "order_details": {
            "value": "test details"
          },
          "department": {
            "id": 3,
            "label": "Shipping"
          },
          "priority_levels": [
            {
              "id": 1,
              "label": "Urgent"
            },
            {
              "id": 2,
              "label": "High"
            }
          ],
          "cost_of_goods": {
            "amount": 156.99,
            "currency": "USD"
          },
          "assigned_user": {
            "value": 42
          }
        }
      },
      "System_API_v1_Merchant": {
        "title": "Merchant",
        "type": "object",
        "description": "A `Merchant` represents an entity that owns a distinct pool of inventory and line of business.",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "Merchant"
            ],
            "readOnly": true
          },
          "id": {
            "type": "integer",
            "format": "int32",
            "description": "The internal `id` property used as a path parameter in a resource lookup.",
            "readOnly": true,
            "example": 4
          },
          "code": {
            "type": "string",
            "description": "Merchant code may only contain letters (a-z), numbers (0-9) or underscore(_), the first character must be a letter.",
            "minLength": 1,
            "maxLength": 32,
            "example": "acme_inc"
          },
          "name": {
            "type": "string",
            "description": "Any string which uniquely identifies a Merchant.",
            "minLength": 1,
            "maxLength": 64,
            "example": "ACME Inc."
          },
          "status": {
            "type": "string",
            "enum": [
              "active",
              "inactive",
              "suspended",
              "archived"
            ],
            "default": "active",
            "description": "Lifecycle status of the Merchant:\n- `active`: Merchant is operational and available for use\n- `suspended`: Temporarily on hold, can be easily reactivated\n- `inactive`: Long-term offline status, reactivation is possible but may require additional steps\n- `archived`: Soft delete status, manual recovery required",
            "example": "active",
            "nullable": true,
            "readOnly": true
          },
          "created_at": {
            "$ref": "#/components/schemas/System_API_v1_created_at-optional"
          },
          "updated_at": {
            "$ref": "#/components/schemas/System_API_v1_updated_at"
          },
          "brands": {
            "type": "array",
            "items": {
              "allOf": [
                {
                  "$ref": "#/components/schemas/System_API_v1_BrandRef"
                }
              ]
            },
            "description": "A merchant must have one or more brands which may share the same pool of inventory. Brands can be used for\ncustomizing presentation and behaviors and often correspond to distinct lines of business or market presences.\\\n  `Optional Field`",
            "readOnly": true
          },
          "default_brand": {
            "allOf": [
              {
                "$ref": "#/components/schemas/System_API_v1_BrandRef"
              }
            ],
            "description": "This is the primary brand used when defining only the merchant for operations such as creating a new product.\\\n  `Optional Field`"
          },
          "custom_fields": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/components/schemas/System_API_v1_sales_custom_fields"
              }
            ],
            "nullable": true,
            "description": "Custom fields associated with the merchant in script format. Each field contains\na code and value, with additional properties depending on the field type.\\\n  `Optional Field`"
          }
        }
      },
      "System_API_v1_Brand": {
        "title": "Brand",
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "Brand"
            ],
            "readOnly": true
          },
          "id": {
            "type": "integer",
            "description": "The internal `id` property used as a path parameter in a resource lookup.",
            "format": "int32",
            "readOnly": true,
            "example": 4
          },
          "code": {
            "type": "string",
            "description": "The brand code may contain only letters (a-z), numbers (0-9) or underscore(_), the first character must be a letter.",
            "minLength": 1,
            "maxLength": 32,
            "example": "acme_inc"
          },
          "name": {
            "type": "string",
            "description": "Any string which uniquely identifies a Brand.",
            "minLength": 1,
            "maxLength": 255,
            "example": "ACME Inc."
          },
          "is_active": {
            "type": "boolean",
            "description": "This flag is `true` if the Brand is active.",
            "example": true
          },
          "is_deleted": {
            "type": "boolean",
            "description": "This flag is `true` if the Brand has been deleted.",
            "example": false
          },
          "sort_order": {
            "type": "number",
            "nullable": true,
            "description": "The sort order property.",
            "example": 0
          }
        }
      },
      "System_API_v1_merchants": {
        "type": "object",
        "description": "Lists of referenced objects included by specifying optional fields.\nSee the [selecting fields](/global-api/selecting-fields) page for more information.",
        "properties": {
          "Brand": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/System_API_v1_Brand"
            }
          }
        }
      },
      "System_API_v1_has_more": {
        "type": "boolean",
        "description": "True if the collection has more items on the next page.\nUse the \"next\" link to retrieve the next page of results."
      },
      "System_API_v1_next": {
        "type": "string",
        "nullable": true,
        "description": "The resource path for the next page of results if any are expected."
      },
      "System_API_v1_previous": {
        "type": "string",
        "nullable": true,
        "description": "The resource path for the previous page of results if any are expected."
      },
      "System_API_v1_meta": {
        "type": "object",
        "properties": {
          "processing_time": {
            "type": "number",
            "description": "Total time in which request is processed and response is sent back.",
            "example": 0.2525252525
          },
          "cursor_start": {
            "type": "integer",
            "description": "A cursor for use in pagination which defines the starting `id` of the next page of results.\nSee [paging parameters](/global-api/paging-parameters) for more information on paging.",
            "nullable": true
          },
          "cursor_end": {
            "type": "integer",
            "description": "A cursor for use in pagination which defines the last `id` of the next page of results, non-inclusive.\nSee [paging parameters](/global-api/paging-parameters) for more information on paging.",
            "nullable": true
          },
          "count": {
            "type": "integer",
            "description": "The total number of items matching the query before applying paging parameters.\nThis field is only present if the query parameter `count=1` is present in the request."
          }
        },
        "description": "Additional metadata pertaining to the response."
      },
      "System_API_v1_user-fields-enum": {
        "type": "array",
        "items": {
          "type": "string",
          "enum": [
            "basic",
            "all",
            "created_at",
            "updated_at",
            "last_login_at",
            "login_via_badge",
            "is_deleted",
            "roles",
            "default_warehouse"
          ]
        }
      },
      "System_API_v1_warehouse-fields-enum": {
        "title": "Warehouse",
        "description": "Specify additional fields of the `Warehouse` object to be included in the response.",
        "type": "array",
        "items": {
          "type": "string",
          "enum": [
            "basic",
            "all",
            "id",
            "name",
            "is_active",
            "abbreviation"
          ]
        }
      },
      "System_API_v1_UserRoleRef": {
        "title": "UserRoleRef",
        "type": "object",
        "description": "Reference a `UserRole` by `id`.",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "OrganizationUserRole",
              "ClientUserRole"
            ]
          },
          "id": {
            "type": "integer",
            "format": "int32",
            "example": 3,
            "description": "The internal `id` property used as a path parameter in a resource lookup."
          }
        },
        "required": [
          "type",
          "id"
        ],
        "additionalProperties": false
      },
      "System_API_v1_AbstractUser": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "OrganizationUser",
              "ClientUser"
            ]
          },
          "id": {
            "type": "integer",
            "format": "int32",
            "example": 3,
            "readOnly": true,
            "description": "The internal `id` property used as a path parameter in a resource lookup."
          },
          "name": {
            "type": "string",
            "maxLength": 65,
            "example": "Bernard Greensmith",
            "description": "The full name of the user."
          },
          "email": {
            "type": "string",
            "maxLength": 128,
            "format": "email",
            "example": "admin@example.com",
            "description": "The user's email address."
          },
          "username": {
            "type": "string",
            "maxLength": 40,
            "example": "b.greensmith",
            "description": "User name for login."
          },
          "is_active": {
            "type": "boolean",
            "example": true,
            "description": "Only active users may log in."
          },
          "roles": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/System_API_v1_UserRoleRef"
            },
            "description": "A list of user roles allowed for this user.\\\n  `Optional Field`"
          }
        },
        "required": [
          "type",
          "id"
        ]
      },
      "System_API_v1_WarehouseRef": {
        "title": "WarehouseRef",
        "type": "object",
        "description": "A reference to a `Warehouse` by `id`.",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "Warehouse"
            ],
            "description": "This property describes the type of object in the response body."
          },
          "id": {
            "type": "integer",
            "format": "int32",
            "description": "The internal `id` property used as a path parameter in a resource lookup."
          }
        },
        "required": [
          "type",
          "id"
        ],
        "nullable": true,
        "additionalProperties": false
      },
      "System_API_v1_OrganizationUser": {
        "title": "OrganizationUser",
        "description": "A user with organization-wide access.",
        "allOf": [
          {
            "$ref": "#/components/schemas/System_API_v1_AbstractUser"
          },
          {
            "type": "object",
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "OrganizationUser"
                ],
                "description": "This property describes the type of object in the response body."
              },
              "login_via_badge": {
                "type": "boolean",
                "example": true,
                "description": "This flag must be `true` to allow login with badge capability.\\\n  `Optional Field`"
              },
              "default_warehouse": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/System_API_v1_WarehouseRef"
                  },
                  {
                    "description": "The last `Warehouse` that was active for the user.\\\n  `Optional Field`"
                  }
                ]
              }
            }
          }
        ]
      },
      "System_API_v1_MerchantRef": {
        "title": "MerchantRef",
        "type": "object",
        "description": "Reference a `Merchant` by `id`.",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "Merchant"
            ]
          },
          "id": {
            "type": "integer",
            "format": "int32",
            "example": 4,
            "description": "The internal `id` property used as a path parameter in a resource lookup."
          }
        },
        "required": [
          "type",
          "id"
        ],
        "additionalProperties": false
      },
      "System_API_v1_ClientUser": {
        "title": "ClientUser",
        "description": "A user with limited access and assigned to a single merchant.",
        "allOf": [
          {
            "$ref": "#/components/schemas/System_API_v1_AbstractUser"
          },
          {
            "type": "object",
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "ClientUser"
                ],
                "description": "This property describes the type of object in the response body."
              },
              "merchant": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/System_API_v1_MerchantRef"
                  },
                  {
                    "description": "The Merchant to which this user belongs.\\\n  `Optional Field`"
                  }
                ]
              }
            }
          }
        ]
      },
      "System_API_v1_CompositeUser": {
        "type": "object",
        "anyOf": [
          {
            "$ref": "#/components/schemas/System_API_v1_OrganizationUser"
          },
          {
            "$ref": "#/components/schemas/System_API_v1_ClientUser"
          }
        ],
        "discriminator": {
          "propertyName": "type"
        }
      },
      "System_API_v1_AbstractUserRole": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "OrganizationUserRole",
              "ClientUserRole"
            ]
          },
          "id": {
            "type": "integer",
            "example": 3,
            "readOnly": true,
            "description": "The internal `id` property used as a path parameter in a resource lookup."
          },
          "name": {
            "type": "string",
            "maxLength": 50,
            "example": "Administrators",
            "description": "The name of the User Role."
          },
          "permissions": {
            "type": "array",
            "description": "A list of permissions for a single role.",
            "items": {
              "type": "string"
            },
            "example": [
              "warehouse",
              "warehouse/staff",
              "warehouse/staff/time_entry_log",
              "warehouse/staff/time_management",
              "warehouse/staff/time_management/excluded",
              "warehouse/staff/time_management/status_dashboard"
            ]
          }
        },
        "additionalProperties": false
      },
      "System_API_v1_ClientUserRole": {
        "title": "ClientUserRole",
        "description": "A `ClientUserRole` is used to provide a specific set of permissions to an external client user.",
        "allOf": [
          {
            "$ref": "#/components/schemas/System_API_v1_AbstractUserRole"
          },
          {
            "type": "object",
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "ClientUserRole"
                ],
                "description": "This is a read-only property that describes the type of object in the response body."
              }
            }
          }
        ]
      },
      "System_API_v1_OrganizationUserRole": {
        "title": "OrganizationUserRole",
        "description": "An `OrganizationUserRole` is used to provide a specific set of permissions to an organization's user.",
        "allOf": [
          {
            "$ref": "#/components/schemas/System_API_v1_AbstractUserRole"
          },
          {
            "type": "object",
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "OrganizationUserRole"
                ],
                "description": "This is a read-only property that describes the type of object in the response body."
              }
            }
          }
        ]
      },
      "System_API_v1_Warehouse": {
        "title": "Warehouse",
        "type": "object",
        "description": "A `Warehouse` represents a physical location from which you can store inventory and perform operations independently of other warehouses.",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "Warehouse"
            ],
            "readOnly": true,
            "description": "This is a read-only property that describes the type of object in the response body."
          },
          "id": {
            "type": "integer",
            "format": "int32",
            "example": 3,
            "readOnly": true,
            "description": "The internal `id` property used as a path parameter in a resource lookup."
          },
          "name": {
            "type": "string",
            "example": "East Coast 1",
            "maxLength": 255,
            "description": "The display name for the `Warehouse`."
          },
          "abbreviation": {
            "type": "string",
            "maxLength": 10,
            "nullable": true,
            "example": "EC1",
            "description": "A short abbreviation for the `Warehouse`, up to 10 characters. Recommended to be fewer than 6 characters.\\\n  `Optional Field`"
          },
          "is_active": {
            "type": "boolean",
            "example": true,
            "description": "This flag determines if the `Warehouse` is active and viable for fulfillment."
          }
        },
        "required": [
          "type",
          "id"
        ],
        "additionalProperties": false
      },
      "System_API_v1_users": {
        "type": "object",
        "description": "Lists of referenced objects included by specifying optional fields.\nSee the [selecting fields](/global-api/selecting-fields) page for more information.",
        "properties": {
          "ClientUserRole": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/System_API_v1_ClientUserRole"
            }
          },
          "Merchant": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/System_API_v1_Merchant"
            }
          },
          "OrganizationUserRole": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/System_API_v1_OrganizationUserRole"
            }
          },
          "Warehouse": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/System_API_v1_Warehouse"
            }
          }
        }
      },
      "System_API_v1_CompositeUserRole": {
        "type": "object",
        "anyOf": [
          {
            "$ref": "#/components/schemas/System_API_v1_OrganizationUserRole"
          },
          {
            "$ref": "#/components/schemas/System_API_v1_ClientUserRole"
          }
        ],
        "discriminator": {
          "propertyName": "type"
        }
      }
    },
    "parameters": {
      "Inventory_API_v1_warehouse-fields": {
        "name": "fields",
        "in": "query",
        "required": false,
        "description": "Specify additional fields of the `Warehouse` object to be included in the response.\nSee the [selecting fields](/global-api/selecting-fields) page for more information.",
        "explode": false,
        "schema": {
          "$ref": "#/components/schemas/Inventory_API_v1_warehouse-fields-enum"
        }
      },
      "Inventory_API_v1_count": {
        "name": "count",
        "in": "query",
        "description": "If specified as `1`, the `meta.count` property of the response will be present and populated with the total count of items\nmatching the query before any paging is applied. This is not included by default to improve performance in some edge\ncases and is not required to perform paging using the `next` property of the response.\nSee [paging parameters](/global-api/paging-parameters) for more information.",
        "style": "form",
        "schema": {
          "type": "integer",
          "minimum": 0,
          "maximum": 1
        }
      },
      "Inventory_API_v1_cursor_end": {
        "name": "cursor_end",
        "in": "query",
        "description": "A cursor for use in pagination which defines the last `id` of the next page of results, non-inclusive.\nSee [paging parameters](/global-api/paging-parameters) for more information on paging.",
        "schema": {
          "type": "integer"
        },
        "style": "form"
      },
      "Inventory_API_v1_cursor_start": {
        "name": "cursor_start",
        "in": "query",
        "description": "A cursor for use in pagination which defines the starting `id` of the next page of results.\nSee [paging parameters](/global-api/paging-parameters) for more information on paging.",
        "schema": {
          "type": "integer"
        },
        "style": "form"
      },
      "Inventory_API_v1_limit": {
        "name": "limit",
        "in": "query",
        "description": "A limit on the number of objects to be returned.",
        "style": "form",
        "schema": {
          "type": "integer",
          "example": 100,
          "default": 100,
          "minimum": 1,
          "maximum": 1000
        }
      },
      "Inventory_API_v1_location-fields": {
        "name": "fields",
        "in": "query",
        "required": false,
        "description": "Specify additional fields of the `Location` object to be included in the response.\nSee the [selecting fields](/global-api/selecting-fields) page for more information.",
        "explode": false,
        "schema": {
          "$ref": "#/components/schemas/Inventory_API_v1_location-fields-enum"
        }
      },
      "Inventory_API_v1_fields-lot": {
        "name": "fields:lot",
        "in": "query",
        "required": false,
        "description": "Specify additional fields of the `Lot` object to be included in the response. See the [selecting fields](/global-api/selecting-fields) page for more information.",
        "explode": false,
        "schema": {
          "$ref": "#/components/schemas/Inventory_API_v1_lot-fields-enum"
        }
      },
      "Inventory_API_v1_fields-lot-lot_type": {
        "name": "fields:lot.lot_type",
        "in": "query",
        "required": false,
        "description": "Specify additional fields of the `LotType` object (via Lot) to be included in the response. See the [selecting fields](/global-api/selecting-fields) page for more information.",
        "explode": false,
        "schema": {
          "$ref": "#/components/schemas/Inventory_API_v1_lot_type-fields-enum"
        }
      },
      "Inventory_API_v1_fields-lot-product": {
        "name": "fields:lot.product",
        "in": "query",
        "required": false,
        "description": "Specify additional fields of the `Product` object (via Lot) to be included in the response. See the [selecting fields](/global-api/selecting-fields) page for more information.",
        "explode": false,
        "schema": {
          "$ref": "#/components/schemas/Inventory_API_v1_product-packaging-fields-enum"
        }
      },
      "Inventory_API_v1_fields-product": {
        "name": "fields:product",
        "in": "query",
        "required": false,
        "description": "Specify additional fields of the `Product` or `Packaging*` object to be included in the response. See the [selecting fields](/global-api/selecting-fields) page for more information.",
        "explode": false,
        "schema": {
          "$ref": "#/components/schemas/Inventory_API_v1_product-packaging-fields-enum"
        }
      },
      "Inventory_API_v1_fields-product-merchant": {
        "name": "fields:product.merchant",
        "in": "query",
        "required": false,
        "description": "Specify additional fields of the `Merchant` object to be included in the response. See the [selecting fields](/global-api/selecting-fields) page for more information.",
        "explode": false,
        "schema": {
          "$ref": "#/components/schemas/Inventory_API_v1_merchant-fields-enum"
        }
      },
      "Inventory_API_v1_fields-rack": {
        "name": "fields:rack",
        "in": "query",
        "required": false,
        "description": "Specify additional fields of the `Rack` object to be included in the response. See the [selecting fields](/global-api/selecting-fields) page for more information.",
        "explode": false,
        "schema": {
          "$ref": "#/components/schemas/Inventory_API_v1_rack-fields-enum"
        }
      },
      "Inventory_API_v1_fields-rack-rack_type": {
        "name": "fields:rack.rack_type",
        "in": "query",
        "required": false,
        "description": "Specify additional fields of the `RackType` object (via Rack) to be included in the response. See the [selecting fields](/global-api/selecting-fields) page for more information.",
        "explode": false,
        "schema": {
          "$ref": "#/components/schemas/Inventory_API_v1_rack_type-fields-enum"
        }
      },
      "Inventory_API_v1_fields-rack-warehouse": {
        "name": "fields:rack.warehouse",
        "in": "query",
        "required": false,
        "description": "Specify additional fields of the `Warehouse` object (via Rack) to be included in the response. See the [selecting fields](/global-api/selecting-fields) page for more information.",
        "explode": false,
        "schema": {
          "$ref": "#/components/schemas/Inventory_API_v1_warehouse-fields-enum"
        }
      },
      "Inventory_API_v1_fields-slot_type": {
        "name": "fields:slot_type",
        "in": "query",
        "required": false,
        "description": "Specify additional fields of the `SlotType` object to be included in the response. See the [selecting fields](/global-api/selecting-fields) page for more information.",
        "explode": false,
        "schema": {
          "$ref": "#/components/schemas/Inventory_API_v1_slot_type-fields-enum"
        }
      },
      "Inventory_API_v1_location-filter": {
        "name": "filter",
        "in": "query",
        "description": "Using the [filtering syntax](/global-api/filtering-syntax), you may filter the results using the following fields:\n  - `id`\n  - `label`\n  - `created_at`\n  - `updated_at`\n  - `qty_putaway`\n  - `qty_unreserved`\n  - `qty_reserved`",
        "required": false,
        "style": "form",
        "explode": true,
        "schema": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "allowReserved": true,
        "examples": {
          "Quantity Reserved": {
            "summary": "Get locations where quantity_reserved value is 10.",
            "value": [
              "qty_unreserved:10"
            ]
          }
        }
      },
      "Inventory_API_v1_replenishment-policy-fields": {
        "name": "fields",
        "in": "query",
        "required": false,
        "description": "Specify additional fields of the `ReplenishmentPolicy` object to be included in the response.\nSee the [selecting fields](/global-api/selecting-fields) page for more information.",
        "explode": false,
        "schema": {
          "$ref": "#/components/schemas/Inventory_API_v1_replenishment-policy-fields-enum"
        }
      },
      "Inventory_API_v1_fields-slotting-rule-merchants": {
        "name": "fields:merchants",
        "in": "query",
        "required": false,
        "description": "Specify direct fields of selected `Merchant` objects to include under `included.Merchant`. Add `merchants` to the root `fields` parameter to return the relationship. `type` and `id` are always returned.",
        "explode": false,
        "schema": {
          "$ref": "#/components/schemas/Inventory_API_v1_merchant-relationship-fields-enum"
        }
      },
      "Inventory_API_v1_fields-slotting-rule-product-profiles": {
        "name": "fields:product_profiles",
        "in": "query",
        "required": false,
        "description": "Specify fields of selected `ProductProfile` objects to include under `included.ProductProfile`. Add `product_profiles` to the root `fields` parameter to return the relationship. `type` and `id` are always returned.",
        "explode": false,
        "schema": {
          "$ref": "#/components/schemas/Inventory_API_v1_product-profile-relationship-fields-enum"
        }
      },
      "Inventory_API_v1_fields-slotting-rule-handling-classes": {
        "name": "fields:handling_classes",
        "in": "query",
        "required": false,
        "description": "Specify direct fields of selected `HandlingClass` objects to include under `included.HandlingClass`. Add `handling_classes` to the root `fields` parameter to return the relationship. `type` and `id` are always returned.",
        "explode": false,
        "schema": {
          "$ref": "#/components/schemas/Inventory_API_v1_handling-class-relationship-fields-enum"
        }
      },
      "Inventory_API_v1_fields-replenishment-policy-location_profile": {
        "name": "fields:location_profile",
        "in": "query",
        "required": false,
        "description": "Specify direct fields of the `LocationProfile` selected by each Policy.\nLocation Tags and Slot Types remain available from the Profile's own endpoint.",
        "explode": false,
        "schema": {
          "$ref": "#/components/schemas/Inventory_API_v1_location-profile-policy-relationship-fields-enum"
        }
      },
      "Inventory_API_v1_replenishment-policy-filter": {
        "name": "filter",
        "in": "query",
        "description": "Using the [filtering syntax](/global-api/filtering-syntax), you may filter the results using the following fields:\n  - `id`\n  - `name`\n  - `is_active`\n  - `location_profile_id`",
        "required": false,
        "style": "form",
        "explode": true,
        "schema": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "allowReserved": true,
        "examples": {
          "Active policies": {
            "summary": "Get active Replenishment Policies.",
            "value": [
              "is_active:true"
            ]
          }
        }
      },
      "Inventory_API_v1_replenishment-report-fields": {
        "name": "fields",
        "in": "query",
        "required": false,
        "description": "Specify additional fields of the `ReplenishmentReport` object to be included in the response.\nSee the [selecting fields](/global-api/selecting-fields) page for more information.",
        "explode": false,
        "schema": {
          "$ref": "#/components/schemas/Inventory_API_v1_replenishment-report-fields-enum"
        }
      },
      "Inventory_API_v1_fields-replenishment-report-product": {
        "name": "fields:product",
        "in": "query",
        "required": false,
        "description": "Specify additional common fields of the `Product` or stockable `Packaging*` object referenced by each Replenishment Report row. See the [selecting fields](/global-api/selecting-fields) page for more information.",
        "explode": false,
        "schema": {
          "$ref": "#/components/schemas/Inventory_API_v1_replenishment-report-product-fields-enum"
        }
      },
      "Inventory_API_v1_fields-replenishment-report-policy": {
        "name": "fields:policy",
        "in": "query",
        "required": false,
        "description": "Specify direct fields of the `ReplenishmentPolicy` referenced by each Report row.\nSubject relationships, counters, and the Policy's own Location Profile expansion are\nintentionally unavailable through this endpoint. See the\n[selecting fields](/global-api/selecting-fields) page for more information.",
        "explode": false,
        "schema": {
          "$ref": "#/components/schemas/Inventory_API_v1_replenishment-report-policy-fields-enum"
        }
      },
      "Inventory_API_v1_fields-replenishment-report-location-profile": {
        "name": "fields:location_profile",
        "in": "query",
        "required": false,
        "description": "Specify direct summary fields of the `LocationProfile` referenced by each Report row.\nMatch definitions, usage details, and nested tag/type relationships are intentionally\nunavailable through this endpoint. See the\n[selecting fields](/global-api/selecting-fields) page for more information.",
        "explode": false,
        "schema": {
          "$ref": "#/components/schemas/Inventory_API_v1_replenishment-report-location-profile-fields-enum"
        }
      },
      "Inventory_API_v1_replenishment-report-filter": {
        "name": "filter",
        "in": "query",
        "description": "Using the [filtering syntax](/global-api/filtering-syntax), you may filter the results using the following fields:\n  - `id`\n  - `sku`\n  - `merchant_id`\n  - `is_flagged`\n  - `presence`\n  - `policy_id`\n  - `location_profile_id`\n  - `profile_revision_id`\n  - `doi_days`\n  - `shortfall_qty`\n  - `computed_at`",
        "required": false,
        "style": "form",
        "explode": true,
        "schema": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "allowReserved": true,
        "examples": {
          "Flagged products": {
            "summary": "Get products whose coverage is below their trigger threshold.",
            "value": [
              "is_flagged:true"
            ]
          },
          "Initial slotting signals": {
            "summary": "Get products with recorded demand and no persistent assignment in the selected profile.",
            "value": [
              "presence:slot"
            ]
          },
          "Low coverage for one merchant": {
            "summary": "Get one merchant's products holding fewer days of inventory than five.",
            "value": [
              "merchant_id:2",
              "doi_days{lt:5}"
            ]
          }
        }
      },
      "Inventory_API_v1_location-profile-fields": {
        "name": "fields",
        "in": "query",
        "required": false,
        "description": "Specify additional fields of the `LocationProfile` object to be included in the response.\nSee the [selecting fields](/global-api/selecting-fields) page for more information.",
        "explode": false,
        "schema": {
          "$ref": "#/components/schemas/Inventory_API_v1_location-profile-fields-enum"
        }
      },
      "Inventory_API_v1_fields-location-profile-location-tags": {
        "name": "fields:location_tags",
        "in": "query",
        "required": false,
        "description": "Specify fields of the directly referenced `LocationTag` objects to include under `included.LocationTag`. Add `location_tags` to the root `fields` parameter to return the relationship. `type` and `id` are always returned.",
        "explode": false,
        "schema": {
          "$ref": "#/components/schemas/Inventory_API_v1_location-tag-fields-enum"
        }
      },
      "Inventory_API_v1_fields-location-profile-slot-types": {
        "name": "fields:slot_types",
        "in": "query",
        "required": false,
        "description": "Specify fields of the directly referenced `SlotType` objects to include under `included.SlotType`. Add `slot_types` to the root `fields` parameter to return the relationship. `type` and `id` are always returned.",
        "explode": false,
        "schema": {
          "$ref": "#/components/schemas/Inventory_API_v1_slot_type-fields-enum"
        }
      },
      "Inventory_API_v1_location-profile-filter": {
        "name": "filter",
        "in": "query",
        "description": "Using the [filtering syntax](/global-api/filtering-syntax), you may filter the results using the following fields:\n  - `id`\n  - `name`\n  - `status`\n\n`status` is derived from the profile's revision pointers rather than stored, so it supports\nonly the `eq` and `in` operators. List the states you want instead of negating.",
        "required": false,
        "style": "form",
        "explode": true,
        "schema": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "allowReserved": true,
        "examples": {
          "Profile by name": {
            "summary": "Get profiles whose name contains \"pick\".",
            "value": [
              "name{contain:\"pick\"}"
            ]
          },
          "Profiles usable by policy writes": {
            "summary": "Get profiles whose membership has been materialized.",
            "value": [
              "status:ready"
            ]
          },
          "Profiles that never published": {
            "summary": "Get profiles with no revision serving consumers.",
            "value": [
              "status{in:[\"building\",\"failed\",\"none\"]}"
            ]
          }
        }
      },
      "Inventory_API_v1_slotting-rule-set-fields": {
        "name": "fields",
        "in": "query",
        "required": false,
        "description": "Specify fields of the `SlottingRuleSet` object to include in the response.\nSee the [selecting fields](/global-api/selecting-fields) page for more information.",
        "explode": false,
        "schema": {
          "$ref": "#/components/schemas/Inventory_API_v1_slotting-rule-set-fields-enum"
        }
      },
      "Inventory_API_v1_slotting-rule-set-filter": {
        "name": "filter",
        "in": "query",
        "description": "Using the [filtering syntax](/global-api/filtering-syntax), filter results by:\n  - `id`\n  - `name`\n  - `is_active`",
        "required": false,
        "style": "form",
        "explode": true,
        "schema": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "allowReserved": true,
        "examples": {
          "Active Rule Sets": {
            "summary": "List Rule Sets currently used for Slotting.",
            "value": [
              "is_active:true"
            ]
          },
          "Rule Sets by name": {
            "summary": "List Rule Sets whose names contain \"hazmat\".",
            "value": [
              "name{contain:\"hazmat\"}"
            ]
          }
        }
      },
      "Inventory_API_v1_slotting-rule-fields": {
        "name": "fields",
        "in": "query",
        "required": false,
        "description": "Specify fields of the `SlottingRule` object to include in the response.\nSee the [selecting fields](/global-api/selecting-fields) page for more information.",
        "explode": false,
        "schema": {
          "$ref": "#/components/schemas/Inventory_API_v1_slotting-rule-fields-enum"
        }
      },
      "Inventory_API_v1_fields-slotting-rule-rule_set": {
        "name": "fields:rule_set",
        "in": "query",
        "required": false,
        "description": "Specify fields of the `SlottingRuleSet` object referenced by each Rule.\nSee the [selecting fields](/global-api/selecting-fields) page for more information.",
        "explode": false,
        "schema": {
          "$ref": "#/components/schemas/Inventory_API_v1_slotting-rule-set-fields-enum"
        }
      },
      "Inventory_API_v1_fields-slotting-rule-location_profile": {
        "name": "fields:location_profile",
        "in": "query",
        "required": false,
        "description": "Specify fields of the `LocationProfile` object referenced by each Rule.\nSee the [selecting fields](/global-api/selecting-fields) page for more information.",
        "explode": false,
        "schema": {
          "$ref": "#/components/schemas/Inventory_API_v1_location-profile-slotting-rule-relationship-fields-enum"
        }
      },
      "Inventory_API_v1_slotting-rule-filter": {
        "name": "filter",
        "in": "query",
        "description": "Using the [filtering syntax](/global-api/filtering-syntax), filter results by:\n  - `id`\n  - `name`\n  - `relation`\n  - `strength`\n  - `priority`\n  - `product_profile_match_mode`\n  - `location_profile_id`\n  - `has_conflicts`",
        "required": false,
        "style": "form",
        "explode": true,
        "schema": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "allowReserved": true,
        "examples": {
          "Conflicting hard Rules": {
            "summary": "List conflicting Require or Forbid Rules.",
            "value": [
              "relation{in:[\"require\",\"forbid\"]}",
              "has_conflicts:true"
            ]
          },
          "Rules by Location Profile": {
            "summary": "List Rules targeting Location Profile 26.",
            "value": [
              "location_profile_id:26"
            ]
          }
        }
      },
      "Inventory_API_v1_product-type": {
        "name": "type",
        "description": "This field determines which types of products will be matched. Regular SKUs belonging to a single merchant\nare known as \"normal\" products, while the other types are pertaining to [Packaging Features](https://help.shipstream.io/article/cxyprn6ysa-packaging-features). \nFor read-only operations, you may also specify one of the following meta-types which represent multiple individual types:\n\n- `any` returns all types\n- `stockable` returns only types that can be managed with inventory (all except `data_collection` and `instructions`)\n- `packaging` returns all types except for `normal`",
        "required": true,
        "in": "path",
        "schema": {
          "type": "string",
          "enum": [
            "any",
            "normal",
            "stockable",
            "packaging",
            "containers",
            "supplies",
            "data_collection",
            "instructions",
            "infill"
          ]
        }
      },
      "Inventory_API_v1_product-fields": {
        "name": "fields",
        "in": "query",
        "required": false,
        "description": "Specify additional fields of the `Product` or `Packaging` object to be included in the response.\nSee the [selecting fields](/global-api/selecting-fields) page for more information.",
        "explode": false,
        "schema": {
          "$ref": "#/components/schemas/Inventory_API_v1_product-packaging-fields-enum"
        }
      },
      "Inventory_API_v1_fields-merchant": {
        "name": "fields:merchant",
        "in": "query",
        "required": false,
        "description": "Specify additional fields of the `Merchant` object to be included in the response. See the [selecting fields](/global-api/selecting-fields) page for more information.",
        "explode": false,
        "schema": {
          "$ref": "#/components/schemas/Inventory_API_v1_merchant-fields-enum"
        }
      },
      "Inventory_API_v1_fields-merchant-brands": {
        "name": "fields:merchant.brands",
        "in": "query",
        "required": false,
        "description": "Specify additional fields of the `Brand` object to be included in the response. See the [selecting fields](/global-api/selecting-fields) page for more information.",
        "explode": false,
        "schema": {
          "$ref": "#/components/schemas/Inventory_API_v1_brand-fields-enum"
        }
      },
      "Inventory_API_v1_fields-merchant-default_brand": {
        "name": "fields:merchant.default_brand",
        "in": "query",
        "required": false,
        "description": "Specify additional fields of the `Brand` object to be included in the response. See the [selecting fields](/global-api/selecting-fields) page for more information.",
        "explode": false,
        "schema": {
          "$ref": "#/components/schemas/Inventory_API_v1_brand-fields-enum"
        }
      },
      "Inventory_API_v1_fields-lot_type": {
        "name": "fields:lot_type",
        "in": "query",
        "required": false,
        "description": "Specify additional fields of the `LotType` object to be included in the response. See the [selecting fields](/global-api/selecting-fields) page for more information.",
        "explode": false,
        "schema": {
          "$ref": "#/components/schemas/Inventory_API_v1_lot_type-fields-enum"
        }
      },
      "Inventory_API_v1_product-filter": {
        "name": "filter",
        "in": "query",
        "description": "Using the [filtering syntax](/global-api/filtering-syntax), you may filter the results using the following fields:\n  - `id`\n  - `name`\n  - `is_enabled`",
        "style": "form",
        "explode": true,
        "schema": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "required": false,
        "allowReserved": true,
        "examples": {
          "Simple": {
            "summary": "Get list of Products that are enabled.",
            "value": [
              "is_enabled:true"
            ]
          },
          "Advanced": {
            "summary": "Get list of Products where `sku` starts with \"ABC\"",
            "value": [
              "sku{start:\"ABC\"}"
            ]
          },
          "Advanced with AND logic": {
            "summary": "Get list of Products where `id` is between 15 and 50",
            "value": [
              "id{gt:15,lt:50}"
            ]
          },
          "Advanced with OR logic": {
            "summary": "Get list of Products where `name` ends with \"CASE\" or starts with \"Box of\"",
            "value": [
              "name[{end:\"CASE\"},{start:\"Box of\"}]"
            ]
          }
        }
      },
      "Inventory_API_v1_product-profile-fields": {
        "name": "fields",
        "in": "query",
        "required": false,
        "description": "Select fields of the `ProductProfile` object. See the\n[selecting fields](/global-api/selecting-fields) page for more information.",
        "explode": false,
        "schema": {
          "$ref": "#/components/schemas/Inventory_API_v1_product-profile-fields-enum"
        }
      },
      "Inventory_API_v1_product-profile-filter": {
        "name": "filter",
        "in": "query",
        "description": "Using the [filtering syntax](/global-api/filtering-syntax), you may filter the results using the following fields:\n  - `id`\n  - `code`\n  - `name`",
        "style": "form",
        "explode": true,
        "allowReserved": true,
        "required": false,
        "schema": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "examples": {
          "By code": {
            "summary": "Find the Product Profile with a specific stable code.",
            "value": [
              "code:lightweight_parcel"
            ]
          },
          "By name prefix": {
            "summary": "Find Product Profiles whose names start with \"Lightweight\".",
            "value": [
              "name{start:\"Lightweight\"}"
            ]
          }
        }
      },
      "Inventory_API_v1_product-profile-member-fields": {
        "name": "fields",
        "in": "query",
        "required": false,
        "description": "Specify additional fields of the member `Product` objects to include in the response.\nSee the [selecting fields](/global-api/selecting-fields) page for more information.",
        "explode": false,
        "schema": {
          "$ref": "#/components/schemas/Inventory_API_v1_product-profile-member-fields-enum"
        }
      },
      "Inventory_API_v1_handling-class-fields": {
        "name": "fields",
        "in": "query",
        "required": false,
        "description": "Select fields of the `HandlingClass` object. See the\n[selecting fields](/global-api/selecting-fields) page for more information.",
        "explode": false,
        "schema": {
          "$ref": "#/components/schemas/Inventory_API_v1_handling-class-fields-enum"
        }
      },
      "Inventory_API_v1_fields-handling-class-warehouses": {
        "name": "fields:warehouses",
        "in": "query",
        "required": false,
        "description": "Specify fields of the referenced `Warehouse` objects to include under `included.Warehouse`. `type` and `id` are always returned. See the [selecting fields](/global-api/selecting-fields) page for more information.",
        "explode": false,
        "schema": {
          "$ref": "#/components/schemas/Inventory_API_v1_warehouse-fields-enum"
        }
      },
      "Inventory_API_v1_fields-handling-class-referenced-product-profiles": {
        "name": "fields:referenced_product_profiles",
        "in": "query",
        "required": false,
        "description": "Specify fields of the referenced `ProductProfile` objects to include under `included.ProductProfile`. `type` and `id` are always returned. See the [selecting fields](/global-api/selecting-fields) page for more information.",
        "explode": false,
        "schema": {
          "$ref": "#/components/schemas/Inventory_API_v1_product-profile-relationship-fields-enum"
        }
      },
      "Inventory_API_v1_handling-class-filter": {
        "name": "filter",
        "in": "query",
        "description": "Using the [filtering syntax](/global-api/filtering-syntax), you may filter the results using:\n  - `id`\n  - `code`\n  - `name`\n  - `warehouse_id`\n  - `sort_order`\n\n`warehouse_id` supports `eq`, `in`, `neq`, and `nin`. Negative filters exclude a Handling\nClass if it is assigned to any of the specified Warehouses.",
        "style": "form",
        "explode": true,
        "allowReserved": true,
        "required": false,
        "schema": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "examples": {
          "By code": {
            "summary": "Find the Handling Class with a stable code.",
            "value": [
              "code:heavy_bulky"
            ]
          },
          "By Warehouse": {
            "summary": "Find Handling Classes assigned to Warehouse 1.",
            "value": [
              "warehouse_id:1"
            ]
          },
          "Exclude Warehouses": {
            "summary": "Exclude classes assigned to Warehouses 2 or 3.",
            "value": [
              "warehouse_id{nin:[2,3]}"
            ]
          }
        }
      },
      "Inventory_API_v1_fields-warehouse": {
        "name": "fields:warehouse",
        "in": "query",
        "required": false,
        "description": "Specify additional fields of the `Warehouse` object to be included in the response. See the [selecting fields](/global-api/selecting-fields) page for more information.",
        "explode": false,
        "schema": {
          "$ref": "#/components/schemas/Inventory_API_v1_warehouse-fields-enum"
        }
      },
      "Inventory_API_v1_location-tag-fields": {
        "name": "fields",
        "in": "query",
        "required": false,
        "description": "Specify additional fields of the `LocationTag` object to be included in the response.\nSee the [selecting fields](/global-api/selecting-fields) page for more information.",
        "explode": false,
        "schema": {
          "$ref": "#/components/schemas/Inventory_API_v1_location-tag-fields-enum"
        }
      },
      "Inventory_API_v1_slot_type-fields": {
        "name": "fields",
        "in": "query",
        "required": false,
        "description": "Specify additional fields of the `SlotType` object to be included in the response.\nSee the [selecting fields](/global-api/selecting-fields) page for more information.",
        "explode": false,
        "schema": {
          "$ref": "#/components/schemas/Inventory_API_v1_slot_type-fields-enum"
        }
      },
      "Inventory_API_v1_hold-reason-fields": {
        "name": "fields",
        "in": "query",
        "required": false,
        "description": "Specify additional fields of the `HoldReason` object to be included in the response.\nSee the [selecting fields](/global-api/selecting-fields) page for more information.",
        "explode": false,
        "schema": {
          "$ref": "#/components/schemas/Inventory_API_v1_hold-reason-fields-enum"
        }
      },
      "Inventory_API_v1_fields-parent": {
        "name": "fields:parent",
        "in": "query",
        "required": false,
        "description": "Specify additional fields of the parent `HoldReason` object to be included in the response. See the [selecting fields](/global-api/selecting-fields) page for more information.",
        "explode": false,
        "schema": {
          "$ref": "#/components/schemas/Inventory_API_v1_hold-reason-fields-enum"
        }
      },
      "Inventory_API_v1_fields-location": {
        "name": "fields:location",
        "in": "query",
        "required": false,
        "description": "Specify additional fields of the `Location` object to be included in the response. See the [selecting fields](/global-api/selecting-fields) page for more information.",
        "explode": false,
        "schema": {
          "$ref": "#/components/schemas/Inventory_API_v1_location-fields-enum"
        }
      },
      "Inventory_API_v1_fields-held_by": {
        "name": "fields:held_by",
        "in": "query",
        "required": false,
        "description": "Specify additional fields of the `Requester` object (the entity that placed the hold) to be included in the response. See the [selecting fields](/global-api/selecting-fields) page for more information.",
        "explode": false,
        "schema": {
          "type": "array",
          "items": {
            "type": "string",
            "enum": [
              "all"
            ]
          }
        }
      },
      "Inventory_API_v1_fields-released_by": {
        "name": "fields:released_by",
        "in": "query",
        "required": false,
        "description": "Specify additional fields of the `Requester` object (the entity that released the hold) to be included in the response. See the [selecting fields](/global-api/selecting-fields) page for more information.",
        "explode": false,
        "schema": {
          "type": "array",
          "items": {
            "type": "string",
            "enum": [
              "all"
            ]
          }
        }
      },
      "Receiving_API_v1_delivery-type": {
        "in": "path",
        "name": "type",
        "required": true,
        "schema": {
          "type": "string",
          "enum": [
            "asn",
            "rma",
            "other"
          ]
        },
        "description": "Specify the delivery type to which your operations will be restricted."
      },
      "Receiving_API_v1_delivery-fields": {
        "name": "fields",
        "in": "query",
        "required": false,
        "description": "Specify additional fields of the `ASN` OR `RMA` object to be included in the response.\nSee the [selecting fields](/global-api/selecting-fields) page for more information.",
        "explode": false,
        "schema": {
          "$ref": "#/components/schemas/Receiving_API_v1_delivery-fields-enum"
        }
      },
      "Receiving_API_v1_fields-merchant": {
        "name": "fields:merchant",
        "in": "query",
        "required": false,
        "description": "Specify additional fields of the `Merchant` object to be included in the response. See the [selecting fields](/global-api/selecting-fields) page for more information.",
        "explode": false,
        "schema": {
          "$ref": "#/components/schemas/Receiving_API_v1_merchant-fields-enum"
        }
      },
      "Receiving_API_v1_fields-warehouse": {
        "name": "fields:warehouse",
        "in": "query",
        "required": false,
        "description": "Specify additional fields of the `Warehouse` object to be included in the response. See the [selecting fields](/global-api/selecting-fields) page for more information.",
        "explode": false,
        "schema": {
          "$ref": "#/components/schemas/Receiving_API_v1_warehouse-fields-enum"
        }
      },
      "Receiving_API_v1_fields-status_history": {
        "name": "fields:status_history",
        "in": "query",
        "required": false,
        "description": "Specify additional fields of the `DeliveryStatusHistory` object to be included in the response. See the [selecting fields](/global-api/selecting-fields) page for more information.",
        "explode": false,
        "schema": {
          "$ref": "#/components/schemas/Receiving_API_v1_status_history-fields-enum"
        }
      },
      "Receiving_API_v1_fields-delivery-items": {
        "name": "fields:items",
        "in": "query",
        "required": false,
        "description": "Specify additional fields of the `DeliveryItem` objects to be included in the response. See the [selecting fields](/global-api/selecting-fields) page for more information.",
        "explode": false,
        "schema": {
          "$ref": "#/components/schemas/Receiving_API_v1_delivery-item-fields-enum"
        }
      },
      "Receiving_API_v1_fields-items-product": {
        "name": "fields:items.product",
        "in": "query",
        "required": false,
        "description": "Specify additional fields of the `Product` or `Packaging*` object to be included in the response. See the [selecting fields](/global-api/selecting-fields) page for more information.",
        "explode": false,
        "schema": {
          "$ref": "#/components/schemas/Receiving_API_v1_product-packaging-fields-enum"
        }
      },
      "Receiving_API_v1_fields-delivery-items-exceptions": {
        "name": "fields:items.exceptions",
        "in": "query",
        "required": false,
        "description": "Specify additional fields of the `DeliveryException` objects nested under items to be included in the response. See the [selecting fields](/global-api/selecting-fields) page for more information.",
        "explode": false,
        "schema": {
          "$ref": "#/components/schemas/Receiving_API_v1_delivery-exception-fields-enum"
        }
      },
      "Receiving_API_v1_fields-delivery-items-lots": {
        "name": "fields:items.lots",
        "in": "query",
        "required": false,
        "description": "Specify additional fields of the `DeliveryItemLot` objects nested under items to be included in the response. See the [selecting fields](/global-api/selecting-fields) page for more information.",
        "explode": false,
        "schema": {
          "$ref": "#/components/schemas/Receiving_API_v1_delivery-item-lot-fields-enum"
        }
      },
      "Receiving_API_v1_fields-delivery-items-locations": {
        "name": "fields:items.locations",
        "in": "query",
        "required": false,
        "description": "Specify additional fields of the `DeliveryItemLocation` objects nested under items to be included in the response. See the [selecting fields](/global-api/selecting-fields) page for more information.",
        "explode": false,
        "schema": {
          "$ref": "#/components/schemas/Receiving_API_v1_delivery-item-location-fields-enum"
        }
      },
      "Receiving_API_v1_fields-delivery-containers": {
        "name": "fields:containers",
        "in": "query",
        "required": false,
        "description": "Specify additional fields of the `DeliveryContainer` objects to be included in the response. See the [selecting fields](/global-api/selecting-fields) page for more information.",
        "explode": false,
        "schema": {
          "$ref": "#/components/schemas/Receiving_API_v1_delivery-container-fields-enum"
        }
      },
      "Receiving_API_v1_fields-containers-container_type": {
        "name": "fields:containers.container_type",
        "in": "query",
        "required": false,
        "description": "Specify additional fields of the `DeliveryContainerType` object to be included in the response. See the [selecting fields](/global-api/selecting-fields) page for more information.",
        "explode": false,
        "schema": {
          "$ref": "#/components/schemas/Receiving_API_v1_delivery-container-type-fields-enum"
        }
      },
      "Receiving_API_v1_delivery-filter": {
        "name": "filter",
        "in": "query",
        "description": "Using the [filtering syntax](/global-api/filtering-syntax), you may filter the results using the following fields:\n  - `id`\n  - `name`\n  - `state`\n  - `status`\n  - `tracking_numbers`",
        "style": "form",
        "explode": true,
        "schema": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "required": false,
        "allowReserved": true
      },
      "Receiving_API_v1_count": {
        "name": "count",
        "in": "query",
        "description": "If specified as `1`, the `meta.count` property of the response will be present and populated with the total count of items\nmatching the query before any paging is applied. This is not included by default to improve performance in some edge\ncases and is not required to perform paging using the `next` property of the response.\nSee [paging parameters](/global-api/paging-parameters) for more information.",
        "style": "form",
        "schema": {
          "type": "integer",
          "minimum": 0,
          "maximum": 1
        }
      },
      "Receiving_API_v1_cursor_end": {
        "name": "cursor_end",
        "in": "query",
        "description": "A cursor for use in pagination which defines the last `id` of the next page of results, non-inclusive.\nSee [paging parameters](/global-api/paging-parameters) for more information on paging.",
        "schema": {
          "type": "integer"
        },
        "style": "form"
      },
      "Receiving_API_v1_cursor_start": {
        "name": "cursor_start",
        "in": "query",
        "description": "A cursor for use in pagination which defines the starting `id` of the next page of results.\nSee [paging parameters](/global-api/paging-parameters) for more information on paging.",
        "schema": {
          "type": "integer"
        },
        "style": "form"
      },
      "Receiving_API_v1_limit": {
        "name": "limit",
        "in": "query",
        "description": "A limit on the number of objects to be returned.",
        "style": "form",
        "schema": {
          "type": "integer",
          "example": 100,
          "default": 100,
          "minimum": 1,
          "maximum": 1000
        }
      },
      "Shipping_API_v1_shipment-fields": {
        "name": "fields",
        "in": "query",
        "required": false,
        "description": "Specify additional fields of the `Shipment` object to be included in the response.\nSee the [selecting fields](/global-api/selecting-fields) page for more information.",
        "explode": false,
        "schema": {
          "$ref": "#/components/schemas/Shipping_API_v1_shipment-fields-enum"
        }
      },
      "Shipping_API_v1_shipment-items-fields": {
        "name": "fields:items",
        "in": "query",
        "required": false,
        "description": "Specify additional fields of the `ShipmentItem` object to be included in the response. See the [selecting fields](/global-api/selecting-fields) page for more information.",
        "explode": false,
        "schema": {
          "$ref": "#/components/schemas/Shipping_API_v1_shipment-item-fields-enum"
        }
      },
      "Shipping_API_v1_shipment-items-product-fields": {
        "name": "fields:items.product",
        "in": "query",
        "required": false,
        "description": "Specify additional fields of the `Product` objects to be included in the response. See the [selecting fields](/global-api/selecting-fields) page for more information.",
        "explode": false,
        "schema": {
          "$ref": "#/components/schemas/Shipping_API_v1_product-packaging-fields-enum"
        }
      },
      "Shipping_API_v1_fields-items-order_item": {
        "name": "fields:items.order_item",
        "in": "query",
        "required": false,
        "description": "Specify additional fields of the `OrderItem` object to be included in the response. See the [selecting fields](/global-api/selecting-fields) page for more information.",
        "explode": false,
        "schema": {
          "$ref": "#/components/schemas/Shipping_API_v1_items-order_item-fields-enum"
        }
      },
      "Shipping_API_v1_fields-order": {
        "name": "fields:order",
        "in": "query",
        "required": false,
        "description": "Specify additional fields of the `Order` object to be included in the response. See the [selecting fields](/global-api/selecting-fields) page for more information.",
        "explode": false,
        "schema": {
          "$ref": "#/components/schemas/Shipping_API_v1_order-fields-enum"
        }
      },
      "Shipping_API_v1_fields-order-items": {
        "name": "fields:order.items",
        "in": "query",
        "required": false,
        "description": "Specify additional fields of the `OrderItem` object to be included in the response. See the [selecting fields](/global-api/selecting-fields) page for more information.",
        "explode": false,
        "schema": {
          "$ref": "#/components/schemas/Shipping_API_v1_order-item-fields-enum"
        }
      },
      "Shipping_API_v1_fields-order-shipments": {
        "name": "fields:order.shipments",
        "in": "query",
        "required": false,
        "description": "Specify additional fields of the `Shipment` object to be included in the response. See the [selecting fields](/global-api/selecting-fields) page for more information.",
        "explode": false,
        "schema": {
          "$ref": "#/components/schemas/Shipping_API_v1_shipment-fields-enum"
        }
      },
      "Shipping_API_v1_fields-order-merchant": {
        "name": "fields:order.merchant",
        "in": "query",
        "required": false,
        "description": "Specify additional fields of the `Merchant` object to be included in the response. See the [selecting fields](/global-api/selecting-fields) page for more information.",
        "explode": false,
        "schema": {
          "$ref": "#/components/schemas/Shipping_API_v1_merchant-fields-enum"
        }
      },
      "Shipping_API_v1_fields-order-brand": {
        "name": "fields:order.brand",
        "in": "query",
        "required": false,
        "description": "Specify additional fields of the `Brand` object to be included in the response. See the [selecting fields](/global-api/selecting-fields) page for more information.",
        "explode": false,
        "schema": {
          "$ref": "#/components/schemas/Shipping_API_v1_brand-fields-enum"
        }
      },
      "Shipping_API_v1_fields-order-shipping_address": {
        "name": "fields:order.shipping_address",
        "in": "query",
        "required": false,
        "description": "Specify additional fields of the `OrderAddress` object to be included in the response. See the [selecting fields](/global-api/selecting-fields) page for more information.",
        "explode": false,
        "schema": {
          "$ref": "#/components/schemas/Shipping_API_v1_order-address-fields-enum"
        }
      },
      "Shipping_API_v1_fields-order-status_history": {
        "name": "fields:order.status_history",
        "in": "query",
        "required": false,
        "description": "Specify additional fields of the `OrderStatusHistory` object to be included in the response. See the [selecting fields](/global-api/selecting-fields) page for more information.",
        "explode": false,
        "schema": {
          "$ref": "#/components/schemas/Shipping_API_v1_order-status_history-fields-enum"
        }
      },
      "Shipping_API_v1_fields-order-original_address": {
        "name": "fields:order.original_address",
        "in": "query",
        "required": false,
        "description": "Specify additional fields of the `OrderAddress` object (original address) to be included in the response. See the [selecting fields](/global-api/selecting-fields) page for more information.",
        "explode": false,
        "schema": {
          "$ref": "#/components/schemas/Shipping_API_v1_order-address-fields-enum"
        }
      },
      "Shipping_API_v1_fields-order-address_candidates": {
        "name": "fields:order.address_candidates",
        "in": "query",
        "required": false,
        "description": "Specify additional fields of the `OrderAddressCandidate` objects to be included in the response. See the [selecting fields](/global-api/selecting-fields) page for more information.",
        "explode": false,
        "schema": {
          "$ref": "#/components/schemas/Shipping_API_v1_order-address_candidate-fields-enum"
        }
      },
      "Shipping_API_v1_fields-order-instructions": {
        "name": "fields:order.instructions",
        "in": "query",
        "required": false,
        "description": "Specify additional fields of the `OrderInstruction` objects to be included in the response. See the [selecting fields](/global-api/selecting-fields) page for more information.",
        "explode": false,
        "schema": {
          "$ref": "#/components/schemas/Shipping_API_v1_order-instruction-fields-enum"
        }
      },
      "Shipping_API_v1_fields-order-tpb_group": {
        "name": "fields:order.tpb_group",
        "in": "query",
        "required": false,
        "description": "Specify additional fields of the `ThirdPartyBillingGroup` object (via the order relationship) to be included in the response. See the [selecting fields](/global-api/selecting-fields) page for more information.",
        "explode": false,
        "schema": {
          "$ref": "#/components/schemas/Shipping_API_v1_tpb-group-fields-enum"
        }
      },
      "Shipping_API_v1_fields-warehouse": {
        "name": "fields:warehouse",
        "in": "query",
        "required": false,
        "description": "Specify additional fields of the `Warehouse` object to be included in the response. See the [selecting fields](/global-api/selecting-fields) page for more information.",
        "explode": false,
        "schema": {
          "$ref": "#/components/schemas/Shipping_API_v1_warehouse-fields-enum"
        }
      },
      "Shipping_API_v1_fields-packages": {
        "name": "fields:packages",
        "in": "query",
        "required": false,
        "description": "Specify additional fields of the `ShipmentPackage` object to be included in the response. See the [selecting fields](/global-api/selecting-fields) page for more information.",
        "explode": false,
        "schema": {
          "$ref": "#/components/schemas/Shipping_API_v1_shipment-package-fields-enum"
        }
      },
      "Shipping_API_v1_fields-gallery": {
        "name": "fields:gallery",
        "in": "query",
        "required": false,
        "description": "Specify additional fields of the `Gallery` object to be included in the response. See the [selecting fields](/global-api/selecting-fields) page for more information.",
        "explode": false,
        "schema": {
          "$ref": "#/components/schemas/Shipping_API_v1_gallery-fields-enum"
        }
      },
      "Shipping_API_v1_fields-gallery-items": {
        "name": "fields:gallery.items",
        "in": "query",
        "required": false,
        "description": "Specify additional fields of the `GalleryItem` object to be included in the response. See the [selecting fields](/global-api/selecting-fields) page for more information.",
        "explode": false,
        "schema": {
          "$ref": "#/components/schemas/Shipping_API_v1_gallery-item-fields-enum"
        }
      },
      "Shipping_API_v1_fields-packages-gallery": {
        "name": "fields:packages.gallery",
        "in": "query",
        "required": false,
        "description": "Specify additional fields of the `Gallery` object to be included in the response. See the [selecting fields](/global-api/selecting-fields) page for more information.",
        "explode": false,
        "schema": {
          "$ref": "#/components/schemas/Shipping_API_v1_gallery-fields-enum"
        }
      },
      "Shipping_API_v1_fields-packages-items": {
        "name": "fields:packages.items",
        "in": "query",
        "required": false,
        "description": "Specify additional fields of the `ShipmentPackageItem` object to be included in the response. See the [selecting fields](/global-api/selecting-fields) page for more information.",
        "explode": false,
        "schema": {
          "$ref": "#/components/schemas/Shipping_API_v1_packages-items-fields-enum"
        }
      },
      "Shipping_API_v1_fields-packing_solution": {
        "name": "fields:packing_solution",
        "in": "query",
        "required": false,
        "description": "Specify additional fields of the `ShipmentPackingSolution` object to be included in the response. See the [selecting fields](/global-api/selecting-fields) page for more information.",
        "explode": false,
        "schema": {
          "$ref": "#/components/schemas/Shipping_API_v1_packing_solutions-fields-enum"
        }
      },
      "Shipping_API_v1_fields-retailer": {
        "name": "fields:retailer",
        "in": "query",
        "required": false,
        "description": "Specify additional fields of the `Retailer` object to be included in the response. See the [selecting fields](/global-api/selecting-fields) page for more information.",
        "explode": false,
        "schema": {
          "$ref": "#/components/schemas/Shipping_API_v1_retailer-fields-enum"
        }
      },
      "Shipping_API_v1_fields-retailer_ship_to_location": {
        "name": "fields:retailer_ship_to_location",
        "in": "query",
        "required": false,
        "description": "Specify additional fields of the `RetailerShipToLocation` object to be included in the response. See the [selecting fields](/global-api/selecting-fields) page for more information.",
        "explode": false,
        "schema": {
          "$ref": "#/components/schemas/Shipping_API_v1_retailer-ship-to-location-fields-enum"
        }
      },
      "Shipping_API_v1_fields-shipment-retailer.parent_retailer": {
        "name": "fields:retailer.parent_retailer",
        "in": "query",
        "required": false,
        "description": "Specify additional fields of the nested parent `Retailer` of the parent Retailer. See the [selecting fields](/global-api/selecting-fields) page for more information.",
        "explode": false,
        "schema": {
          "$ref": "#/components/schemas/Shipping_API_v1_retailer-fields-enum"
        }
      },
      "Shipping_API_v1_fields-shipment-retailer_ship_to_location.retailer": {
        "name": "fields:retailer_ship_to_location.retailer",
        "in": "query",
        "required": false,
        "description": "Specify additional fields of the nested `Retailer` of the parent RetailerShipToLocation. See the [selecting fields](/global-api/selecting-fields) page for more information.",
        "explode": false,
        "schema": {
          "$ref": "#/components/schemas/Shipping_API_v1_retailer-fields-enum"
        }
      },
      "Shipping_API_v1_fields-shipment-order.retailer": {
        "name": "fields:order.retailer",
        "in": "query",
        "required": false,
        "description": "Specify additional fields of the nested `Retailer` of the parent `Order`. See the [selecting fields](/global-api/selecting-fields) page for more information.",
        "explode": false,
        "schema": {
          "$ref": "#/components/schemas/Shipping_API_v1_retailer-fields-enum"
        }
      },
      "Shipping_API_v1_fields-shipment-order.retailer_ship_to_location": {
        "name": "fields:order.retailer_ship_to_location",
        "in": "query",
        "required": false,
        "description": "Specify additional fields of the nested `RetailerShipToLocation` of the parent `Order`. See the [selecting fields](/global-api/selecting-fields) page for more information.",
        "explode": false,
        "schema": {
          "$ref": "#/components/schemas/Shipping_API_v1_retailer-ship-to-location-fields-enum"
        }
      },
      "Shipping_API_v1_count": {
        "name": "count",
        "in": "query",
        "description": "If specified as `1`, the `meta.count` property of the response will be present and populated with the total count of items\nmatching the query before any paging is applied. This is not included by default to improve performance in some edge\ncases and is not required to perform paging using the `next` property of the response.\nSee [paging parameters](/global-api/paging-parameters) for more information.",
        "style": "form",
        "schema": {
          "type": "integer",
          "minimum": 0,
          "maximum": 1
        }
      },
      "Shipping_API_v1_cursor_end": {
        "name": "cursor_end",
        "in": "query",
        "description": "A cursor for use in pagination which defines the last `id` of the next page of results, non-inclusive.\nSee [paging parameters](/global-api/paging-parameters) for more information on paging.",
        "schema": {
          "type": "integer"
        },
        "style": "form"
      },
      "Shipping_API_v1_cursor_start": {
        "name": "cursor_start",
        "in": "query",
        "description": "A cursor for use in pagination which defines the starting `id` of the next page of results.\nSee [paging parameters](/global-api/paging-parameters) for more information on paging.",
        "schema": {
          "type": "integer"
        },
        "style": "form"
      },
      "Shipping_API_v1_limit": {
        "name": "limit",
        "in": "query",
        "description": "A limit on the number of objects to be returned.",
        "style": "form",
        "schema": {
          "type": "integer",
          "example": 100,
          "default": 100,
          "minimum": 1,
          "maximum": 1000
        }
      },
      "Shipping_API_v1_shipment-reservation-sort": {
        "name": "sort",
        "in": "query",
        "description": "The default sort order is **descending** by primary key (`sort=-id`).\n\nUsing the [sorting syntax](/global-api/sorting-syntax), the following fields are available for sorting:\n  - `id`\n  - `quantity`\n  - `qty_picked`",
        "schema": {
          "type": "string",
          "pattern": "^-?\\w+(,-?\\w+)*$"
        },
        "allowReserved": true,
        "examples": {
          "Sort by location label": {
            "summary": "Sort by location label",
            "value": "location_label"
          },
          "Sort by quantity reserved (descending)": {
            "summary": "Sort by quantity reserved (descending)",
            "value": "-quantity"
          }
        }
      },
      "Shipping_API_v1_shipment-reservation-filter": {
        "name": "filter",
        "in": "query",
        "description": "Using the [filtering syntax](/global-api/filtering-syntax), you may filter the results using the following fields:\n  - `id`\n  - `location_id`\n  - `product_id`\n  - `qty`\n  - `qty_picked`\n  - `is_locked`",
        "style": "form",
        "explode": true,
        "schema": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "required": false,
        "allowReserved": true,
        "examples": {
          "Filter by location": {
            "summary": "Filter by location ID",
            "value": [
              "location_id:123"
            ]
          },
          "Filter by locked status": {
            "summary": "Filter by locked reservations",
            "value": [
              "is_locked:true"
            ]
          }
        }
      },
      "Shipping_API_v1_shipment-item-fields": {
        "name": "fields:item",
        "in": "query",
        "required": false,
        "description": "Specify additional fields of the `ShipmentItem` object to be included in the response. See the [selecting fields](/global-api/selecting-fields) page for more information.",
        "explode": false,
        "schema": {
          "$ref": "#/components/schemas/Shipping_API_v1_shipment-item-fields-enum"
        }
      },
      "Shipping_API_v1_shipment-item-product-fields": {
        "name": "fields:item.product",
        "in": "query",
        "required": false,
        "description": "Specify additional fields of the `Product` objects to be included in the response. See the [selecting fields](/global-api/selecting-fields) page for more information.",
        "explode": false,
        "schema": {
          "$ref": "#/components/schemas/Shipping_API_v1_product-packaging-fields-enum"
        }
      },
      "Shipping_API_v1_fields-item-order_item": {
        "name": "fields:item.order_item",
        "in": "query",
        "required": false,
        "description": "Specify additional fields of the `OrderItem` object to be included in the response. See the [selecting fields](/global-api/selecting-fields) page for more information.",
        "explode": false,
        "schema": {
          "$ref": "#/components/schemas/Shipping_API_v1_items-order_item-fields-enum"
        }
      },
      "Shipping_API_v1_fields-location": {
        "name": "fields:location",
        "in": "query",
        "required": false,
        "description": "Specify additional fields of the `Location` object to be included in the response. See the [selecting fields](/global-api/selecting-fields) page for more information.",
        "explode": false,
        "schema": {
          "$ref": "#/components/schemas/Shipping_API_v1_location-fields-enum"
        }
      },
      "Shipping_API_v1_fields-location-lot": {
        "name": "fields:location.lot",
        "in": "query",
        "required": false,
        "description": "Specify additional fields of the `Lot` object to be included in the response. See the [selecting fields](/global-api/selecting-fields) page for more information.",
        "explode": false,
        "schema": {
          "$ref": "#/components/schemas/Shipping_API_v1_lot-fields-enum"
        }
      },
      "Shipping_API_v1_fields-location-slot_type": {
        "name": "fields:location.slot_type",
        "in": "query",
        "required": false,
        "description": "Specify additional fields of the `SlotType` object (via Location) to be included in the response. See the [selecting fields](/global-api/selecting-fields) page for more information.",
        "explode": false,
        "schema": {
          "$ref": "#/components/schemas/Shipping_API_v1_slot_type-fields-enum"
        }
      },
      "Shipping_API_v1_fields-location-product": {
        "name": "fields:location.product",
        "in": "query",
        "required": false,
        "description": "Specify additional fields of the `Product` object (via Location) to be included in the response. See the [selecting fields](/global-api/selecting-fields) page for more information.",
        "explode": false,
        "schema": {
          "$ref": "#/components/schemas/Shipping_API_v1_product-packaging-fields-enum"
        }
      },
      "Shipping_API_v1_fields-location-rack": {
        "name": "fields:location.rack",
        "in": "query",
        "required": false,
        "description": "Specify additional fields of the `Rack` object (via Location) to be included in the response. See the [selecting fields](/global-api/selecting-fields) page for more information.",
        "explode": false,
        "schema": {
          "$ref": "#/components/schemas/Shipping_API_v1_rack-fields-enum"
        }
      },
      "Shipping_API_v1_order-fields": {
        "name": "fields",
        "in": "query",
        "required": false,
        "description": "Specify additional fields of the `Order` object to be included in the response.\nSee the [selecting fields](/global-api/selecting-fields) page for more information.",
        "explode": false,
        "schema": {
          "$ref": "#/components/schemas/Shipping_API_v1_order-fields-enum"
        }
      },
      "Shipping_API_v1_fields-items": {
        "name": "fields:items",
        "in": "query",
        "required": false,
        "description": "Specify additional fields of the `OrderItem` objects to be included in the response. See the [selecting fields](/global-api/selecting-fields) page for more information.",
        "explode": false,
        "schema": {
          "$ref": "#/components/schemas/Shipping_API_v1_order-item-fields-enum"
        }
      },
      "Shipping_API_v1_fields-shipments": {
        "name": "fields:shipments",
        "in": "query",
        "required": false,
        "description": "Specify additional fields of the `Shipment` objects to be included in the response. See the [selecting fields](/global-api/selecting-fields) page for more information.",
        "explode": false,
        "schema": {
          "$ref": "#/components/schemas/Shipping_API_v1_shipment-fields-enum"
        }
      },
      "Shipping_API_v1_fields-shipments-warehouse": {
        "name": "fields:shipments.warehouse",
        "in": "query",
        "required": false,
        "description": "Specify additional fields of the `Warehouse` object to be included in the response. See the [selecting fields](/global-api/selecting-fields) page for more information.",
        "explode": false,
        "schema": {
          "$ref": "#/components/schemas/Shipping_API_v1_warehouse-fields-enum"
        }
      },
      "Shipping_API_v1_fields-shipments-order": {
        "name": "fields:shipments.order",
        "in": "query",
        "required": false,
        "description": "Specify additional fields of the `Order` object to be included in the response. See the [selecting fields](/global-api/selecting-fields) page for more information.",
        "explode": false,
        "schema": {
          "$ref": "#/components/schemas/Shipping_API_v1_order-fields-enum"
        }
      },
      "Shipping_API_v1_fields-shipments-items": {
        "name": "fields:shipments.items",
        "in": "query",
        "required": false,
        "description": "Specify additional fields of the `ShipmentItem` objects to be included in the response. See the [selecting fields](/global-api/selecting-fields) page for more information.",
        "explode": false,
        "schema": {
          "$ref": "#/components/schemas/Shipping_API_v1_shipment-item-fields-enum"
        }
      },
      "Shipping_API_v1_fields-shipments-packages": {
        "name": "fields:shipments.packages",
        "in": "query",
        "required": false,
        "description": "Specify additional fields of the `ShipmentPackage` objects to be included in the response. See the [selecting fields](/global-api/selecting-fields) page for more information.",
        "explode": false,
        "schema": {
          "$ref": "#/components/schemas/Shipping_API_v1_shipment-package-fields-enum"
        }
      },
      "Shipping_API_v1_fields-shipments-packing_solution": {
        "name": "fields:shipments.packing_solution",
        "in": "query",
        "required": false,
        "description": "Specify additional fields of the `ShipmentPackingSolution` object to be included in the response. See the [selecting fields](/global-api/selecting-fields) page for more information.",
        "explode": false,
        "schema": {
          "$ref": "#/components/schemas/Shipping_API_v1_packing_solutions-fields-enum"
        }
      },
      "Shipping_API_v1_fields-shipments-gallery": {
        "name": "fields:shipments.gallery",
        "in": "query",
        "required": false,
        "description": "Specify additional fields of the `Gallery` object to be included in the response. See the [selecting fields](/global-api/selecting-fields) page for more information.",
        "explode": false,
        "schema": {
          "$ref": "#/components/schemas/Shipping_API_v1_gallery-fields-enum"
        }
      },
      "Shipping_API_v1_fields-merchant": {
        "name": "fields:merchant",
        "in": "query",
        "required": false,
        "description": "Specify additional fields of the `Merchant` object to be included in the response. See the [selecting fields](/global-api/selecting-fields) page for more information.",
        "explode": false,
        "schema": {
          "$ref": "#/components/schemas/Shipping_API_v1_merchant-fields-enum"
        }
      },
      "Shipping_API_v1_fields-merchant-brands": {
        "name": "fields:merchant.brands",
        "in": "query",
        "required": false,
        "description": "Specify additional fields of the `Brand` object to be included in the response. See the [selecting fields](/global-api/selecting-fields) page for more information.",
        "explode": false,
        "schema": {
          "$ref": "#/components/schemas/Shipping_API_v1_brand-fields-enum"
        }
      },
      "Shipping_API_v1_fields-merchant-default_brand": {
        "name": "fields:merchant.default_brand",
        "in": "query",
        "required": false,
        "description": "Specify additional fields of the `Brand` object to be included in the response. See the [selecting fields](/global-api/selecting-fields) page for more information.",
        "explode": false,
        "schema": {
          "$ref": "#/components/schemas/Shipping_API_v1_brand-fields-enum"
        }
      },
      "Shipping_API_v1_fields-brand": {
        "name": "fields:brand",
        "in": "query",
        "required": false,
        "description": "Specify additional fields of the `Brand` object to be included in the response. See the [selecting fields](/global-api/selecting-fields) page for more information.",
        "explode": false,
        "schema": {
          "$ref": "#/components/schemas/Shipping_API_v1_brand-fields-enum"
        }
      },
      "Shipping_API_v1_fields-shipping_address": {
        "name": "fields:shipping_address",
        "in": "query",
        "required": false,
        "description": "Specify additional fields of the `OrderAddress` object (shipping address) to be included in the response. See the [selecting fields](/global-api/selecting-fields) page for more information.",
        "explode": false,
        "schema": {
          "$ref": "#/components/schemas/Shipping_API_v1_order-address-fields-enum"
        }
      },
      "Shipping_API_v1_fields-order_status_history": {
        "name": "fields:status_history",
        "in": "query",
        "required": false,
        "description": "Specify additional fields of the `OrderStatusHistory` objects to be included in the response. See the [selecting fields](/global-api/selecting-fields) page for more information.",
        "explode": false,
        "schema": {
          "$ref": "#/components/schemas/Shipping_API_v1_order-status_history-fields-enum"
        }
      },
      "Shipping_API_v1_fields-original_address": {
        "name": "fields:original_address",
        "in": "query",
        "required": false,
        "description": "Specify additional fields of the `OrderAddress` object (original address) to be included in the response. See the [selecting fields](/global-api/selecting-fields) page for more information.",
        "explode": false,
        "schema": {
          "$ref": "#/components/schemas/Shipping_API_v1_order-address-fields-enum"
        }
      },
      "Shipping_API_v1_fields-address_candidates": {
        "name": "fields:address_candidates",
        "in": "query",
        "required": false,
        "description": "Specify additional fields of the `OrderAddressCandidate` objects to be included in the response. See the [selecting fields](/global-api/selecting-fields) page for more information.",
        "explode": false,
        "schema": {
          "$ref": "#/components/schemas/Shipping_API_v1_order-address_candidate-fields-enum"
        }
      },
      "Shipping_API_v1_fields-instructions": {
        "name": "fields:instructions",
        "in": "query",
        "required": false,
        "description": "Specify additional fields of the `OrderInstruction` objects to be included in the response. See the [selecting fields](/global-api/selecting-fields) page for more information.",
        "explode": false,
        "schema": {
          "$ref": "#/components/schemas/Shipping_API_v1_order-instruction-fields-enum"
        }
      },
      "Shipping_API_v1_fields-tpb_group": {
        "name": "fields:tpb_group",
        "in": "query",
        "required": false,
        "description": "Specify additional fields of the `ThirdPartyBillingGroup` object to be included in the response. See the [selecting fields](/global-api/selecting-fields) page for more information.",
        "explode": false,
        "schema": {
          "$ref": "#/components/schemas/Shipping_API_v1_tpb-group-fields-enum"
        }
      },
      "Shipping_API_v1_fields-order-retailer.parent_retailer": {
        "name": "fields:retailer.parent_retailer",
        "in": "query",
        "required": false,
        "description": "Specify additional fields of the nested parent `Retailer` of the parent Retailer. See the [selecting fields](/global-api/selecting-fields) page for more information.",
        "explode": false,
        "schema": {
          "$ref": "#/components/schemas/Shipping_API_v1_retailer-fields-enum"
        }
      },
      "Shipping_API_v1_fields-order-retailer_ship_to_location.retailer": {
        "name": "fields:retailer_ship_to_location.retailer",
        "in": "query",
        "required": false,
        "description": "Specify additional fields of the nested `Retailer` of the parent RetailerShipToLocation. See the [selecting fields](/global-api/selecting-fields) page for more information.",
        "explode": false,
        "schema": {
          "$ref": "#/components/schemas/Shipping_API_v1_retailer-fields-enum"
        }
      },
      "Shipping_API_v1_fields-order-shipments.retailer": {
        "name": "fields:shipments.retailer",
        "in": "query",
        "required": false,
        "description": "Specify additional fields of the nested `Retailer` of each `Shipment`. See the [selecting fields](/global-api/selecting-fields) page for more information.",
        "explode": false,
        "schema": {
          "$ref": "#/components/schemas/Shipping_API_v1_retailer-fields-enum"
        }
      },
      "Shipping_API_v1_fields-order-shipments.retailer_ship_to_location": {
        "name": "fields:shipments.retailer_ship_to_location",
        "in": "query",
        "required": false,
        "description": "Specify additional fields of the nested `RetailerShipToLocation` of each `Shipment`. See the [selecting fields](/global-api/selecting-fields) page for more information.",
        "explode": false,
        "schema": {
          "$ref": "#/components/schemas/Shipping_API_v1_retailer-ship-to-location-fields-enum"
        }
      },
      "Shipping_API_v1_retailer-fields": {
        "name": "fields",
        "in": "query",
        "required": false,
        "description": "Specify additional fields of the `Retailer` object to be included in the response.\nSee the [selecting fields](/global-api/selecting-fields) page for more information.",
        "explode": false,
        "schema": {
          "$ref": "#/components/schemas/Shipping_API_v1_retailer-fields-enum"
        }
      },
      "Shipping_API_v1_fields-retailer-parent_retailer": {
        "name": "fields:parent_retailer",
        "in": "query",
        "required": false,
        "description": "Specify additional fields of the parent `Retailer` object to be included in the response. See the [selecting fields](/global-api/selecting-fields) page for more information.",
        "explode": false,
        "schema": {
          "$ref": "#/components/schemas/Shipping_API_v1_retailer-fields-enum"
        }
      },
      "Shipping_API_v1_retailer-identifier-fields": {
        "name": "fields",
        "in": "query",
        "required": false,
        "description": "Specify additional fields of the `RetailerIdentifier` object to be included in the response.\nSee the [selecting fields](/global-api/selecting-fields) page for more information.",
        "explode": false,
        "schema": {
          "$ref": "#/components/schemas/Shipping_API_v1_retailer-identifier-fields-enum"
        }
      },
      "Shipping_API_v1_fields-retailer_identifier-retailer": {
        "name": "fields:retailer",
        "in": "query",
        "required": false,
        "description": "Specify additional fields of the parent `Retailer` object to be included in the response. See the [selecting fields](/global-api/selecting-fields) page for more information.",
        "explode": false,
        "schema": {
          "$ref": "#/components/schemas/Shipping_API_v1_retailer-fields-enum"
        }
      },
      "Shipping_API_v1_retailer-merchant-setting-fields": {
        "name": "fields",
        "in": "query",
        "required": false,
        "description": "Specify additional fields of the `RetailerMerchantSetting` object to be included in the response.\nSee the [selecting fields](/global-api/selecting-fields) page for more information.",
        "explode": false,
        "schema": {
          "$ref": "#/components/schemas/Shipping_API_v1_retailer-merchant-setting-fields-enum"
        }
      },
      "Shipping_API_v1_fields-retailer_merchant_setting-retailer": {
        "name": "fields:retailer",
        "in": "query",
        "required": false,
        "description": "Specify additional fields of the parent `Retailer` object to be included in the response. See the [selecting fields](/global-api/selecting-fields) page for more information.",
        "explode": false,
        "schema": {
          "$ref": "#/components/schemas/Shipping_API_v1_retailer-fields-enum"
        }
      },
      "Shipping_API_v1_retailer-ship-to-location-fields": {
        "name": "fields",
        "in": "query",
        "required": false,
        "description": "Specify additional fields of the `RetailerShipToLocation` object to be included in the response.\nSee the [selecting fields](/global-api/selecting-fields) page for more information.",
        "explode": false,
        "schema": {
          "$ref": "#/components/schemas/Shipping_API_v1_retailer-ship-to-location-fields-enum"
        }
      },
      "Shipping_API_v1_fields-retailer_ship_to_location-retailer": {
        "name": "fields:retailer",
        "in": "query",
        "required": false,
        "description": "Specify additional fields of the parent `Retailer` object to be included in the response. See the [selecting fields](/global-api/selecting-fields) page for more information.",
        "explode": false,
        "schema": {
          "$ref": "#/components/schemas/Shipping_API_v1_retailer-fields-enum"
        }
      },
      "Shipping_API_v1_retailer-routing-guide-fields": {
        "name": "fields",
        "in": "query",
        "required": false,
        "description": "Specify additional fields of the `RetailerRoutingGuide` object to be included in the response.\nSee the [selecting fields](/global-api/selecting-fields) page for more information.",
        "explode": false,
        "schema": {
          "$ref": "#/components/schemas/Shipping_API_v1_retailer-routing-guide-fields-enum"
        }
      },
      "Shipping_API_v1_fields-retailer_routing_guide-retailer": {
        "name": "fields:retailer",
        "in": "query",
        "required": false,
        "description": "Specify additional fields of the parent `Retailer` object to be included in the response. See the [selecting fields](/global-api/selecting-fields) page for more information.",
        "explode": false,
        "schema": {
          "$ref": "#/components/schemas/Shipping_API_v1_retailer-fields-enum"
        }
      },
      "Shipping_API_v1_fields-retailer_routing_guide-uploaded_by": {
        "name": "fields:uploaded_by",
        "in": "query",
        "required": false,
        "description": "Specify additional fields of the `Requester` object (the entity that uploaded the routing guide) to be included in the response. See the [selecting fields](/global-api/selecting-fields) page for more information.",
        "explode": false,
        "schema": {
          "type": "array",
          "items": {
            "type": "string",
            "enum": [
              "all"
            ]
          }
        }
      },
      "System_API_v1_merchant-fields": {
        "name": "fields",
        "in": "query",
        "required": false,
        "description": "Specify additional fields of the `Merchant` object to be included in the response.\nSee the [selecting fields](/global-api/selecting-fields) page for more information.",
        "explode": false,
        "schema": {
          "$ref": "#/components/schemas/System_API_v1_merchant-fields-enum"
        }
      },
      "System_API_v1_fields-brands": {
        "name": "fields:brands",
        "in": "query",
        "required": false,
        "description": "Specify additional fields of the `Brand` object to be included in the response. See the [selecting fields](/global-api/selecting-fields) page for more information.",
        "explode": false,
        "schema": {
          "$ref": "#/components/schemas/System_API_v1_brand-fields-enum"
        }
      },
      "System_API_v1_fields-default_brand": {
        "name": "fields:default_brand",
        "in": "query",
        "required": false,
        "description": "Specify additional fields of the `Brand` object to be included in the response. See the [selecting fields](/global-api/selecting-fields) page for more information.",
        "explode": false,
        "schema": {
          "$ref": "#/components/schemas/System_API_v1_brand-fields-enum"
        }
      },
      "System_API_v1_count": {
        "name": "count",
        "in": "query",
        "description": "If specified as `1`, the `meta.count` property of the response will be present and populated with the total count of items\nmatching the query before any paging is applied. This is not included by default to improve performance in some edge\ncases and is not required to perform paging using the `next` property of the response.\nSee [paging parameters](/global-api/paging-parameters) for more information.",
        "style": "form",
        "schema": {
          "type": "integer",
          "minimum": 0,
          "maximum": 1
        }
      },
      "System_API_v1_cursor_end": {
        "name": "cursor_end",
        "in": "query",
        "description": "A cursor for use in pagination which defines the last `id` of the next page of results, non-inclusive.\nSee [paging parameters](/global-api/paging-parameters) for more information on paging.",
        "schema": {
          "type": "integer"
        },
        "style": "form"
      },
      "System_API_v1_cursor_start": {
        "name": "cursor_start",
        "in": "query",
        "description": "A cursor for use in pagination which defines the starting `id` of the next page of results.\nSee [paging parameters](/global-api/paging-parameters) for more information on paging.",
        "schema": {
          "type": "integer"
        },
        "style": "form"
      },
      "System_API_v1_limit": {
        "name": "limit",
        "in": "query",
        "description": "A limit on the number of objects to be returned.",
        "style": "form",
        "schema": {
          "type": "integer",
          "example": 100,
          "default": 100,
          "minimum": 1,
          "maximum": 1000
        }
      },
      "System_API_v1_user-type": {
        "name": "type",
        "in": "path",
        "required": true,
        "description": "Specify the user type to which your operations will be restricted.",
        "schema": {
          "type": "string",
          "enum": [
            "any",
            "organization",
            "client"
          ]
        }
      },
      "System_API_v1_user-fields": {
        "name": "fields",
        "in": "query",
        "required": false,
        "description": "Specify additional fields of the `OrganizationUser` or `ClientUser` objects to be included in the response.\nSee the [selecting fields](/global-api/selecting-fields) page for more information.",
        "explode": false,
        "schema": {
          "$ref": "#/components/schemas/System_API_v1_user-fields-enum"
        }
      },
      "System_API_v1_fields-roles": {
        "name": "fields:roles",
        "in": "query",
        "required": false,
        "description": "Specify additional fields of the `OrganizationRole` or `ClientRole` object to be included in the response. See the [selecting fields](/global-api/selecting-fields) page for more information.",
        "explode": false,
        "schema": {
          "type": "array",
          "items": {
            "type": "string",
            "enum": [
              "all"
            ]
          }
        }
      },
      "System_API_v1_fields-default_warehouse": {
        "name": "fields:default_warehouse",
        "in": "query",
        "required": false,
        "description": "Specify additional fields of the `Warehouse` object to be included in the response. See the [selecting fields](/global-api/selecting-fields) page for more information.",
        "explode": false,
        "schema": {
          "$ref": "#/components/schemas/System_API_v1_warehouse-fields-enum"
        }
      },
      "System_API_v1_fields-warehouse": {
        "name": "fields:warehouse",
        "in": "query",
        "required": false,
        "description": "Specify additional fields of the `Warehouse` object to be included in the response. See the [selecting fields](/global-api/selecting-fields) page for more information.",
        "explode": false,
        "schema": {
          "$ref": "#/components/schemas/System_API_v1_warehouse-fields-enum"
        }
      },
      "System_API_v1_fields-merchant": {
        "name": "fields:merchant",
        "in": "query",
        "required": false,
        "description": "Specify additional fields of the `Merchant` object to be included in the response. See the [selecting fields](/global-api/selecting-fields) page for more information.",
        "explode": false,
        "schema": {
          "$ref": "#/components/schemas/System_API_v1_merchant-fields-enum"
        }
      }
    },
    "responses": {
      "Inventory_API_v1_400-bad-request": {
        "description": "The request was invalid. The client must change the request. See the response body for more details.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "errors": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "type": {
                        "type": "string",
                        "description": "The error type code.",
                        "enum": [
                          "parser",
                          "parameters",
                          "openapi"
                        ]
                      },
                      "message": {
                        "type": "string",
                        "description": "An English sentence describing the error type."
                      },
                      "details": {
                        "type": "array",
                        "description": "An array of objects describing which keys are responsible for the error and detailed messages describing why they are not valid.",
                        "items": {
                          "type": "object",
                          "properties": {
                            "key": {
                              "type": "string",
                              "description": "The path to the key which relates to the error."
                            },
                            "message": {
                              "type": "string",
                              "description": "An English sentence describing the details of the error."
                            }
                          },
                          "additionalProperties": false
                        }
                      }
                    },
                    "additionalProperties": false
                  },
                  "minItems": 1
                }
              },
              "additionalProperties": false
            },
            "example": {
              "errors": [
                {
                  "type": "parameters",
                  "message": "The supplied parameters are invalid."
                }
              ]
            }
          }
        }
      },
      "Inventory_API_v1_422-unprocessable": {
        "description": "There was an error processing the request. See the response body for more details.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "errors": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "type": {
                        "type": "string",
                        "description": "The error type code.",
                        "enum": [
                          "application",
                          "unable_to_process"
                        ]
                      },
                      "message": {
                        "type": "string",
                        "description": "An English sentence describing the error type."
                      },
                      "details": {
                        "type": "array",
                        "description": "An array of objects describing which keys are responsible for the error and detailed messages describing why they are not valid.",
                        "items": {
                          "type": "object",
                          "properties": {
                            "key": {
                              "type": "string",
                              "description": "The path to the key which relates to the error."
                            },
                            "message": {
                              "type": "string",
                              "description": "An English sentence describing the details of the error."
                            }
                          },
                          "additionalProperties": false
                        }
                      }
                    },
                    "additionalProperties": false
                  },
                  "minItems": 1
                }
              },
              "additionalProperties": false
            },
            "example": {
              "errors": [
                {
                  "type": "unable_to_process",
                  "message": "There was an error processing the request."
                }
              ]
            }
          }
        }
      },
      "Inventory_API_v1_500-internal-server-error": {
        "description": "Internal Server Error - Something wrong happened at server side. Contact server administrator for more details."
      },
      "Inventory_API_v1_201-created-single": {
        "description": "Created - The resource was created successfully.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "resource": {
                  "type": "object",
                  "description": "An object describing the resource that was created.",
                  "properties": {
                    "type": {
                      "type": "string",
                      "description": "A resource type identifier."
                    },
                    "id": {
                      "type": "number",
                      "format": "int32",
                      "example": 1,
                      "description": "The primary key ID of the resource created."
                    }
                  }
                },
                "meta": {
                  "type": "object",
                  "properties": {
                    "processing_time": {
                      "type": "number",
                      "description": "Total time in which request is processed and response is sent back.",
                      "format": "float"
                    }
                  }
                }
              },
              "additionalProperties": false
            }
          }
        }
      },
      "Inventory_API_v1_404-not-found": {
        "description": "The requested resource was not found. It may have been deleted, it may have never existed, or you may not have permission to view it.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "errors": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "type": {
                        "type": "string",
                        "description": "The error type code.",
                        "enum": [
                          "not_found"
                        ]
                      },
                      "message": {
                        "type": "string",
                        "description": "An English sentence describing the error type."
                      },
                      "details": {
                        "type": "array",
                        "description": "An array of objects describing which keys are responsible for the error and detailed messages describing why they are not valid.",
                        "items": {
                          "type": "object",
                          "properties": {
                            "key": {
                              "type": "string",
                              "description": "The path to the key which relates to the error."
                            },
                            "message": {
                              "type": "string",
                              "description": "An English sentence describing the details of the error."
                            }
                          },
                          "additionalProperties": false
                        }
                      }
                    },
                    "additionalProperties": false
                  },
                  "minItems": 1
                }
              },
              "additionalProperties": false
            },
            "example": {
              "errors": [
                {
                  "type": "not_found",
                  "message": "The server could not find the requested resource."
                }
              ]
            }
          }
        }
      },
      "Inventory_API_v1_200-ok-no-body": {
        "description": "OK - The operation completed successfully and there is no response body."
      },
      "Inventory_API_v1_202-accepted-no-body": {
        "description": "Accepted - The request was accepted and membership is being materialized. There is no\nresponse body. For a new profile, poll until `status` is `ready`. For an update or rebuild,\nsuccessful publication is complete when `pending_revision` becomes `null`; a failed\nreplacement remains present there with a `failed` status."
      },
      "Inventory_API_v1_400-product-profile-bad-request": {
        "description": "The Product Profile request was invalid and must be corrected.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Inventory_API_v1_BadRequest"
            },
            "example": {
              "errors": [
                {
                  "type": "parameters",
                  "message": "The supplied parameters are invalid."
                }
              ]
            }
          }
        }
      },
      "Inventory_API_v1_422-product-profile-unprocessable": {
        "description": "The Product Profile could not be saved or deleted.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Inventory_API_v1_Unprocessable"
            },
            "example": {
              "errors": [
                {
                  "type": "unable_to_process",
                  "message": "Unknown condition field \"unknown_field\"."
                }
              ]
            }
          }
        }
      },
      "Inventory_API_v1_422-product-profile-delete-unprocessable": {
        "description": "The Product Profile could not be deleted because it is in use or another reference changed during deletion.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Inventory_API_v1_Unprocessable"
            },
            "examples": {
              "in_use": {
                "summary": "The Product Profile is used by other configuration.",
                "value": {
                  "errors": [
                    {
                      "type": "unable_to_process",
                      "message": "The Product Profile is still in use and cannot be deleted.",
                      "details": [
                        {
                          "key": "used_by.slotting_rules",
                          "message": "1"
                        },
                        {
                          "key": "used_by.replenishment_policies",
                          "message": "0"
                        },
                        {
                          "key": "used_by.handling_classes",
                          "message": "1"
                        }
                      ]
                    }
                  ]
                }
              },
              "reference_changed": {
                "summary": "A reference changed while the delete was being processed.",
                "value": {
                  "errors": [
                    {
                      "type": "unable_to_process",
                      "message": "Cannot delete a Product Profile that is still referenced elsewhere; please retry."
                    }
                  ]
                }
              }
            }
          }
        }
      },
      "Receiving_API_v1_400-bad-request": {
        "description": "The request was invalid. The client must change the request. See the response body for more details.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "errors": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "type": {
                        "type": "string",
                        "description": "The error type code.",
                        "enum": [
                          "parser",
                          "parameters",
                          "openapi"
                        ]
                      },
                      "message": {
                        "type": "string",
                        "description": "An English sentence describing the error type."
                      },
                      "details": {
                        "type": "array",
                        "description": "An array of objects describing which keys are responsible for the error and detailed messages describing why they are not valid.",
                        "items": {
                          "type": "object",
                          "properties": {
                            "key": {
                              "type": "string",
                              "description": "The path to the key which relates to the error."
                            },
                            "message": {
                              "type": "string",
                              "description": "An English sentence describing the details of the error."
                            }
                          },
                          "additionalProperties": false
                        }
                      }
                    },
                    "additionalProperties": false
                  },
                  "minItems": 1
                }
              },
              "additionalProperties": false
            },
            "example": {
              "errors": [
                {
                  "type": "parameters",
                  "message": "The supplied parameters are invalid."
                }
              ]
            }
          }
        }
      },
      "Receiving_API_v1_500-internal-server-error": {
        "description": "Internal Server Error - Something wrong happened at server side. Contact server administrator for more details."
      },
      "Receiving_API_v1_404-not-found": {
        "description": "The requested resource was not found. It may have been deleted, it may have never existed, or you may not have permission to view it.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "errors": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "type": {
                        "type": "string",
                        "description": "The error type code.",
                        "enum": [
                          "not_found"
                        ]
                      },
                      "message": {
                        "type": "string",
                        "description": "An English sentence describing the error type."
                      },
                      "details": {
                        "type": "array",
                        "description": "An array of objects describing which keys are responsible for the error and detailed messages describing why they are not valid.",
                        "items": {
                          "type": "object",
                          "properties": {
                            "key": {
                              "type": "string",
                              "description": "The path to the key which relates to the error."
                            },
                            "message": {
                              "type": "string",
                              "description": "An English sentence describing the details of the error."
                            }
                          },
                          "additionalProperties": false
                        }
                      }
                    },
                    "additionalProperties": false
                  },
                  "minItems": 1
                }
              },
              "additionalProperties": false
            },
            "example": {
              "errors": [
                {
                  "type": "not_found",
                  "message": "The server could not find the requested resource."
                }
              ]
            }
          }
        }
      },
      "Shipping_API_v1_400-bad-request": {
        "description": "The request was invalid. The client must change the request. See the response body for more details.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "errors": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "type": {
                        "type": "string",
                        "description": "The error type code.",
                        "enum": [
                          "parser",
                          "parameters",
                          "openapi"
                        ]
                      },
                      "message": {
                        "type": "string",
                        "description": "An English sentence describing the error type."
                      },
                      "details": {
                        "type": "array",
                        "description": "An array of objects describing which keys are responsible for the error and detailed messages describing why they are not valid.",
                        "items": {
                          "type": "object",
                          "properties": {
                            "key": {
                              "type": "string",
                              "description": "The path to the key which relates to the error."
                            },
                            "message": {
                              "type": "string",
                              "description": "An English sentence describing the details of the error."
                            }
                          },
                          "additionalProperties": false
                        }
                      }
                    },
                    "additionalProperties": false
                  },
                  "minItems": 1
                }
              },
              "additionalProperties": false
            },
            "example": {
              "errors": [
                {
                  "type": "parameters",
                  "message": "The supplied parameters are invalid."
                }
              ]
            }
          }
        }
      },
      "Shipping_API_v1_422-unprocessable": {
        "description": "There was an error processing the request. See the response body for more details.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "errors": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "type": {
                        "type": "string",
                        "description": "The error type code.",
                        "enum": [
                          "application",
                          "unable_to_process"
                        ]
                      },
                      "message": {
                        "type": "string",
                        "description": "An English sentence describing the error type."
                      },
                      "details": {
                        "type": "array",
                        "description": "An array of objects describing which keys are responsible for the error and detailed messages describing why they are not valid.",
                        "items": {
                          "type": "object",
                          "properties": {
                            "key": {
                              "type": "string",
                              "description": "The path to the key which relates to the error."
                            },
                            "message": {
                              "type": "string",
                              "description": "An English sentence describing the details of the error."
                            }
                          },
                          "additionalProperties": false
                        }
                      }
                    },
                    "additionalProperties": false
                  },
                  "minItems": 1
                }
              },
              "additionalProperties": false
            },
            "example": {
              "errors": [
                {
                  "type": "unable_to_process",
                  "message": "There was an error processing the request."
                }
              ]
            }
          }
        }
      },
      "Shipping_API_v1_500-internal-server-error": {
        "description": "Internal Server Error - Something wrong happened at server side. Contact server administrator for more details."
      },
      "Shipping_API_v1_404-not-found": {
        "description": "The requested resource was not found. It may have been deleted, it may have never existed, or you may not have permission to view it.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "errors": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "type": {
                        "type": "string",
                        "description": "The error type code.",
                        "enum": [
                          "not_found"
                        ]
                      },
                      "message": {
                        "type": "string",
                        "description": "An English sentence describing the error type."
                      },
                      "details": {
                        "type": "array",
                        "description": "An array of objects describing which keys are responsible for the error and detailed messages describing why they are not valid.",
                        "items": {
                          "type": "object",
                          "properties": {
                            "key": {
                              "type": "string",
                              "description": "The path to the key which relates to the error."
                            },
                            "message": {
                              "type": "string",
                              "description": "An English sentence describing the details of the error."
                            }
                          },
                          "additionalProperties": false
                        }
                      }
                    },
                    "additionalProperties": false
                  },
                  "minItems": 1
                }
              },
              "additionalProperties": false
            },
            "example": {
              "errors": [
                {
                  "type": "not_found",
                  "message": "The server could not find the requested resource."
                }
              ]
            }
          }
        }
      },
      "Shipping_API_v1_200-ok-no-body": {
        "description": "OK - The operation completed successfully and there is no response body."
      },
      "Shipping_API_v1_405-method-not-allowed": {
        "description": "The HTTP method is not supported for this endpoint.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "errors": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "type": {
                        "type": "string",
                        "description": "The error type code.",
                        "enum": [
                          "method_not_allowed"
                        ]
                      },
                      "message": {
                        "type": "string",
                        "description": "An English sentence describing the error type including the allowed methods."
                      },
                      "details": {
                        "type": "array",
                        "description": "An array of objects describing the error in more detail.",
                        "items": {
                          "type": "object",
                          "properties": {
                            "key": {
                              "type": "string",
                              "description": "The path to the key which relates to the error."
                            },
                            "message": {
                              "type": "string",
                              "description": "An English sentence describing the details of the error."
                            }
                          },
                          "additionalProperties": false
                        }
                      }
                    },
                    "additionalProperties": false
                  },
                  "minItems": 1
                }
              },
              "additionalProperties": false
            },
            "example": {
              "errors": [
                {
                  "type": "method_not_allowed",
                  "message": "Method not allowed. Must be one of: POST",
                  "details": [
                    {
                      "key": "",
                      "message": "The request method is not supported for the requested resource."
                    }
                  ]
                }
              ]
            }
          }
        }
      },
      "Shipping_API_v1_201-created-single": {
        "description": "Created - The resource was created successfully.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "resource": {
                  "type": "object",
                  "description": "An object describing the resource that was created.",
                  "properties": {
                    "type": {
                      "type": "string",
                      "description": "A resource type identifier."
                    },
                    "id": {
                      "type": "number",
                      "format": "int32",
                      "example": 1,
                      "description": "The primary key ID of the resource created."
                    }
                  }
                },
                "meta": {
                  "type": "object",
                  "properties": {
                    "processing_time": {
                      "type": "number",
                      "description": "Total time in which request is processed and response is sent back.",
                      "format": "float"
                    }
                  }
                }
              },
              "additionalProperties": false
            }
          }
        }
      },
      "System_API_v1_400-bad-request": {
        "description": "The request was invalid. The client must change the request. See the response body for more details.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "errors": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "type": {
                        "type": "string",
                        "description": "The error type code.",
                        "enum": [
                          "parser",
                          "parameters",
                          "openapi"
                        ]
                      },
                      "message": {
                        "type": "string",
                        "description": "An English sentence describing the error type."
                      },
                      "details": {
                        "type": "array",
                        "description": "An array of objects describing which keys are responsible for the error and detailed messages describing why they are not valid.",
                        "items": {
                          "type": "object",
                          "properties": {
                            "key": {
                              "type": "string",
                              "description": "The path to the key which relates to the error."
                            },
                            "message": {
                              "type": "string",
                              "description": "An English sentence describing the details of the error."
                            }
                          },
                          "additionalProperties": false
                        }
                      }
                    },
                    "additionalProperties": false
                  },
                  "minItems": 1
                }
              },
              "additionalProperties": false
            },
            "example": {
              "errors": [
                {
                  "type": "parameters",
                  "message": "The supplied parameters are invalid."
                }
              ]
            }
          }
        }
      },
      "System_API_v1_422-unprocessable": {
        "description": "There was an error processing the request. See the response body for more details.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "errors": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "type": {
                        "type": "string",
                        "description": "The error type code.",
                        "enum": [
                          "application",
                          "unable_to_process"
                        ]
                      },
                      "message": {
                        "type": "string",
                        "description": "An English sentence describing the error type."
                      },
                      "details": {
                        "type": "array",
                        "description": "An array of objects describing which keys are responsible for the error and detailed messages describing why they are not valid.",
                        "items": {
                          "type": "object",
                          "properties": {
                            "key": {
                              "type": "string",
                              "description": "The path to the key which relates to the error."
                            },
                            "message": {
                              "type": "string",
                              "description": "An English sentence describing the details of the error."
                            }
                          },
                          "additionalProperties": false
                        }
                      }
                    },
                    "additionalProperties": false
                  },
                  "minItems": 1
                }
              },
              "additionalProperties": false
            },
            "example": {
              "errors": [
                {
                  "type": "unable_to_process",
                  "message": "There was an error processing the request."
                }
              ]
            }
          }
        }
      },
      "System_API_v1_500-internal-server-error": {
        "description": "Internal Server Error - Something wrong happened at server side. Contact server administrator for more details."
      },
      "System_API_v1_404-not-found": {
        "description": "The requested resource was not found. It may have been deleted, it may have never existed, or you may not have permission to view it.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "errors": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "type": {
                        "type": "string",
                        "description": "The error type code.",
                        "enum": [
                          "not_found"
                        ]
                      },
                      "message": {
                        "type": "string",
                        "description": "An English sentence describing the error type."
                      },
                      "details": {
                        "type": "array",
                        "description": "An array of objects describing which keys are responsible for the error and detailed messages describing why they are not valid.",
                        "items": {
                          "type": "object",
                          "properties": {
                            "key": {
                              "type": "string",
                              "description": "The path to the key which relates to the error."
                            },
                            "message": {
                              "type": "string",
                              "description": "An English sentence describing the details of the error."
                            }
                          },
                          "additionalProperties": false
                        }
                      }
                    },
                    "additionalProperties": false
                  },
                  "minItems": 1
                }
              },
              "additionalProperties": false
            },
            "example": {
              "errors": [
                {
                  "type": "not_found",
                  "message": "The server could not find the requested resource."
                }
              ]
            }
          }
        }
      },
      "System_API_v1_200-ok-no-body": {
        "description": "OK - The operation completed successfully and there is no response body."
      }
    }
  },
  "x-tagGroups": [
    {
      "name": "Inventory API v1",
      "tags": [
        "Warehouses",
        "Products",
        "ProductProfiles",
        "HandlingClasses",
        "Locations",
        "LocationTags",
        "SlotTypes",
        "Levels",
        "HoldReasons",
        "Holds",
        "Replenishment",
        "LocationProfiles",
        "SlottingRules"
      ]
    },
    {
      "name": "Receiving API v1",
      "tags": [
        "Deliveries"
      ]
    },
    {
      "name": "Shipping API v1",
      "tags": [
        "Shipments",
        "Orders",
        "Retailers"
      ]
    },
    {
      "name": "System API v1",
      "tags": [
        "Users",
        "User Roles",
        "Merchants",
        "Healthcheck"
      ]
    }
  ],
  "security": [
    {
      "ShipStream_bearerAuth": []
    }
  ]
}