---
title: "Changes to Update an invoice"
method: POST
path: "/quickbooks-desktop/invoices/{id}"
---

# Changes to Update an invoice

`POST /quickbooks-desktop/invoices/{id}`

> Every recorded change to this endpoint, newest first.

## Timeline

Changed in 7 of 46 revisions.

- **2026-05-02** `1de07095c4b7` — 33 warning
- **2026-05-02** `0adc2851bb7f` — 2 warning
- **2026-04-20** `10d4e9ebd1df` — 126 breaking, 31 info
- **2026-04-20** `8e0b7df2044d` — 104 breaking, 3 warning, 135 info
- **2026-04-20** `5f832f695675` — 131 breaking, 33 info
- **2026-04-02** `f2373ceb0221` — 1 info
- **2026-03-15** `a18036b42803` — 1 breaking

## Changes

- **2026-05-02** `1de07095c4b7` — 33 warning
  - for the `path` request parameter `id`, the maxLength was set to `36`
  - the `applyCredits/items/creditTransactionId` request property's maxLength was set to `36`
  - the `classId` request property's maxLength was set to `36`
  - the `customerId` request property's maxLength was set to `36`
  - the `customerMessageId` request property's maxLength was set to `36`
  - the `documentTemplateId` request property's maxLength was set to `36`
  - the `lineGroups/items/id` request property's maxLength was set to `36`
  - the `lineGroups/items/itemGroupId` request property's maxLength was set to `36`
  - the `lineGroups/items/lines/items/classId` request property's maxLength was set to `36`
  - the `lineGroups/items/lines/items/id` request property's maxLength was set to `36`
  - the `lineGroups/items/lines/items/inventorySiteId` request property's maxLength was set to `36`
  - the `lineGroups/items/lines/items/inventorySiteLocationId` request property's maxLength was set to `36`
  - the `lineGroups/items/lines/items/itemId` request property's maxLength was set to `36`
  - the `lineGroups/items/lines/items/overrideItemAccountId` request property's maxLength was set to `36`
  - the `lineGroups/items/lines/items/overrideUnitOfMeasureSetId` request property's maxLength was set to `36`
  - the `lineGroups/items/lines/items/priceLevelId` request property's maxLength was set to `36`
  - the `lineGroups/items/lines/items/salesTaxCodeId` request property's maxLength was set to `36`
  - the `lineGroups/items/overrideUnitOfMeasureSetId` request property's maxLength was set to `36`
  - the `lines/items/classId` request property's maxLength was set to `36`
  - the `lines/items/id` request property's maxLength was set to `36`
  - the `lines/items/inventorySiteId` request property's maxLength was set to `36`
  - the `lines/items/inventorySiteLocationId` request property's maxLength was set to `36`
  - the `lines/items/itemId` request property's maxLength was set to `36`
  - the `lines/items/overrideItemAccountId` request property's maxLength was set to `36`
  - the `lines/items/overrideUnitOfMeasureSetId` request property's maxLength was set to `36`
  - the `lines/items/priceLevelId` request property's maxLength was set to `36`
  - the `lines/items/salesTaxCodeId` request property's maxLength was set to `36`
  - the `receivablesAccountId` request property's maxLength was set to `36`
  - the `salesRepresentativeId` request property's maxLength was set to `36`
  - the `salesTaxCodeId` request property's maxLength was set to `36`
  - the `salesTaxItemId` request property's maxLength was set to `36`
  - the `shippingMethodId` request property's maxLength was set to `36`
  - the `termsId` request property's maxLength was set to `36`
- **2026-05-02** `0adc2851bb7f` — 2 warning
  - the `refNumber` request property's maxLength was set to `11`
  - the `shipmentOrigin` request property's maxLength was set to `13`
