Revert an UNPAID invoice back to an editable estimate. Archives the bill (marks it InvoiceStatus.Superseded, keeping its lines as a read-only record), unstamps the dispense-linked transactions (so the dispenses re-appear as unbilled on the estimate), releases its appointment, reopens the source estimate to Draft, and records an ConsentEventType.InvoiceReverted consent event. Blocked once the invoice has any payment (PartiallyPaid/Paid or any non-failed Payment) — those need refund/void first. Does NOT reverse dispenses: lines stay Performed with their InventoryTransactionId on the estimate; returning stock is the separate per-line void flow. Routed under /invoices (absolute route) to match the bill it acts on; Billing-permission gated at controller level.
Changed onRequest
- Base URLhttps://api.clinicos.vet/backend/business
- AuthHTTP bearer
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
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
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