---
title: "Update an inventory adjustment"
method: POST
path: "/quickbooks-desktop/inventory-adjustments/{id}"
---

# Update an inventory adjustment

`POST /quickbooks-desktop/inventory-adjustments/{id}`

Updates an existing inventory adjustment.

**NOTE:** If you include `lines`, QuickBooks Desktop replaces that line list with the array you send, so include unchanged lines you want to keep and use `id: "-1"` for new lines.

## Path parameters

- `id` string, required — The QuickBooks-assigned unique identifier of the inventory adjustment to update.

## Headers

- `Conductor-End-User-Id` string, required — The ID of the End-User to receive this request.

## Request body

- object
  - `revisionNumber` string, required — The current QuickBooks-assigned revision number of the inventory adjustment 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.
  - `accountId` string — The account to which this inventory adjustment is posted for tracking inventory value changes.
  - `inventorySiteId` string — The site location where inventory for the item associated with this inventory adjustment is stored.
  - `transactionDate` string, date — The date of this inventory adjustment, in ISO 8601 format (YYYY-MM-DD).
  - `refNumber` string — The case-sensitive user-defined reference number for this inventory adjustment, which can be used to identify the transaction in QuickBooks. This value is not required to be unique and can be arbitrarily changed by the QuickBooks user. Maximum length: 11 characters.
  - `customerId` string — The customer or customer-job associated with this inventory adjustment.
  - `classId` string — The inventory adjustment'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. A class defined here is automatically used in this inventory adjustment's line items unless overridden at the line item level.
  - `memo` string — A memo or note for this inventory adjustment.
  - `lines` object[] — The inventory adjustment's item lines, each representing the adjustment of an inventory item's quantity, value, serial number, or lot number. **IMPORTANT**: 1. Including this array in your update request will **REPLACE** all existing item lines for the inventory adjustment with this array. To keep any existing item lines, you must include them in this array even if they have not changed. **Any item lines not included will be removed.** 2. To add a new item line, include it here with the `id` field set to `-1`. 3. If you do not wish to modify any item lines, omit this field entirely to keep them unchanged.
    - `id` string, required — The QuickBooks-assigned unique identifier of an existing inventory adjustment line you wish to retain or update. **IMPORTANT**: Set this field to `-1` for new inventory adjustment lines you wish to add.
    - `itemId` string — The inventory item associated with this inventory adjustment line.
    - `serialNumber` string — The serial number of the item associated with this inventory adjustment line. This is used for tracking individual units of serialized inventory items.
    - `lotNumber` string — The lot number of the item associated with this inventory adjustment line. Used for tracking groups of inventory items that are purchased or manufactured together.
    - `adjustCount` number — The amount to adjust the count of the inventory item associated with this inventory adjustment line.
    - `expirationDate` string, date — The expiration date for the serial number or lot number of the item associated with this inventory adjustment line, in ISO 8601 format (YYYY-MM-DD). This is particularly relevant for perishable or time-sensitive inventory items. Note that this field is only supported on QuickBooks Desktop 2023 or later.
    - `inventorySiteLocationId` string — The specific location (e.g., bin or shelf) within the inventory site where the item associated with this inventory adjustment line is stored.
    - `quantityDifference` number — Either a positive or negative number that shows the change in quantity for the inventory item associated with this inventory adjustment line. A positive number increases the quantity, while a negative number decreases it.
    - `valueDifference` number — Either a positive or negative number that shows the change in the total value of the entire stock of the inventory item associated with this inventory adjustment line. A positive number increases the value, while a negative number decreases it.

## Response `200`

Returns the updated inventory adjustment.

