v2
latestOpenAPI 3.1.12026-08-078549932.4 MBInvoices
Cancel a bill that should never have been billed (wrong patient, duplicate, service not rendered, goodwill write-off): Status → InvoiceStatus.Void, terminal. This is the exit for invoices built directly in the Payments panel, which have no source estimate and therefore can't revert. A required reason lands in the payment audit log. Refused once any money is attached — reverse the payments first (a Void bill can never take or hold a payment). Dispensed lines do NOT block: voiding the bill never returns stock (there is no reverse-dispense primitive; see docs/dispensing.md §5) — stock corrections are a separate inventory adjustment. Distinct from Superseded (finalized then replaced): merge and revert keep producing Superseded; Void means cancelled outright. Releases the bill's claims on everything upstream of it — the appointment slot, the source quote's invoice_id, and the reverse dispense links — so a live quote stops resolving to a written-off bill. Unlike revert-to-estimate this leaves the quote's EstimateStatus untouched: void cancels the bill, it does not reopen the quote for editing.
post/Invoices/{id}/void
Path parameters
idstring required
Request body
Response
OK