> ## 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.

# Create a subtotal item

> Creates a new subtotal item.



## OpenAPI

````yaml POST /quickbooks-desktop/subtotal-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/subtotal-items:
    post:
      summary: Create a subtotal item
      description: Creates a new subtotal item.
      parameters:
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  maxLength: 31
                  description: >-
                    The case-insensitive unique name of this subtotal item,
                    unique across all subtotal items.


                    **NOTE**: Subtotal items do not have a `fullName` field
                    because they are not hierarchical objects, which is why
                    `name` is unique for them but not for objects that have
                    parents.


                    Maximum length: 31 characters.
                  example: Labor subtotal
                barcode:
                  type: object
                  properties:
                    value:
                      type: string
                      description: The item's barcode value.
                      example: '012345678905'
                    assignEvenIfUsed:
                      type: boolean
                      description: >-
                        Indicates whether to assign the barcode even if it is
                        already used.
                      example: false
                      default: false
                    allowOverride:
                      type: boolean
                      description: Indicates whether to allow the barcode to be overridden.
                      example: false
                      default: false
                  additionalProperties: false
                  description: The subtotal item's barcode.
                isActive:
                  type: boolean
                  description: >-
                    Indicates whether this subtotal item is active. Inactive
                    objects are typically hidden from views and reports in
                    QuickBooks. Defaults to `true`.
                  example: true
                  default: true
                description:
                  type: string
                  description: >-
                    The subtotal item's description that will appear on sales
                    forms that include this item.
                  example: Subtotal for all labor costs on this project
                externalId:
                  type: string
                  format: uuid
                  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.


                    **IMPORTANT**: This field must be formatted as a valid GUID;
                    otherwise, QuickBooks will return an error.
                  example: 12345678-abcd-1234-abcd-1234567890ab
              required:
                - name
              additionalProperties: false
      responses:
        '200':
          description: Returns the newly created subtotal item.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/qbd_subtotal_item'
      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
            });

            const subtotalItem = await conductor.qbd.subtotalItems.create({
              name: 'Labor subtotal',
              conductorEndUserId: 'end_usr_1234567abcdefg',
            });

            console.log(subtotalItem.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
            )
            subtotal_item = conductor.qbd.subtotal_items.create(
                name="Labor subtotal",
                conductor_end_user_id="end_usr_1234567abcdefg",
            )
            print(subtotal_item.id)
components:
  schemas:
    qbd_subtotal_item:
      type: object
      properties:
        id:
          type: string
          description: >-
            The unique identifier assigned by QuickBooks to this subtotal item.
            This ID is unique across all subtotal items but not across different
            QuickBooks object types.
          example: 80000001-1234567890
        objectType:
          type: string
          const: qbd_subtotal_item
          description: The type of object. This value is always `"qbd_subtotal_item"`.
          example: qbd_subtotal_item
        createdAt:
          type: string
          description: >-
            The date and time when this subtotal 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 subtotal 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 subtotal
            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 unique name of this subtotal item, unique
            across all subtotal items.


            **NOTE**: Subtotal items do not have a `fullName` field because they
            are not hierarchical objects, which is why `name` is unique for them
            but not for objects that have parents.
          example: Labor subtotal
        barcode:
          type:
            - string
            - 'null'
          description: The subtotal item's barcode.
          example: '012345678905'
        isActive:
          type: boolean
          description: >-
            Indicates whether this subtotal item is active. Inactive objects are
            typically hidden from views and reports in QuickBooks. Defaults to
            `true`.
          example: true
        description:
          type:
            - string
            - 'null'
          description: >-
            The subtotal item's description that will appear on sales forms that
            include this item.
          example: Subtotal for all labor costs on this project
        specialItemType:
          type:
            - string
            - 'null'
          enum:
            - finance_charge
            - reimbursable_expense_group
            - reimbursable_expense_subtotal
            - null
          description: The type of special item for this subtotal item.
          example: finance_charge
        externalId:
          type:
            - string
            - 'null'
          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
        customFields:
          type: array
          items:
            $ref: '#/components/schemas/qbd_custom_field'
          description: >-
            The custom fields for the subtotal item object, added as
            user-defined data extensions, not included in the standard
            QuickBooks object.
      required:
        - id
        - objectType
        - createdAt
        - updatedAt
        - revisionNumber
        - name
        - barcode
        - isActive
        - description
        - specialItemType
        - externalId
        - customFields
      additionalProperties: false
      title: The Subtotal Item object
      x-conductor-object-type: item
      summary: >-
        A subtotal item calculates the sum of all items above it on a sales
        form, up to the previous subtotal. This is particularly important for
        applying discounts because discounts can only be applied to the line
        directly above them, requiring items to be subtotaled first.
    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}}"`).

````

Built with [Mintlify](https://mintlify.com).