Skip to Content

Odoo Accounts Payable in Australia: Vendor Bills, 3-Way Matching, and ABA Payments

How Odoo 19 handles vendor bills, 3-way matching, ABA batch payments and BAS-ready GST coding for Australian businesses. A practical guide from Auboros. Target Keywords: odoo accounts payable australia, odoo vendor bills australia, odoo 3-way matching, odoo aba payments
25 May 2026 by
Odoo Accounts Payable in Australia: Vendor Bills, 3-Way Matching, and ABA Payments
AUBOROS

Accounts payable is one of those modules nobody gets excited about until something goes wrong. A duplicate payment, a missing tax invoice at BAS time, a vendor chasing money the system says was paid. Odoo handles AP in a way that catches most of these problems before they cost you, but only if it's set up properly. This post walks through what Odoo's vendor bill workflow actually does, how 3-way matching works in v19, where the Australian localisation fits in, and the AP mistakes we see most often during implementations.

What Odoo's vendor bill workflow does

A vendor bill in Odoo is the supplier's invoice, recorded against a purchase order and a goods receipt. The bill posts to your accounts payable ledger, picks up GST coding from the product or expense account, and queues for payment. That part is standard ERP behaviour.

Where Odoo earns its keep is the upstream automation. The Accounting module captures vendor bills three ways: manual entry, email-to-bill (forward a PDF to a dedicated inbox and Odoo creates a draft), and AI document extraction. The v19 vendor bill documentation covers each option. The OCR has improved noticeably in v19 and now picks up line items, totals, and tax components from most Australian supplier formats. We cover the v19 AI features in more detail in our AI in Odoo guide.

Bills that arrive against an active PO get linked automatically when the supplier and reference match. Bills without a PO post straight to the relevant expense account. Both routes end at the same place: a draft bill that needs review before posting.

3-way matching: how it works in v19

3-way matching compares the PO, the goods receipt, and the vendor bill before a payment is approved. It's the single feature that prevents most accidental overpayments.

You enable it under Purchase, then Configuration, then Settings. The catch is that 3-way matching only works when the bill control policy is set to Received quantities, not Ordered quantities. With Received quantities, Odoo only allows you to bill what's been physically receipted, so a 100-unit PO that only had 80 units delivered will block a 100-unit bill. The control policies documentation covers both settings in detail.

Once enabled, every vendor bill displays a Should Be Paid field. It defaults to Yes, switches to Exception if any field is edited away from the PO and receipt values, and switches to No if the bill exceeds what was received. The exception flag doesn't block the payment, which is deliberate. It's a prompt to check, not a hard stop.

For businesses with a high volume of partial receipts (we see this constantly in wholesale and trades), 3-way matching is non-negotiable. For services-only businesses that mostly receive non-stock items, it adds friction without much benefit. We covered the upstream PO side of this in our Odoo purchasing module post.

GST coding and ATO tax invoice requirements

An Australian business claiming GST credits needs valid tax invoices on file. The ATO's tax invoice page lays out the rules. For purchases over $82.50 including GST, the invoice has to show the supplier's identity, ABN, invoice date, a brief description, the GST amount (or a statement that GST is included), and the extent to which each sale is taxable. For invoices of $1,000 or more, the buyer's identity or ABN also has to appear.

Odoo's Australian localisation ships with the standard tax codes for the GST regime: 10% GST on purchases, GST-free purchases, capital purchases, and the input-taxed and export codes. Where businesses get into trouble is the default tax on the supplier record. If a vendor's default tax isn't set correctly, every bill from that supplier will post with the wrong code until someone notices at BAS reconciliation. The fix is a five-minute review of the supplier master, but it's the kind of thing nobody does until the BAS reconciliation falls over.

For BAS preparation specifically, the source-of-truth principle from our Australian localisation post applies here too. If Odoo is your accounting system, vendor bills posted in Odoo are what BAS draws from. If you're running Odoo alongside Xero (covered in the run-together guide), you need a clear rule on which system is BAS-authoritative.

ABA batch payments for Australian banks

Most Australian banks accept ABA files for batch EFT payments. Upload one file, pay all your suppliers in a single batch run. Odoo supports ABA generation natively through the l10n_au_aba module that ships with the Australian localisation.

