v48

latestOpenAPI 3.1.0raw.githubusercontent.com2026-07-262621423.8 MB

Create an inventory assembly item

Creates an inventory assembly item that bundles existing inventory items.

post/quickbooks-desktop/inventory-assembly-items

Headers

Conductor-End-User-Idstring required

The ID of the End-User to receive this request.

Example:end_usr_1234567abcdefg

The ID of the End-User to receive this request.

Request body

namestring required

The case-insensitive name of this inventory assembly item. Not guaranteed to be unique because it does not include the names of its hierarchical parent objects like fullName does. For example, two inventory assembly items could both have the name "Deluxe Kit", but they could have unique fullName values, such as "Assemblies:Deluxe Kit" and "Inventory:Deluxe Kit".

Maximum length: 31 characters.

isActiveboolean

Indicates whether this inventory assembly item is active. Inactive objects are typically hidden from views and reports in QuickBooks. Defaults to true.

classIdstring

The inventory assembly item's class. Classes can be used to categorize objects into meaningful segments, such as department, location, or type of work. In QuickBooks, class tracking is off by default.

parentIdstring

The parent inventory assembly item one level above this one in the hierarchy. For example, if this inventory assembly item has a fullName of "Assemblies:Deluxe Kit", its parent has a fullName of "Assemblies". If this inventory assembly item is at the top level, this field will be null.

unitOfMeasureSetIdstring

The unit-of-measure set associated with this inventory assembly item, which consists of a base unit and related units.

salesTaxCodeIdstring

The default sales-tax code for this inventory assembly item, determining whether it is taxable or non-taxable. This can be overridden at the transaction-line level.

Default codes include "Non" (non-taxable) and "Tax" (taxable), but custom codes can also be created in QuickBooks Desktop. If QuickBooks Desktop is not set up to charge sales tax (via the "Do You Charge Sales Tax?" preference), it assigns the default non-taxable sales-tax code configured in the company file to all sales.

salesDescriptionstring

The description of this inventory assembly item that appears on sales forms (e.g., invoices, sales receipts) when sold to customers.

salesPricestring

The price at which this inventory assembly item is sold to customers, represented as a decimal string.

incomeAccountIdstring required

The income account used to track revenue from sales of this inventory assembly item.

purchaseDescriptionstring

The description of this inventory assembly item that appears on purchase forms (e.g., checks, bills, item receipts) when it is ordered or bought from vendors.

purchaseCoststring

The cost at which this inventory assembly item is purchased from vendors, represented as a decimal string.

purchaseTaxCodeIdstring

The tax code applied to purchases of this inventory assembly item. Applicable in regions where purchase taxes are used, such as Canada or the UK.

cogsAccountIdstring required

The Cost of Goods Sold (COGS) account for this inventory assembly item, tracking the original direct costs of producing goods sold.

preferredVendorIdstring

The preferred vendor from whom this inventory assembly item is typically purchased.

assetAccountIdstring required

The asset account used to track the current value of this inventory assembly item in inventory.

buildNotificationThresholdnumber

The inventory assembly item's minimum quantity threshold that triggers a build notification in QuickBooks. When the sum of quantityOnHand (current inventory) and quantityOnOrder (pending purchase orders) drops below this threshold, QuickBooks will notify users that more units need to be built or assembled. This helps ensure adequate inventory levels for inventory assembly items.

maximumQuantityOnHandnumber

The maximum quantity of this inventory assembly item desired in inventory.

quantityOnHandnumber

The number of units of this inventory assembly item currently in inventory. quantityOnHand multiplied by averageCost equals totalValue for inventory item lists. To change the quantityOnHand for an inventory assembly item, you must use an inventory-adjustment instead of updating the inventory assembly item directly.

totalValuestring

The total value of this inventory assembly item, represented as a decimal string. If totalValue is provided, quantityOnHand must also be provided and must be greater than zero. If both quantityOnHand and purchaseCost are provided, then totalValue will be set to quantityOnHand times purchaseCost, regardless of what totalValue is explicitly set to.

Decimal string format: exactly 2 decimal places when cents are included and up to 13 digits before the decimal point (for example, "123.45").

