Skip to navigation

Update Invoice

Update an existing invoice. Supports partial updates.

Updatable fields:

  • lineItems: Array of line items if calculationMethod is “LINE_ITEMS”
  • sections: Grouped line items if calculationMethod is “LINE_ITEMS”
  • percentage: Percentage if calculationMethod is “PERCENTAGE”
  • issueDate: ISO 8601 datetime string
  • dueDate: ISO 8601 datetime string
  • description: Invoice description
  • status: Invoice status — one of DRAFT, SENT, DECLINED, PAID, PARTIALLY_PAID, OVERDUE. Only valid transitions from the invoice’s current status are accepted (e.g. DECLINED is reachable from DRAFT, SENT, OVERDUE, or PARTIALLY_PAID); an invalid transition is rejected with a 400.
  • isActive: Set to false to archive the invoice, or true to unarchive it. Applied independently of any other fields present in the same request.

calculationMethod cannot be changed after creation and is rejected if included.

Authentication

x-api-keystring
API Key authentication via header

Path parameters

invoice_idintegerRequired
Invoice identifier

Request

This endpoint expects an object.
statusenumOptional
Invoice status
lineItemslist of objectsOptional

Flat array of line items (LINE_ITEMS only). May be combined with sections (a catalogItemId may appear only once across both).

sectionslist of objectsOptional

Grouped line items with named sections (LINE_ITEMS only). May be combined with lineItems (ungrouped items).

percentagedoubleOptional>=0

Percentage (PERCENTAGE invoices only). Cannot be combined with lineItems or sections.

issueDatestringOptionalformat: "date-time"

Issue date (ISO 8601 datetime string)

dueDatestringOptionalformat: "date-time"

Due date (ISO 8601 datetime string)

descriptionstring or nullOptional
Invoice description
internalMemostring or nullOptional

Internal-only memo, never shown to customers or on the PDF or portal. Rich text (HTML, like the app’s editor stores). On update, send null or "" to clear it; responses return null when empty. Invoices and bills created in the app from a quote or purchase order inherit its memo.

isActivebooleanOptional

Set to false to archive the invoice, or true to unarchive it. Applied independently of any other fields present in the same request.

Response

Invoice updated successfully
idinteger
Invoice identifier
invoiceNumberinteger
Unique invoice number
statusenum
Invoice status
amountdouble
Total invoice amount
amountPaiddouble
Amount paid
calculationMethodstring

Calculation method (e.g., LINE_ITEMS)

createdAtstringformat: "date-time"
Creation timestamp
updatedAtstringformat: "date-time"
Last update timestamp
descriptionstring or nullOptional
Invoice description
internalMemostring or nullOptional

Internal-only memo, never shown to customers or on the PDF or portal. Rich text (HTML, like the app’s editor stores). On update, send null or "" to clear it; responses return null when empty. Invoices and bills created in the app from a quote or purchase order inherit its memo.

basedOnIdinteger or nullOptional
ID of the record this invoice is based on
basedOnUidinteger or nullOptional
UID of the record this invoice is based on
dueDatestringOptionalformat: "date-time"
Due date
issueDatestring or nullOptionalformat: "date-time"
Issue date when the invoice has been issued
isArchivedbooleanOptional
Whether the invoice is archived
sharedWithPortalbooleanOptional
Whether the invoice is shared with portal
percentagedouble or nullOptional
Percentage if applicable
baseAmountdouble or nullOptional
Base amount if applicable
accountobject or nullOptional
recordobject or nullOptional
lineItemslist of objectsOptional

Errors

400
Bad Request Error
401
Unauthorized Error
404
Not Found Error