Canceling and Deleting Invoices

Keito keeps invoice changes strict once an invoice has left draft. This protects payment history, accounting sync records, and the billable time or expenses already linked to the invoice.

Close, Revert, or Delete

Use the action that matches what you need to do:

Action Use when What happens
Close The invoice should remain in records but no longer be tracked as receivable The invoice moves to Closed and stays visible in history
Revert to draft A sent invoice needs correction before payment or accounting sync The invoice moves from Open back to Draft so it can be edited or deleted
Delete A draft invoice was created by mistake The invoice is removed and linked billable work is released back to uninvoiced work
Void A synced invoice must be cancelled in Xero or QuickBooks The Keito invoice remains in history; its linked work stays billed
Release linked work A voided invoice should remain in history, but its exact linked work needs correction or reinvoicing Keito checks the accounting state, records the reason, and returns only that invoice’s linked work to the uninvoiced workflow

Draft Invoices

Draft invoices can be edited or deleted.

When a draft invoice is deleted:

  • Time entries linked to the invoice are marked unbilled again.
  • Expenses linked to the invoice are marked unbilled again.
  • Approved time remains locked because approval still applies.
  • Submitted or unsubmitted time returns to its previous billing workflow.

Sent or Open Invoices

Open invoices cannot be edited or deleted directly. If the invoice is still safe to change, use Revert to draft first.

An open invoice can be reverted to draft when:

  • It has not been paid.
  • It has no recorded payments.
  • The full invoice amount is still outstanding.
  • It has not been synced to Xero.
  • It has not been synced to QuickBooks.
  • It is not linked to a Stripe Invoice or Stripe PaymentIntent.

After the invoice is reverted to draft, you can edit it or delete it. Public payment actions are disabled until the invoice is sent again.

Stripe Checkout Sessions

Having Stripe enabled for your company does not prevent invoice deletion or reversion.

If an unpaid open Stripe Checkout Session exists for the invoice, Keito expires that Checkout Session before reverting or deleting the invoice. After expiration, the client cannot complete payment through that old Checkout link.

Keito does not cancel completed or paid Checkout Sessions. If payment has completed or is still processing, the invoice cannot be reverted or deleted.

Xero and QuickBooks

Invoices still linked to Xero or QuickBooks cannot be reverted to draft or deleted in Keito. If a draft or open invoice’s accounting counterpart has already been voided or deleted, the verified Unlink from Xero/QuickBooks action can remove that stale association. An eligible open invoice can then be reverted to draft and deleted. This does not apply to voided Keito invoices.

Once an invoice exists in an accounting system, the accounting system becomes the source of record for cancellation, voiding, credit notes, and audit history. Make the accounting correction in Xero or QuickBooks, then keep Keito aligned through the supported sync or payment workflow.

When a voided invoice still holds billed work

Voiding a synced invoice keeps its Keito record and the time and expenses it billed. This is intentional: deleting the invoice or silently marking its work uninvoiced would lose the billing history and could make the same work available to bill twice. A voided invoice cannot be reverted to draft or deleted, even if its QuickBooks counterpart was later deleted.

If the voided invoice should stay in history but its linked work needs to be corrected or billed again:

  1. Confirm that the Xero or QuickBooks invoice has been voided or deleted there. In Keito, open the voided invoice and choose Release linked work. Keito checks the accounting record again before changing anything.
  2. Review the exact linked time and expense counts, enter a reason, and confirm the release. Keito keeps the voided invoice and its line totals as a historical record, removes the stale accounting association, and releases only work linked to that invoice. It does not change the work’s hours, dates, notes, or amounts.
  3. If any released time was approved, it remains locked by approval. It can be reinvoiced in that approved state. For eligible corrections, go to Time > Approval and withdraw approval for the relevant person’s week first. Withdrawing approval affects the whole approved week, so review the other entries in that week first. Harvest-imported entries marked closed may still have separate editing restrictions after approval is withdrawn.
  4. Review the released work before adding it to a replacement invoice. Do not bill it in Keito while a live invoice for the same work remains in the accounting system.

Keito blocks this release if it cannot verify a safe accounting state, or if the invoice has payments, retainer activity, a Stripe payment link, or a replacement invoice. Contact support if the accounting record cannot be checked or the invoice has payment history. The release is an explicit billing correction, not part of the ordinary Unlink from Xero/QuickBooks action.

Paid invoices cannot be edited, reverted to draft, or deleted.

If a paid invoice was created incorrectly, keep the invoice for audit history and correct it through the appropriate payment, refund, credit note, or accounting process.