MosoFin · three-way match, in plain words

Should this bill be paid?

Before you pay, three documents should agree: what you ordered, what arrived, and what the supplier billed. This skill checks line by line that they agree. It tells you what to pay, what to hold, and what to return.

The 20-second version

You give it the purchase order, the delivery record and the invoice, or let it read them from your books. It compares price, quantity and item on every line and applies your tolerance. It lists every difference with a reason and an owner. Then it recommends Pay, Hold or Reject. It never pays anything itself.

Three documents, one question

Ordered, arrived, billed: do they agree?

A purchase order says what you agreed to buy and at what price. A goods receipt says what actually arrived. The invoice says what the supplier wants paid. A different person writes each one at a different time, which is exactly why comparing them catches so much. The US government will not pay a supplier without a receiving report to back the invoice1. This skill applies the same discipline to a small business.

1 · PURCHASE ORDER What you agreed to buy 100 chairs × $42.00 = $4,200.00 2 · GOODS RECEIPT What actually arrived 96 chairs 4 rejected as damaged 3 · INVOICE What the supplier billed 100 chairs × $43.50 = $4,350.00 Price: $1.50 a chair over the order Quantity: 4 chairs billed, not received
These figures are examples. The invoice has two differences. The supplier charged more per chair than agreed. The supplier also billed for four chairs that were returned. If you paid the invoice as billed, you would overpay $318, and nothing on the invoice itself would tell you.
The mistake it catches

A PO number on the invoice is not a match

Suppliers print your purchase-order number on their invoices as a courtesy. In many offices that is enough: the number is there, someone approves the invoice, and someone pays it. But a printed number checks nothing until someone compares it with the order. The skill opens the order that the number identifies. Then it compares the two.

What the skill does

The skill opens the order and the delivery record. It compares every line.
Ordered: 100 × $42.00$4,200.00
Arrived and accepted96 chairs
Billed: 100 × $43.50$4,350.00
Pay the matched part: 96 × $42.00$4,032.00
Recommendation: pay $4,032, and dispute $318 (that is $150 of price and $168 for the four chairs that never stayed). The skill lists two exceptions, each with an owner.

The common shortcut

"It has our PO number on it": approve and pay
Invoice shows PO-1041✓
The manager approves the invoice✓
You pay as billed$4,350.00
You overpay, and nobody knows$318.00
The price creep and the short delivery are invisible. Nothing in that process stops the next invoice from doing the same.
In this example$318overpaid on one invoice, 7.6% of the order
Billing schemes22%of occupational fraud cases involve billing schemes, the most common asset-theft scheme in the study2
Typical loss$100,000median loss in a billing scheme. A third of all frauds happen where controls are missing2

Most differences the skill finds are honest ones: a price list changed, a delivery was short, an invoice arrived twice. It reports what it sees as amounts and counts, never as an accusation. People decide what it means.

One honest limit

It can only match the documents you actually have

The invoice is always in your books. The purchase order often is. In QuickBooks Online, purchase orders exist only on the Plus and Advanced plans3. QuickBooks closes a PO automatically once all its quantities are on bills, expenses or checks6. The delivery record usually isn't: receiving happens in a warehouse, on a clipboard, or nowhere. So the first thing the skill does is count the legs it has.

With all three, it runs a three-way match. With orders and invoices but no delivery records, it runs a two-way match and says so, in the report and in the file name. It does so because the missing leg is the one that proves the goods arrived. The five tests that depend on that leg did not run. Without that line, a test that never ran would look like one that passed.

How a run starts

It asks six questions before it looks at anything

  1. Use MosoFin as your data source, or upload the files yourself?
    MosoFin is the connection to your books (QuickBooks and the other platforms you link). With it, the skill reads the data from there. Without it, you upload the files and the checks are the same. You need no subscription.
  2. How much difference is acceptable on price, on quantity, on the total?
    The answer is your policy, not the skill's. If you do not give one, the skill expects an exact match and flags every penny.
  3. Who may approve an order, and up to what amount?
    A perfectly matching invoice on an unapproved order is still unauthorised spending.
  4. Do you buy services as well as goods? What replaces a delivery record?
    A signed "work completed" note serves as the receipt.
  5. Do you have any orders in a foreign currency? How do you convert them?
    A price difference that is really an exchange-rate move is the classic false alarm.
  6. Who resolves the exceptions?
    Every difference gets a named owner, not a pile.

Then it repeats your answers to you: "Matching September's invoices for Northbrook Trading against purchase orders and goods receipts, 2% price tolerance, exact on quantity. Go ahead?" It waits for your yes.

