> For the complete documentation index, see [llms.txt](https://www.zerabooks.com/help/llms.txt).

# Approve an invoice

Approving an invoice posts it to your books. Here is what ZeraBooks checks first and the exact journal entry it records.

## Approve it

1. Open a draft from the **Draft** lane.
2. Click **Preview** to see the finished invoice.
3. Click **Approve**. The send screen opens next so you can email it.
4. To approve without sending yet, open the arrow next to **Approve** and choose **Approve & Close**.

You see "Invoice approved" and the invoice moves to the **Approved** lane.

## What posts

Approval records one balanced entry, dated on the invoice date:

| Account | Debit | Credit |
| --- | --- | --- |
| **Accounts Receivable** | Invoice total, less any retainage | |
| **Holdback receivable** (only with retainage) | The retainage | |
| Each line's income category | | That line's amount, before tax |
| **Tax charged on sales** (only with tax) | | The total tax |

A discount is its own line on your Sales Discounts & Allowances category, so it reduces revenue rather than hiding inside it. Tax you charge is held for the government, so it goes to a liability, not to income.

Open the **Accounting** tab on the right of an approved invoice to see "The immutable double entry captured when this invoice was approved." with a **Balanced** badge. Before approval, choose **View as** › **Journal** on the draft to preview the same entry.

![An approved invoice in the journal view: Accounts Receivable debited, sales credited, debits equal credits](https://www.zerabooks.com/help/shots/invoices-approved-journal.png)

No money moves. Cash is recorded later, when a deposit is matched to the invoice. See [Record payments and credits](https://www.zerabooks.com/help/invoices/record-payments-and-credits).

## Why Approve isn't available

Hover over **Preview** or **Approve** to see the reason. The common ones:

| Message | Fix |
| --- | --- |
| "Choose an active customer before previewing this invoice." | Pick a customer. |
| "Choose a category for every invoice line before previewing." | Every line needs a category. |
| "Replace Uncategorized Income with a specific income category before previewing." | Change the line's category. |
| "Declare this client’s books currency before approving invoices — open Manage Clients and edit the client to set it." | Set the company's currency. |
| "This invoice has tax on a line, but no account is declared for tax charged on sales. …" | Declare **Tax charged on sales** in [Invoice accounting settings](https://www.zerabooks.com/help/invoices/invoice-accounting-settings). |
| "This invoice has retainage held back, but no Holdback Receivable account is declared …" | Declare **Holdback receivable** in the same settings. |
| "Invoice date is in a closed period" | Use a date after your closing date, or [reopen the books](https://www.zerabooks.com/help/reconciliations/close-and-reopen-the-books). |

{% hint style="warning" %}
If you see "This invoice looks already paid — a deposit in the bank settles it exactly.", the customer's payment is already in an uploaded statement. Apply that payment so the revenue is counted once, or choose **Not this payment** if it's unrelated.
{% endhint %}

## Frequently Asked Questions

<details>
<summary>Does approving an invoice record revenue?</summary>

Yes. Approval credits each line's income category and debits Accounts Receivable on the invoice date. Payment later only clears Accounts Receivable, so revenue is never counted twice.
</details>

<details>
<summary>Can Autopilot approve invoices for me?</summary>

Yes, uploaded invoices that pass every check, when **Approve bills and invoices** is on (it is by default). Turn it off on the **Autopilot** page to approve every invoice yourself. See [Choose how much ZeraBooks does](https://www.zerabooks.com/help/autopilot/choose-how-much-zerabooks-does).
</details>

<details>
<summary>Can I change an invoice after approving it?</summary>

Yes. Click **Edit**, make the change and save; ZeraBooks reposts the entry. See [Edit, duplicate, void or delete an invoice](https://www.zerabooks.com/help/invoices/edit-duplicate-void-or-delete-an-invoice).
</details>

<details>
<summary>What if the invoice is in another currency?</summary>

Once its currency is confirmed, it posts at that date's exchange rate. Differences when it's paid land on Exchange Gain or Loss.
</details>

<details>
<summary>Is there an approval workflow for a second person?</summary>

No. ZeraBooks has no approvers or roles. Whoever is working in the company approves the invoice.
</details>

---

## Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://www.zerabooks.com/help/invoices/approve-an-invoice.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.

The full index is at https://www.zerabooks.com/help/llms.txt. An MCP server with `searchDocumentation`, `getPage` and `askQuestion` tools is at https://www.zerabooks.com/help/mcp.
