Add a substitute product to a product. Substitutes are alternative products that can
fulfill the same demand — useful when the primary product is out of stock or unavailable.
Each substitution links the primary product to a single substitute product and an
optional priority. Priority controls the order substitutes are considered (lower numbers
are tried first). Call this endpoint once per substitute product you want to attach.
The response returns the created substitution record, including the embedded substitute
product. The id field on the response is the substitution row’s ID — use it with the
DELETE endpoint to remove the substitution later.
Optional ordering hint. Lower numbers indicate higher priority (tried first).
If omitted (or null), the substitute is appended after the product's existing
substitutes (priority = current highest priority + 1, starting at 1).
Embedded substitute product. Always present on responses from the substitutions
endpoints (the substitute product is eager-loaded server-side).
Show child attributes
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Luminous API Documentation","colors":{"primary":"#7787FF","light":"#abb6fc","dark":"#5266e5"},"logo":{"light":"https://mintcdn.com/luminous-2ace3a9f/M8Q_jpCZcjsbRx58/logo/light.svg?fit=max\u0026auto=format\u0026n=M8Q_jpCZcjsbRx58\u0026q=85\u0026s=d932f2bcd17b4ecf6a0315882a7cf660","dark":"https://mintcdn.com/luminous-2ace3a9f/M8Q_jpCZcjsbRx58/logo/dark.svg?fit=max\u0026auto=format\u0026n=M8Q_jpCZcjsbRx58\u0026q=85\u0026s=f00840868e02fb26313b648757ebdf75"},"favicon":"https://mintcdn.com/luminous-2ace3a9f/M8Q_jpCZcjsbRx58/favicon.svg?fit=max\u0026auto=format\u0026n=M8Q_jpCZcjsbRx58\u0026q=85\u0026s=7b5cbde9d8373a43ec8f3a20e147df5c","navbar":{"links":[{"href":"mailto:developers@joinluminous.com","label":"Support"}]},"footer":{"socials":{"linkedin":"https://www.linkedin.com/company/joinluminous"}},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"luminous-2ace3a9f","hasAudioNarration":false,"actualSubdomain":"luminous-2ace3a9f","customDomains":["docs.joinluminous.com"],"gitSource":{"type":"github","owner":"luminousinventory","repo":"apidocs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6aecc8514df1cfa6996a00a4","collectionId":"e2f80b14-3d1c-481a-965a-8d97fc51aa70","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6aecc8514df1cfa6996a00a4"},"feedback":{"issues":false,"thumbs":false},"entitlements":{},"buildId":"6aed2af570058998cb8332f1","clientVersion":"0.0.4071","searchFilterCounts":[{"language":"default","tag":"API Reference","count":693},{"language":"default","tag":"Sales \u0026 Fulfillment","count":156},{"language":"default","tag":"Manufacturing","count":101},{"language":"default","tag":"Configuration","count":73},{"language":"default","tag":"Accounts Payable","count":57},{"language":"default","tag":"Products \u0026 Catalog","count":54},{"language":"default","tag":"Purchasing","count":51},{"language":"default","tag":"Companies \u0026 Contacts","count":46},{"language":"default","tag":"Inventory \u0026 Warehousing","count":46},{"language":"default","tag":"Integrations","count":41}]},"assistantConfig":{},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"comment-mode","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"api-reference/products/add-product-substitution","slug":"/api-reference/products/add-product-substitution","pageMetadata":{"title":"Add product substitution","description":"Add a substitute product to a product. Substitutes are alternative products that can\nfulfill the same demand — useful when the primary product is out of stock or unavailable.\n\nEach substitution links the primary product to a single substitute product and an\noptional priority. Priority controls the order substitutes are considered (lower numbers\nare tried first). Call this endpoint once per substitute product you want to attach.\n\nThe response returns the created substitution record, including the embedded substitute\nproduct. The `id` field on the response is the substitution row's ID — use it with the\nDELETE endpoint to remove the substitution later.\n","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /products/{productId}/substitutions","href":"/api-reference/products/add-product-substitution","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.p, {\n children: \"Add a substitute product to a product. Substitutes are alternative products that can\\nfulfill the same demand — useful when the primary product is out of stock or unavailable.\"\n }), \"\\n\", _jsx(_components.p, {\n children: \"Each substitution links the primary product to a single substitute product and an\\noptional priority. Priority controls the order substitutes are considered (lower numbers\\nare tried first). Call this endpoint once per substitute product you want to attach.\"\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"The response returns the created substitution record, including the embedded substitute\\nproduct. The \", _jsx(_components.code, {\n children: \"id\"\n }), \" field on the response is the substitution row’s ID — use it with the\\nDELETE endpoint to remove the substitution later.\"]\n })]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Add product substitution","description":"Add a substitute product to a product. Substitutes are alternative products that can\nfulfill the same demand — useful when the primary product is out of stock or unavailable.\n\nEach substitution links the primary product to a single substitute product and an\noptional priority. Priority controls the order substitutes are considered (lower numbers\nare tried first). Call this endpoint once per substitute product you want to attach.\n\nThe response returns the created substitution record, including the embedded substitute\nproduct. The `id` field on the response is the substitution row's ID — use it with the\nDELETE endpoint to remove the substitution later.\n","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /products/{productId}/substitutions","href":"/api-reference/products/add-product-substitution","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":["/_mintlify/custom/luminous-2ace3a9f/203a59868a0254e6/scripts/inject-llms-directive.js"],"openApiReferenceData":{"operation":{"operationId":"addProductSubstitution","tags":["Products"],"summary":"Add product substitution","description":"Add a substitute product to a product. Substitutes are alternative products that can\nfulfill the same demand — useful when the primary product is out of stock or unavailable.\n\nEach substitution links the primary product to a single substitute product and an\noptional priority. Priority controls the order substitutes are considered (lower numbers\nare tried first). Call this endpoint once per substitute product you want to attach.\n\nThe response returns the created substitution record, including the embedded substitute\nproduct. The `id` field on the response is the substitution row's ID — use it with the\nDELETE endpoint to remove the substitution later.\n","security":["15ce0d7d-f4c3-427d-a704-7dc13f9a8979"],"parameters":["11dddbdd-1602-4fd9-833f-4631fab0abca"],"requestBody":"a39702e2-6f13-4a9d-bd57-045ec94323ac","responses":{"201":"8312ac85-a435-4015-97a9-20375fcc39f1","401":"ab7ca4b1-8261-42a0-a6c9-c80f0bed898e","404":"33dc6dae-659c-4616-8b0b-c7f89c6f6d16","422":"5ef9cb53-716d-4619-b047-366bb3d83c36"},"method":"post","type":"path","servers":["2e4be249-9cab-4b20-9acd-7b153d825b1d"],"path":"/products/{productId}/substitutions","baseUrlOptions":["https://{companyName}.api.joinluminous.com/external/api/v1"],"title":"Add product substitution","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"11dddbdd-1602-4fd9-833f-4631fab0abca":{"in":"path","name":"productId","required":true,"schema":{"type":"integer","isRequired":true,"description":"ID of the product receiving the substitute","uniqueKey":"","typeLabel":"integer"},"description":"ID of the product receiving the substitute"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["substitute_product_id"],"properties":{"substitute_product_id":{"type":"integer","description":"ID of the product to add as a substitute for the primary product","isRequired":true,"uniqueKey":"substitute_product_id","typeLabel":"integer"},"priority":{"oneOf":[{"type":"integer","description":"Optional ordering hint. Lower numbers indicate higher priority (tried first).\nIf omitted (or null), the substitute is appended after the product's existing\nsubstitutes (priority = current highest priority + 1, starting at 1).\n","uniqueKey":"priority.oneOf.0","typeLabel":"integer"},{"type":"null","description":"Optional ordering hint. Lower numbers indicate higher priority (tried first).\nIf omitted (or null), the substitute is appended after the product's existing\nsubstitutes (priority = current highest priority + 1, starting at 1).\n","uniqueKey":"priority.oneOf.1","typeLabel":"null"}],"uniqueKey":"priority","typeLabel":"integer | null"}},"uniqueKey":"","typeLabel":"object"},"example":{"substitute_product_id":1234,"priority":1},"examples":{"Example":{"title":"Example","value":{"substitute_product_id":1234,"priority":1}}},"exampleType":"examples"}},"exampleType":"examples"},"responses":{"8312ac85-a435-4015-97a9-20375fcc39f1":{"description":"Substitution created","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"integer","description":"Substitution row ID. Use this with the DELETE endpoint to remove the substitution.\n","uniqueKey":"id","typeLabel":"integer"},"priority":{"oneOf":[{"type":"integer","description":"Ordering hint — lower numbers are tried first when looking for a substitute.\n","uniqueKey":"priority.oneOf.0","typeLabel":"integer"},{"type":"null","description":"Ordering hint — lower numbers are tried first when looking for a substitute.\n","uniqueKey":"priority.oneOf.1","typeLabel":"null"}],"uniqueKey":"priority","typeLabel":"integer | null"},"product":{"description":"Embedded substitute product. Always present on responses from the substitutions\nendpoints (the substitute product is eager-loaded server-side).\n","type":"object","properties":{"id":{"type":"integer","description":"Unique identifier for the product","uniqueKey":"product.id","typeLabel":"integer"},"name":{"type":"string","description":"Product name","uniqueKey":"product.name","typeLabel":"string"},"description":{"oneOf":[{"type":"string","description":"Product description","uniqueKey":"product.description.oneOf.0","typeLabel":"string"},{"type":"null","description":"Product description","uniqueKey":"product.description.oneOf.1","typeLabel":"null"}],"uniqueKey":"product.description","typeLabel":"string | null"},"retail_price":{"type":"number","format":"float","description":"Retail price","uniqueKey":"product.retail_price","typeLabel":"number\u003cfloat>"},"wholesale_price":{"type":"number","format":"float","description":"Wholesale price","uniqueKey":"product.wholesale_price","typeLabel":"number\u003cfloat>"},"unit_cost":{"type":"number","format":"float","description":"Cost per unit, in the tenant base currency (the weighted inventory cost).","uniqueKey":"product.unit_cost","typeLabel":"number\u003cfloat>"},"purchase_unit_cost":{"oneOf":[{"type":"number","format":"float","description":"Purchase (FOB) price in the preferred supplier's currency, as stored on the preferred supplier's supplier SKU. Only populated when the product's preferred supplier has a default currency that differs from the tenant base currency and a purchase cost is set; otherwise `null` (the cost lives in `unit_cost`).\n","uniqueKey":"product.purchase_unit_cost.oneOf.0","typeLabel":"number\u003cfloat>"},{"type":"null","format":"float","description":"Purchase (FOB) price in the preferred supplier's currency, as stored on the preferred supplier's supplier SKU. Only populated when the product's preferred supplier has a default currency that differs from the tenant base currency and a purchase cost is set; otherwise `null` (the cost lives in `unit_cost`).\n","uniqueKey":"product.purchase_unit_cost.oneOf.1","typeLabel":"null"}],"uniqueKey":"product.purchase_unit_cost","typeLabel":"number\u003cfloat> | null"},"purchase_currency":{"oneOf":[{"type":"string","description":"ISO currency code of `purchase_unit_cost` (the preferred supplier's default currency). `null` whenever `purchase_unit_cost` is `null`.\n","uniqueKey":"product.purchase_currency.oneOf.0","typeLabel":"string"},{"type":"null","description":"ISO currency code of `purchase_unit_cost` (the preferred supplier's default currency). `null` whenever `purchase_unit_cost` is `null`.\n","uniqueKey":"product.purchase_currency.oneOf.1","typeLabel":"null"}],"uniqueKey":"product.purchase_currency","typeLabel":"string | null"},"landed_cost":{"oneOf":[{"type":"number","format":"float","description":"Landed cost per unit","uniqueKey":"product.landed_cost.oneOf.0","typeLabel":"number\u003cfloat>"},{"type":"null","format":"float","description":"Landed cost per unit","uniqueKey":"product.landed_cost.oneOf.1","typeLabel":"null"}],"uniqueKey":"product.landed_cost","typeLabel":"number\u003cfloat> | null"},"estimated_landed_cost":{"oneOf":[{"type":"number","format":"float","description":"Planner's estimated landed cost per unit, stored on the product. Separate from the computed `landed_cost`. `null` when unset.","uniqueKey":"product.estimated_landed_cost.oneOf.0","typeLabel":"number\u003cfloat>"},{"type":"null","format":"float","description":"Planner's estimated landed cost per unit, stored on the product. Separate from the computed `landed_cost`. `null` when unset.","uniqueKey":"product.estimated_landed_cost.oneOf.1","typeLabel":"null"}],"uniqueKey":"product.estimated_landed_cost","typeLabel":"number\u003cfloat> | null"},"design_link":{"oneOf":[{"type":"string","description":"Product design URL or link. `null` when unset or empty.","uniqueKey":"product.design_link.oneOf.0","typeLabel":"string"},{"type":"null","description":"Product design URL or link. `null` when unset or empty.","uniqueKey":"product.design_link.oneOf.1","typeLabel":"null"}],"uniqueKey":"product.design_link","typeLabel":"string | null"},"manufacturing_fee":{"oneOf":[{"type":"number","format":"float","description":"Manufacturing fee per unit","uniqueKey":"product.manufacturing_fee.oneOf.0","typeLabel":"number\u003cfloat>"},{"type":"null","format":"float","description":"Manufacturing fee per unit","uniqueKey":"product.manufacturing_fee.oneOf.1","typeLabel":"null"}],"uniqueKey":"product.manufacturing_fee","typeLabel":"number\u003cfloat> | null"},"product_weight":{"oneOf":[{"type":"array","items":{"type":"object","required":["unit","value"],"properties":{"unit":{"type":"string","enum":["lb","oz"],"description":"Weight unit","isRequired":true,"uniqueKey":"product.product_weight.oneOf.0.items.[INDEX].unit","typeLabel":"enum\u003cstring>"},"value":{"type":"number","format":"float","minimum":0,"description":"Weight value","isRequired":true,"uniqueKey":"product.product_weight.oneOf.0.items.[INDEX].value","typeLabel":"number\u003cfloat>"}},"uniqueKey":"product.product_weight.oneOf.0.items.[INDEX]","typeLabel":"object"},"uniqueKey":"product.product_weight.oneOf.0","typeLabel":"object[]"},{"type":"null","items":{"type":"object","required":["unit","value"],"properties":{"unit":{"type":"string","enum":["lb","oz"],"description":"Weight unit"},"value":{"type":"number","format":"float","minimum":0,"description":"Weight value"}}},"uniqueKey":"product.product_weight.oneOf.1","typeLabel":"null"}],"uniqueKey":"product.product_weight","typeLabel":"object[] | null"},"product_weight_oz":{"oneOf":[{"type":"number","format":"float","description":"Total product weight in ounces (computed from product_weight)","uniqueKey":"product.product_weight_oz.oneOf.0","typeLabel":"number\u003cfloat>"},{"type":"null","format":"float","description":"Total product weight in ounces (computed from product_weight)","uniqueKey":"product.product_weight_oz.oneOf.1","typeLabel":"null"}],"uniqueKey":"product.product_weight_oz","typeLabel":"number\u003cfloat> | null"},"product_weight_lb":{"oneOf":[{"type":"number","format":"float","description":"Total product weight in pounds (computed from product_weight)","uniqueKey":"product.product_weight_lb.oneOf.0","typeLabel":"number\u003cfloat>"},{"type":"null","format":"float","description":"Total product weight in pounds (computed from product_weight)","uniqueKey":"product.product_weight_lb.oneOf.1","typeLabel":"null"}],"uniqueKey":"product.product_weight_lb","typeLabel":"number\u003cfloat> | null"},"dimensional_weight":{"oneOf":[{"type":"array","items":{"type":"object","required":["unit","value"],"properties":{"unit":{"type":"string","enum":["lb","oz"],"description":"Weight unit","isRequired":true,"uniqueKey":"product.dimensional_weight.oneOf.0.items.[INDEX].unit","typeLabel":"enum\u003cstring>"},"value":{"type":"number","format":"float","minimum":0,"description":"Weight value","isRequired":true,"uniqueKey":"product.dimensional_weight.oneOf.0.items.[INDEX].value","typeLabel":"number\u003cfloat>"}},"uniqueKey":"product.dimensional_weight.oneOf.0.items.[INDEX]","typeLabel":"object"},"uniqueKey":"product.dimensional_weight.oneOf.0","typeLabel":"object[]"},{"type":"null","items":{"type":"object","required":["unit","value"],"properties":{"unit":{"type":"string","enum":["lb","oz"],"description":"Weight unit"},"value":{"type":"number","format":"float","minimum":0,"description":"Weight value"}}},"uniqueKey":"product.dimensional_weight.oneOf.1","typeLabel":"null"}],"uniqueKey":"product.dimensional_weight","typeLabel":"object[] | null"},"dimensional_weight_oz":{"oneOf":[{"type":"number","format":"float","description":"Total dimensional weight in ounces (computed from dimensional_weight)","uniqueKey":"product.dimensional_weight_oz.oneOf.0","typeLabel":"number\u003cfloat>"},{"type":"null","format":"float","description":"Total dimensional weight in ounces (computed from dimensional_weight)","uniqueKey":"product.dimensional_weight_oz.oneOf.1","typeLabel":"null"}],"uniqueKey":"product.dimensional_weight_oz","typeLabel":"number\u003cfloat> | null"},"dimensional_weight_lb":{"oneOf":[{"type":"number","format":"float","description":"Total dimensional weight in pounds (computed from dimensional_weight)","uniqueKey":"product.dimensional_weight_lb.oneOf.0","typeLabel":"number\u003cfloat>"},{"type":"null","format":"float","description":"Total dimensional weight in pounds (computed from dimensional_weight)","uniqueKey":"product.dimensional_weight_lb.oneOf.1","typeLabel":"null"}],"uniqueKey":"product.dimensional_weight_lb","typeLabel":"number\u003cfloat> | null"},"product_length":{"type":"number","format":"float","description":"Length of the product (in inches)","uniqueKey":"product.product_length","typeLabel":"number\u003cfloat>"},"product_width":{"type":"number","format":"float","description":"Width of the product (in inches)","uniqueKey":"product.product_width","typeLabel":"number\u003cfloat>"},"product_height":{"type":"number","format":"float","description":"Height of the product (in inches)","uniqueKey":"product.product_height","typeLabel":"number\u003cfloat>"},"box_weight":{"oneOf":[{"type":"array","items":{"type":"object","required":["unit","value"],"properties":{"unit":{"type":"string","enum":["lb","oz"],"description":"Weight unit","isRequired":true,"uniqueKey":"product.box_weight.oneOf.0.items.[INDEX].unit","typeLabel":"enum\u003cstring>"},"value":{"type":"number","format":"float","minimum":0,"description":"Weight value","isRequired":true,"uniqueKey":"product.box_weight.oneOf.0.items.[INDEX].value","typeLabel":"number\u003cfloat>"}},"uniqueKey":"product.box_weight.oneOf.0.items.[INDEX]","typeLabel":"object"},"uniqueKey":"product.box_weight.oneOf.0","typeLabel":"object[]"},{"type":"null","items":{"type":"object","required":["unit","value"],"properties":{"unit":{"type":"string","enum":["lb","oz"],"description":"Weight unit"},"value":{"type":"number","format":"float","minimum":0,"description":"Weight value"}}},"uniqueKey":"product.box_weight.oneOf.1","typeLabel":"null"}],"uniqueKey":"product.box_weight","typeLabel":"object[] | null"},"box_weight_oz":{"oneOf":[{"type":"number","format":"float","description":"Total box weight in ounces (computed from box_weight)","uniqueKey":"product.box_weight_oz.oneOf.0","typeLabel":"number\u003cfloat>"},{"type":"null","format":"float","description":"Total box weight in ounces (computed from box_weight)","uniqueKey":"product.box_weight_oz.oneOf.1","typeLabel":"null"}],"uniqueKey":"product.box_weight_oz","typeLabel":"number\u003cfloat> | null"},"box_weight_lb":{"oneOf":[{"type":"number","format":"float","description":"Total box weight in pounds (computed from box_weight)","uniqueKey":"product.box_weight_lb.oneOf.0","typeLabel":"number\u003cfloat>"},{"type":"null","format":"float","description":"Total box weight in pounds (computed from box_weight)","uniqueKey":"product.box_weight_lb.oneOf.1","typeLabel":"null"}],"uniqueKey":"product.box_weight_lb","typeLabel":"number\u003cfloat> | null"},"box_length":{"oneOf":[{"type":"number","format":"float","description":"Length of the box (in inches)","uniqueKey":"product.box_length.oneOf.0","typeLabel":"number\u003cfloat>"},{"type":"null","format":"float","description":"Length of the box (in inches)","uniqueKey":"product.box_length.oneOf.1","typeLabel":"null"}],"uniqueKey":"product.box_length","typeLabel":"number\u003cfloat> | null"},"box_width":{"oneOf":[{"type":"number","format":"float","description":"Width of the box (in inches)","uniqueKey":"product.box_width.oneOf.0","typeLabel":"number\u003cfloat>"},{"type":"null","format":"float","description":"Width of the box (in inches)","uniqueKey":"product.box_width.oneOf.1","typeLabel":"null"}],"uniqueKey":"product.box_width","typeLabel":"number\u003cfloat> | null"},"box_height":{"oneOf":[{"type":"number","format":"float","description":"Height of the box (in inches)","uniqueKey":"product.box_height.oneOf.0","typeLabel":"number\u003cfloat>"},{"type":"null","format":"float","description":"Height of the box (in inches)","uniqueKey":"product.box_height.oneOf.1","typeLabel":"null"}],"uniqueKey":"product.box_height","typeLabel":"number\u003cfloat> | null"},"carton_weight":{"oneOf":[{"type":"array","items":{"type":"object","required":["unit","value"],"properties":{"unit":{"type":"string","enum":["lb","oz"],"description":"Weight unit","isRequired":true,"uniqueKey":"product.carton_weight.oneOf.0.items.[INDEX].unit","typeLabel":"enum\u003cstring>"},"value":{"type":"number","format":"float","minimum":0,"description":"Weight value","isRequired":true,"uniqueKey":"product.carton_weight.oneOf.0.items.[INDEX].value","typeLabel":"number\u003cfloat>"}},"uniqueKey":"product.carton_weight.oneOf.0.items.[INDEX]","typeLabel":"object"},"uniqueKey":"product.carton_weight.oneOf.0","typeLabel":"object[]"},{"type":"null","items":{"type":"object","required":["unit","value"],"properties":{"unit":{"type":"string","enum":["lb","oz"],"description":"Weight unit"},"value":{"type":"number","format":"float","minimum":0,"description":"Weight value"}}},"uniqueKey":"product.carton_weight.oneOf.1","typeLabel":"null"}],"uniqueKey":"product.carton_weight","typeLabel":"object[] | null"},"carton_weight_oz":{"oneOf":[{"type":"number","format":"float","description":"Total carton weight in ounces (computed from carton_weight)","uniqueKey":"product.carton_weight_oz.oneOf.0","typeLabel":"number\u003cfloat>"},{"type":"null","format":"float","description":"Total carton weight in ounces (computed from carton_weight)","uniqueKey":"product.carton_weight_oz.oneOf.1","typeLabel":"null"}],"uniqueKey":"product.carton_weight_oz","typeLabel":"number\u003cfloat> | null"},"carton_weight_lb":{"oneOf":[{"type":"number","format":"float","description":"Total carton weight in pounds (computed from carton_weight)","uniqueKey":"product.carton_weight_lb.oneOf.0","typeLabel":"number\u003cfloat>"},{"type":"null","format":"float","description":"Total carton weight in pounds (computed from carton_weight)","uniqueKey":"product.carton_weight_lb.oneOf.1","typeLabel":"null"}],"uniqueKey":"product.carton_weight_lb","typeLabel":"number\u003cfloat> | null"},"carton_length":{"oneOf":[{"type":"number","format":"float","description":"Length of the carton (in inches)","uniqueKey":"product.carton_length.oneOf.0","typeLabel":"number\u003cfloat>"},{"type":"null","format":"float","description":"Length of the carton (in inches)","uniqueKey":"product.carton_length.oneOf.1","typeLabel":"null"}],"uniqueKey":"product.carton_length","typeLabel":"number\u003cfloat> | null"},"carton_width":{"oneOf":[{"type":"number","format":"float","description":"Width of the carton (in inches)","uniqueKey":"product.carton_width.oneOf.0","typeLabel":"number\u003cfloat>"},{"type":"null","format":"float","description":"Width of the carton (in inches)","uniqueKey":"product.carton_width.oneOf.1","typeLabel":"null"}],"uniqueKey":"product.carton_width","typeLabel":"number\u003cfloat> | null"},"carton_height":{"oneOf":[{"type":"number","format":"float","description":"Height of the carton (in inches)","uniqueKey":"product.carton_height.oneOf.0","typeLabel":"number\u003cfloat>"},{"type":"null","format":"float","description":"Height of the carton (in inches)","uniqueKey":"product.carton_height.oneOf.1","typeLabel":"null"}],"uniqueKey":"product.carton_height","typeLabel":"number\u003cfloat> | null"},"units_per_carton":{"oneOf":[{"type":"number","format":"float","description":"Number of units per carton (Shipping \u0026 Packing). `null` when not set.","uniqueKey":"product.units_per_carton.oneOf.0","typeLabel":"number\u003cfloat>"},{"type":"null","format":"float","description":"Number of units per carton (Shipping \u0026 Packing). `null` when not set.","uniqueKey":"product.units_per_carton.oneOf.1","typeLabel":"null"}],"uniqueKey":"product.units_per_carton","typeLabel":"number\u003cfloat> | null"},"shipping_weight":{"oneOf":[{"type":"array","items":{"type":"object","required":["unit","value"],"properties":{"unit":{"type":"string","enum":["lb","oz"],"description":"Weight unit","isRequired":true,"uniqueKey":"product.shipping_weight.oneOf.0.items.[INDEX].unit","typeLabel":"enum\u003cstring>"},"value":{"type":"number","format":"float","minimum":0,"description":"Weight value","isRequired":true,"uniqueKey":"product.shipping_weight.oneOf.0.items.[INDEX].value","typeLabel":"number\u003cfloat>"}},"uniqueKey":"product.shipping_weight.oneOf.0.items.[INDEX]","typeLabel":"object"},"uniqueKey":"product.shipping_weight.oneOf.0","typeLabel":"object[]"},{"type":"null","items":{"type":"object","required":["unit","value"],"properties":{"unit":{"type":"string","enum":["lb","oz"],"description":"Weight unit"},"value":{"type":"number","format":"float","minimum":0,"description":"Weight value"}}},"uniqueKey":"product.shipping_weight.oneOf.1","typeLabel":"null"}],"uniqueKey":"product.shipping_weight","typeLabel":"object[] | null"},"shipping_weight_oz":{"oneOf":[{"type":"number","format":"float","description":"Total shipping weight in ounces (computed from shipping_weight)","uniqueKey":"product.shipping_weight_oz.oneOf.0","typeLabel":"number\u003cfloat>"},{"type":"null","format":"float","description":"Total shipping weight in ounces (computed from shipping_weight)","uniqueKey":"product.shipping_weight_oz.oneOf.1","typeLabel":"null"}],"uniqueKey":"product.shipping_weight_oz","typeLabel":"number\u003cfloat> | null"},"shipping_weight_lb":{"oneOf":[{"type":"number","format":"float","description":"Total shipping weight in pounds (computed from shipping_weight)","uniqueKey":"product.shipping_weight_lb.oneOf.0","typeLabel":"number\u003cfloat>"},{"type":"null","format":"float","description":"Total shipping weight in pounds (computed from shipping_weight)","uniqueKey":"product.shipping_weight_lb.oneOf.1","typeLabel":"null"}],"uniqueKey":"product.shipping_weight_lb","typeLabel":"number\u003cfloat> | null"},"shipping_length":{"oneOf":[{"type":"number","format":"float","description":"Shipping length (in inches)","uniqueKey":"product.shipping_length.oneOf.0","typeLabel":"number\u003cfloat>"},{"type":"null","format":"float","description":"Shipping length (in inches)","uniqueKey":"product.shipping_length.oneOf.1","typeLabel":"null"}],"uniqueKey":"product.shipping_length","typeLabel":"number\u003cfloat> | null"},"shipping_width":{"oneOf":[{"type":"number","format":"float","description":"Shipping width (in inches)","uniqueKey":"product.shipping_width.oneOf.0","typeLabel":"number\u003cfloat>"},{"type":"null","format":"float","description":"Shipping width (in inches)","uniqueKey":"product.shipping_width.oneOf.1","typeLabel":"null"}],"uniqueKey":"product.shipping_width","typeLabel":"number\u003cfloat> | null"},"shipping_height":{"oneOf":[{"type":"number","format":"float","description":"Shipping height (in inches)","uniqueKey":"product.shipping_height.oneOf.0","typeLabel":"number\u003cfloat>"},{"type":"null","format":"float","description":"Shipping height (in inches)","uniqueKey":"product.shipping_height.oneOf.1","typeLabel":"null"}],"uniqueKey":"product.shipping_height","typeLabel":"number\u003cfloat> | null"},"pallet_weight":{"oneOf":[{"type":"array","items":{"type":"object","required":["unit","value"],"properties":{"unit":{"type":"string","enum":["lb","oz"],"description":"Weight unit","isRequired":true,"uniqueKey":"product.pallet_weight.oneOf.0.items.[INDEX].unit","typeLabel":"enum\u003cstring>"},"value":{"type":"number","format":"float","minimum":0,"description":"Weight value","isRequired":true,"uniqueKey":"product.pallet_weight.oneOf.0.items.[INDEX].value","typeLabel":"number\u003cfloat>"}},"uniqueKey":"product.pallet_weight.oneOf.0.items.[INDEX]","typeLabel":"object"},"uniqueKey":"product.pallet_weight.oneOf.0","typeLabel":"object[]"},{"type":"null","items":{"type":"object","required":["unit","value"],"properties":{"unit":{"type":"string","enum":["lb","oz"],"description":"Weight unit"},"value":{"type":"number","format":"float","minimum":0,"description":"Weight value"}}},"uniqueKey":"product.pallet_weight.oneOf.1","typeLabel":"null"}],"uniqueKey":"product.pallet_weight","typeLabel":"object[] | null"},"pallet_weight_oz":{"oneOf":[{"type":"number","format":"float","description":"Total pallet weight in ounces (computed from pallet_weight)","uniqueKey":"product.pallet_weight_oz.oneOf.0","typeLabel":"number\u003cfloat>"},{"type":"null","format":"float","description":"Total pallet weight in ounces (computed from pallet_weight)","uniqueKey":"product.pallet_weight_oz.oneOf.1","typeLabel":"null"}],"uniqueKey":"product.pallet_weight_oz","typeLabel":"number\u003cfloat> | null"},"pallet_weight_lb":{"oneOf":[{"type":"number","format":"float","description":"Total pallet weight in pounds (computed from pallet_weight)","uniqueKey":"product.pallet_weight_lb.oneOf.0","typeLabel":"number\u003cfloat>"},{"type":"null","format":"float","description":"Total pallet weight in pounds (computed from pallet_weight)","uniqueKey":"product.pallet_weight_lb.oneOf.1","typeLabel":"null"}],"uniqueKey":"product.pallet_weight_lb","typeLabel":"number\u003cfloat> | null"},"pallet_length":{"oneOf":[{"type":"number","format":"float","description":"Length of the pallet (in inches)","uniqueKey":"product.pallet_length.oneOf.0","typeLabel":"number\u003cfloat>"},{"type":"null","format":"float","description":"Length of the pallet (in inches)","uniqueKey":"product.pallet_length.oneOf.1","typeLabel":"null"}],"uniqueKey":"product.pallet_length","typeLabel":"number\u003cfloat> | null"},"pallet_width":{"oneOf":[{"type":"number","format":"float","description":"Width of the pallet (in inches)","uniqueKey":"product.pallet_width.oneOf.0","typeLabel":"number\u003cfloat>"},{"type":"null","format":"float","description":"Width of the pallet (in inches)","uniqueKey":"product.pallet_width.oneOf.1","typeLabel":"null"}],"uniqueKey":"product.pallet_width","typeLabel":"number\u003cfloat> | null"},"pallet_height":{"oneOf":[{"type":"number","format":"float","description":"Height of the pallet (in inches)","uniqueKey":"product.pallet_height.oneOf.0","typeLabel":"number\u003cfloat>"},{"type":"null","format":"float","description":"Height of the pallet (in inches)","uniqueKey":"product.pallet_height.oneOf.1","typeLabel":"null"}],"uniqueKey":"product.pallet_height","typeLabel":"number\u003cfloat> | null"},"cartons_per_pallet":{"oneOf":[{"type":"number","format":"float","description":"Number of cartons per pallet (Shipping \u0026 Packing). `null` when not set.","uniqueKey":"product.cartons_per_pallet.oneOf.0","typeLabel":"number\u003cfloat>"},{"type":"null","format":"float","description":"Number of cartons per pallet (Shipping \u0026 Packing). `null` when not set.","uniqueKey":"product.cartons_per_pallet.oneOf.1","typeLabel":"null"}],"uniqueKey":"product.cartons_per_pallet","typeLabel":"number\u003cfloat> | null"},"units_per_pallet":{"oneOf":[{"type":"number","format":"float","description":"Number of units per pallet (Shipping \u0026 Packing). `null` when not set.","uniqueKey":"product.units_per_pallet.oneOf.0","typeLabel":"number\u003cfloat>"},{"type":"null","format":"float","description":"Number of units per pallet (Shipping \u0026 Packing). `null` when not set.","uniqueKey":"product.units_per_pallet.oneOf.1","typeLabel":"null"}],"uniqueKey":"product.units_per_pallet","typeLabel":"number\u003cfloat> | null"},"lead_time_days":{"oneOf":[{"type":"integer","description":"Lead time stored on the product, in calendar days. `null` when not set; `0` is a stored zero, not a missing value. Read-only on the API.","uniqueKey":"product.lead_time_days.oneOf.0","typeLabel":"integer"},{"type":"null","description":"Lead time stored on the product, in calendar days. `null` when not set; `0` is a stored zero, not a missing value. Read-only on the API.","uniqueKey":"product.lead_time_days.oneOf.1","typeLabel":"null"}],"uniqueKey":"product.lead_time_days","typeLabel":"integer | null"},"sellable":{"type":"boolean","description":"Whether the product can be sold","uniqueKey":"product.sellable","typeLabel":"boolean"},"discontinued":{"type":"boolean","description":"Whether the product is discontinued. Discontinued products will be hidden in the Luminous UI by default.","uniqueKey":"product.discontinued","typeLabel":"boolean"},"is_drop_ship_item":{"type":"boolean","description":"Whether the product is flagged as a drop-ship item. A preference marker only — it does not currently change fulfillment-order routing or purchase-order creation.","uniqueKey":"product.is_drop_ship_item","typeLabel":"boolean"},"taxable":{"type":"boolean","description":"Whether the product is subject to sales tax. Defaults to true when not set.","uniqueKey":"product.taxable","typeLabel":"boolean"},"lot_tracking":{"type":"boolean","description":"Whether lot (batch) tracking is enabled for this product. When true, on-hand stock is tracked per lot and lot-aware endpoints (e.g. `/lots`, the `lot_stocks` breakdown on inventory stock, and lot fields on adjustments/receiving) apply.","uniqueKey":"product.lot_tracking","typeLabel":"boolean"},"lot_deduction_strategy":{"oneOf":[{"type":"string","description":"Which lot Luminous picks on its own when a caller omits `lot_id` on a lot-tracked pick or shipment. `null` means there is no per-product override, so the warehouse group's setting (or a newest-lot fallback) applies. PickFlow should suggest this lot to the picker so its suggestion matches what Luminous would have chosen.","uniqueKey":"product.lot_deduction_strategy.oneOf.0","typeLabel":"string"},{"type":"null","description":"Which lot Luminous picks on its own when a caller omits `lot_id` on a lot-tracked pick or shipment. `null` means there is no per-product override, so the warehouse group's setting (or a newest-lot fallback) applies. PickFlow should suggest this lot to the picker so its suggestion matches what Luminous would have chosen.","uniqueKey":"product.lot_deduction_strategy.oneOf.1","typeLabel":"null"}],"uniqueKey":"product.lot_deduction_strategy","typeLabel":"string | null"},"round_up_as_component":{"type":"boolean","description":"Whether this product, when consumed as a BOM component, has its consumption quantity rounded up to whole units. Intended for discrete items (e.g. labels, boxes) that cannot be consumed fractionally.","uniqueKey":"product.round_up_as_component","typeLabel":"boolean"},"default_supply_method":{"oneOf":[{"type":"string","enum":["purchase","vendor_supplied","assemble","on_hand","assembly_order","buy_and_ship","brand_supplied"],"description":"Default supply mode used when planning replenishment for this product","uniqueKey":"product.default_supply_method.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["purchase","vendor_supplied","assemble","on_hand","assembly_order","buy_and_ship","brand_supplied"],"description":"Default supply mode used when planning replenishment for this product","uniqueKey":"product.default_supply_method.oneOf.1","typeLabel":"null"}],"uniqueKey":"product.default_supply_method","typeLabel":"enum\u003cstring> | null"},"image_url":{"oneOf":[{"type":"string","description":"URL to the product's main image","uniqueKey":"product.image_url.oneOf.0","typeLabel":"string"},{"type":"null","description":"URL to the product's main image","uniqueKey":"product.image_url.oneOf.1","typeLabel":"null"}],"uniqueKey":"product.image_url","typeLabel":"string | null"},"category":{"oneOf":[{"type":"object","properties":{"id":{"type":"integer","uniqueKey":"product.category.oneOf.0.id","typeLabel":"integer"},"name":{"type":"string","uniqueKey":"product.category.oneOf.0.name","typeLabel":"string"}},"description":"Product category information","uniqueKey":"product.category.oneOf.0","typeLabel":"object"},{"type":"null","properties":{"id":{"type":"integer"},"name":{"type":"string"}},"description":"Product category information","uniqueKey":"product.category.oneOf.1","typeLabel":"null"}],"uniqueKey":"product.category","typeLabel":"object | null"},"subcategory":{"oneOf":[{"type":"object","properties":{"id":{"type":"integer","uniqueKey":"product.subcategory.oneOf.0.id","typeLabel":"integer"},"name":{"type":"string","uniqueKey":"product.subcategory.oneOf.0.name","typeLabel":"string"}},"description":"Product subcategory information","uniqueKey":"product.subcategory.oneOf.0","typeLabel":"object"},{"type":"null","properties":{"id":{"type":"integer"},"name":{"type":"string"}},"description":"Product subcategory information","uniqueKey":"product.subcategory.oneOf.1","typeLabel":"null"}],"uniqueKey":"product.subcategory","typeLabel":"object | null"},"custom_fields":{"type":"object","description":"Dynamic custom fields with key-value pairs","additionalProperties":{"type":"string","uniqueKey":"product.custom_fields.additionalProperties","typeLabel":"string"},"uniqueKey":"product.custom_fields","typeLabel":"object"},"attachments":{"type":"array","description":"Product attachments","items":{"type":"object","properties":{"id":{"type":"integer","description":"Unique identifier for the attachment","isRequired":true,"uniqueKey":"product.attachments.items.[INDEX].id","typeLabel":"integer"},"name":{"type":"string","description":"Filename of the attachment","isRequired":true,"uniqueKey":"product.attachments.items.[INDEX].name","typeLabel":"string"},"type":{"type":"string","description":"MIME type of the attachment","isRequired":true,"uniqueKey":"product.attachments.items.[INDEX].type","typeLabel":"string"},"size":{"type":"integer","description":"File size in bytes","isRequired":true,"uniqueKey":"product.attachments.items.[INDEX].size","typeLabel":"integer"},"full_url":{"type":"string","description":"Full resolution URL of the attachment","isRequired":true,"uniqueKey":"product.attachments.items.[INDEX].full_url","typeLabel":"string"},"thumb_url":{"type":"string","description":"Thumbnail URL of the attachment (if applicable)","uniqueKey":"product.attachments.items.[INDEX].thumb_url","typeLabel":"string"}},"required":["id","name","type","size","full_url"],"uniqueKey":"product.attachments.items.[INDEX]","typeLabel":"object"},"uniqueKey":"product.attachments","typeLabel":"object[]"},"variants":{"type":"array","description":"Product variants","items":{"type":"object","properties":{"id":{"type":"integer","uniqueKey":"product.variants.items.[INDEX].id","typeLabel":"integer"},"name":{"type":"string","uniqueKey":"product.variants.items.[INDEX].name","typeLabel":"string"},"description":{"oneOf":[{"type":"string","uniqueKey":"product.variants.items.[INDEX].description.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"product.variants.items.[INDEX].description.oneOf.1","typeLabel":"null"}],"uniqueKey":"product.variants.items.[INDEX].description","typeLabel":"string | null"},"product_weight":{"oneOf":[{"type":"array","items":{"type":"object","required":["unit","value"],"properties":{"unit":{"type":"string","enum":["lb","oz"],"description":"Weight unit","isRequired":true,"uniqueKey":"product.variants.items.[INDEX].product_weight.oneOf.0.items.[INDEX].unit","typeLabel":"enum\u003cstring>"},"value":{"type":"number","format":"float","minimum":0,"description":"Weight value","isRequired":true,"uniqueKey":"product.variants.items.[INDEX].product_weight.oneOf.0.items.[INDEX].value","typeLabel":"number\u003cfloat>"}},"uniqueKey":"product.variants.items.[INDEX].product_weight.oneOf.0.items.[INDEX]","typeLabel":"object"},"uniqueKey":"product.variants.items.[INDEX].product_weight.oneOf.0","typeLabel":"object[]"},{"type":"null","items":{"type":"object","required":["unit","value"],"properties":{"unit":{"type":"string","enum":["lb","oz"],"description":"Weight unit"},"value":{"type":"number","format":"float","minimum":0,"description":"Weight value"}}},"uniqueKey":"product.variants.items.[INDEX].product_weight.oneOf.1","typeLabel":"null"}],"uniqueKey":"product.variants.items.[INDEX].product_weight","typeLabel":"object[] | null"},"product_weight_oz":{"oneOf":[{"type":"number","format":"float","uniqueKey":"product.variants.items.[INDEX].product_weight_oz.oneOf.0","typeLabel":"number\u003cfloat>"},{"type":"null","format":"float","uniqueKey":"product.variants.items.[INDEX].product_weight_oz.oneOf.1","typeLabel":"null"}],"uniqueKey":"product.variants.items.[INDEX].product_weight_oz","typeLabel":"number\u003cfloat> | null"},"product_weight_lb":{"oneOf":[{"type":"number","format":"float","uniqueKey":"product.variants.items.[INDEX].product_weight_lb.oneOf.0","typeLabel":"number\u003cfloat>"},{"type":"null","format":"float","uniqueKey":"product.variants.items.[INDEX].product_weight_lb.oneOf.1","typeLabel":"null"}],"uniqueKey":"product.variants.items.[INDEX].product_weight_lb","typeLabel":"number\u003cfloat> | null"},"dimensional_weight":{"oneOf":[{"type":"array","items":{"type":"object","required":["unit","value"],"properties":{"unit":{"type":"string","enum":["lb","oz"],"description":"Weight unit","isRequired":true,"uniqueKey":"product.variants.items.[INDEX].dimensional_weight.oneOf.0.items.[INDEX].unit","typeLabel":"enum\u003cstring>"},"value":{"type":"number","format":"float","minimum":0,"description":"Weight value","isRequired":true,"uniqueKey":"product.variants.items.[INDEX].dimensional_weight.oneOf.0.items.[INDEX].value","typeLabel":"number\u003cfloat>"}},"uniqueKey":"product.variants.items.[INDEX].dimensional_weight.oneOf.0.items.[INDEX]","typeLabel":"object"},"uniqueKey":"product.variants.items.[INDEX].dimensional_weight.oneOf.0","typeLabel":"object[]"},{"type":"null","items":{"type":"object","required":["unit","value"],"properties":{"unit":{"type":"string","enum":["lb","oz"],"description":"Weight unit"},"value":{"type":"number","format":"float","minimum":0,"description":"Weight value"}}},"uniqueKey":"product.variants.items.[INDEX].dimensional_weight.oneOf.1","typeLabel":"null"}],"uniqueKey":"product.variants.items.[INDEX].dimensional_weight","typeLabel":"object[] | null"},"dimensional_weight_oz":{"oneOf":[{"type":"number","format":"float","uniqueKey":"product.variants.items.[INDEX].dimensional_weight_oz.oneOf.0","typeLabel":"number\u003cfloat>"},{"type":"null","format":"float","uniqueKey":"product.variants.items.[INDEX].dimensional_weight_oz.oneOf.1","typeLabel":"null"}],"uniqueKey":"product.variants.items.[INDEX].dimensional_weight_oz","typeLabel":"number\u003cfloat> | null"},"dimensional_weight_lb":{"oneOf":[{"type":"number","format":"float","uniqueKey":"product.variants.items.[INDEX].dimensional_weight_lb.oneOf.0","typeLabel":"number\u003cfloat>"},{"type":"null","format":"float","uniqueKey":"product.variants.items.[INDEX].dimensional_weight_lb.oneOf.1","typeLabel":"null"}],"uniqueKey":"product.variants.items.[INDEX].dimensional_weight_lb","typeLabel":"number\u003cfloat> | null"},"box_weight":{"oneOf":[{"type":"array","items":{"type":"object","required":["unit","value"],"properties":{"unit":{"type":"string","enum":["lb","oz"],"description":"Weight unit","isRequired":true,"uniqueKey":"product.variants.items.[INDEX].box_weight.oneOf.0.items.[INDEX].unit","typeLabel":"enum\u003cstring>"},"value":{"type":"number","format":"float","minimum":0,"description":"Weight value","isRequired":true,"uniqueKey":"product.variants.items.[INDEX].box_weight.oneOf.0.items.[INDEX].value","typeLabel":"number\u003cfloat>"}},"uniqueKey":"product.variants.items.[INDEX].box_weight.oneOf.0.items.[INDEX]","typeLabel":"object"},"uniqueKey":"product.variants.items.[INDEX].box_weight.oneOf.0","typeLabel":"object[]"},{"type":"null","items":{"type":"object","required":["unit","value"],"properties":{"unit":{"type":"string","enum":["lb","oz"],"description":"Weight unit"},"value":{"type":"number","format":"float","minimum":0,"description":"Weight value"}}},"uniqueKey":"product.variants.items.[INDEX].box_weight.oneOf.1","typeLabel":"null"}],"uniqueKey":"product.variants.items.[INDEX].box_weight","typeLabel":"object[] | null"},"box_weight_oz":{"oneOf":[{"type":"number","format":"float","uniqueKey":"product.variants.items.[INDEX].box_weight_oz.oneOf.0","typeLabel":"number\u003cfloat>"},{"type":"null","format":"float","uniqueKey":"product.variants.items.[INDEX].box_weight_oz.oneOf.1","typeLabel":"null"}],"uniqueKey":"product.variants.items.[INDEX].box_weight_oz","typeLabel":"number\u003cfloat> | null"},"box_weight_lb":{"oneOf":[{"type":"number","format":"float","uniqueKey":"product.variants.items.[INDEX].box_weight_lb.oneOf.0","typeLabel":"number\u003cfloat>"},{"type":"null","format":"float","uniqueKey":"product.variants.items.[INDEX].box_weight_lb.oneOf.1","typeLabel":"null"}],"uniqueKey":"product.variants.items.[INDEX].box_weight_lb","typeLabel":"number\u003cfloat> | null"},"carton_weight":{"oneOf":[{"type":"array","items":{"type":"object","required":["unit","value"],"properties":{"unit":{"type":"string","enum":["lb","oz"],"description":"Weight unit","isRequired":true,"uniqueKey":"product.variants.items.[INDEX].carton_weight.oneOf.0.items.[INDEX].unit","typeLabel":"enum\u003cstring>"},"value":{"type":"number","format":"float","minimum":0,"description":"Weight value","isRequired":true,"uniqueKey":"product.variants.items.[INDEX].carton_weight.oneOf.0.items.[INDEX].value","typeLabel":"number\u003cfloat>"}},"uniqueKey":"product.variants.items.[INDEX].carton_weight.oneOf.0.items.[INDEX]","typeLabel":"object"},"uniqueKey":"product.variants.items.[INDEX].carton_weight.oneOf.0","typeLabel":"object[]"},{"type":"null","items":{"type":"object","required":["unit","value"],"properties":{"unit":{"type":"string","enum":["lb","oz"],"description":"Weight unit"},"value":{"type":"number","format":"float","minimum":0,"description":"Weight value"}}},"uniqueKey":"product.variants.items.[INDEX].carton_weight.oneOf.1","typeLabel":"null"}],"uniqueKey":"product.variants.items.[INDEX].carton_weight","typeLabel":"object[] | null"},"carton_weight_oz":{"oneOf":[{"type":"number","format":"float","uniqueKey":"product.variants.items.[INDEX].carton_weight_oz.oneOf.0","typeLabel":"number\u003cfloat>"},{"type":"null","format":"float","uniqueKey":"product.variants.items.[INDEX].carton_weight_oz.oneOf.1","typeLabel":"null"}],"uniqueKey":"product.variants.items.[INDEX].carton_weight_oz","typeLabel":"number\u003cfloat> | null"},"carton_weight_lb":{"oneOf":[{"type":"number","format":"float","uniqueKey":"product.variants.items.[INDEX].carton_weight_lb.oneOf.0","typeLabel":"number\u003cfloat>"},{"type":"null","format":"float","uniqueKey":"product.variants.items.[INDEX].carton_weight_lb.oneOf.1","typeLabel":"null"}],"uniqueKey":"product.variants.items.[INDEX].carton_weight_lb","typeLabel":"number\u003cfloat> | null"},"shipping_weight":{"oneOf":[{"type":"array","items":{"type":"object","required":["unit","value"],"properties":{"unit":{"type":"string","enum":["lb","oz"],"description":"Weight unit","isRequired":true,"uniqueKey":"product.variants.items.[INDEX].shipping_weight.oneOf.0.items.[INDEX].unit","typeLabel":"enum\u003cstring>"},"value":{"type":"number","format":"float","minimum":0,"description":"Weight value","isRequired":true,"uniqueKey":"product.variants.items.[INDEX].shipping_weight.oneOf.0.items.[INDEX].value","typeLabel":"number\u003cfloat>"}},"uniqueKey":"product.variants.items.[INDEX].shipping_weight.oneOf.0.items.[INDEX]","typeLabel":"object"},"uniqueKey":"product.variants.items.[INDEX].shipping_weight.oneOf.0","typeLabel":"object[]"},{"type":"null","items":{"type":"object","required":["unit","value"],"properties":{"unit":{"type":"string","enum":["lb","oz"],"description":"Weight unit"},"value":{"type":"number","format":"float","minimum":0,"description":"Weight value"}}},"uniqueKey":"product.variants.items.[INDEX].shipping_weight.oneOf.1","typeLabel":"null"}],"uniqueKey":"product.variants.items.[INDEX].shipping_weight","typeLabel":"object[] | null"},"shipping_weight_oz":{"oneOf":[{"type":"number","format":"float","uniqueKey":"product.variants.items.[INDEX].shipping_weight_oz.oneOf.0","typeLabel":"number\u003cfloat>"},{"type":"null","format":"float","uniqueKey":"product.variants.items.[INDEX].shipping_weight_oz.oneOf.1","typeLabel":"null"}],"uniqueKey":"product.variants.items.[INDEX].shipping_weight_oz","typeLabel":"number\u003cfloat> | null"},"shipping_weight_lb":{"oneOf":[{"type":"number","format":"float","uniqueKey":"product.variants.items.[INDEX].shipping_weight_lb.oneOf.0","typeLabel":"number\u003cfloat>"},{"type":"null","format":"float","uniqueKey":"product.variants.items.[INDEX].shipping_weight_lb.oneOf.1","typeLabel":"null"}],"uniqueKey":"product.variants.items.[INDEX].shipping_weight_lb","typeLabel":"number\u003cfloat> | null"},"pallet_weight":{"oneOf":[{"type":"array","items":{"type":"object","required":["unit","value"],"properties":{"unit":{"type":"string","enum":["lb","oz"],"description":"Weight unit","isRequired":true,"uniqueKey":"product.variants.items.[INDEX].pallet_weight.oneOf.0.items.[INDEX].unit","typeLabel":"enum\u003cstring>"},"value":{"type":"number","format":"float","minimum":0,"description":"Weight value","isRequired":true,"uniqueKey":"product.variants.items.[INDEX].pallet_weight.oneOf.0.items.[INDEX].value","typeLabel":"number\u003cfloat>"}},"uniqueKey":"product.variants.items.[INDEX].pallet_weight.oneOf.0.items.[INDEX]","typeLabel":"object"},"uniqueKey":"product.variants.items.[INDEX].pallet_weight.oneOf.0","typeLabel":"object[]"},{"type":"null","items":{"type":"object","required":["unit","value"],"properties":{"unit":{"type":"string","enum":["lb","oz"],"description":"Weight unit"},"value":{"type":"number","format":"float","minimum":0,"description":"Weight value"}}},"uniqueKey":"product.variants.items.[INDEX].pallet_weight.oneOf.1","typeLabel":"null"}],"uniqueKey":"product.variants.items.[INDEX].pallet_weight","typeLabel":"object[] | null"},"pallet_weight_oz":{"oneOf":[{"type":"number","format":"float","uniqueKey":"product.variants.items.[INDEX].pallet_weight_oz.oneOf.0","typeLabel":"number\u003cfloat>"},{"type":"null","format":"float","uniqueKey":"product.variants.items.[INDEX].pallet_weight_oz.oneOf.1","typeLabel":"null"}],"uniqueKey":"product.variants.items.[INDEX].pallet_weight_oz","typeLabel":"number\u003cfloat> | null"},"pallet_weight_lb":{"oneOf":[{"type":"number","format":"float","uniqueKey":"product.variants.items.[INDEX].pallet_weight_lb.oneOf.0","typeLabel":"number\u003cfloat>"},{"type":"null","format":"float","uniqueKey":"product.variants.items.[INDEX].pallet_weight_lb.oneOf.1","typeLabel":"null"}],"uniqueKey":"product.variants.items.[INDEX].pallet_weight_lb","typeLabel":"number\u003cfloat> | null"},"attachments":{"type":"array","description":"Variant-specific attachments","items":{"type":"object","properties":{"id":{"type":"integer","description":"Unique identifier for the attachment","isRequired":true,"uniqueKey":"product.variants.items.[INDEX].attachments.items.[INDEX].id","typeLabel":"integer"},"name":{"type":"string","description":"Filename of the attachment","isRequired":true,"uniqueKey":"product.variants.items.[INDEX].attachments.items.[INDEX].name","typeLabel":"string"},"type":{"type":"string","description":"MIME type of the attachment","isRequired":true,"uniqueKey":"product.variants.items.[INDEX].attachments.items.[INDEX].type","typeLabel":"string"},"size":{"type":"integer","description":"File size in bytes","isRequired":true,"uniqueKey":"product.variants.items.[INDEX].attachments.items.[INDEX].size","typeLabel":"integer"},"full_url":{"type":"string","description":"Full resolution URL of the attachment","isRequired":true,"uniqueKey":"product.variants.items.[INDEX].attachments.items.[INDEX].full_url","typeLabel":"string"},"thumb_url":{"type":"string","description":"Thumbnail URL of the attachment (if applicable)","uniqueKey":"product.variants.items.[INDEX].attachments.items.[INDEX].thumb_url","typeLabel":"string"}},"required":["id","name","type","size","full_url"],"uniqueKey":"product.variants.items.[INDEX].attachments.items.[INDEX]","typeLabel":"object"},"uniqueKey":"product.variants.items.[INDEX].attachments","typeLabel":"object[]"},"retail_price":{"type":"number","format":"float","uniqueKey":"product.variants.items.[INDEX].retail_price","typeLabel":"number\u003cfloat>"},"wholesale_price":{"type":"number","format":"float","uniqueKey":"product.variants.items.[INDEX].wholesale_price","typeLabel":"number\u003cfloat>"},"custom_fields":{"type":"array","items":{"type":"object","uniqueKey":"product.variants.items.[INDEX].custom_fields.items.[INDEX]","typeLabel":"object"},"uniqueKey":"product.variants.items.[INDEX].custom_fields","typeLabel":"object[]"},"variant_attributes":{"oneOf":[{"type":"array","description":"The variant option terms this child SKU is assigned to (e.g. Size=Large, Color=Red).\nReturned in the same `[{variant_name, variant_terms[]}]` shape as the parent product's\n`variant_attributes` taxonomy, with each entry holding the term(s) selected for this child\non that axis.\n","items":{"type":"object","properties":{"variant_name":{"type":"string","description":"Name of the variant axis (e.g. \"Size\")","uniqueKey":"product.variants.items.[INDEX].variant_attributes.oneOf.0.items.[INDEX].variant_name","typeLabel":"string"},"variant_terms":{"type":"array","description":"Term value(s) selected for this child on that axis","items":{"type":"string","uniqueKey":"product.variants.items.[INDEX].variant_attributes.oneOf.0.items.[INDEX].variant_terms.items.[INDEX]","typeLabel":"string"},"uniqueKey":"product.variants.items.[INDEX].variant_attributes.oneOf.0.items.[INDEX].variant_terms","typeLabel":"string[]"}},"uniqueKey":"product.variants.items.[INDEX].variant_attributes.oneOf.0.items.[INDEX]","typeLabel":"object"},"uniqueKey":"product.variants.items.[INDEX].variant_attributes.oneOf.0","typeLabel":"object[]"},{"type":"null","description":"The variant option terms this child SKU is assigned to (e.g. Size=Large, Color=Red).\nReturned in the same `[{variant_name, variant_terms[]}]` shape as the parent product's\n`variant_attributes` taxonomy, with each entry holding the term(s) selected for this child\non that axis.\n","items":{"type":"object","properties":{"variant_name":{"type":"string","description":"Name of the variant axis (e.g. \"Size\")"},"variant_terms":{"type":"array","description":"Term value(s) selected for this child on that axis","items":{"type":"string"}}}},"uniqueKey":"product.variants.items.[INDEX].variant_attributes.oneOf.1","typeLabel":"null"}],"uniqueKey":"product.variants.items.[INDEX].variant_attributes","typeLabel":"object[] | null"},"sku":{"type":"string","uniqueKey":"product.variants.items.[INDEX].sku","typeLabel":"string"},"upc":{"type":"string","uniqueKey":"product.variants.items.[INDEX].upc","typeLabel":"string"},"hs_code":{"oneOf":[{"type":"string","description":"HS/HTS tariff code for the product (max 50 characters)","uniqueKey":"product.variants.items.[INDEX].hs_code.oneOf.0","typeLabel":"string"},{"type":"null","description":"HS/HTS tariff code for the product (max 50 characters)","uniqueKey":"product.variants.items.[INDEX].hs_code.oneOf.1","typeLabel":"null"}],"uniqueKey":"product.variants.items.[INDEX].hs_code","typeLabel":"string | null"},"round_up_as_component":{"type":"boolean","description":"Whether this product, when consumed as a BOM component, has its consumption quantity rounded up to whole units. Intended for discrete items (e.g. labels, boxes) that cannot be consumed fractionally.","uniqueKey":"product.variants.items.[INDEX].round_up_as_component","typeLabel":"boolean"},"created_at":{"type":"string","format":"date-time","uniqueKey":"product.variants.items.[INDEX].created_at","typeLabel":"string\u003cdate-time>"},"updated_at":{"type":"string","format":"date-time","uniqueKey":"product.variants.items.[INDEX].updated_at","typeLabel":"string\u003cdate-time>"}},"uniqueKey":"product.variants.items.[INDEX]","typeLabel":"object"},"uniqueKey":"product.variants","typeLabel":"object[]"},"variant_attributes":{"oneOf":[{"type":"array","description":"Variant option taxonomy for this product — the axes (e.g. Size, Color) and the allowed terms on\neach axis. On a parent product, this is the union of all terms used by its child variants. On a\nchild variant, this holds the specific term(s) the child is assigned to.\n\nSet via the request field `product_variants` (same shape) on create/update.\n","items":{"type":"object","properties":{"variant_name":{"type":"string","description":"Name of the variant axis (e.g. \"Size\", \"Color\")","uniqueKey":"product.variant_attributes.oneOf.0.items.[INDEX].variant_name","typeLabel":"string"},"variant_terms":{"type":"array","description":"Terms on this axis","items":{"type":"string","uniqueKey":"product.variant_attributes.oneOf.0.items.[INDEX].variant_terms.items.[INDEX]","typeLabel":"string"},"uniqueKey":"product.variant_attributes.oneOf.0.items.[INDEX].variant_terms","typeLabel":"string[]"}},"uniqueKey":"product.variant_attributes.oneOf.0.items.[INDEX]","typeLabel":"object"},"uniqueKey":"product.variant_attributes.oneOf.0","typeLabel":"object[]"},{"type":"null","description":"Variant option taxonomy for this product — the axes (e.g. Size, Color) and the allowed terms on\neach axis. On a parent product, this is the union of all terms used by its child variants. On a\nchild variant, this holds the specific term(s) the child is assigned to.\n\nSet via the request field `product_variants` (same shape) on create/update.\n","items":{"type":"object","properties":{"variant_name":{"type":"string","description":"Name of the variant axis (e.g. \"Size\", \"Color\")"},"variant_terms":{"type":"array","description":"Terms on this axis","items":{"type":"string"}}}},"uniqueKey":"product.variant_attributes.oneOf.1","typeLabel":"null"}],"uniqueKey":"product.variant_attributes","typeLabel":"object[] | null"},"sku":{"type":"string","description":"Internal SKU","uniqueKey":"product.sku","typeLabel":"string"},"alternate_skus":{"type":"array","description":"Alternate SKUs","items":{"type":"object","properties":{"id":{"type":"integer","uniqueKey":"product.alternate_skus.items.[INDEX].id","typeLabel":"integer"},"sku":{"type":"string","uniqueKey":"product.alternate_skus.items.[INDEX].sku","typeLabel":"string"}},"uniqueKey":"product.alternate_skus.items.[INDEX]","typeLabel":"object"},"uniqueKey":"product.alternate_skus","typeLabel":"object[]"},"upc":{"type":"string","description":"UPC/Barcode","uniqueKey":"product.upc","typeLabel":"string"},"hs_code":{"oneOf":[{"type":"string","description":"HS/HTS tariff code for the product (max 50 characters)","uniqueKey":"product.hs_code.oneOf.0","typeLabel":"string"},{"type":"null","description":"HS/HTS tariff code for the product (max 50 characters)","uniqueKey":"product.hs_code.oneOf.1","typeLabel":"null"}],"uniqueKey":"product.hs_code","typeLabel":"string | null"},"tags":{"type":"array","description":"Tags associated with the product","items":{"type":"object","properties":{"id":{"type":"integer","description":"Unique identifier for the tag","isRequired":true,"uniqueKey":"product.tags.items.[INDEX].id","typeLabel":"integer"},"name":{"type":"string","description":"Name of the tag","isRequired":true,"uniqueKey":"product.tags.items.[INDEX].name","typeLabel":"string"},"description":{"oneOf":[{"type":"string","description":"Description of the tag","uniqueKey":"product.tags.items.[INDEX].description.oneOf.0","typeLabel":"string"},{"type":"null","description":"Description of the tag","uniqueKey":"product.tags.items.[INDEX].description.oneOf.1","typeLabel":"null"}],"uniqueKey":"product.tags.items.[INDEX].description","typeLabel":"string | null"},"icon":{"oneOf":[{"type":"string","description":"Icon identifier or URL for the tag","uniqueKey":"product.tags.items.[INDEX].icon.oneOf.0","typeLabel":"string"},{"type":"null","description":"Icon identifier or URL for the tag","uniqueKey":"product.tags.items.[INDEX].icon.oneOf.1","typeLabel":"null"}],"uniqueKey":"product.tags.items.[INDEX].icon","typeLabel":"string | null"},"color":{"oneOf":[{"type":"string","description":"Color code for the tag","uniqueKey":"product.tags.items.[INDEX].color.oneOf.0","typeLabel":"string"},{"type":"null","description":"Color code for the tag","uniqueKey":"product.tags.items.[INDEX].color.oneOf.1","typeLabel":"null"}],"uniqueKey":"product.tags.items.[INDEX].color","typeLabel":"string | null"}},"required":["id","name"],"uniqueKey":"product.tags.items.[INDEX]","typeLabel":"object"},"uniqueKey":"product.tags","typeLabel":"object[]"},"substitutions":{"type":"array","description":"Product substitutions, these products may be substituted if the main product is out of stock","items":{"type":"object","properties":{"id":{"type":"integer","description":"Substitution record ID","uniqueKey":"product.substitutions.items.[INDEX].id","typeLabel":"integer"},"priority":{"type":"integer","description":"Substitution priority (lower number = higher priority)","uniqueKey":"product.substitutions.items.[INDEX].priority","typeLabel":"integer"},"product":{"type":"object","description":"The substitute product","properties":{"id":{"type":"integer","description":"Unique identifier for the product","uniqueKey":"product.substitutions.items.[INDEX].product.id","typeLabel":"integer"},"name":{"type":"string","description":"Product name","uniqueKey":"product.substitutions.items.[INDEX].product.name","typeLabel":"string"},"description":{"oneOf":[{"type":"string","description":"Product description","uniqueKey":"product.substitutions.items.[INDEX].product.description.oneOf.0","typeLabel":"string"},{"type":"null","description":"Product description","uniqueKey":"product.substitutions.items.[INDEX].product.description.oneOf.1","typeLabel":"null"}],"uniqueKey":"product.substitutions.items.[INDEX].product.description","typeLabel":"string | null"},"retail_price":{"type":"number","format":"float","description":"Retail price","uniqueKey":"product.substitutions.items.[INDEX].product.retail_price","typeLabel":"number\u003cfloat>"},"wholesale_price":{"type":"number","format":"float","description":"Wholesale price","uniqueKey":"product.substitutions.items.[INDEX].product.wholesale_price","typeLabel":"number\u003cfloat>"},"unit_cost":{"type":"number","format":"float","description":"Cost per unit","uniqueKey":"product.substitutions.items.[INDEX].product.unit_cost","typeLabel":"number\u003cfloat>"},"product_weight":{"oneOf":[{"type":"array","items":{"type":"object","required":["unit","value"],"properties":{"unit":{"type":"string","enum":["lb","oz"],"description":"Weight unit","isRequired":true,"uniqueKey":"product.substitutions.items.[INDEX].product.product_weight.oneOf.0.items.[INDEX].unit","typeLabel":"enum\u003cstring>"},"value":{"type":"number","format":"float","minimum":0,"description":"Weight value","isRequired":true,"uniqueKey":"product.substitutions.items.[INDEX].product.product_weight.oneOf.0.items.[INDEX].value","typeLabel":"number\u003cfloat>"}},"uniqueKey":"product.substitutions.items.[INDEX].product.product_weight.oneOf.0.items.[INDEX]","typeLabel":"object"},"uniqueKey":"product.substitutions.items.[INDEX].product.product_weight.oneOf.0","typeLabel":"object[]"},{"type":"null","items":{"type":"object","required":["unit","value"],"properties":{"unit":{"type":"string","enum":["lb","oz"],"description":"Weight unit"},"value":{"type":"number","format":"float","minimum":0,"description":"Weight value"}}},"uniqueKey":"product.substitutions.items.[INDEX].product.product_weight.oneOf.1","typeLabel":"null"}],"uniqueKey":"product.substitutions.items.[INDEX].product.product_weight","typeLabel":"object[] | null"},"product_weight_oz":{"oneOf":[{"type":"number","format":"float","uniqueKey":"product.substitutions.items.[INDEX].product.product_weight_oz.oneOf.0","typeLabel":"number\u003cfloat>"},{"type":"null","format":"float","uniqueKey":"product.substitutions.items.[INDEX].product.product_weight_oz.oneOf.1","typeLabel":"null"}],"uniqueKey":"product.substitutions.items.[INDEX].product.product_weight_oz","typeLabel":"number\u003cfloat> | null"},"product_weight_lb":{"oneOf":[{"type":"number","format":"float","uniqueKey":"product.substitutions.items.[INDEX].product.product_weight_lb.oneOf.0","typeLabel":"number\u003cfloat>"},{"type":"null","format":"float","uniqueKey":"product.substitutions.items.[INDEX].product.product_weight_lb.oneOf.1","typeLabel":"null"}],"uniqueKey":"product.substitutions.items.[INDEX].product.product_weight_lb","typeLabel":"number\u003cfloat> | null"},"dimensional_weight":{"oneOf":[{"type":"array","items":{"type":"object","required":["unit","value"],"properties":{"unit":{"type":"string","enum":["lb","oz"],"description":"Weight unit","isRequired":true,"uniqueKey":"product.substitutions.items.[INDEX].product.dimensional_weight.oneOf.0.items.[INDEX].unit","typeLabel":"enum\u003cstring>"},"value":{"type":"number","format":"float","minimum":0,"description":"Weight value","isRequired":true,"uniqueKey":"product.substitutions.items.[INDEX].product.dimensional_weight.oneOf.0.items.[INDEX].value","typeLabel":"number\u003cfloat>"}},"uniqueKey":"product.substitutions.items.[INDEX].product.dimensional_weight.oneOf.0.items.[INDEX]","typeLabel":"object"},"uniqueKey":"product.substitutions.items.[INDEX].product.dimensional_weight.oneOf.0","typeLabel":"object[]"},{"type":"null","items":{"type":"object","required":["unit","value"],"properties":{"unit":{"type":"string","enum":["lb","oz"],"description":"Weight unit"},"value":{"type":"number","format":"float","minimum":0,"description":"Weight value"}}},"uniqueKey":"product.substitutions.items.[INDEX].product.dimensional_weight.oneOf.1","typeLabel":"null"}],"uniqueKey":"product.substitutions.items.[INDEX].product.dimensional_weight","typeLabel":"object[] | null"},"dimensional_weight_oz":{"oneOf":[{"type":"number","format":"float","uniqueKey":"product.substitutions.items.[INDEX].product.dimensional_weight_oz.oneOf.0","typeLabel":"number\u003cfloat>"},{"type":"null","format":"float","uniqueKey":"product.substitutions.items.[INDEX].product.dimensional_weight_oz.oneOf.1","typeLabel":"null"}],"uniqueKey":"product.substitutions.items.[INDEX].product.dimensional_weight_oz","typeLabel":"number\u003cfloat> | null"},"dimensional_weight_lb":{"oneOf":[{"type":"number","format":"float","uniqueKey":"product.substitutions.items.[INDEX].product.dimensional_weight_lb.oneOf.0","typeLabel":"number\u003cfloat>"},{"type":"null","format":"float","uniqueKey":"product.substitutions.items.[INDEX].product.dimensional_weight_lb.oneOf.1","typeLabel":"null"}],"uniqueKey":"product.substitutions.items.[INDEX].product.dimensional_weight_lb","typeLabel":"number\u003cfloat> | null"},"product_length":{"type":"number","format":"float","description":"Length of the product (in inches)","uniqueKey":"product.substitutions.items.[INDEX].product.product_length","typeLabel":"number\u003cfloat>"},"product_width":{"type":"number","format":"float","description":"Width of the product (in inches)","uniqueKey":"product.substitutions.items.[INDEX].product.product_width","typeLabel":"number\u003cfloat>"},"product_height":{"type":"number","format":"float","description":"Height of the product (in inches)","uniqueKey":"product.substitutions.items.[INDEX].product.product_height","typeLabel":"number\u003cfloat>"},"box_weight":{"oneOf":[{"type":"array","items":{"type":"object","required":["unit","value"],"properties":{"unit":{"type":"string","enum":["lb","oz"],"description":"Weight unit","isRequired":true,"uniqueKey":"product.substitutions.items.[INDEX].product.box_weight.oneOf.0.items.[INDEX].unit","typeLabel":"enum\u003cstring>"},"value":{"type":"number","format":"float","minimum":0,"description":"Weight value","isRequired":true,"uniqueKey":"product.substitutions.items.[INDEX].product.box_weight.oneOf.0.items.[INDEX].value","typeLabel":"number\u003cfloat>"}},"uniqueKey":"product.substitutions.items.[INDEX].product.box_weight.oneOf.0.items.[INDEX]","typeLabel":"object"},"uniqueKey":"product.substitutions.items.[INDEX].product.box_weight.oneOf.0","typeLabel":"object[]"},{"type":"null","items":{"type":"object","required":["unit","value"],"properties":{"unit":{"type":"string","enum":["lb","oz"],"description":"Weight unit"},"value":{"type":"number","format":"float","minimum":0,"description":"Weight value"}}},"uniqueKey":"product.substitutions.items.[INDEX].product.box_weight.oneOf.1","typeLabel":"null"}],"uniqueKey":"product.substitutions.items.[INDEX].product.box_weight","typeLabel":"object[] | null"},"box_weight_oz":{"oneOf":[{"type":"number","format":"float","uniqueKey":"product.substitutions.items.[INDEX].product.box_weight_oz.oneOf.0","typeLabel":"number\u003cfloat>"},{"type":"null","format":"float","uniqueKey":"product.substitutions.items.[INDEX].product.box_weight_oz.oneOf.1","typeLabel":"null"}],"uniqueKey":"product.substitutions.items.[INDEX].product.box_weight_oz","typeLabel":"number\u003cfloat> | null"},"box_weight_lb":{"oneOf":[{"type":"number","format":"float","uniqueKey":"product.substitutions.items.[INDEX].product.box_weight_lb.oneOf.0","typeLabel":"number\u003cfloat>"},{"type":"null","format":"float","uniqueKey":"product.substitutions.items.[INDEX].product.box_weight_lb.oneOf.1","typeLabel":"null"}],"uniqueKey":"product.substitutions.items.[INDEX].product.box_weight_lb","typeLabel":"number\u003cfloat> | null"},"box_length":{"oneOf":[{"type":"number","format":"float","description":"Length of the box (in inches)","uniqueKey":"product.substitutions.items.[INDEX].product.box_length.oneOf.0","typeLabel":"number\u003cfloat>"},{"type":"null","format":"float","description":"Length of the box (in inches)","uniqueKey":"product.substitutions.items.[INDEX].product.box_length.oneOf.1","typeLabel":"null"}],"uniqueKey":"product.substitutions.items.[INDEX].product.box_length","typeLabel":"number\u003cfloat> | null"},"box_width":{"oneOf":[{"type":"number","format":"float","description":"Width of the box (in inches)","uniqueKey":"product.substitutions.items.[INDEX].product.box_width.oneOf.0","typeLabel":"number\u003cfloat>"},{"type":"null","format":"float","description":"Width of the box (in inches)","uniqueKey":"product.substitutions.items.[INDEX].product.box_width.oneOf.1","typeLabel":"null"}],"uniqueKey":"product.substitutions.items.[INDEX].product.box_width","typeLabel":"number\u003cfloat> | null"},"box_height":{"oneOf":[{"type":"number","format":"float","description":"Height of the box (in inches)","uniqueKey":"product.substitutions.items.[INDEX].product.box_height.oneOf.0","typeLabel":"number\u003cfloat>"},{"type":"null","format":"float","description":"Height of the box (in inches)","uniqueKey":"product.substitutions.items.[INDEX].product.box_height.oneOf.1","typeLabel":"null"}],"uniqueKey":"product.substitutions.items.[INDEX].product.box_height","typeLabel":"number\u003cfloat> | null"},"carton_weight":{"oneOf":[{"type":"array","items":{"type":"object","required":["unit","value"],"properties":{"unit":{"type":"string","enum":["lb","oz"],"description":"Weight unit","isRequired":true,"uniqueKey":"product.substitutions.items.[INDEX].product.carton_weight.oneOf.0.items.[INDEX].unit","typeLabel":"enum\u003cstring>"},"value":{"type":"number","format":"float","minimum":0,"description":"Weight value","isRequired":true,"uniqueKey":"product.substitutions.items.[INDEX].product.carton_weight.oneOf.0.items.[INDEX].value","typeLabel":"number\u003cfloat>"}},"uniqueKey":"product.substitutions.items.[INDEX].product.carton_weight.oneOf.0.items.[INDEX]","typeLabel":"object"},"uniqueKey":"product.substitutions.items.[INDEX].product.carton_weight.oneOf.0","typeLabel":"object[]"},{"type":"null","items":{"type":"object","required":["unit","value"],"properties":{"unit":{"type":"string","enum":["lb","oz"],"description":"Weight unit"},"value":{"type":"number","format":"float","minimum":0,"description":"Weight value"}}},"uniqueKey":"product.substitutions.items.[INDEX].product.carton_weight.oneOf.1","typeLabel":"null"}],"uniqueKey":"product.substitutions.items.[INDEX].product.carton_weight","typeLabel":"object[] | null"},"carton_weight_oz":{"oneOf":[{"type":"number","format":"float","uniqueKey":"product.substitutions.items.[INDEX].product.carton_weight_oz.oneOf.0","typeLabel":"number\u003cfloat>"},{"type":"null","format":"float","uniqueKey":"product.substitutions.items.[INDEX].product.carton_weight_oz.oneOf.1","typeLabel":"null"}],"uniqueKey":"product.substitutions.items.[INDEX].product.carton_weight_oz","typeLabel":"number\u003cfloat> | null"},"carton_weight_lb":{"oneOf":[{"type":"number","format":"float","uniqueKey":"product.substitutions.items.[INDEX].product.carton_weight_lb.oneOf.0","typeLabel":"number\u003cfloat>"},{"type":"null","format":"float","uniqueKey":"product.substitutions.items.[INDEX].product.carton_weight_lb.oneOf.1","typeLabel":"null"}],"uniqueKey":"product.substitutions.items.[INDEX].product.carton_weight_lb","typeLabel":"number\u003cfloat> | null"},"carton_length":{"oneOf":[{"type":"number","format":"float","description":"Length of the carton (in inches)","uniqueKey":"product.substitutions.items.[INDEX].product.carton_length.oneOf.0","typeLabel":"number\u003cfloat>"},{"type":"null","format":"float","description":"Length of the carton (in inches)","uniqueKey":"product.substitutions.items.[INDEX].product.carton_length.oneOf.1","typeLabel":"null"}],"uniqueKey":"product.substitutions.items.[INDEX].product.carton_length","typeLabel":"number\u003cfloat> | null"},"carton_width":{"oneOf":[{"type":"number","format":"float","description":"Width of the carton (in inches)","uniqueKey":"product.substitutions.items.[INDEX].product.carton_width.oneOf.0","typeLabel":"number\u003cfloat>"},{"type":"null","format":"float","description":"Width of the carton (in inches)","uniqueKey":"product.substitutions.items.[INDEX].product.carton_width.oneOf.1","typeLabel":"null"}],"uniqueKey":"product.substitutions.items.[INDEX].product.carton_width","typeLabel":"number\u003cfloat> | null"},"carton_height":{"oneOf":[{"type":"number","format":"float","description":"Height of the carton (in inches)","uniqueKey":"product.substitutions.items.[INDEX].product.carton_height.oneOf.0","typeLabel":"number\u003cfloat>"},{"type":"null","format":"float","description":"Height of the carton (in inches)","uniqueKey":"product.substitutions.items.[INDEX].product.carton_height.oneOf.1","typeLabel":"null"}],"uniqueKey":"product.substitutions.items.[INDEX].product.carton_height","typeLabel":"number\u003cfloat> | null"},"shipping_weight":{"oneOf":[{"type":"array","items":{"type":"object","required":["unit","value"],"properties":{"unit":{"type":"string","enum":["lb","oz"],"description":"Weight unit","isRequired":true,"uniqueKey":"product.substitutions.items.[INDEX].product.shipping_weight.oneOf.0.items.[INDEX].unit","typeLabel":"enum\u003cstring>"},"value":{"type":"number","format":"float","minimum":0,"description":"Weight value","isRequired":true,"uniqueKey":"product.substitutions.items.[INDEX].product.shipping_weight.oneOf.0.items.[INDEX].value","typeLabel":"number\u003cfloat>"}},"uniqueKey":"product.substitutions.items.[INDEX].product.shipping_weight.oneOf.0.items.[INDEX]","typeLabel":"object"},"uniqueKey":"product.substitutions.items.[INDEX].product.shipping_weight.oneOf.0","typeLabel":"object[]"},{"type":"null","items":{"type":"object","required":["unit","value"],"properties":{"unit":{"type":"string","enum":["lb","oz"],"description":"Weight unit"},"value":{"type":"number","format":"float","minimum":0,"description":"Weight value"}}},"uniqueKey":"product.substitutions.items.[INDEX].product.shipping_weight.oneOf.1","typeLabel":"null"}],"uniqueKey":"product.substitutions.items.[INDEX].product.shipping_weight","typeLabel":"object[] | null"},"shipping_weight_oz":{"oneOf":[{"type":"number","format":"float","uniqueKey":"product.substitutions.items.[INDEX].product.shipping_weight_oz.oneOf.0","typeLabel":"number\u003cfloat>"},{"type":"null","format":"float","uniqueKey":"product.substitutions.items.[INDEX].product.shipping_weight_oz.oneOf.1","typeLabel":"null"}],"uniqueKey":"product.substitutions.items.[INDEX].product.shipping_weight_oz","typeLabel":"number\u003cfloat> | null"},"shipping_weight_lb":{"oneOf":[{"type":"number","format":"float","uniqueKey":"product.substitutions.items.[INDEX].product.shipping_weight_lb.oneOf.0","typeLabel":"number\u003cfloat>"},{"type":"null","format":"float","uniqueKey":"product.substitutions.items.[INDEX].product.shipping_weight_lb.oneOf.1","typeLabel":"null"}],"uniqueKey":"product.substitutions.items.[INDEX].product.shipping_weight_lb","typeLabel":"number\u003cfloat> | null"},"shipping_length":{"oneOf":[{"type":"number","format":"float","description":"Shipping length (in inches)","uniqueKey":"product.substitutions.items.[INDEX].product.shipping_length.oneOf.0","typeLabel":"number\u003cfloat>"},{"type":"null","format":"float","description":"Shipping length (in inches)","uniqueKey":"product.substitutions.items.[INDEX].product.shipping_length.oneOf.1","typeLabel":"null"}],"uniqueKey":"product.substitutions.items.[INDEX].product.shipping_length","typeLabel":"number\u003cfloat> | null"},"shipping_width":{"oneOf":[{"type":"number","format":"float","description":"Shipping width (in inches)","uniqueKey":"product.substitutions.items.[INDEX].product.shipping_width.oneOf.0","typeLabel":"number\u003cfloat>"},{"type":"null","format":"float","description":"Shipping width (in inches)","uniqueKey":"product.substitutions.items.[INDEX].product.shipping_width.oneOf.1","typeLabel":"null"}],"uniqueKey":"product.substitutions.items.[INDEX].product.shipping_width","typeLabel":"number\u003cfloat> | null"},"shipping_height":{"oneOf":[{"type":"number","format":"float","description":"Shipping height (in inches)","uniqueKey":"product.substitutions.items.[INDEX].product.shipping_height.oneOf.0","typeLabel":"number\u003cfloat>"},{"type":"null","format":"float","description":"Shipping height (in inches)","uniqueKey":"product.substitutions.items.[INDEX].product.shipping_height.oneOf.1","typeLabel":"null"}],"uniqueKey":"product.substitutions.items.[INDEX].product.shipping_height","typeLabel":"number\u003cfloat> | null"},"pallet_weight":{"oneOf":[{"type":"array","items":{"type":"object","required":["unit","value"],"properties":{"unit":{"type":"string","enum":["lb","oz"],"description":"Weight unit","isRequired":true,"uniqueKey":"product.substitutions.items.[INDEX].product.pallet_weight.oneOf.0.items.[INDEX].unit","typeLabel":"enum\u003cstring>"},"value":{"type":"number","format":"float","minimum":0,"description":"Weight value","isRequired":true,"uniqueKey":"product.substitutions.items.[INDEX].product.pallet_weight.oneOf.0.items.[INDEX].value","typeLabel":"number\u003cfloat>"}},"uniqueKey":"product.substitutions.items.[INDEX].product.pallet_weight.oneOf.0.items.[INDEX]","typeLabel":"object"},"uniqueKey":"product.substitutions.items.[INDEX].product.pallet_weight.oneOf.0","typeLabel":"object[]"},{"type":"null","items":{"type":"object","required":["unit","value"],"properties":{"unit":{"type":"string","enum":["lb","oz"],"description":"Weight unit"},"value":{"type":"number","format":"float","minimum":0,"description":"Weight value"}}},"uniqueKey":"product.substitutions.items.[INDEX].product.pallet_weight.oneOf.1","typeLabel":"null"}],"uniqueKey":"product.substitutions.items.[INDEX].product.pallet_weight","typeLabel":"object[] | null"},"pallet_weight_oz":{"oneOf":[{"type":"number","format":"float","uniqueKey":"product.substitutions.items.[INDEX].product.pallet_weight_oz.oneOf.0","typeLabel":"number\u003cfloat>"},{"type":"null","format":"float","uniqueKey":"product.substitutions.items.[INDEX].product.pallet_weight_oz.oneOf.1","typeLabel":"null"}],"uniqueKey":"product.substitutions.items.[INDEX].product.pallet_weight_oz","typeLabel":"number\u003cfloat> | null"},"pallet_weight_lb":{"oneOf":[{"type":"number","format":"float","uniqueKey":"product.substitutions.items.[INDEX].product.pallet_weight_lb.oneOf.0","typeLabel":"number\u003cfloat>"},{"type":"null","format":"float","uniqueKey":"product.substitutions.items.[INDEX].product.pallet_weight_lb.oneOf.1","typeLabel":"null"}],"uniqueKey":"product.substitutions.items.[INDEX].product.pallet_weight_lb","typeLabel":"number\u003cfloat> | null"},"pallet_length":{"oneOf":[{"type":"number","format":"float","description":"Length of the pallet (in inches)","uniqueKey":"product.substitutions.items.[INDEX].product.pallet_length.oneOf.0","typeLabel":"number\u003cfloat>"},{"type":"null","format":"float","description":"Length of the pallet (in inches)","uniqueKey":"product.substitutions.items.[INDEX].product.pallet_length.oneOf.1","typeLabel":"null"}],"uniqueKey":"product.substitutions.items.[INDEX].product.pallet_length","typeLabel":"number\u003cfloat> | null"},"pallet_width":{"oneOf":[{"type":"number","format":"float","description":"Width of the pallet (in inches)","uniqueKey":"product.substitutions.items.[INDEX].product.pallet_width.oneOf.0","typeLabel":"number\u003cfloat>"},{"type":"null","format":"float","description":"Width of the pallet (in inches)","uniqueKey":"product.substitutions.items.[INDEX].product.pallet_width.oneOf.1","typeLabel":"null"}],"uniqueKey":"product.substitutions.items.[INDEX].product.pallet_width","typeLabel":"number\u003cfloat> | null"},"pallet_height":{"oneOf":[{"type":"number","format":"float","description":"Height of the pallet (in inches)","uniqueKey":"product.substitutions.items.[INDEX].product.pallet_height.oneOf.0","typeLabel":"number\u003cfloat>"},{"type":"null","format":"float","description":"Height of the pallet (in inches)","uniqueKey":"product.substitutions.items.[INDEX].product.pallet_height.oneOf.1","typeLabel":"null"}],"uniqueKey":"product.substitutions.items.[INDEX].product.pallet_height","typeLabel":"number\u003cfloat> | null"},"sellable":{"type":"boolean","description":"Whether the product can be sold","uniqueKey":"product.substitutions.items.[INDEX].product.sellable","typeLabel":"boolean"},"discontinued":{"type":"boolean","description":"Whether the product is discontinued","uniqueKey":"product.substitutions.items.[INDEX].product.discontinued","typeLabel":"boolean"},"is_drop_ship_item":{"type":"boolean","description":"Whether the product is flagged as a drop-ship item. A preference marker only — it does not currently change fulfillment-order routing or purchase-order creation.","uniqueKey":"product.substitutions.items.[INDEX].product.is_drop_ship_item","typeLabel":"boolean"},"taxable":{"type":"boolean","description":"Whether the product is subject to sales tax. Defaults to true when not set.","uniqueKey":"product.substitutions.items.[INDEX].product.taxable","typeLabel":"boolean"},"image_url":{"oneOf":[{"type":"string","description":"URL to the product's main image","uniqueKey":"product.substitutions.items.[INDEX].product.image_url.oneOf.0","typeLabel":"string"},{"type":"null","description":"URL to the product's main image","uniqueKey":"product.substitutions.items.[INDEX].product.image_url.oneOf.1","typeLabel":"null"}],"uniqueKey":"product.substitutions.items.[INDEX].product.image_url","typeLabel":"string | null"},"sku":{"type":"string","description":"Internal SKU","uniqueKey":"product.substitutions.items.[INDEX].product.sku","typeLabel":"string"},"upc":{"type":"string","description":"UPC/Barcode","uniqueKey":"product.substitutions.items.[INDEX].product.upc","typeLabel":"string"},"hs_code":{"oneOf":[{"type":"string","description":"HS/HTS tariff code for the product (max 50 characters)","uniqueKey":"product.substitutions.items.[INDEX].product.hs_code.oneOf.0","typeLabel":"string"},{"type":"null","description":"HS/HTS tariff code for the product (max 50 characters)","uniqueKey":"product.substitutions.items.[INDEX].product.hs_code.oneOf.1","typeLabel":"null"}],"uniqueKey":"product.substitutions.items.[INDEX].product.hs_code","typeLabel":"string | null"},"round_up_as_component":{"type":"boolean","description":"Whether this product, when consumed as a BOM component, has its consumption quantity rounded up to whole units. Intended for discrete items (e.g. labels, boxes) that cannot be consumed fractionally.","uniqueKey":"product.substitutions.items.[INDEX].product.round_up_as_component","typeLabel":"boolean"},"created_at":{"type":"string","format":"date-time","description":"Timestamp when the product was created","uniqueKey":"product.substitutions.items.[INDEX].product.created_at","typeLabel":"string\u003cdate-time>"},"updated_at":{"type":"string","format":"date-time","description":"Timestamp when the product was last updated","uniqueKey":"product.substitutions.items.[INDEX].product.updated_at","typeLabel":"string\u003cdate-time>"}},"uniqueKey":"product.substitutions.items.[INDEX].product","typeLabel":"object"}},"uniqueKey":"product.substitutions.items.[INDEX]","typeLabel":"object"},"uniqueKey":"product.substitutions","typeLabel":"object[]"},"supplier":{"oneOf":[{"type":"object","description":"Supplier information","uniqueKey":"product.supplier.oneOf.0","typeLabel":"object"},{"type":"null","description":"Supplier information","uniqueKey":"product.supplier.oneOf.1","typeLabel":"null"}],"uniqueKey":"product.supplier","typeLabel":"object | null"},"type":{"type":"string","enum":["PRODUCT","KIT"],"description":"Product type. PRODUCT for regular products, KIT for kit products that contain other products as components.","uniqueKey":"product.type","typeLabel":"enum\u003cstring>"},"kit_items":{"oneOf":[{"type":"array","description":"Kit items (components) for kit products. Only present when type = KIT.","items":{"type":"object","properties":{"id":{"type":"integer","description":"Unique identifier for the kit item","uniqueKey":"product.kit_items.oneOf.0.items.[INDEX].id","typeLabel":"integer"},"product_id":{"type":"integer","description":"ID of the product component","uniqueKey":"product.kit_items.oneOf.0.items.[INDEX].product_id","typeLabel":"integer"},"quantity":{"type":"number","format":"float","description":"Quantity of this component in the kit","uniqueKey":"product.kit_items.oneOf.0.items.[INDEX].quantity","typeLabel":"number\u003cfloat>"},"uom_id":{"type":"integer","description":"Unit of measure ID for the quantity","uniqueKey":"product.kit_items.oneOf.0.items.[INDEX].uom_id","typeLabel":"integer"},"base_uom_quantity":{"type":"number","format":"float","description":"Quantity converted to base unit of measure","uniqueKey":"product.kit_items.oneOf.0.items.[INDEX].base_uom_quantity","typeLabel":"number\u003cfloat>"},"price":{"type":"number","format":"float","description":"Price for this kit item","uniqueKey":"product.kit_items.oneOf.0.items.[INDEX].price","typeLabel":"number\u003cfloat>"},"original_price":{"type":"number","format":"float","description":"Original price for this kit item","uniqueKey":"product.kit_items.oneOf.0.items.[INDEX].original_price","typeLabel":"number\u003cfloat>"},"total":{"type":"number","format":"float","description":"Calculated total (quantity * price)","uniqueKey":"product.kit_items.oneOf.0.items.[INDEX].total","typeLabel":"number\u003cfloat>"},"product":{"oneOf":[{"type":"object","description":"Product information for this kit item (when loaded)","properties":{"id":{"type":"integer","uniqueKey":"product.kit_items.oneOf.0.items.[INDEX].product.oneOf.0.id","typeLabel":"integer"},"name":{"type":"string","uniqueKey":"product.kit_items.oneOf.0.items.[INDEX].product.oneOf.0.name","typeLabel":"string"},"sku":{"type":"string","uniqueKey":"product.kit_items.oneOf.0.items.[INDEX].product.oneOf.0.sku","typeLabel":"string"},"description":{"oneOf":[{"type":"string","uniqueKey":"product.kit_items.oneOf.0.items.[INDEX].product.oneOf.0.description.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"product.kit_items.oneOf.0.items.[INDEX].product.oneOf.0.description.oneOf.1","typeLabel":"null"}],"uniqueKey":"product.kit_items.oneOf.0.items.[INDEX].product.oneOf.0.description","typeLabel":"string | null"},"retail_price":{"type":"number","format":"float","uniqueKey":"product.kit_items.oneOf.0.items.[INDEX].product.oneOf.0.retail_price","typeLabel":"number\u003cfloat>"},"wholesale_price":{"type":"number","format":"float","uniqueKey":"product.kit_items.oneOf.0.items.[INDEX].product.oneOf.0.wholesale_price","typeLabel":"number\u003cfloat>"}},"uniqueKey":"product.kit_items.oneOf.0.items.[INDEX].product.oneOf.0","typeLabel":"object"},{"type":"null","description":"Product information for this kit item (when loaded)","properties":{"id":{"type":"integer"},"name":{"type":"string"},"sku":{"type":"string"},"description":{"oneOf":[{"type":"string"},{"type":"null"}]},"retail_price":{"type":"number","format":"float"},"wholesale_price":{"type":"number","format":"float"}},"uniqueKey":"product.kit_items.oneOf.0.items.[INDEX].product.oneOf.1","typeLabel":"null"}],"uniqueKey":"product.kit_items.oneOf.0.items.[INDEX].product","typeLabel":"object | null"},"unit_of_measure":{"oneOf":[{"type":"object","description":"Unit of measure information (when loaded)","properties":{"id":{"type":"integer","uniqueKey":"product.kit_items.oneOf.0.items.[INDEX].unit_of_measure.oneOf.0.id","typeLabel":"integer"},"name":{"type":"string","uniqueKey":"product.kit_items.oneOf.0.items.[INDEX].unit_of_measure.oneOf.0.name","typeLabel":"string"},"description":{"oneOf":[{"type":"string","uniqueKey":"product.kit_items.oneOf.0.items.[INDEX].unit_of_measure.oneOf.0.description.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"product.kit_items.oneOf.0.items.[INDEX].unit_of_measure.oneOf.0.description.oneOf.1","typeLabel":"null"}],"uniqueKey":"product.kit_items.oneOf.0.items.[INDEX].unit_of_measure.oneOf.0.description","typeLabel":"string | null"},"base_unit":{"type":"boolean","uniqueKey":"product.kit_items.oneOf.0.items.[INDEX].unit_of_measure.oneOf.0.base_unit","typeLabel":"boolean"}},"uniqueKey":"product.kit_items.oneOf.0.items.[INDEX].unit_of_measure.oneOf.0","typeLabel":"object"},{"type":"null","description":"Unit of measure information (when loaded)","properties":{"id":{"type":"integer"},"name":{"type":"string"},"description":{"oneOf":[{"type":"string"},{"type":"null"}]},"base_unit":{"type":"boolean"}},"uniqueKey":"product.kit_items.oneOf.0.items.[INDEX].unit_of_measure.oneOf.1","typeLabel":"null"}],"uniqueKey":"product.kit_items.oneOf.0.items.[INDEX].unit_of_measure","typeLabel":"object | null"}},"uniqueKey":"product.kit_items.oneOf.0.items.[INDEX]","typeLabel":"object"},"uniqueKey":"product.kit_items.oneOf.0","typeLabel":"object[]"},{"type":"null","description":"Kit items (components) for kit products. Only present when type = KIT.","items":{"type":"object","properties":{"id":{"type":"integer","description":"Unique identifier for the kit item"},"product_id":{"type":"integer","description":"ID of the product component"},"quantity":{"type":"number","format":"float","description":"Quantity of this component in the kit"},"uom_id":{"type":"integer","description":"Unit of measure ID for the quantity"},"base_uom_quantity":{"type":"number","format":"float","description":"Quantity converted to base unit of measure"},"price":{"type":"number","format":"float","description":"Price for this kit item"},"original_price":{"type":"number","format":"float","description":"Original price for this kit item"},"total":{"type":"number","format":"float","description":"Calculated total (quantity * price)"},"product":{"oneOf":[{"type":"object","description":"Product information for this kit item (when loaded)","properties":{"id":{"type":"integer"},"name":{"type":"string"},"sku":{"type":"string"},"description":{"oneOf":[{"type":"string"},{"type":"null"}]},"retail_price":{"type":"number","format":"float"},"wholesale_price":{"type":"number","format":"float"}}},{"type":"null","description":"Product information for this kit item (when loaded)","properties":{"id":{"type":"integer"},"name":{"type":"string"},"sku":{"type":"string"},"description":{"oneOf":[{"type":"string"},{"type":"null"}]},"retail_price":{"type":"number","format":"float"},"wholesale_price":{"type":"number","format":"float"}}}]},"unit_of_measure":{"oneOf":[{"type":"object","description":"Unit of measure information (when loaded)","properties":{"id":{"type":"integer"},"name":{"type":"string"},"description":{"oneOf":[{"type":"string"},{"type":"null"}]},"base_unit":{"type":"boolean"}}},{"type":"null","description":"Unit of measure information (when loaded)","properties":{"id":{"type":"integer"},"name":{"type":"string"},"description":{"oneOf":[{"type":"string"},{"type":"null"}]},"base_unit":{"type":"boolean"}}}]}}},"uniqueKey":"product.kit_items.oneOf.1","typeLabel":"null"}],"uniqueKey":"product.kit_items","typeLabel":"object[] | null"},"priority_list":{"oneOf":[{"type":"object","description":"Fulfillment priority list assigned to this product","properties":{"id":{"type":"integer","description":"Priority list ID","uniqueKey":"product.priority_list.oneOf.0.id","typeLabel":"integer"},"name":{"type":"string","description":"Priority list name","uniqueKey":"product.priority_list.oneOf.0.name","typeLabel":"string"},"description":{"oneOf":[{"type":"string","description":"Priority list description","uniqueKey":"product.priority_list.oneOf.0.description.oneOf.0","typeLabel":"string"},{"type":"null","description":"Priority list description","uniqueKey":"product.priority_list.oneOf.0.description.oneOf.1","typeLabel":"null"}],"uniqueKey":"product.priority_list.oneOf.0.description","typeLabel":"string | null"}},"uniqueKey":"product.priority_list.oneOf.0","typeLabel":"object"},{"type":"null","description":"Fulfillment priority list assigned to this product","properties":{"id":{"type":"integer","description":"Priority list ID"},"name":{"type":"string","description":"Priority list name"},"description":{"oneOf":[{"type":"string","description":"Priority list description"},{"type":"null","description":"Priority list description"}]}},"uniqueKey":"product.priority_list.oneOf.1","typeLabel":"null"}],"uniqueKey":"product.priority_list","typeLabel":"object | null"},"distribution_template":{"oneOf":[{"type":"object","description":"The distribution template (size curve) directly assigned to this product.\nReturns `null` when no template is assigned (the tenant default applies\nwhen resolving for production-run drafting). Use the dedicated\n`PUT /products/{productId}/distribution-template` endpoint to assign one.\n","properties":{"id":{"type":"integer","description":"Distribution template ID","uniqueKey":"product.distribution_template.oneOf.0.id","typeLabel":"integer"},"name":{"type":"string","description":"Distribution template name","uniqueKey":"product.distribution_template.oneOf.0.name","typeLabel":"string"},"source":{"type":"string","enum":["assigned"],"description":"Always `assigned` — only directly assigned templates are returned here.","uniqueKey":"product.distribution_template.oneOf.0.source","typeLabel":"enum\u003cstring>"}},"uniqueKey":"product.distribution_template.oneOf.0","typeLabel":"object"},{"type":"null","description":"The distribution template (size curve) directly assigned to this product.\nReturns `null` when no template is assigned (the tenant default applies\nwhen resolving for production-run drafting). Use the dedicated\n`PUT /products/{productId}/distribution-template` endpoint to assign one.\n","properties":{"id":{"type":"integer","description":"Distribution template ID"},"name":{"type":"string","description":"Distribution template name"},"source":{"type":"string","enum":["assigned"],"description":"Always `assigned` — only directly assigned templates are returned here."}},"uniqueKey":"product.distribution_template.oneOf.1","typeLabel":"null"}],"uniqueKey":"product.distribution_template","typeLabel":"object | null"},"distribution_template_category":{"oneOf":[{"type":"object","description":"The size-curve category assigned to this master SKU, used for\ncategory × warehouse resolution of a distribution template when no\ntemplate is directly pinned. Returns `null` when no category is assigned.\nUse the dedicated `PUT /products/{productId}/distribution-template-category`\nendpoint to assign one.\n","properties":{"id":{"type":"integer","description":"Size-curve category ID","uniqueKey":"product.distribution_template_category.oneOf.0.id","typeLabel":"integer"},"name":{"type":"string","description":"Size-curve category name","uniqueKey":"product.distribution_template_category.oneOf.0.name","typeLabel":"string"}},"uniqueKey":"product.distribution_template_category.oneOf.0","typeLabel":"object"},{"type":"null","description":"The size-curve category assigned to this master SKU, used for\ncategory × warehouse resolution of a distribution template when no\ntemplate is directly pinned. Returns `null` when no category is assigned.\nUse the dedicated `PUT /products/{productId}/distribution-template-category`\nendpoint to assign one.\n","properties":{"id":{"type":"integer","description":"Size-curve category ID"},"name":{"type":"string","description":"Size-curve category name"}},"uniqueKey":"product.distribution_template_category.oneOf.1","typeLabel":"null"}],"uniqueKey":"product.distribution_template_category","typeLabel":"object | null"},"boms":{"type":"array","description":"BOMs (Bills of Materials) associated with this product","items":{"type":"object","properties":{"id":{"type":"integer","description":"Unique identifier for the BOM","isRequired":true,"uniqueKey":"product.boms.items.[INDEX].id","typeLabel":"integer"},"name":{"type":"string","description":"BOM name","isRequired":true,"uniqueKey":"product.boms.items.[INDEX].name","typeLabel":"string"},"items":{"type":"array","description":"BOM items (components/products). Returned sorted by each item's `order` value, then by `id`, so lines appear in the sequence saved on the BOM.","items":{"type":"object","properties":{"id":{"type":"integer","description":"Unique identifier for the BOM item","isRequired":true,"uniqueKey":"product.boms.items.[INDEX].\\items.items.[INDEX].id","typeLabel":"integer"},"bom_id":{"type":"integer","description":"ID of the BOM this item belongs to","isRequired":true,"uniqueKey":"product.boms.items.[INDEX].\\items.items.[INDEX].bom_id","typeLabel":"integer"},"product_id":{"type":"integer","description":"ID of the product/component","isRequired":true,"uniqueKey":"product.boms.items.[INDEX].\\items.items.[INDEX].product_id","typeLabel":"integer"},"quantity":{"type":"number","format":"float","description":"Quantity required for this item","isRequired":true,"uniqueKey":"product.boms.items.[INDEX].\\items.items.[INDEX].quantity","typeLabel":"number\u003cfloat>"},"product":{"oneOf":[{"type":"object","description":"Product information (when loaded)","properties":{"id":{"type":"integer","uniqueKey":"product.boms.items.[INDEX].\\items.items.[INDEX].product.oneOf.0.id","typeLabel":"integer"},"name":{"type":"string","uniqueKey":"product.boms.items.[INDEX].\\items.items.[INDEX].product.oneOf.0.name","typeLabel":"string"},"sku":{"type":"string","uniqueKey":"product.boms.items.[INDEX].\\items.items.[INDEX].product.oneOf.0.sku","typeLabel":"string"},"description":{"oneOf":[{"type":"string","uniqueKey":"product.boms.items.[INDEX].\\items.items.[INDEX].product.oneOf.0.description.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"product.boms.items.[INDEX].\\items.items.[INDEX].product.oneOf.0.description.oneOf.1","typeLabel":"null"}],"uniqueKey":"product.boms.items.[INDEX].\\items.items.[INDEX].product.oneOf.0.description","typeLabel":"string | null"}},"uniqueKey":"product.boms.items.[INDEX].\\items.items.[INDEX].product.oneOf.0","typeLabel":"object"},{"type":"null","description":"Product information (when loaded)","properties":{"id":{"type":"integer"},"name":{"type":"string"},"sku":{"type":"string"},"description":{"oneOf":[{"type":"string"},{"type":"null"}]}},"uniqueKey":"product.boms.items.[INDEX].\\items.items.[INDEX].product.oneOf.1","typeLabel":"null"}],"uniqueKey":"product.boms.items.[INDEX].\\items.items.[INDEX].product","typeLabel":"object | null"},"base_quantity":{"type":"number","format":"float","description":"Base quantity (converted to base unit of measure)","uniqueKey":"product.boms.items.[INDEX].\\items.items.[INDEX].base_quantity","typeLabel":"number\u003cfloat>"},"note":{"oneOf":[{"type":"string","description":"Optional note for this item","uniqueKey":"product.boms.items.[INDEX].\\items.items.[INDEX].note.oneOf.0","typeLabel":"string"},{"type":"null","description":"Optional note for this item","uniqueKey":"product.boms.items.[INDEX].\\items.items.[INDEX].note.oneOf.1","typeLabel":"null"}],"uniqueKey":"product.boms.items.[INDEX].\\items.items.[INDEX].note","typeLabel":"string | null"},"uom_id":{"oneOf":[{"type":"integer","description":"Unit of measure ID","uniqueKey":"product.boms.items.[INDEX].\\items.items.[INDEX].uom_id.oneOf.0","typeLabel":"integer"},{"type":"null","description":"Unit of measure ID","uniqueKey":"product.boms.items.[INDEX].\\items.items.[INDEX].uom_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"product.boms.items.[INDEX].\\items.items.[INDEX].uom_id","typeLabel":"integer | null"},"unit_of_measure":{"oneOf":[{"type":"object","description":"Unit of measure information (when loaded)","properties":{"id":{"type":"integer","uniqueKey":"product.boms.items.[INDEX].\\items.items.[INDEX].unit_of_measure.oneOf.0.id","typeLabel":"integer"},"name":{"type":"string","uniqueKey":"product.boms.items.[INDEX].\\items.items.[INDEX].unit_of_measure.oneOf.0.name","typeLabel":"string"}},"uniqueKey":"product.boms.items.[INDEX].\\items.items.[INDEX].unit_of_measure.oneOf.0","typeLabel":"object"},{"type":"null","description":"Unit of measure information (when loaded)","properties":{"id":{"type":"integer"},"name":{"type":"string"}},"uniqueKey":"product.boms.items.[INDEX].\\items.items.[INDEX].unit_of_measure.oneOf.1","typeLabel":"null"}],"uniqueKey":"product.boms.items.[INDEX].\\items.items.[INDEX].unit_of_measure","typeLabel":"object | null"},"order":{"oneOf":[{"type":"integer","description":"Display order for this item","uniqueKey":"product.boms.items.[INDEX].\\items.items.[INDEX].order.oneOf.0","typeLabel":"integer"},{"type":"null","description":"Display order for this item","uniqueKey":"product.boms.items.[INDEX].\\items.items.[INDEX].order.oneOf.1","typeLabel":"null"}],"uniqueKey":"product.boms.items.[INDEX].\\items.items.[INDEX].order","typeLabel":"integer | null"},"consumption_basis":{"type":"string","enum":["planned","actual"],"description":"Determines how much of this component an assembly/work order consumes. `planned` consumes the BOM-defined quantity; `actual` consumes the quantity actually reported during production. Defaults to `planned`.","uniqueKey":"product.boms.items.[INDEX].\\items.items.[INDEX].consumption_basis","typeLabel":"enum\u003cstring>"},"created_at":{"type":"string","format":"date-time","description":"Timestamp when the item was created","uniqueKey":"product.boms.items.[INDEX].\\items.items.[INDEX].created_at","typeLabel":"string\u003cdate-time>"},"updated_at":{"type":"string","format":"date-time","description":"Timestamp when the item was last updated","uniqueKey":"product.boms.items.[INDEX].\\items.items.[INDEX].updated_at","typeLabel":"string\u003cdate-time>"}},"required":["id","bom_id","product_id","quantity"],"uniqueKey":"product.boms.items.[INDEX].\\items.items.[INDEX]","typeLabel":"object"},"uniqueKey":"product.boms.items.[INDEX].\\items","typeLabel":"object[]"},"extra_costs":{"type":"array","description":"Additional costs associated with the BOM","items":{"type":"object","properties":{"id":{"type":"integer","description":"Unique identifier for the extra cost","isRequired":true,"uniqueKey":"product.boms.items.[INDEX].extra_costs.items.[INDEX].id","typeLabel":"integer"},"name":{"type":"string","description":"Name/description of the extra cost","isRequired":true,"uniqueKey":"product.boms.items.[INDEX].extra_costs.items.[INDEX].name","typeLabel":"string"},"quantity":{"type":"number","format":"float","description":"Quantity for this cost item","isRequired":true,"uniqueKey":"product.boms.items.[INDEX].extra_costs.items.[INDEX].quantity","typeLabel":"number\u003cfloat>"},"unit_price":{"type":"number","format":"float","description":"Unit price for this cost item","isRequired":true,"uniqueKey":"product.boms.items.[INDEX].extra_costs.items.[INDEX].unit_price","typeLabel":"number\u003cfloat>"},"line_total":{"type":"number","format":"float","description":"Total cost (quantity × unit_price), calculated automatically on the backend. This field is read-only and should not be provided when creating or updating extra costs.","isRequired":true,"uniqueKey":"product.boms.items.[INDEX].extra_costs.items.[INDEX].line_total","typeLabel":"number\u003cfloat>"},"created_at":{"type":"string","format":"date-time","description":"Timestamp when the extra cost was created","uniqueKey":"product.boms.items.[INDEX].extra_costs.items.[INDEX].created_at","typeLabel":"string\u003cdate-time>"},"updated_at":{"type":"string","format":"date-time","description":"Timestamp when the extra cost was last updated","uniqueKey":"product.boms.items.[INDEX].extra_costs.items.[INDEX].updated_at","typeLabel":"string\u003cdate-time>"}},"required":["id","name","quantity","unit_price","line_total"],"uniqueKey":"product.boms.items.[INDEX].extra_costs.items.[INDEX]","typeLabel":"object"},"uniqueKey":"product.boms.items.[INDEX].extra_costs","typeLabel":"object[]"},"created_at":{"type":"string","format":"date-time","description":"Timestamp when the BOM was created","uniqueKey":"product.boms.items.[INDEX].created_at","typeLabel":"string\u003cdate-time>"},"updated_at":{"type":"string","format":"date-time","description":"Timestamp when the BOM was last updated","uniqueKey":"product.boms.items.[INDEX].updated_at","typeLabel":"string\u003cdate-time>"}},"required":["id","name"],"uniqueKey":"product.boms.items.[INDEX]","typeLabel":"object"},"uniqueKey":"product.boms","typeLabel":"object[]"},"created_at":{"type":"string","format":"date-time","description":"Timestamp when the product was created","uniqueKey":"product.created_at","typeLabel":"string\u003cdate-time>"},"updated_at":{"type":"string","format":"date-time","description":"Timestamp when the product was last updated","uniqueKey":"product.updated_at","typeLabel":"string\u003cdate-time>"},"created_by":{"type":"integer","description":"ID of the user who created the product. `0` for products created before\nprovenance was recorded or by a system path with no attributable user.\nProducts created through the External API are stamped with the API token's user.\n","uniqueKey":"product.created_by","typeLabel":"integer"},"updated_by":{"type":"integer","description":"ID of the user who last updated the product. `0` when never attributed.","uniqueKey":"product.updated_by","typeLabel":"integer"},"created_via":{"oneOf":[{"type":"string","enum":["user","api","import","auto_create_sku","job","system"],"description":"How the product was created, stamped once at creation and never changed:\n`user` (app UI), `api` (External API), `import` (product import/spreadsheet),\n`auto_create_sku` (Auto-create SKUs order-processing job), `job` (queued job or\nconsole command), or `system` (other internal write). `null` for products created\nbefore provenance was recorded (unknown source).\n\nAlways present on single-product responses. On product **list** endpoints\n(`GET /products`, `GET /products/company-pricing`, `GET /companies/{companyId}/products`)\nit is only returned when requested with `?include=created_via`.\n","uniqueKey":"product.created_via.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["user","api","import","auto_create_sku","job","system"],"description":"How the product was created, stamped once at creation and never changed:\n`user` (app UI), `api` (External API), `import` (product import/spreadsheet),\n`auto_create_sku` (Auto-create SKUs order-processing job), `job` (queued job or\nconsole command), or `system` (other internal write). `null` for products created\nbefore provenance was recorded (unknown source).\n\nAlways present on single-product responses. On product **list** endpoints\n(`GET /products`, `GET /products/company-pricing`, `GET /companies/{companyId}/products`)\nit is only returned when requested with `?include=created_via`.\n","uniqueKey":"product.created_via.oneOf.1","typeLabel":"null"}],"uniqueKey":"product.created_via","typeLabel":"enum\u003cstring> | null"}},"uniqueKey":"product","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"id":123,"priority":123,"product":{"id":123,"name":"\u003cstring>","description":"\u003cstring>","retail_price":123,"wholesale_price":123,"unit_cost":123,"purchase_unit_cost":123,"purchase_currency":"\u003cstring>","landed_cost":123,"estimated_landed_cost":123,"design_link":"\u003cstring>","manufacturing_fee":123,"product_weight":[{"unit":"lb","value":1}],"product_weight_oz":123,"product_weight_lb":123,"dimensional_weight":[{"unit":"lb","value":1}],"dimensional_weight_oz":123,"dimensional_weight_lb":123,"product_length":123,"product_width":123,"product_height":123,"box_weight":[{"unit":"lb","value":1}],"box_weight_oz":123,"box_weight_lb":123,"box_length":123,"box_width":123,"box_height":123,"carton_weight":[{"unit":"lb","value":1}],"carton_weight_oz":123,"carton_weight_lb":123,"carton_length":123,"carton_width":123,"carton_height":123,"units_per_carton":123,"shipping_weight":[{"unit":"lb","value":1}],"shipping_weight_oz":123,"shipping_weight_lb":123,"shipping_length":123,"shipping_width":123,"shipping_height":123,"pallet_weight":[{"unit":"lb","value":1}],"pallet_weight_oz":123,"pallet_weight_lb":123,"pallet_length":123,"pallet_width":123,"pallet_height":123,"cartons_per_pallet":123,"units_per_pallet":123,"lead_time_days":123,"sellable":true,"discontinued":true,"is_drop_ship_item":true,"taxable":true,"lot_tracking":true,"lot_deduction_strategy":"\u003cstring>","round_up_as_component":true,"default_supply_method":"purchase","image_url":"\u003cstring>","category":{"id":123,"name":"\u003cstring>"},"subcategory":{"id":123,"name":"\u003cstring>"},"custom_fields":{},"attachments":[{"id":123,"name":"\u003cstring>","type":"\u003cstring>","size":123,"full_url":"\u003cstring>","thumb_url":"\u003cstring>"}],"variants":[{"id":123,"name":"\u003cstring>","description":"\u003cstring>","product_weight":[{"unit":"lb","value":1}],"product_weight_oz":123,"product_weight_lb":123,"dimensional_weight":[{"unit":"lb","value":1}],"dimensional_weight_oz":123,"dimensional_weight_lb":123,"box_weight":[{"unit":"lb","value":1}],"box_weight_oz":123,"box_weight_lb":123,"carton_weight":[{"unit":"lb","value":1}],"carton_weight_oz":123,"carton_weight_lb":123,"shipping_weight":[{"unit":"lb","value":1}],"shipping_weight_oz":123,"shipping_weight_lb":123,"pallet_weight":[{"unit":"lb","value":1}],"pallet_weight_oz":123,"pallet_weight_lb":123,"attachments":[{"id":123,"name":"\u003cstring>","type":"\u003cstring>","size":123,"full_url":"\u003cstring>","thumb_url":"\u003cstring>"}],"retail_price":123,"wholesale_price":123,"custom_fields":[{}],"variant_attributes":[{"variant_name":"\u003cstring>","variant_terms":["\u003cstring>"]}],"sku":"\u003cstring>","upc":"\u003cstring>","hs_code":"\u003cstring>","round_up_as_component":true,"created_at":"2023-11-07T05:31:56Z","updated_at":"2023-11-07T05:31:56Z"}],"variant_attributes":[{"variant_name":"\u003cstring>","variant_terms":["\u003cstring>"]}],"sku":"\u003cstring>","alternate_skus":[{"id":123,"sku":"\u003cstring>"}],"upc":"\u003cstring>","hs_code":"\u003cstring>","tags":[{"id":123,"name":"\u003cstring>","description":"\u003cstring>","icon":"\u003cstring>","color":"\u003cstring>"}],"substitutions":[{"id":123,"priority":123,"product":{"id":123,"name":"\u003cstring>","description":"\u003cstring>","retail_price":123,"wholesale_price":123,"unit_cost":123,"product_weight":[{"unit":"lb","value":1}],"product_weight_oz":123,"product_weight_lb":123,"dimensional_weight":[{"unit":"lb","value":1}],"dimensional_weight_oz":123,"dimensional_weight_lb":123,"product_length":123,"product_width":123,"product_height":123,"box_weight":[{"unit":"lb","value":1}],"box_weight_oz":123,"box_weight_lb":123,"box_length":123,"box_width":123,"box_height":123,"carton_weight":[{"unit":"lb","value":1}],"carton_weight_oz":123,"carton_weight_lb":123,"carton_length":123,"carton_width":123,"carton_height":123,"shipping_weight":[{"unit":"lb","value":1}],"shipping_weight_oz":123,"shipping_weight_lb":123,"shipping_length":123,"shipping_width":123,"shipping_height":123,"pallet_weight":[{"unit":"lb","value":1}],"pallet_weight_oz":123,"pallet_weight_lb":123,"pallet_length":123,"pallet_width":123,"pallet_height":123,"sellable":true,"discontinued":true,"is_drop_ship_item":true,"taxable":true,"image_url":"\u003cstring>","sku":"\u003cstring>","upc":"\u003cstring>","hs_code":"\u003cstring>","round_up_as_component":true,"created_at":"2023-11-07T05:31:56Z","updated_at":"2023-11-07T05:31:56Z"}}],"supplier":{},"type":"PRODUCT","kit_items":[{"id":123,"product_id":123,"quantity":123,"uom_id":123,"base_uom_quantity":123,"price":123,"original_price":123,"total":123,"product":{"id":123,"name":"\u003cstring>","sku":"\u003cstring>","description":"\u003cstring>","retail_price":123,"wholesale_price":123},"unit_of_measure":{"id":123,"name":"\u003cstring>","description":"\u003cstring>","base_unit":true}}],"priority_list":{"id":123,"name":"\u003cstring>","description":"\u003cstring>"},"distribution_template":{"id":123,"name":"\u003cstring>","source":"assigned"},"distribution_template_category":{"id":123,"name":"\u003cstring>"},"boms":[{"id":123,"name":"\u003cstring>","items":[{"id":123,"bom_id":123,"product_id":123,"quantity":123,"product":{"id":123,"name":"\u003cstring>","sku":"\u003cstring>","description":"\u003cstring>"},"base_quantity":123,"note":"\u003cstring>","uom_id":123,"unit_of_measure":{"id":123,"name":"\u003cstring>"},"order":123,"consumption_basis":"planned","created_at":"2023-11-07T05:31:56Z","updated_at":"2023-11-07T05:31:56Z"}],"extra_costs":[{"id":123,"name":"\u003cstring>","quantity":123,"unit_price":123,"line_total":123,"created_at":"2023-11-07T05:31:56Z","updated_at":"2023-11-07T05:31:56Z"}],"created_at":"2023-11-07T05:31:56Z","updated_at":"2023-11-07T05:31:56Z"}],"created_at":"2023-11-07T05:31:56Z","updated_at":"2023-11-07T05:31:56Z","created_by":123,"updated_by":123,"created_via":"user"}}}},"exampleType":"generated"}},"exampleType":"generated"},"ab7ca4b1-8261-42a0-a6c9-c80f0bed898e":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","uniqueKey":"message","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"message":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"},"33dc6dae-659c-4616-8b0b-c7f89c6f6d16":{"description":"Primary product not found","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","uniqueKey":"message","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"message":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"},"5ef9cb53-716d-4619-b047-366bb3d83c36":{"description":"Validation error (e.g., substitute product not found or inactive, duplicate substitution, or the substitute would create a cycle)","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","uniqueKey":"message","typeLabel":"string"},"errors":{"type":"object","additionalProperties":{"type":"array","items":{"type":"string","uniqueKey":"errors.additionalProperties.items.[INDEX]","typeLabel":"string"},"uniqueKey":"errors.additionalProperties","typeLabel":"string[]"},"uniqueKey":"errors","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"message":"\u003cstring>","errors":{}}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"15ce0d7d-f4c3-427d-a704-7dc13f9a8979":{"BearerAuth":{"type":"http","scheme":"bearer","description":"Authenticate using a bearer token. To create a token, navigate to /settings/api-tokens and click Create API Token.","scopes":[],"schemeName":"BearerAuth"}}},"servers":{"2e4be249-9cab-4b20-9acd-7b153d825b1d":{"url":"https://{companyName}.api.joinluminous.com/external/api/v1","variables":{"companyName":{"default":"companyName","description":"Your company-specific subdomain"}}}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","description":"Authenticate using a bearer token. To create a token, navigate to /settings/api-tokens and click Create API Token.","scopes":[],"schemeName":"BearerAuth"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"Authenticate using a bearer token. To create a token, navigate to /settings/api-tokens and click Create API Token.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"BearerAuth","name":"Authorization"}],"title":"BearerAuth"}]},"originalFileLocation":"api-reference/build.yaml"},"subdomain":"luminous-2ace3a9f","siteName":"Luminous API Documentation","title":"Add product substitution - Luminous API Documentation","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-06T01:19:27.863Z","originalFileLocation":"api-reference/products/add-product-substitution.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Add a substitute product to a product. Substitutes are alternative products that can fulfill the same demand — useful when the primary product is out of stock or unavailable. Each substitution links the primary product to a single substitute product and an optional priority. Priority controls the order substitutes are considered (lower numbers are tried first). Call this endpoint once per substitute product you want to attach. The response returns the created substitution record, including the embedded substitute product. The id field on the response is the substitution row\u0026#x27;s ID — use it with the DELETE endpoint to remove the substitution later.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Luminous API Documentation\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/luminous-2ace3a9f/ivyXegpKZrRUHP54/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/luminous-2ace3a9f/ivyXegpKZrRUHP54/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/luminous-2ace3a9f/ivyXegpKZrRUHP54/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/luminous-2ace3a9f/ivyXegpKZrRUHP54/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/luminous-2ace3a9f/ivyXegpKZrRUHP54/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/luminous-2ace3a9f/ivyXegpKZrRUHP54/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/luminous-2ace3a9f/ivyXegpKZrRUHP54/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/luminous-2ace3a9f/ivyXegpKZrRUHP54/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/luminous-2ace3a9f/ivyXegpKZrRUHP54/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Add product substitution - Luminous API Documentation\">\u003cmeta data-mint-head property=\"og:description\" content=\"Add a substitute product to a product. Substitutes are alternative products that can fulfill the same demand — useful when the primary product is out of stock or unavailable. Each substitution links the primary product to a single substitute product and an optional priority. Priority controls the order substitutes are considered (lower numbers are tried first). Call this endpoint once per substitute product you want to attach. The response returns the created substitution record, including the embedded substitute product. The id field on the response is the substitution row\u0026#x27;s ID — use it with the DELETE endpoint to remove the substitution later.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Luminous API Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.joinluminous.com/api-reference/products/add-product-substitution\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://luminous-2ace3a9f.mintlify.app/_mintlify/api/og/v2?division=Product+Substitutions\u0026amp;title=Add+product+substitution\u0026amp;description=Add+a+substitute+product+to+a+product.+Substitutes+are+alternative+products+that+can%0Afulfill+the+same+demand+%E2%80%94+useful+when+the+primary+product+is+out+of+stock+o\u0026amp;theme=4f5a20d55320e94ca48b4717\u0026amp;signature=7121616a5618515abd1db9e894c12c21123de1f87e71227393a86a5ebe4ad783\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Add product substitution - Luminous API Documentation\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Add a substitute product to a product. Substitutes are alternative products that can fulfill the same demand — useful when the primary product is out of stock or unavailable. Each substitution links the primary product to a single substitute product and an optional priority. Priority controls the order substitutes are considered (lower numbers are tried first). Call this endpoint once per substitute product you want to attach. The response returns the created substitution record, including the embedded substitute product. The id field on the response is the substitution row\u0026#x27;s ID — use it with the DELETE endpoint to remove the substitution later.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://luminous-2ace3a9f.mintlify.app/_mintlify/api/og/v2?division=Product+Substitutions\u0026amp;title=Add+product+substitution\u0026amp;description=Add+a+substitute+product+to+a+product.+Substitutes+are+alternative+products+that+can%0Afulfill+the+same+demand+%E2%80%94+useful+when+the+primary+product+is+out+of+stock+o\u0026amp;theme=4f5a20d55320e94ca48b4717\u0026amp;signature=7121616a5618515abd1db9e894c12c21123de1f87e71227393a86a5ebe4ad783\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/luminous-2ace3a9f/ivyXegpKZrRUHP54/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Luminous API Documentation\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#7787FF\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.joinluminous.com/api-reference/products/add-product-substitution\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/products/add-product-substitution.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.joinluminous.com/#organization\",\"name\":\"Luminous API Documentation\",\"url\":\"https://docs.joinluminous.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/luminous-2ace3a9f/M8Q_jpCZcjsbRx58/logo/light.svg?fit=max\u0026auto=format\u0026n=M8Q_jpCZcjsbRx58\u0026q=85\u0026s=d932f2bcd17b4ecf6a0315882a7cf660\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.joinluminous.com#website\",\"name\":\"Luminous API Documentation\",\"url\":\"https://docs.joinluminous.com\",\"publisher\":{\"@id\":\"https://docs.joinluminous.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.joinluminous.com/api-reference/products/add-product-substitution#webpage\",\"url\":\"https://docs.joinluminous.com/api-reference/products/add-product-substitution\",\"name\":\"Add product substitution\",\"description\":\"Add a substitute product to a product. Substitutes are alternative products that can fulfill the same demand — useful when the primary product is out of stock or unavailable. Each substitution links the primary product to a single substitute product and an optional priority. Priority controls the order substitutes are considered (lower numbers are tried first). Call this endpoint once per substitute product you want to attach. The response returns the created substitution record, including the embedded substitute product. The id field on the response is the substitution row's ID — use it with the DELETE endpoint to remove the substitution later.\",\"dateModified\":\"2026-11-06T01:19:27.863Z\",\"isPartOf\":{\"@id\":\"https://docs.joinluminous.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.joinluminous.com/api-reference/products/add-product-substitution#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.joinluminous.com/api-reference/products/add-product-substitution#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Products \u0026 Catalog\",\"item\":\"https://docs.joinluminous.com/api-reference/products/products\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Add product substitution\",\"item\":\"https://docs.joinluminous.com/api-reference/products/add-product-substitution\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.joinluminous.com/api-reference/products/add-product-substitution#apireference\",\"headline\":\"Add product substitution\",\"name\":\"Add product substitution\",\"description\":\"Add a substitute product to a product. Substitutes are alternative products that can fulfill the same demand — useful when the primary product is out of stock or unavailable. Each substitution links the primary product to a single substitute product and an optional priority. Priority controls the order substitutes are considered (lower numbers are tried first). Call this endpoint once per substitute product you want to attach. The response returns the created substitution record, including the embedded substitute product. The id field on the response is the substitution row's ID — use it with the DELETE endpoint to remove the substitution later.\",\"url\":\"https://docs.joinluminous.com/api-reference/products/add-product-substitution\",\"mainEntityOfPage\":{\"@id\":\"https://docs.joinluminous.com/api-reference/products/add-product-substitution#webpage\"},\"dateModified\":\"2026-11-06T01:19:27.863Z\",\"publisher\":{\"@id\":\"https://docs.joinluminous.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.joinluminous.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Luminous API Documentation\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Luminous API Documentation","nav":{"global":null,"anchors":[{"anchor":"Documentation","icon":"book-open","pages":[{"title":"Documentation","href":"/quickstart"}]},{"anchor":"API Reference","icon":"square-terminal","groups":[{"group":"Products \u0026 Catalog","pages":[{"group":"Products","pages":[{"title":"Products","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /products","href":"/api-reference/products/products"},{"title":"Export products (cursor pagination)","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /products/export","href":"/api-reference/products/export-products-cursor-pagination"},{"title":"Single product","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /products/{id}","href":"/api-reference/products/single-product"},{"title":"Create a product","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /products","href":"/api-reference/products/create-a-product"},{"title":"Create or update product","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml patch /products","href":"/api-reference/products/create-or-update-product"},{"title":"Update a product","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /products/{id}","href":"/api-reference/products/update-a-product"},{"title":"Update a product (PUT)","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml put /products/{id}","href":"/api-reference/products/update-a-product-put"},{"title":"Delete product","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml delete /products/{id}","href":"/api-reference/products/delete-product"},{"title":"Push a product to an OMS/WMS integration","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /products/{productId}/push","href":"/api-reference/products/push-a-product-to-an-omswms-integration"}]},{"group":"Alternate SKUs","pages":[{"title":"Add alternate SKU","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /products/alternate-sku","href":"/api-reference/products/add-alternate-sku"},{"title":"Delete alternate SKU","description":"Remove an alternate SKU from whichever product it is attached to. Matching is case-insensitive,\nmirroring the uniqueness check used by `POST /products/alternate-sku`.\n\nUseful for bulk cleanup (e.g. via script) instead of removing alternate SKUs by hand.\nReturns the deleted row, or `404` if no alternate SKU matches.\n","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml delete /products/alternate-sku","href":"/api-reference/products/delete-alternate-sku"}]},{"group":"Product Substitutions","pages":[{"title":"Add product substitution","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /products/{productId}/substitutions","href":"/api-reference/products/add-product-substitution"},{"title":"Remove product substitution","description":"Remove a substitute product from a product by substitution row ID. The endpoint\nverifies the substitution belongs to the given `productId` before deleting it —\na mismatched pair returns 404.\n","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml delete /products/{productId}/substitutions/{substitutionId}","href":"/api-reference/products/remove-product-substitution"}]},{"group":"Product Builder Profiles","pages":[{"title":"List product builder profiles","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /product-profiles","href":"/api-reference/products/list-product-builder-profiles"},{"title":"Create a product builder profile","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /product-profiles","href":"/api-reference/products/create-a-product-builder-profile"},{"title":"Get a product builder profile","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /product-profiles/{productProfileId}","href":"/api-reference/products/get-a-product-builder-profile"},{"title":"Update a product builder profile","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml put /product-profiles/{productProfileId}","href":"/api-reference/products/update-a-product-builder-profile"},{"title":"Delete a product builder profile","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml delete /product-profiles/{productProfileId}","href":"/api-reference/products/delete-a-product-builder-profile"},{"title":"Get a product profile with builder metadata","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /product-profiles/{productProfileId}/resolved","href":"/api-reference/products/get-a-product-profile-with-builder-metadata"}]},{"group":"B2B Product Templates","pages":[{"title":"List B2B product templates","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /b2b-product-templates","href":"/api-reference/products/list-b2b-product-templates"},{"title":"Create B2B product template","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /b2b-product-templates","href":"/api-reference/products/create-b2b-product-template"},{"title":"Get the SKUs and kits on a B2B product template","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /b2b-product-templates/{templateId}/items","href":"/api-reference/products/get-the-skus-and-kits-on-a-b2b-product-template"},{"title":"Update B2B product template","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /b2b-product-templates/{templateId}","href":"/api-reference/products/update-b2b-product-template"},{"title":"Add or remove SKUs across B2B product templates","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /b2b-product-templates/bulk-items","href":"/api-reference/products/add-or-remove-skus-across-b2b-product-templates"}]},{"group":"Distribution Templates","pages":[{"title":"List distribution template candidates for a product","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /products/{productId}/distribution-template/candidates","href":"/api-reference/products/list-distribution-template-candidates-for-a-product"},{"title":"Assign a distribution template to a product","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml put /products/{productId}/distribution-template","href":"/api-reference/products/assign-a-distribution-template-to-a-product"},{"title":"Clear a product's distribution template assignment","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml delete /products/{productId}/distribution-template","href":"/api-reference/products/clear-a-products-distribution-template-assignment"},{"title":"Assign a size-curve category to a product","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml put /products/{productId}/distribution-template-category","href":"/api-reference/products/assign-a-size-curve-category-to-a-product"},{"title":"Clear a product's size-curve category","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml delete /products/{productId}/distribution-template-category","href":"/api-reference/products/clear-a-products-size-curve-category"}]},{"group":"Product Pricing","pages":[{"title":"All products pricing","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /products/pricing","href":"/api-reference/products/all-products-pricing"},{"title":"Single product pricing","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /products/{productId}/pricing","href":"/api-reference/products/single-product-pricing"},{"title":"All products with company pricing","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /products/company-pricing","href":"/api-reference/products/all-products-with-company-pricing"},{"title":"Single product with company pricing","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /products/{productId}/company-pricing","href":"/api-reference/products/single-product-with-company-pricing"}]},{"group":"BOMs","pages":[{"title":"BOMs","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /boms","href":"/api-reference/boms/boms"},{"title":"Create a BOM","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /boms","href":"/api-reference/boms/create-a-bom"},{"title":"Single BOM","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /boms/{bomId}","href":"/api-reference/boms/single-bom"},{"title":"Update a BOM","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /boms/{bomId}","href":"/api-reference/boms/update-a-bom"},{"title":"Delete BOM","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml delete /boms/{bomId}","href":"/api-reference/boms/delete-bom"},{"title":"Attach BOMs to a product","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /products/{productId}/boms","href":"/api-reference/products/attach-boms-to-a-product"},{"title":"Detach BOMs from a product","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml delete /products/{productId}/boms","href":"/api-reference/products/detach-boms-from-a-product"},{"title":"Bulk attach BOMs to products","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /products/bulk-attach-boms","href":"/api-reference/products/bulk-attach-boms-to-products"}]},{"group":"Labels","pages":[{"title":"Render ZPL label","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /labels/render","href":"/api-reference/labels/render-zpl-label"}]},{"group":"Imports","pages":[{"title":"List import types","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /imports/types","href":"/api-reference/imports/list-import-types"},{"title":"Field schema for an import type","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /imports/specs","href":"/api-reference/imports/field-schema-for-an-import-type"},{"title":"AI-suggested column mapping","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /imports/mapping-suggestions","href":"/api-reference/imports/ai-suggested-column-mapping"},{"title":"List imports","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /imports","href":"/api-reference/imports/list-imports"},{"title":"Submit a bulk import","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /imports","href":"/api-reference/imports/submit-a-bulk-import"},{"title":"Get import by ID","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /imports/{id}","href":"/api-reference/imports/get-import-by-id"},{"title":"Download the original import file","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /imports/{id}/download","href":"/api-reference/imports/download-the-original-import-file"},{"title":"Preview the import file rows","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /imports/{id}/preview","href":"/api-reference/imports/preview-the-import-file-rows"},{"title":"Download import errors","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /imports/{id}/errors","href":"/api-reference/imports/download-import-errors"},{"title":"Resume an incomplete import","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /imports/{id}/resume","href":"/api-reference/imports/resume-an-incomplete-import"},{"title":"Retry errored rows","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /imports/{id}/retry-errors","href":"/api-reference/imports/retry-errored-rows"},{"title":"Copy an import","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /imports/{id}/copy","href":"/api-reference/imports/copy-an-import"}]}]},{"group":"Companies \u0026 Contacts","pages":[{"group":"Companies","pages":[{"title":"Companies","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /companies","href":"/api-reference/companies/companies"},{"title":"Create a company","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /companies","href":"/api-reference/companies/create-a-company"},{"title":"Company","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /companies/{companyId}","href":"/api-reference/companies/company"},{"title":"Update a company","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /companies/{companyId}","href":"/api-reference/companies/update-a-company"},{"title":"Delete a company","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml delete /companies/{companyId}","href":"/api-reference/companies/delete-a-company"},{"title":"List shipping addresses","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /companies/{companyId}/shipping-addresses","href":"/api-reference/companies/list-shipping-addresses"},{"title":"Create shipping address","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /companies/{companyId}/shipping-addresses","href":"/api-reference/companies/create-shipping-address"},{"title":"Update shipping address","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /companies/{companyId}/shipping-addresses/{shippingAddressId}","href":"/api-reference/companies/update-shipping-address"},{"title":"Delete shipping address","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml delete /companies/{companyId}/shipping-addresses/{shippingAddressId}","href":"/api-reference/companies/delete-shipping-address"},{"title":"Company Contacts","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /companies/{companyId}/contacts","href":"/api-reference/companies/company-contacts"},{"title":"Company Product Price Overrides","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /companies/{companyId}/product-price-overrides","href":"/api-reference/companies/company-product-price-overrides"},{"title":"Create company product price override","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /companies/{companyId}/product-price-overrides","href":"/api-reference/companies/create-company-product-price-override"},{"title":"Bulk upsert company product price overrides","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /companies/{companyId}/product-price-overrides/bulk","href":"/api-reference/companies/bulk-upsert-company-product-price-overrides"},{"title":"Update company product price override","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /companies/{companyId}/product-price-overrides/{overrideId}","href":"/api-reference/companies/update-company-product-price-override"},{"title":"Delete company product price override","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml delete /companies/{companyId}/product-price-overrides/{overrideId}","href":"/api-reference/companies/delete-company-product-price-override"},{"title":"List company price groups","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /companies/{companyId}/price-groups","href":"/api-reference/companies/list-company-price-groups"},{"title":"Assign company price group","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /companies/{companyId}/price-groups","href":"/api-reference/companies/assign-company-price-group"},{"title":"Bulk assign company price groups","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /companies/{companyId}/price-groups/bulk","href":"/api-reference/companies/bulk-assign-company-price-groups"},{"title":"Delete company price group","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml delete /companies/{companyId}/price-groups/{assignmentId}","href":"/api-reference/companies/delete-company-price-group"},{"title":"Company Products","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /companies/{companyId}/products","href":"/api-reference/companies/company-products"},{"title":"List invoices for a company","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /companies/{companyId}/invoices","href":"/api-reference/companies/list-invoices-for-a-company"},{"title":"List sales orders for a company","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /companies/{companyId}/sales-orders","href":"/api-reference/companies/list-sales-orders-for-a-company"}]},{"group":"Contacts","pages":[{"title":"Contacts","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /contacts","href":"/api-reference/contacts/contacts"},{"title":"Create a contact","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /contacts","href":"/api-reference/contacts/create-a-contact"},{"title":"Single contact","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /contacts/{contactId}","href":"/api-reference/contacts/single-contact"},{"title":"Update a contact","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /contacts/{contactId}","href":"/api-reference/contacts/update-a-contact"},{"title":"Set or rotate B2B portal password","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /contacts/{contactId}/b2b-portal-password","href":"/api-reference/contacts/set-or-rotate-b2b-portal-password"},{"title":"Delete a contact","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml delete /contacts/{contactId}","href":"/api-reference/contacts/delete-a-contact"}]},{"group":"Suppliers","pages":[{"title":"Suppliers","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /suppliers","href":"/api-reference/suppliers/suppliers"},{"title":"Create a supplier","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /suppliers","href":"/api-reference/suppliers/create-a-supplier"},{"title":"Supplier","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /suppliers/{supplierId}","href":"/api-reference/suppliers/supplier"},{"title":"Update a supplier","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /suppliers/{supplierId}","href":"/api-reference/suppliers/update-a-supplier"},{"title":"Partially update a supplier","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml patch /suppliers/{supplierId}","href":"/api-reference/suppliers/partially-update-a-supplier"},{"title":"Delete a supplier","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml delete /suppliers/{supplierId}","href":"/api-reference/suppliers/delete-a-supplier"},{"title":"Supplier contacts","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /suppliers/{supplierId}/contacts","href":"/api-reference/suppliers/supplier-contacts"},{"title":"Add a supplier contact","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /suppliers/{supplierId}/contacts","href":"/api-reference/suppliers/add-a-supplier-contact"}]},{"group":"Supplier SKUs","pages":[{"title":"List supplier SKUs","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /supplier-skus","href":"/api-reference/supplier-skus/list-supplier-skus"},{"title":"Create a supplier SKU","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /supplier-skus","href":"/api-reference/supplier-skus/create-a-supplier-sku"},{"title":"Bulk upsert supplier SKUs","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /supplier-skus/bulk","href":"/api-reference/supplier-skus/bulk-upsert-supplier-skus"},{"title":"Get a supplier SKU","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /supplier-skus/{supplierProductSkuId}","href":"/api-reference/supplier-skus/get-a-supplier-sku"},{"title":"Update a supplier SKU","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml put /supplier-skus/{supplierProductSkuId}","href":"/api-reference/supplier-skus/update-a-supplier-sku"},{"title":"Delete a supplier SKU","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml delete /supplier-skus/{supplierProductSkuId}","href":"/api-reference/supplier-skus/delete-a-supplier-sku"}]},{"group":"Pricing","pages":[{"title":"Price Schedules","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /price-schedules","href":"/api-reference/pricing/price-schedules"},{"title":"Price Schedule","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /price-schedules/{scheduleId}","href":"/api-reference/pricing/price-schedule"},{"title":"Price Levels","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /price-levels","href":"/api-reference/pricing/price-levels"},{"title":"Price Level","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /price-levels/{levelId}","href":"/api-reference/pricing/price-level"}]}]},{"group":"Inventory \u0026 Warehousing","pages":[{"group":"Warehouses","pages":[{"title":"Warehouses","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /warehouses","href":"/api-reference/locations/warehouses"},{"title":"Create warehouse","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /warehouses","href":"/api-reference/locations/create-warehouse"},{"title":"Get warehouse by ID","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /warehouses/{warehouseId}","href":"/api-reference/locations/get-warehouse-by-id"},{"title":"Update warehouse","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml put /warehouses/{warehouseId}","href":"/api-reference/locations/update-warehouse"},{"title":"Delete warehouse","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml delete /warehouses/{warehouseId}","href":"/api-reference/locations/delete-warehouse"}]},{"group":"Warehouse Groups","pages":[{"title":"Warehouse groups","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /warehouse-groups","href":"/api-reference/locations/warehouse-groups"},{"title":"Create warehouse group","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /warehouse-groups","href":"/api-reference/locations/create-warehouse-group"},{"title":"Get warehouse group by ID","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /warehouse-groups/{id}","href":"/api-reference/locations/get-warehouse-group-by-id"},{"title":"Update warehouse group","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml put /warehouse-groups/{id}","href":"/api-reference/locations/update-warehouse-group"},{"title":"Delete warehouse group","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml delete /warehouse-groups/{id}","href":"/api-reference/locations/delete-warehouse-group"}]},{"group":"Locations","pages":[{"title":"Locations","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /locations","href":"/api-reference/locations/locations"},{"title":"Create location","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /locations","href":"/api-reference/locations/create-location"},{"title":"Get location by ID","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /locations/{locationId}","href":"/api-reference/locations/get-location-by-id"},{"title":"Update location","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml patch /locations/{locationId}","href":"/api-reference/locations/update-location"},{"title":"Delete location","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml delete /locations/{locationId}","href":"/api-reference/locations/delete-location"}]},{"group":"Inventory","pages":[{"title":"Inventory stock","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /inventory/stocks","href":"/api-reference/inventory/inventory-stock"},{"title":"Export inventory stock (cursor pagination)","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /inventory/stocks/export","href":"/api-reference/inventory/export-inventory-stock-cursor-pagination"},{"title":"List cost layers","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /inventory/cost-layers","href":"/api-reference/inventory/list-cost-layers"},{"title":"Get cost layer by ID","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /inventory/cost-layers/{costLayerId}","href":"/api-reference/inventory/get-cost-layer-by-id"},{"title":"Adjust inventory stock","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /inventory/adjustments","href":"/api-reference/inventory/adjust-inventory-stock"},{"title":"Inventory adjustments","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /inventory/adjustments","href":"/api-reference/inventory/inventory-adjustments"},{"title":"Inventory adjustment","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /inventory/adjustments/{adjustmentId}","href":"/api-reference/inventory/inventory-adjustment"},{"title":"Transfer inventory between locations (PickFlow)","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /pickflow/inventory/transfers","href":"/api-reference/inventory/transfer-inventory-between-locations-pickflow"},{"title":"Recount a bin/lot row (PickFlow)","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /pickflow/inventory/recount","href":"/api-reference/inventory/recount-a-binlot-row-pickflow"}]},{"group":"Lots","pages":[{"title":"Create a lot","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /lots","href":"/api-reference/lots/create-a-lot"},{"title":"Get a lot","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /lots/{lotId}","href":"/api-reference/lots/get-a-lot"},{"title":"Update a lot","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml patch /lots/{lotId}","href":"/api-reference/lots/update-a-lot"},{"title":"Delete a lot","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml delete /lots/{lotId}","href":"/api-reference/lots/delete-a-lot"},{"title":"Bulk delete lots","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /lots/bulk-delete","href":"/api-reference/lots/bulk-delete-lots"},{"title":"List a product's lots","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /products/{productId}/lots","href":"/api-reference/lots/list-a-products-lots"},{"title":"List a product's Qty Log movements","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /products/{productId}/qty-logs","href":"/api-reference/lots/list-a-products-qty-log-movements"}]},{"group":"Transfer Orders","pages":[{"title":"Transfer orders","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /transfer-orders","href":"/api-reference/transfer-orders/transfer-orders"},{"title":"Create a transfer order","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /transfer-orders","href":"/api-reference/transfer-orders/create-a-transfer-order"},{"title":"Single transfer order","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /transfer-orders/{id}","href":"/api-reference/transfer-orders/single-transfer-order"},{"title":"Update a draft transfer order","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml put /transfer-orders/{id}","href":"/api-reference/transfer-orders/update-a-draft-transfer-order"},{"title":"Post a draft transfer order","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /transfer-orders/{id}/post","href":"/api-reference/transfer-orders/post-a-draft-transfer-order"},{"title":"Push transfer order as inbound shipment to WMS","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /transfer-orders/{id}/push-inbound-shipment","href":"/api-reference/transfer-orders/push-transfer-order-as-inbound-shipment-to-wms"},{"title":"List transfer routes","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /transfer-routes","href":"/api-reference/transfer-orders/list-transfer-routes"},{"title":"Create or replace a transfer route","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml put /transfer-routes","href":"/api-reference/transfer-orders/create-or-replace-a-transfer-route"},{"title":"Create or replace a transfer route (PATCH alias)","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml patch /transfer-routes","href":"/api-reference/transfer-orders/create-or-replace-a-transfer-route-patch-alias"},{"title":"Get a transfer route","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /transfer-routes/{transferRouteId}","href":"/api-reference/transfer-orders/get-a-transfer-route"},{"title":"Update a transfer route","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml patch /transfer-routes/{transferRouteId}","href":"/api-reference/transfer-orders/update-a-transfer-route"},{"title":"Delete a transfer route","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml delete /transfer-routes/{transferRouteId}","href":"/api-reference/transfer-orders/delete-a-transfer-route"}]},{"group":"Inbound Shipments","pages":[{"title":"Inbound shipments","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /inbound-shipments","href":"/api-reference/inbound-shipments/inbound-shipments"},{"title":"Get inbound shipment","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /inbound-shipments/{id}","href":"/api-reference/inbound-shipments/get-inbound-shipment"},{"title":"Amazon FBA inbound plans not yet shipped","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /inbound-plans","href":"/api-reference/inbound-shipments/amazon-fba-inbound-plans-not-yet-shipped"}]}]},{"group":"Purchasing","pages":[{"group":"Purchase Orders","pages":[{"title":"Purchase orders","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /purchase-orders","href":"/api-reference/purchase-orders/purchase-orders"},{"title":"Create a new purchase order","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /purchase-orders","href":"/api-reference/purchase-orders/create-a-new-purchase-order"},{"title":"Single purchase order","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /purchase-orders/{id}","href":"/api-reference/purchase-orders/single-purchase-order"},{"title":"Update a purchase order","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml put /purchase-orders/{id}","href":"/api-reference/purchase-orders/update-a-purchase-order"},{"title":"Delete a purchase order","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml delete /purchase-orders/{id}","href":"/api-reference/purchase-orders/delete-a-purchase-order"},{"title":"Append line items to a purchase order","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /purchase-orders/{purchaseOrderId}/items","href":"/api-reference/purchase-orders/append-line-items-to-a-purchase-order"},{"title":"Set or clear a purchase-order line's lot","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml patch /purchase-orders/{purchaseOrderId}/items/{lineItemId}/lot","href":"/api-reference/purchase-orders/set-or-clear-a-purchase-order-lines-lot"},{"title":"Close or reopen a purchase-order line","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml patch /purchase-orders/{purchaseOrderId}/items/{lineItemId}/closed","href":"/api-reference/purchase-orders/close-or-reopen-a-purchase-order-line"},{"title":"Allocate a sales order onto a purchase order","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /purchase-orders/{purchaseOrderId}/allocate","href":"/api-reference/purchase-orders/allocate-a-sales-order-onto-a-purchase-order"},{"title":"Reverse (unallocate) an allocation peg","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /purchase-orders/reverse-allocation","href":"/api-reference/purchase-orders/reverse-unallocate-an-allocation-peg"},{"title":"Purchase order items","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /purchase-orders/items","href":"/api-reference/purchase-orders/purchase-order-items"},{"title":"Create a payment for a purchase order","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /purchase-orders/{purchaseOrderId}/payments","href":"/api-reference/purchase-orders/create-a-payment-for-a-purchase-order"},{"title":"Update a purchase order payment","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml put /purchase-orders/{purchaseOrderId}/payments/{paymentId}","href":"/api-reference/purchase-orders/update-a-purchase-order-payment"},{"title":"Delete a purchase order payment","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml delete /purchase-orders/{purchaseOrderId}/payments/{paymentId}","href":"/api-reference/purchase-orders/delete-a-purchase-order-payment"},{"title":"Get billable lines for a purchase order","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /purchase-orders/{purchaseOrderId}/billable-lines","href":"/api-reference/purchase-orders/get-billable-lines-for-a-purchase-order"},{"title":"List payment obligations for a purchase order","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /purchase-orders/{purchaseOrderId}/payment-obligations","href":"/api-reference/purchase-orders/list-payment-obligations-for-a-purchase-order"},{"title":"Create a payment obligation for a purchase order","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /purchase-orders/{purchaseOrderId}/payment-obligations","href":"/api-reference/purchase-orders/create-a-payment-obligation-for-a-purchase-order"},{"title":"Generate payment obligations for a purchase order","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /purchase-orders/{purchaseOrderId}/payment-obligations/generate","href":"/api-reference/purchase-orders/generate-payment-obligations-for-a-purchase-order"},{"title":"Push purchase order as inbound shipment to WMS","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /purchase-orders/{purchaseOrderId}/push-inbound-shipment","href":"/api-reference/purchase-orders/push-purchase-order-as-inbound-shipment-to-wms"}]},{"group":"Purchase Order Shipments","pages":[{"title":"Purchase order shipments","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /purchase-order-shipments","href":"/api-reference/purchase-order-shipments/purchase-order-shipments"},{"title":"Create purchase order shipment","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /purchase-order-shipments","href":"/api-reference/purchase-order-shipments/create-purchase-order-shipment"},{"title":"Get purchase order shipment","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /purchase-order-shipments/{id}","href":"/api-reference/purchase-order-shipments/get-purchase-order-shipment"},{"title":"Get purchase order shipment cartons","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /purchase-order-shipments/{id}/packages","href":"/api-reference/purchase-order-shipments/get-purchase-order-shipment-cartons"},{"title":"Suggest purchase order shipment cartons","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /purchase-order-shipments/{id}/packages/suggested","href":"/api-reference/purchase-order-shipments/suggest-purchase-order-shipment-cartons"},{"title":"Replace purchase order shipment cartons","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml put /purchase-order-shipments/{id}/packages","href":"/api-reference/purchase-order-shipments/replace-purchase-order-shipment-cartons"},{"title":"Push purchase order shipment as inbound shipment to WMS","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /purchase-order-shipments/{id}/push-inbound-shipment","href":"/api-reference/purchase-order-shipments/push-purchase-order-shipment-as-inbound-shipment-to-wms"},{"title":"Get purchase order shipment box labels","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /purchase-order-shipments/{id}/box-labels","href":"/api-reference/purchase-order-shipments/get-purchase-order-shipment-box-labels"},{"title":"List shipments for a purchase order","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /purchase-orders/{purchaseOrderId}/shipments","href":"/api-reference/purchase-order-shipments/list-shipments-for-a-purchase-order"},{"title":"Get shipment by purchase order","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /purchase-orders/{purchaseOrderId}/shipments/{shipmentId}","href":"/api-reference/purchase-order-shipments/get-shipment-by-purchase-order"}]},{"group":"Supplier Portal","pages":[{"title":"List supplier acceptance responses","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /purchase-orders/{purchaseOrderId}/supplier-acceptances","href":"/api-reference/supplier-portal/list-supplier-acceptance-responses"},{"title":"List supplier extra-cost requests","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /purchase-orders/{purchaseOrderId}/supplier-extra-cost-requests","href":"/api-reference/supplier-portal/list-supplier-extra-cost-requests"},{"title":"List quality inspections for a purchase order","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /purchase-orders/{purchaseOrderId}/quality-inspections","href":"/api-reference/supplier-portal/list-quality-inspections-for-a-purchase-order"},{"title":"Mint and email a supplier portal link","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /purchase-orders/{purchaseOrderId}/supplier-portal-link","href":"/api-reference/supplier-portal/mint-and-email-a-supplier-portal-link"},{"title":"Revoke a supplier's portal access","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml delete /purchase-orders/{purchaseOrderId}/supplier-portal-access","href":"/api-reference/supplier-portal/revoke-a-suppliers-portal-access"}]},{"group":"Receiving Reports","pages":[{"title":"Receiving reports","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /receiving-reports","href":"/api-reference/receiving-reports/receiving-reports"},{"title":"Create a receiving report","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /receiving-reports","href":"/api-reference/receiving-reports/create-a-receiving-report"},{"title":"Single receiving report","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /receiving-reports/{id}","href":"/api-reference/receiving-reports/single-receiving-report"},{"title":"Correct a posted receiving-report line quantity","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /receiving-reports/items/{receivingReportItemId}/correct-quantity","href":"/api-reference/receiving-reports/correct-a-posted-receiving-report-line-quantity"},{"title":"Get billable lines for a receiving report","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /receiving-reports/{receivingReportId}/billable-lines","href":"/api-reference/receiving-reports/get-billable-lines-for-a-receiving-report"}]},{"group":"Payment Obligations","pages":[{"title":"Get payment obligations dashboard","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /payment-obligations/dashboard","href":"/api-reference/payment-obligations/get-payment-obligations-dashboard"},{"title":"List payment obligations","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /payment-obligations","href":"/api-reference/payment-obligations/list-payment-obligations"},{"title":"Get a payment obligation","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /payment-obligations/{id}","href":"/api-reference/payment-obligations/get-a-payment-obligation"},{"title":"Update a payment obligation","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml put /payment-obligations/{id}","href":"/api-reference/payment-obligations/update-a-payment-obligation"},{"title":"Update payment obligation status","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml patch /payment-obligations/{id}/status","href":"/api-reference/payment-obligations/update-payment-obligation-status"},{"title":"Link a bill to a payment obligation","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /payment-obligations/{id}/link-bill","href":"/api-reference/payment-obligations/link-a-bill-to-a-payment-obligation"},{"title":"Unlink a bill from a payment obligation","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml delete /payment-obligations/{id}/bills/{billId}","href":"/api-reference/payment-obligations/unlink-a-bill-from-a-payment-obligation"}]},{"group":"Cost Rules","pages":[{"title":"List cost rules","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /cost-rules","href":"/api-reference/cost-rules/list-cost-rules"},{"title":"Create a cost rule","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /cost-rules","href":"/api-reference/cost-rules/create-a-cost-rule"},{"title":"Single cost rule","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /cost-rules/{id}","href":"/api-reference/cost-rules/single-cost-rule"},{"title":"Update a cost rule","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml put /cost-rules/{id}","href":"/api-reference/cost-rules/update-a-cost-rule"},{"title":"Delete a cost rule","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml delete /cost-rules/{id}","href":"/api-reference/cost-rules/delete-a-cost-rule"}]}]},{"group":"Sales \u0026 Fulfillment","pages":[{"group":"Sales Orders","pages":[{"title":"Sales orders","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /sales-orders","href":"/api-reference/sales-orders/sales-orders"},{"title":"Create a new sales order","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /sales-orders","href":"/api-reference/sales-orders/create-a-new-sales-order"},{"title":"Export sales orders (incremental)","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /sales-orders/export","href":"/api-reference/sales-orders/export-sales-orders-incremental"},{"title":"Bulk refresh sales orders","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /sales-orders/bulk-refresh","href":"/api-reference/sales-orders/bulk-refresh-sales-orders"},{"title":"Single sales order","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /sales-orders/{id}","href":"/api-reference/sales-orders/single-sales-order"},{"title":"Update a sales order","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml patch /sales-orders/{id}","href":"/api-reference/sales-orders/update-a-sales-order"},{"title":"Get purchase-to-order allocation availability","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /sales-orders/{salesOrderId}/allocation-availability","href":"/api-reference/sales-orders/get-purchase-to-order-allocation-availability"},{"title":"Set sales order lines' fulfillment priority list","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /sales-orders/{salesOrderId}/items/fulfillment-priority-list","href":"/api-reference/sales-orders/set-sales-order-lines-fulfillment-priority-list"},{"title":"Preview a sales-order item remap","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /sales-orders/{salesOrderId}/items/{salesOrderItemId}/remap-preview","href":"/api-reference/sales-orders/preview-a-sales-order-item-remap"},{"title":"Remap a sales-order item","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml patch /sales-orders/{salesOrderId}/items/{salesOrderItemId}/remap","href":"/api-reference/sales-orders/remap-a-sales-order-item"},{"title":"Push fulfillment to order source","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /sales-orders/{salesOrderId}/push-fulfillment","href":"/api-reference/sales-orders/push-fulfillment-to-order-source"},{"title":"Simulate fulfillment for a sales order","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /sales-orders/{salesOrderId}/simulate-fulfillment","href":"/api-reference/sales-orders/simulate-fulfillment-for-a-sales-order"},{"title":"Auto-generate fulfillment orders (synchronous)","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /sales-orders/{salesOrderId}/auto-generate-fulfillment-orders","href":"/api-reference/sales-orders/auto-generate-fulfillment-orders-synchronous"},{"title":"Create a fulfillment order (no stock checks)","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /sales-orders/{salesOrderId}/fulfillment-orders","href":"/api-reference/sales-orders/create-a-fulfillment-order-no-stock-checks"},{"title":"Refresh a sales order","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /sales-orders/{salesOrderId}/refresh","href":"/api-reference/sales-orders/refresh-a-sales-order"},{"title":"List sales order shipments","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /sales-order-shipments","href":"/api-reference/sales-orders/list-sales-order-shipments"},{"title":"Get shipments for a sales order","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /sales-orders/{salesOrderId}/shipments","href":"/api-reference/sales-orders/get-shipments-for-a-sales-order"},{"title":"Create a new shipment for a sales order","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /sales-orders/{salesOrderId}/shipments","href":"/api-reference/sales-orders/create-a-new-shipment-for-a-sales-order"},{"title":"Force-push shipment fulfillment to order source","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /sales-orders/{salesOrderId}/shipments/{shipmentId}/force-push-source-fulfillment","href":"/api-reference/sales-orders/force-push-shipment-fulfillment-to-order-source"},{"title":"Create shipment packages","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /sales-orders/{salesOrderId}/shipments/{shipmentId}/packages","href":"/api-reference/sales-orders/create-shipment-packages"},{"title":"List sales order attachments","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /sales-orders/{salesOrderId}/attachments","href":"/api-reference/sales-orders/list-sales-order-attachments"},{"title":"Upload a sales order attachment","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /sales-orders/{salesOrderId}/attachments","href":"/api-reference/sales-orders/upload-a-sales-order-attachment"},{"title":"Download a sales order attachment","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /sales-orders/{salesOrderId}/attachments/{attachmentId}/download","href":"/api-reference/sales-orders/download-a-sales-order-attachment"},{"title":"Delete a sales order attachment","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml delete /sales-orders/{salesOrderId}/attachments/{attachmentId}","href":"/api-reference/sales-orders/delete-a-sales-order-attachment"}]},{"group":"Fulfillment Orders","pages":[{"title":"Fulfillment orders","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /fulfillment-orders","href":"/api-reference/fulfillment-orders/fulfillment-orders"},{"title":"Simulate fulfillment-order generation (bulk)","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /fulfillment-orders/simulate","href":"/api-reference/fulfillment-orders/simulate-fulfillment-order-generation-bulk"},{"title":"Bulk delete fulfillment orders","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /fulfillment-orders/bulk-delete","href":"/api-reference/fulfillment-orders/bulk-delete-fulfillment-orders"},{"title":"Get fulfillment order","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /fulfillment-orders/{id}","href":"/api-reference/fulfillment-orders/get-fulfillment-order"},{"title":"Delete fulfillment order","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml delete /fulfillment-orders/{id}","href":"/api-reference/fulfillment-orders/delete-fulfillment-order"},{"title":"Push fulfillment order to OMS","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /fulfillment-orders/{id}/push","href":"/api-reference/fulfillment-orders/push-fulfillment-order-to-oms"},{"title":"Unpush fulfillment order from OMS","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /fulfillment-orders/{id}/unpush","href":"/api-reference/fulfillment-orders/unpush-fulfillment-order-from-oms"},{"title":"Reconcile source reference","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /fulfillment-orders/{id}/reconcile-source-reference","href":"/api-reference/fulfillment-orders/reconcile-source-reference"},{"title":"Remove sales order line from fulfillment order","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /fulfillment-orders/{id}/remove-so-item","href":"/api-reference/fulfillment-orders/remove-sales-order-line-from-fulfillment-order"},{"title":"Set custom field values on a fulfillment order","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml put /fulfillment-orders/{fulfillmentOrderId}/custom-fields","href":"/api-reference/fulfillment-orders/set-custom-field-values-on-a-fulfillment-order"},{"title":"Check fulfillment-order push readiness","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /fulfillment-orders/{fulfillmentOrderId}/push-readiness","href":"/api-reference/fulfillment-orders/check-fulfillment-order-push-readiness"},{"title":"List fulfillment-order activity logs","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /fulfillment-orders/{fulfillmentOrderId}/activity-logs","href":"/api-reference/fulfillment-orders/list-fulfillment-order-activity-logs"},{"title":"Preview fulfillment-order push mapping","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /fulfillment-orders/{fulfillmentOrderId}/push-preview","href":"/api-reference/fulfillment-orders/preview-fulfillment-order-push-mapping"},{"title":"Repair address and push fulfillment order","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /fulfillment-orders/{fulfillmentOrderId}/repair-and-push","href":"/api-reference/fulfillment-orders/repair-address-and-push-fulfillment-order"},{"title":"Create Shipment","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /fulfillment-orders/{id}/shipments","href":"/api-reference/fulfillment-orders/create-shipment"},{"title":"Update fulfillment order notes","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml patch /fulfillment-orders/{fulfillmentOrderId}/notes","href":"/api-reference/fulfillment-orders/update-fulfillment-order-notes"},{"title":"Get tags on a fulfillment order","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /fulfillment-orders/{fulfillmentOrderId}/tags","href":"/api-reference/fulfillment-orders/get-tags-on-a-fulfillment-order"},{"title":"Attach tag(s) to a fulfillment order","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /fulfillment-orders/{fulfillmentOrderId}/tags","href":"/api-reference/fulfillment-orders/attach-tags-to-a-fulfillment-order"},{"title":"Replace all tags on a fulfillment order","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml put /fulfillment-orders/{fulfillmentOrderId}/tags","href":"/api-reference/fulfillment-orders/replace-all-tags-on-a-fulfillment-order"},{"title":"Detach a tag from a fulfillment order","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml delete /fulfillment-orders/{fulfillmentOrderId}/tags/{tag}","href":"/api-reference/fulfillment-orders/detach-a-tag-from-a-fulfillment-order"},{"title":"Hold fulfillment order","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /fulfillment-orders/{fulfillmentOrderId}/hold","href":"/api-reference/fulfillment-orders/hold-fulfillment-order"},{"title":"Release fulfillment order from hold","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /fulfillment-orders/{fulfillmentOrderId}/release","href":"/api-reference/fulfillment-orders/release-fulfillment-order-from-hold"},{"title":"Cancel fulfillment order","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /fulfillment-orders/{fulfillmentOrderId}/cancel","href":"/api-reference/fulfillment-orders/cancel-fulfillment-order"},{"title":"Mark fulfillment order as shipped","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /fulfillment-orders/{fulfillmentOrderId}/mark-shipped","href":"/api-reference/fulfillment-orders/mark-fulfillment-order-as-shipped"},{"title":"Set fulfillment order status","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml put /fulfillment-orders/{fulfillmentOrderId}/status","href":"/api-reference/fulfillment-orders/set-fulfillment-order-status"},{"title":"Update ship-by date","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml patch /fulfillment-orders/{fulfillmentOrderId}/ship-by-date","href":"/api-reference/fulfillment-orders/update-ship-by-date"},{"title":"Freight account and booking defaults","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /fulfillment-orders/{fulfillmentOrderId}/freight/defaults","href":"/api-reference/fulfillment-orders/freight-account-and-booking-defaults"},{"title":"Freight record and active shipments","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /fulfillment-orders/{fulfillmentOrderId}/freight/shipments","href":"/api-reference/fulfillment-orders/freight-record-and-active-shipments"},{"title":"Build a package plan","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /fulfillment-orders/{fulfillmentOrderId}/freight/package-plan","href":"/api-reference/fulfillment-orders/build-a-package-plan"},{"title":"Create freight shipment and request quotes","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /fulfillment-orders/{fulfillmentOrderId}/freight/quotes","href":"/api-reference/fulfillment-orders/create-freight-shipment-and-request-quotes"},{"title":"Packing slip PDF","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /fulfillment-orders/{fulfillmentOrderId}/packing-slip","href":"/api-reference/fulfillment-orders/packing-slip-pdf"}]},{"group":"Freight","pages":[{"title":"Single freight shipment","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /freight/shipments/{metadataId}","href":"/api-reference/freight/single-freight-shipment"},{"title":"Freight quotes","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /freight/shipments/{metadataId}/quotes","href":"/api-reference/freight/freight-quotes"},{"title":"Book a freight quote","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /freight/shipments/{metadataId}/book","href":"/api-reference/freight/book-a-freight-quote"},{"title":"Sync status from Freightview","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /freight/shipments/{metadataId}/sync-status","href":"/api-reference/freight/sync-status-from-freightview"},{"title":"Freight documents","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /freight/shipments/{metadataId}/documents","href":"/api-reference/freight/freight-documents"},{"title":"Download a freight document","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /freight/shipments/{metadataId}/documents/{documentId}/download","href":"/api-reference/freight/download-a-freight-document"}]},{"group":"Fulfillment Priority Lists","pages":[{"title":"List fulfillment priority lists","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /fulfillment-priority-lists","href":"/api-reference/fulfillment-priority-lists/list-fulfillment-priority-lists"},{"title":"Create a fulfillment priority list","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /fulfillment-priority-lists","href":"/api-reference/fulfillment-priority-lists/create-a-fulfillment-priority-list"},{"title":"Get a fulfillment priority list","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /fulfillment-priority-lists/{fulfillmentPriorityListId}","href":"/api-reference/fulfillment-priority-lists/get-a-fulfillment-priority-list"},{"title":"Update a fulfillment priority list","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml put /fulfillment-priority-lists/{fulfillmentPriorityListId}","href":"/api-reference/fulfillment-priority-lists/update-a-fulfillment-priority-list"},{"title":"Delete a fulfillment priority list","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml delete /fulfillment-priority-lists/{fulfillmentPriorityListId}","href":"/api-reference/fulfillment-priority-lists/delete-a-fulfillment-priority-list"}]},{"group":"PickFlow Warehouse","pages":[{"title":"Resolve a scanned barcode","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /pickflow/scan/resolve","href":"/api-reference/pickflow-warehouse/resolve-a-scanned-barcode"},{"title":"Get bin contents","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /pickflow/locations/{locationId}/stock","href":"/api-reference/pickflow-warehouse/get-bin-contents"},{"title":"Get product stock by bin","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /pickflow/products/{productId}/stock","href":"/api-reference/pickflow-warehouse/get-product-stock-by-bin"},{"title":"Search bins in a warehouse","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /pickflow/warehouses/{warehouseId}/bins","href":"/api-reference/pickflow-warehouse/search-bins-in-a-warehouse"},{"title":"List open PO lines to receive a product against","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /pickflow/receivables","href":"/api-reference/pickflow-warehouse/list-open-po-lines-to-receive-a-product-against"}]},{"group":"PickFlow Shipping","pages":[{"title":"List shipping carriers","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /pickflow/shipping/carriers","href":"/api-reference/pickflow-shipping/list-shipping-carriers"},{"title":"List shipping services for a carrier","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /pickflow/shipping/services","href":"/api-reference/pickflow-shipping/list-shipping-services-for-a-carrier"},{"title":"List package types for a carrier","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /pickflow/shipping/packages","href":"/api-reference/pickflow-shipping/list-package-types-for-a-carrier"},{"title":"Buy a shipping label for a fulfillment order","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /pickflow/fulfillment-orders/{fulfillmentOrderId}/label","href":"/api-reference/pickflow-shipping/buy-a-shipping-label-for-a-fulfillment-order"}]},{"group":"Picklists","pages":[{"title":"List picklists","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /pickflow/picklists","href":"/api-reference/picklists/list-picklists"},{"title":"Get a picklist","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /pickflow/picklists/{id}","href":"/api-reference/picklists/get-a-picklist"},{"title":"List lots staged in a picklist's WIP bin","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /pickflow/picklists/{id}/wip-lots","href":"/api-reference/picklists/list-lots-staged-in-a-picklists-wip-bin"},{"title":"Complete picking for a picklist","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /pickflow/picklists/{id}/complete","href":"/api-reference/picklists/complete-picking-for-a-picklist"}]},{"group":"Cycle Counts","pages":[{"title":"Create a cycle count batch","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /pickflow/cycle-counts","href":"/api-reference/cycle-counts/create-a-cycle-count-batch"},{"title":"List active sessions for a warehouse","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /pickflow/cycle-counts","href":"/api-reference/cycle-counts/list-active-sessions-for-a-warehouse"},{"title":"Create a cycle count batch","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /pickflow/cycle-counts","href":"/api-reference/cycle-counts/create-a-cycle-count-batch"},{"title":"SKU-mode item-count estimate per warehouse","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /pickflow/cycle-counts/sku-estimate","href":"/api-reference/cycle-counts/sku-mode-item-count-estimate-per-warehouse"},{"title":"Bin-location-mode item-count estimate per warehouse","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /pickflow/cycle-counts/bin-location-estimate","href":"/api-reference/cycle-counts/bin-location-mode-item-count-estimate-per-warehouse"},{"title":"Search locations (bins) within a warehouse","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /pickflow/cycle-counts/warehouses/{warehouseId}/locations/search","href":"/api-reference/cycle-counts/search-locations-bins-within-a-warehouse"},{"title":"Search products","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /pickflow/cycle-counts/products/search","href":"/api-reference/cycle-counts/search-products"},{"title":"Search lots","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /pickflow/cycle-counts/lots/search","href":"/api-reference/cycle-counts/search-lots"},{"title":"List cycle count batches","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /pickflow/cycle-counts/batches","href":"/api-reference/cycle-counts/list-cycle-count-batches"},{"title":"Get a cycle count batch","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /pickflow/cycle-counts/batches/{batchId}","href":"/api-reference/cycle-counts/get-a-cycle-count-batch"},{"title":"Delete a batch and all its sessions","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml delete /pickflow/cycle-counts/batches/{batchId}","href":"/api-reference/cycle-counts/delete-a-batch-and-all-its-sessions"},{"title":"Start every draft session in the batch","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /pickflow/cycle-counts/batches/{batchId}/start-all","href":"/api-reference/cycle-counts/start-every-draft-session-in-the-batch"},{"title":"Export the batch-level variance report as CSV","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /pickflow/cycle-counts/batches/{batchId}/export","href":"/api-reference/cycle-counts/export-the-batch-level-variance-report-as-csv"},{"title":"Get a cycle count session","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /pickflow/cycle-counts/{sessionId}","href":"/api-reference/cycle-counts/get-a-cycle-count-session"},{"title":"Delete a cycle count session","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml delete /pickflow/cycle-counts/{sessionId}","href":"/api-reference/cycle-counts/delete-a-cycle-count-session"},{"title":"List session items","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /pickflow/cycle-counts/{sessionId}/items","href":"/api-reference/cycle-counts/list-session-items"},{"title":"Record a count for one item","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /pickflow/cycle-counts/{sessionId}/items/{itemId}/count","href":"/api-reference/cycle-counts/record-a-count-for-one-item"},{"title":"Scan a barcode and record a count","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /pickflow/cycle-counts/{sessionId}/scan","href":"/api-reference/cycle-counts/scan-a-barcode-and-record-a-count"},{"title":"Session counting-progress summary","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /pickflow/cycle-counts/{sessionId}/progress","href":"/api-reference/cycle-counts/session-counting-progress-summary"},{"title":"Start counting","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /pickflow/cycle-counts/{sessionId}/start","href":"/api-reference/cycle-counts/start-counting"},{"title":"Submit for review","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /pickflow/cycle-counts/{sessionId}/submit-review","href":"/api-reference/cycle-counts/submit-for-review"},{"title":"Reopen for counting","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /pickflow/cycle-counts/{sessionId}/reopen","href":"/api-reference/cycle-counts/reopen-for-counting"},{"title":"Post a cycle count session","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /pickflow/cycle-counts/{sessionId}/post","href":"/api-reference/cycle-counts/post-a-cycle-count-session"},{"title":"Cancel a cycle count session","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /pickflow/cycle-counts/{sessionId}/cancel","href":"/api-reference/cycle-counts/cancel-a-cycle-count-session"},{"title":"Reset all counted quantities","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /pickflow/cycle-counts/{sessionId}/reset-counts","href":"/api-reference/cycle-counts/reset-all-counted-quantities"},{"title":"Export the session-level variance report as CSV","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /pickflow/cycle-counts/{sessionId}/export","href":"/api-reference/cycle-counts/export-the-session-level-variance-report-as-csv"},{"title":"Download the CSV count-sheet template","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /pickflow/cycle-counts/{sessionId}/template","href":"/api-reference/cycle-counts/download-the-csv-count-sheet-template"},{"title":"Validate an uploaded counting-sheet CSV","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /pickflow/cycle-counts/{sessionId}/validate-import","href":"/api-reference/cycle-counts/validate-an-uploaded-counting-sheet-csv"},{"title":"Apply a validated import","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /pickflow/cycle-counts/{sessionId}/import-counts","href":"/api-reference/cycle-counts/apply-a-validated-import"}]},{"group":"Print Stations","pages":[{"title":"List print stations","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /print-stations","href":"/api-reference/print-stations/list-print-stations"},{"title":"Enqueue a print job","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /print-stations/{stationId}/print-jobs","href":"/api-reference/print-stations/enqueue-a-print-job"},{"title":"List print stations (PickFlow alias)","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /pickflow/print-stations","href":"/api-reference/print-stations/list-print-stations-pickflow-alias"},{"title":"Mint a print station pairing code (PickFlow)","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /pickflow/print-stations/pairing-codes","href":"/api-reference/print-stations/mint-a-print-station-pairing-code-pickflow"},{"title":"List recent print jobs (PickFlow)","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /pickflow/print-stations/jobs/recent","href":"/api-reference/print-stations/list-recent-print-jobs-pickflow"},{"title":"Revoke a print station (PickFlow)","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /pickflow/print-stations/{id}/revoke","href":"/api-reference/print-stations/revoke-a-print-station-pickflow"},{"title":"Send a test print (PickFlow)","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /pickflow/print-stations/{id}/test-print","href":"/api-reference/print-stations/send-a-test-print-pickflow"},{"title":"Delete a print station (PickFlow)","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml delete /pickflow/print-stations/{id}","href":"/api-reference/print-stations/delete-a-print-station-pickflow"}]},{"group":"Purgatory","pages":[{"title":"List non-posted (purgatory) sales orders","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /purgatory/orders","href":"/api-reference/purgatory/list-non-posted-purgatory-sales-orders"},{"title":"Get a single non-posted order","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /purgatory/orders/{salesOrderId}","href":"/api-reference/purgatory/get-a-single-non-posted-order"},{"title":"Map a line item to a product / toggle flags","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml patch /purgatory/order-items/{salesOrderItemId}","href":"/api-reference/purgatory/map-a-line-item-to-a-product-toggle-flags"},{"title":"Dispatch auto-mapping job","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /purgatory/jobs/auto-map","href":"/api-reference/purgatory/dispatch-auto-mapping-job"},{"title":"Dispatch reprocess-purgatory job","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /purgatory/jobs/reprocess","href":"/api-reference/purgatory/dispatch-reprocess-purgatory-job"},{"title":"Get purgatory automation settings","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /purgatory/settings","href":"/api-reference/purgatory/get-purgatory-automation-settings"},{"title":"Partially update purgatory settings","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml put /purgatory/settings","href":"/api-reference/purgatory/partially-update-purgatory-settings"},{"title":"Get purgatory settings schema","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /purgatory/settings/schema","href":"/api-reference/purgatory/get-purgatory-settings-schema"}]},{"group":"Activity Logs","pages":[{"title":"List activity log entries for a subject","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /activity-logs","href":"/api-reference/activity-logs/list-activity-log-entries-for-a-subject"},{"title":"Ask an AI about a record's history","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /activity-logs/ask-ai","href":"/api-reference/activity-logs/ask-an-ai-about-a-records-history"}]},{"group":"Invoices","pages":[{"title":"Invoices","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /invoices","href":"/api-reference/invoices/invoices"},{"title":"Create invoice","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /invoices","href":"/api-reference/invoices/create-invoice"},{"title":"Bulk void or delete invoices","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /invoices/bulk-void-delete","href":"/api-reference/invoices/bulk-void-or-delete-invoices"},{"title":"Single invoice","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /invoices/{id}","href":"/api-reference/invoices/single-invoice"},{"title":"Update invoice","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml patch /invoices/{id}","href":"/api-reference/invoices/update-invoice"},{"title":"Delete invoice","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml delete /invoices/{id}","href":"/api-reference/invoices/delete-invoice"},{"title":"Void invoice","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /invoices/{invoiceId}/void","href":"/api-reference/invoices/void-invoice"},{"title":"Approve invoice","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /invoices/{invoiceId}/approve","href":"/api-reference/invoices/approve-invoice"},{"title":"Reject invoice","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /invoices/{invoiceId}/reject","href":"/api-reference/invoices/reject-invoice"},{"title":"Email a Draft invoice","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /invoices/{invoiceId}/send-email","href":"/api-reference/invoices/email-a-draft-invoice"},{"title":"Estimates","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /estimates","href":"/api-reference/invoices/estimates"},{"title":"Single estimate","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /estimates/{estimateId}","href":"/api-reference/invoices/single-estimate"}]},{"group":"Customer Returns","pages":[{"title":"List customer returns","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /returns","href":"/api-reference/customer-returns/list-customer-returns"},{"title":"Create customer return","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /returns","href":"/api-reference/customer-returns/create-customer-return"},{"title":"Single customer return","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /returns/{id}","href":"/api-reference/customer-returns/single-customer-return"},{"title":"Mark return received","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml patch /returns/{id}/receive","href":"/api-reference/customer-returns/mark-return-received"},{"title":"Update return restock flag","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml patch /returns/{id}/restock","href":"/api-reference/customer-returns/update-return-restock-flag"},{"title":"Delete customer return","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml delete /returns/{id}","href":"/api-reference/customer-returns/delete-customer-return"},{"title":"List refunds","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /refunds","href":"/api-reference/customer-returns/list-refunds"},{"title":"Single refund","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /refunds/{refundId}","href":"/api-reference/customer-returns/single-refund"}]},{"group":"Deals (CRM)","pages":[{"title":"List deals","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /deals","href":"/api-reference/deals/list-deals"},{"title":"Single deal","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /deals/{dealId}","href":"/api-reference/deals/single-deal"},{"title":"List bills linked to a deal","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /deals/{dealId}/bills","href":"/api-reference/deals/list-bills-linked-to-a-deal"},{"title":"Link a bill to a deal","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /deals/{dealId}/bills/{billId}","href":"/api-reference/deals/link-a-bill-to-a-deal"},{"title":"Unlink a bill from a deal","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml delete /deals/{dealId}/bills/{billId}","href":"/api-reference/deals/unlink-a-bill-from-a-deal"},{"title":"List supplier POs linked to a deal","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /deals/{dealId}/purchase-orders","href":"/api-reference/deals/list-supplier-pos-linked-to-a-deal"},{"title":"Link a supplier PO to a deal","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /deals/{dealId}/purchase-orders/{purchaseOrderId}","href":"/api-reference/deals/link-a-supplier-po-to-a-deal"},{"title":"Unlink a supplier PO from a deal","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml delete /deals/{dealId}/purchase-orders/{purchaseOrderId}","href":"/api-reference/deals/unlink-a-supplier-po-from-a-deal"},{"title":"List work orders linked to a deal","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /deals/{dealId}/work-orders","href":"/api-reference/deals/list-work-orders-linked-to-a-deal"},{"title":"Link a work order to a deal","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /deals/{dealId}/work-orders/{workOrderId}","href":"/api-reference/deals/link-a-work-order-to-a-deal"},{"title":"Unlink a work order from a deal","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml delete /deals/{dealId}/work-orders/{workOrderId}","href":"/api-reference/deals/unlink-a-work-order-from-a-deal"}]}]},{"group":"Manufacturing","pages":[{"group":"Work Orders","pages":[{"title":"List work orders","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /work-orders","href":"/api-reference/work-orders/list-work-orders"},{"title":"Create a work order","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /work-orders","href":"/api-reference/work-orders/create-a-work-order"},{"title":"Get a work order","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /work-orders/{workOrderId}","href":"/api-reference/work-orders/get-a-work-order"},{"title":"Update a work order","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml put /work-orders/{workOrderId}","href":"/api-reference/work-orders/update-a-work-order"},{"title":"Delete a work order","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml delete /work-orders/{workOrderId}","href":"/api-reference/work-orders/delete-a-work-order"},{"title":"Bulk create work orders","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /work-orders/bulk","href":"/api-reference/work-orders/bulk-create-work-orders"},{"title":"Bulk delete work orders","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml delete /work-orders/bulk","href":"/api-reference/work-orders/bulk-delete-work-orders"},{"title":"Bulk update work order status","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /work-orders/bulk/status","href":"/api-reference/work-orders/bulk-update-work-order-status"},{"title":"Bulk quick-complete work orders","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /work-orders/bulk/quick-complete","href":"/api-reference/work-orders/bulk-quick-complete-work-orders"},{"title":"Plan a work order","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /work-orders/{workOrderId}/plan","href":"/api-reference/work-orders/plan-a-work-order"},{"title":"Start a work order","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /work-orders/{workOrderId}/start","href":"/api-reference/work-orders/start-a-work-order"},{"title":"Complete a work order","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /work-orders/{workOrderId}/complete","href":"/api-reference/work-orders/complete-a-work-order"},{"title":"Cancel a work order","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /work-orders/{workOrderId}/cancel","href":"/api-reference/work-orders/cancel-a-work-order"},{"title":"Hold a work order","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /work-orders/{workOrderId}/hold","href":"/api-reference/work-orders/hold-a-work-order"},{"title":"Release a work order from hold","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /work-orders/{workOrderId}/unhold","href":"/api-reference/work-orders/release-a-work-order-from-hold"},{"title":"Refresh a work order","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /work-orders/{workOrderId}/refresh","href":"/api-reference/work-orders/refresh-a-work-order"}]},{"group":"Work Order Steps \u0026 Production","pages":[{"title":"List work order steps","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /work-orders/{workOrderId}/steps","href":"/api-reference/work-orders/list-work-order-steps"},{"title":"Complete a work order step","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /work-orders/{workOrderId}/steps/{stepId}/complete","href":"/api-reference/work-orders/complete-a-work-order-step"},{"title":"Skip a work order step","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /work-orders/{workOrderId}/steps/{stepId}/skip","href":"/api-reference/work-orders/skip-a-work-order-step"},{"title":"Generate work order steps","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /work-orders/{workOrderId}/generate-steps","href":"/api-reference/work-orders/generate-work-order-steps"},{"title":"Regenerate work order steps","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /work-orders/{workOrderId}/regenerate-steps","href":"/api-reference/work-orders/regenerate-work-order-steps"},{"title":"List work order step completions","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /work-orders/{workOrderId}/completions","href":"/api-reference/work-orders/list-work-order-step-completions"},{"title":"List production entries","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /work-orders/{workOrderId}/production-entries","href":"/api-reference/work-orders/list-production-entries"},{"title":"Create a production entry","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /work-orders/{workOrderId}/production-entries","href":"/api-reference/work-orders/create-a-production-entry"},{"title":"Delete a production entry","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml delete /work-orders/{workOrderId}/production-entries/{entryId}","href":"/api-reference/work-orders/delete-a-production-entry"},{"title":"Get status history","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /work-orders/{workOrderId}/status-history","href":"/api-reference/work-orders/get-status-history"},{"title":"Get work order events","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /work-orders/{workOrderId}/events","href":"/api-reference/work-orders/get-work-order-events"},{"title":"Update custom fields","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml patch /work-orders/{workOrderId}/custom-fields","href":"/api-reference/work-orders/update-custom-fields"},{"title":"Update notes","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml patch /work-orders/{workOrderId}/notes","href":"/api-reference/work-orders/update-notes"},{"title":"Set service fee","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml patch /work-orders/{workOrderId}/service-fee","href":"/api-reference/work-orders/set-service-fee"},{"title":"Update alternate IDs","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml patch /work-orders/{workOrderId}/alternate-ids","href":"/api-reference/work-orders/update-alternate-ids"},{"title":"Update expected completion date","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml patch /work-orders/{workOrderId}/expected-completion-date","href":"/api-reference/work-orders/update-expected-completion-date"},{"title":"List extra costs","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /work-orders/{workOrderId}/extra-costs","href":"/api-reference/work-orders/list-extra-costs"},{"title":"Add an extra cost","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /work-orders/{workOrderId}/extra-costs","href":"/api-reference/work-orders/add-an-extra-cost"},{"title":"Update an extra cost","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml put /work-orders/{workOrderId}/extra-costs/{extraCostId}","href":"/api-reference/work-orders/update-an-extra-cost"},{"title":"Delete an extra cost","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml delete /work-orders/{workOrderId}/extra-costs/{extraCostId}","href":"/api-reference/work-orders/delete-an-extra-cost"}]},{"group":"Work Order Materials \u0026 Orders","pages":[{"title":"List work order raw materials","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /work-orders/{workOrderId}/raw-materials","href":"/api-reference/work-orders/list-work-order-raw-materials"},{"title":"List work order BOM items","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /work-orders/{workOrderId}/bom-items","href":"/api-reference/work-orders/list-work-order-bom-items"},{"title":"Get work order sub-assembly stock","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /work-orders/{workOrderId}/sub-assembly-stock","href":"/api-reference/work-orders/get-work-order-sub-assembly-stock"},{"title":"Receive finished goods","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /work-orders/{workOrderId}/receive","href":"/api-reference/work-orders/receive-finished-goods"},{"title":"Quick complete a work order","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /work-orders/{workOrderId}/quick-complete","href":"/api-reference/work-orders/quick-complete-a-work-order"},{"title":"Adjust committed stock","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /work-orders/{workOrderId}/adjust-committed-stock","href":"/api-reference/work-orders/adjust-committed-stock"},{"title":"List work order purchase order links","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /work-orders/{workOrderId}/po-links","href":"/api-reference/work-orders/list-work-order-purchase-order-links"},{"title":"Add a purchase order link to a work order","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /work-orders/{workOrderId}/po-links","href":"/api-reference/work-orders/add-a-purchase-order-link-to-a-work-order"},{"title":"Remove a purchase order link from a work order","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml delete /work-orders/{workOrderId}/po-links/{linkId}","href":"/api-reference/work-orders/remove-a-purchase-order-link-from-a-work-order"},{"title":"Allocate incoming stock to a work order","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /work-orders/{workOrderId}/allocate-incoming-stock","href":"/api-reference/work-orders/allocate-incoming-stock-to-a-work-order"},{"title":"List work order assembly order links","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /work-orders/{workOrderId}/ao-links","href":"/api-reference/work-orders/list-work-order-assembly-order-links"},{"title":"List work order receiving reports","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /work-orders/{workOrderId}/receiving-reports","href":"/api-reference/work-orders/list-work-order-receiving-reports"},{"title":"Generate purchase orders for a work order","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /work-orders/{workOrderId}/generate-purchase-orders","href":"/api-reference/work-orders/generate-purchase-orders-for-a-work-order"},{"title":"Generate purchase orders from a work order BOM","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /work-orders/{workOrderId}/generate-purchase-orders-from-bom","href":"/api-reference/work-orders/generate-purchase-orders-from-a-work-order-bom"},{"title":"Generate transfer orders from a work order BOM","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /work-orders/{workOrderId}/generate-transfer-orders-from-bom","href":"/api-reference/work-orders/generate-transfer-orders-from-a-work-order-bom"},{"title":"Generate a finished goods transfer order for a work order","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /work-orders/{workOrderId}/generate-finished-goods-transfer-order","href":"/api-reference/work-orders/generate-a-finished-goods-transfer-order-for-a-work-order"},{"title":"Create a draft assembly order for a work order","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /work-orders/{workOrderId}/create-assembly-order","href":"/api-reference/work-orders/create-a-draft-assembly-order-for-a-work-order"},{"title":"Create a draft assembly order from a work order BOM item","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /work-orders/{workOrderId}/create-assembly-order-from-bom-item","href":"/api-reference/work-orders/create-a-draft-assembly-order-from-a-work-order-bom-item"},{"title":"Create draft assembly orders from work order BOM items","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /work-orders/{workOrderId}/create-assembly-orders-from-bom-items","href":"/api-reference/work-orders/create-draft-assembly-orders-from-work-order-bom-items"},{"title":"Assembly orders","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /assembly-orders","href":"/api-reference/assembly-orders/assembly-orders"},{"title":"Get an assembly order","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /assembly-orders/{assemblyOrderId}","href":"/api-reference/assembly-orders/get-an-assembly-order"},{"title":"Preview an assembly order ledger correction","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /assembly-orders/{assemblyOrderId}/ledger-correction","href":"/api-reference/assembly-orders/preview-an-assembly-order-ledger-correction"},{"title":"Correct a completed assembly order's quantities","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /assembly-orders/{assemblyOrderId}/ledger-correction","href":"/api-reference/assembly-orders/correct-a-completed-assembly-orders-quantities"},{"title":"Preview a posted quantity correction","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /posted-quantity-corrections/preview","href":"/api-reference/assembly-orders/preview-a-posted-quantity-correction"},{"title":"Correct a posted quantity","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /posted-quantity-corrections","href":"/api-reference/assembly-orders/correct-a-posted-quantity"}]},{"group":"Work Order Comments \u0026 Shipments","pages":[{"title":"List work order comments","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /work-orders/{workOrderId}/comments","href":"/api-reference/work-orders/list-work-order-comments"},{"title":"Create a work order comment","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /work-orders/{workOrderId}/comments","href":"/api-reference/work-orders/create-a-work-order-comment"},{"title":"Delete a work order comment","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml delete /work-orders/{workOrderId}/comments/{commentId}","href":"/api-reference/work-orders/delete-a-work-order-comment"},{"title":"Upload a work order comment attachment","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /work-orders/{workOrderId}/comments/{commentId}/attachments","href":"/api-reference/work-orders/upload-a-work-order-comment-attachment"},{"title":"Download a work order comment attachment","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /work-orders/{workOrderId}/comments/{commentId}/attachments/{attachmentId}","href":"/api-reference/work-orders/download-a-work-order-comment-attachment"},{"title":"Delete a work order comment attachment","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml delete /work-orders/{workOrderId}/comments/{commentId}/attachments/{attachmentId}","href":"/api-reference/work-orders/delete-a-work-order-comment-attachment"},{"title":"List work order material scrap","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /work-orders/{workOrderId}/material-scrap","href":"/api-reference/work-orders/list-work-order-material-scrap"},{"title":"Record work order material scrap","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /work-orders/{workOrderId}/material-scrap","href":"/api-reference/work-orders/record-work-order-material-scrap"},{"title":"List work order shipments","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /work-orders/{workOrderId}/shipments","href":"/api-reference/work-orders/list-work-order-shipments"},{"title":"Create a work order shipment","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /work-orders/{workOrderId}/shipments","href":"/api-reference/work-orders/create-a-work-order-shipment"},{"title":"Update a work order shipment","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml put /work-orders/{workOrderId}/shipments/{shipmentId}","href":"/api-reference/work-orders/update-a-work-order-shipment"},{"title":"Receive a work order shipment","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /work-orders/{workOrderId}/shipments/{shipmentId}/receive","href":"/api-reference/work-orders/receive-a-work-order-shipment"},{"title":"List work order shipment receipts","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /work-orders/{workOrderId}/shipment-receipts","href":"/api-reference/work-orders/list-work-order-shipment-receipts"},{"title":"Create a work order shipment receipt","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /work-orders/{workOrderId}/shipment-receipts","href":"/api-reference/work-orders/create-a-work-order-shipment-receipt"},{"title":"Delete a work order shipment receipt","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml delete /work-orders/{workOrderId}/shipment-receipts/{receiptId}","href":"/api-reference/work-orders/delete-a-work-order-shipment-receipt"}]},{"group":"Production Batches","pages":[{"title":"List production batches","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /production-batches","href":"/api-reference/production-batches/list-production-batches"},{"title":"Create a production batch","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /production-batches","href":"/api-reference/production-batches/create-a-production-batch"},{"title":"Get a production batch","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /production-batches/{batchId}","href":"/api-reference/production-batches/get-a-production-batch"},{"title":"Update a production batch","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml put /production-batches/{batchId}","href":"/api-reference/production-batches/update-a-production-batch"},{"title":"Delete a production batch","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml delete /production-batches/{batchId}","href":"/api-reference/production-batches/delete-a-production-batch"},{"title":"Bulk update production batch status","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /production-batches/bulk/status","href":"/api-reference/production-batches/bulk-update-production-batch-status"},{"title":"Bulk remove work orders from batches","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml delete /production-batches/bulk/work-orders","href":"/api-reference/production-batches/bulk-remove-work-orders-from-batches"},{"title":"List production batches available for linking","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /production-batches/available-for-linking","href":"/api-reference/production-batches/list-production-batches-available-for-linking"},{"title":"Add work orders to a production batch","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /production-batches/{batchId}/work-orders","href":"/api-reference/production-batches/add-work-orders-to-a-production-batch"},{"title":"Remove a work order from a production batch","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml delete /production-batches/{batchId}/work-orders/{workOrderId}","href":"/api-reference/production-batches/remove-a-work-order-from-a-production-batch"},{"title":"Update fields on all work orders in a batch","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml patch /production-batches/{batchId}/work-orders/fields","href":"/api-reference/production-batches/update-fields-on-all-work-orders-in-a-batch"},{"title":"Get production batch summary","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /production-batches/{batchId}/summary","href":"/api-reference/production-batches/get-production-batch-summary"},{"title":"Sync production batch status","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /production-batches/{batchId}/sync-status","href":"/api-reference/production-batches/sync-production-batch-status"},{"title":"Update production batch status","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml patch /production-batches/{batchId}/status","href":"/api-reference/production-batches/update-production-batch-status"},{"title":"List purchase order links for a production batch","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /production-batches/{batchId}/po-links","href":"/api-reference/production-batches/list-purchase-order-links-for-a-production-batch"},{"title":"List assembly order links for a production batch","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /production-batches/{batchId}/ao-links","href":"/api-reference/production-batches/list-assembly-order-links-for-a-production-batch"},{"title":"List receiving reports for a production batch","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /production-batches/{batchId}/receiving-reports","href":"/api-reference/production-batches/list-receiving-reports-for-a-production-batch"},{"title":"List status history for a production batch","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /production-batches/{batchId}/status-history","href":"/api-reference/production-batches/list-status-history-for-a-production-batch"},{"title":"List events for a production batch","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /production-batches/{batchId}/events","href":"/api-reference/production-batches/list-events-for-a-production-batch"},{"title":"Export a production batch","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /production-batches/{batchId}/export","href":"/api-reference/production-batches/export-a-production-batch"},{"title":"Generate transfer orders for a production batch","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /production-batches/{batchId}/generate-transfer-orders","href":"/api-reference/production-batches/generate-transfer-orders-for-a-production-batch"},{"title":"List sub-assemblies for a production batch","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /production-batches/{batchId}/sub-assemblies","href":"/api-reference/production-batches/list-sub-assemblies-for-a-production-batch"},{"title":"Export production batch sub-assemblies","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /production-batches/{batchId}/sub-assemblies/export","href":"/api-reference/production-batches/export-production-batch-sub-assemblies"},{"title":"Bulk create assembly orders for sub-assemblies","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /production-batches/{batchId}/sub-assemblies/create-assembly-orders","href":"/api-reference/production-batches/bulk-create-assembly-orders-for-sub-assemblies"},{"title":"Refresh a production batch","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /production-batches/{batchId}/refresh","href":"/api-reference/production-batches/refresh-a-production-batch"}]}]},{"group":"Accounts Payable","pages":[{"group":"Bills","pages":[{"title":"List bills","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /bills","href":"/api-reference/bills/list-bills"},{"title":"Create a bill","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /bills","href":"/api-reference/bills/create-a-bill"},{"title":"Single bill","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /bills/{id}","href":"/api-reference/bills/single-bill"},{"title":"Update a bill","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml put /bills/{id}","href":"/api-reference/bills/update-a-bill"},{"title":"Bills summary","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /bills/summary","href":"/api-reference/bills/bills-summary"},{"title":"Check for duplicate bill","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /bills/check-duplicate","href":"/api-reference/bills/check-for-duplicate-bill"},{"title":"Calculate bill due date","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /bills/calculate-due-date","href":"/api-reference/bills/calculate-bill-due-date"},{"title":"Prefill bill from shipments","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /bills/from-shipments/prefill","href":"/api-reference/bills/prefill-bill-from-shipments"},{"title":"Parse bill import","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /bills/import/parse","href":"/api-reference/bills/parse-bill-import"},{"title":"Bills by purchase order","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /bills/by-purchase-order/{id}","href":"/api-reference/bills/bills-by-purchase-order"},{"title":"Bills by vendor","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /bills/by-vendor/{id}","href":"/api-reference/bills/bills-by-vendor"},{"title":"Update bill status","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml patch /bills/{id}/status","href":"/api-reference/bills/update-bill-status"},{"title":"Post a bill","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /bills/{id}/post","href":"/api-reference/bills/post-a-bill"},{"title":"Reopen a bill","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /bills/{id}/reopen","href":"/api-reference/bills/reopen-a-bill"},{"title":"Hold a bill","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /bills/{id}/hold","href":"/api-reference/bills/hold-a-bill"},{"title":"Unhold a bill","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /bills/{id}/unhold","href":"/api-reference/bills/unhold-a-bill"}]},{"group":"Bill Payments","pages":[{"title":"Record a bill payment","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /bills/{id}/payments","href":"/api-reference/bills/record-a-bill-payment"},{"title":"Delete a bill payment","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml delete /bills/{id}/payments/{paymentId}","href":"/api-reference/bills/delete-a-bill-payment"},{"title":"Void a bill payment","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /bills/{id}/payments/{paymentId}/void","href":"/api-reference/bills/void-a-bill-payment"}]},{"group":"Bill Attachments","pages":[{"title":"Upload a bill attachment","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /bills/{id}/attachments","href":"/api-reference/bills/upload-a-bill-attachment"},{"title":"Download a bill attachment","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /bills/{id}/attachments/{attachmentId}/download","href":"/api-reference/bills/download-a-bill-attachment"},{"title":"Delete a bill attachment","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml delete /bills/{id}/attachments/{attachmentId}","href":"/api-reference/bills/delete-a-bill-attachment"}]},{"group":"Bill Allocations","pages":[{"title":"Bills allocation inbox","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /bills/allocation-inbox","href":"/api-reference/bills/bills-allocation-inbox"},{"title":"List bill allocations","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /bills/{id}/allocations","href":"/api-reference/bills/list-bill-allocations"},{"title":"Create a bill allocation","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /bills/{id}/allocations","href":"/api-reference/bills/create-a-bill-allocation"},{"title":"Delete a bill allocation","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml delete /bills/{id}/allocations/{allocationId}","href":"/api-reference/bills/delete-a-bill-allocation"},{"title":"Auto-allocate bill","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /bills/{id}/auto-allocate","href":"/api-reference/bills/auto-allocate-bill"},{"title":"Bulk reconcile bills to a purchase order","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /bills/bulk-reconcile","href":"/api-reference/bills/bulk-reconcile-bills-to-a-purchase-order"},{"title":"Get bill billable lines","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /bills/{id}/billable-lines","href":"/api-reference/bills/get-bill-billable-lines"},{"title":"Get bill candidate lines","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /bills/{id}/candidate-lines","href":"/api-reference/bills/get-bill-candidate-lines"},{"title":"Get eligible lines for a bill item","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /bills/{id}/bill-items/{billItemId}/eligible-lines","href":"/api-reference/bills/get-eligible-lines-for-a-bill-item"},{"title":"Get AI suggestions for a bill item","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /bills/{id}/bill-items/{billItemId}/ai-suggestions","href":"/api-reference/bills/get-ai-suggestions-for-a-bill-item"},{"title":"Prorate allocation for a bill item","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /bills/{id}/bill-items/{billItemId}/prorate-allocate","href":"/api-reference/bills/prorate-allocation-for-a-bill-item"},{"title":"Get bill variance","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /bills/{id}/variance","href":"/api-reference/bills/get-bill-variance"},{"title":"Resolve bill variance","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /bills/{id}/resolve-variance","href":"/api-reference/bills/resolve-bill-variance"},{"title":"Get billable lines for a shipment","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /shipments/{shipmentId}/billable-lines","href":"/api-reference/bills/get-billable-lines-for-a-shipment"},{"title":"Get billable lines for an assembly order","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /assembly-orders/{assemblyOrderId}/billable-lines","href":"/api-reference/bills/get-billable-lines-for-an-assembly-order"},{"title":"Get billable lines for a work order","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /work-orders/{workOrderId}/billable-lines","href":"/api-reference/bills/get-billable-lines-for-a-work-order"},{"title":"Get billable lines for a production batch","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /production-batches/{batchId}/billable-lines","href":"/api-reference/bills/get-billable-lines-for-a-production-batch"}]},{"group":"Prepayments","pages":[{"title":"List prepayments","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /prepayments","href":"/api-reference/prepayments/list-prepayments"},{"title":"Create a prepayment","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /prepayments","href":"/api-reference/prepayments/create-a-prepayment"},{"title":"Apply a prepayment","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /prepayments/{id}/apply","href":"/api-reference/prepayments/apply-a-prepayment"},{"title":"Reverse a prepayment application","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /prepayments/{id}/applications/{applicationId}/reverse","href":"/api-reference/prepayments/reverse-a-prepayment-application"}]},{"group":"Vendor Credits","pages":[{"title":"List vendor credits","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /vendor-credits","href":"/api-reference/vendor-credits/list-vendor-credits"},{"title":"Create a vendor credit","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /vendor-credits","href":"/api-reference/vendor-credits/create-a-vendor-credit"},{"title":"Get a vendor credit","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /vendor-credits/{id}","href":"/api-reference/vendor-credits/get-a-vendor-credit"},{"title":"Apply a vendor credit","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /vendor-credits/{id}/apply","href":"/api-reference/vendor-credits/apply-a-vendor-credit"},{"title":"Cancel a vendor credit","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml patch /vendor-credits/{id}/cancel","href":"/api-reference/vendor-credits/cancel-a-vendor-credit"},{"title":"Delete a vendor credit application","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml delete /vendor-credits/{id}/applications/{applicationId}","href":"/api-reference/vendor-credits/delete-a-vendor-credit-application"},{"title":"Reverse a vendor credit application","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /vendor-credits/{id}/applications/{applicationId}/reverse","href":"/api-reference/vendor-credits/reverse-a-vendor-credit-application"},{"title":"Get vendor statement","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /vendors/{id}/statement","href":"/api-reference/vendor-credits/get-vendor-statement"}]},{"group":"Vendor Returns","pages":[{"title":"List vendor returns","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /vendor-returns","href":"/api-reference/vendor-returns/list-vendor-returns"},{"title":"Create a vendor return","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /vendor-returns","href":"/api-reference/vendor-returns/create-a-vendor-return"},{"title":"Get a vendor return","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /vendor-returns/{id}","href":"/api-reference/vendor-returns/get-a-vendor-return"},{"title":"Process a vendor return","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /vendor-returns/{id}/process","href":"/api-reference/vendor-returns/process-a-vendor-return"},{"title":"Generate credit for a vendor return","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /vendor-returns/{id}/generate-credit","href":"/api-reference/vendor-returns/generate-credit-for-a-vendor-return"},{"title":"Cancel a vendor return","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml patch /vendor-returns/{id}/cancel","href":"/api-reference/vendor-returns/cancel-a-vendor-return"}]}]},{"group":"Reports \u0026 Analytics","pages":[{"group":"Customer Topology","pages":[{"title":"Customer operational topology snapshot","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /customer-topology","href":"/api-reference/customer-topology/customer-operational-topology-snapshot"}]},{"group":"Stock Snapshot","pages":[{"title":"Stock snapshot (JSON, CSV, or Excel)","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /stock-snapshot","href":"/api-reference/stock-snapshot/stock-snapshot-json-csv-or-excel"}]},{"group":"Consumption","pages":[{"title":"Consumption report (paginated)","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /inventory/transactions/consumption","href":"/api-reference/consumption/consumption-report-paginated"},{"title":"Consumption report export","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /inventory/transactions/consumption/export","href":"/api-reference/consumption/consumption-report-export"}]},{"group":"Inventory Aging","pages":[{"title":"Inventory aging (paginated)","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /inventory/aging","href":"/api-reference/inventory-aging/inventory-aging-paginated"},{"title":"Inventory aging export","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /inventory/aging/export","href":"/api-reference/inventory-aging/inventory-aging-export"}]},{"group":"Bills Aging","pages":[{"title":"AP bills aging by vendor","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /bills/reports/aging","href":"/api-reference/bills-reports/ap-bills-aging-by-vendor"}]},{"group":"Forecast","pages":[{"title":"Materialized forecast rows (paginated)","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /forecast-data","href":"/api-reference/forecast/materialized-forecast-rows-paginated"},{"title":"Materialized forecast export","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /forecast-data/export","href":"/api-reference/forecast/materialized-forecast-export"},{"title":"Forecast table refresh metadata","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /forecast-data/refresh-status","href":"/api-reference/forecast/forecast-table-refresh-metadata"},{"title":"Forecast row by product (RFQ) ID","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /forecast-data/product/{rfqId}","href":"/api-reference/forecast/forecast-row-by-product-rfq-id"},{"title":"Forecast row by materialized row ID","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /forecast-data/{id}","href":"/api-reference/forecast/forecast-row-by-materialized-row-id"},{"title":"Materialized forecast by warehouse group (paginated)","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /forecast-warehouse-data","href":"/api-reference/forecast/materialized-forecast-by-warehouse-group-paginated"},{"title":"Warehouse forecast export","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /forecast-warehouse-data/export","href":"/api-reference/forecast/warehouse-forecast-export"},{"title":"Warehouse forecast refresh metadata","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /forecast-warehouse-data/refresh-status","href":"/api-reference/forecast/warehouse-forecast-refresh-metadata"},{"title":"All warehouse-group forecast rows for a product","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /forecast-warehouse-data/product/{rfqId}","href":"/api-reference/forecast/all-warehouse-group-forecast-rows-for-a-product"},{"title":"Warehouse forecast row by ID","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /forecast-warehouse-data/{id}","href":"/api-reference/forecast/warehouse-forecast-row-by-id"}]},{"group":"Core Inventory Ledger","pages":[{"title":"List Core inventory transactions","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /core/inventory-transactions","href":"/api-reference/core-inventory-ledger/list-core-inventory-transactions"},{"title":"Export Core inventory transactions","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /core/inventory-transactions/export","href":"/api-reference/core-inventory-ledger/export-core-inventory-transactions"},{"title":"Get a Core inventory transaction","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /core/inventory-transactions/{transactionId}","href":"/api-reference/core-inventory-ledger/get-a-core-inventory-transaction"},{"title":"List Core inventory costs","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /core/inventory-costs","href":"/api-reference/core-inventory-ledger/list-core-inventory-costs"},{"title":"Export Core inventory costs","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /core/inventory-costs/export","href":"/api-reference/core-inventory-ledger/export-core-inventory-costs"},{"title":"Get a Core inventory cost","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /core/inventory-costs/{costId}","href":"/api-reference/core-inventory-ledger/get-a-core-inventory-cost"}]},{"group":"Reports","pages":[{"title":"Sales by company report","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /reports/sales-by-company","href":"/api-reference/reports/sales-by-company-report"},{"title":"Close the Books — sales summary by channel","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /reports/close-books/sales-summary","href":"/api-reference/reports/close-the-books-—-sales-summary-by-channel"},{"title":"Close the Books — zero-cost line items in range","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /reports/close-books/zero-cost-items","href":"/api-reference/reports/close-the-books-—-zero-cost-line-items-in-range"},{"title":"Close the Books — zero valuation inventory","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /reports/close-books/zero-valuation-inventory","href":"/api-reference/reports/close-the-books-—-zero-valuation-inventory"},{"title":"Close the Books — invoice sync errors","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /reports/close-books/invoice-sync-errors","href":"/api-reference/reports/close-the-books-—-invoice-sync-errors"},{"title":"Stock / cost-layer discrepancy rows","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /reports/inventory-discrepancy","href":"/api-reference/reports/stock-cost-layer-discrepancy-rows"},{"title":"Discrepancy dashboard summary","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /reports/inventory-discrepancy/dashboard","href":"/api-reference/reports/discrepancy-dashboard-summary"},{"title":"Transaction COGS (paginated, read-only)","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /reports/transaction-cogs","href":"/api-reference/reports/transaction-cogs-paginated-read-only"},{"title":"Update per-line COGS from unit cost","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /transaction-cogs/update-costs","href":"/api-reference/reports/update-per-line-cogs-from-unit-cost"},{"title":"EDI documents (paginated)","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /reports/edi","href":"/api-reference/reports/edi-documents-paginated"},{"title":"EDI aggregate summary","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /reports/edi/summary","href":"/api-reference/reports/edi-aggregate-summary"},{"title":"EDI report CSV export","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /reports/edi/export","href":"/api-reference/reports/edi-report-csv-export"}]}]},{"group":"Drive","pages":[{"group":"Folders","pages":[{"title":"List folders","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /file-cabinet/folders","href":"/api-reference/drive/list-folders"},{"title":"Create a folder","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /file-cabinet/folders","href":"/api-reference/drive/create-a-folder"},{"title":"Get a folder and its contents","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /file-cabinet/folders/{id}","href":"/api-reference/drive/get-a-folder-and-its-contents"},{"title":"Update a folder","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml patch /file-cabinet/folders/{id}","href":"/api-reference/drive/update-a-folder"},{"title":"Delete a folder","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml delete /file-cabinet/folders/{id}","href":"/api-reference/drive/delete-a-folder"}]},{"group":"Files","pages":[{"title":"Search files","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /file-cabinet/files","href":"/api-reference/drive/search-files"},{"title":"Upload a small file","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /file-cabinet/files","href":"/api-reference/drive/upload-a-small-file"},{"title":"Get a file","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /file-cabinet/files/{id}","href":"/api-reference/drive/get-a-file"},{"title":"Update a file","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml patch /file-cabinet/files/{id}","href":"/api-reference/drive/update-a-file"},{"title":"Delete a file","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml delete /file-cabinet/files/{id}","href":"/api-reference/drive/delete-a-file"},{"title":"Get a download URL","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /file-cabinet/files/{id}/download","href":"/api-reference/drive/get-a-download-url"},{"title":"Get a file thumbnail","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /file-cabinet/files/{id}/thumbnail","href":"/api-reference/drive/get-a-file-thumbnail"},{"title":"Get image file content","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /file-cabinet/files/{id}/content","href":"/api-reference/drive/get-image-file-content"},{"title":"List file versions","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /file-cabinet/files/{id}/versions","href":"/api-reference/drive/list-file-versions"},{"title":"List file activity","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /file-cabinet/files/{id}/activity","href":"/api-reference/drive/list-file-activity"},{"title":"Apply an image to a SKU","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /file-cabinet/files/{id}/apply-to-sku","href":"/api-reference/drive/apply-an-image-to-a-sku"},{"title":"Turn on the public image URL","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /file-cabinet/files/{id}/public-image","href":"/api-reference/drive/turn-on-the-public-image-url"}]},{"group":"Large Uploads","pages":[{"title":"Start a large upload","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /file-cabinet/uploads","href":"/api-reference/drive/start-a-large-upload"},{"title":"Finish a large upload","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /file-cabinet/uploads/{versionId}/complete","href":"/api-reference/drive/finish-a-large-upload"}]},{"group":"Drive Tags","pages":[{"title":"Set folder tags","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml put /file-cabinet/folder/{id}/tags","href":"/api-reference/drive/set-folder-tags"},{"title":"Set file tags","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml put /file-cabinet/file/{id}/tags","href":"/api-reference/drive/set-file-tags"},{"title":"List tags","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /file-cabinet/tags","href":"/api-reference/drive/list-tags"},{"title":"Create a tag","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /file-cabinet/tags","href":"/api-reference/drive/create-a-tag"},{"title":"Update a tag","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml patch /file-cabinet/tags/{id}","href":"/api-reference/drive/update-a-tag"},{"title":"Delete a tag","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml delete /file-cabinet/tags/{id}","href":"/api-reference/drive/delete-a-tag"}]},{"group":"Record Attachments","pages":[{"title":"List where a file is used","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /file-cabinet/files/{id}/references","href":"/api-reference/drive/list-where-a-file-is-used"},{"title":"List files attached to a record","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /file-cabinet/references","href":"/api-reference/drive/list-files-attached-to-a-record"},{"title":"Attach files to a record","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /file-cabinet/references","href":"/api-reference/drive/attach-files-to-a-record"},{"title":"Detach a file from a record","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml delete /file-cabinet/references/{id}","href":"/api-reference/drive/detach-a-file-from-a-record"}]},{"group":"Trash","pages":[{"title":"List the trash","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /file-cabinet/trash","href":"/api-reference/drive/list-the-trash"},{"title":"Restore from the trash","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /file-cabinet/trash/restore","href":"/api-reference/drive/restore-from-the-trash"},{"title":"Delete a folder forever","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml delete /file-cabinet/trash/folder/{id}","href":"/api-reference/drive/delete-a-folder-forever"},{"title":"Delete a file forever","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml delete /file-cabinet/trash/file/{id}","href":"/api-reference/drive/delete-a-file-forever"}]}]},{"group":"Configuration","pages":[{"group":"Tags","pages":[{"title":"Get tags for a record","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /{recordType}/{recordId}/tags","href":"/api-reference/tags/get-tags-for-a-record"},{"title":"Replace all tags on a record","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml put /{recordType}/{recordId}/tags","href":"/api-reference/tags/replace-all-tags-on-a-record"},{"title":"Attach tags to a record","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /{recordType}/{recordId}/tags","href":"/api-reference/tags/attach-tags-to-a-record"},{"title":"Detach a tag from a record","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml delete /{recordType}/{recordId}/tags/{id}","href":"/api-reference/tags/detach-a-tag-from-a-record"}]},{"group":"Custom Fields","pages":[{"title":"Get custom field definitions","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /custom-fields","href":"/api-reference/custom-fields/get-custom-field-definitions"},{"title":"Create a custom field definition","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /custom-fields","href":"/api-reference/custom-fields/create-a-custom-field-definition"},{"title":"Get a custom field definition","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /custom-fields/{customFieldId}","href":"/api-reference/custom-fields/get-a-custom-field-definition"},{"title":"Update a custom field definition","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml put /custom-fields/{customFieldId}","href":"/api-reference/custom-fields/update-a-custom-field-definition"},{"title":"Partially update a custom field definition","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml patch /custom-fields/{customFieldId}","href":"/api-reference/custom-fields/partially-update-a-custom-field-definition"},{"title":"Add or remove dropdown choices","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml patch /custom-fields/{customFieldId}/choices","href":"/api-reference/custom-fields/add-or-remove-dropdown-choices"},{"title":"Delete a custom field definition","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml delete /custom-fields/{customFieldId}","href":"/api-reference/custom-fields/delete-a-custom-field-definition"},{"title":"Get custom field values","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /{recordType}/{recordId}/custom-fields","href":"/api-reference/custom-fields/get-custom-field-values"},{"title":"Update custom field values","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml put /{recordType}/{recordId}/custom-fields","href":"/api-reference/custom-fields/update-custom-field-values"}]},{"group":"Users","pages":[{"title":"Users","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /users","href":"/api-reference/users/users"},{"title":"User","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /users/{userId}","href":"/api-reference/users/user"}]},{"group":"Carton Templates","pages":[{"title":"List carton templates","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /carton-templates","href":"/api-reference/carton-templates/list-carton-templates"},{"title":"Create a carton template","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /carton-templates","href":"/api-reference/carton-templates/create-a-carton-template"},{"title":"Single carton template","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /carton-templates/{cartonTemplateId}","href":"/api-reference/carton-templates/single-carton-template"},{"title":"Update a carton template","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml put /carton-templates/{cartonTemplateId}","href":"/api-reference/carton-templates/update-a-carton-template"},{"title":"Update a carton template (PATCH)","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml patch /carton-templates/{cartonTemplateId}","href":"/api-reference/carton-templates/update-a-carton-template-patch"},{"title":"Delete a carton template","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml delete /carton-templates/{cartonTemplateId}","href":"/api-reference/carton-templates/delete-a-carton-template"}]},{"group":"Shipping Rules","pages":[{"title":"Get shipping rules","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /shipping-rules","href":"/api-reference/shipping-rules/get-shipping-rules"},{"title":"Replace shipping rules","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml put /shipping-rules","href":"/api-reference/shipping-rules/replace-shipping-rules"},{"title":"Get the shipping-rule schema","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /shipping-rules/schema","href":"/api-reference/shipping-rules/get-the-shipping-rule-schema"},{"title":"Test shipping rules against an order","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /shipping-rules/test","href":"/api-reference/shipping-rules/test-shipping-rules-against-an-order"}]},{"group":"Automations","pages":[{"title":"Get the automation catalog","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /automations/schema","href":"/api-reference/automations/get-the-automation-catalog"},{"title":"List automation rules","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /automations","href":"/api-reference/automations/list-automation-rules"},{"title":"Create an automation rule","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /automations","href":"/api-reference/automations/create-an-automation-rule"},{"title":"Get an automation rule","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /automations/{automationId}","href":"/api-reference/automations/get-an-automation-rule"},{"title":"Replace an automation rule","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /automations/{automationId}","href":"/api-reference/automations/replace-an-automation-rule"},{"title":"Delete an automation rule","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml delete /automations/{automationId}","href":"/api-reference/automations/delete-an-automation-rule"},{"title":"Set an automation rule's status","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /automations/{automationId}/status","href":"/api-reference/automations/set-an-automation-rules-status"},{"title":"Live-test an automation event","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /automations/runs","href":"/api-reference/automations/live-test-an-automation-event"},{"title":"List automation runs","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /automations/runs","href":"/api-reference/automations/list-automation-runs"},{"title":"Get an automation run","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /automations/runs/{runId}","href":"/api-reference/automations/get-an-automation-run"},{"title":"Get an automation run's log","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /automations/runs/{runId}/logs","href":"/api-reference/automations/get-an-automation-runs-log"}]},{"group":"Export Templates","pages":[{"title":"List export template types","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /export-templates/types","href":"/api-reference/export-templates/list-export-template-types"},{"title":"Get the export template authoring guide","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /export-templates/authoring-guide","href":"/api-reference/export-templates/get-the-export-template-authoring-guide"},{"title":"List placeholders for a template type","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /export-templates/placeholders","href":"/api-reference/export-templates/list-placeholders-for-a-template-type"},{"title":"Get the options-mode form schema","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /export-templates/options-schema","href":"/api-reference/export-templates/get-the-options-mode-form-schema"},{"title":"List export templates","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /export-templates","href":"/api-reference/export-templates/list-export-templates"},{"title":"Create an export template","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /export-templates","href":"/api-reference/export-templates/create-an-export-template"},{"title":"Get an export template","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /export-templates/{exportTemplateId}","href":"/api-reference/export-templates/get-an-export-template"},{"title":"Update an export template","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml put /export-templates/{exportTemplateId}","href":"/api-reference/export-templates/update-an-export-template"},{"title":"Update an export template (PATCH)","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml patch /export-templates/{exportTemplateId}","href":"/api-reference/export-templates/update-an-export-template-patch"},{"title":"Delete an export template","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml delete /export-templates/{exportTemplateId}","href":"/api-reference/export-templates/delete-an-export-template"},{"title":"Set an export template as default","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /export-templates/{exportTemplateId}/set-default","href":"/api-reference/export-templates/set-an-export-template-as-default"},{"title":"Validate an export template draft","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /export-templates/validate","href":"/api-reference/export-templates/validate-an-export-template-draft"},{"title":"Preview an unsaved export template draft","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /export-templates/preview","href":"/api-reference/export-templates/preview-an-unsaved-export-template-draft"},{"title":"Preview a saved export template","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /export-templates/{exportTemplateId}/preview","href":"/api-reference/export-templates/preview-a-saved-export-template"}]},{"group":"Currency","pages":[{"title":"Get available currencies","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /currency/available","href":"/api-reference/currency/get-available-currencies"},{"title":"Get base currency","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /currency/base","href":"/api-reference/currency/get-base-currency"},{"title":"Set base currency","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml put /currency/base","href":"/api-reference/currency/set-base-currency"},{"title":"Convert currency","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /currency/rates/convert","href":"/api-reference/currency/convert-currency"},{"title":"List currency rates","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /currency/rates","href":"/api-reference/currency/list-currency-rates"},{"title":"Create a currency rate","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /currency/rates","href":"/api-reference/currency/create-a-currency-rate"}]},{"group":"Unit Classes","pages":[{"title":"List unit classes","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /unit-classes","href":"/api-reference/unit-classes/list-unit-classes"},{"title":"Create unit class","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /unit-classes","href":"/api-reference/unit-classes/create-unit-class"},{"title":"Single unit class","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /unit-classes/{id}","href":"/api-reference/unit-classes/single-unit-class"},{"title":"Update unit class","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /unit-classes/{id}","href":"/api-reference/unit-classes/update-unit-class"},{"title":"Delete unit class","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml delete /unit-classes/{id}","href":"/api-reference/unit-classes/delete-unit-class"}]},{"group":"Units of Measure","pages":[{"title":"List units of measure","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /unit-of-measures","href":"/api-reference/units-of-measure/list-units-of-measure"},{"title":"Create unit of measure","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /unit-of-measures","href":"/api-reference/units-of-measure/create-unit-of-measure"},{"title":"Single unit of measure","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /unit-of-measures/{id}","href":"/api-reference/units-of-measure/single-unit-of-measure"},{"title":"Update unit of measure","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /unit-of-measures/{id}","href":"/api-reference/units-of-measure/update-unit-of-measure"},{"title":"Delete unit of measure","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml delete /unit-of-measures/{id}","href":"/api-reference/units-of-measure/delete-unit-of-measure"},{"title":"Set base UOM for a unit class","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /unit-classes/{unitClassId}/default-unit-of-measure/{unitOfMeasureId}","href":"/api-reference/units-of-measure/set-base-uom-for-a-unit-class"}]},{"group":"Unit Conversion Rules","pages":[{"title":"List unit conversion rules","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /unit-conversion-rules","href":"/api-reference/unit-conversion-rules/list-unit-conversion-rules"},{"title":"Create unit conversion rule","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /unit-conversion-rules","href":"/api-reference/unit-conversion-rules/create-unit-conversion-rule"},{"title":"Resolve effective conversion rule","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /unit-conversion-rules/resolve","href":"/api-reference/unit-conversion-rules/resolve-effective-conversion-rule"},{"title":"Single unit conversion rule","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /unit-conversion-rules/{id}","href":"/api-reference/unit-conversion-rules/single-unit-conversion-rule"},{"title":"Update unit conversion rule","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /unit-conversion-rules/{id}","href":"/api-reference/unit-conversion-rules/update-unit-conversion-rule"},{"title":"Delete unit conversion rule","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml delete /unit-conversion-rules/{id}","href":"/api-reference/unit-conversion-rules/delete-unit-conversion-rule"}]}]},{"group":"Integrations","pages":[{"group":"Channels","pages":[{"title":"List channels","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /channels","href":"/api-reference/channels/list-channels"},{"title":"Create channel","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /channels","href":"/api-reference/channels/create-channel"},{"title":"Create sales channel (legacy)","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /channels/sales","href":"/api-reference/channels/create-sales-channel-legacy"},{"title":"List channel restriction fields","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /channels/restriction-fields","href":"/api-reference/channels/list-channel-restriction-fields"},{"title":"Get channel","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /channels/{channelId}","href":"/api-reference/channels/get-channel"},{"title":"Update channel","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml put /channels/{channelId}","href":"/api-reference/channels/update-channel"},{"title":"Delete channel","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml delete /channels/{channelId}","href":"/api-reference/channels/delete-channel"},{"title":"Lock channel","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml patch /channels/{channelId}/lock","href":"/api-reference/channels/lock-channel"},{"title":"Sync channel integration products","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /channels/{channelId}/integration-products","href":"/api-reference/channels/sync-channel-integration-products"},{"title":"Test channel restrictions against a sample order","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /channels/{channelId}/test-restrictions","href":"/api-reference/channels/test-channel-restrictions-against-a-sample-order"}]},{"group":"Integration Accounts","pages":[{"title":"List integration accounts","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /integration-accounts","href":"/api-reference/integration-accounts/list-integration-accounts"},{"title":"Get integration account","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /integration-accounts/{id}","href":"/api-reference/integration-accounts/get-integration-account"},{"title":"List OMS shipping methods","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /integration-accounts/{id}/shipping-methods","href":"/api-reference/integration-accounts/list-oms-shipping-methods"},{"title":"List OMS warehouses","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /integration-accounts/{id}/warehouses","href":"/api-reference/integration-accounts/list-oms-warehouses"},{"title":"Get the write schema for a push action","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /integration-accounts/{id}/write-schema","href":"/api-reference/integration-accounts/get-the-write-schema-for-a-push-action"},{"title":"List OMS product links","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /integration-accounts/{id}/oms-products","href":"/api-reference/integration-accounts/list-oms-product-links"}]},{"group":"Integration Mappings","pages":[{"title":"List integration mappings","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /integration-mappings","href":"/api-reference/integration-mappings/list-integration-mappings"},{"title":"Create an integration mapping","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /integration-mappings","href":"/api-reference/integration-mappings/create-an-integration-mapping"},{"title":"List available transformations","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /integration-mappings/transformations","href":"/api-reference/integration-mappings/list-available-transformations"},{"title":"Get an integration mapping","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /integration-mappings/{id}","href":"/api-reference/integration-mappings/get-an-integration-mapping"},{"title":"Update an integration mapping","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /integration-mappings/{id}","href":"/api-reference/integration-mappings/update-an-integration-mapping"},{"title":"Delete an integration mapping","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml delete /integration-mappings/{id}","href":"/api-reference/integration-mappings/delete-an-integration-mapping"},{"title":"Preview a mapping (dry run)","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /integration-mappings/{id}/preview","href":"/api-reference/integration-mappings/preview-a-mapping-dry-run"},{"title":"List a mapping's version history","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /integration-mappings/{id}/versions","href":"/api-reference/integration-mappings/list-a-mappings-version-history"},{"title":"Get a single mapping version","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /integration-mappings/{id}/versions/{versionId}","href":"/api-reference/integration-mappings/get-a-single-mapping-version"},{"title":"AI auto-map a mapping","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /integration-mappings/{id}/ai/auto-map","href":"/api-reference/integration-mappings/ai-auto-map-a-mapping"},{"title":"AI edit a mapping","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /integration-mappings/{id}/ai/edit","href":"/api-reference/integration-mappings/ai-edit-a-mapping"},{"title":"AI draft a custom-function script","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /integration-mappings/{id}/ai/script","href":"/api-reference/integration-mappings/ai-draft-a-custom-function-script"}]},{"group":"Integration Field Mappings","pages":[{"title":"List integration field mappings","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /integration/field-mappings","href":"/api-reference/integration-field-mappings/list-integration-field-mappings"},{"title":"Create an integration field mapping","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /integration/field-mappings","href":"/api-reference/integration-field-mappings/create-an-integration-field-mapping"},{"title":"Bulk create integration field mappings","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /integration/field-mappings/bulk","href":"/api-reference/integration-field-mappings/bulk-create-integration-field-mappings"},{"title":"List mapping groups","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /integration/field-mappings/groups","href":"/api-reference/integration-field-mappings/list-mapping-groups"},{"title":"List mapping field names","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /integration/field-mappings/fields","href":"/api-reference/integration-field-mappings/list-mapping-field-names"},{"title":"Quick-add field mappings from recent orders","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /integration/field-mappings/quick-add","href":"/api-reference/integration-field-mappings/quick-add-field-mappings-from-recent-orders"},{"title":"Bulk delete integration field mappings","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /integration/field-mappings/bulk-delete","href":"/api-reference/integration-field-mappings/bulk-delete-integration-field-mappings"},{"title":"Suggest carrier mapping","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /integration/field-mappings/suggest-carrier","href":"/api-reference/integration-field-mappings/suggest-carrier-mapping"},{"title":"Create mapping and retry fulfillment","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /integration/field-mappings/create-and-retry","href":"/api-reference/integration-field-mappings/create-mapping-and-retry-fulfillment"},{"title":"Toggle auto carrier mapping","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml post /integration/field-mappings/auto-carrier-mapping","href":"/api-reference/integration-field-mappings/toggle-auto-carrier-mapping"},{"title":"Get an integration field mapping","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml get /integration/field-mappings/{id}","href":"/api-reference/integration-field-mappings/get-an-integration-field-mapping"},{"title":"Update an integration field mapping","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml put /integration/field-mappings/{id}","href":"/api-reference/integration-field-mappings/update-an-integration-field-mapping"},{"title":"Delete an integration field mapping","deprecated":null,"version":null,"openapi":"/api-reference/build.yaml delete /integration/field-mappings/{id}","href":"/api-reference/integration-field-mappings/delete-an-integration-field-mapping"}]}]}]}]},"basePath":"","title":"Add product substitution - Luminous API Documentation","buildId":"dpl_GZsjphRpnhWkstV12jxWNcMHFyox","deploymentId":"dpl_GZsjphRpnhWkstV12jxWNcMHFyox","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-B5zPa4Vr.js","utils-CVjrr8Yd.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-DTgURWzl.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-DxTHtkdZ.js","snippetPresets-Cx47o5Vx.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-4Fr6y9N_.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-Dq2ElbEk.js","shallow-BfYl9r69.js","getApiPlaygroundDisplay-Ch3xc7i1.js","CodeSnippet-BsBxuJ1v.js","CodeSnippets-CetzeDL8.js","Page-CYZot51e.js","getPastedJson-BxPKFSJx.js","icon-o0J1Ochb.js","MethodPill-Du3usO5m.js","DuplicateIcon-DJypyMzl.js","createIcon-YMA6N8KJ.js","DynamicMarkdown-CWvhfcZc.js","SectionHeading-BdLVaXCd.js","axios-vUo_bRtp.js","Markdown-C4Ez6OeV.js","clsx-DptzKFCt.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-Dt1IougW.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-CZ6Wt2Vb.js"]}