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

# Update an other charge item

> Updates an existing other charge item.



## OpenAPI

````yaml POST /quickbooks-desktop/other-charge-items/{id}
openapi: 3.1.0
info:
  title: Conductor API
  version: 0.0.1
servers:
  - url: https://api.conductor.is/v1
security:
  - BearerAuth: []
paths:
  /quickbooks-desktop/other-charge-items/{id}:
    post:
      summary: Update an other charge item
      description: Updates an existing other charge item.
      parameters:
        - in: path
          name: id
          description: >-
            The QuickBooks-assigned unique identifier of the other charge item
            to update.
          schema:
            type: string
            description: >-
              The QuickBooks-assigned unique identifier of the other charge item
              to update.
            example: 80000001-1234567890
          required: true
        - 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:
                revisionNumber:
                  type: string
                  description: >-
                    The current QuickBooks-assigned revision number of the other
                    charge item object you are updating, which you can get by
                    fetching the object first. 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
                  maxLength: 31
                  description: >-
                    The case-insensitive name of this other charge item. Not
                    guaranteed to be unique because it does not include the
                    names of its hierarchical parent objects like `fullName`
                    does. For example, two other charge items could both have
                    the `name` "Overnight Delivery", but they could have unique
                    `fullName` values, such as "Shipping Charges:Overnight
                    Delivery" and "Misc Fees:Overnight Delivery".


                    Maximum length: 31 characters.
                  example: Overnight Delivery
                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 other charge item's barcode.
                isActive:
                  type: boolean
                  description: >-
                    Indicates whether this other charge item is active. Inactive
                    objects are typically hidden from views and reports in
                    QuickBooks. Defaults to `true`.
                  example: true
                classId:
                  type: string
                  description: >-
                    The other charge 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 other charge item one level above this one in the
                    hierarchy. For example, if this other charge item has a
                    `fullName` of "Shipping Charges:Overnight Delivery", its
                    parent has a `fullName` of "Shipping Charges". If this other
                    charge item is at the top level, this field will be `null`.
                  example: 80000001-1234567890
                salesTaxCodeId:
                  type: string
                  description: >-
                    The default sales-tax code for this other charge 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
                salesOrPurchaseDetails:
                  type: object
                  properties:
                    description:
                      type: string
                      description: A description of this item.
                      example: Hourly Consulting Service
                    price:
                      type: string
                      description: >-
                        The price at which this item is purchased or sold,
                        represented as a decimal string.
                      example: '19.99'
                    pricePercentage:
                      type: string
                      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'
                    postingAccountId:
                      type: string
                      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: 80000001-1234567890
                    updateExistingTransactionsAccount:
                      type: boolean
                      description: >-
                        When `true`, applies the new account (specified by the
                        `accountId` field) to all existing transactions
                        associated with this item. This updates historical data
                        and should be used with caution. The update will fail if
                        any affected transaction falls within a closed
                        accounting period. If this parameter is not specified,
                        QuickBooks will prompt the user before making any
                        changes.
                      example: false
                  additionalProperties: false
                  description: >-
                    Details for other charge 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**: You cannot specify both
                    `salesOrPurchaseDetails` and `salesAndPurchaseDetails` when
                    modifying an other charge item because an item cannot have
                    both configurations.
                salesAndPurchaseDetails:
                  type: object
                  properties:
                    salesDescription:
                      type: string
                      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:
                      type: string
                      description: >-
                        The price at which this item is sold to customers,
                        represented as a decimal string.
                      example: '19.99'
                    incomeAccountId:
                      type: string
                      description: >-
                        The income account used to track revenue from sales of
                        this item.
                      example: 80000001-1234567890
                    purchaseDescription:
                      type: string
                      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:
                      type: string
                      description: >-
                        The cost at which this item is purchased from vendors,
                        represented as a decimal string.
                      example: '15.75'
                    purchaseTaxCodeId:
                      type: string
                      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: 80000001-1234567890
                    expenseAccountId:
                      type: string
                      description: >-
                        The expense account used to track costs from purchases
                        of this item.
                      example: 80000001-1234567890
                    preferredVendorId:
                      type: string
                      description: >-
                        The preferred vendor from whom this item is typically
                        purchased.
                      example: 80000001-1234567890
                    updateExistingTransactionsIncomeAccount:
                      type: boolean
                      description: >-
                        When `true`, applies the new income account (specified
                        by the `incomeAccountId` field) to all existing
                        transactions that use this item. This updates historical
                        data and should be used with caution. The update will
                        fail if any affected transaction falls within a closed
                        accounting period. If this parameter is not specified,
                        QuickBooks will prompt the user before making any
                        changes.
                      example: false
                    updateExistingTransactionsExpenseAccount:
                      type: boolean
                      description: >-
                        When `true`, applies the new expense account (specified
                        by the `expenseAccountId` field) to all existing
                        transactions that use this item. This updates historical
                        data and should be used with caution. The update will
                        fail if any affected transaction falls within a closed
                        accounting period. If this parameter is not specified,
                        QuickBooks will prompt the user before making any
                        changes.
                      example: false
                  additionalProperties: false
                  description: >-
                    Details for other charge items that are both purchased and
                    sold, such as reimbursable expenses or inventory items that
                    are bought from vendors and sold to customers.


                    **IMPORTANT**: You cannot specify both
                    `salesAndPurchaseDetails` and `salesOrPurchaseDetails` when
                    modifying an other charge item because an item cannot have
                    both configurations.
              required:
                - revisionNumber
              additionalProperties: false
      responses:
        '200':
          description: Returns the updated other charge 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_other_charge_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 otherChargeItem = await
            conductor.qbd.otherChargeItems.update('80000001-1234567890', {
              revisionNumber: '1721172183',
              conductorEndUserId: 'end_usr_1234567abcdefg',
            });


            console.log(otherChargeItem.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
            )
            other_charge_item = conductor.qbd.other_charge_items.update(
                id="80000001-1234567890",
                revision_number="1721172183",
                conductor_end_user_id="end_usr_1234567abcdefg",
            )
            print(other_charge_item.id)
