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

# Update an invoice

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

Updates an existing invoice.

**NOTE:** If you include `lines` or `lineGroups`, QuickBooks Desktop replaces each included 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 invoice 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 invoice 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.
  - `customerId` string — The customer or customer-job associated with this invoice.
  - `classId` string — The invoice'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 invoice's line items unless overridden at the line item level.
  - `receivablesAccountId` string — The Accounts-Receivable (A/R) account to which this invoice is assigned, used to track the amount owed. If omitted, QuickBooks Desktop uses the default A/R account configured in the company file. **IMPORTANT**: If this invoice is linked to other transactions, this A/R account must match the `receivablesAccount` used in all linked transactions.
  - `documentTemplateId` string — The predefined template in QuickBooks that determines the layout and formatting for this invoice when printed or displayed.
  - `transactionDate` string, date — The date of this invoice, in ISO 8601 format (YYYY-MM-DD).
  - `refNumber` string — The case-sensitive user-defined reference number for this invoice, 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.
  - `billingAddress` object — The invoice's billing address.
    - `line1` string — The first line of the address (e.g., street, PO Box, or company name). Maximum length: 41 characters.
    - `line2` string — The second line of the address, if needed (e.g., apartment, suite, unit, or building). Maximum length: 41 characters.
    - `line3` string — The third line of the address, if needed. Maximum length: 41 characters.
    - `line4` string — The fourth line of the address, if needed. Maximum length: 41 characters.
    - `line5` string — The fifth line of the address, if needed. Maximum length: 41 characters.
    - `city` string — The city, district, suburb, town, or village name of the address. Maximum length: 31 characters.
    - `state` string — The state, county, province, or region name of the address. Maximum length: 21 characters.
    - `postalCode` string — The postal code or ZIP code of the address. Maximum length: 13 characters.
    - `country` string — The country name of the address.
    - `note` string — A note written at the bottom of the address in the form in which it appears, such as the invoice form.
  - `shippingAddress` object — The invoice's shipping address.
    - `line1` string — The first line of the address (e.g., street, PO Box, or company name). Maximum length: 41 characters.
    - `line2` string — The second line of the address, if needed (e.g., apartment, suite, unit, or building). Maximum length: 41 characters.
    - `line3` string — The third line of the address, if needed. Maximum length: 41 characters.
    - `line4` string — The fourth line of the address, if needed. Maximum length: 41 characters.
    - `line5` string — The fifth line of the address, if needed. Maximum length: 41 characters.
    - `city` string — The city, district, suburb, town, or village name of the address. Maximum length: 31 characters.
    - `state` string — The state, county, province, or region name of the address. Maximum length: 21 characters.
    - `postalCode` string — The postal code or ZIP code of the address. Maximum length: 13 characters.
    - `country` string — The country name of the address.
    - `note` string — A note written at the bottom of the address in the form in which it appears, such as the invoice form.
  - `isPending` boolean — Indicates whether this invoice has not been completed or is in a draft version.
  - `purchaseOrderNumber` string — The customer's Purchase Order (PO) number associated with this invoice. This field is often used to cross-reference the invoice with the customer's purchasing system. Maximum length: 25 characters.
  - `termsId` string — The invoice's payment terms, defining when payment is due and any applicable discounts.
  - `dueDate` string, date — The date by which this invoice must be paid, in ISO 8601 format (YYYY-MM-DD).
  - `salesRepresentativeId` string — The invoice's sales representative. Sales representatives can be employees, vendors, or other names in QuickBooks.
  - `shipmentOrigin` string — The origin location from where the product associated with this invoice is shipped. This is the point at which ownership and liability for goods transfer from seller to buyer. Internally, QuickBooks uses the term "FOB" for this field, which stands for "freight on board". This field is informational and has no accounting implications. Maximum length: 13 characters.
  - `shippingDate` string, date — The date when the products or services for this invoice were shipped or are expected to be shipped, in ISO 8601 format (YYYY-MM-DD).
  - `shippingMethodId` string — The shipping method used for this invoice, such as standard mail or overnight delivery.
  - `salesTaxItemId` string — The sales-tax item used to calculate the actual tax amount for this invoice's transactions by applying a specific tax rate collected for a single tax agency. Unlike `salesTaxCode`, which only indicates general taxability, this field drives the actual tax calculation and reporting. For invoices, while using this field to specify a single tax item/group that applies uniformly is recommended, complex tax scenarios may require alternative approaches. In such cases, you can set this field to a 0% tax item (conventionally named "Tax Calculated On Invoice") and handle tax calculations through line items instead. When using line items for taxes, note that only individual tax items (not tax groups) can be used, subtotals can help apply a tax to multiple items but only the first tax line after a subtotal is calculated automatically (subsequent tax lines require manual amounts), and the rate column will always display the actual tax amount rather than the rate percentage.
  - `memo` string — A memo or note for this invoice that appears in reports, but not on the invoice. Use `customerMessage` to add a note to this invoice.
  - `customerMessageId` string — The message to display to the customer on the invoice.
  - `isQueuedForPrint` boolean — Indicates whether this invoice is included in the queue of documents for QuickBooks to print.
  - `isQueuedForEmail` boolean — Indicates whether this invoice is included in the queue of documents for QuickBooks to email to the customer.
  - `salesTaxCodeId` string — The sales-tax code for this invoice, 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 Desktop. If QuickBooks Desktop is not set up to charge sales tax (via the "Do You Charge Sales Tax?" preference), it assigns the default non-taxable sales-tax code configured in the company file to all sales.
  - `otherCustomField` string — A built-in custom field for additional information specific to this invoice. Unlike the user-defined fields in the `customFields` array, this is a standard QuickBooks field that exists for all invoices for convenience. Developers often use this field for tracking information that doesn't fit into other standard QuickBooks fields. Unlike `otherCustomField1` and `otherCustomField2`, which are line item fields, this exists at the transaction level. Hidden by default in the QuickBooks UI.
  - `exchangeRate` number — The market exchange rate between this invoice's currency and the home currency in QuickBooks at the time of this transaction. Represented as a decimal value (e.g., 1.2345 for 1 EUR = 1.2345 USD if USD is the home currency).
  - `applyCredits` object[] — Credits to apply to this invoice, reducing its balance. This creates a link between this invoice and the specified credit transactions. For credit-only applications with no received payment amount, update the invoice using this field. **IMPORTANT**: By default, QuickBooks will not return any information about the linked transactions in this endpoint's response even when this request is successful. To see the transactions linked via this field, refetch the invoice and check the `linkedTransactions` response field. If fetching a list of invoices, you must also specify the parameter `includeLinkedTransactions=true` to see the `linkedTransactions` response field.
    - `creditTransactionId` string, required — The unique identifier of the credit transaction to apply to this transaction, such as a credit memo, vendor credit, or journal-entry credit.
    - `appliedAmount` string, required — The amount of the selected credit transaction to apply to this transaction, represented as a decimal string. Decimal string format: exactly 2 decimal places when cents are included and up to 13 digits before the decimal point (for example, "123.45").
    - `overrideCreditApplication` boolean — Indicates whether to override the credit.
  - `lines` object[] — The invoice's line items, each representing a single product or service sold. **IMPORTANT**: 1. Including this array in your update request will **REPLACE** all existing line items for the invoice with this array. To keep any existing line items, you must include them in this array even if they have not changed. **Any line items not included will be removed.** 2. To add a new line item, include it here with the `id` field set to `-1`. 3. If you do not wish to modify any line items, omit this field entirely to keep them unchanged.
    - `id` string, required — The QuickBooks-assigned unique identifier of an existing invoice line you wish to retain or update. **IMPORTANT**: Set this field to `-1` for new invoice lines you wish to add.
    - `itemId` string — The item associated with this invoice line. This can refer to any good or service that the business buys or sells, including item types such as a service item, inventory item, or special calculation item like a discount item or sales-tax item.
    - `description` string — A description of this invoice line.
    - `quantity` number — The quantity of the item associated with this invoice line. This field cannot be cleared. **NOTE**: Do not use this field if the associated item is a discount item.
    - `unitOfMeasure` string — The unit-of-measure used for the `quantity` in this invoice line. Must be a valid unit within the item's available units of measure.
    - `overrideUnitOfMeasureSetId` string — Specifies an alternative unit-of-measure set when updating this invoice line's `unitOfMeasure` field (e.g., "pound" or "kilogram"). This allows you to select units from a different set than the item's default unit-of-measure set, which remains unchanged on the item itself. The override applies only to this specific line. For example, you can sell an item typically measured in volume units using weight units in a specific transaction by specifying a different unit-of-measure set with this field.
    - `rate` string — The price per unit for this invoice line. If both `rate` and `amount` are specified, `rate` will be ignored. If both `quantity` and `amount` are specified but not `rate`, QuickBooks will use them to calculate `rate`. Represented as a decimal string. This field cannot be cleared. Decimal string format: up to 5 decimal places and up to 10 digits before the decimal point (for example, "123.45").
    - `ratePercent` string — The price of this invoice line expressed as a percentage. Typically used for discount or markup items.
    - `priceLevelId` string — The price level applied to this invoice line. This overrides any price level set on the corresponding customer. The resulting invoice line will not show this price level, only the final `rate` calculated from it.
    - `classId` string — The invoice line'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. If a class is specified for the entire parent transaction, it is automatically applied to all invoice lines unless overridden here, at the transaction line level.
    - `amount` string — The monetary amount of this invoice line, represented as a decimal string. If both `quantity` and `rate` are specified but not `amount`, QuickBooks will use them to calculate `amount`. If `amount`, `rate`, and `quantity` are all unspecified, then QuickBooks will calculate `amount` based on a `quantity` of `1` and the suggested `rate`. This field cannot be cleared. Decimal string format: exactly 2 decimal places when cents are included and up to 13 digits before the decimal point (for example, "123.45").
    - `priceRuleConflictStrategy` 'base_price' | 'zero' — Specifies how to resolve price rule conflicts when adding or modifying this invoice line.
    - `inventorySiteId` string — The site location where inventory for the item associated with this invoice line is stored.
    - `inventorySiteLocationId` string — The specific location (e.g., bin or shelf) within the inventory site where the item associated with this invoice line is stored.
    - `serialNumber` string — The serial number of the item associated with this invoice line. This is used for tracking individual units of serialized inventory items.
    - `lotNumber` string — The lot number of the item associated with this invoice line. Used for tracking groups of inventory items that are purchased or manufactured together.
    - `serviceDate` string, date — The date on which the service for this invoice line was or will be performed, in ISO 8601 format (YYYY-MM-DD). This is particularly relevant for service items.
    - `salesTaxCodeId` string — The sales-tax code for this invoice line, determining whether it is taxable or non-taxable. If set, this overrides any sales-tax codes defined on the parent transaction or the associated item. Default codes include "Non" (non-taxable) and "Tax" (taxable), but custom codes can also be created in QuickBooks Desktop. If QuickBooks Desktop is not set up to charge sales tax (via the "Do You Charge Sales Tax?" preference), it assigns the default non-taxable sales-tax code configured in the company file to all sales.
    - `overrideItemAccountId` string — The account to use for this invoice line, overriding the default account associated with the item.
    - `otherCustomField1` string — A built-in custom field for additional information specific to this invoice line. Unlike the user-defined fields in the `customFields` array, this is a standard QuickBooks field that exists for all invoice lines for convenience. Developers often use this field for tracking information that doesn't fit into other standard QuickBooks fields. Hidden by default in the QuickBooks UI.
    - `otherCustomField2` string — A second built-in custom field for additional information specific to this invoice line. Unlike the user-defined fields in the `customFields` array, this is a standard QuickBooks field that exists for all invoice lines for convenience. Like `otherCustomField1`, developers often use this field for tracking information that doesn't fit into other standard QuickBooks fields. Hidden by default in the QuickBooks UI.
  - `lineGroups` object[] — The invoice's line item groups, each representing a predefined set of related items. **IMPORTANT**: 1. Including this array in your update request will **REPLACE** all existing line item groups for the invoice with this array. To keep any existing line item groups, you must include them in this array even if they have not changed. **Any line item groups not included will be removed.** 2. To add a new line item group, include it here with the `id` field set to `-1`. 3. If you do not wish to modify any line item groups, omit this field entirely to keep them unchanged.
    - `id` string, required — The QuickBooks-assigned unique identifier of an existing invoice line group you wish to retain or update. **IMPORTANT**: Set this field to `-1` for new invoice line groups you wish to add.
    - `itemGroupId` string — The invoice line group's item group, representing a predefined set of items bundled because they are commonly purchased together or grouped for faster entry.
    - `quantity` number — The quantity of the item group associated with this invoice line group. This field cannot be cleared. **NOTE**: Do not use this field if the associated item group is a discount item group.
    - `unitOfMeasure` string — The unit-of-measure used for the `quantity` in this invoice line group. Must be a valid unit within the item's available units of measure.
    - `overrideUnitOfMeasureSetId` string — Specifies an alternative unit-of-measure set when updating this invoice line group's `unitOfMeasure` field (e.g., "pound" or "kilogram"). This allows you to select units from a different set than the item's default unit-of-measure set, which remains unchanged on the item itself. The override applies only to this specific line. For example, you can sell an item typically measured in volume units using weight units in a specific transaction by specifying a different unit-of-measure set with this field.
    - `lines` object[] — The invoice line group's line items, each representing a single product or service sold. **IMPORTANT**: 1. Including this array in your update request will **REPLACE** all existing line items for the invoice line group with this array. To keep any existing line items, you must include them in this array even if they have not changed. **Any line items not included will be removed.** 2. To add a new line item, include it here with the `id` field set to `-1`. 3. If you do not wish to modify any line items, omit this field entirely to keep them unchanged.
      - `id` string, required — The QuickBooks-assigned unique identifier of an existing invoice line you wish to retain or update. **IMPORTANT**: Set this field to `-1` for new invoice lines you wish to add.
      - `itemId` string — The item associated with this invoice line. This can refer to any good or service that the business buys or sells, including item types such as a service item, inventory item, or special calculation item like a discount item or sales-tax item.
      - `description` string — A description of this invoice line.
      - `quantity` number — The quantity of the item associated with this invoice line. This field cannot be cleared. **NOTE**: Do not use this field if the associated item is a discount item.
      - `unitOfMeasure` string — The unit-of-measure used for the `quantity` in this invoice line. Must be a valid unit within the item's available units of measure.
      - `overrideUnitOfMeasureSetId` string — Specifies an alternative unit-of-measure set when updating this invoice line's `unitOfMeasure` field (e.g., "pound" or "kilogram"). This allows you to select units from a different set than the item's default unit-of-measure set, which remains unchanged on the item itself. The override applies only to this specific line. For example, you can sell an item typically measured in volume units using weight units in a specific transaction by specifying a different unit-of-measure set with this field.
      - `rate` string — The price per unit for this invoice line. If both `rate` and `amount` are specified, `rate` will be ignored. If both `quantity` and `amount` are specified but not `rate`, QuickBooks will use them to calculate `rate`. Represented as a decimal string. This field cannot be cleared. Decimal string format: up to 5 decimal places and up to 10 digits before the decimal point (for example, "123.45").
      - `ratePercent` string — The price of this invoice line expressed as a percentage. Typically used for discount or markup items.
      - `priceLevelId` string — The price level applied to this invoice line. This overrides any price level set on the corresponding customer. The resulting invoice line will not show this price level, only the final `rate` calculated from it.
      - `classId` string — The invoice line'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. If a class is specified for the entire parent transaction, it is automatically applied to all invoice lines unless overridden here, at the transaction line level.
      - `amount` string — The monetary amount of this invoice line, represented as a decimal string. If both `quantity` and `rate` are specified but not `amount`, QuickBooks will use them to calculate `amount`. If `amount`, `rate`, and `quantity` are all unspecified, then QuickBooks will calculate `amount` based on a `quantity` of `1` and the suggested `rate`. This field cannot be cleared. Decimal string format: exactly 2 decimal places when cents are included and up to 13 digits before the decimal point (for example, "123.45").
      - `priceRuleConflictStrategy` 'base_price' | 'zero' — Specifies how to resolve price rule conflicts when adding or modifying this invoice line.
      - `inventorySiteId` string — The site location where inventory for the item associated with this invoice line is stored.
      - `inventorySiteLocationId` string — The specific location (e.g., bin or shelf) within the inventory site where the item associated with this invoice line is stored.
      - `serialNumber` string — The serial number of the item associated with this invoice line. This is used for tracking individual units of serialized inventory items.
      - `lotNumber` string — The lot number of the item associated with this invoice line. Used for tracking groups of inventory items that are purchased or manufactured together.
      - `serviceDate` string, date — The date on which the service for this invoice line was or will be performed, in ISO 8601 format (YYYY-MM-DD). This is particularly relevant for service items.
      - `salesTaxCodeId` string — The sales-tax code for this invoice line, determining whether it is taxable or non-taxable. If set, this overrides any sales-tax codes defined on the parent transaction or the associated item. Default codes include "Non" (non-taxable) and "Tax" (taxable), but custom codes can also be created in QuickBooks Desktop. If QuickBooks Desktop is not set up to charge sales tax (via the "Do You Charge Sales Tax?" preference), it assigns the default non-taxable sales-tax code configured in the company file to all sales.
      - `overrideItemAccountId` string — The account to use for this invoice line, overriding the default account associated with the item.
      - `otherCustomField1` string — A built-in custom field for additional information specific to this invoice line. Unlike the user-defined fields in the `customFields` array, this is a standard QuickBooks field that exists for all invoice lines for convenience. Developers often use this field for tracking information that doesn't fit into other standard QuickBooks fields. Hidden by default in the QuickBooks UI.
      - `otherCustomField2` string — A second built-in custom field for additional information specific to this invoice line. Unlike the user-defined fields in the `customFields` array, this is a standard QuickBooks field that exists for all invoice lines for convenience. Like `otherCustomField1`, developers often use this field for tracking information that doesn't fit into other standard QuickBooks fields. Hidden by default in the QuickBooks UI.

