---
title: "Supplier bills and the 3-way match"
description: "Enter or pull in a supplier's bill, match it against the purchase order and what was received, roll freight into landed cost, and export it to payables."
url: "https://support.outpostplatform.com/procurement/supplier-bills/"
product: "depot"
type: "how-to"
status: "draft"
ai_summary: "Enter a supplier bill or pull it from a distributor, run the 3-way match against the purchase order and receipts within price (2 percent) and freight ($25.00) tolerances, approve to allocate freight and fees as landed cost into average cost, assets, and sales order margin, export approved bills to a payables CSV, or void."
availability:
  plans: ["home-lab", "essentials", "enterprise", "msp"]
  permission: "procurement:write"
  preview: false
source: "https://gitlab.com/outpostplatform/docs/-/edit/main/src/content/docs/procurement/supplier-bills.md"
license: "CC BY 4.0"
---

# Supplier bills and the 3-way match

A supplier bill is the supplier's invoice to you. Outpost checks it against
what you ordered and what arrived before you pay it, and spreads freight and
fees over the goods so that your stock cost and your margins include them.
This page covers entering a bill, the match, approval and landed cost, and
exporting bills to your accounts payable system.

## Before you begin

- Entering and matching bills needs `procurement:write`. Approving, voiding,
  and exporting them needs `procurement:approve`.
- The goods on the bill have been received. See
  [Receive deliveries](/procurement/receiving/).

## Enter a bill

1. Select **Procurement** > **Supplier bills**, then **Enter a bill**.
2. Choose the **Supplier**, and enter **Their invoice number**, the **Bill
   date**, and the **Due** date.
3. In **Copy received lines from**, choose the purchase order, then select
   **Copy lines**. The received lines are copied with their quantities and
   costs. Change any line to match what the supplier billed.
4. Enter the **Freight** and **Tax** the supplier charged.
5. Select **Save bill**.

A bill can cover more than one purchase order. Copy lines from each, or
select **Add a line** and pick the **Purchase order** for the line.

### Bills from a distributor

A distributor connection that supports invoices pulls the distributor's bills
in every 6 hours and matches them on arrival. They show **From the
distributor**. The first pull after a connection is added reaches back 120
days. See [Distributor connections](/procurement/distributors/).

Pax8 bills have no invoice number of their own, so they are named **Pax8**
followed by the invoice date. A second bill on the same date gets `(2)`, and
so on.

## Run the match

Open the bill and select **Run the match**. Saving a change to a bill does
not re-run it, so run it again after editing.

### How the match works

The **Three-way match** card puts each bill line beside its purchase order
line and what was received: **Ordered**, **Received**, **Billed**, **PO
cost**, **Billed cost**, **Amount**, **Match**, and **Variance**.

| Line result | When |
| --- | --- |
| **Matched** | The billed quantity is no more than was received, and the billed unit cost is within the **Price tolerance, percent** of the purchase order's. |
| **Variance** | The line is billed for more than arrived, or its cost is outside the price tolerance. |
| **Unmatched** | The line is not on a purchase order. |

Freight is checked as a whole: billed freight within the **Freight
tolerance** of the purchase order's freight still matches. Freight outside it
shows **Differs from the order**.

The bill is **Matched** when every line is, and **Variance** otherwise, with
the total variance shown. Set the tolerances in **Procurement** > **Settings**
on the **Bill matching** card. The defaults are 2 percent and $25.00.

## Approve the bill

Select **Approve**. A bill with a variance asks you to confirm the amount it
is over or under what was ordered and received.

Approving writes the landed cost:

- The bill's freight and fees are spread over the purchase order's stocked
  lines in proportion to each line's value. Any difference between the
  billed and ordered price is allocated to its own line.
- Each allocation goes into the stock item's average cost, for the received
  units still on hand. See
  [Inventory](/procurement/inventory/#how-stock-is-costed).
- Each received asset still in your stock gets its share per unit, shown on
  the asset as **landed** cost. Assets already delivered to a client keep the
  cost they were received at.
- A sales order the goods were bought for counts the landed cost in its
  margin. See [Sales orders](/msp/sales-orders/#margin).

Approving the same bill twice never adds the cost twice.

## Export to payables

1. On **Procurement** > **Supplier bills**, select the approved bills to
   export.
2. Select **Export to payables**.

Outpost downloads a CSV file and marks each bill **Exported**. The file has
the columns `Batch`, `Supplier`, `Supplier account`, `Bill number`, `Bill
date`, `Due date`, `Currency`, `Subtotal`, `Freight`, `Tax`, and `Total`,
one row per bill. Import it into your accounting system. Only approved bills
can be exported, up to 1,000 at a time.

## Void a bill

Select **Void** on a bill that was entered by mistake. A bill can be voided
until it is exported, even after approval. Landed cost from an approved bill
stays where it was allocated.

## Bill statuses

| Status | Meaning |
| --- | --- |
| **Draft** | Entered, not yet matched. |
| **Matched** | Every line matches. |
| **Variance** | At least one line or the freight is outside tolerance. |
| **Approved** | Approved, and its landed cost allocated. |
| **Exported** | Included in a payables export. |
| **Void** | Voided. |

## Verify

- The bill shows **Approved**, with who approved it and when.
- The stock item's **Average cost** includes the freight.
- On the MSP plan, the sales order's **Margin** card shows the cost basis
  **Received, with freight and fees**.

## Next steps

- [Inventory](/procurement/inventory/)
- [Sales orders](/msp/sales-orders/)
