> ## Documentation Index
> Fetch the complete documentation index at: https://docs.conductor.is/llms.txt
> Use this file to discover all available pages before exploring further.

# List all non-inventory items

> Returns a list of non-inventory items. Use the `cursor` parameter to paginate through the results.



## OpenAPI

````yaml GET /quickbooks-desktop/non-inventory-items
openapi: 3.1.0
info:
  title: Conductor API
  version: 0.0.1
servers:
  - url: https://api.conductor.is/v1
security:
  - BearerAuth: []
paths:
  /quickbooks-desktop/non-inventory-items:
    get:
      summary: List all non-inventory items
      description: >-
        Returns a list of non-inventory items. Use the `cursor` parameter to
        paginate through the results.
      parameters:
        - in: header
          name: Conductor-End-User-Id
          schema:
            type: string
            description: The ID of the End-User to receive this request.
            example: end_usr_1234567abcdefg
            x-stainless-naming:
              typescript:
                method_argument: conductorEndUserId
              mcp:
                method_argument: conductorEndUserId
          required: true
          description: The ID of the End-User to receive this request.
        - in: query
          name: ids
          schema:
            description: >-
              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.
            example:
              - 80000001-1234567890
            type: array
            items:
              type: string
          description: >-
            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.
        - in: query
          name: fullNames
          schema:
            description: >-
              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.
            example:
              - Office Supplies:Printer Ink Cartridge
            type: array
            items:
              type: string
          description: >-
            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.
        - in: query
          name: limit
          schema:
            default: 150
            description: >-
              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.
            example: 150
            type: integer
            minimum: 1
            maximum: 150
          description: >-
            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.
        - in: query
          name: cursor
          schema:
            description: >-
              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.
            example: 12345678-abcd-abcd-example-1234567890ab
            type: string
          description: >-
            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.
        - in: query
          name: status
          schema:
            description: Filter for non-inventory items that are active, inactive, or both.
            example: active
            type: string
            enum:
              - active
              - all
              - inactive
            default: active
          description: Filter for non-inventory items that are active, inactive, or both.
        - in: query
          name: updatedAfter
          schema:
            description: >-
              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.
            example: '2025-01-01T12:34:56.000Z'
            type: string
          description: >-
            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.
        - in: query
          name: updatedBefore
          schema:
            description: >-
              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.
            example: '2025-02-01T12:34:56.000Z'
            type: string
          description: >-
            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.
        - in: query
          name: nameContains
          schema:
            description: >-
              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`.
            example: ABC
            type: string
          description: >-
            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`.
        - in: query
          name: nameStartsWith
          schema:
            description: >-
              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`.
            example: ABC
            type: string
          description: >-
            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`.
        - in: query
          name: nameEndsWith
          schema:
            description: >-
              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`.
            example: ABC
            type: string
          description: >-
            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`.
        - in: query
          name: nameFrom
          schema:
            description: >-
              Filter for non-inventory items whose `name` is alphabetically
              greater than or equal to this value.
            example: A
            type: string
          description: >-
            Filter for non-inventory items whose `name` is alphabetically
            greater than or equal to this value.
        - in: query
          name: nameTo
          schema:
            description: >-
              Filter for non-inventory items whose `name` is alphabetically less
              than or equal to this value.
            example: Z
            type: string
          description: >-
            Filter for non-inventory items whose `name` is alphabetically less
            than or equal to this value.
        - in: query
          name: classIds
          schema:
            description: >-
              Filter for non-inventory items of these classes. A class is a way
              end-users can categorize non-inventory items in QuickBooks.
            example:
              - 80000001-1234567890
            type: array
            items:
              type: string
          description: >-
            Filter for non-inventory items of these classes. A class is a way
            end-users can categorize non-inventory items in QuickBooks.
      responses:
        '200':
          description: Returns a list of non-inventory items.
          headers:
            Conductor-Request-Id:
              required: true
              description: The unique identifier for this API request.
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
          content:
            application/json:
              schema:
                type: object
                properties:
                  objectType:
                    description: The type of object. This value is always `"list"`.
                    example: list
                    type: string
                    const: list
                  url:
                    type: string
                    description: The endpoint URL where this list can be accessed.
                    example: /v1/quickbooks-desktop/non-inventory-items
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/qbd_non_inventory_item'
                    description: The array of non-inventory items.
                  nextCursor:
                    anyOf:
                      - type: string
                      - type: 'null'
                    description: >-
                      The `nextCursor` is a pagination token returned in the
                      response when you use the `limit` parameter in your
                      request. To retrieve subsequent pages of results, include
                      this token as the value of the `cursor` request parameter
                      in your following API calls.


                      **NOTE**: The `nextCursor` value remains constant
                      throughout the pagination process for a specific list
                      instance; continue to use the same `nextCursor` token in
                      each request to fetch additional pages.
                    example: 12345678-abcd-abcd-example-1234567890ab
                  remainingCount:
                    anyOf:
                      - type: number
                      - type: 'null'
                    description: The number of objects remaining to be fetched.
                    example: 10
                  hasMore:
                    type: boolean
                    description: Indicates whether there are more objects to be fetched.
                required:
                  - objectType
                  - url
                  - data
                  - nextCursor
                  - remainingCount
                  - hasMore
                additionalProperties: false
      security:
        - BearerAuth: []
      x-codeSamples:
        - lang: JavaScript
          source: >-
            import Conductor from 'conductor-node';


            const conductor = new Conductor({
              apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted
            });


            // Automatically fetches more pages as needed.

            for await (const nonInventoryItem of
            conductor.qbd.nonInventoryItems.list({
              conductorEndUserId: 'end_usr_1234567abcdefg',
            })) {
              console.log(nonInventoryItem.id);
            }
        - lang: Python
          source: |-
            import os
            from conductor import Conductor

            conductor = Conductor(
                api_key=os.environ.get("CONDUCTOR_SECRET_KEY"),  # This is the default and can be omitted
            )
            page = conductor.qbd.non_inventory_items.list(
                conductor_end_user_id="end_usr_1234567abcdefg",
            )
            page = page.data[0]
            print(page.id)
