Accounts payable goes wrong in a predictable way: invoices arrive in an inbox, someone chases an approval, and the only record that a supplier invoice exists is an email thread. The fix is not a faster chaser. It is making the invoice arrive against something the system already knows about.
This page covers where AP actually breaks, what three-way matching does, what can be automated and what should not be, and how to tell whether you have a process problem or a system one.
Where does AP break?
In the gap between the invoice arriving and anyone knowing whether it should be paid.
The symptoms are familiar in most Australian SMEs:
- Approval by email. The invoice sits with one person, who is on leave, and nobody else can see that it is waiting.
- No purchase order to check against. The invoice is approved because the supplier is known, not because the goods arrived at that price.
- Duplicate payments. The same invoice arrives twice, as a PDF and as a statement line, and both get paid.
- Price and quantity drift. The quoted price was one figure, the invoice is another, and nobody compares because comparing takes longer than approving.
- Month end surprises. Invoices for the period arrive after the books close, so accruals are an estimate every month.
None of these are caused by the volume of invoices. They are caused by the invoice being the first record in the chain rather than the last.
What is three-way matching, and why does it matter?
Three-way matching compares the purchase order, the goods receipt and the supplier invoice before the invoice is approved. Price and quantity have to agree across all three, or the invoice is held.
That one control removes most of the list above. There is a purchase order, so somebody authorised the spend before it happened. There is a receipt, so the goods arrived. The invoice matches both, or a human looks at why it does not.
In Odoo this is configuration rather than development. Purchase orders create expected receipts, receipts create the stock movement and the accrual, and the vendor bill matches against both. Tolerances can be set so a small freight variance does not stop a payment while a 20% price rise does.
The honest caveat: three-way matching only works where there is a purchase order. Services, subscriptions and utilities often have none, and forcing one creates paperwork without adding control. Those belong on a different path, usually a recurring bill with an owner and a budget line.
What should be automated?
The checking, not the deciding.
Worth automating:
- Capture. Invoices emailed to a dedicated address land as draft vendor bills with the PDF attached, rather than in a person's inbox.
- Matching. The system compares against the purchase order and receipt and flags only what disagrees.
- Duplicate detection. Same supplier, same invoice number, same amount gets caught before payment, not at reconciliation.
- Routing. Approval goes to a role, by value threshold, with the queue visible to more than one person.
- Payment runs. Approved bills batched by due date, with the ABA file produced from what was approved.
Not worth automating: the approval itself above any meaningful threshold, anything with no purchase order and no history, and the first month of any new supplier. Automation applied to a process nobody has agreed on just produces wrong answers faster. More on that in AI and Automation.
Is it a process problem or a system problem?
A question worth answering before buying anything.
It is a system problem when the process is agreed and the tools cannot carry it: approvals exist but live in email, purchase orders exist but on paper, the information is there but cannot be reported on.
It is a process problem when nobody can say who approves what above which amount, when purchase orders are raised after the goods arrive, or when the answer to "who owns this supplier relationship" is a shrug. Installing a system on top of that encodes the confusion.
Most businesses have some of both, and the useful move is to settle the thresholds and owners first, on paper, then configure what was agreed. That takes an afternoon and saves a quarter.
What does good AP look like day to day?
Short and boring, which is the point.
An invoice arrives at the capture address and becomes a draft bill with its PDF attached. It matches a purchase order and a receipt, so it moves straight to approved. It appears in the next payment run, batched by due date. The payment reconciles against the bank feed automatically. Nobody touched it.
The ones that do not match surface as a short daily list: price variance, quantity variance, no purchase order, possible duplicate. That list is the actual work, and it is usually a fraction of the volume.
Month end then has a real creditors figure rather than an estimate, because the receipts created the accrual when the goods arrived.
How we work
Ooda Consulting is based in Sydney at Level 6/201 Kent St and works with SMEs across Australia and New Zealand. The Australian team scopes the work and supports it afterwards, with a dedicated senior developer doing the build.
See Odoo ERP Implementation for how a build is scoped and staged, or Outgrowing Xero or MYOB? if accounts payable is one of several reasons the current package is creaking.
Frequently asked questions
Can Odoo automate supplier invoice processing?
Yes. Invoices emailed to a dedicated address become draft vendor bills with the PDF attached, then match automatically against the purchase order and goods receipt. Only the ones that disagree need a person, which is usually a small fraction of the volume.
What is three-way matching?
It is a check that the purchase order, the goods receipt and the supplier invoice all agree on price and quantity before the invoice is approved. It is the single control that removes most duplicate payments and unauthorised spend.
Does three-way matching work for services and subscriptions?
No, and forcing it creates paperwork without control. Items with no purchase order belong on a separate path, usually a recurring bill with a named owner and a budget line to check against.
How do we stop paying the same invoice twice?
Duplicate detection on supplier, invoice number and amount, applied before payment rather than found at reconciliation. It only works if invoices enter the system at capture, which is why the email inbox is the thing to remove.
Can approvals be based on value?
Yes. Approval routes to a role rather than a person, with thresholds by amount, and the queue is visible to more than one person so nothing stalls on someone's leave.
Will this fix our month-end accruals?
Largely, because the goods receipt creates the accrual when the goods arrive rather than when the invoice turns up. What it cannot fix is a supplier who invoices six weeks late.