POST
/
quickbooks-desktop
/
non-inventory-items
/
{id}

Authorizations

Authorization
string
headerrequired

Your Conductor secret key using Bearer auth (e.g., "Authorization: Bearer {{YOUR_SECRET_KEY}}").

Headers

Conductor-End-User-Id
string
required

The ID of the EndUser to receive this request (e.g., "Conductor-End-User-Id: {{END_USER_ID}}").

Path Parameters

id
string
required

The QuickBooks-assigned unique identifier of the non-inventory item to update.

Body

application/json
revisionNumber
string
required

The current revision number of the non-inventory item you are updating, which you can get by fetching the object first. Provide the most recent revisionNumber to ensure you're working with the latest data; otherwise, the update will return an error.

name
string

The case-insensitive name of this non-inventory item. Not guaranteed to be unique because it does not include the names of its parent objects like fullName does. For example, two non-inventory items could both have the name "Printer Ink Cartridge", but they could have unique fullName values, such as "Office-Supplies:Printer Ink Cartridge" and "Miscellaneous:Printer Ink Cartridge". Maximum length: 31 characters.

barcode
object

The non-inventory item's barcode.

isActive
boolean
default: true

Indicates whether this non-inventory item is active. Inactive objects are typically hidden from views and reports in QuickBooks.

classId
string

The non-inventory 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.

parentId
string

The parent non-inventory item one level above this one in the hierarchy. For example, if this non-inventory item has a fullName of "Office-Supplies:Printer Ink Cartridge", its parent has a fullName of "Office-Supplies". If this non-inventory item is at the top level, this field will be null.

sku
string

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

unitOfMeasureSetId
string

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

forceUnitOfMeasureChange
boolean
default: false

Indicates whether to allow changing the non-inventory item's unit-of-measure set (using the unitOfMeasureSetId field) when the base unit of the new unit-of-measure set does not match that of the currently assigned set. Without setting this field to true in this scenario, the request will fail with an error; hence, this field is equivalent to accepting the warning prompt in the QuickBooks UI.

NOTE: Changing the base unit requires you to update the item's quantities-on-hand and cost to reflect the new unit; otherwise, these values will be inaccurate. Alternatively, consider creating a new item with the desired unit-of-measure set and deactivating the old item.

salesTaxCodeId
string

The sales-tax code associated with this non-inventory item, determining whether it is taxable or non-taxable. It's used to assign a default tax status to all transactions for this non-inventory item. Default codes include "Non" (non-taxable) and "Tax" (taxable), but custom codes can also be created in QuickBooks. If QuickBooks is not set up to charge sales tax (via the "Do You Charge Sales Tax?" preference), it will assign the default non-taxable code to all sales.

salesOrPurchaseDetails
object

Details for non-inventory items that are exclusively sold or exclusively purchased, but not both. This typically applies to non-inventory items (like a purchased office supply that isn't resold) or service items (like consulting services that are sold but not purchased).

IMPORTANT: A non-inventory item must specify either salesOrPurchaseDetails or salesAndPurchaseDetails, but never both because an item cannot have both configurations.

salesAndPurchaseDetails
object

Details for non-inventory items that are both purchased and sold, such as reimbursable expenses or inventory items that are bought from vendors and sold to customers.

IMPORTANT: A non-inventory item must specify either salesAndPurchaseDetails or salesOrPurchaseDetails, but never both because an item cannot have both configurations.

Response

200 - application/json
id
string
required

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

objectType
string
required

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

Allowed value: "qbd_non_inventory_item"
createdAt
string
required

The date and time when this non-inventory item was created, in ISO 8601 format (YYYY-MM-DDThh:mm:ss±hh:mm). The time zone is the same as the user's time zone in QuickBooks.

updatedAt
string
required

The date and time when this non-inventory item was last updated, in ISO 8601 format (YYYY-MM-DDThh:mm:ss±hh:mm). The time zone is the same as the user's time zone in QuickBooks.

revisionNumber
string
required

The current revision number of this non-inventory item, 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.

name
string
required

The case-insensitive name of this non-inventory item. Not guaranteed to be unique because it does not include the names of its parent objects like fullName does. For example, two non-inventory items could both have the name "Printer Ink Cartridge", but they could have unique fullName values, such as "Office-Supplies:Printer Ink Cartridge" and "Miscellaneous:Printer Ink Cartridge". Maximum length: 31 characters.

fullName
string
required

The case-insensitive fully-qualified unique name of this non-inventory item, formed by combining the names of its parent objects with its own name, separated by colons. For example, if a non-inventory item is under "Office-Supplies" and has the name "Printer Ink Cartridge", its fullName would be "Office-Supplies:Printer Ink Cartridge".

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

barcode
string | null
required

The non-inventory item's barcode.

isActive
boolean
default: truerequired

Indicates whether this non-inventory item is active. Inactive objects are typically hidden from views and reports in QuickBooks.

class
object | null
required

The non-inventory 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.

parent
object | null
required

The parent non-inventory item one level above this one in the hierarchy. For example, if this non-inventory item has a fullName of "Office-Supplies:Printer Ink Cartridge", its parent has a fullName of "Office-Supplies". If this non-inventory item is at the top level, this field will be null.

sublevel
number
required

The depth level of this non-inventory item in the hierarchy. A top-level non-inventory item has a sublevel of 0; each subsequent sublevel increases this number by 1. For example, a non-inventory item with a fullName of "Office-Supplies:Printer Ink Cartridge" would have a sublevel of 1.

sku
string | null
required

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

unitOfMeasureSet
object | null
required

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

salesTaxCode
object | null
required

The sales-tax code associated with this non-inventory item, determining whether it is taxable or non-taxable. It's used to assign a default tax status to all transactions for this non-inventory item. Default codes include "Non" (non-taxable) and "Tax" (taxable), but custom codes can also be created in QuickBooks. If QuickBooks is not set up to charge sales tax (via the "Do You Charge Sales Tax?" preference), it will assign the default non-taxable code to all sales.

salesOrPurchaseDetails
object | null
required

Details for non-inventory items that are exclusively sold or exclusively purchased, but not both. This typically applies to non-inventory items (like a purchased office supply that isn't resold) or service items (like consulting services that are sold but not purchased).

IMPORTANT: A non-inventory item must specify either salesOrPurchaseDetails or salesAndPurchaseDetails, but never both because an item cannot have both configurations.

salesAndPurchaseDetails
object | null
required

Details for non-inventory items that are both purchased and sold, such as reimbursable expenses or inventory items that are bought from vendors and sold to customers.

IMPORTANT: A non-inventory item must specify either salesAndPurchaseDetails or salesOrPurchaseDetails, but never both because an item cannot have both configurations.

externalId
string | null
required

A globally unique identifier (GUID) you can provide for tracking this object in your external system.

IMPORTANT: Must be formatted as a valid GUID; otherwise, QuickBooks will return an error. This field is immutable and can only be set during object creation.

customFields
object[]
required

The custom fields for the non-inventory item object, added as user-defined data extensions, not included in the standard QuickBooks object.