v48

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

Create a service item

Creates a new service item.

post/quickbooks-desktop/service-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 service item. Not guaranteed to be unique because it does not include the names of its hierarchical parent objects like fullName does. For example, two service items could both have the name "Web-Design", but they could have unique fullName values, such as "Consulting:Web-Design" and "Contracting:Web-Design".

Maximum length: 31 characters.

isActiveboolean

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

classIdstring

The service 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 service item one level above this one in the hierarchy. For example, if this service item has a fullName of "Consulting:Web-Design", its parent has a fullName of "Consulting". If this service item is at the top level, this field will be null.

unitOfMeasureSetIdstring

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

salesTaxCodeIdstring

The default sales-tax code for this service 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.

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": "Web-Design",
  "barcode": {
    "value": "012345678905"
  },
  "isActive": true,
  "classId": "80000001-1234567890",
  "parentId": "80000001-1234567890",
  "unitOfMeasureSetId": "80000001-1234567890",
  "salesTaxCodeId": "80000001-1234567890",
  "salesOrPurchaseDetails": {
    "description": "Hourly Consulting Service",
    "price": "19.99",
    "pricePercentage": "10.5",
    "postingAccountId": "80000001-1234567890"
  },
  "salesAndPurchaseDetails": {
    "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",
    "expenseAccountId": "80000001-1234567890",
    "preferredVendorId": "80000001-1234567890"
  },
  "externalId": "12345678-abcd-1234-abcd-1234567890ab"
}

Response

Returns the newly created service item.

idstring required

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

objectType'qbd_service_item' required

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

createdAtstring required

The date and time when this service 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 service 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 service 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 service item. Not guaranteed to be unique because it does not include the names of its hierarchical parent objects like fullName does. For example, two service items could both have the name "Web-Design", but they could have unique fullName values, such as "Consulting:Web-Design" and "Contracting:Web-Design".

fullNamestring required

The case-insensitive fully-qualified unique name of this service item, formed by combining the names of its hierarchical parent objects with its own name, separated by colons. For example, if a service item is under "Consulting" and has the name "Web-Design", its fullName would be "Consulting:Web-Design".

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

barcodestring nullable required

The service item's barcode.

isActiveboolean required

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

sublevelnumber required

The depth level of this service item in the hierarchy. A top-level service item has a sublevel of 0; each subsequent sublevel increases this number by 1. For example, a service item with a fullName of "Consulting:Web-Design" would have a sublevel of 1.

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_service_item",
  "createdAt": "2025-01-01T12:34:56+00:00",
  "updatedAt": "2025-02-01T12:34:56+00:00",
  "revisionNumber": "1721172183",
  "name": "Web-Design",
  "fullName": "Consulting:Web-Design",
  "barcode": "012345678905",
  "isActive": true,
  "class": {
    "id": "80000001-1234567890",
    "fullName": "Professional-Services"
  },
  "parent": {
    "id": "80000001-1234567890",
    "fullName": "Consulting"
  },
  "sublevel": 1,
  "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"
    }
  ]
}