Free download · no email required
CSV: each rate with the account classes it is valid on and what to use it for.
Download the tax-rate list (CSV)Xero handles Canadian sales tax with a small set of sharply named rates, and the naming is the documentation: ON - HST on Purchases can only ever mean one thing. This reference lists every rate an Ontario organisation starts with, the custom rates worth adding on day one, and which account classes each is valid on, so “invalid tax code” errors and miscoded returns stop being mysteries.
What a Canadian Xero org starts with
Create an organisation with Canada as the country and Xero seeds a purchases rate and a sales rate for each of the thirteen provinces and territories. For an Ontario business the two that matter daily are:
- ON - HST on Sales (13%), for taxable supplies to Ontario buyers.
- ON - HST on Purchases (13%), for business purchases delivered in Ontario, where the HST is generally a full input tax credit.
The other pairs are not clutter. Place of supply makes them operational: the Alberta pair handles your 5% GST sale to Calgary, the BC pair a purchase delivered in Vancouver. Xero’s Canadian edition treats any PST component correctly by direction, recoverable on the sales side, non-recoverable cost on purchases, which matters if you deal with the PST provinces.
One current wrinkle worth knowing: Nova Scotia’s HST dropped to 14% in April 2025, and Xero’s own guidance says to adjust old NS rates manually if you use them.
What Xero does not ship, and what to add
There is no default rate for the 0% cases. That is a genuine gap for day-one coding, because plenty of ordinary lines are not 13%: bank fees, insurance premiums, basic groceries, exports, wages, government fees. The fix is three custom rates, added once under Tax settings:
- Zero Rated (0%) for supplies taxable at zero: exports, basic groceries, international freight and fares.
- Exempt (0%) for exempt supplies: financial services, insurance, residential rent.
- Out of Scope (0%) for non-supplies: payroll, drawings, donations, intercompany transfers.
Keep all three, even though every one of them computes to zero tax. The CRA distinction they encode decides whether the input tax credits on your costs survive, and an exempt line miscoded as zero-rated quietly misstates your ITC claim.
Where each rate is valid
Xero validates rates against the account’s class. The purchases rates are valid on asset, equity, expense, and liability accounts but not revenue; the sales rates flip that, valid on revenue but not expenses or equity; the custom 0% rates are usable everywhere. The download presents this as a Yes/No grid per class, which is the quickest way to decode a refused code: find the rate’s row, check the column for the account’s class, and use the opposite-direction variant if you picked the wrong side.
Renaming the seeded rates is possible but rarely wise: connectors, accountants, and this chart all speak the default names, and a renamed rate is a small mystery for every future collaborator.
Reference, not import
Tax rates have no CSV import in Xero. They exist as the seeded defaults plus whatever you add by hand or through the API, which is exactly why the Ontario chart of accounts for Xero tells you to create the three custom rates before importing accounts that reference them. Treat this file as the lookup that travels with that chart: one row per rate, its purpose, and its validity.
Day to day, the rate decision happens on every line someone enters. Hubdoc reuses the coding a supplier had last time. ExpenseFlow reads each receipt and bill and applies the right rate for the actual supply, including the exempt, zero-rated, and other-province cases, before posting to Xero. Dext keeps supplier rules so recurring vendors stay consistent. On QuickBooks? The same decisions use different names; see the Ontario QuickBooks sales tax codes.