The core rule: charge the destination, not your location
The instinct that you charge your own province's rate is the single most common mistake in Canadian sales tax. The rule is the opposite: you charge the rate of the province where the customer receives the goods or service, under the place-of-supply rules.[1] Your business address is irrelevant to the rate. What matters is the destination.
So an Ontario business shipping a product to a customer in British Columbia charges BC's combination, GST plus PST, not Ontario's 13 percent HST. The sales tax calculator lets you check the destination province's rate for any order in a couple of clicks.
Goods, services, and digital products differ
For physical goods, the place of supply is generally where the goods are delivered or made available, which for ecommerce is the shipping address. For services, the rules look first to the address of the recipient you obtain in the ordinary course of business, and there are specific tests for services tied to real property or to a location. For digital products and subscriptions, the recipient's usual place of residence or business address typically governs.
The takeaway for a seller is that you need to capture and store a reliable destination address per transaction, because that address is what the rate keys off. A SaaS business billing a Quebec subscriber charges GST plus QST even if the servers and the company are in Ontario.
Worked examples
Ontario seller, ships to Nova Scotia. Charge Nova Scotia's 14 percent HST. Alberta seller, ships to Ontario. Charge Ontario's 13 percent HST, even though Alberta itself has no provincial tax. BC seller, ships within BC. Charge GST 5 percent plus PST 7 percent. Any seller, subscription to a Quebec business. Charge GST 5 percent plus QST 9.975 percent.
The pattern is consistent: identify the destination province, then apply that province's components. The per-province pages, such as the Ontario HST calculator and the Quebec sales tax calculator, are preset for the most common destinations.
Common mistakes
Three errors recur. First, charging your home province's rate to every customer, which over- or under-collects on out-of-province sales. Second, forgetting that Alberta and the territories have no provincial tax, so a sale there is GST only. Third, missing the QST or PST registration that an out-of-province seller may owe once activity in that province passes its threshold, which is separate from your federal GST/HST registration.
Each of these is invisible until a return or an audit surfaces it, and by then the correction spans months of transactions. Catching it at checkout is far cheaper than fixing it on the back end.
Automating place-of-supply in Odoo
This is precisely what Odoo fiscal positions are for. A fiscal position maps the customer's province to the correct set of taxes, so the rate is chosen from the delivery address automatically on every quotation, sales order, and invoice. The seller never picks a rate by hand, and the place-of-supply logic is enforced consistently across the whole order-to-cash flow.
Setting the fiscal positions up correctly, and testing them against real interprovincial scenarios, is the work that keeps the rate right and the returns reconciled. If you want that validated for your Canadian operation, book a free audit.
References
- Canada Revenue Agency, charge and collect the tax: which rate to charge. The place-of-supply rules and the federal rate table by province. canada.ca/.../charge-collect-which-rate
- Revenu Quebec, GST/HST and QST. Quebec-specific rules for the QST on sales into the province. revenuquebec.ca/.../gsthst-and-qst