Update an inventory adjustment

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.

post/quickbooks-desktop/inventory-adjustments/{id}

Path parameters

idstring required

The QuickBooks-assigned unique identifier of the inventory adjustment to update.

Example:123ABC-1234567890

The QuickBooks-assigned unique identifier of the inventory adjustment to update.

Headers

Conductor-End-User-Idstring required

The ID of the End-User to receive this request.

Example:end_usr_1234567abcdefg

The ID of the End-User to receive this request.

Request body

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

accountIdstring

The account to which this inventory adjustment is posted for tracking inventory value changes.

inventorySiteIdstring

The site location where inventory for the item associated with this inventory adjustment is stored.

transactionDatestring date

The date of this inventory adjustment, in ISO 8601 format (YYYY-MM-DD).

refNumberstring

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.

customerIdstring

The customer or customer-job associated with this inventory adjustment.

classIdstring

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.

memostring

A memo or note for this inventory adjustment.

Example request

{
  "revisionNumber": "1721172183",
  "accountId": "80000001-1234567890",
  "inventorySiteId": "80000001-1234567890",
  "transactionDate": "2024-10-01",
  "refNumber": "INVADJ-1234",
  "customerId": "80000001-1234567890",
  "classId": "80000001-1234567890",
  "memo": "Adjusted quantity due to physical count discrepancy",
  "lines": [
    {
      "id": "456DEF-1234567890",
      "itemId": "80000001-1234567890",
      "serialNumber": "SN1234567890",
      "lotNumber": "LOT2023-001",
      "adjustCount": 2,
      "expirationDate": "2025-12-31",
      "inventorySiteLocationId": "80000001-1234567890",
      "quantityDifference": 5,
      "valueDifference": 7
    }
  ]
}

Response

Returns the updated inventory adjustment.

idstring 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".

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

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

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

transactionDatestring date required

The date of this inventory adjustment, in ISO 8601 format (YYYY-MM-DD).

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

memostring nullable required

A memo or note for this inventory adjustment.

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

Example response

{
  "id": "123ABC-1234567890",
  "objectType": "qbd_inventory_adjustment",
  "createdAt": "2025-01-01T12:34:56+00:00",
  "updatedAt": "2025-02-01T12:34:56+00:00",
  "revisionNumber": "1721172183",
  "account": {
    "id": "80000001-1234567890",
    "fullName": "Inventory Shrinkage"
  },
  "inventorySite": {
    "id": "80000001-1234567890",
    "fullName": "Main Warehouse"
  },
  "transactionDate": "2024-10-01",
  "refNumber": "INVADJ-1234",
  "customer": {
    "id": "80000001-1234567890",
    "fullName": "Acme Corporation"
  },
  "class": {
    "id": "80000001-1234567890",
    "fullName": "Inventory Adjustment"
  },
  "memo": "Adjusted quantity due to physical count discrepancy",
  "externalId": "12345678-abcd-1234-abcd-1234567890ab",
  "lines": [
    {
      "id": "456DEF-1234567890",
      "objectType": "qbd_inventory_adjustment_line",
      "item": {
        "id": "80000001-1234567890",
        "fullName": "Widget A"
      },
      "serialNumber": "SN1234567890",
      "serialNumberAction": "added",
      "lotNumber": "LOT2023-001",
      "expirationDate": "2025-12-31",
      "inventorySiteLocation": {
        "id": "80000001-1234567890",
        "fullName": "Aisle 3, Shelf B"
      },
      "quantityDifference": 5,
      "valueDifference": 7
    }
  ],
  "customFields": [
    {
      "ownerId": "0",
      "name": "Customer Rating",
      "type": "string_1024_type",
      "value": "Premium"
    }
  ]
}

Changes

