All guides
Matching8 min read

How to match partial deliveries in Xero: a worked example

One purchase order, two deliveries, two invoices. How to bill the right quantities in Xero, keep track of what is left on the order, and catch an invoice for goods that were sent back.

By the Tenet team
Key takeaway

Each invoice can bill what has been accepted so far, minus what earlier invoices already billed. The order total alone can’t tell you that.

In short
  • Available to bill = accepted to date − billed before. Not ordered, not delivered.
  • Rejected or damaged units are delivered but not accepted, so they aren’t billable.
  • In Xero, create each bill from the approved PO and enter the quantity you accept to pay.
  • Xero’s accounting product has no goods receipt, so keep the delivery notes with the bills.
  • Close the PO short when the rest won’t arrive.
In this guide
  1. The order
  2. What arrives, and what gets billed
  3. The running tally
  4. Doing it in Xero
  5. Four ways it goes wrong
  6. How Tenet does it

Partial deliveries are where invoice matching gets hard. Each invoice looks reasonable on its own, the order total is never exceeded, and yet units get paid for twice or paid for after they were sent back. The fix is a running tally per line. Here it is with one order, start to finish. All figures are illustrative and before tax.

The order

You raise PO-2231 to Harbour Wholesale and approve it in Xero:

LineOrderedUnit priceAmount
Shelf brackets4012.50500.00
Wall rails2018.00360.00
Total860.00

What arrives, and what gets billed

DateDocumentWhat it says
3 MarDelivery 1 (GRN-0457)24 brackets accepted; 20 rails accepted
4 MarInvoice INV-552124 brackets × 12.50 = 300.00; 20 rails × 18.00 = 360.00; total 660.00
10 MarDelivery 2 (GRN-0471)16 brackets delivered: 12 accepted, 4 rejected as damaged
11 MarInvoice INV-556016 brackets × 12.50 = 200.00

Against the order alone, nothing is wrong: 24 + 16 = 40 brackets, exactly what you ordered. That is what a 2-way match sees.

The running tally

The question for each invoice line is how many units you can still be billed for. The answer is what has been accepted so far, minus what earlier invoices already billed:

available to bill = accepted to date − billed before
Invoice and lineAccepted to dateBilled beforeAvailableBilled nowResult
INV-5521 · brackets2402424Agrees
INV-5521 · rails2002020Agrees
INV-5560 · brackets362412164 over: 50.00

INV-5560 bills the 4 damaged brackets that went back. The right outcome is a corrected invoice for 12 brackets (150.00) or a credit note for 4 (50.00), plus the tax on it. And 4 brackets are still open on the order: 40 ordered, 36 accepted.

Doing it in Xero

Since June 2026, Xero lets you bill part of a purchase order by quantity. The steps for this example:

  1. Raise and approve PO-2231. You can only create a bill from an approved PO.
  2. When INV-5521 arrives, open the approved PO and choose Create bill. Enter the quantities received: 24 brackets and 20 rails. Check the draft against the supplier's invoice, put INV-5521 in the Reference exactly as printed, attach the invoice, and approve.
  3. When delivery 2 arrives, keep the delivery note marked “12 accepted, 4 rejected”. Xero's accounting product has nowhere to record it. If you use Xero Inventory Plus, you can receive the 12 against the order there.
  4. When INV-5560 arrives for 16, don't create a bill for 16. Go back to the supplier for a corrected invoice or a credit note first. Then create the second bill from the PO for the 12 you accepted.
  5. Close out the order. If the last 4 brackets are still coming, leave the PO open. If they're not, close the PO short. If Xero has already marked a PO as billed and more goods do arrive, it lets you unmark it as billed and create another bill.

Xero shows a Billed column on the PO once it has been billed, but it doesn't keep the delivery side of the tally. The accepted quantities in the table above come from your delivery notes, so the comparison is still a person's job.

Four ways it goes wrong

  • Billing the order, not the delivery. Creating a bill for the full PO when only part has arrived pays for goods you don't have.
  • Counting delivered instead of accepted. The 4 damaged brackets were delivered. They weren't accepted, so they aren't billable.
  • Looking at each invoice on its own. INV-5560 for 16 looks fine next to an order for 40. Only the running tally shows that 24 were already billed.
  • Expecting the duplicate check to catch it. INV-5560 has its own number and amount, so a duplicate check, including Xero's duplicate bill review, has no reason to flag it. This is a matching problem, not a duplicate.

How Tenet does it

With 3-way matching on the Match plan, Tenet keeps this tally for every line. Goods receipts against the same order are added together, quantities billed on earlier invoices are netted off, and INV-5560 would be held as Blocked with the figures: 16 billed, 12 accepted and not yet billed. A person decides what happens next, and approving past the block needs a written reason. Tenet doesn't read purchase orders from Xero yet, so the PO and delivery notes are uploaded or emailed in.

We checked the Xero steps against Xero Central and Xero's own product update on 8 October 2026. Xero's menus change over time and vary by plan and region.

Sources

  1. Create bills from purchase orders, Xero Central
  2. Purchase Orders: show partial amounts billed (status Completed, update of 17 June 2026), Xero Product Ideas
  3. Receive a purchase order in Xero Inventory Plus, Xero Central
  4. Review duplicate bills or credit notes, Xero Central

Links checked 8 October 2026. Official guidance changes; the publisher's current page takes precedence over this article.

Check every invoice before you approve it

Tenet checks every invoice, matches it to POs and goods receipts on the Match plan, and holds exceptions for your team.

How Tenet does this: 3-way matching.