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

# Review and Sync Invoices as Bills

> Approve vendor invoices your staff have already processed, and post them to your accounting system as bills you pay there.

Approved vendor invoices in Vori post to your accounting system as **bills**: real accounts-payable records that appear in AP aging and carry terms and a due date. You pay them in your accounting system exactly like a bill you entered by hand. An invoice with a negative total posts as a [vendor credit](#vendor-credits) instead.

Invoice sync requires that you process invoices in Vori, so you need the Vori software tier that includes invoice processing. Two things are configured before invoices can flow: accounts and vendors.

***

### Accounts

To represent a bill correctly, map these under **Accounting → [GL Account Mapping](/accounting-integrations/gl-account-mapping)**:

| What | Where it maps | Notes |
| - | - | - |
| Department purchases | The **Inventory** account for each department | Received product is an asset when it arrives, not an expense. It becomes COGS later, when the item sells. |
| Accounts payable | One AP account for the store | The credit side of every bill. |
| Unassigned Items and Other Charges | The **Inventory** account of the department with the most purchases on the invoice, or the **Default Inventory Account** | Freight, fees, deposits, and other amounts that belong to no department. See [Unassigned items and other charges](#unassigned-items-and-other-charges). |

This is what keeps department margin honest end to end: purchases raise the department's inventory asset, and sales relieve it against that department's COGS account. Both sides use the same department accounts, so the balance reflects what's actually on the shelf.

***

### Vendors

Your accounting-system vendors and Vori vendors have no shared identifier, so they're linked once per vendor. The first time you review an invoice from a vendor that isn't linked yet, Vori searches your accounting system for likely matches. You either:

* **Select the matching vendor**, or
* **Create a new vendor** — Vori shows you the vendor's details, you confirm them, and Vori writes the new record. This autofills from the invoice, so a contact name, phone number, or email on the invoice carries over. The vendor code is internal to your store, so you set that.

**Vori never silently creates vendors.** Vendor creation is always an explicit action you take. Once linked, the mapping persists, and every future invoice from that vendor skips this step.

You can link a Store Vendor the same way, even one that isn't mapped to a [Vori Vendor](/vendors-and-vendor-products/vendor-management/map-store-vendors-to-vori-global-vendors). If the Store Vendor and its Vori Vendor are both linked, the Store Vendor's link wins.

***

### How invoices reach Invoice Review

Invoices move from your staff to your accountant in one direction. Your staff process the invoice under **Invoices** (receiving, cost changes, inventory). When they commit it, its status there changes to **Done**, and it appears on **Accounting → [Invoice Review](https://app.vori.com/retail/accounting/invoice-review)** under **Needs Review**. There is no separate notification. The **Needs Review** count is your queue.

| Invoice Review tab | What's in it |
| - | - |
| **Waiting for Staff** | Invoices your staff are still working on (status **Ready** under **Invoices**). You can't approve them yet. |
| **Needs Review** | Invoices your staff finished. Review and approve them here. |
| **Pending Export** | Approved invoices waiting for your accounting system to confirm the bill or vendor credit. |
| **Done** | Bills and vendor credits your accounting system confirmed. |

If you aren't connected to an accounting system, **Pending Export** is called **Ready to Export**, and invoices move to **Done** when you download the CSV.

<Frame>
  <img src="https://mintcdn.com/vori/yGKniZaFXskHbmj6/images/invoice-review-and-bills/invoice-review-tabs.webp?fit=max&auto=format&n=yGKniZaFXskHbmj6&q=85&s=7a5f9aa322cf92ac3b6b9ba819151646" alt="Invoice Review page showing the Needs Review, Pending Export, Waiting for Staff, and Done tabs" width="1184" height="350" data-path="images/invoice-review-and-bills/invoice-review-tabs.webp" />
</Frame>

<Note>
  A **Done** under **Invoices** means your staff finished the invoice. A **Done** tab on Invoice Review means the bill is in your accounting system. An invoice can be Done for your staff and still wait in **Needs Review** for you.
</Note>

If someone commits an invoice before it's truly finished, it appears in **Needs Review**. Setting it back to **Ready** under **Invoices** moves it to **Waiting for Staff**.

***

### Approve an invoice

Open an invoice to see its detail: line items, costs, and the account each line is coded to, with department subtotals.

You can approve invoices two ways:

* **One at a time.** Click the check mark at the end of the row. It's active only when the invoice is ready to post. Hover over a gray check mark to see what's blocking it.
* **In bulk.** Select several invoices, then click **Approve** in the toolbar. Invoices whose vendor isn't linked yet are skipped, and Vori tells you how many.

<Frame>
  <img src="https://mintcdn.com/vori/yGKniZaFXskHbmj6/images/invoice-review-and-bills/invoice-review-quick-approve.webp?fit=max&auto=format&n=yGKniZaFXskHbmj6&q=85&s=5bc13141367fbf944c9d1169488bee14" alt="Approve check marks at the end of each row, with a gray one showing the tooltip 2 departments unmapped" width="790" height="204" data-path="images/invoice-review-and-bills/invoice-review-quick-approve.webp" />
</Frame>

<Frame>
  <img src="https://mintcdn.com/vori/NsycRLWZOkKquZlu/images/invoice-review-and-bills/invoice-review-bulk-approve.webp?fit=max&auto=format&n=NsycRLWZOkKquZlu&q=85&s=e7ee41ac2839f96fe8f9f30dfdd074c2" alt="Two invoices selected on Invoice Review with the Approve and Mark as done buttons in the toolbar" width="1184" height="840" data-path="images/invoice-review-and-bills/invoice-review-bulk-approve.webp" />
</Frame>

Approval is gated. An invoice can't be approved, and can't post, unless its vendor is linked and every line is coded to a valid account. Vori flags anything that would block approval:

* **Unassigned Items**: lines that aren't a sellable unit, so they weren't mapped during cost changes. Common examples are freight, bottle deposits, pallets, or a line that just says taxes. They post to the [main department's account, or to your Default Inventory Account](#unassigned-items-and-other-charges). If no account applies, pick one on the row before you approve. To move a line into a department instead, map it once for that vendor and Vori follows the same pattern next time.
* **Unmatched vendor** — the vendor exists in Vori but isn't linked to your accounting system yet. Search for it or create it, as above.

When an accounting system is connected, approval creates the bill and the invoice moves to **Pending Export**:

* **QuickBooks Online and Xero** confirm the bill within moments.
* **QuickBooks Desktop** receives the bill the next time the Web Connector runs on your accounting computer.

When your accounting system confirms the bill, the invoice moves to **Done** and carries a link to the resulting record.

Without a connected accounting system, approval moves the invoice to **Ready to Export**. Select the invoices you want and click **Export** to download a CSV, which moves them to **Done**.

***

### What the bill contains

| Bill field | Source |
| - | - |
| Vendor | The linked vendor |
| Reference number | The invoice number from Vori |
| Bill date | The invoice's billing date |
| Due date and terms | Derived from the invoice's billing date and due date |
| Line items | **One line per department** on the invoice, coded to that department's account |
| AP account | Your store-level accounts payable account |
| Class or tracking | Each line carries the store's [segment value](/accounting-integrations/gl-account-mapping#segments), such as its QuickBooks Desktop Class |

An invoice is summarized by department rather than passed through line by line, so a delivery covering produce, deli, and bakery becomes a bill with three lines. Department-level purchasing detail reaches your books without item-level clutter.

#### Example bill

A produce vendor delivers to two departments on one invoice, with freight billed separately on the same document. You picked the Freight account on the invoice's **Unassigned Items** row, so freight posts as its own line.

**Bill header**

| Field | Value |
| - | - |
| Vendor | Coastal Produce Co. |
| Reference no. | 48219 |
| Bill date | 2026-03-04 |
| Terms | Net 15 |
| Due date | 2026-03-19 |

**Bill lines**

| Account | Description | Amount |
| - | - | - |
| 1220 | Inventory - Produce | 1,842.50 |
| 1230 | Inventory - Deli | 210.00 |
| 7420 | Freight | 85.00 |
| | **Total** | **2,137.50** |

The three lines are debits, and the total is credited to your AP account. The bill appears in AP aging with a due date of 2026-03-19, and you pay it in your accounting system.

<Note>
  No COGS is recorded yet. Cost moves from inventory to COGS when the item sells, through the [daily journal entry](/accounting-integrations/daily-journal-entry).
</Note>

***

### Vendor credits

An invoice with a negative total, such as a return or a credit memo, posts as a **vendor credit** instead of a bill. In QuickBooks Desktop and QuickBooks Online that is a vendor credit; in Xero it is an accounts payable credit note. The amounts post as positives. The credit carries the same linked vendor, the same one line per department, the same AP account, and the same reference number as a bill. It has no due date or terms. Positive invoices are unchanged.

Approve a credit the same way: the check mark on the row, or **Approve** in bulk. Its lines must net negative like its total. If edits leave the lines netting to zero or positive while the total is negative, approval still goes through, but the sync fails with *Invoice total and allocations disagree in sign* and the invoice waits in **Pending Export** with a **Credit failed** badge. Fix the allocation amounts, then click **Retry** in Sync History.

On every Invoice Review tab, a credit shows its negative amount with a **Credit** badge. The column named for your accounting system reads **Pending Credit to QuickBooks** (or your system's name) while the credit waits. The invoice moves to **Done** when your accounting system confirms it. If the sync fails, the badge reads **Credit failed**; see [Retry a failed sync](/accounting-integrations/errors-and-sync-history#retry-a-failed-sync). The invoice header shows a **Credit** badge. With an accounting system connected, the invoice details card adds the note *Posts to QuickBooks as a vendor credit, not a bill.* (or Xero). Sync History lists the row as **Vendor Credit**.

**Mark as done** works for a credit you already entered by hand. Without a connected accounting system, the CSV export keeps the negative amounts.

#### Example vendor credit

A produce vendor picks up damaged product from two departments and issues a credit memo for -109.76.

**Credit header**

| Field | Value |
| - | - |
| Vendor | Coastal Produce Co. |
| Reference no. | CM-48260 |
| Date | 2026-03-11 |

**Credit lines**

| Account | Description | Amount |
| - | - | - |
| 1220 | Inventory - Produce | 96.40 |
| 1230 | Inventory - Deli | 13.36 |
| | **Total** | **109.76** |

The two lines credit inventory, and the total debits your AP account, so it reduces what you owe the vendor. No terms or due date apply. Apply the credit against a bill in your accounting system.

***

### Unassigned items and other charges

Two rows on an invoice belong to no department:

* **Unassigned Items** are lines that aren't a sellable unit, such as freight, bottle deposits, or pallets.
* **Other Charges** is the amount left after the line items and any [charges printed on a product line](#charges-printed-on-a-product-line). It's negative when the line items add up to more than the invoice total.

Vori posts both rows to the department with the most purchases on that invoice. They post on that department's bill line, so your accounting system shows one line for the account instead of a separate line for each charge. This is the **Send unassigned charges to the main department** setting, and it's on by default. To turn it off, see the [Settings tab](/accounting-integrations/gl-account-mapping#settings-tab) in GL Account Mapping.

The main department leaves out departments with **Post to main department** on, unless every department on the invoice has it on. See [Post a department to the main department](/accounting-integrations/gl-account-mapping#post-a-department-to-the-main-department).

Vori picks the account for each row in this order:

1. An account you picked on the invoice.
2. With the setting on, the inventory account of the department with the most purchases on the invoice.
3. Your [Default Inventory Account](/accounting-integrations/gl-account-mapping#default-inventory-account). Vori uses it when the setting is off, the invoice has no product departments, or the main department has no inventory account.

#### Delivery fee example

A seafood vendor's invoice totals $633.42. It has $621.42 of seafood products and a \$12.00 delivery fee.

| Setting | Bill lines |
| - | - |
| On | One line: \$633.42 to the Seafood inventory account. |
| Off | Two lines: $621.42 to the Seafood inventory account, and $12.00 to your Default Inventory Account. |

On a bill, if adding the charges would bring the department's line to zero or less, Vori posts them as separate lines.

#### Charges printed on a product line

Some vendors print a charge on a product's own line, such as an allowance or a bottle deposit like California Redemption Value (CRV). Vori counts these in that product's department instead of **Other Charges**, when the invoice total confirms they aren't already in the line amount. On Sysco invoices, sales tax printed on each line follows that line's department too.

Whatever is left stays in **Other Charges** and follows the **Send unassigned charges to the main department** setting: delivery or fuel fees, tax a vendor prints only as an invoice total, and small rounding differences. If you already picked an account or edited an amount on a row, Vori keeps the amount you saved.

#### Charges printed on their own line

Some vendors print a charge, such as CRV, on its own invoice line. When you code that line to a CRV department, it posts to that department's accounts as its own bill line.

To post it with the main department instead, turn on **Post to main department** for the CRV department. You set it on the **Department Accounts** tab in [GL Account Mapping](/accounting-integrations/gl-account-mapping#post-a-department-to-the-main-department). Before you approve, the department's row under **Accounting** shows the main department's account.

For example, a liquor invoice has $387.00 of wine and $4.80 of CRV on its own line, coded to CRV GROUP. CRV GROUP maps to the Grocery inventory account.

| Post to main department | Bill lines |
| - | - |
| Off | Two lines: $387.00 to the Liquor inventory account, and $4.80 to the Grocery inventory account. |
| On | One line: \$391.80 to the Liquor inventory account. |

As with other charges, if adding the CRV would bring the main department's line to zero or less, Vori posts it as a separate line.

#### Pick an account on one invoice

Before you approve an invoice, each row shows the account Vori will use. To use a different account, open the invoice and pick one on the **Unassigned Items** or **Other Charges** row under **Accounting**. An account you pick always wins over the main department and the Default Inventory Account. The choice applies to that invoice only, and approved invoices are locked.

<Frame>
  <img src="https://mintcdn.com/vori/NsycRLWZOkKquZlu/images/invoice-review-and-bills/unassigned-items-gl-picker.webp?fit=max&auto=format&n=NsycRLWZOkKquZlu&q=85&s=4ed15ec02d82ec342c48327f94fff93f" alt="Accounting card on an invoice with the GL Account picker open on the Other Charges row" width="1070" height="619" data-path="images/invoice-review-and-bills/unassigned-items-gl-picker.webp" />
</Frame>

If no account applies, the row shows **Needs assignment**, and you can't approve the invoice until you pick an account. That happens when the main department has no inventory account and the Default Inventory Account is empty.

#### When the settings apply

Vori applies **Send unassigned charges to the main department** and **Post to main department** when you approve an invoice. Turning either on or off doesn't change the accounts on invoices you already approved. A bill that already posted never changes.

The exception is a bill that failed. When you retry it, Vori rebuilds the bill with your current account mappings and settings. Its accounts and lines can differ from the first attempt. An account you picked on the invoice still wins.

CSV exports use the same accounts. The CSV has one debit line for each account on an invoice, so charges that post to the main department's account add to that department's line.

#### Set the Default Inventory Account

Set the **Default Inventory Account** on the **General Accounts** tab of [GL Account Mapping](https://app.vori.com/retail/accounting/gl-account-mapping). It covers fees, deposits, supplies you haven't mapped to a product, and negative remainders when no department account applies. Pick an inventory, cost of goods, or expense account, such as Freight. Never pick an income account. With Xero, don't pick an account of the Inventory type. Xero rejects those on bills, so use a cost of goods or expense account.

***

### Handling supplies and other back-door costs

Anything you receive through the back door can flow through Vori, including supplies like gloves, bags, and produce bags. Map these to a sellable unit (a PLU) kept in a dedicated supplies department, and they sync like any other line. Costs that aren't received goods, such as utilities, don't belong in this workflow.

***

### Mark invoices as done without exporting

Use **Mark as done** for invoices you already entered in your accounting system by hand, such as a backlog from before you connected. The invoices move to **Done**, and Vori sends nothing to your accounting system. Marking done skips the vendor and account checks that approval runs.

1. Go to **Accounting → [Invoice Review](https://app.vori.com/retail/accounting/invoice-review)**.
2. Open **Needs Review**. When you're connected, you can also use **Pending Export**. Only invoices whose sync failed qualify there, such as a bill you entered by hand after the sync failed.
3. Select the invoices. Select all works with your search and filters. Vori processes large selections in batches of 100, so a full backlog works.
4. Click **Mark as done** in the toolbar, then confirm.

Without a connection, **Mark as done** is available on **Needs Review** only.

<Frame>
  <img src="https://mintcdn.com/vori/NsycRLWZOkKquZlu/images/invoice-review-and-bills/mark-as-done-confirm.webp?fit=max&auto=format&n=NsycRLWZOkKquZlu&q=85&s=1e56c446ecdcaaf6073a9b602518c7ae" alt="Confirmation dialog asking to mark 2 invoices as done without sending them to QuickBooks" width="560" height="226" data-path="images/invoice-review-and-bills/mark-as-done-confirm.webp" />
</Frame>

The confirmation names your accounting system: *They move to Done without being sent to QuickBooks. Use this for invoices already entered in QuickBooks.* If a batch fails partway through, the earlier batches stay done and the rest stay selected, so you can try again.

Vori confirms with a message such as *3 invoices marked as done*. When it skips some invoices, the message gives the counts and reasons:

| Reason in the message | What it means |
| - | - |
| Already exported | The invoice is already in **Done**, or its bill already posted. |
| A QuickBooks push is still queued | Vori is still sending the bill, so the invoice stays in **Pending Export**. |
| Approved and waiting to export | The bill hasn't failed. Only invoices whose sync failed can be marked done from **Pending Export**. |
| You don't have access | You can't change accounting for that invoice's store. |

#### The Marked done badge

Invoices you mark done show a **Marked done** badge where exported invoices show **Exported**. Hover over it to see when it happened: *Moved to Done without exporting to QuickBooks. Marked done on 09/24/2026 at 2:15 PM PDT.* The badge appears in:

* The **Status** column on the **Done** tab. It's hidden by default. Show it from **Columns → Show/Hide Columns**.
* The header of the invoice in Invoice Review.
* The **Accounting** column on **[Invoices](https://app.vori.com/retail/invoices)**.

<Frame>
  <img src="https://mintcdn.com/vori/NsycRLWZOkKquZlu/images/invoice-review-and-bills/marked-done-badge.webp?fit=max&auto=format&n=NsycRLWZOkKquZlu&q=85&s=712517b4cf4c42057ab73d41d15a2efa" alt="Done tab with a Status column showing Marked done and Exported badges, and a tooltip open on the first Marked done badge" width="1244" height="360" data-path="images/invoice-review-and-bills/marked-done-badge.webp" />
</Frame>

#### Reopen a marked-done invoice

To send an invoice back for review, open the **Done** tab, select it, click **Reopen**, and confirm. It moves back to **Needs Review**, where you can approve it and post it as a bill.

Only invoices marked done can be reopened. Invoices whose bill posted, or whose CSV you downloaded, are skipped, and the message tells you why.

#### Retry a sync for a marked-done invoice

Vori refuses to retry a sync for a marked-done invoice, so it can't post a bill you already entered. Reopen the invoice first. See [Retry a failed sync](/accounting-integrations/errors-and-sync-history#retry-a-failed-sync).


## Related topics

- [Accounting Integrations](/accounting-integrations/accounting-integrations-overview.md)
- [Connect Xero](/accounting-integrations/connect-xero.md)
- [Connect QuickBooks Online](/accounting-integrations/connect-quickbooks-online.md)
