International & Customs

How do I expand my US Shopify Plus store into Canada: GST/HST, a Canadian warehouse, and do I need a Canadian company?

Working through GST/HST, a Canadian warehouse, and whether you need a Canadian company.

Last updated September 16, 2026

Checkout tax is the easy part. Who owns the units in Ontario, whether GST/HST is already in play, and where a Canadian return can be received are the hard parts. A Canadian warehouse is a location. A non-resident importer registration is a CBSA identity. A Canadian corporation is a company. Do not treat those as one decision. This is operating mechanics, not tax advice. Talk to a Canadian advisor before you treat stock-in-country as harmless.

GST/HST, the node, and incorporating

Shopify Markets can collect GST/HST at checkout. Operators usually treat CAD $30k in taxable supplies as the CRA threshold that puts you in the GST/HST system. That is the usual operator number, not a filing instruction. Fulfilling from a Canadian warehouse is a separate physical fact: stock is in the country, returns can land, marketplace replenishment can sit there. Crossing the threshold, or opening the node, is a registration conversation. It is not a reason by itself to incorporate. You can hold inventory in a Canadian 3PL on the US books as an NRI. Incorporating is about local contracts, payroll, and what an advisor calls permanent establishment. Opening a 3PL account does not create that company. Skipping the 3PL does not skip GST/HST if you are already storing or selling there. Provincial sales tax (PST or QST) is a further advisor question. Do not invent a rate.

CUSMA origin and Canadian HS codes

CUSMA can make qualifying US-origin goods duty-free into Canada. That is an origin and a documentation lever, not a warehouse lever. The ten-digit US HTS is not the Canadian tariff code. Put a Canada HS and a country of origin on the product, then on every inbound to the Canadian node. Price off landed cost into that node in CAD, not supplier FOB in USD. If you later stand up a Canadian company and want it to own the stock, that is an intercompany transfer with invoices, not a Shopify location rename.

DDP from the US or a Canadian node

Ship DDP from the US while one carrier stack and one US returns address still work. Stand up the Canadian node when you need a domestic carrier mix, a returns address customers will use, or marketplace replenishment that will not land from the US. The moment the node exists you need a Canadian warehouse record, Canadian carrier accounts, and a receiving location that can put a return back on the books. A Shopify refund with no receipt in Ontario is stock you still own and cannot see. Set the Canadian entity's base currency to CAD before the first receipt if you do incorporate. Rate updates do not revalue units already on the shelf.

Run this with AI

Connect Claude or ChatGPT to your Fulfil data with the Fulfil MCP, then run this prompt on your own numbers.

You are the ops lead for a US Shopify Plus brand adding Canada.
Here is: sku, hs_us, hs_ca, origin, fob_usd, warehouse (US / CA / none), owner_entity (US / CA / unset), nri (yes/no), ca_corp (yes/no), gst_hst_registered, last_12m_ca_taxable_cad, last_90d_ca_orders, last_90d_ca_returns, return_address.
[paste]

Produce:
1. Tax trigger vs systems trigger vs entity trigger, in one line each. This is not tax advice. Cite CAD $30k only as the usual operator threshold.
2. Keep US node + DDP vs open a Canadian 3PL, with a one-line why.
3. Whether stock can stay on the US books (NRI + CA 3PL as a location) or already looks like a fake Canadian company.
4. Missing first-class data (HS-CA, origin for CUSMA, returns node, CAD base currency).
Flag marketplace replenishment that cannot land from the US.

See it run on
your data.

Fulfil runs inventory, fulfillment, purchasing, and accounting for scaling DTC brands in one system.