## Response `200`

Returns the updated invoice.

- QbdInvoice
  - `id` string, required — The unique identifier assigned by QuickBooks to this invoice. This ID is unique across all transaction types.
  - `objectType` 'qbd_invoice', required — The type of object. This value is always `"qbd_invoice"`.
  - `createdAt` string, required — The date and time when this invoice 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 invoice 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 invoice 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.
  - `customer` object, nullable, required — The customer or customer-job associated with this invoice.
    - `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 invoice'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 invoice'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.
  - `receivablesAccount` object, nullable, required — The Accounts-Receivable (A/R) account to which this invoice is assigned, used to track the amount owed. If omitted, QuickBooks Desktop uses the default A/R account configured in the company file. **IMPORTANT**: If this invoice is linked to other transactions, this A/R account must match the `receivablesAccount` used in all linked transactions.
    - `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.
  - `documentTemplate` object, nullable, required — The predefined template in QuickBooks that determines the layout and formatting for this invoice when printed or displayed.
    - `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 invoice, in ISO 8601 format (YYYY-MM-DD).
  - `refNumber` string, nullable, required — The case-sensitive user-defined reference number for this invoice, 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.
  - `billingAddress` QbdAddress, required
    - `line1` string, nullable, required — The first line of the address (e.g., street, PO Box, or company name).
    - `line2` string, nullable, required — The second line of the address, if needed (e.g., apartment, suite, unit, or building).
    - `line3` string, nullable, required — The third line of the address, if needed.
    - `line4` string, nullable, required — The fourth line of the address, if needed.
    - `line5` string, nullable, required — The fifth line of the address, if needed.
    - `city` string, nullable, required — The city, district, suburb, town, or village name of the address.
    - `state` string, nullable, required — The state, county, province, or region name of the address.
    - `postalCode` string, nullable, required — The postal code or ZIP code of the address.
    - `country` string, nullable, required — The country name of the address.
    - `note` string, nullable, required — A note written at the bottom of the address in the form in which it appears, such as the invoice form.
  - `shippingAddress` QbdAddress, required
    - `line1` string, nullable, required — The first line of the address (e.g., street, PO Box, or company name).
    - `line2` string, nullable, required — The second line of the address, if needed (e.g., apartment, suite, unit, or building).
    - `line3` string, nullable, required — The third line of the address, if needed.
    - `line4` string, nullable, required — The fourth line of the address, if needed.
    - `line5` string, nullable, required — The fifth line of the address, if needed.
    - `city` string, nullable, required — The city, district, suburb, town, or village name of the address.
    - `state` string, nullable, required — The state, county, province, or region name of the address.
    - `postalCode` string, nullable, required — The postal code or ZIP code of the address.
    - `country` string, nullable, required — The country name of the address.
    - `note` string, nullable, required — A note written at the bottom of the address in the form in which it appears, such as the invoice form.
  - `isPending` boolean, nullable, required — Indicates whether this invoice has not been completed or is in a draft version.
  - `isFinanceCharge` boolean, nullable, required — Whether this invoice includes a finance charge. This field is immutable and can only be set during invoice creation.
  - `purchaseOrderNumber` string, nullable, required — The customer's Purchase Order (PO) number associated with this invoice. This field is often used to cross-reference the invoice with the customer's purchasing system.
  - `terms` object, nullable, required — The invoice's payment terms, defining when payment is due and any applicable discounts.
    - `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.
  - `dueDate` string, date, nullable, required — The date by which this invoice must be paid, in ISO 8601 format (YYYY-MM-DD).
  - `salesRepresentative` object, nullable, required — The invoice's sales representative. Sales representatives can be employees, vendors, or other names in QuickBooks.
    - `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.
  - `shipmentOrigin` string, nullable, required — The origin location from where the product associated with this invoice is shipped. This is the point at which ownership and liability for goods transfer from seller to buyer. Internally, QuickBooks uses the term "FOB" for this field, which stands for "freight on board". This field is informational and has no accounting implications.
  - `shippingDate` string, date, nullable, required — The date when the products or services for this invoice were shipped or are expected to be shipped, in ISO 8601 format (YYYY-MM-DD).
  - `shippingMethod` object, nullable, required — The shipping method used for this invoice, such as standard mail or overnight delivery.
    - `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.
  - `subtotal` string, required — The subtotal of this invoice, which is the sum of all invoice lines before taxes and payments are applied, represented as a decimal string.
  - `salesTaxItem` object, nullable, required — The sales-tax item used to calculate the actual tax amount for this invoice's transactions by applying a specific tax rate collected for a single tax agency. Unlike `salesTaxCode`, which only indicates general taxability, this field drives the actual tax calculation and reporting. For invoices, while using this field to specify a single tax item/group that applies uniformly is recommended, complex tax scenarios may require alternative approaches. In such cases, you can set this field to a 0% tax item (conventionally named "Tax Calculated On Invoice") and handle tax calculations through line items instead. When using line items for taxes, note that only individual tax items (not tax groups) can be used, subtotals can help apply a tax to multiple items but only the first tax line after a subtotal is calculated automatically (subsequent tax lines require manual amounts), and the rate column will always display the actual tax amount rather than the rate percentage.
    - `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.
  - `salesTaxPercentage` string, nullable, required — The sales tax percentage applied to this invoice, represented as a decimal string.
  - `salesTaxTotal` string, nullable, required — The total amount of sales tax charged for this invoice, represented as a decimal string.
  - `appliedAmount` string, nullable, required — The total amount applied to this invoice, represented as a decimal string.
  - `balanceRemaining` string, nullable, required — The outstanding balance of this invoice after applying any credits or payments. Calculated as `subtotal` + `salesTaxTotal` - `appliedAmount`. Represented as a decimal string.
  - `currency` object, nullable, required — The invoice's currency. For built-in currencies, the name and code are standard ISO 4217 international values. For user-defined currencies, all values are editable.
    - `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.
  - `exchangeRate` number, nullable, required — The market exchange rate between this invoice's currency and the home currency in QuickBooks at the time of this transaction. Represented as a decimal value (e.g., 1.2345 for 1 EUR = 1.2345 USD if USD is the home currency).
  - `balanceRemainingInHomeCurrency` string, nullable, required — The outstanding balance of this invoice converted to the home currency of the QuickBooks company file. Represented as a decimal string.
  - `memo` string, nullable, required — A memo or note for this invoice that appears in reports, but not on the invoice. Use `customerMessage` to add a note to this invoice.
  - `isPaid` boolean, nullable, required — Indicates whether this invoice has been paid in full. When `true`, `openAmount` will be 0.
  - `customerMessage` object, nullable, required — The message to display to the customer on the invoice.
    - `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.
  - `isQueuedForPrint` boolean, nullable, required — Indicates whether this invoice is included in the queue of documents for QuickBooks to print.
  - `isQueuedForEmail` boolean, nullable, required — Indicates whether this invoice is included in the queue of documents for QuickBooks to email to the customer.
  - `salesTaxCode` object, nullable, required — The sales-tax code for this invoice, 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 Desktop. If QuickBooks Desktop is not set up to charge sales tax (via the "Do You Charge Sales Tax?" preference), it assigns the default non-taxable sales-tax code configured in the company file to all sales.
    - `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.
  - `suggestedDiscountAmount` string, nullable, required — The suggested discount amount for this invoice, represented as a decimal string.
  - `suggestedDiscountDate` string, date, nullable, required — The date when the `suggestedDiscountAmount` for this invoice would apply, in ISO 8601 format (YYYY-MM-DD).
  - `otherCustomField` string, nullable, required — A built-in custom field for additional information specific to this invoice. Unlike the user-defined fields in the `customFields` array, this is a standard QuickBooks field that exists for all invoices for convenience. Developers often use this field for tracking information that doesn't fit into other standard QuickBooks fields. Unlike `otherCustomField1` and `otherCustomField2`, which are line item fields, this exists at the transaction level. Hidden by default in the QuickBooks UI.
  - `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.
  - `linkedTransactions` QbdLinkedTransaction[], required — The invoice's linked transactions, such as payments applied, credits used, or associated purchase orders. **IMPORTANT**: You must specify the parameter `includeLinkedTransactions` when fetching a list of invoices to receive this field because it is not returned by default.
    - `id` string, required — The unique identifier assigned by QuickBooks to this linked transaction. This ID is unique across all transaction types.
    - `objectType` 'qbd_linked_transaction', required — The type of object. This value is always `"qbd_linked_transaction"`.
    - `transactionType` 'ar_refund_credit_card' | 'bill' | 'bill_payment_check' | 'bill_payment_credit_card' | 'build_assembly' | 'charge' | 'check' | 'credit_card_charge' | 'credit_card_credit' | 'credit_memo' | 'deposit' | 'estimate' | 'inventory_adjustment' | 'invoice' | 'item_receipt' | 'journal_entry' | 'liability_adjustment' | 'paycheck' | 'payroll_liability_check' | 'purchase_order' | 'receive_payment' | 'sales_order' | 'sales_receipt' | 'sales_tax_payment_check' | 'transfer' | 'vendor_credit' | 'ytd_adjustment' | 'unknown', required — The type of transaction for this linked transaction.
    - `transactionDate` string, date, required — The date of this linked transaction, in ISO 8601 format (YYYY-MM-DD).
    - `refNumber` string, nullable, required — The case-sensitive user-defined reference number for this linked transaction, 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.
    - `linkType` 'amount' | 'quantity', nullable, required — Indicates the nature of the link between the transactions: `amount` denotes an amount-based link (e.g., an invoice linked to a payment), and `quantity` denotes a quantity-based link (e.g., an invoice created from a sales order based on the quantity of items received).
    - `amount` string, nullable, required — The monetary amount of this linked transaction, represented as a decimal string.
  - `lines` QbdInvoiceLine[], required — The invoice's line items, each representing a single product or service sold.
    - `id` string, required — The unique identifier assigned by QuickBooks to this invoice line. This ID is unique across all transaction line types.
    - `objectType` 'qbd_invoice_line', required — The type of object. This value is always `"qbd_invoice_line"`.
    - `item` object, nullable, required — The item associated with this invoice line. This can refer to any good or service that the business buys or sells, including item types such as a service item, inventory item, or special calculation item like a discount item or sales-tax item.
      - `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.
    - `description` string, nullable, required — A description of this invoice line.
    - `quantity` number, nullable, required — The quantity of the item associated with this invoice line. This field cannot be cleared. **NOTE**: Do not use this field if the associated item is a discount item.
    - `unitOfMeasure` string, nullable, required — The unit-of-measure used for the `quantity` in this invoice line. Must be a valid unit within the item's available units of measure.
    - `overrideUnitOfMeasureSet` object, nullable, required — Specifies an alternative unit-of-measure set when updating this invoice line's `unitOfMeasure` field (e.g., "pound" or "kilogram"). This allows you to select units from a different set than the item's default unit-of-measure set, which remains unchanged on the item itself. The override applies only to this specific line. For example, you can sell an item typically measured in volume units using weight units in a specific transaction by specifying a different unit-of-measure set with this field.
      - `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.
    - `rate` string, nullable, required — The price per unit for this invoice line. If both `rate` and `amount` are specified, `rate` will be ignored. If both `quantity` and `amount` are specified but not `rate`, QuickBooks will use them to calculate `rate`. Represented as a decimal string. This field cannot be cleared.
    - `ratePercent` string, nullable, required — The price of this invoice line expressed as a percentage. Typically used for discount or markup items.
    - `class` object, nullable, required — The invoice line'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. If a class is specified for the entire parent transaction, it is automatically applied to all invoice lines unless overridden here, at the transaction line 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.
    - `amount` string, nullable, required — The monetary amount of this invoice line, represented as a decimal string. If both `quantity` and `rate` are specified but not `amount`, QuickBooks will use them to calculate `amount`. If `amount`, `rate`, and `quantity` are all unspecified, then QuickBooks will calculate `amount` based on a `quantity` of `1` and the suggested `rate`. This field cannot be cleared.
    - `inventorySite` object, nullable, required — The site location where inventory for the item associated with this invoice 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.
    - `inventorySiteLocation` object, nullable, required — The specific location (e.g., bin or shelf) within the inventory site where the item associated with this invoice 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.
    - `serialNumber` string, nullable, required — The serial number of the item associated with this invoice line. This is used for tracking individual units of serialized inventory items.
    - `lotNumber` string, nullable, required — The lot number of the item associated with this invoice 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 invoice 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.
    - `serviceDate` string, date, nullable, required — The date on which the service for this invoice line was or will be performed, in ISO 8601 format (YYYY-MM-DD). This is particularly relevant for service items.
    - `salesTaxCode` object, nullable, required — The sales-tax code for this invoice line, determining whether it is taxable or non-taxable. If set, this overrides any sales-tax codes defined on the parent transaction or the associated item. Default codes include "Non" (non-taxable) and "Tax" (taxable), but custom codes can also be created in QuickBooks Desktop. If QuickBooks Desktop is not set up to charge sales tax (via the "Do You Charge Sales Tax?" preference), it assigns the default non-taxable sales-tax code configured in the company file to all sales.
      - `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.
    - `otherCustomField1` string, nullable, required — A built-in custom field for additional information specific to this invoice line. Unlike the user-defined fields in the `customFields` array, this is a standard QuickBooks field that exists for all invoice lines for convenience. Developers often use this field for tracking information that doesn't fit into other standard QuickBooks fields. Hidden by default in the QuickBooks UI.
    - `otherCustomField2` string, nullable, required — A second built-in custom field for additional information specific to this invoice line. Unlike the user-defined fields in the `customFields` array, this is a standard QuickBooks field that exists for all invoice lines for convenience. Like `otherCustomField1`, developers often use this field for tracking information that doesn't fit into other standard QuickBooks fields. Hidden by default in the QuickBooks UI.
    - `customFields` QbdCustomField[], required — The custom fields for the invoice line 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.
  - `lineGroups` QbdInvoiceLineGroup[], required — The invoice's line item groups, each representing a predefined set of related items.
    - `id` string, required — The unique identifier assigned by QuickBooks to this invoice line group. This ID is unique across all transaction line types.
    - `objectType` 'qbd_invoice_line_group', required — The type of object. This value is always `"qbd_invoice_line_group"`.
    - `itemGroup` object, required — The invoice line group's item group, representing a predefined set of items bundled because they are commonly purchased together or grouped for faster entry.
      - `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.
    - `description` string, nullable, required — A description of this invoice line group.
    - `quantity` number, nullable, required — The quantity of the item group associated with this invoice line group. This field cannot be cleared. **NOTE**: Do not use this field if the associated item group is a discount item group.
    - `unitOfMeasure` string, nullable, required — The unit-of-measure used for the `quantity` in this invoice line group. Must be a valid unit within the item's available units of measure.
    - `overrideUnitOfMeasureSet` object, nullable, required — Specifies an alternative unit-of-measure set when updating this invoice line group's `unitOfMeasure` field (e.g., "pound" or "kilogram"). This allows you to select units from a different set than the item's default unit-of-measure set, which remains unchanged on the item itself. The override applies only to this specific line. For example, you can sell an item typically measured in volume units using weight units in a specific transaction by specifying a different unit-of-measure set with this field.
      - `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.
    - `shouldPrintItemsInGroup` boolean, required — Indicates whether the individual items in this invoice line group and their separate amounts appear on printed forms.
    - `totalAmount` string, required — The total monetary amount of this invoice line group, equivalent to the sum of the amounts in `lines`, represented as a decimal string.
    - `serviceDate` string, date, nullable, required — The date on which the service for this invoice line group was or will be performed, in ISO 8601 format (YYYY-MM-DD). This is particularly relevant for service items.
    - `lines` QbdInvoiceLine[], required — The invoice line group's line items, each representing a single product or service sold.
      - `id` string, required — The unique identifier assigned by QuickBooks to this invoice line. This ID is unique across all transaction line types.
      - `objectType` 'qbd_invoice_line', required — The type of object. This value is always `"qbd_invoice_line"`.
      - `item` object, nullable, required — The item associated with this invoice line. This can refer to any good or service that the business buys or sells, including item types such as a service item, inventory item, or special calculation item like a discount item or sales-tax item.
        - `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.
      - `description` string, nullable, required — A description of this invoice line.
      - `quantity` number, nullable, required — The quantity of the item associated with this invoice line. This field cannot be cleared. **NOTE**: Do not use this field if the associated item is a discount item.
      - `unitOfMeasure` string, nullable, required — The unit-of-measure used for the `quantity` in this invoice line. Must be a valid unit within the item's available units of measure.
      - `overrideUnitOfMeasureSet` object, nullable, required — Specifies an alternative unit-of-measure set when updating this invoice line's `unitOfMeasure` field (e.g., "pound" or "kilogram"). This allows you to select units from a different set than the item's default unit-of-measure set, which remains unchanged on the item itself. The override applies only to this specific line. For example, you can sell an item typically measured in volume units using weight units in a specific transaction by specifying a different unit-of-measure set with this field.
        - `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.
      - `rate` string, nullable, required — The price per unit for this invoice line. If both `rate` and `amount` are specified, `rate` will be ignored. If both `quantity` and `amount` are specified but not `rate`, QuickBooks will use them to calculate `rate`. Represented as a decimal string. This field cannot be cleared.
      - `ratePercent` string, nullable, required — The price of this invoice line expressed as a percentage. Typically used for discount or markup items.
      - `class` object, nullable, required — The invoice line'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. If a class is specified for the entire parent transaction, it is automatically applied to all invoice lines unless overridden here, at the transaction line 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.
      - `amount` string, nullable, required — The monetary amount of this invoice line, represented as a decimal string. If both `quantity` and `rate` are specified but not `amount`, QuickBooks will use them to calculate `amount`. If `amount`, `rate`, and `quantity` are all unspecified, then QuickBooks will calculate `amount` based on a `quantity` of `1` and the suggested `rate`. This field cannot be cleared.
      - `inventorySite` object, nullable, required — The site location where inventory for the item associated with this invoice 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.
      - `inventorySiteLocation` object, nullable, required — The specific location (e.g., bin or shelf) within the inventory site where the item associated with this invoice 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.
      - `serialNumber` string, nullable, required — The serial number of the item associated with this invoice line. This is used for tracking individual units of serialized inventory items.
      - `lotNumber` string, nullable, required — The lot number of the item associated with this invoice 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 invoice 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.
      - `serviceDate` string, date, nullable, required — The date on which the service for this invoice line was or will be performed, in ISO 8601 format (YYYY-MM-DD). This is particularly relevant for service items.
      - `salesTaxCode` object, nullable, required — The sales-tax code for this invoice line, determining whether it is taxable or non-taxable. If set, this overrides any sales-tax codes defined on the parent transaction or the associated item. Default codes include "Non" (non-taxable) and "Tax" (taxable), but custom codes can also be created in QuickBooks Desktop. If QuickBooks Desktop is not set up to charge sales tax (via the "Do You Charge Sales Tax?" preference), it assigns the default non-taxable sales-tax code configured in the company file to all sales.
        - `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.
      - `otherCustomField1` string, nullable, required — A built-in custom field for additional information specific to this invoice line. Unlike the user-defined fields in the `customFields` array, this is a standard QuickBooks field that exists for all invoice lines for convenience. Developers often use this field for tracking information that doesn't fit into other standard QuickBooks fields. Hidden by default in the QuickBooks UI.
      - `otherCustomField2` string, nullable, required — A second built-in custom field for additional information specific to this invoice line. Unlike the user-defined fields in the `customFields` array, this is a standard QuickBooks field that exists for all invoice lines for convenience. Like `otherCustomField1`, developers often use this field for tracking information that doesn't fit into other standard QuickBooks fields. Hidden by default in the QuickBooks UI.
      - `customFields` QbdCustomField[], required — The custom fields for the invoice line 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.
    - `customFields` QbdCustomField[], required — The custom fields for the invoice line group 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.
  - `customFields` QbdCustomField[], required — The custom fields for the invoice 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)
