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.
Changed onRequest
- Base URLhttps://api.clinicos.vet/backend/business
- AuthHTTP bearer
- TypeScriptA function with typed inputs. Its response is checked against the schema.
Path parameters
Request body
Response
OK
Changes
- info
added the optional property
//to the response with the status (media type: text/plain) - info
added the optional property
//to the response with the status (media type: application/json) - info
added the optional property
//to the response with the status (media type: text/json)
- info
- info
added the optional property
///////to the response with the status (media type: text/plain) - info
added the optional property
///////to the response with the status (media type: application/json) - info
added the optional property
///////to the response with the status (media type: text/json) - info
added the optional property
///////to the response with the status (media type: text/plain) - info
added the optional property
///////to the response with the status (media type: application/json) - info
added the optional property
///////to the response with the status (media type: text/json) - info
added the optional property
//to the response with the status (media type: text/plain) - info
added the optional property
//to the response with the status (media type: application/json) - info
added the optional property
//to the response with the status (media type: text/json) - info
added the optional property
//to the response with the status (media type: text/plain) - info
added the optional property
//to the response with the status (media type: application/json) - info
added the optional property
//to the response with the status (media type: text/json)
- info