> ## 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 discount item

> Creates a discount item that subtracts either a percentage or fixed amount from transaction totals. Percentage discounts only affect the preceding line, while fixed-amount discounts reduce the accumulated amount above them unless you bound the target lines with a subtotal item.



## OpenAPI

````yaml POST /quickbooks-desktop/discount-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/discount-items:
    post:
      summary: Create a discount item
      description: >-
        Creates a discount item that subtracts either a percentage or fixed
        amount from transaction totals. Percentage discounts only affect the
        preceding line, while fixed-amount discounts reduce the accumulated
        amount above them unless you bound the target lines with a 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 name of this discount item. Not
                    guaranteed to be unique because it does not include the
                    names of its hierarchical parent objects like `fullName`
                    does. For example, two discount items could both have the
                    `name` "10% labor discount", but they could have unique
                    `fullName` values, such as "Discounts:10% labor discount"
                    and "Promotions:10% labor discount".


                    Maximum length: 31 characters.
                  example: 10% labor discount
                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 discount item's barcode.
                isActive:
                  type: boolean
                  description: >-
                    Indicates whether this discount item is active. Inactive
                    objects are typically hidden from views and reports in
                    QuickBooks. Defaults to `true`.
                  example: true
                  default: true
                classId:
                  type: string
                  description: >-
                    The discount 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: 80000001-1234567890
                parentId:
                  type: string
                  description: >-
                    The parent discount item one level above this one in the
                    hierarchy. For example, if this discount item has a
                    `fullName` of "Discounts:10% labor discount", its parent has
                    a `fullName` of "Discounts". If this discount item is at the
                    top level, this field will be `null`.
                  example: 80000001-1234567890
                description:
                  type: string
                  description: >-
                    The discount item's description that will appear on sales
                    forms that include this item.
                  example: 10% discount for early payment on labor charges
                salesTaxCodeId:
                  type: string
                  description: >-
                    The default sales-tax code for this discount 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. If QuickBooks is not set up to charge sales tax
                    (via the "Do You Charge Sales Tax?" preference), it will
                    assign the default non-taxable code to all sales.
                  example: 80000001-1234567890
                discountRate:
                  type: string
                  description: >-
                    The monetary amount to subtract from the total or subtotal
                    when applying this discount item to a transaction.


                    **NOTE**: A flat rate discount applies to ALL lines recorded
                    above it and distributes the discount amount equally across
                    those lines, which affects tax calculations. For example, a
                    $10 discount applied to a $100 taxable item and $100
                    non-taxable item would result in a $5 taxable discount and
                    $5 non-taxable discount.
                  example: '25.00'
                discountRatePercent:
                  type: string
                  description: >-
                    The percentage amount to subtract from the total or subtotal
                    when applying this discount item to a transaction.


                    **NOTE**: A percentage discount only applies to the line
                    immediately above it, so tax implications only affect that
                    specific line.
                  example: '10.5'
                accountId:
                  type: string
                  description: >-
                    The posting account to which transactions involving this
                    discount item are posted for tracking discounts.
                  example: 80000001-1234567890
                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
                - accountId
              additionalProperties: false
      responses:
        '200':
          description: Returns the newly created discount 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_discount_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 discountItem = await conductor.qbd.discountItems.create({
              accountId: '80000001-1234567890',
              name: '10% labor discount',
              conductorEndUserId: 'end_usr_1234567abcdefg',
            });

            console.log(discountItem.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
            )
            discount_item = conductor.qbd.discount_items.create(
                account_id="80000001-1234567890",
                name="10% labor discount",
                conductor_end_user_id="end_usr_1234567abcdefg",
            )
            print(discount_item.id)
