### Example Product with Components Source: https://api.cin7.com/api/OpenApi/GetSpec An example JSON payload illustrating a product with its associated components. ```APIDOC ## Example Product with Components ### Request Body Example ```json { "product": { "id": 0, "productId": 0, "productOptionId": 0, "type": "Make", "sort": 0, "code": "TestProduct1", "name": "Composite Product", "option1": null, "option2": null, "option3": null, "notes": null, "qty": 1.0, "unitCost": 100.0, "components": [ { "id": 0, "productId": 0, "productOptionId": 0, "type": "Make", "sort": 0, "code": "TestComponent1", "name": "Component A", "option1": null, "option2": null, "option3": null, "notes": null, "qty": 1.0, "unitCost": 50.0 } ] } } ``` ``` -------------------------------- ### GET /api/v1/ProductOptions Source: https://api.cin7.com/api/OpenApi/GetSpec Retrieves a list of product options from the system. ```APIDOC ## GET /api/v1/ProductOptions ### Description Retrieves a list of product options, including details like status, product IDs, and SKU codes. ### Method GET ### Endpoint /api/v1/ProductOptions ### Response #### Success Response (200) - **Id** (integer) - The unique Cin7 Product Option Id. - **CreatedDate** (string) - Created Date UTC. - **ModifiedDate** (string) - Modifie Date UTC. - **Status** (string) - Product Option Status: Primary, Active or Disabled. - **ProductId** (integer) - The unique Cin7 product id. - **Code** (string) - [OBSOLETE] Use ProductOptionCode. - **Barcode** (string) - [OBSOLETE] Use ProductOptionBarcode. - **ProductOptionCode** (string) - The Product Option Code/SKU. - **ProductOptionSizeCode** (string) - The Product Option Size Code/SKU. - **ProductOptionBarcode** (string) - The Product Option Barcode. - **ProductOptionSizeBarcode** (string) - The Product Option Size Barcode. ``` -------------------------------- ### Transaction Response Example Source: https://api.cin7.com/api/Help/Api/GET-v1-PurchaseOrders-id Example of a full transaction object response from the API. ```APIDOC ### Response Example ```json { "id": 1, "productTotal": 0.0, "freightTotal": 0.0, "freightDescription": "Fedex", "total": 0.0, "currencyCode": "USD", "currencyRate": 1.0, "currencySymbol": "$", "taxStatus": "Incl", "taxRate": 6.5, "lineItems": [ { "id": 1, "name": "V-NECK TSHIRT", "qty": 5.0, "unitPrice": 20.0 } ] } ``` ``` -------------------------------- ### POST /v1/ProductOptions Source: https://api.cin7.com/api/Help/Api/POST-v1-ProductOptions Creates a list of product options for a given product. ```APIDOC ## POST /v1/ProductOptions ### Description Creates a list of ProductOptions. ### Method POST ### Endpoint /v1/ProductOptions ### Parameters #### Path Parameters None. #### Query Parameters None. #### Request Body - **status** (ProductOptionStatus) - Required - The status of the product option. - **productId** (integer) - Required - The id of the Product this product option belongs to. Range: inclusive between 1 and 2147483647. - **productOptionCode** (string) - Required - A unique Code for this product option. Max length: 20. - **productOptionBarcode** (string) - Optional - A unique barcode. Max length: 20. - **supplierCode** (string) - Optional - Max length: 20. - **option1** (string) - Optional - Max length: 50. - **option2** (string) - Optional - Max length: 50. - **option3** (string) - Optional - Max length: 50. - **specialPrice** (decimal number) - Optional - The special price. - **specialsStartDate** (date) - Optional - Start date for the special price to apply. - **specialDays** (integer) - Optional - How many days the special will run starting from the SpecialsStartDate. - **optionWeight** (decimal number) - Optional - The option weight. - **uomOptions** (Collection of CreateUomRequest) - Optional - An array of unit of measures. Max length: 20. - **priceColumns** (Dictionary of string [key] and decimal number [value]) - Optional - - **sizes** (Collection of CreateSizeRequest) - Optional - Product option sizes. A size range id needs to be assigned to the product before creating sizes. Max length: 20. ### Request Example ```json [ { "status": "Disabled", "productId": 1, "productOptionCode": "sample string 2", "productOptionBarcode": "sample string 3", "supplierCode": "sample string 4", "option1": "sample string 5", "option2": "sample string 6", "option3": "sample string 7", "specialPrice": 8.0, "specialsStartDate": "2026-04-05T15:40:32.7442382+12:00", "specialDays": 9, "optionWeight": 10.0, "uomOptions": [ { "code": "sample string 1", "option1": "sample string 2", "option2": "sample string 3", "option3": "sample string 4", "quantity": 5.0, "barcode": "sample string 6", "supplierCode": "sample string 7", "priceColumns": { "sample string 1": 1.0, "sample string 2": 1.0 } }, { "code": "sample string 1", "option1": "sample string 2", "option2": "sample string 3", "option3": "sample string 4", "quantity": 5.0, "barcode": "sample string 6", "supplierCode": "sample string 7", "priceColumns": { "sample string 1": 1.0, "sample string 2": 1.0 } } ], "priceColumns": { "sample string 1": 1.0, "sample string 2": 1.0 }, "sizes": [ { "size": "sample string 1", "sizeCode": "sample string 2", "sizeBarcode": "sample string 3" }, { "size": "sample string 1", "sizeCode": "sample string 2", "sizeBarcode": "sample string 3" } ] } ] ``` ### Response #### Success Response (200) - **field1** (type) - Description #### Response Example ```json { "example": "response body" } ``` ``` -------------------------------- ### BatchResultItem Response Example (JSON) Source: https://api.cin7.com/api/Help/Api/POST-v1-Adjustments An example of the JSON response format for a collection of BatchResultItems. ```APIDOC ## BatchResultItem Response Example This example demonstrates the structure of a JSON response containing multiple BatchResultItems. ### Response Body Example ```json [ { "index": 0, "success": true, "id": 1, "code": "SALE4-28", "errors": [] }, { "index": 1, "success": true, "id": 2, "code": "SALE5-29", "errors": [] } ] ``` ``` -------------------------------- ### POST /websites/api_cin7_api/products/options Source: https://api.cin7.com/api/Help/ResourceModel?modelName=CreateProductOptionsRequest Creates a new product option for a given product. ```APIDOC ## POST /websites/api_cin7_api/products/options ### Description Creates a new product option associated with a specific product. ### Method POST ### Endpoint /websites/api_cin7_api/products/options ### Parameters #### Request Body - **Status** (ProductOptionStatus) - Required - The status of the product option. - **ProductId** (integer) - Required - The ID of the product this option belongs to. Range: 1 to 2147483647. - **ProductOptionCode** (string) - Required - A unique code for this product option. Max length: 20. - **ProductOptionBarcode** (string) - Optional - A unique barcode for the product option. Max length: 20. - **SupplierCode** (string) - Optional - The supplier code. Max length: 20. - **Option1** (string) - Optional - The first option value. Max length: 50. - **Option2** (string) - Optional - The second option value. Max length: 50. - **Option3** (string) - Optional - The third option value. Max length: 50. - **SpecialPrice** (decimal number) - Optional - The special price for the option. - **SpecialsStartDate** (date) - Optional - The start date for the special price. - **SpecialDays** (integer) - Optional - The number of days the special price will run, starting from SpecialsStartDate. - **OptionWeight** (decimal number) - Optional - The weight of the product option. - **UomOptions** (Collection of CreateUomRequest) - Optional - An array of unit of measure options. Max length: 20. - **PriceColumns** (Dictionary of string [key] and decimal number [value]) - Optional - Custom price columns. - **Sizes** (Collection of CreateSizeRequest) - Optional - Product option sizes. A size range ID must be assigned before creating sizes. Max length: 20. ### Request Example ```json { "Status": "Active", "ProductId": 12345, "ProductOptionCode": "TSHIRT-RED-L", "ProductOptionBarcode": "600000000001", "Option1": "Red", "Option2": "Large", "SpecialPrice": 25.99, "SpecialsStartDate": "2023-10-27", "SpecialDays": 7, "OptionWeight": 0.5, "UomOptions": [ { "Uom": "Box", "Qty": 10 } ], "PriceColumns": { "Retail": 30.00, "Wholesale": 20.00 }, "Sizes": [ { "SizeRangeID": 1, "Size": "L" } ] } ``` ### Response #### Success Response (200) - **ProductOptionID** (integer) - The unique identifier for the created product option. - **Message** (string) - Confirmation message. #### Response Example ```json { "ProductOptionID": 98765, "Message": "Product option created successfully." } ``` ``` -------------------------------- ### GET /v1/SalesOrdersWithCartons/{id} Source: https://api.cin7.com/api/Help/Api/GET-v1-SalesOrdersWithCartons-id Retrieves a specific Sales Order along with its associated Carton details. This endpoint is useful for getting a comprehensive view of an order, including how it has been packed. ```APIDOC ## GET /v1/SalesOrdersWithCartons/{id} ### Description Get a Sales Order with its Carton details. ### Method GET ### Endpoint /v1/SalesOrdersWithCartons/{id} ### Parameters #### Path Parameters - **id** (integer) - Required - Order Id ### Response #### Success Response (200) - **[Response fields will be detailed here based on actual API response structure]** #### Response Example ```json { "example": "[JSON response body will be shown here]" } ``` ``` -------------------------------- ### Product JSON Response Sample Source: https://api.cin7.com/api/Help/Api/GET-v1-Products_fields_where_order_page_rows Example of a JSON array containing product objects with nested product options and custom fields. ```json [ { "id": 1, "status": "Public", "createdDate": "2026-04-04T15:56:59.8290087Z", "modifiedDate": "2026-04-04T15:56:59.8290087Z", "styleCode": "StyleCode", "name": "V-NECK TSHIRT", "description": "Product description...", "tags": null, "images": [ { "link": "http://cin7.com/.../product-image-1.jpg" }, { "link": "http://cin7.com/.../product-image-2.jpg" }, { "link": "http://cin7.com/.../product-image-3.jpg" } ], "pdfUpload": null, "pdfDescription": null, "supplierId": 101, "brand": "Brand Name", "category": "T-SHIRTS", "subCategory": null, "categoryIdArray": null, "channels": null, "weight": 100.0, "height": 0.0, "width": 0.0, "length": 0.0, "volume": 0.0, "stockControl": 5, "orderType": "", "productType": "", "productSubtype": null, "projectName": "", "optionLabel1": "Color", "optionLabel2": "Size", "optionLabel3": "Printed", "salesAccount": null, "purchasesAccount": null, "importCustomsDuty": null, "sizeRangeId": 0, "customFields": { "products_1000": "abc123", "products_1001": 119, "products_1002": false }, "productOptions": [ { "id": 1, "createdDate": "2026-04-04T15:56:59.8290087Z", "modifiedDate": "2026-04-04T15:56:59.8290087Z", "status": "Primary", "productId": 1, "code": "SKU-RED-T", "barcode": "1234567890123", "productOptionCode": null, "productOptionSizeCode": null, "productOptionBarcode": null, "productOptionSizeBarcode": null, "supplierCode": "SUPPLIER-CODE", "option1": "Red", "option2": "XXL", "option3": "Yes", "optionWeight": 0.0, "size": null, "sizeId": 0, "retailPrice": 89.9, "wholesalePrice": 25.0, "vipPrice": 79.0, "specialPrice": 59.0, "specialsStartDate": "2026-04-04T15:56:59.8290087Z", "specialDays": 7, "stockAvailable": 4.0, "stockOnHand": 2.0, "uomOptions": [], "image": { "link": "http://cin7.com/.../product-option-image-red.jpg" }, "priceColumns": { "priceAUD": 20.0, "priceGBP": 119.0, "costNZD": 15.0 } }, { "id": 2, "createdDate": "2026-04-04T15:56:59.8290087Z", "modifiedDate": "2026-04-04T15:56:59.8290087Z", "status": "Active", "productId": 1, "code": "SKU-BLUE-T", "barcode": "BARCODE-FOR-BLUE-T", "productOptionCode": null, "productOptionSizeCode": null, "productOptionBarcode": null, "productOptionSizeBarcode": null, "supplierCode": "SUPPLIER-CODE", "option1": "Blue", "option2": "M", "option3": "Plain", "optionWeight": 0.0, "size": null, "sizeId": 0, "retailPrice": 89.9, "wholesalePrice": 25.0, "vipPrice": 79.0, "specialPrice": null, "specialsStartDate": null, "specialDays": null, "stockAvailable": 10.0, "stockOnHand": 5.0, "uomOptions": [], "image": { "link": "http://cin7.com/.../product-option-image-blue.jpg" }, "priceColumns": { "priceAUD": 20.0, "priceGBP": 119.0, "costNZD": 15.0 } } ] }, { "id": 0, "status": "Inactive", "createdDate": "0001-01-01T00:00:00", "modifiedDate": "0001-01-01T00:00:00", "styleCode": null, "name": null, "description": null, "tags": null, "images": [], "pdfUpload": null, "pdfDescription": null, "supplierId": 0, "brand": null, "category": null, "subCategory": null, "categoryIdArray": null, "channels": null, "weight": 0.0, "height": 0.0, "width": 0.0, "length": 0.0, "volume": 0.0, "stockControl": 0, "orderType": null, "productType": null, "productSubtype": null, "projectName": null, "optionLabel1": null, "optionLabel2": null, "optionLabel3": null, "salesAccount": null, "purchasesAccount": null, "importCustomsDuty": null, "sizeRangeId": 0, "customFields": null, "productOptions": [] } ] ``` -------------------------------- ### Get Adjustment by ID - JSON Response Sample Source: https://api.cin7.com/api/Help/Api/GET-v1-Adjustments-id This is a sample JSON response for a successful GET request to retrieve an adjustment. It includes details of the adjustment and its line items. ```json { "id": 1, "createdDate": "2026-04-04T15:56:58.4304027Z", "modifiedDate": "2026-04-04T15:56:58.4304027Z", "createdBy": 0, "processedBy": 0, "isApproved": false, "reference": "ADJ-1", "branchId": 3, "completedDate": "2026-04-05T00:00:00+13:00", "adjustInAccountingSystem": null, "adjustmentReason": null, "alternativeAccountCode": null, "productTotal": 0.0, "source": "API", "lineItems": [ { "id": 1, "createdDate": "2026-04-04T15:56:58.4304027Z", "transactionId": 128, "parentId": 0, "productId": 1, "productOptionId": 1, "integrationRef": null, "sort": 1, "code": "", "name": "V-NECK TSHIRT", "option1": "Red", "option2": "XXL", "option3": "Yes", "qty": 2.0, "qtyAdjusted": null, "holdingQty": null, "account": null, "unitCost": null } ] } ``` -------------------------------- ### Product Options Source: https://api.cin7.com/api/OpenApi/GetSpec This section details the structure and examples for product options within the Cin7 API. Product options allow for variations of a base product, such as size, color, or material. ```APIDOC ## GET /products/{productId}/options ### Description Retrieves a list of all available options for a specific product. ### Method GET ### Endpoint /products/{productId}/options ### Parameters #### Path Parameters - **productId** (integer) - Required - The unique identifier of the product. ### Response #### Success Response (200) - **id** (integer) - The unique identifier for the product option. - **createdDate** (string) - The date and time the product option was created (ISO 8601 format). - **modifiedDate** (string) - The date and time the product option was last modified (ISO 8601 format). - **status** (string) - The status of the product option (e.g., "Primary", "Active"). - **productId** (integer) - The ID of the parent product. - **code** (string) - The unique code for this product option (e.g., SKU). - **barcode** (string) - The barcode associated with this product option. - **productOptionCode** (string) - Optional: A specific code for the product option. - **productOptionSizeCode** (string) - Optional: A code related to the size of the product option. - **productOptionBarcode** (string) - Optional: Barcode for the product option. - **productOptionSizeBarcode** (string) - Optional: Barcode for the product option size. - **supplierCode** (string) - The UOM option Supplier code. - **option1** (string) - The value for the first option (e.g., Color). - **option2** (string) - The value for the second option (e.g., Size). - **option3** (string) - The value for the third option (e.g., Material). - **optionWeight** (number) - The weight associated with this option. - **size** (string) - The size designation for this option. - **sizeId** (integer) - The identifier for the size. - **retailPrice** (number) - The retail price of the product option. - **wholesalePrice** (number) - The wholesale price of the product option. - **vipPrice** (number) - The VIP customer price. - **specialPrice** (number) - A special promotional price. - **specialsStartDate** (string) - The start date for special pricing (ISO 8601 format). - **specialDays** (integer) - The number of days the special price is valid. - **stockAvailable** (number) - The quantity of stock available. - **stockOnHand** (number) - The quantity of stock on hand. - **uomOptions** (array) - An array of Unit of Measure options. - **image** (object) - An object containing image information. - **link** (string) - A URL to an image of the product option. - **priceColumns** (object) - An object containing custom price columns. - **priceAUD** (number) - Example price in AUD. - **priceGBP** (number) - Example price in GBP. - **costNZD** (number) - Example cost in NZD. #### Response Example ```json [ { "id": 1, "createdDate": "2026-04-04T15:56:58Z", "modifiedDate": "2026-04-04T15:56:58Z", "status": "Primary", "productId": 1, "code": "SKU-RED-T", "barcode": "1234567890123", "productOptionCode": null, "productOptionSizeCode": null, "productOptionBarcode": null, "productOptionSizeBarcode": null, "supplierCode": "SUPPLIER-CODE", "option1": "Red", "option2": "XXL", "option3": "Yes", "optionWeight": 0.0, "size": null, "sizeId": 0, "retailPrice": 89.9, "wholesalePrice": 25.0, "vipPrice": 79.0, "specialPrice": 59.0, "specialsStartDate": "2026-04-04T15:56:58Z", "specialDays": 7, "stockAvailable": 4.0, "stockOnHand": 2.0, "uomOptions": [], "image": { "link": "http://cin7.com/.../product-option-image-red.jpg" }, "priceColumns": { "priceAUD": 20.0, "priceGBP": 119.0, "costNZD": 15.0 } }, { "id": 2, "createdDate": "2026-04-04T15:56:58Z", "modifiedDate": "2026-04-04T15:56:58Z", "status": "Active", "productId": 1, "code": "SKU-BLUE-T", "barcode": "BARCODE-FOR-BLUE-T", "productOptionCode": null, "productOptionSizeCode": null, "productOptionBarcode": null, "productOptionSizeBarcode": null, "supplierCode": "SUPPLIER-CODE", "option1": "Blue", "option2": "M", "option3": "Plain", "optionWeight": 0.0, "size": null, "sizeId": 0, "retailPrice": 89.9, "wholesalePrice": 25.0, "vipPrice": 79.0, "specialPrice": null, "specialsStartDate": null, "specialDays": null, "stockAvailable": 10.0 } ] ``` ``` -------------------------------- ### GET /api/v1/Adjustments Source: https://api.cin7.com/api/OpenApi/GetSpec Retrieves a list of adjustments from the system. ```APIDOC ## GET /api/v1/Adjustments ### Description Retrieves a list of adjustments. ### Method GET ### Endpoint /api/v1/Adjustments ### Response #### Success Response (200) - **Id** (integer) - The unique Cin7 Id. - **CreatedDate** (string) - Order created date - **ModifiedDate** (string) - Order last modified date - **CreatedBy** (integer) - The ID for the User who created the Transaction. - **ProcessedBy** (integer) - The ID for the User who processed the Transaction. - **IsApproved** (boolean) - Is Approved (default: true) - **Reference** (string) - A unique order reference. - **BranchId** (integer) - Branch ID. ``` -------------------------------- ### GET /api/v1/Branches Source: https://api.cin7.com/api/OpenApi/GetSpec Retrieves a list of branches from the system. ```APIDOC ## GET /api/v1/Branches ### Description Retrieves a list of branches. This endpoint supports pagination and filtering. ### Method GET ### Endpoint /api/v1/Branches ### Response #### Success Response (200) - **BranchType** (string) - Branch Type - **StockControlOptions** (string) - Stock control options - **TaxStatus** (string) - Tax Status - **AccountNumber** (string) - Account Number - **BranchLocations** (array) - Branch Locations ``` -------------------------------- ### POST /api/products Source: https://api.cin7.com/api/Help/ResourceModel?modelName=CreateProductRequest Creates a new product in the Cin7 system. All fields are optional unless otherwise specified. ```APIDOC ## POST /api/products ### Description Creates a new product in the Cin7 system. This endpoint allows for the creation of products with detailed attributes, including naming, status, stock control, pricing, and categorization. ### Method POST ### Endpoint /api/products ### Parameters #### Request Body - **Name** (string) - Required - The product name. Max length: 250. - **Status** (ProductStatus) - Optional - The status of the product. Defaults to 'Public'. Allowed values: Public, Inactive, ShowInB2B, Internal. - **StyleCode** (string) - Optional - The product style code. Max length: 250. - **Description** (string) - Optional - The product description. Max length: 250. - **StockControl** (StockControl) - Optional - The stock control method. Defaults to 'FIFO'. Allowed values: FIFO, Batch, Machine, Serial, Labour. - **OrderType** (string) - Optional - The type of order for the product. Defaults to 'Order'. Allowed values: Order, Kit, Limited Stock, Buy To Order, Pre-order, Gift Voucher. - **Brand** (string) - Optional - The product brand name. Max length: 250. - **OptionLabel1** (string) - Optional - A label for the first product option (e.g., Color). Max length: 250. - **OptionLabel2** (string) - Optional - A label for the second product option (e.g., Size). Max length: 250. - **OptionLabel3** (string) - Optional - A label for the third product option (e.g., Fabric). Max length: 250. - **SalesAccount** (string) - Optional - The sales account associated with the product. Max length: 250. - **PurchasesAccount** (string) - Optional - The purchase account associated with the product. Max length: 250. - **ImportCustomsDuty** (string) - Optional - The import customs duty applicable to the product. Max length: 250. - **CategoryIdArray** (Collection of integer) - Optional - An array of category IDs assigned to the product. - **Dimensions** (CreateProductDimensionsRequest) - Optional - Dimensions of the product like weight, height, width, length, volume. - **ProductOptions** (Collection of CreateProductOptionRequest) - Required - Prices and Costs of the product. Exactly one product option is supported. Min length: 1, Max length: 1. - **SizeRangeId** (integer) - Optional - The Id of the Size Range. ### Request Example ```json { "Name": "Example T-Shirt", "Status": "Public", "StyleCode": "TSHIRT-EX", "Description": "A comfortable cotton t-shirt.", "StockControl": "FIFO", "OrderType": "Order", "Brand": "AwesomeBrand", "OptionLabel1": "Color", "OptionLabel2": "Size", "SalesAccount": "Sales-1000", "PurchasesAccount": "Purchases-2000", "CategoryIdArray": [1, 5], "Dimensions": { "Weight": 0.5, "Height": 1, "Width": 10, "Length": 15, "Volume": 150 }, "ProductOptions": [ { "Code": "TSHIRT-EX-RED-S", "Name": "Red Small T-Shirt", "Cost": 10.00, "Price": 25.00, "DefaultCost": 10.00, "DefaultPrice": 25.00, "Option1": "Red", "Option2": "S", "Barcode": "1234567890123", "StockLevel": 100 } ], "SizeRangeId": 10 } ``` ### Response #### Success Response (200) - **id** (integer) - The unique identifier of the created product. - **message** (string) - A success message. #### Response Example ```json { "id": 12345, "message": "Product created successfully." } ``` ``` -------------------------------- ### GET /api/v1/Quotes Source: https://api.cin7.com/api/OpenApi/GetSpec Retrieves a list of quotes from the system. ```APIDOC ## GET /api/v1/Quotes ### Description Retrieves a list of quotes. ### Method GET ### Endpoint /api/v1/Quotes ### Response #### Success Response (200) - **Probability** (number) - Probability of Winning - **ExpectedOrderDate** (string) - Expected Order Date - **AcceptanceDate** (string) - Acceptance Date - **LineItems** (array) - List of line items - **StyleCode** (string) - Product style code - **Barcode** (string) - Barcode/UPC - **SizeCodes** (string) - Size quantities and codes - **LineComments** (string) - Line item comment - **UnitCost** (number) - Unit Cost - **UnitPrice** (number) - Unit Price - **Discount** (number) - Total line item discount ``` -------------------------------- ### POST /Products Source: https://api.cin7.com/api/OpenApi/GetSpec Create or update products in the Cin7 system. This endpoint accepts an array of product objects. ```APIDOC ## POST /Products ### Description Creates or updates products in the system. Requires basic authentication. ### Method POST ### Endpoint /Products ### Request Body - **Name** (string) - Optional - The product name (max 250 chars) - **Status** (string) - Optional - Status: Public, Inactive, ShowInB2B, Internal. Defaults to Public. - **StyleCode** (string) - Optional - The Product style code (max 250 chars) - **Description** (string) - Optional - The product description (max 250 chars) - **StockControl** (string) - Optional - Stock control: FIFO, Batch, Machine, Serial, Labour. Defaults to FIFO. ### Response #### Error Responses - **400 Bad Request** - Validation errors (e.g., page range, row limits, malformed JSON) - **401 Unauthorized** - Authentication required - **403 Forbidden** - Access denied - **404 Not Found** - Resource not found - **429 Too Many Requests** - Rate limit exceeded - **500 Internal Server Error** - Unexpected server error - **503 Service Unavailable** - Server temporarily unavailable ``` -------------------------------- ### Product and Component JSON Example Source: https://api.cin7.com/api/OpenApi/GetSpec Represents the structure of a product object containing a list of components. ```json { "products": [ { "id": 1, "productId": 4, "productOptionId": 5, "type": "Undefined", "sort": 6, "code": "sample string 7", "name": "sample string 8", "option1": "sample string 9", "option2": "sample string 10", "option3": "sample string 11", "notes": "sample string 12", "qty": 13.0, "unitCost": 14.0, "components": [ { "id": 2, "productId": 5, "productOptionId": 6, "type": "Undefined", "sort": 7, "code": "sample string 8", "name": "sample string 9", "option1": "sample string 10", "option2": "sample string 11", "option3": "sample string 12", "notes": "sample string 13", "qty": 14.0, "unitCost": 15.0 }, { "id": 2, "productId": 5, "productOptionId": 6, "type": "Undefined", "sort": 7, "code": "sample string 8", "name": "sample string 9", "option1": "sample string 10", "option2": "sample string 11", "option3": "sample string 12", "notes": "sample string 13", "qty": 14.0, "unitCost": 15.0 } ] }, { "id": 1, "productId": 4, "productOptionId": 5, "type": "Undefined", "sort": 6, "code": "sample string 7", "name": "sample string 8", "option1": "sample string 9", "option2": "sample string 10", "option3": "sample string 11", "notes": "sample string 12", "qty": 13.0, "unitCost": 14.0, "components": [ { "id": 2, "productId": 5, "productOptionId": 6, "type": "Undefined", "sort": 7, "code": "sample string 8", "name": "sample string 9", "option1": "sample string 10", "option2": "sample string 11", "option3": "sample string 12", "notes": "sample string 13", "qty": 14.0, "unitCost": 15.0 }, { "id": 2, "productId": 5, "productOptionId": 6, "type": "Undefined", "sort": 7, "code": "sample string 8", "name": "sample string 9", "option1": "sample string 10", "option2": "sample string 11", "option3": "sample string 12", "notes": "sample string 13", "qty": 14.0, "unitCost": 15.0 } ] } ] ``` -------------------------------- ### GET /api/v1/BomMasters Source: https://api.cin7.com/api/OpenApi/GetSpec Retrieves a list of Bom Masters. ```APIDOC ## GET /api/v1/BomMasters ### Description Retrieves a list of Bom Masters. Supports filtering and pagination. ### Method GET ### Endpoint /api/v1/BomMasters ### Query Parameters - **fields** (string) - Optional - Comma-separated list of fields to include in the response. - **where** (string) - Optional - Filtering criteria. - **order** (string) - Optional - Sorting order. - **page** (integer) - Optional - Page number for pagination. - **rows** (integer) - Optional - Number of rows per page. ### Responses #### Success Response (200) - **Product** (object) - Contains details about the Bom Master, including its components. - **Components** (array) - A list of product components. - **Id** (integer) - The unique Cin7 ID of the component. - **ProductId** (integer) - The Product ID of the component. - **ProductOptionId** (integer) - The Product option ID of the component. - **Type** (string) - The type of component (Make, Use, Addon). - **Sort** (integer) - The sort order of the component. - **Code** (string) - The item code of the component. - **Name** (string) - The name of the component. - **Option1** (string) - Option 1 for the component. - **Option2** (string) - Option 2 for the component. - **Option3** (string) - Option 3 for the component. - **Notes** (string) - Notes related to the component. - **Qty** (number) - The standard quantity of the component. - **UnitCost** (number) - The unit cost of the component. #### Error Response (400) - **error** (string) - A message describing the bad request. #### Error Response (500) - **error** (string) - A message indicating an internal server error. #### Error Response (503) - **error** (string) - A message indicating the service is unavailable. ``` -------------------------------- ### POST v1/Products Source: https://api.cin7.com/api/Help/Api/POST-v1-Products Creates a list of products. Duplicated style codes or product option codes will result in a 400 error, while existing codes are skipped. ```APIDOC ## POST v1/Products ### Description Creates a list of Products. Duplicated style codes or product option code in the request will cause the request to be rejected with a 400. If a product with the same style code or product option code already exists, it will be skipped and not created. ### Method POST ### Endpoint v1/Products ### Parameters #### Request Body - **name** (string) - Required - The product name (Max length: 250) - **status** (ProductStatus) - Optional - Will default to Public if not set. Status: Public, Inactive, ShowInB2B, Internal - **styleCode** (string) - Optional - The Product style code (Max length: 250) - **description** (string) - Optional - The product description (Max length: 250) - **stockControl** (StockControl) - Optional - Will default to FIFO if not set. Stock control: FIFO, Batch, Machine, Serial, Labour - **orderType** (string) - Optional - Will default to Order if not set. One of: Order, Kit, Limited Stock, Buy To Order, Pre-order, Gift Voucher - **brand** (string) - Optional - The product brand name (Max length: 250) - **optionLabel1** (string) - Optional - A label for the first product option (Max length: 250) - **optionLabel2** (string) - Optional - A label for the second product option (Max length: 250) - **optionLabel3** (string) - Optional - A label for the third product option (Max length: 250) - **salesAccount** (string) - Optional - The sales account associated with the product (Max length: 250) - **purchasesAccount** (string) - Optional - The purchase account associated with the product (Max length: 250) - **importCustomsDuty** (string) - Optional - The import customs duty applicable to the product (Max length: 250) - **categoryIdArray** (Collection of integer) - Optional - Array of category IDs assigned to the product - **dimensions** (CreateProductDimensionsRequest) - Optional - Dimensions of the product like weight, height, width, length, volume - **productOptions** (Collection of CreateProductOptionRequest) - Required - Prices and Costs of the product. Only ONE Product Option is supported at this time. - **sizeRangeId** (integer) - Optional - The Id of the Size Range ### Request Example [ { "name": "sample string 1", "status": "Inactive", "styleCode": "sample string 2", "description": "sample string 3", "stockControl": "Undefined", "orderType": "sample string 4", "brand": "sample string 5", "optionLabel1": "sample string 6", "optionLabel2": "sample string 7", "optionLabel3": "sample string 8", "salesAccount": "sample string 9", "purchasesAccount": "sample string 10", "importCustomsDuty": "sample string 11", "categoryIdArray": [1, 2], "dimensions": { "weight": 1.0, "height": 1.0, "width": 1.0, "length": 1.0, "volume": 1.0 }, "productOptions": [ { "productOptionCode": "sample string 1", "retailPrice": 2.0, "cost": 3.0 } ], "sizeRangeId": 12 } ] ### Response #### Success Response (200) - **Index** (integer) - The index at which the record was positioned. - **Success** (boolean) - True if the record was successfully inserted or updated. - **Id** (integer) - The record Id. - **Code** (string) - The record code. - **Errors** (Collection of string) - A list of errors if the insert or update fails. ```