โ† Back to guides

How to Reconcile Accounts for ATO Compliance in Odoo

Reconciliation is the process of ensuring your Odoo accounting records match reality โ€” your bank, the ATO's records, your super fund receipts, and your own internal controls. The ATO expects your records to be accurate, complete, and able to withstand scrutiny. This guide covers every reconciliation a compliant Australian business should perform in Odoo.

Why reconciliation matters for ATO compliance

  • The ATO cross-matches your BAS data against bank records, STP data, and third-party reports
  • Discrepancies trigger risk flags and potential audits
  • You must keep records for 5 years from the date you lodge the relevant return
  • The ATO can impose penalties for incorrect BAS or tax returns traceable to poor reconciliation
  • Regular reconciliation also catches fraud, errors, and double-payments early

Step 1: Bank reconciliation

This is the most critical reconciliation. Every bank transaction should have a matching entry in Odoo:

  • Go to Accounting โ†’ Bank โ†’ Reconcile for each bank journal
  • Import your bank statement (OFX, CSV) or use automatic bank feeds (Basiq, Yodlee, SaltEdge)
  • Match each bank line to an existing Odoo transaction (invoice payment, bill payment, expense)
  • For unmatched lines: create a new entry or investigate the discrepancy
  • Aim for zero unreconciled items at the end of each BAS period
  • Check the ending balance in Odoo matches your actual bank statement balance
๐Ÿ’ก

Reconcile at least weekly, ideally daily. Leaving it to the end of the quarter means hundreds of transactions to match under time pressure โ€” and errors are more likely.

Step 2: GST account reconciliation

Your GST accounts should balance to zero after each BAS payment:

  • Check the GST Collected (liability) account โ€” this should equal the total GST charged on sales in the period
  • Check the GST Paid (asset) account โ€” this should equal the total GST credits from purchases in the period
  • The net of these two accounts should equal label 1A minus 1B on your BAS
  • After paying/receiving the BAS amount, post a clearing journal entry to zero both accounts
  • If the accounts don't match the BAS figures, drill down to find transactions with incorrect or missing tax codes

Step 3: PAYG withholding reconciliation

  • The PAYG Withholding Payable account should equal W2 on your BAS for the period
  • Run a payroll summary report and compare the total PAYG withheld against the liability account balance
  • After paying the ATO (with your BAS payment), the account should clear to zero
  • At year-end, the annual total should match your STP finalisation total
  • If there's a discrepancy: check for unposted payslips, manual adjustments, or payslips with incorrect tax calculations

Step 4: Superannuation reconciliation

  • The Super Guarantee Payable account should accrue with each payslip and clear when you pay the clearing house
  • Run the super contributions report: Payroll โ†’ Reporting โ†’ Super Contributions
  • Compare Odoo's super accrual against the actual payments made to your clearing house
  • Match each clearing house receipt confirmation against the corresponding Odoo payment
  • Quarter-end balance should be only the current quarter's unpaid super (if paying quarterly)
  • If paying per pay run, the account should be near zero between pays
โ„น๏ธ

The ATO matches your STP super reporting against actual fund receipts. If you report $10,000 in super via STP but only $8,000 reaches the funds, the ATO will flag this.

Step 5: Accounts receivable reconciliation

  • Review the Aged Receivables report: Accounting โ†’ Reporting โ†’ Aged Receivable
  • Verify that all open invoices are genuinely outstanding โ€” not paid but unreconciled
  • Check for credit notes that haven't been applied to invoices
  • Write off bad debts properly โ€” use a Bad Debt Expense account and adjust the GST if the debt was originally taxable
  • The receivables balance should be reconcilable to individual customer balances

Step 6: Accounts payable reconciliation

  • Review the Aged Payables report: Accounting โ†’ Reporting โ†’ Aged Payable
  • Verify all open bills are genuinely unpaid
  • Check for vendor credits/debit notes not yet applied
  • Match statement balances from key suppliers against Odoo's balance for that vendor
  • Flag any duplicate bills (same vendor, same amount, similar date)

Step 7: Suspense and clearing accounts

  • Check all suspense, clearing, and unallocated accounts โ€” they should be at or near zero
  • Common clearing accounts: bank suspense, unallocated payments, inter-account transfers
  • Balances remaining in clearing accounts usually indicate incomplete reconciliation or orphaned transactions
  • Investigate and clear any balances before BAS lodgement

Step 8: Trial balance review

The trial balance is your master reconciliation check:

  • Go to Accounting โ†’ Reporting โ†’ Trial Balance
  • Total debits must equal total credits (Odoo enforces this, so it should always balance)
  • Review each account for reasonableness โ€” does the balance make sense?
  • Look for unusual balances: negative bank accounts (possible misposting), unusually large suspense balances, P&L accounts with wrong-sign balances
  • Compare key balances to the prior period โ€” significant unexplained changes need investigation

Reconciliation schedule

  • Daily/weekly โ€” Bank reconciliation
  • Each pay run โ€” PAYG and super verification
  • Monthly โ€” Receivables, payables, suspense accounts, trial balance review
  • Quarterly (before BAS) โ€” GST account reconciliation, PAYG reconciliation, comprehensive review of all tax accounts
  • Annually (before EOFY) โ€” Full reconciliation of all balance sheet accounts, long service leave provisions, depreciation schedules, loan balances

Audit-ready practices

  • Attach source documents โ€” Odoo allows you to attach PDFs/images to invoices and bills. Always attach the source document (supplier invoice, receipt, contract).
  • Use internal notes โ€” Add notes to unusual journal entries explaining the reason.
  • Lock periods โ€” Once BAS is lodged, lock the period in Odoo (Accounting โ†’ Configuration โ†’ Settings โ†’ Lock Dates) to prevent accidental changes.
  • Maintain an audit trail โ€” Odoo's chatter logs all changes. Don't delete or reverse transactions โ€” create credit notes and adjusting entries instead.
  • Reconciliation sign-off โ€” Have someone other than the bookkeeper review reconciliations monthly (segregation of duties).
๐Ÿ’ก

Use Odoo's period lock date feature to prevent anyone from posting to a closed period. Set the lock date after each BAS lodgement. Only users with the Adviser role can override the lock.

Books not balancing?

We'll reconcile your Odoo accounts and get you ATO-ready. Clean books, no surprises at BAS time.

Get in touch โ†’