- **2026-04-20** `10d4e9ebd1df` — 126 breaking, 31 info
  - response property `appliedAmount` list-of-types was widened by adding types `null` to media type `application/json` of response `200`
  - response property `balanceRemaining` list-of-types was widened by adding types `null` to media type `application/json` of response `200`
  - response property `balanceRemainingInHomeCurrency` list-of-types was widened by adding types `null` to media type `application/json` of response `200`
  - response property `dueDate` list-of-types was widened by adding types `null` to media type `application/json` of response `200`
  - response property `exchangeRate` list-of-types was widened by adding types `null` to media type `application/json` of response `200`
  - response property `externalId` list-of-types was widened by adding types `null` to media type `application/json` of response `200`
  - response property `isFinanceCharge` list-of-types was widened by adding types `null` to media type `application/json` of response `200`
  - response property `isPaid` list-of-types was widened by adding types `null` to media type `application/json` of response `200`
  - response property `isPending` list-of-types was widened by adding types `null` to media type `application/json` of response `200`
  - response property `isQueuedForEmail` list-of-types was widened by adding types `null` to media type `application/json` of response `200`
  - response property `isQueuedForPrint` list-of-types was widened by adding types `null` to media type `application/json` of response `200`
  - response property `lineGroups/items/description` list-of-types was widened by adding types `null` to media type `application/json` of response `200`
  - response property `lineGroups/items/itemGroup/fullName` list-of-types was widened by adding types `null` to media type `application/json` of response `200`
  - response property `lineGroups/items/itemGroup/id` list-of-types was widened by adding types `null` to media type `application/json` of response `200`
  - response property `lineGroups/items/lines/items/amount` list-of-types was widened by adding types `null` to media type `application/json` of response `200`
  - response property `lineGroups/items/lines/items/description` list-of-types was widened by adding types `null` to media type `application/json` of response `200`
  - response property `lineGroups/items/lines/items/expirationDate` list-of-types was widened by adding types `null` to media type `application/json` of response `200`
  - response property `lineGroups/items/lines/items/lotNumber` list-of-types was widened by adding types `null` to media type `application/json` of response `200`
  - response property `lineGroups/items/lines/items/otherCustomField1` list-of-types was widened by adding types `null` to media type `application/json` of response `200`
  - response property `lineGroups/items/lines/items/otherCustomField2` list-of-types was widened by adding types `null` to media type `application/json` of response `200`
  - response property `lineGroups/items/lines/items/quantity` list-of-types was widened by adding types `null` to media type `application/json` of response `200`
  - response property `lineGroups/items/lines/items/rate` list-of-types was widened by adding types `null` to media type `application/json` of response `200`
  - response property `lineGroups/items/lines/items/ratePercent` list-of-types was widened by adding types `null` to media type `application/json` of response `200`
  - response property `lineGroups/items/lines/items/serialNumber` list-of-types was widened by adding types `null` to media type `application/json` of response `200`
  - response property `lineGroups/items/lines/items/serviceDate` list-of-types was widened by adding types `null` to media type `application/json` of response `200`
  - response property `lineGroups/items/lines/items/unitOfMeasure` list-of-types was widened by adding types `null` to media type `application/json` of response `200`
  - response property `lineGroups/items/quantity` list-of-types was widened by adding types `null` to media type `application/json` of response `200`
  - response property `lineGroups/items/serviceDate` list-of-types was widened by adding types `null` to media type `application/json` of response `200`
  - response property `lineGroups/items/unitOfMeasure` list-of-types was widened by adding types `null` to media type `application/json` of response `200`
  - response property `lines/items/amount` list-of-types was widened by adding types `null` to media type `application/json` of response `200`
  - response property `lines/items/description` list-of-types was widened by adding types `null` to media type `application/json` of response `200`
  - response property `lines/items/expirationDate` list-of-types was widened by adding types `null` to media type `application/json` of response `200`
  - response property `lines/items/lotNumber` list-of-types was widened by adding types `null` to media type `application/json` of response `200`
  - response property `lines/items/otherCustomField1` list-of-types was widened by adding types `null` to media type `application/json` of response `200`
  - response property `lines/items/otherCustomField2` list-of-types was widened by adding types `null` to media type `application/json` of response `200`
  - response property `lines/items/quantity` list-of-types was widened by adding types `null` to media type `application/json` of response `200`
  - response property `lines/items/rate` list-of-types was widened by adding types `null` to media type `application/json` of response `200`
  - response property `lines/items/ratePercent` list-of-types was widened by adding types `null` to media type `application/json` of response `200`
  - response property `lines/items/serialNumber` list-of-types was widened by adding types `null` to media type `application/json` of response `200`
  - response property `lines/items/serviceDate` list-of-types was widened by adding types `null` to media type `application/json` of response `200`
  - …117 more