components:
  schemas:
    qbd_discount_item:
      type: object
      properties:
        id:
          type: string
          description: >-
            The unique identifier assigned by QuickBooks to this discount item.
            This ID is unique across all discount items but not across different
            QuickBooks object types.
          example: 80000001-1234567890
        objectType:
          type: string
          const: qbd_discount_item
          description: The type of object. This value is always `"qbd_discount_item"`.
          example: qbd_discount_item
        createdAt:
          type: string
          description: >-
            The date and time when this discount 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 discount 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 discount
            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 discount item. Not guaranteed to
            be unique because it does not include the names of its hierarchical
            parent objects like `fullName` does. For example, two discount items
            could both have the `name` "10% labor discount", but they could have
            unique `fullName` values, such as "Discounts:10% labor discount" and
            "Promotions:10% labor discount".
          example: 10% labor discount
        fullName:
          type: string
          description: >-
            The case-insensitive fully-qualified unique name of this discount
            item, formed by combining the names of its hierarchical parent
            objects with its own `name`, separated by colons. For example, if a
            discount item is under "Discounts" and has the `name` "10% labor
            discount", its `fullName` would be "Discounts:10% labor discount".


            **NOTE**: Unlike `name`, `fullName` is guaranteed to be unique
            across all discount item objects. However, `fullName` can still be
            arbitrarily changed by the QuickBooks user when they modify the
            underlying `name` field.
          example: Discounts:10% labor discount
        barcode:
          type:
            - string
            - 'null'
          description: The discount item's barcode.
          example: '012345678905'
        isActive:
          type: boolean
          description: >-
            Indicates whether this discount item is active. Inactive objects are
            typically hidden from views and reports in QuickBooks. Defaults to
            `true`.
          example: true
        class:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - '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:
              type:
                - string
                - '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
          description: >-
            The discount 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: Discounts
        parent:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - '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:
              type:
                - string
                - '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
          description: >-
            The parent discount item one level above this one in the hierarchy.
            For example, if this discount item has a `fullName` of
            "Discounts:10% labor discount", its parent has a `fullName` of
            "Discounts". If this discount item is at the top level, this field
            will be `null`.
          example:
            id: 80000001-1234567890
            fullName: Discounts
        sublevel:
          type: number
          description: >-
            The depth level of this discount item in the hierarchy. A top-level
            discount item has a `sublevel` of 0; each subsequent sublevel
            increases this number by 1. For example, a discount item with a
            `fullName` of "Discounts:10% labor discount" would have a `sublevel`
            of 1.
          example: 1
        description:
          type:
            - string
            - 'null'
          description: >-
            The discount item's description that will appear on sales forms that
            include this item.
          example: 10% discount for early payment on labor charges
        salesTaxCode:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - '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:
              type:
                - string
                - '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
          description: >-
            The default sales-tax code for this discount 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. If QuickBooks is not
            set up to charge sales tax (via the "Do You Charge Sales Tax?"
            preference), it will assign the default non-taxable code to all
            sales.
          example:
            id: 80000001-1234567890
            fullName: Non
        discountRate:
          type:
            - string
            - 'null'
          description: >-
            The monetary amount to subtract from the total or subtotal when
            applying this discount item to a transaction.


            **NOTE**: A flat rate discount applies to ALL lines recorded above
            it and distributes the discount amount equally across those lines,
            which affects tax calculations. For example, a $10 discount applied
            to a $100 taxable item and $100 non-taxable item would result in a
            $5 taxable discount and $5 non-taxable discount.
          example: '25.00'
        discountRatePercent:
          type:
            - string
            - 'null'
          description: >-
            The percentage amount to subtract from the total or subtotal when
            applying this discount item to a transaction.


            **NOTE**: A percentage discount only applies to the line immediately
            above it, so tax implications only affect that specific line.
          example: '10.5'
        account:
          type: object
          properties:
            id:
              type:
                - string
                - '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:
              type:
                - string
                - '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
          description: >-
            The posting account to which transactions involving this discount
            item are posted for tracking discounts.
          example:
            id: 80000001-1234567890
            fullName: Discounts
        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 discount 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
        - description
        - salesTaxCode
        - discountRate
        - discountRatePercent
        - account
        - externalId
        - customFields
      additionalProperties: false
      title: The Discount Item object
      x-conductor-object-type: item
      summary: >-
        A discount item applies a percentage or fixed amount reduction to the
        total or subtotal of the line directly above it. Items must be
        subtotaled first because discounts only affect the preceding line.
        Unlike discounts for early payments, which use standard-terms or
        date-driven-terms. Important: Never specify a quantity in a transaction
        when using a discount item.
    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).