Canada · Free cheat sheet template

BC Xero Tax Rates: The 12% Pair and the Five Rates You Add (Free)

Free reference for Xero tax rates in British Columbia: the seeded GST/PST pair, the custom GST-only and 0% rates, and account validity.

By ExpenseFlow team
· 6 July 2026

Free download · no email required

CSV: every BC-relevant Xero rate, account-class validity and what to use it for.

Download the tax-rate list (CSV)

Xero gives British Columbia exactly one seeded tax pair and expects you to know it is not enough. This reference lays out the full working set for a BC organisation: the 12% pair that ships, the five custom rates that make the ledger complete, the other provinces’ rates that handle cross-border lines, and the class-validity rules behind the invalid-tax-code error.

The seeded pair, and its hidden intelligence

BC - GST/PST on Purchases and BC - GST/PST on Sales, 12% total, arrive with the organisation. The purchases side has BC’s most important rule built in: the 7% PST component is non-recoverable, so Xero claims only the 5% GST as an input tax credit and leaves the PST in the cost. That single behaviour is why the seeded rate should be used for taxable goods rather than any hand-built 12% substitute; get it wrong and the GST return either over-claims or the expenses understate.

The sales side treats collected PST as recoverable in the sense that it is a liability you owe the province, routed for remittance rather than kept in income.

The five rates you add

BC needs more custom setup than any other Canadian province in Xero, and the reason is structural: no seeded rate exists for GST-only lines or for the zeros. Create these under the Tax menu, Tax settings, Tax rates:

  • GST on Purchases (5%) and GST on Sales (5%): the services economy. Consulting, rent, freelancers, fulfilment, plus resale inventory bought PST-exempt and PST-exempt goods like food.
  • Zero Rated (0%): groceries, exports, international transportation; ITCs survive.
  • Exempt (0%): financial services, insurance, residential rent; no ITCs on related costs.
  • Out of Scope (0%): wages, permits, donations, transfers; not supplies at all.

The goods-versus-services question then becomes the only daily decision: both taxes or GST alone. Goods, software, telecom, repairs, and legal services take the pair; most other services take the custom 5%.

Validity and the refused code

Xero validates every rate against the account’s class. Purchases rates are invalid on revenue accounts; sales rates are invalid on expense and equity accounts; the custom zeros travel everywhere. The download renders this as a Yes/No grid per rate and class, which converts the invalid-tax-code error into a two-second lookup: find the rate’s row, check the account’s class column, switch direction if needed.

Four lines, four answers

One morning’s entries show the whole system working. The project-management subscription renews: BC - GST/PST on Purchases, software being PSTable, and only the GST half returns. The consultant’s invoice arrives: GST on Purchases (5%), a service, fully creditable. The office fruit box: Zero Rated, food being both GST-zero-rated and PST-exempt. The invoice you send a Seattle client: Zero Rated on the sales side, an export. Nothing on that list required research, because the classification lives in the rates and the chart’s defaults, which is the entire point of setting both up once and properly.

Keeping the list healthy

Do not rename the seeded pair; connectors and accountants navigate by the defaults. Review custom rates whenever a province moves a number (Nova Scotia’s 2025 drop to 14% is the standing example, flagged in Xero’s own documentation). And resist the urge to create per-vendor rates: five custom rates plus the seeded provincial pairs cover every legitimate BC case, and every additional rate is a future miscode.

Where the list meets reality is the document stream, line by line. Hubdoc captures and organizes it. ExpenseFlow reads each receipt and bill, makes the both-taxes-or-one call for the supply, respects the resale exemption and the PST-as-cost rule, and posts correctly coded entries into Xero. Dext holds recurring suppliers to their rules. The same decisions in QuickBooks use native BC codes and no custom setup; see the BC QuickBooks sales tax codes, and pair this reference with the BC chart of accounts for Xero it was built for.

Questions, answered

Common questions

What does Xero seed for a BC organisation?

One combined pair: BC - GST/PST on Purchases and BC - GST/PST on Sales at 12% total. Per Xero's own documentation, the 7% PST component is treated as recoverable on sales and non-recoverable on purchases, which matches how BC PST actually works. Every other province's pair is seeded alongside for cross-border lines.

Why do I need a GST-only rate that Xero does not ship?

Because a large fraction of BC business purchases are services, and most services carry GST alone. Without a custom 5% rate, every consulting invoice, rent bill, and freelancer payment gets miscoded as 12% or forced into another province's rate. Add GST on Purchases (5%) and GST on Sales (5%) under Tax settings before doing anything else.

How does Xero handle the non-recoverable PST?

The seeded BC purchases rate leaves the PST component in the expense rather than claiming it, so reports and the GST return see only the 5% as a credit. That is correct: BC PST on business inputs is a cost, with the notable exception of resale inventory bought PST-exempt against your PST number.

Can I import or bulk-edit tax rates?

No, Xero has no tax-rate import. Rates are the seeded defaults plus what you add by hand or API, which is why the matching BC chart of accounts lists its five custom rates as a pre-import step. This CSV is the reference for what should exist and where each rate is valid.

Keep exploring

Stop filling in spreadsheets by hand

A template is a starting point. ExpenseFlow captures receipts, reads the tax automatically, and posts the cleaned record to Xero or QuickBooks Online, so the log keeps itself.

Start free trial