- **2026-04-20** `8e0b7df2044d` — 104 breaking, 3 warning, 135 info
  - the response property `appliedAmount` became nullable for the status `200`
  - the response property `balanceRemaining` became nullable for the status `200`
  - the response property `balanceRemainingInHomeCurrency` became nullable for the status `200`
  - the response property `class` became nullable for the status `200`
  - the response property `currency` became nullable for the status `200`
  - the response property `customer` became nullable for the status `200`
  - the response property `customerMessage` became nullable for the status `200`
  - the response property `documentTemplate` became nullable for the status `200`
  - the response property `dueDate` became nullable for the status `200`
  - the response property `exchangeRate` became nullable for the status `200`
  - the response property `externalId` became nullable for the status `200`
  - the response property `isFinanceCharge` became nullable for the status `200`
  - the response property `isPaid` became nullable for the status `200`
  - the response property `isPending` became nullable for the status `200`
  - the response property `isQueuedForEmail` became nullable for the status `200`
  - the response property `isQueuedForPrint` became nullable for the status `200`
  - the response property `lineGroups/items/description` became nullable for the status `200`
  - the response property `lineGroups/items/itemGroup/fullName` became nullable for the status `200`
  - the response property `lineGroups/items/itemGroup/id` became nullable for the status `200`
  - the response property `lineGroups/items/lines/items/amount` became nullable for the status `200`
  - the response property `lineGroups/items/lines/items/class` became nullable for the status `200`
  - the response property `lineGroups/items/lines/items/description` became nullable for the status `200`
  - the response property `lineGroups/items/lines/items/expirationDate` became nullable for the status `200`
  - the response property `lineGroups/items/lines/items/inventorySite` became nullable for the status `200`
  - the response property `lineGroups/items/lines/items/inventorySiteLocation` became nullable for the status `200`
  - the response property `lineGroups/items/lines/items/item` became nullable for the status `200`
  - the response property `lineGroups/items/lines/items/lotNumber` became nullable for the status `200`
  - the response property `lineGroups/items/lines/items/otherCustomField1` became nullable for the status `200`
  - the response property `lineGroups/items/lines/items/otherCustomField2` became nullable for the status `200`
  - the response property `lineGroups/items/lines/items/overrideUnitOfMeasureSet` became nullable for the status `200`
  - the response property `lineGroups/items/lines/items/quantity` became nullable for the status `200`
  - the response property `lineGroups/items/lines/items/rate` became nullable for the status `200`
  - the response property `lineGroups/items/lines/items/ratePercent` became nullable for the status `200`
  - the response property `lineGroups/items/lines/items/salesTaxCode` became nullable for the status `200`
  - the response property `lineGroups/items/lines/items/serialNumber` became nullable for the status `200`
  - the response property `lineGroups/items/lines/items/serviceDate` became nullable for the status `200`
  - the response property `lineGroups/items/lines/items/unitOfMeasure` became nullable for the status `200`
  - the response property `lineGroups/items/overrideUnitOfMeasureSet` became nullable for the status `200`
  - the response property `lineGroups/items/quantity` became nullable for the status `200`
  - the response property `lineGroups/items/serviceDate` became nullable for the status `200`
  - …202 more