components:
  schemas:
    qbd_other_charge_item:
      type: object
      properties:
        id:
          type: string
          description: >-
            The unique identifier assigned by QuickBooks to this other charge
            item. This ID is unique across all other charge items but not across
            different QuickBooks object types.
          example: 80000001-1234567890
        objectType:
          type: string
          const: qbd_other_charge_item
          description: The type of object. This value is always `"qbd_other_charge_item"`.
          example: qbd_other_charge_item
        createdAt:
          type: string
          description: >-
            The date and time when this other charge 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 other charge 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 other charge
            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 other charge item. Not guaranteed
            to be unique because it does not include the names of its
            hierarchical parent objects like `fullName` does. For example, two
            other charge items could both have the `name` "Overnight Delivery",
            but they could have unique `fullName` values, such as "Shipping
            Charges:Overnight Delivery" and "Misc Fees:Overnight Delivery".
          example: Overnight Delivery
        fullName:
          type: string
          description: >-
            The case-insensitive fully-qualified unique name of this other
            charge item, formed by combining the names of its hierarchical
            parent objects with its own `name`, separated by colons. For
            example, if an other charge item is under "Shipping Charges" and has
            the `name` "Overnight Delivery", its `fullName` would be "Shipping
            Charges:Overnight Delivery".


            **NOTE**: Unlike `name`, `fullName` is guaranteed to be unique
            across all other charge item objects. However, `fullName` can still
            be arbitrarily changed by the QuickBooks user when they modify the
            underlying `name` field.
          example: Shipping Charges:Overnight Delivery
        barcode:
          type:
            - string
            - 'null'
          description: The other charge item's barcode.
          example: '012345678905'
        isActive:
          type: boolean
          description: >-
            Indicates whether this other charge 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 other charge 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: Shipping
        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 other charge item one level above this one in the
            hierarchy. For example, if this other charge item has a `fullName`
            of "Shipping Charges:Overnight Delivery", its parent has a
            `fullName` of "Shipping Charges". If this other charge item is at
            the top level, this field will be `null`.
          example:
            id: 80000001-1234567890
            fullName: Shipping Charges
        sublevel:
          type: number
          description: >-
            The depth level of this other charge item in the hierarchy. A
            top-level other charge item has a `sublevel` of 0; each subsequent
            sublevel increases this number by 1. For example, an other charge
            item with a `fullName` of "Shipping Charges:Overnight Delivery"
            would have a `sublevel` of 1.
          example: 1
        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 other charge 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
        salesOrPurchaseDetails:
          oneOf:
            - $ref: '#/components/schemas/qbd_sales_or_purchase_details'
            - type: 'null'
          description: >-
            Details for other charge 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**: An other charge item will have either
            `salesAndPurchaseDetails` or `salesOrPurchaseDetails`, but never
            both because an item cannot have both configurations.
        salesAndPurchaseDetails:
          oneOf:
            - $ref: '#/components/schemas/qbd_sales_and_purchase_details'
            - type: 'null'
          description: >-
            Details for other charge items that are both purchased and sold,
            such as reimbursable expenses or inventory items that are bought
            from vendors and sold to customers.


            **IMPORTANT**: An other charge item will have either
            `salesAndPurchaseDetails` or `salesOrPurchaseDetails`, but never
            both because an item cannot have both configurations.
        specialItemType:
          type:
            - string
            - 'null'
          enum:
            - finance_charge
            - reimbursable_expense_group
            - reimbursable_expense_subtotal
            - null
          description: The type of special item for this other charge 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 other charge 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
        - salesTaxCode
        - salesOrPurchaseDetails
        - salesAndPurchaseDetails
        - specialItemType
        - externalId
        - customFields
      additionalProperties: false
      title: The Other Charge Item object
      x-conductor-object-type: item
      summary: >-
        An other charge item is a miscellaneous charge that does not fall into
        the categories of service, labor, materials, or parts. Examples include
        delivery charges, setup fees, and service charges. You can use other
        charge items to add fees or credits to invoices, sales receipts, and
        bills without tracking quantity.
    qbd_sales_or_purchase_details:
      type: object
      properties:
        description:
          type:
            - string
            - 'null'
          description: A description of this item.
          example: Hourly Consulting Service
        price:
          type:
            - string
            - 'null'
          description: >-
            The price at which this item is purchased or sold, represented as a
            decimal string.
          example: '19.99'
        pricePercentage:
          type:
            - string
            - '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:
          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 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:
          type:
            - string
            - '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:
          type:
            - string
            - 'null'
          description: >-
            The price at which this item is sold to customers, represented as a
            decimal string.
          example: '19.99'
        incomeAccount:
          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 income account used to track revenue from sales of this item.
          example:
            id: 80000001-1234567890
            fullName: Income:Product Sales
        purchaseDescription:
          type:
            - string
            - '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:
          type:
            - string
            - 'null'
          description: >-
            The cost at which this item is purchased from vendors, represented
            as a decimal string.
          example: '15.75'
        purchaseTaxCode:
          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 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:
          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 expense account used to track costs from purchases of this item.
          example:
            id: 80000001-1234567890
            fullName: Expenses:Cost of Goods Sold
        preferredVendor:
          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 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}}"`).

````

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