Skip to content

randomprocess42/odoo-au-bas

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 

Repository files navigation

Australian BAS Summary (GST) for Odoo 19 Community

l10n_au_bas_report — a small, self-contained Business Activity Statement (GST section) summary for Australian businesses running Odoo 19 Community, which does not include the Enterprise-only l10n_au_reports module.

Built and used in production by a GST-registered small business. LGPL-3, free.

What it does

Adds Invoicing → Reporting → BAS Summary: pick a date range (defaults to the last completed calendar quarter), hit Compute, and get:

Label Description
G1 Total sales (GST-inclusive)
G2 Export sales
G3 Other GST-free sales
G10 Capital purchases (GST-inclusive)
G11 Non-capital purchases (GST-inclusive)
1A GST on sales
1B GST on purchases
9 Net GST payable / refundable (1A − 1B)
  • Cash or accrual basis, automatically. The report follows your company's tax exigibility setting. With Odoo's native cash basis enabled (taxes exigible on payment), the tax grids are populated by the Cash Basis Taxes journal at payment date, so the report is inherently cash basis. Otherwise it is accrual. The active basis is shown on the report.
  • Drill-down from every label to the underlying journal items, so you can audit each figure before lodging.
  • PDF export with your company letterhead, ABN, and period.
  • "Tax Invoice" retitling: customer invoices that charge GST are titled Tax Invoice instead of Invoice, as the ATO requires for GST-registered entities. Invoices with no GST keep the plain Invoice title.

Only posted journal entries are counted. Credit notes correctly reduce the labels. Amounts display with cents — round to whole dollars when copying onto the BAS form (the ATO wants whole dollars).

What it does NOT do

This covers the GST section of the BAS only (which is all of Simpler BAS: G1, 1A, 1B — the other G labels are shown for your own reconciliation). It does not handle:

  • PAYG withholding (W1–W5) or PAYG instalments (T labels)
  • Fuel tax credits, wine equalisation tax, luxury car tax
  • GST adjustments (G7/G18) — post adjustment journal entries with the appropriate tax instead
  • Lodgment — it produces figures for you to enter into ATO Online Services or give to your BAS agent

This is not tax advice. Always check the figures against your records before lodging, and ask your accountant or BAS agent if unsure.

Requirements

  • Odoo 19 Community (it also installs on Enterprise, but Enterprise users should use the built-in l10n_au_reports instead)
  • The standard account (Invoicing) app
  • AU tax-grid tags (G1, G2, G3, G10, G11) available and assigned to your GST taxes — see Configuration below

Installation

  1. Download or clone this repository.
  2. Copy the l10n_au_bas_report folder into your Odoo addons path (e.g. /mnt/extra-addons for the official Docker image, or any directory listed in addons_path in odoo.conf).
  3. Restart Odoo.
  4. Activate developer mode, go to Apps → Update Apps List, then search for Australian BAS Summary and install it.

Configuration

The report works by summing posted journal items that carry the AU tax-grid tags. Everything below is about making sure your GST taxes put those tags on your journal items. How your journal items are tagged is your responsibility — verify a quarter against your records before relying on it.

If you set up Odoo with the Australian localisation (most users)

If your company was created with Australia as its country, Odoo installed l10n_au and its chart of accounts, and your default GST taxes already map to the G-label tax grids. Check under Invoicing → Configuration → Taxes → (your 10% GST taxes) → Advanced Options / tax grids:

  • Your 10% sales tax should report into G1 (base and tax lines)
  • Your 10% purchase tax should report into G11 (base and tax lines)

One thing the stock localisation does not give you is a separate capital purchases tax. If you buy assets (vehicles, equipment) create one:

  1. Copy your 10% purchase GST tax and name it e.g. GST 10% (Capital).
  2. On its distribution lines (invoice and refund, base and tax rows), replace the G11 tag with G10.
  3. Use this tax on asset purchases so they land in G10 instead of G11.

If your company uses a generic / non-Australian chart of accounts

You can still use this module — this is exactly how the author runs it:

  1. Install the l10n_au module (Apps → search "Australia"). Installing the module makes the AU tax report and its tax-grid tags available; it does not switch your existing chart of accounts or modify your data.

  2. Set your company's fiscal country to Australia (Settings → Companies) if it isn't already, and put your ABN in the company VAT/Tax ID field so it prints on the report.

  3. Edit each of your GST taxes (Invoicing → Configuration → Taxes, with developer mode on so the distribution lines are visible) and add the right tag to all four distribution rows — invoice base, invoice tax, refund base, refund tax:

    • 10% sales tax → G1
    • GST-free / export sales taxes (0%) → G2 (exports) or G3 (other GST-free)
    • 10% purchase tax → G11
    • 10% capital-purchase tax → G10 (duplicate the purchase tax if you don't have one)

    Tagging both base and tax rows is what makes G1/G10/G11 GST-inclusive, as the BAS form expects.

If a tag is missing the wizard tells you exactly which one, rather than reporting a wrong number.

Cash basis GST (optional)

If you report GST on a cash basis (common for small businesses — you account for GST when money moves, not when invoices are raised):

  1. Invoicing → Configuration → Settings → Taxes: enable Cash Basis, pick a Tax Cash Basis Journal (create a miscellaneous journal, e.g. "Cash Basis Taxes"), and save.
  2. Create two reconcilable transition accounts, e.g. GST Collected (in transit) (current liability) and GST Paid (in transit) (current asset).
  3. On each GST tax, set Tax Due to Based on Payment and set the Cash Basis Transition Account to the matching transition account.

From then on Odoo moves GST from the transition account to your GST accounts at payment date, the tax grids are fed at payment date, and this report is automatically cash basis — the wizard's Basis line will read "Cash (payments)". No setting in this module needs changing. Note this applies from setup onward; invoices posted before enabling cash basis keep their original tax treatment.

Usage

  1. Invoicing → Reporting → BAS Summary
  2. Adjust the period if needed (defaults to the last finished quarter) and click Compute.
  3. Click ⤷ lines next to any label to inspect the journal items behind it.
  4. Click Print PDF for a copy to file with your working papers.
  5. Round to whole dollars and enter the figures in ATO Online Services.

Access is granted to users in the Invoicing / Billing group and above.

Running the tests

odoo -d <test-db> -i l10n_au_bas_report --test-tags /l10n_au_bas_report --stop-after-init

The suite covers accrual amounts, GST-inclusive labels, capital vs non-capital purchases, period filtering, draft/untagged exclusion, credit notes, and cash basis timing (unpaid invoices excluded, payment date drives the period).

Support & contributions

Issues and pull requests are welcome. This module is deliberately small (~150 lines of Python, no stored models, no dependencies beyond account) — please keep contributions in that spirit.

License

LGPL-3.0 — see LICENSE.

Copyright © 2026 Peachester Rural Services. Not affiliated with the ATO or Odoo S.A.

About

Plugin for Odoo to enable Australian BAS Reporting (GST)

Topics

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages