Cancel a draft or open invoice, moving it to void and queueing a void-stamped document. This is terminal: reissue by creating a new invoice.
The invoice's line items are deleted in the same transaction and their ledger journal entries are released back to the uninvoiced pool, so the response always carries an empty line_items array.
A void is rejected with 409 when the invoice has a linked payment that has already gone to the bank (any status other than pending), since that payment can no longer be cancelled. To reverse a paid invoice, issue a credit note instead: create an invoice with original_invoice_id set.
Invoicing is opt-in per organization: unless the invoicing feature flag is enabled for your organization this endpoint returns 403.
400The invoice cannot move to void from its current status. Only a draft or open invoice can be voided.
403Invoicing is not enabled for the organization, or the caller is missing the invoices:void permission.
404No such invoice, or the caller's user group does not grant access to its policy.
409The invoice's linked payment has already gone to the bank and can no longer be cancelled, or the invoice was modified by a concurrent writer. Reconcile the payment before voiding.