List all non-inventory items
Returns a list of non-inventory items. Use the cursor parameter to paginate through the results.
Query parameters
Filter for specific non-inventory items by their QuickBooks-assigned unique identifier(s).
IMPORTANT: If you include this parameter, QuickBooks will ignore all other query parameters for this request.
NOTE: If any of the values you specify in this parameter are not found, the request will return an error.
Filter for specific non-inventory items by their QuickBooks-assigned unique identifier(s).
IMPORTANT: If you include this parameter, QuickBooks will ignore all other query parameters for this request.
NOTE: If any of the values you specify in this parameter are not found, the request will return an error.
[ "80000001-1234567890" ]
Filter for specific non-inventory items by their full-name(s), case-insensitive. Like id, fullName is a unique identifier for a non-inventory item, formed by 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".
IMPORTANT: If you include this parameter, QuickBooks will ignore all other query parameters for this request.
NOTE: If any of the values you specify in this parameter are not found, the request will return an error.
Filter for specific non-inventory items by their full-name(s), case-insensitive. Like id, fullName is a unique identifier for a non-inventory item, formed by 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".
IMPORTANT: If you include this parameter, QuickBooks will ignore all other query parameters for this request.
NOTE: If any of the values you specify in this parameter are not found, the request will return an error.
[ "Office Supplies:Printer Ink Cartridge" ]
The maximum number of objects to return. Accepts values ranging from 1 to 150, defaults to 150. When used with cursor-based pagination, this parameter controls how many results are returned per page. To paginate through results, combine this with the cursor parameter. Each response will include a nextCursor value that can be passed to subsequent requests to retrieve the next page of results.
The maximum number of objects to return. Accepts values ranging from 1 to 150, defaults to 150. When used with cursor-based pagination, this parameter controls how many results are returned per page. To paginate through results, combine this with the cursor parameter. Each response will include a nextCursor value that can be passed to subsequent requests to retrieve the next page of results.
The pagination token to fetch the next set of results when paginating with the limit parameter. Do not include this parameter on the first call. Use the nextCursor value returned in the previous response to request subsequent results.
The pagination token to fetch the next set of results when paginating with the limit parameter. Do not include this parameter on the first call. Use the nextCursor value returned in the previous response to request subsequent results.
Filter for non-inventory items that are active, inactive, or both.
Filter for non-inventory items that are active, inactive, or both.
Filter for non-inventory items updated on or after this date/time. Accepts the following ISO 8601 formats:
- date-only (YYYY-MM-DD) - QuickBooks Desktop interprets the date as the start of the specified day in the local timezone of the end-user's computer (e.g., 2025-01-01 → 2025-01-01T00:00:00).
- datetime without timezone (YYYY-MM-DDTHH:mm:ss) - QuickBooks Desktop interprets the timestamp in the local timezone of the end-user's computer.
- datetime with timezone (YYYY-MM-DDTHH:mm:ss±HH:mm) - QuickBooks Desktop interprets the timestamp using the specified timezone.
Filter for non-inventory items updated on or after this date/time. Accepts the following ISO 8601 formats:
- date-only (YYYY-MM-DD) - QuickBooks Desktop interprets the date as the start of the specified day in the local timezone of the end-user's computer (e.g., 2025-01-01 → 2025-01-01T00:00:00).
- datetime without timezone (YYYY-MM-DDTHH:mm:ss) - QuickBooks Desktop interprets the timestamp in the local timezone of the end-user's computer.
- datetime with timezone (YYYY-MM-DDTHH:mm:ss±HH:mm) - QuickBooks Desktop interprets the timestamp using the specified timezone.
Filter for non-inventory items updated on or before this date/time. Accepts the following ISO 8601 formats:
- date-only (YYYY-MM-DD) - QuickBooks Desktop interprets the date as the end of the specified day in the local timezone of the end-user's computer (e.g., 2025-01-01 → 2025-01-01T23:59:59).
- datetime without timezone (YYYY-MM-DDTHH:mm:ss) - QuickBooks Desktop interprets the timestamp in the local timezone of the end-user's computer.
- datetime with timezone (YYYY-MM-DDTHH:mm:ss±HH:mm) - QuickBooks Desktop interprets the timestamp using the specified timezone.
Filter for non-inventory items updated on or before this date/time. Accepts the following ISO 8601 formats:
- date-only (YYYY-MM-DD) - QuickBooks Desktop interprets the date as the end of the specified day in the local timezone of the end-user's computer (e.g., 2025-01-01 → 2025-01-01T23:59:59).
- datetime without timezone (YYYY-MM-DDTHH:mm:ss) - QuickBooks Desktop interprets the timestamp in the local timezone of the end-user's computer.
- datetime with timezone (YYYY-MM-DDTHH:mm:ss±HH:mm) - QuickBooks Desktop interprets the timestamp using the specified timezone.
Filter for non-inventory items whose name contains this substring, case-insensitive.
NOTE: If you use this parameter, you cannot also use nameStartsWith or nameEndsWith.
Filter for non-inventory items whose name contains this substring, case-insensitive.
NOTE: If you use this parameter, you cannot also use nameStartsWith or nameEndsWith.
Filter for non-inventory items whose name starts with this substring, case-insensitive.
NOTE: If you use this parameter, you cannot also use nameContains or nameEndsWith.
Filter for non-inventory items whose name starts with this substring, case-insensitive.
NOTE: If you use this parameter, you cannot also use nameContains or nameEndsWith.
Filter for non-inventory items whose name ends with this substring, case-insensitive.
NOTE: If you use this parameter, you cannot also use nameContains or nameStartsWith.
Filter for non-inventory items whose name ends with this substring, case-insensitive.
NOTE: If you use this parameter, you cannot also use nameContains or nameStartsWith.
Filter for non-inventory items whose name is alphabetically greater than or equal to this value.
Filter for non-inventory items whose name is alphabetically greater than or equal to this value.
Filter for non-inventory items whose name is alphabetically less than or equal to this value.
Filter for non-inventory items whose name is alphabetically less than or equal to this value.
Filter for non-inventory items of these classes. A class is a way end-users can categorize non-inventory items in QuickBooks.
Filter for non-inventory items of these classes. A class is a way end-users can categorize non-inventory items in QuickBooks.
[ "80000001-1234567890" ]
Headers
The ID of the End-User to receive this request.
The ID of the End-User to receive this request.
Response
Returns a list of non-inventory items.
Example response
{
"objectType": "list",
"url": "/v1/quickbooks-desktop/non-inventory-items",
"data": [
{
"id": "80000001-1234567890",
"objectType": "qbd_non_inventory_item",
"createdAt": "2025-01-01T12:34:56+00:00",
"updatedAt": "2025-02-01T12:34:56+00:00",
"revisionNumber": "1721172183",
"name": "Printer Ink Cartridge",
"fullName": "Office Supplies:Printer Ink Cartridge",
"barcode": "012345678905",
"isActive": true,
"class": {
"id": "80000001-1234567890",
"fullName": "Administrative"
},
"parent": {
"id": "80000001-1234567890",
"fullName": "Office Supplies"
},
"sublevel": 1,
"sku": "MPN-123456",
"unitOfMeasureSet": {
"id": "80000001-1234567890",
"fullName": "Weight Units"
},
"salesTaxCode": {
"id": "80000001-1234567890",
"fullName": "Non"
},
"salesOrPurchaseDetails": {
"description": "Hourly Consulting Service",
"price": "19.99",
"pricePercentage": "10.5",
"postingAccount": {
"id": "80000001-1234567890",
"fullName": "Income:Consulting Services"
}
},
"salesAndPurchaseDetails": {
"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"
},
"expenseAccount": {
"id": "80000001-1234567890",
"fullName": "Expenses:Cost of Goods Sold"
},
"preferredVendor": {
"id": "80000001-1234567890",
"fullName": "Acme Supplies Ltd."
}
},
"externalId": "12345678-abcd-1234-abcd-1234567890ab",
"customFields": [
{
"ownerId": "0",
"name": "Customer Rating",
"type": "string_1024_type",
"value": "Premium"
}
]
}
],
"nextCursor": "12345678-abcd-abcd-example-1234567890ab",
"remainingCount": 10
}Changes
Changed in 6 of the 46 revisions of this API.5235
- ▲
for the
queryrequest parameterstatus, default valueactivewas addedrequest-parameter-default-value-added
- ▲
- ▲
for the
queryrequest parameterstatus, default valueactivewas removedrequest-parameter-default-value-removed
- ▲
- ▲
response property
data/items/barcodelist-of-types was widened by adding typesnullto media typeapplication/jsonof response200response-property-list-of-types-widened
- ▲
response property
data/items/externalIdlist-of-types was widened by adding typesnullto media typeapplication/jsonof response200response-property-list-of-types-widened
- ▲
response property
data/items/skulist-of-types was widened by adding typesnullto media typeapplication/jsonof response200response-property-list-of-types-widened
- ▲
response property
nextCursorlist-of-types was widened by adding typesnullto media typeapplication/jsonof response200response-property-list-of-types-widened
- ▲
response property
remainingCountlist-of-types was widened by adding typesnullto media typeapplication/jsonof response200response-property-list-of-types-widened
- ▲
the
data/items/classresponse's property type/format changed fromobjectnull/to/for status200response-property-type-changed
- ▲
the
data/items/parentresponse's property type/format changed fromobjectnull/to/for status200response-property-type-changed
- ▲
the
data/items/salesTaxCoderesponse's property type/format changed fromobjectnull/to/for status200response-property-type-changed
- ▲
the
data/items/unitOfMeasureSetresponse's property type/format changed fromobjectnull/to/for status200response-property-type-changed
- ▲
removed the required property
data/items/class/fullNamefrom the response with the200statusresponse-required-property-removed
- ▲
removed the required property
data/items/class/idfrom the response with the200statusresponse-required-property-removed
- ▲
removed the required property
data/items/parent/fullNamefrom the response with the200statusresponse-required-property-removed
- ▲
removed the required property
data/items/parent/idfrom the response with the200statusresponse-required-property-removed
- ▲
removed the required property
data/items/salesTaxCode/fullNamefrom the response with the200statusresponse-required-property-removed
- ▲
removed the required property
data/items/salesTaxCode/idfrom the response with the200statusresponse-required-property-removed
- ▲
removed the required property
data/items/unitOfMeasureSet/fullNamefrom the response with the200statusresponse-required-property-removed
- ▲
removed the required property
data/items/unitOfMeasureSet/idfrom the response with the200statusresponse-required-property-removed
- ○
added
qbd_sales_and_purchase_detailssubschema #2to thedata/items/salesAndPurchaseDetailsresponse propertyanyOflist for the response status200response-property-any-of-added
- ○
added
qbd_sales_or_purchase_detailssubschema #2to thedata/items/salesOrPurchaseDetailsresponse propertyanyOflist for the response status200response-property-any-of-added
- ○
added
subschema #1subschema #2to thedata/items/classresponse propertyanyOflist for the response status200response-property-any-of-added
- ○
added
subschema #1subschema #2to thedata/items/parentresponse propertyanyOflist for the response status200response-property-any-of-added
- ○
added
subschema #1subschema #2to thedata/items/salesTaxCoderesponse propertyanyOflist for the response status200response-property-any-of-added
- ○
added
subschema #1subschema #2to thedata/items/unitOfMeasureSetresponse propertyanyOflist for the response status200response-property-any-of-added
- ○
removed
qbd_sales_and_purchase_detailssubschema #2from thedata/items/salesAndPurchaseDetailsresponse propertyoneOflist for the response status200response-property-one-of-removed
- ○
removed
qbd_sales_or_purchase_detailssubschema #2from thedata/items/salesOrPurchaseDetailsresponse propertyoneOflist for the response status200response-property-one-of-removed
- ▲
- ▲
the response property
data/items/barcodebecame nullable for the status200response-property-became-nullable
- ▲
the response property
data/items/classbecame nullable for the status200response-property-became-nullable
- ▲
the response property
data/items/externalIdbecame nullable for the status200response-property-became-nullable
- ▲
the response property
data/items/parentbecame nullable for the status200response-property-became-nullable
- ▲
the response property
data/items/salesTaxCodebecame nullable for the status200response-property-became-nullable
- ▲
the response property
data/items/skubecame nullable for the status200response-property-became-nullable
- ▲
the response property
data/items/unitOfMeasureSetbecame nullable for the status200response-property-became-nullable
- ▲
the response property
nextCursorbecame nullable for the status200response-property-became-nullable
- ▲
the response property
remainingCountbecame nullable for the status200response-property-became-nullable
- ▲
added
qbd_sales_and_purchase_detailssubschema #2to thedata/items/salesAndPurchaseDetailsresponse propertyoneOflist for the response status200response-property-one-of-added
- ▲
added
qbd_sales_or_purchase_detailssubschema #2to thedata/items/salesOrPurchaseDetailsresponse propertyoneOflist for the response status200response-property-one-of-added
- ▲
the
data/items/classresponse's property type/format changed from/toobjectnull/for status200response-property-type-changed
- ▲
the
data/items/parentresponse's property type/format changed from/toobjectnull/for status200response-property-type-changed
- ▲
the
data/items/salesTaxCoderesponse's property type/format changed from/toobjectnull/for status200response-property-type-changed
- ▲
the
data/items/unitOfMeasureSetresponse's property type/format changed from/toobjectnull/for status200response-property-type-changed
- ○
removed
qbd_sales_and_purchase_detailssubschema #2from thedata/items/salesAndPurchaseDetailsresponse propertyanyOflist for the response status200response-property-any-of-removed
- ○
removed
qbd_sales_or_purchase_detailssubschema #2from thedata/items/salesOrPurchaseDetailsresponse propertyanyOflist for the response status200response-property-any-of-removed
- ○
removed
subschema #1subschema #2from thedata/items/classresponse propertyanyOflist for the response status200response-property-any-of-removed
- ○
removed
subschema #1subschema #2from thedata/items/parentresponse propertyanyOflist for the response status200response-property-any-of-removed
- ○
removed
subschema #1subschema #2from thedata/items/salesTaxCoderesponse propertyanyOflist for the response status200response-property-any-of-removed
- ○
removed
subschema #1subschema #2from thedata/items/unitOfMeasureSetresponse propertyanyOflist for the response status200response-property-any-of-removed
- ○
response property
data/items/barcodelist-of-types was narrowed by removing typesnullfrom media typeapplication/jsonof response200response-property-list-of-types-narrowed
- ○
response property
data/items/externalIdlist-of-types was narrowed by removing typesnullfrom media typeapplication/jsonof response200response-property-list-of-types-narrowed
- ○
response property
data/items/skulist-of-types was narrowed by removing typesnullfrom media typeapplication/jsonof response200response-property-list-of-types-narrowed
- ○
response property
nextCursorlist-of-types was narrowed by removing typesnullfrom media typeapplication/jsonof response200response-property-list-of-types-narrowed
- ○
response property
remainingCountlist-of-types was narrowed by removing typesnullfrom media typeapplication/jsonof response200response-property-list-of-types-narrowed
- ○
added the required property
data/items/class/fullNameto the response with the200statusresponse-required-property-added
- ○
added the required property
data/items/class/idto the response with the200statusresponse-required-property-added
- ○
added the required property
data/items/parent/fullNameto the response with the200statusresponse-required-property-added
- ○
added the required property
data/items/parent/idto the response with the200statusresponse-required-property-added
- ○
added the required property
data/items/salesTaxCode/fullNameto the response with the200statusresponse-required-property-added
- ○
added the required property
data/items/salesTaxCode/idto the response with the200statusresponse-required-property-added
- ○
added the required property
data/items/unitOfMeasureSet/fullNameto the response with the200statusresponse-required-property-added
- ○
added the required property
data/items/unitOfMeasureSet/idto the response with the200statusresponse-required-property-added
- ▲
- ▲
response property
data/items/barcodelist-of-types was widened by adding typesnullto media typeapplication/jsonof response200response-property-list-of-types-widened
- ▲
response property
data/items/externalIdlist-of-types was widened by adding typesnullto media typeapplication/jsonof response200response-property-list-of-types-widened
- ▲
response property
data/items/skulist-of-types was widened by adding typesnullto media typeapplication/jsonof response200response-property-list-of-types-widened
- ▲
response property
nextCursorlist-of-types was widened by adding typesnullto media typeapplication/jsonof response200response-property-list-of-types-widened
- ▲
response property
remainingCountlist-of-types was widened by adding typesnullto media typeapplication/jsonof response200response-property-list-of-types-widened
- ▲
the
data/items/classresponse's property type/format changed fromobjectnull/to/for status200response-property-type-changed
- ▲
the
data/items/parentresponse's property type/format changed fromobjectnull/to/for status200response-property-type-changed
- ▲
the
data/items/salesTaxCoderesponse's property type/format changed fromobjectnull/to/for status200response-property-type-changed
- ▲
the
data/items/unitOfMeasureSetresponse's property type/format changed fromobjectnull/to/for status200response-property-type-changed
- ▲
removed the required property
data/items/class/fullNamefrom the response with the200statusresponse-required-property-removed
- ▲
removed the required property
data/items/class/idfrom the response with the200statusresponse-required-property-removed
- ▲
removed the required property
data/items/parent/fullNamefrom the response with the200statusresponse-required-property-removed
- ▲
removed the required property
data/items/parent/idfrom the response with the200statusresponse-required-property-removed
- ▲
removed the required property
data/items/salesTaxCode/fullNamefrom the response with the200statusresponse-required-property-removed
- ▲
removed the required property
data/items/salesTaxCode/idfrom the response with the200statusresponse-required-property-removed
- ▲
removed the required property
data/items/unitOfMeasureSet/fullNamefrom the response with the200statusresponse-required-property-removed
- ▲
removed the required property
data/items/unitOfMeasureSet/idfrom the response with the200statusresponse-required-property-removed
- ○
added
qbd_sales_and_purchase_detailssubschema #2to thedata/items/salesAndPurchaseDetailsresponse propertyanyOflist for the response status200response-property-any-of-added
- ○
added
qbd_sales_or_purchase_detailssubschema #2to thedata/items/salesOrPurchaseDetailsresponse propertyanyOflist for the response status200response-property-any-of-added
- ○
added
subschema #1subschema #2to thedata/items/classresponse propertyanyOflist for the response status200response-property-any-of-added
- ○
added
subschema #1subschema #2to thedata/items/parentresponse propertyanyOflist for the response status200response-property-any-of-added
- ○
added
subschema #1subschema #2to thedata/items/salesTaxCoderesponse propertyanyOflist for the response status200response-property-any-of-added
- ○
added
subschema #1subschema #2to thedata/items/unitOfMeasureSetresponse propertyanyOflist for the response status200response-property-any-of-added
- ○
removed
qbd_sales_and_purchase_detailssubschema #2from thedata/items/salesAndPurchaseDetailsresponse propertyoneOflist for the response status200response-property-one-of-removed
- ○
removed
qbd_sales_or_purchase_detailssubschema #2from thedata/items/salesOrPurchaseDetailsresponse propertyoneOflist for the response status200response-property-one-of-removed
- ▲
- ▲
the response property
data/items/salesAndPurchaseDetails/oneOf[subschema #1: The Sales-and-Purchase Details object]/incomeAccountbecame nullable for the status200response-property-became-nullable
- ▲