Setup lives under Accounting, then Configuration, then Settings, where you enable Batch Payments. Each bank journal needs its BSB and account number, and the company record needs a valid ABN and bank account configured for ABA. The batch payments documentation walks through the configuration. Once set up, the workflow is: select the bills you want to pay, register a batch payment, generate the ABA file, upload to your bank's portal, then reconcile the batch payment against the bank statement when the money clears.

The reconciliation step is where AP work pays off. Odoo's bank reconciliation matches the batch against the original batch payment record, which means individual vendor bills get marked paid in one click rather than line by line. The first time you do this on a 40-supplier payment run, the time saved over manual matching is obvious.

"AP is the module clients ignore in the demo and then ask for help with three months after go-live. Getting 3-way matching, default supplier tax codes, and the ABA setup right during the build saves a quarter's worth of cleanup later. None of it is hard, it just needs to happen before bills start flowing through the system."

Bill Alvarez, Practice Manager, Auboros

The AP mistakes we see most often

Five patterns come up in nearly every Odoo AP review we run:

  • Default supplier tax codes never set. Bills inherit the wrong GST treatment, and the BAS reconciliation surfaces it weeks later.
  • Bill control left on Ordered quantities. 3-way matching can't fire, and partial deliveries get over-billed before anyone notices.
  • OCR-extracted bills posted without review. The OCR is good, not perfect. A 10-second check catches a tax-code or supplier mismatch on roughly one bill in ten.
  • ABA file generated but not reconciled to the batch payment. The bank statement clears but the AP ledger still shows the bills as unpaid because the matching step was skipped.
  • Vendor records duplicated. Same supplier added twice with different name variants, so payment history splits across two records. Easy to fix with a merge, easier still to prevent with a strict vendor creation process.

When AP automation actually pays off

For businesses processing fewer than 30 vendor bills a month, the OCR and 3-way matching features are nice but not transformational. Manual entry and a simple review process work fine at that volume.

Above 100 bills a month, the calculus changes. OCR plus 3-way matching plus ABA batch payments cuts AP team hours significantly, and the audit trail Odoo creates makes BAS reconciliation faster. The MYOB 2025 ERP Trends report found 45% of Australian decision-makers say disconnected systems limit growth. AP is one of those points where an integrated ERP earns its keep over a separate accounting tool and a spreadsheet-based approvals process.

Frequently asked questions

Does Odoo support ABA payments for all Australian banks?

Yes. The ABA format is a standard accepted by all major Australian banks. Odoo generates the file from the batch payment record; you upload it through your bank's business portal. Each bank's portal interface differs, but the file format is the same.

What's the difference between Ordered and Received bill control?

Ordered quantities creates a draft bill as soon as the PO is confirmed, based on what was ordered. Received quantities only creates a bill after goods are receipted, based on what actually arrived. 3-way matching only works with Received. For inventory businesses, Received is almost always the right choice.

Can Odoo capture vendor bills from email automatically?

Yes. Each accounting journal can have a dedicated email alias. Suppliers (or your AP inbox) forward PDF invoices to that address, and Odoo creates a draft bill with the OCR-extracted data. The bill still needs a human review before posting, but the data entry step is automated.

How does Odoo handle GST credits on imports?

GST on imports is paid to the Australian Border Force, not the overseas supplier, so the vendor bill from the supplier is GST-free and a separate ABF bill carries the GST component. The ATO's GST credits guidance covers the rules. In Odoo this is set up as a separate ABF supplier record with the right tax code, plus a landed cost entry to allocate the GST and duty to the underlying stock.

Do I need the Enterprise version for these features?

Vendor bill management, 3-way matching, and ABA batch payments are all in Community. The OCR and AI document extraction features are Enterprise. For most Australian businesses running Odoo at any scale, Enterprise is the practical choice because of the support and upgrade path.


Want your Odoo AP workflow reviewed?

If your Odoo accounts payable is taking longer than it should, or the BAS reconciliation keeps surfacing surprises, the fix is usually in the configuration rather than the software. We've cleaned up AP setups for Australian businesses across wholesale, trades, manufacturing, and services.

If you'd like a second opinion on your AP workflow, book a free consultation. Brisbane-based, no obligation.


Odoo Implementation Services Australia: What You're Actually Buying, Phase by Phase
Odoo Implementation Services Australia: What's Included