components:
  schemas:
    qbd_non_inventory_item:
      type: object
      properties:
        id:
          type: string
          description: >-
            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.
          example: 80000001-1234567890
        objectType:
          description: The type of object. This value is always `"qbd_non_inventory_item"`.
          example: qbd_non_inventory_item
          type: string
          const: qbd_non_inventory_item
        createdAt:
          type: string
          description: >-
            The date and time when this non-inventory 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.
          example: '2025-01-01T12:34:56.000Z'
        updatedAt:
          type: string
          description: >-
            The date and time when this non-inventory 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.
          example: '2025-02-01T12:34:56.000Z'
        revisionNumber:
          type: string
          description: >-
            The current QuickBooks-assigned revision number of this
            non-inventory 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.
          example: '1721172183'
        name:
          type: string
          description: >-
            The case-insensitive name of this non-inventory item. Not guaranteed
            to be unique because it does not include the names of its
            hierarchical 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".
          example: Printer Ink Cartridge
        fullName:
          type: string
          description: >-
            The case-insensitive fully-qualified unique name of this
            non-inventory item, formed by combining the names of its
            hierarchical 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".


            **NOTE**: 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.
          example: Office Supplies:Printer Ink Cartridge
        barcode:
          anyOf:
            - type: string
            - type: 'null'
          description: The non-inventory item's barcode.
          example: '012345678905'
        isActive:
          type: boolean
          description: >-
            Indicates whether this non-inventory item is active. Inactive
            objects are typically hidden from views and reports in QuickBooks.
            Defaults to `true`.
          example: true
        class:
          anyOf:
            - type: object
              properties:
                id:
                  anyOf:
                    - type: string
                    - type: 'null'
                  description: >-
                    The unique identifier assigned by QuickBooks to this object.
                    This ID is unique across all objects of the same type, but
                    not across different QuickBooks object types.
                  example: 80000001-1234567890
                fullName:
                  anyOf:
                    - type: string
                    - type: 'null'
                  description: >-
                    The fully-qualified unique name for this object, formed by
                    combining the names of its parent objects with its own
                    `name`, separated by colons. Not case-sensitive.
                  example: Parent:Child:Grandchild
              required:
                - id
                - fullName
              additionalProperties: false
            - type: 'null'
          description: >-
            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.
          example:
            id: 80000001-1234567890
            fullName: Administrative
        parent:
          anyOf:
            - type: object
              properties:
                id:
                  anyOf:
                    - type: string
                    - type: 'null'
                  description: >-
                    The unique identifier assigned by QuickBooks to this object.
                    This ID is unique across all objects of the same type, but
                    not across different QuickBooks object types.
                  example: 80000001-1234567890
                fullName:
                  anyOf:
                    - type: string
                    - type: 'null'
                  description: >-
                    The fully-qualified unique name for this object, formed by
                    combining the names of its parent objects with its own
                    `name`, separated by colons. Not case-sensitive.
                  example: Parent:Child:Grandchild
              required:
                - id
                - fullName
              additionalProperties: false
            - type: 'null'
          description: >-
            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`.
          example:
            id: 80000001-1234567890
            fullName: Office Supplies
        sublevel:
          type: number
          description: >-
            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.
          example: 1
        sku:
          anyOf:
            - type: string
            - type: 'null'
          description: >-
            The non-inventory item's stock keeping unit (SKU), which is
            sometimes the manufacturer's part number.
          example: MPN-123456
        unitOfMeasureSet:
          anyOf:
            - type: object
              properties:
                id:
                  anyOf:
                    - type: string
                    - type: 'null'
                  description: >-
                    The unique identifier assigned by QuickBooks to this object.
                    This ID is unique across all objects of the same type, but
                    not across different QuickBooks object types.
                  example: 80000001-1234567890
                fullName:
                  anyOf:
                    - type: string
                    - type: 'null'
                  description: >-
                    The fully-qualified unique name for this object, formed by
                    combining the names of its parent objects with its own
                    `name`, separated by colons. Not case-sensitive.
                  example: Parent:Child:Grandchild
              required:
                - id
                - fullName
              additionalProperties: false
            - type: 'null'
          description: >-
            The unit-of-measure set associated with this non-inventory item,
            which consists of a base unit and related units.


            IMPORTANT: Right after QuickBooks Desktop launches, it can briefly
            report an alternate `id` for a unit-of-measure set, so match on
            `fullName` when joining to the unit-of-measure sets list.
          example:
            id: 80000001-1234567890
            fullName: Weight Units
        salesTaxCode:
          anyOf:
            - type: object
              properties:
                id:
                  anyOf:
                    - type: string
                    - type: 'null'
                  description: >-
                    The unique identifier assigned by QuickBooks to this object.
                    This ID is unique across all objects of the same type, but
                    not across different QuickBooks object types.
                  example: 80000001-1234567890
                fullName:
                  anyOf:
                    - type: string
                    - type: 'null'
                  description: >-
                    The fully-qualified unique name for this object, formed by
                    combining the names of its parent objects with its own
                    `name`, separated by colons. Not case-sensitive.
                  example: Parent:Child:Grandchild
              required:
                - id
                - fullName
              additionalProperties: false
            - type: 'null'
          description: >-
            The default sales-tax code for this non-inventory 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.
          example:
            id: 80000001-1234567890
            fullName: Non
        salesOrPurchaseDetails:
          anyOf:
            - $ref: '#/components/schemas/qbd_sales_or_purchase_details'
            - type: 'null'
          description: >-
            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 will have either
            `salesAndPurchaseDetails` or `salesOrPurchaseDetails`, but never
            both because an item cannot have both configurations.
        salesAndPurchaseDetails:
          anyOf:
            - $ref: '#/components/schemas/qbd_sales_and_purchase_details'
            - type: 'null'
          description: >-
            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 will have either
            `salesAndPurchaseDetails` or `salesOrPurchaseDetails`, but never
            both because an item cannot have both configurations.
        externalId:
          anyOf:
            - type: string
              description: >-
                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: 12345678-abcd-1234-abcd-1234567890ab
            - type: 'null'
        customFields:
          type: array
          items:
            $ref: '#/components/schemas/qbd_custom_field'
          description: >-
            The custom fields for the non-inventory item object, added as
            user-defined data extensions, not included in the standard
            QuickBooks object.
      required:
        - id
        - objectType
        - createdAt
        - updatedAt
        - revisionNumber
        - name
        - fullName
        - barcode
        - isActive
        - class
        - parent
        - sublevel
        - sku
        - unitOfMeasureSet
        - salesTaxCode
        - salesOrPurchaseDetails
        - salesAndPurchaseDetails
        - externalId
        - customFields
      additionalProperties: false
      title: The Non-Inventory Item object
      x-conductor-object-type: item
      summary: >-
        A non-inventory item is any material or part that a business buys but
        does not keep on hand as inventory.


        There are two types of non-inventory items:

        1. Materials or parts that are part of the business's overhead (for
        example, office supplies)

        2. Materials or parts that the business buys to finish a specific job
        and then charges back to the customer.
    qbd_sales_or_purchase_details:
      type: object
      properties:
        description:
          anyOf:
            - type: string
            - type: 'null'
          description: A description of this item.
          example: Hourly Consulting Service
        price:
          anyOf:
            - type: string
            - type: 'null'
          description: >-
            The price at which this item is purchased or sold, represented as a
            decimal string.
          example: '19.99'
        pricePercentage:
          anyOf:
            - type: string
            - type: 'null'
          description: >-
            The price of this item expressed as a percentage, used instead of
            `price` when the item's cost is calculated as a percentage of
            another amount. For example, a service item that costs a percentage
            of another item's price.
          example: '10.5'
        postingAccount:
          anyOf:
            - type: object
              properties:
                id:
                  anyOf:
                    - type: string
                    - type: 'null'
                  description: >-
                    The unique identifier assigned by QuickBooks to this object.
                    This ID is unique across all objects of the same type, but
                    not across different QuickBooks object types.
                  example: 80000001-1234567890
                fullName:
                  anyOf:
                    - type: string
                    - type: 'null'
                  description: >-
                    The fully-qualified unique name for this object, formed by
                    combining the names of its parent objects with its own
                    `name`, separated by colons. Not case-sensitive.
                  example: Parent:Child:Grandchild
              required:
                - id
                - fullName
              additionalProperties: false
            - type: 'null'
          description: >-
            The posting account to which transactions involving this item are
            posted. This could be an income account when selling or an expense
            account when purchasing.
          example:
            id: 80000001-1234567890
            fullName: Income:Consulting Services
      required:
        - description
        - price
        - pricePercentage
        - postingAccount
      additionalProperties: false
      title: The Sales-or-Purchase Details object
      x-conductor-object-type: nested
    qbd_sales_and_purchase_details:
      type: object
      properties:
        salesDescription:
          anyOf:
            - type: string
            - type: 'null'
          description: >-
            The description of this item that appears on sales forms (e.g.,
            invoices, sales receipts) when sold to customers.
          example: High-quality steel bolts suitable for construction
        salesPrice:
          anyOf:
            - type: string
            - type: 'null'
          description: >-
            The price at which this item is sold to customers, represented as a
            decimal string.
          example: '19.99'
        incomeAccount:
          anyOf:
            - type: object
              properties:
                id:
                  anyOf:
                    - type: string
                    - type: 'null'
                  description: >-
                    The unique identifier assigned by QuickBooks to this object.
                    This ID is unique across all objects of the same type, but
                    not across different QuickBooks object types.
                  example: 80000001-1234567890
                fullName:
                  anyOf:
                    - type: string
                    - type: 'null'
                  description: >-
                    The fully-qualified unique name for this object, formed by
                    combining the names of its parent objects with its own
                    `name`, separated by colons. Not case-sensitive.
                  example: Parent:Child:Grandchild
              required:
                - id
                - fullName
              additionalProperties: false
            - type: 'null'
          description: The income account used to track revenue from sales of this item.
          example:
            id: 80000001-1234567890
            fullName: Income:Product Sales
        purchaseDescription:
          anyOf:
            - type: string
            - type: 'null'
          description: >-
            The description of this item that appears on purchase forms (e.g.,
            checks, bills, item receipts) when it is ordered or bought from
            vendors.
          example: Bulk purchase of steel bolts for inventory
        purchaseCost:
          anyOf:
            - type: string
            - type: 'null'
          description: >-
            The cost at which this item is purchased from vendors, represented
            as a decimal string.
          example: '15.75'
        purchaseTaxCode:
          anyOf:
            - type: object
              properties:
                id:
                  anyOf:
                    - type: string
                    - type: 'null'
                  description: >-
                    The unique identifier assigned by QuickBooks to this object.
                    This ID is unique across all objects of the same type, but
                    not across different QuickBooks object types.
                  example: 80000001-1234567890
                fullName:
                  anyOf:
                    - type: string
                    - type: 'null'
                  description: >-
                    The fully-qualified unique name for this object, formed by
                    combining the names of its parent objects with its own
                    `name`, separated by colons. Not case-sensitive.
                  example: Parent:Child:Grandchild
              required:
                - id
                - fullName
              additionalProperties: false
            - type: 'null'
          description: >-
            The tax code applied to purchases of this item. Applicable in
            regions where purchase taxes are used, such as Canada or the UK.
          example:
            id: 80000001-1234567890
            fullName: GST
        expenseAccount:
          anyOf:
            - type: object
              properties:
                id:
                  anyOf:
                    - type: string
                    - type: 'null'
                  description: >-
                    The unique identifier assigned by QuickBooks to this object.
                    This ID is unique across all objects of the same type, but
                    not across different QuickBooks object types.
                  example: 80000001-1234567890
                fullName:
                  anyOf:
                    - type: string
                    - type: 'null'
                  description: >-
                    The fully-qualified unique name for this object, formed by
                    combining the names of its parent objects with its own
                    `name`, separated by colons. Not case-sensitive.
                  example: Parent:Child:Grandchild
              required:
                - id
                - fullName
              additionalProperties: false
            - type: 'null'
          description: The expense account used to track costs from purchases of this item.
          example:
            id: 80000001-1234567890
            fullName: Expenses:Cost of Goods Sold
        preferredVendor:
          anyOf:
            - type: object
              properties:
                id:
                  anyOf:
                    - type: string
                    - type: 'null'
                  description: >-
                    The unique identifier assigned by QuickBooks to this object.
                    This ID is unique across all objects of the same type, but
                    not across different QuickBooks object types.
                  example: 80000001-1234567890
                fullName:
                  anyOf:
                    - type: string
                    - type: 'null'
                  description: >-
                    The fully-qualified unique name for this object, formed by
                    combining the names of its parent objects with its own
                    `name`, separated by colons. Not case-sensitive.
                  example: Parent:Child:Grandchild
              required:
                - id
                - fullName
              additionalProperties: false
            - type: 'null'
          description: The preferred vendor from whom this item is typically purchased.
          example:
            id: 80000001-1234567890
            fullName: Acme Supplies Ltd.
      required:
        - salesDescription
        - salesPrice
        - incomeAccount
        - purchaseDescription
        - purchaseCost
        - purchaseTaxCode
        - expenseAccount
        - preferredVendor
      additionalProperties: false
      title: The Sales-and-Purchase Details object
      x-conductor-object-type: nested
    qbd_custom_field:
      type: object
      properties:
        ownerId:
          type: string
          description: >-
            The identifier of the owner of the custom field, which QuickBooks
            internally calls a "data extension". For public custom fields
            visible in the UI, such as those added by the QuickBooks user, this
            is always "0". For private custom fields that are only visible to
            the application that created them, this is a valid GUID identifying
            the owning application. Internally, Conductor always fetches all
            public custom fields (those with an `ownerId` of "0") for all
            objects.
          example: '0'
        name:
          type: string
          description: >-
            The name of the custom field, unique for the specified `ownerId`.
            For public custom fields, this name is visible as a label in the
            QuickBooks UI.
          example: Customer Rating
        type:
          type: string
          enum:
            - amount_type
            - date_time_type
            - integer_type
            - percent_type
            - price_type
            - quantity_type
            - string_1024_type
            - string_255_type
          description: The data type of this custom field.
          example: string_1024_type
        value:
          type: string
          description: >-
            The value of this custom field. The maximum length depends on the
            field's data type.
          example: Premium
      required:
        - ownerId
        - name
        - type
        - value
      additionalProperties: false
      title: The Custom Field object
      x-conductor-object-type: nested
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      description: >-
        Your Conductor secret key using Bearer auth (e.g., `"Authorization:
        Bearer {{YOUR_SECRET_KEY}}"`).

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.