inventoryDatestring date

The date when this inventory assembly item was converted into an inventory item from some other type of item, in ISO 8601 format (YYYY-MM-DD).

externalIdstring uuid

A globally unique identifier (GUID) you, the developer, can provide for tracking this object in your external system. This field is immutable and can only be set during object creation.

IMPORTANT: This field must be formatted as a valid GUID; otherwise, QuickBooks will return an error.

Example request

{
  "name": "Deluxe Kit",
  "barcode": {
    "value": "012345678905"
  },
  "isActive": true,
  "classId": "80000001-1234567890",
  "parentId": "80000001-1234567890",
  "unitOfMeasureSetId": "80000001-1234567890",
  "salesTaxCodeId": "80000001-1234567890",
  "salesDescription": "High-quality steel bolts suitable for construction",
  "salesPrice": "19.99",
  "incomeAccountId": "80000001-1234567890",
  "purchaseDescription": "Bulk purchase of steel bolts for inventory",
  "purchaseCost": "15.75",
  "purchaseTaxCodeId": "80000001-1234567890",
  "cogsAccountId": "80000001-1234567890",
  "preferredVendorId": "80000001-1234567890",
  "assetAccountId": "80000001-1234567890",
  "buildNotificationThreshold": 10,
  "maximumQuantityOnHand": 200,
  "quantityOnHand": 150,
  "totalValue": "1500.00",
  "inventoryDate": "2024-01-01",
  "externalId": "12345678-abcd-1234-abcd-1234567890ab",
  "lines": [
    {
      "inventoryItemId": "80000001-1234567890",
      "quantity": 5
    }
  ]
}

Response

Returns the newly created inventory assembly item.

idstring required

The unique identifier assigned by QuickBooks to this inventory assembly item. This ID is unique across all inventory assembly items but not across different QuickBooks object types.

objectType'qbd_inventory_assembly_item' required

The type of object. This value is always "qbd_inventory_assembly_item".

createdAtstring required

The date and time when this inventory assembly item was created, in ISO 8601 format (YYYY-MM-DDThh:mm:ss±hh:mm), which QuickBooks Desktop interprets in the local timezone of the end-user's computer.

updatedAtstring required

The date and time when this inventory assembly item was last updated, in ISO 8601 format (YYYY-MM-DDThh:mm:ss±hh:mm), which QuickBooks Desktop interprets in the local timezone of the end-user's computer.

revisionNumberstring required

The current QuickBooks-assigned revision number of this inventory assembly item object, which changes each time the object is modified. When updating this object, you must provide the most recent revisionNumber to ensure you're working with the latest data; otherwise, the update will return an error.

namestring required

The case-insensitive name of this inventory assembly item. Not guaranteed to be unique because it does not include the names of its hierarchical parent objects like fullName does. For example, two inventory assembly items could both have the name "Deluxe Kit", but they could have unique fullName values, such as "Assemblies:Deluxe Kit" and "Inventory:Deluxe Kit".

fullNamestring required

The case-insensitive fully-qualified unique name of this inventory assembly item, formed by combining the names of its hierarchical parent objects with its own name, separated by colons. For example, if an inventory assembly item is under "Assemblies" and has the name "Deluxe Kit", its fullName would be "Assemblies:Deluxe Kit".

NOTE: Unlike name, fullName is guaranteed to be unique across all inventory assembly item objects. However, fullName can still be arbitrarily changed by the QuickBooks user when they modify the underlying name field.

barcodestring nullable required

The inventory assembly item's barcode.

isActiveboolean required

Indicates whether this inventory assembly item is active. Inactive objects are typically hidden from views and reports in QuickBooks. Defaults to true.

sublevelnumber required

The depth level of this inventory assembly item in the hierarchy. A top-level inventory assembly item has a sublevel of 0; each subsequent sublevel increases this number by 1. For example, an inventory assembly item with a fullName of "Assemblies:Deluxe Kit" would have a sublevel of 1.

skustring nullable required

The inventory assembly item's stock keeping unit (SKU), which is sometimes the manufacturer's part number.

salesDescriptionstring nullable required

