Taxes

To make sure we handled every tax scenario, we decided to let you customize your tax rates. To do so, log into the dashboard, then navigate to Store configurations > Taxes.

How will the taxes be applied?

When creating a new tax rate, you have the option to select a country and a state/province. The country is always required but state/province are optional. During checkout, your customers will get charged the tax rates that should be applied according to location (country/state/province). For example:

Tax rates

In the case above, a customer who has selected Canada as a country and Qu├ębec as a province will have both taxes (TVQ and TPS) applied to its order.

If the customer is from Canada, but from the province of Ontario, only the TPS will be applied.

Any customer who is not from Canada will have no taxes applied at all.

Taxes that are included in product prices

We know handling taxes can be different depending where your business is located. In case your product price already includes the tax amount, you can use the Included in price option when defining your tax rate.

Also, you'll need to add the data-item-has-taxes-included="true" on your buy buttons. This will let our system know that the taxes are already included in the product price.

When a new cart is created, we track down the default taxes that will be applied on any products with taxes included. For example, if your business is in Germany, we'll fetch the tax rates from Germany and consider them as the default tax rate to be applied. When a product with taxes already included is added to the cart, we'll calculate the price without taxes by removing the default tax amount from the product's initial price.

For example, if you have a 20% tax named GST that is included in the price, the cart's default taxes will look like this:

{
  "lang": "en",
  "token": "656b57c1-0fd1-44be-8720-f1297ceeead5",
  "email": "geeks@snipcart.com",
  "mode": "Live",
  "status": "InProgress",
  "defaultTaxes": [{
      "taxId": "b493e4ab-c0ed-4c8f-80db-8cc50889978c",
      "name": "GST",
      "rate": 0.2,
      "includedInPrice": true,
      "appliesOnShipping": true
  }]
}

Please note that this tax applies on shipping as well.

Let's say you have this item in the cart:

{
    "quantity": 2,
    "stackable": true,
    "id": "SMARTPHONE",
    "name": "Smartphone",
    "price": 399,
    "url": "/",
    "hasTaxesIncluded": true,
    "uniqueId": "f695c577-fe4f-4ac1-824a-922f26a1d376",

    "unitPrice": 399,
    "totalPrice": 798,
}

Because the product SMARTPHONE has taxes included in its price, we'll get the price without taxes by deducting the tax amount from the product's base price, which is 399.00 in this case.

The price without taxes is calculated like this:

tax_rate = 0.2
base_price = 399
price_without_taxes = base_price / (1 + tax_rate)

We add two properties to the item that are available via our JavaScript API.

{
    "quantity": 2,
    "stackable": true,
    "id": "SMARTPHONE",
    "name": "Smartphone",
    "price": 399,
    "url": "/",
    "hasTaxesIncluded": true,
    "uniqueId": "f695c577-fe4f-4ac1-824a-922f26a1d376",

    "unitPrice": 399,
    "totalPrice": 798,

    "unitPriceWithoutTaxes": 332.5,
    "totalPriceWithoutTaxes": 665,
}

The cart summary will end up like this:

Name Amount
Subtotal 798.00 $
Shipping 10.00 $
GST 134.67 $
Total 808.00 $

Tax included in price that applies on shipping

When you create a tax rate, you also have the option Applies on shipping. When this option is checked in your dashboard, shipping will be included in tax calculation. In the example above, the 10$ shipping is included in the tax total.

Shipping fees without taxes are calculated like this:

shipping_fee = 10
tax_rate = 0.2

shipping_fee_without_taxes = shipping_fee / (1 + tax_rate)

In that case, the shipping fee without taxes is: 8.33$.

Calculation: 655 + 8.33 + 134.67 == 808

Tax included in price that doesn't apply to shipping

If the option 'Applies on shipping' isn't enabled, the total will stay the same, but the 10$ shipping won't be included in the tax calculation:

Name Amount
Subtotal 798.00 $
Shipping 10.00 $
GST 133.00 $
Total 808.00 $

Calculation: 655 + 10 + 133 == 808

Webhooks

If you need 100% control over tax calculation, you can use our Webhooks API. Please refer to this part of our documentation for details.

Integrated tax providers

Integrated tax providers allow automatic sales tax calculation and may offer other benefits such as tax reports and filing. Please note that these features are only available for Pro Pack subsribers.

TaxCloud

TaxCloud is a sales tax automation service for merchants with a physical presence in the United States. It can be configured in Snipcart's dashboard quite easily. You will first need to get a TaxCloud account by registering on TaxCloud's site.

Now log into Snipcart's dashboard, go to Store configurations > Taxes and hit the Configure button beside the TaxCloud logo:

First step

Then enter your credentials (API ID & API Key) in the form:

Second step

Now hit the Save button. You will then need to activate the provider in the Taxes screen using the On / Off toggle. Please note that you can't have an integrated provider and custom taxes working at the same time.

Products in the US can have different tax rules. To address those differences, TaxCloud uses TIC (short codes used to calculate taxes correctly). If you need to specify a TIC code for a particular product, you can use a hidden custom field named TIC.

Here's a quick example:

<button class="snipcart-add-item"
  data-item-id="1"
  data-item-name="Shirt"
  data-item-url="/"
  data-item-price="20.00"
  data-item-custom1-name="TIC"
  data-item-custom1-value="21001"
  data-item-custom1-type="hidden">Buy now</button>

TaxJar

TaxJar SmartCalcs is a sales tax calculation service for merchants doing business in the USA, Canada, Australia, and Europe. It can be enabled directly from Snipcart's dashboard.

Log into Snipcart's dashboard, go to Store configurations > Taxes and put the On/Off switch to On:

Enabling TaxJar

TaxJar will calculate sales tax for orders using the configured address in your profile as the source and the customer's address as the destination. If you have a more complex tax situation, like multiple nexus locations, contact us.

Products all around the world can have different tax rules. To address these differences, you can apply some product tax codes supported by TaxJar. To specify a tax code for a particlar product, you can use a hidden custom field named TaxJarCategory:

<button class="snipcart-add-item"
  data-item-id="1"
  data-item-name="Shirt"
  data-item-url="/"
  data-item-price="20.00"
  data-item-custom1-name="TaxJarCategory"
  data-item-custom1-value="20010"
  data-item-custom1-type="hidden">Buy now</button>