Skip to main content
← All posts

PO Discipline Without an ERP: Three-Way Match for Small Teams

September 16, 2026 · BuyFlow Team

PO Discipline Without an ERP: Three-Way Match for Small Teams

Enterprise procurement suites sell three-way matching as if you need a P2P platform, a warehouse module, and a dedicated AP analyst. Most growing teams that already live in Slack and book in QuickBooks or Xero do not have that stack. They still get hit by the same problems: invoices that do not match what was ordered, short shipments billed in full, and "approvals" that only exist in a DM.

You do not need NetSuite to fix that. You need a lightweight purchase-order habit, a simple receipt or service confirmation, and a rule that cash does not leave until those pieces agree.

What three-way matching actually asks

Before you pay a supplier invoice, compare three answers:

  1. Purchase order (or written approval): What did we authorize — vendor, quantity, price, project, and who said yes?
  2. Receiving or fulfillment record: What actually arrived or was delivered?
  3. Supplier invoice: What are we being asked to pay?

That framing is the core of practical SMB guidance on three-way matching: the PO proves authorization, the receipt proves fulfillment, and the invoice proves the payable (Beancount). The match succeeds when the invoice describes goods or work that were ordered and received at an approved price. Minor freight, tax, or partial-shipment differences become documented exceptions instead of silent approvals.

Two-way matching (PO to invoice only) still catches unauthorized price changes and invoices with no approval on file. It misses quantity problems when nobody logged what arrived. Use three-way for physical goods, equipment, and inventory. Use two-way or contract matching for rent, SaaS, insurance, and recurring services where a warehouse receipt is not the right evidence (Beancount; Cash Flow Pick).

Why this matters before you buy software

QuickBooks Online can track purchase orders, but it does not enforce three-way matching on its own — reconciling POs, receipts, and invoices usually needs process discipline or a bolt-on AP tool (Cash Flow Pick). Xero-style PO-to-bill flows help once someone raises a formal order in the ledger. Neither system invents the missing upstream decision when the buy started as "can we get this?" in Slack.

If your company buys by phone, informal email, or verbal orders, you have nothing to match against. Formalizing numbered POs (or an equivalent written approval with price and quantity) is the first step — the PO can live in a spreadsheet, a shared form, or the accounting system; what matters is that it exists, is sequential, and is hard to edit without a history (ininvoice).

Cash Flow Pick's practical rule of thumb: companies under roughly $2M in annual vendor spend, or without a formal receiving process, often get more overhead than value from full three-way matching; two-way matching covers most of the risk with less friction. Teams that turn matching on for the first time commonly see first-month match rates under 70%, with roughly 20–30% of invoices failing to match cleanly — often short shipments billed at full quantity or price changes that were never approved (Cash Flow Pick). That is not an argument against control. It is evidence that informal buying was already leaking money.

Role design beats headcount theater

Large companies split procurement, receiving, and AP across teams. A small company may have one ops lead, a bookkeeper, and a founder. That staffing gap does not remove the risk; it makes role design more important (Beancount).

Segregation-of-duties guidance for lean finance teams is blunt: you will not get textbook SoD with two or three people, and auditors know it. The realistic minimum is that finance (or whoever initiates and records) never self-approves — a second person, often the founder or budget owner, approves — plus compensating controls such as owner review of payment runs, maker-checker on bank releases, system audit logs, and bank-feed review (Stampli; CFOmatrix).

For matching specifically, the person who receives goods should not be the only person who can approve payment. When full separation is impossible, use compensating controls: owner review of the payment batch, read-only bank access for the bookkeeper, approval thresholds, and a monthly review of vendor changes and unusual payments (Beancount).

If you approve in Slack for speed, capture that approval back into the bill or PO record in QuickBooks or Xero. Chat speed without a retained trail fails the diligence test even when the human judgment was sound (CFOmatrix).

A lightweight process you can run this week

Skip the ERP project. Install the control where purchases already start.

1. Define when a PO (or written approval) is required

Pick a threshold that matches your risk — for example, any new vendor, any physical goods order, or any spend above a fixed amount. The document needs supplier, what is being bought, quantity, agreed price, cost center or project, and the named approver (Beancount). Recurring buys can use a standing approval with an expiration date and a spending ceiling.

2. Put intake where work already happens

If purchase requests die in Slack DMs, give people a structured request there: vendor, amount, category, why, and quote. Route by risk — manager for in-budget renewals, finance for new vendors and exceptions. The yes becomes the PO (or PO reference) that AP will match later.

3. Record receipt independently and promptly

Whoever takes delivery logs what arrived against the PO number — date, quantity, condition, partials, damage — not what the PO hoped for. Services need a milestone sign-off or manager confirmation that the work was performed (Beancount). A shared sheet or AP tool receiving field is enough to start; Cash Flow Pick notes most teams can get a workable receiving habit in a few weeks (Cash Flow Pick).

Never mark goods received just because an invoice exists.

4. Funnel invoices and match at the line level

Ask vendors to put the PO number on every bill and send invoices to one controlled inbox. Compare vendor, invoice number, PO, line quantities, prices, tax, and total — total-only checks hide overcharges offset by undercharges on other lines (ininvoice; Beancount).

Set narrow written tolerances before exceptions pile up. A common starting point discussed in AP practice is a small price tolerance (often in the low single-digit percent range) with stricter quantity review; document whatever you choose so overrides are intentional (Cash Flow Pick).

5. Hold mismatches with an owner and a deadline

Quantity short, price creep, missing receipt, duplicate suspicion, or an unknown vendor / bank-detail change each get a status, an owner, and a next action (Beancount). A weekly exception list beats a policy nobody opens.

6. Keep payment release separate from invoice entry

Where you can, the person who posts the bill is not the person who releases cash. Owner or CFO review of the payment run — payee, amount, and supporting invoice, not just a batch total — is the compensating control small teams rely on (Stampli).

How this fits Slack + QuickBooks / Xero

BuyFlow sits on the authorization side of the match: Slack purchase approvals that sync into QuickBooks or Xero, without a new corporate card or payment rail. The approval trail becomes the "what did we authorize?" document. Your ledger stays the system of record for bills and payments. Receiving still needs a named owner in ops. Matching still needs someone in finance to hold exceptions. The win is that the PO (or approval package) already exists before the invoice lands — so month-end is confirmation, not archaeology.

Checklist for this week

  • Write the one-page rule: when a PO / written approval is required, who approves, and what fields are mandatory.
  • Number the last 10 non-routine buys. How many have a clear pre-commit approval you could show an auditor?
  • Name a receiver or service owner for physical goods and for project-based services.
  • Stand up a single invoice inbox and a simple exception sheet (owner, reason, due date).
  • Confirm that Slack or chat approvals are attached back to the QBO/Xero bill or PO.
  • Pick two-way vs three-way by category — do not force warehouse workflows onto SaaS renewals.

PO discipline is not an enterprise hobby. For a small team, it is numbered approvals, honest receiving, line-level invoice checks, and a second set of eyes before money moves — run in the tools you already use.