Sales Tax 101 Shopify

Where are the Shopify Fulfillment Centers?

by Jenny Ayres

Where are the Shopify fulfillment centers?

Shopify recently announced that they continue to develop their Shopify Fulfillment Network, with more businesses joining in Q1 2020 than in any previous quarter since its launch in June of 2019.

More and more businesses who sell via Shopify are taking advantage of outsourced fulfillment. But using third party fulfillment also creates something that businesses may not have bargained for – sales tax obligations. 

Storing inventory for sale in a state creates sales tax nexus in that state. For example, if your Illinois-based eCommerce business stores your inventory in Shopify’s fulfillment center in Nevada, then you may be required to register for a Nevada sales tax permit and collect sales tax from buyers in Nevada. Keep reading for more on that. 

But first… 

Shopify Fulfillment Center Locations

According to the Wall Street Journal, Shopify’s fulfillment centers are located in: 

CaliforniaCalifornia sales tax nexus law

GeorgiaGeorgia sales tax nexus law

NevadaNevada sale tax nexus law

New JerseyNew Jersey sales tax nexus law

OhioOhio sales tax nexus law

PennsylvaniaPennsylvania sales tax nexus law

TexasTexas sales tax nexus law

Non-US Shopify Fulfillment Center Locations 

Ottawa, Ontario, Canada

Read on to discover what this means for you if you use Shopify or another 3rd party fulfillment network when it comes to sales tax.

What Using Shopify’s 3rd Party Fulfillment Service Means for Sales Tax Compliance

Most of the 45 US states (plus Washington DC) with a sales tax consider “storing inventory” in the state for sale to create sales tax nexus. 

To cite the example above, a Shopify seller based in Illinois who uses the Shopify fulfillment network may find themselves required to register for sales tax permits and collect sales tax in one or more of the above states. 

What should Shopify sellers do next?

If storing inventory in another state creating sales tax nexus is news to you, don’t worry. You have options. Recommended next steps include:

  1. Check your Shopify account to determine where your inventory is being stored. 
  2. Check with the state or a vetted sales tax expert to determine if you are required to collect sales tax in that state. (Remember, according to state sales tax law in all of the above states, storing inventory in the state creates sales tax nexus.)
  3. Register for a sales tax permit with that state.
  4. Set up sales tax collection via Shopify. And don’t forget that if you have nexus in a state, you are also required to collect sales tax from buyers in that state on your other sales channels. 
  5. From here, report how much sales tax you collected across all sales channels from buyers in the state, and file sales tax returns at your state-assigned frequency and due date.

Frequently Asked Questions

Wait, is this legal? 

In the US, states are allowed to set their own sales tax rules and laws. In this case, since your inventory is located in a state, that state considers your business subject to their sales tax laws. You can read more about this in our “Sales Tax Nexus, Defined” blog post.

Shouldn’t Shopify collect on my behalf? 

Not in this case. While most states require that online marketplaces collect sales tax on behalf of 3rd party sellers, in this case, Shopify is not a marketplace. Your business still owns the inventory and is the seller of record, therefore you are also responsible for sales tax.

How can I automate sales tax?

Collecting and remitting sales tax in multiple states quickly becomes a chore. But TaxJar is here to help. TaxJar creates return ready sales tax reports so you always file accurately and on time. Or, if you’d rather never worry about sales tax again, we AutoFile your sales tax returns. Ready to automate sales tax? To learn more about TaxJar and get started, visit TaxJar.com/how-it-works

Start your 30 day free trial of TaxJar. No credit card required.
AIRPRESS LOADED

Cached Query Manual Filing?filterByFormula=OR({State} = "") needs refreshing in 45