Retrieve a service item
Retrieves a service item by ID.
IMPORTANT: If you need to fetch multiple specific service items by ID, use the list endpoint instead with the ids parameter. It accepts an array of IDs so you can batch the request into a single call, which is significantly faster.
Path parameters
The QuickBooks-assigned unique identifier of the service item to retrieve.
The QuickBooks-assigned unique identifier of the service item to retrieve.
Headers
The ID of the End-User to receive this request.
The ID of the End-User to receive this request.
Response
Returns the specified service item.
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"
}
]
}Changes
Changed in 5 of the 46 revisions of this API.41132
- ●
for the
pathrequest parameterid, the maxLength was set to36request-parameter-max-length-set
- ●
- ▲
response property
barcodelist-of-types was widened by adding typesnullto media typeapplication/jsonof response200response-property-list-of-types-widened
- ▲
response property
externalIdlist-of-types was widened by adding typesnullto media typeapplication/jsonof response200response-property-list-of-types-widened
- ▲
the
classresponse's property type/format changed fromobjectnull/to/for status200response-property-type-changed
- ▲
the
parentresponse's property type/format changed fromobjectnull/to/for status200response-property-type-changed
- ▲
the
salesTaxCoderesponse's property type/format changed fromobjectnull/to/for status200response-property-type-changed
- ▲
the
unitOfMeasureSetresponse's property type/format changed fromobjectnull/to/for status200response-property-type-changed
- ▲
removed the required property
class/fullNamefrom the response with the200statusresponse-required-property-removed
- ▲
removed the required property
class/idfrom the response with the200statusresponse-required-property-removed
- ▲
removed the required property
parent/fullNamefrom the response with the200statusresponse-required-property-removed
- ▲
removed the required property
parent/idfrom the response with the200statusresponse-required-property-removed
- ▲
removed the required property
salesTaxCode/fullNamefrom the response with the200statusresponse-required-property-removed
- ▲
removed the required property
salesTaxCode/idfrom the response with the200statusresponse-required-property-removed
- ▲
removed the required property
unitOfMeasureSet/fullNamefrom the response with the200statusresponse-required-property-removed
- ▲
removed the required property
unitOfMeasureSet/idfrom the response with the200statusresponse-required-property-removed
- ○
added
qbd_sales_and_purchase_detailssubschema #2to thesalesAndPurchaseDetailsresponse propertyanyOflist for the response status200response-property-any-of-added
- ○
added
qbd_sales_or_purchase_detailssubschema #2to thesalesOrPurchaseDetailsresponse propertyanyOflist for the response status200response-property-any-of-added
- ○
added
subschema #1subschema #2to theclassresponse propertyanyOflist for the response status200response-property-any-of-added
- ○
added
subschema #1subschema #2to theparentresponse propertyanyOflist for the response status200response-property-any-of-added
- ○
added
subschema #1subschema #2to thesalesTaxCoderesponse propertyanyOflist for the response status200response-property-any-of-added
- ○
added
subschema #1subschema #2to theunitOfMeasureSetresponse propertyanyOflist for the response status200response-property-any-of-added
- ○
removed
qbd_sales_and_purchase_detailssubschema #2from thesalesAndPurchaseDetailsresponse propertyoneOflist for the response status200response-property-one-of-removed
- ○
removed
qbd_sales_or_purchase_detailssubschema #2from thesalesOrPurchaseDetailsresponse propertyoneOflist for the response status200response-property-one-of-removed
- ▲
- ▲
the response property
barcodebecame nullable for the status200response-property-became-nullable
- ▲
the response property
classbecame nullable for the status200response-property-became-nullable
- ▲
the response property
externalIdbecame nullable for the status200response-property-became-nullable
- ▲
the response property
parentbecame nullable for the status200response-property-became-nullable
- ▲
the response property
salesTaxCodebecame nullable for the status200response-property-became-nullable
- ▲
the response property
unitOfMeasureSetbecame nullable for the status200response-property-became-nullable
- ▲
added
qbd_sales_and_purchase_detailssubschema #2to thesalesAndPurchaseDetailsresponse propertyoneOflist for the response status200response-property-one-of-added
- ▲
added
qbd_sales_or_purchase_detailssubschema #2to thesalesOrPurchaseDetailsresponse propertyoneOflist for the response status200response-property-one-of-added
- ▲
the
classresponse's property type/format changed from/toobjectnull/for status200response-property-type-changed
- ▲
the
parentresponse's property type/format changed from/toobjectnull/for status200response-property-type-changed
- ▲
the
salesTaxCoderesponse's property type/format changed from/toobjectnull/for status200response-property-type-changed
- ▲
the
unitOfMeasureSetresponse's property type/format changed from/toobjectnull/for status200response-property-type-changed
- ○
removed
qbd_sales_and_purchase_detailssubschema #2from thesalesAndPurchaseDetailsresponse propertyanyOflist for the response status200response-property-any-of-removed
- ○
removed
qbd_sales_or_purchase_detailssubschema #2from thesalesOrPurchaseDetailsresponse propertyanyOflist for the response status200response-property-any-of-removed
- ○
removed
subschema #1subschema #2from theclassresponse propertyanyOflist for the response status200response-property-any-of-removed
- ○
removed
subschema #1subschema #2from theparentresponse propertyanyOflist for the response status200response-property-any-of-removed
- ○
removed
subschema #1subschema #2from thesalesTaxCoderesponse propertyanyOflist for the response status200response-property-any-of-removed
- ○
removed
subschema #1subschema #2from theunitOfMeasureSetresponse propertyanyOflist for the response status200response-property-any-of-removed
- ○
response property
barcodelist-of-types was narrowed by removing typesnullfrom media typeapplication/jsonof response200response-property-list-of-types-narrowed
- ○
response property
externalIdlist-of-types was narrowed by removing typesnullfrom media typeapplication/jsonof response200response-property-list-of-types-narrowed
- ○
added the required property
class/fullNameto the response with the200statusresponse-required-property-added
- ○
added the required property
class/idto the response with the200statusresponse-required-property-added
- ○
added the required property
parent/fullNameto the response with the200statusresponse-required-property-added
- ○
added the required property
parent/idto the response with the200statusresponse-required-property-added
- ○
added the required property
salesTaxCode/fullNameto the response with the200statusresponse-required-property-added
- ○
added the required property
salesTaxCode/idto the response with the200statusresponse-required-property-added
- ○
added the required property
unitOfMeasureSet/fullNameto the response with the200statusresponse-required-property-added
- ○
added the required property
unitOfMeasureSet/idto the response with the200statusresponse-required-property-added
- ▲
- ▲
response property
barcodelist-of-types was widened by adding typesnullto media typeapplication/jsonof response200response-property-list-of-types-widened
- ▲
response property
externalIdlist-of-types was widened by adding typesnullto media typeapplication/jsonof response200response-property-list-of-types-widened
- ▲
the
classresponse's property type/format changed fromobjectnull/to/for status200response-property-type-changed
- ▲
the
parentresponse's property type/format changed fromobjectnull/to/for status200response-property-type-changed
- ▲
the
salesTaxCoderesponse's property type/format changed fromobjectnull/to/for status200response-property-type-changed
- ▲
the
unitOfMeasureSetresponse's property type/format changed fromobjectnull/to/for status200response-property-type-changed
- ▲
removed the required property
class/fullNamefrom the response with the200statusresponse-required-property-removed
- ▲
removed the required property
class/idfrom the response with the200statusresponse-required-property-removed
- ▲
removed the required property
parent/fullNamefrom the response with the200statusresponse-required-property-removed
- ▲
removed the required property
parent/idfrom the response with the200statusresponse-required-property-removed
- ▲
removed the required property
salesTaxCode/fullNamefrom the response with the200statusresponse-required-property-removed
- ▲
removed the required property
salesTaxCode/idfrom the response with the200statusresponse-required-property-removed
- ▲
removed the required property
unitOfMeasureSet/fullNamefrom the response with the200statusresponse-required-property-removed
- ▲
removed the required property
unitOfMeasureSet/idfrom the response with the200statusresponse-required-property-removed
- ○
added
qbd_sales_and_purchase_detailssubschema #2to thesalesAndPurchaseDetailsresponse propertyanyOflist for the response status200response-property-any-of-added
- ○
added
qbd_sales_or_purchase_detailssubschema #2to thesalesOrPurchaseDetailsresponse propertyanyOflist for the response status200response-property-any-of-added
- ○
added
subschema #1subschema #2to theclassresponse propertyanyOflist for the response status200response-property-any-of-added
- ○
added
subschema #1subschema #2to theparentresponse propertyanyOflist for the response status200response-property-any-of-added
- ○
added
subschema #1subschema #2to thesalesTaxCoderesponse propertyanyOflist for the response status200response-property-any-of-added
- ○
added
subschema #1subschema #2to theunitOfMeasureSetresponse propertyanyOflist for the response status200response-property-any-of-added
- ○
removed
qbd_sales_and_purchase_detailssubschema #2from thesalesAndPurchaseDetailsresponse propertyoneOflist for the response status200response-property-one-of-removed
- ○
removed
qbd_sales_or_purchase_detailssubschema #2from thesalesOrPurchaseDetailsresponse propertyoneOflist for the response status200response-property-one-of-removed
- ▲
- ▲
the response property
salesAndPurchaseDetails/oneOf[subschema #1: The Sales-and-Purchase Details object]/incomeAccountbecame nullable for the status200response-property-became-nullable
- ▲