Free download · no email required
CSV: every Australian Xero GST rate with the five CanApplyTo flags showing which account classes it is valid on.
Download the tax-rate list (CSV)If you have ever applied a GST code in Xero and been told “invalid tax code”, this reference explains exactly why, and which codes are actually valid on which accounts. It lists every Australian Xero GST rate with the five flags Xero uses to decide where a rate can be applied, so you can see at a glance why a code is accepted on one account and refused on another.
The rule behind “invalid tax code”
It is not the individual account that decides which codes it accepts. It is the account’s class, checked against flags on each tax rate. Every Xero tax rate carries five booleans:
CanApplyToAssetsCanApplyToEquityCanApplyToExpensesCanApplyToLiabilitiesCanApplyToRevenue
Each account rolls up to one of those classes (Direct Costs and Expense accounts are Expenses; Revenue and Other Income are Revenue; Bank and Fixed Asset accounts are Assets, and so on). A rate is valid on an account only where its flag for that class is set. If it is not, Xero refuses it. The download shows the full Yes/No grid for every Australian rate.
Basic versus advanced rates
Australia adds a wrinkle the grid alone does not show: Xero has two rate sets. The basic option, aligned to Simpler BAS, keeps GST on Income, GST on Expenses, GST Free Income, GST Free Expenses, GST on Imports, and BAS Excluded. The advanced option adds GST on Capital, GST on Capital Imports, GST Free Capital, GST Free Exports, and Input Taxed. A great many “invalid tax code” errors on Australian files are simply an advanced rate being used while the organisation is on the basic option, where that rate is archived rather than missing. Switch the organisation to advanced rates and it reappears.
Why a sales code is refused on an expense account
This is the split that catches everyone. GST on Income has CanApplyToRevenue set and CanApplyToExpenses clear, so it only works on revenue accounts. GST on Expenses is the mirror image for cost accounts. Xero separates income and expense versions of the rate so the right one routes to the right side of the BAS, and the flags turn that into a hard rule.
The codes, and where they apply
- GST on Income and GST on Expenses: the standard 10%, revenue side and expense side.
- GST on Capital: 10% on capital acquisitions, so they report at the capital label of the BAS.
- GST on Imports and GST on Capital Imports: for GST collected at the border on imported goods.
- GST Free Income / GST Free Expenses / GST Free Capital: 0%, reported, with credits still available on related costs.
- GST Free Exports: 0% on exported goods and services.
- Input Taxed: financial supplies and residential rent, valid on every class because it appears on both sales and the related costs.
- BAS Excluded: outside scope (wages, super, ATO payments, transfers), valid on every class.
An account has one default, but many valid codes
The account stores a single default rate that prefills the line, but across transactions it legitimately uses several codes, any valid for its class. A travel account sees GST on Expenses for a domestic fare and GST Free Exports for an international airfare; a sales account sees GST on Income and GST Free Exports. The default is the common case; the actual code is chosen per line. That is why the chart of accounts pairs a default with the other codes used on each account.
This is a reference, not an import
Unlike the chart of accounts, Xero has no CSV import for tax rates. They arrive as your organisation’s defaults plus any you add manually or via the API. So this file is a reference for which codes are valid where, and a handy aid when migrating systems or building an integration. The flag values shown are Xero’s standard Australian defaults; confirm against your own organisation.
How to use it
- When a code is refused, check the account’s class and the rate’s flag for that class in the grid, and confirm the rate is not an archived advanced rate.
- On a revenue account use an income-side rate; on a cost account use an expense-side rate.
- Pair this with the Australian chart of accounts for Xero, which sets a sensible default per account.
ExpenseFlow applies the correct, valid code for each supply as it reads a receipt or tax invoice and posts it into Xero, so you do not hit an invalid-tax-code error at the line. On QuickBooks? See the Australian QuickBooks GST codes reference.