Nordlet

Docs / Glossary

What Is a Purchase Order? PO vs Invoice and the 3-Way Match

What a purchase order commits you to, how it differs from an invoice, and how the three-way match against goods receipts catches what would otherwise be overpaid.

A purchase order is the document you issue to a supplier saying what you want to buy, at what price, in what quantity, delivered when. It is the buyer's document; the invoice is the seller's. Getting that direction straight explains most of what follows.

Its purpose is to make a purchase decision explicit before money is committed, rather than discovering it when an invoice arrives.

PO vs invoice

Purchase order Invoice
Issued by Buyer Seller
Says "We agree to buy this" "You owe us for this"
Timing Before delivery At or after delivery
Accounting effect None Recognizes the expense and the payable
Binds A commitment to buy A legal claim for payment

That "none" is the point most explanations miss. A purchase order creates a commitment, not a liability. Nothing has been received, no expense has been incurred, and nothing appears in the general ledger — because under accrual accounting the expense arises when the goods or services are received, not when they are ordered.

Commitments still matter for management: 40,000 € of open orders is money that will leave, and budget-holders need to see it. But it belongs in commitment reporting, not on the balance sheet.

The document chain

A controlled purchase produces three documents in order:

  1. Purchase order — what we agreed to buy. Issued and approved before anything happens.
  2. Goods receipt — what actually arrived, recorded at the moment of delivery by whoever received it.
  3. Supplier invoice — what we are being charged.

Each answers a different question, and the value comes from comparing them.

The three-way match

Match the three documents and four expensive mistakes become visible before payment:

  • Invoiced but never ordered — an unauthorized purchase, or someone else's invoice.
  • Invoiced but never received — paying for goods that didn't arrive.
  • Invoiced for more than received — quantity overcharge, or a partial delivery billed in full.
  • Invoiced at the wrong price — list price instead of the agreed price, or a quiet increase.

If the three agree within tolerance, the invoice can be approved for payment mechanically. If they don't, the mismatch is the review item — which is far more useful than asking a human to eyeball every invoice and hope.

Nordlet implements the match. POST /v1/purchases/invoices/match takes an invoice linked to a purchase order and a priceTolerancePercent, then compares line by line, returning a verdict per line:

Verdict Meaning
matched Ordered, received and invoiced agree within tolerance
not_on_order The invoice line has no corresponding order line
not_received Invoiced, but nothing has been received against that line
over_invoiced Invoiced quantity exceeds what was received
price_mismatch Unit price differs from the order by more than the tolerance

The overall batch verdict is matched only if every line matches. Each row reports ordered, received and invoiced quantities plus the two unit prices and the variance percentage, so the discrepancy is quantified rather than merely flagged. Lines are compared by item where the order and invoice both reference a catalogue item, and by description otherwise.

The tolerance is deliberate: a 0.3% price variance from rounding or a currency conversion should not block a payment run, while a 15% increase should.

The order lifecycle

An order moves through explicit states rather than a single "open/closed" flag: draftsubmittedapproved, then partially_receivedreceived as goods arrive, ending at closed, with cancelled available throughout.

That granularity is what makes the match possible. Receipts are recorded against order lines with POST /v1/purchases/receipts/create, which accumulates a received quantity per line — the middle number in the three-way comparison, and the one that is missing entirely in companies that go straight from order to invoice.

Receiving goods also has an inventory consequence: for stock items, the receipt is what brings quantity and cost into inventory, which is where the cost sits until the goods are sold.

When a PO is worth it

Purchase orders add process, and process has a cost. They earn it when:

  • Someone other than the payer can commit spend. The PO is the approval, captured before the commitment exists.
  • Goods arrive separately from invoices. Without a receipt record, "did it arrive?" is answered by memory.
  • Prices are negotiated. A PO is the evidence of what was agreed, and the reference the invoice is checked against.
  • Budget-holders need forward visibility. Open orders are the pipeline of committed spend.

They are overhead for a two-person company buying software subscriptions, and indispensable for one buying inventory from twenty suppliers. Neither answer is wrong; the mistake is running the process without ever using the match it exists to enable.

FAQ

Is a purchase order a legally binding contract?

Generally it becomes binding once the supplier accepts it, forming a contract on its terms — which is why the PO should carry the price, quantity, delivery date and payment terms. Exact treatment depends on national contract law and any framework agreement already in place.

Does a purchase order create an accounting entry?

No. It is a commitment, not a transaction: nothing has been received and no obligation to pay exists yet. The first ledger entry comes when goods are received or the supplier invoice is registered.

What is the difference between two-way and three-way matching?

Two-way compares the purchase order and the invoice — price and quantity ordered. Three-way adds the goods receipt, so you also verify that what you are paying for actually arrived. Services often use two-way matching because there is nothing physical to receive.

What happens if the invoice doesn't match the order?

The match returns the specific reason per line — not on order, not received, over-invoiced or price mismatch — with the quantities and variance. That becomes the query to the supplier; payment waits until it is resolved or a credit note is issued.

Can one purchase order have several invoices?

Yes, and it is common with partial deliveries — which is why the order lifecycle includes a partially_received state and receipts accumulate a received quantity per line. Each invoice is matched against what has been received so far, not against the whole order.