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. During checkout, your customers will get charged the tax rates that should be applied. 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 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 on the country your business is in. In case your product price already includes the tax amount, you can use Included in price option when defining your tax rate.

This way, the tax amount will be calculated based on the product price but not added to the cart total.


Name Amount
Subtotal 300.00 $
Shipping 10.00 $
Tax (20%) 51.67 $
Total 310.00 $


If you need full control on how taxes should be calculated then Webhooks are the way to go. It will allow you to programmatically return the taxes you need for each order.

Snipcart will send a HTTP request to your server with all the current cart details. Based on those details your application will be responsible to return the applicable taxes.

Snipcart will make a POST request to your application. The request body will be a JSON object like the one below:

  "eventName": "taxes.calculate",
  "mode": "Test",
  "createdOn": "2017-05-01T19:05:18.1321539Z",
  "content": {
    "ipAddress": "",
    "lang": "en",
    "token": "5af47604-61ef-454b-92c9-37f64684e5e5",
    "version": "2.0",
    "email": "",
    "mode": "Test",
    "status": "InProgress",
    "shipToBillingAddress": true,
    "billingAddress": {
      "name": "Geeks at Snipcart",
      "company": "Snipcart",
      "address1": "226 rue St-Joseh E",
      "address2": "",
      "city": "Québec",
      "country": "CA",
      "postalCode": "G1K3A9",
      "province": "QC",
      "phone": ""
    "shippingAddress": {
      "name": "Geeks at Snipcart",
      "company": "Snipcart",
      "address1": "226 rue St-Joseh E",
      "address2": "",
      "city": "Québec",
      "country": "CA",
      "postalCode": "G1K3A9",
      "province": "QC",
      "phone": ""
    "completionDate": null,
    "invoiceNumber": "",
    "shippingInformation": {
      "fees": 10,
      "method": "Shipping"
    "paymentMethod": 0,
    "metadata": {},
    "items": [
        "uniqueId": "abb5bd38-ae77-4feb-8d05-c674e302f986",
        "token": "",
        "id": "1",
        "name": "An item",
        "price": 300,
        "description": "Item description",
        "url": "/",
        "image": "",
        "quantity": 1,
        "minQuantity": null,
        "maxQuantity": null,
        "stackable": true,
        "shippable": true,
        "taxable": true,
        "taxes": [],
        "customFields": [],
        "duplicatable": false,
        "metadata": null,
        "unitPrice": 300,
        "totalPrice": 300,
        "totalPriceWithoutTaxes": 300,
        "addedOn": 1493665299,
        "initialData": "",
        "modificationDate": 1493665299
    "discounts": [],
    "customFields": [],
    "plans": [],
    "refunds": [],
    "taxes": [],
    "currency": "usd",
    "totalWeight": 3000,
    "total": 310,
    "discountsTotal": 0,
    "itemsTotal": 300,
    "taxesTotal": 0,
    "plansTotal": 0,
    "taxProvider": null,
    "modificationDate": 1493665318,
    "creationDate": 1493665299

We expect to receive a JSON object back from your server like this:

  "taxes": [
      "name": "Tax1",
      "amount": 10.00,
      "numberForInvoice": "TAX-001"
      "name": "Tax2",
      "amount": 20.00,
      "numberForInvoice": "TAX-002"

Integrated tax management providers

Integrated tax management providers allow automatic sales tax calculation and may offer other benefits such as tax reports and filing.


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 handle that, 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.3

Here's a quick example:

<button class="snipcart-add-item"
  data-item-custom1-type="hidden">Buy now</button>