Changed in 5 of the 46 revisions of this API.751246

    • for the path request parameter id, the maxLength was set to 36

      request-parameter-max-length-set

    • the accountId request property's maxLength was set to 36

      request-property-max-length-set

    • the classId request property's maxLength was set to 36

      request-property-max-length-set

    • the customerId request property's maxLength was set to 36

      request-property-max-length-set

    • the inventorySiteId request property's maxLength was set to 36

      request-property-max-length-set

    • the lines/items/id request property's maxLength was set to 36

      request-property-max-length-set

    • the lines/items/inventorySiteLocationId request property's maxLength was set to 36

      request-property-max-length-set

    • the lines/items/itemId request property's maxLength was set to 36

      request-property-max-length-set

    • the refNumber request property's maxLength was set to 11

      request-property-max-length-set

  • 10d4e9ebd1df268See the full diff
    • response property account/fullName list-of-types was widened by adding types null to media type application/json of response 200

      response-property-list-of-types-widened

    • response property account/id list-of-types was widened by adding types null to media type application/json of response 200

      response-property-list-of-types-widened

    • response property externalId list-of-types was widened by adding types null to media type application/json of response 200

      response-property-list-of-types-widened

    • response property lines/items/expirationDate list-of-types was widened by adding types null to media type application/json of response 200

      response-property-list-of-types-widened

    • response property lines/items/lotNumber list-of-types was widened by adding types null to media type application/json of response 200

      response-property-list-of-types-widened

    • response property lines/items/quantityDifference list-of-types was widened by adding types null to media type application/json of response 200

      response-property-list-of-types-widened

    • response property lines/items/serialNumber list-of-types was widened by adding types null to media type application/json of response 200

      response-property-list-of-types-widened

    • response property lines/items/serialNumberAction list-of-types was widened by adding types null to media type application/json of response 200

      response-property-list-of-types-widened

    • response property lines/items/valueDifference list-of-types was widened by adding types null to media type application/json of response 200

      response-property-list-of-types-widened

    • response property memo list-of-types was widened by adding types null to media type application/json of response 200

      response-property-list-of-types-widened

    • response property refNumber list-of-types was widened by adding types null to media type application/json of response 200

      response-property-list-of-types-widened

    • the class response's property type/format changed from object null/ to / for status 200

      response-property-type-changed

    • the customer response's property type/format changed from object null/ to / for status 200

      response-property-type-changed

    • the inventorySite response's property type/format changed from object null/ to / for status 200

      response-property-type-changed

    • the lines/items/inventorySiteLocation response's property type/format changed from object null/ to / for status 200

      response-property-type-changed

    • the lines/items/item response's property type/format changed from object null/ to / for status 200

      response-property-type-changed

    • removed the required property class/fullName from the response with the 200 status

      response-required-property-removed

    • removed the required property class/id from the response with the 200 status

      response-required-property-removed

    • removed the required property customer/fullName from the response with the 200 status

      response-required-property-removed

    • removed the required property customer/id from the response with the 200 status

      response-required-property-removed

    • removed the required property inventorySite/fullName from the response with the 200 status

      response-required-property-removed

    • removed the required property inventorySite/id from the response with the 200 status

      response-required-property-removed

    • removed the required property lines/items/inventorySiteLocation/fullName from the response with the 200 status

      response-required-property-removed

    • removed the required property lines/items/inventorySiteLocation/id from the response with the 200 status

      response-required-property-removed

    • removed the required property lines/items/item/fullName from the response with the 200 status

      response-required-property-removed

    • removed the required property lines/items/item/id from the response with the 200 status

      response-required-property-removed

    • added subschema #1 subschema #2 to the class response property anyOf list for the response status 200

      response-property-any-of-added

    • added subschema #1 subschema #2 to the customer response property anyOf list for the response status 200

      response-property-any-of-added

    • added subschema #1 subschema #2 to the inventorySite response property anyOf list for the response status 200

      response-property-any-of-added

    • added subschema #1 subschema #2 to the lines/items/inventorySiteLocation response property anyOf list for the response status 200

      response-property-any-of-added

    • added subschema #1 subschema #2 to the lines/items/item response property anyOf list for the response status 200

      response-property-any-of-added

    • removed the added enum value from the lines/items/serialNumberAction response property for the response status 200

      response-property-enum-value-removed

    • removed the removed enum value from the lines/items/serialNumberAction response property for the response status 200

      response-property-enum-value-removed

    • removed the undefined enum value from the lines/items/serialNumberAction response property for the response status 200

      response-property-enum-value-removed

  • 8e0b7df2044d21329See the full diff
    • the response property account/fullName became nullable for the status 200

      response-property-became-nullable

    • the response property account/id became nullable for the status 200

      response-property-became-nullable

    • the response property class became nullable for the status 200

      response-property-became-nullable

    • the response property customer became nullable for the status 200

      response-property-became-nullable

    • the response property externalId became nullable for the status 200

      response-property-became-nullable

    • the response property inventorySite became nullable for the status 200

      response-property-became-nullable

    • the response property lines/items/expirationDate became nullable for the status 200

      response-property-became-nullable

    • the response property lines/items/inventorySiteLocation became nullable for the status 200

      response-property-became-nullable

    • the response property lines/items/item became nullable for the status 200

      response-property-became-nullable

    • the response property lines/items/lotNumber became nullable for the status 200

      response-property-became-nullable

    • the response property lines/items/quantityDifference became nullable for the status 200

      response-property-became-nullable

    • the response property lines/items/serialNumber became nullable for the status 200

      response-property-became-nullable

    • the response property lines/items/serialNumberAction became nullable for the status 200

      response-property-became-nullable

    • the response property lines/items/valueDifference became nullable for the status 200

      response-property-became-nullable

    • the response property memo became nullable for the status 200

      response-property-became-nullable

    • the response property refNumber became nullable for the status 200

      response-property-became-nullable

    • the class response's property type/format changed from / to object null/ for status 200

      response-property-type-changed

    • the customer response's property type/format changed from / to object null/ for status 200

      response-property-type-changed

    • the inventorySite response's property type/format changed from / to object null/ for status 200

      response-property-type-changed

    • the lines/items/inventorySiteLocation response's property type/format changed from / to object null/ for status 200

      response-property-type-changed

    • the lines/items/item response's property type/format changed from / to object null/ for status 200

      response-property-type-changed

    • added the new added enum value to the lines/items/serialNumberAction response property for the response status 200

      response-property-enum-value-added

    • added the new removed enum value to the lines/items/serialNumberAction response property for the response status 200

      response-property-enum-value-added

    • added the new undefined enum value to the lines/items/serialNumberAction response property for the response status 200

      response-property-enum-value-added

    • removed the pattern ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$ from the request property lines/items/expirationDate

      request-property-pattern-removed

    • removed the pattern ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$ from the request property transactionDate

      request-property-pattern-removed

    • removed subschema #1 subschema #2 from the class response property anyOf list for the response status 200

      response-property-any-of-removed

    • removed subschema #1 subschema #2 from the customer response property anyOf list for the response status 200

      response-property-any-of-removed

    • removed subschema #1 subschema #2 from the inventorySite response property anyOf list for the response status 200

      response-property-any-of-removed

    • removed subschema #1 subschema #2 from the lines/items/inventorySiteLocation response property anyOf list for the response status 200

      response-property-any-of-removed

    • removed subschema #1 subschema #2 from the lines/items/item response property anyOf list for the response status 200

      response-property-any-of-removed

    • response property account/fullName list-of-types was narrowed by removing types null from media type application/json of response 200

      response-property-list-of-types-narrowed

    • response property account/id list-of-types was narrowed by removing types null from media type application/json of response 200

      response-property-list-of-types-narrowed

    • response property externalId list-of-types was narrowed by removing types null from media type application/json of response 200

      response-property-list-of-types-narrowed

    • response property lines/items/expirationDate list-of-types was narrowed by removing types null from media type application/json of response 200

      response-property-list-of-types-narrowed

    • response property lines/items/lotNumber list-of-types was narrowed by removing types null from media type application/json of response 200

      response-property-list-of-types-narrowed

    • response property lines/items/quantityDifference list-of-types was narrowed by removing types null from media type application/json of response 200

      response-property-list-of-types-narrowed

    • response property lines/items/serialNumber list-of-types was narrowed by removing types null from media type application/json of response 200

      response-property-list-of-types-narrowed

    • response property lines/items/serialNumberAction list-of-types was narrowed by removing types null from media type application/json of response 200

      response-property-list-of-types-narrowed

    • response property lines/items/valueDifference list-of-types was narrowed by removing types null from media type application/json of response 200

      response-property-list-of-types-narrowed

    • response property memo list-of-types was narrowed by removing types null from media type application/json of response 200

      response-property-list-of-types-narrowed

    • response property refNumber list-of-types was narrowed by removing types null from media type application/json of response 200

      response-property-list-of-types-narrowed

    • the transactionDate response's property pattern ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$ was removed for the status 200

      response-property-pattern-removed

    • added the required property class/fullName to the response with the 200 status

      response-required-property-added

    • added the required property class/id to the response with the 200 status

      response-required-property-added

    • added the required property customer/fullName to the response with the 200 status

      response-required-property-added

    • added the required property customer/id to the response with the 200 status

      response-required-property-added

    • added the required property inventorySite/fullName to the response with the 200 status

      response-required-property-added

    • added the required property inventorySite/id to the response with the 200 status

      response-required-property-added

    • added the required property lines/items/inventorySiteLocation/fullName to the response with the 200 status

      response-required-property-added

    • added the required property lines/items/inventorySiteLocation/id to the response with the 200 status

      response-required-property-added

    • added the required property lines/items/item/fullName to the response with the 200 status

      response-required-property-added

    • added the required property lines/items/item/id to the response with the 200 status

      response-required-property-added

  • 5f832f695675289See the full diff
    • added the pattern ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$ to the request property lines/items/expirationDate

      request-property-pattern-added

    • added the pattern ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$ to the request property transactionDate

      request-property-pattern-added

    • response property account/fullName list-of-types was widened by adding types null to media type application/json of response 200

      response-property-list-of-types-widened

    • response property account/id list-of-types was widened by adding types null to media type application/json of response 200

      response-property-list-of-types-widened

    • response property externalId list-of-types was widened by adding types null to media type application/json of response 200

      response-property-list-of-types-widened

    • response property lines/items/expirationDate list-of-types was widened by adding types null to media type application/json of response 200

      response-property-list-of-types-widened

    • response property lines/items/lotNumber list-of-types was widened by adding types null to media type application/json of response 200

      response-property-list-of-types-widened

    • response property lines/items/quantityDifference list-of-types was widened by adding types null to media type application/json of response 200

      response-property-list-of-types-widened

    • response property lines/items/serialNumber list-of-types was widened by adding types null to media type application/json of response 200

      response-property-list-of-types-widened

    • response property lines/items/serialNumberAction list-of-types was widened by adding types null to media type application/json of response 200

      response-property-list-of-types-widened

    • response property lines/items/valueDifference list-of-types was widened by adding types null to media type application/json of response 200

      response-property-list-of-types-widened

    • response property memo list-of-types was widened by adding types null to media type application/json of response 200

      response-property-list-of-types-widened

    • response property refNumber list-of-types was widened by adding types null to media type application/json of response 200

      response-property-list-of-types-widened

    • the class response's property type/format changed from object null/ to / for status 200

      response-property-type-changed

    • the customer response's property type/format changed from object null/ to / for status 200

      response-property-type-changed

    • the inventorySite response's property type/format changed from object null/ to / for status 200

      response-property-type-changed

    • the lines/items/inventorySiteLocation response's property type/format changed from object null/ to / for status 200

      response-property-type-changed

    • the lines/items/item response's property type/format changed from object null/ to / for status 200

      response-property-type-changed

    • removed the required property class/fullName from the response with the 200 status

      response-required-property-removed

    • removed the required property class/id from the response with the 200 status

      response-required-property-removed

    • removed the required property customer/fullName from the response with the 200 status

      response-required-property-removed

    • removed the required property customer/id from the response with the 200 status

      response-required-property-removed

    • removed the required property inventorySite/fullName from the response with the 200 status

      response-required-property-removed

    • removed the required property inventorySite/id from the response with the 200 status

      response-required-property-removed

    • removed the required property lines/items/inventorySiteLocation/fullName from the response with the 200 status

      response-required-property-removed

    • removed the required property lines/items/inventorySiteLocation/id from the response with the 200 status

      response-required-property-removed

    • removed the required property lines/items/item/fullName from the response with the 200 status

      response-required-property-removed

    • removed the required property lines/items/item/id from the response with the 200 status

      response-required-property-removed

    • added subschema #1 subschema #2 to the class response property anyOf list for the response status 200

      response-property-any-of-added

    • added subschema #1 subschema #2 to the customer response property anyOf list for the response status 200

      response-property-any-of-added

    • added subschema #1 subschema #2 to the inventorySite response property anyOf list for the response status 200

      response-property-any-of-added

    • added subschema #1 subschema #2 to the lines/items/inventorySiteLocation response property anyOf list for the response status 200

      response-property-any-of-added

    • added subschema #1 subschema #2 to the lines/items/item response property anyOf list for the response status 200

      response-property-any-of-added

    • removed the added enum value from the lines/items/serialNumberAction response property for the response status 200

      response-property-enum-value-removed

    • removed the removed enum value from the lines/items/serialNumberAction response property for the response status 200

      response-property-enum-value-removed

    • removed the undefined enum value from the lines/items/serialNumberAction response property for the response status 200

      response-property-enum-value-removed

    • the transactionDate response's property pattern ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$ was added for the status 200

      response-property-pattern-added