- **2026-04-20** `5f832f695675` — 131 breaking, 33 info
  - 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 `dueDate`
  - 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 `lineGroups/items/lines/items/serviceDate`
  - 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/serviceDate`
  - 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 `shippingDate`
  - 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`
  - response property `appliedAmount` list-of-types was widened by adding types `null` to media type `application/json` of response `200`
  - response property `balanceRemaining` list-of-types was widened by adding types `null` to media type `application/json` of response `200`
  - response property `balanceRemainingInHomeCurrency` list-of-types was widened by adding types `null` to media type `application/json` of response `200`
  - response property `dueDate` list-of-types was widened by adding types `null` to media type `application/json` of response `200`
  - response property `exchangeRate` list-of-types was widened by adding types `null` to media type `application/json` of response `200`
  - response property `externalId` list-of-types was widened by adding types `null` to media type `application/json` of response `200`
  - response property `isFinanceCharge` list-of-types was widened by adding types `null` to media type `application/json` of response `200`
  - response property `isPaid` list-of-types was widened by adding types `null` to media type `application/json` of response `200`
  - response property `isPending` list-of-types was widened by adding types `null` to media type `application/json` of response `200`
  - response property `isQueuedForEmail` list-of-types was widened by adding types `null` to media type `application/json` of response `200`
  - response property `isQueuedForPrint` list-of-types was widened by adding types `null` to media type `application/json` of response `200`
  - response property `lineGroups/items/description` list-of-types was widened by adding types `null` to media type `application/json` of response `200`
  - response property `lineGroups/items/itemGroup/fullName` list-of-types was widened by adding types `null` to media type `application/json` of response `200`
  - response property `lineGroups/items/itemGroup/id` list-of-types was widened by adding types `null` to media type `application/json` of response `200`
  - response property `lineGroups/items/lines/items/amount` list-of-types was widened by adding types `null` to media type `application/json` of response `200`
  - response property `lineGroups/items/lines/items/description` list-of-types was widened by adding types `null` to media type `application/json` of response `200`
  - response property `lineGroups/items/lines/items/expirationDate` list-of-types was widened by adding types `null` to media type `application/json` of response `200`
  - response property `lineGroups/items/lines/items/lotNumber` list-of-types was widened by adding types `null` to media type `application/json` of response `200`
  - response property `lineGroups/items/lines/items/otherCustomField1` list-of-types was widened by adding types `null` to media type `application/json` of response `200`
  - response property `lineGroups/items/lines/items/otherCustomField2` list-of-types was widened by adding types `null` to media type `application/json` of response `200`
  - response property `lineGroups/items/lines/items/quantity` list-of-types was widened by adding types `null` to media type `application/json` of response `200`
  - response property `lineGroups/items/lines/items/rate` list-of-types was widened by adding types `null` to media type `application/json` of response `200`
  - response property `lineGroups/items/lines/items/ratePercent` list-of-types was widened by adding types `null` to media type `application/json` of response `200`
  - response property `lineGroups/items/lines/items/serialNumber` list-of-types was widened by adding types `null` to media type `application/json` of response `200`
  - response property `lineGroups/items/lines/items/serviceDate` list-of-types was widened by adding types `null` to media type `application/json` of response `200`
  - response property `lineGroups/items/lines/items/unitOfMeasure` list-of-types was widened by adding types `null` to media type `application/json` of response `200`
  - response property `lineGroups/items/quantity` list-of-types was widened by adding types `null` to media type `application/json` of response `200`
  - response property `lineGroups/items/serviceDate` list-of-types was widened by adding types `null` to media type `application/json` of response `200`
  - response property `lineGroups/items/unitOfMeasure` list-of-types was widened by adding types `null` to media type `application/json` of response `200`
  - response property `lines/items/amount` list-of-types was widened by adding types `null` to media type `application/json` of response `200`
  - response property `lines/items/description` list-of-types was widened by adding types `null` to media type `application/json` of response `200`
  - response property `lines/items/expirationDate` list-of-types was widened by adding types `null` to media type `application/json` of response `200`
  - response property `lines/items/lotNumber` list-of-types was widened by adding types `null` to media type `application/json` of response `200`
  - response property `lines/items/otherCustomField1` list-of-types was widened by adding types `null` to media type `application/json` of response `200`
  - response property `lines/items/otherCustomField2` list-of-types was widened by adding types `null` to media type `application/json` of response `200`
  - …124 more
- **2026-04-02** `f2373ceb0221` — 1 info
  - added the required property `lineGroups/items/serviceDate` to the response with the `200` status
- **2026-03-15** `a18036b42803` — 1 breaking
  - the response property `customer` became nullable for the status `200`

---

[Operation](https://skmtc.dev/conductor-is/apis/conductor-api/docs/quickbooks-desktop/invoices/:id/post.md) · [API](https://skmtc.dev/conductor-is/apis/conductor-api.md) · [Page](https://skmtc.dev/conductor-is/apis/conductor-api/changes/quickbooks-desktop/invoices/:id/post)
