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.