What you need

Connect once, or upload three kinds of document

Connected with MosoFin

Say yes, then fill the gaps

  • It reads the invoices from your books. They are always there
  • It reads purchase orders if your plan records them
  • It checks whether delivery records exist in the system. If they do not, it asks you for them
  • You still enter the tolerance and who may approve what
Uploading instead

Bring the three documents

  • Purchase order(s): PDF, spreadsheet or CSV
  • Delivery record: goods receipt, proof of delivery, or a signed service confirmation
  • Invoice(s): PDF, spreadsheet or CSV
  • Helpful: your tolerance policy and approval limits, which you type in the chat
What you get back

Pay, hold or reject, and why, line by line

A recommendation per invoicePay, Hold or Reject, with the matched amount and the disputed amount. A person acts on it.
Every line, side by sideThe skill shows the ordered, received and billed quantities. It shows the ordered and billed prices, the difference and the tolerance it applied. It also shows how it matched the line.
Every exception, with an ownerThe skill uses fifteen kinds of exception, from price creep to a damaged delivery billed in full to an order nobody approved. Each has a severity and a next step.
What only the whole month showsThe skill shows a supplier always just inside tolerance, receipts posted in bulk on one date, and goods received but never billed. You owe for those goods and should book them4.
What it never does
  • Never pays, holds or releases money. It recommends. A person acts.
  • Never invents a tolerance. How much overbilling is acceptable is your decision.
  • Never lets a test that couldn't run look like a pass. It lists what it couldn't check, and why.
  • Never concludes fraud. It reports patterns with amounts and counts. People conclude.
  • Never changes your books, and never reads anything before you say yes.
Words you'll hear

Six terms, in plain English

Purchase order (PO)
Your written order to a supplier: what, how many, at what price. In QuickBooks Online it is a Plus or Advanced feature3. It closes once all its quantities are billed6.
Goods receipt
The record of what arrived: how many, and in what condition. Government buyers call it a receiving report. They will not pay without one1.
Tolerance
The difference you're willing to accept without a question, for example 2% on price. The skill applies yours. Without one, it expects an exact match.
Received, not billed
Goods that arrived, but the invoice did not arrive. You already owe for them. Accounting standards treat an obligation you can't avoid, arising from something that already happened, as a liability4.
Override
Paying an invoice despite an exception. This is fine with a written reason and a named approver. A pile of unexplained overrides is the control disabled.
Separation of duties
The person who orders should not also receive, approve and pay. Splitting authority, custody and record-keeping is the basic control against fraud and error5. The skill flags one name across several steps.
Sources

Where the facts on this page come from

The sources are government procurement rules, the US internal-control standard, the fraud examiners' association, an accounting standard-setter and the software's own documentation. The list shows each source as published when MosoFin checked it on 21 October 2026. Follow the link for today's wording. What the skill does comes from the skill's own file.

  1. Federal Acquisition Regulation 32.905: Payment documentation and processA receiving report or other authorisation that shows quantities received and accepted must support invoice payments. A proper invoice carries the order number, description, quantity, unit price and extended price.
  2. ACFE: Occupational Fraud 2024: A Report to the NationsThe report analyzes 1,921 cases. Billing schemes appear in 22% of cases, with a $100,000 median loss, and are the most common asset-misappropriation scheme. Of all frauds, 32% occurred where internal controls were lacking.
  3. Intuit: Create and send purchase orders in QuickBooks OnlinePurchase orders are available on the Plus and Advanced plans. A new PO is Open. The article does not cover recording goods received.
  4. IFRS Foundation: Conceptual Framework for Financial Reporting, project summary (2018)A liability is a present obligation to transfer an economic resource as a result of past events. An obligation is a duty the entity has no practical ability to avoid.
  5. GAO: Standards for Internal Control in the Federal Government (Green Book), GAO-25-107721, ¶10.21–10.23Segregate authority, custody and accounting. Where that is not practical, design alternative controls.
  6. Intuit: Add purchase orders to expenses, bills, or checks in QuickBooks OnlineQuickBooks closes a purchase order automatically when all its quantities are added to bills, expenses or checks. Several transactions can draw on one purchase order.

No outside authority backs the fifteen exception types, their severities and the "exact match if no tolerance is given" default. They are the skill's own rules. They are sound accounts-payable practice, not a published standard.

About this skill

This page explains three-way-match, from the MosoFin finance skills library, MosoFin/mosofin-finance-skills on GitHub. Read the skill on GitHub → Want the worked examples? Learn it step by step →