A typed-confirmation gate in the editor. Drafts can be hard-removed along with their line items and payment rows; anything that has been sent uses void or soft delete instead so the audit trail survives.
Also called: delete draft invoice · confirm delete · accidental delete
- 1The action is only offered when status === 'draft'.
- 2deleteInvoice re-checks the status server-side and refuses anything else.
- 3Children (line items, payments) are removed first so a partial failure leaves no orphan rows, and failures are logged rather than swallowed.
An invoice that has been sent is a document the customer already holds, so quietly removing it is not a correction — it is a hole in the record. Only drafts can be deleted; anything sent or beyond is voided instead and keeps its audit trail. Even a draft deletion asks for the word to be typed out in full, so a mistap cannot wipe an invoice somebody spent twenty minutes building.
- One stray click destroying an invoice.
- Abandoned drafts cluttering the list with no way to remove them.
See it on your own jobs
Twenty minutes, your numbers, no slide deck. We’ll build one of your real buildings in front of you and send you the estimate link at the end — yours to keep either way.
or keep browsing features →