- QbdInventoryAdjustment
  - `id` string, required — The unique identifier assigned by QuickBooks to this inventory adjustment. This ID is unique across all transaction types.
  - `objectType` 'qbd_inventory_adjustment', required — The type of object. This value is always `"qbd_inventory_adjustment"`.
  - `createdAt` string, required — The date and time when this inventory adjustment 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.
  - `updatedAt` string, required — The date and time when this inventory adjustment 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.
  - `revisionNumber` string, required — The current QuickBooks-assigned revision number of this inventory adjustment 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.
  - `account` object, required — The account to which this inventory adjustment is posted for tracking inventory value changes.
    - `id` string, nullable, required — 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.
    - `fullName` string, nullable, required — 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.
  - `inventorySite` object, nullable, required — The site location where inventory for the item associated with this inventory adjustment is stored.
    - `id` string, nullable, required — 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.
    - `fullName` string, nullable, required — 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.
  - `transactionDate` string, date, required — The date of this inventory adjustment, in ISO 8601 format (YYYY-MM-DD).
  - `refNumber` string, nullable, required — The case-sensitive user-defined reference number for this inventory adjustment, which can be used to identify the transaction in QuickBooks. This value is not required to be unique and can be arbitrarily changed by the QuickBooks user.
  - `customer` object, nullable, required — The customer or customer-job associated with this inventory adjustment.
    - `id` string, nullable, required — 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.
    - `fullName` string, nullable, required — 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.
  - `class` object, nullable, required — The inventory adjustment'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. A class defined here is automatically used in this inventory adjustment's line items unless overridden at the line item level.
    - `id` string, nullable, required — 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.
    - `fullName` string, nullable, required — 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.
  - `memo` string, nullable, required — A memo or note for this inventory adjustment.
  - `externalId` string, nullable, required — 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.
  - `lines` QbdInventoryAdjustmentLine[], required — The inventory adjustment's item lines, each representing the adjustment of an inventory item's quantity, value, serial number, or lot number.
    - `id` string, required — The unique identifier assigned by QuickBooks to this inventory adjustment line. This ID is unique across all transaction line types.
    - `objectType` 'qbd_inventory_adjustment_line', required — The type of object. This value is always `"qbd_inventory_adjustment_line"`.
    - `item` object, nullable, required — The inventory item associated with this inventory adjustment line.
      - `id` string, nullable, required — 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.
      - `fullName` string, nullable, required — 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.
    - `serialNumber` string, nullable, required — The serial number of the item associated with this inventory adjustment line. This is used for tracking individual units of serialized inventory items.
    - `serialNumberAction` 'added' | 'removed', nullable, required — Indicates whether this inventory adjustment line's serial number was added or removed from the inventory.
    - `lotNumber` string, nullable, required — The lot number of the item associated with this inventory adjustment line. Used for tracking groups of inventory items that are purchased or manufactured together.
    - `expirationDate` string, date, nullable, required — The expiration date for the serial number or lot number of the item associated with this inventory adjustment line, in ISO 8601 format (YYYY-MM-DD). This is particularly relevant for perishable or time-sensitive inventory items. Note that this field is only supported on QuickBooks Desktop 2023 or later.
    - `inventorySiteLocation` object, nullable, required — The specific location (e.g., bin or shelf) within the inventory site where the item associated with this inventory adjustment line is stored.
      - `id` string, nullable, required — 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.
      - `fullName` string, nullable, required — 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.
    - `quantityDifference` number, nullable, required — Either a positive or negative number that shows the change in quantity for the inventory item associated with this inventory adjustment line. A positive number increases the quantity, while a negative number decreases it.
    - `valueDifference` number, nullable, required — Either a positive or negative number that shows the change in the total value of the entire stock of the inventory item associated with this inventory adjustment line. A positive number increases the value, while a negative number decreases it.
  - `customFields` QbdCustomField[], required — The custom fields for the inventory adjustment object, added as user-defined data extensions, not included in the standard QuickBooks object.
    - `ownerId` string, required — 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.
    - `name` string, required — 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.
    - `type` 'amount_type' | 'date_time_type' | 'integer_type' | 'percent_type' | 'price_type' | 'quantity_type' | 'string_1024_type' | 'string_255_type', required — The data type of this custom field.
    - `value` string, required — The value of this custom field. The maximum length depends on the field's data type.

---

[API](https://skmtc.net/conductor-is/apis/conductor-api.md) · [All operations](https://skmtc.net/conductor-is/apis/conductor-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/conductor-is/conductor-api/revisions/0b07b3ebe160/schema)