The description of this inventory assembly item that appears on sales forms (e.g., invoices, sales receipts) when sold to customers.

salesPricestring nullable required

The price at which this inventory assembly item is sold to customers, represented as a decimal string.

purchaseDescriptionstring nullable required

The description of this inventory assembly item that appears on purchase forms (e.g., checks, bills, item receipts) when it is ordered or bought from vendors.

purchaseCoststring nullable required

The cost at which this inventory assembly item is purchased from vendors, represented as a decimal string.

buildNotificationThresholdnumber nullable required

The inventory assembly item's minimum quantity threshold that triggers a build notification in QuickBooks. When the sum of quantityOnHand (current inventory) and quantityOnOrder (pending purchase orders) drops below this threshold, QuickBooks will notify users that more units need to be built or assembled. This helps ensure adequate inventory levels for inventory assembly items.

maximumQuantityOnHandnumber nullable required

The maximum quantity of this inventory assembly item desired in inventory.

quantityOnHandnumber nullable required

The number of units of this inventory assembly item currently in inventory. quantityOnHand multiplied by averageCost equals totalValue for inventory item lists. To change the quantityOnHand for an inventory assembly item, you must use an inventory-adjustment instead of updating the inventory assembly item directly.

averageCoststring nullable required

The average cost per unit of this inventory assembly item, represented as a decimal string.

quantityOnPurchaseOrdernumber nullable required

The number of units of this inventory assembly item that have been ordered from vendors (as recorded in purchase orders) but not yet received.

quantityOnSalesOrdernumber nullable required

The number of units of this inventory assembly item that have been sold (as recorded in sales orders) but not yet fulfilled or delivered to customers.

externalIdstring nullable required

A globally unique identifier (GUID) you, the developer, can provide for tracking this object in your external system. This field is immutable and can only be set during object creation.

Example response

{
  "id": "80000001-1234567890",
  "objectType": "qbd_inventory_assembly_item",
  "createdAt": "2025-01-01T12:34:56+00:00",
  "updatedAt": "2025-02-01T12:34:56+00:00",
  "revisionNumber": "1721172183",
  "name": "Deluxe Kit",
  "fullName": "Assemblies:Deluxe Kit",
  "barcode": "012345678905",
  "isActive": true,
  "class": {
    "id": "80000001-1234567890",
    "fullName": "Finished Goods"
  },
  "parent": {
    "id": "80000001-1234567890",
    "fullName": "Assemblies"
  },
  "sublevel": 1,
  "sku": "MPN-123456",
  "unitOfMeasureSet": {
    "id": "80000001-1234567890",
    "fullName": "Weight Units"
  },
  "salesTaxCode": {
    "id": "80000001-1234567890",
    "fullName": "Non"
  },
  "salesDescription": "High-quality steel bolts suitable for construction",
  "salesPrice": "19.99",
  "incomeAccount": {
    "id": "80000001-1234567890",
    "fullName": "Income:Product Sales"
  },
  "purchaseDescription": "Bulk purchase of steel bolts for inventory",
  "purchaseCost": "15.75",
  "purchaseTaxCode": {
    "id": "80000001-1234567890",
    "fullName": "GST"
  },
  "cogsAccount": {
    "id": "80000001-1234567890",
    "fullName": "Expenses:COGS"
  },
  "preferredVendor": {
    "id": "80000001-1234567890",
    "fullName": "Acme Supplies Ltd."
  },
  "assetAccount": {
    "id": "80000001-1234567890",
    "fullName": "Assets:Inventory"
  },
  "buildNotificationThreshold": 10,
  "maximumQuantityOnHand": 200,
  "quantityOnHand": 150,
  "averageCost": "16.50",
  "quantityOnPurchaseOrder": 10,
  "quantityOnSalesOrder": 10,
  "externalId": "12345678-abcd-1234-abcd-1234567890ab",
  "lines": [
    {
      "inventoryItem": {
        "id": "80000001-1234567890",
        "fullName": "Inventory Item"
      },
      "quantity": 5
    }
  ],
  "customFields": [
    {
      "ownerId": "0",
      "name": "Customer Rating",
      "type": "string_1024_type",
      "value": "Premium"
    }
  ]
}