Invoice

Appends line items to an existing invoice WITHOUT modifying or deleting its other line items (unlike PUT /api/Invoice, which replaces the full line item collection). Each line item may optionally link uninvoiced timesheets, expenses or a fixed amount via TimesheetEntryIDs / ExpenseIDs / FixedAmountIDs; quantities, prices, descriptions and taxes are calculated from the linked records unless supplied, and the linked records are marked as invoiced. The request is atomic: if any line item or link is invalid, nothing is added. The invoice must not be Void; totals, balance and status are recalculated (e.g. a Paid invoice becomes Partial when its total grows).

post/api/Invoice/AddLineItems

Request body

InvoiceIDinteger required

The Transaction ID of the invoice to append line items to. The invoice must not be Void.

SendWebhooksboolean

If true, fires invoice_updated (plus timesheet_updated / expense_updated for linked records) webhook events. Defaults to false.

Response

Returns the updated invoice, the new TransactionLineItemIDs, and any warnings.

AddedTransactionLineItemIDsinteger[]

The TransactionLineItemIDs of the newly created line items, in request order.

Warningsstring[]

Non-fatal notices about the operation (e.g. an invoice status change caused by the new total).

Changes