> ## Documentation Index
> Fetch the complete documentation index at: https://docs.comforthub.app/llms.txt
> Use this file to discover all available pages before exploring further.

# Void an invoice

> Cancel an invoice everywhere it exists

export const Touches = ({systems}) => <p>
    <strong>Systems involved:</strong>{" "}
    {systems.split(",").map((s, i) => <span key={s}>
        {i > 0 ? " · " : ""}
        <a href={"/systems/" + s.trim()}>{s.trim().replace(/-/g, " ")}</a>
      </span>)}
  </p>;

<Touches systems="zoho-crm, supabase-backend, quickbooks" />

An invoice is voided from Zoho. The engine voids it in QuickBooks and files a VOID copy of the PDF.

## Before you start

* The invoice open in Zoho, unpaid. The engine refuses to void an invoice that has received any money, part or whole; that is a business decision, and the refusal is left for a person to act on.

## Steps

<Steps>
  <Step title="Set the status">
    Set **Status** to **Void** and save.
  </Step>
</Steps>

## How you know it worked

* Within a minute the invoice reads Void here, the QuickBooks invoice is voided, and a PDF named **VOID-INV….pdf** is filed and attached to the Zoho invoice.
* The pay page for that invoice offers no way to pay.

## Good to know

* Cancelling an invoiced work order voids its invoice the same way: the engine sets the Zoho invoice to Void, and the rest follows. See [Cancel a work order](/handbook/booking/cancel-a-work-order).
* A void does not change the work order's billing status. A job that was Invoiced still reads Invoiced.

## Related

* [How invoicing works](/handbook/invoicing/how-invoicing-works)
* [Cancel a work order](/handbook/booking/cancel-a-work-order)
* [Act on a Sentry email](/handbook/running/act-on-a-sentry-email)
