Woocommerce-services: Canada: Tax calculations incorrect

Created on 21 May 2020  路  3Comments  路  Source: Automattic/woocommerce-services

Issue

Currently automated taxes is only charging taxes for your store's base province, if you are in Canada.

In the US this would be expected, however unlike the US - Canada has a federal tax that applies to all provinces. This is regardless of having a tax nexus status in that province.

Additionally, most e-commerce transactions would be taxed based on the place of supply, which in normal situations would be the customer's address. This means that if the customer lived in a province with a harmonized sales tax (HST), that would be charged place of the 5% GST (Federal tax)

Steps to replicate

Set up a store with a base address of Toronto, Ontario, Canada
Enable automated taxes
Make a purchase as a customer from Regina, Saskatchewan, Canada

Not that taxes are not calculated

Expect Behavior

Regardless of Tax Nexus status, GST should be charged to this customer.
If the store own and customer addresses were reversed, then the custom would be charge HST, as they live in a province with a harmonized sales tax that includes the government "GST".

Taxes [Pri] CRITICAL [Type] Bug

All 3 comments

Changed to critical, given the legal and financial impact this has on store owners.

Can someone confirm that WCTax isn't calculating Canadian taxes correctly? If it isn't, we should fix it. If it isn't a quick fix, please let me know so we can determine the best way forward.

How did I check:

  • I used postal code S4N 0E2 for the province of Saskatchewan in the TaxJar calculator. It returned 11%.
  • I also confirmed via the TaxJar Developer Demo using the following request (I entered a real Regina address vs their defaults):
taxjar.taxForOrder({
  from_street: '845 Avison Way',
  from_city: 'Vancouver',
  from_state: 'BC',
  from_zip: 'V6G 3E2',
  from_country: 'CA',
  line_items: [
    {
      id: 1,
      quantity: 1,
      unit_price: 19.95,
      product_tax_code: '20010'
    }
  ],
  to_street: '1138 Dewdney Ave E',
  to_city: 'Regina',
  to_state: 'SK',
  to_zip: 'S4N 0E2',
  to_country: 'CA',
  amount: 19.95,
  shipping: 10
});

The response:

{
  "amount_to_collect": 3.29,
  "breakdown": {
    "combined_tax_rate": 0.11,
    "gst": 1.5,
    "gst_tax_rate": 0.05,
    "gst_taxable_amount": 29.95,
    "line_items": [
      {
        "combined_tax_rate": 0.11,
        "gst": 1,
        "gst_tax_rate": 0.05,
        "gst_taxable_amount": 19.95,
        "id": "1",
        "pst": 1.2,
        "pst_tax_rate": 0.06,
        "pst_taxable_amount": 19.95,
        "qst": 0,
        "qst_tax_rate": 0,
        "qst_taxable_amount": 0,
        "tax_collectable": 2.19,
        "taxable_amount": 19.95
      }
    ],
    "pst": 1.8,
    "pst_tax_rate": 0.06,
    "pst_taxable_amount": 29.95,
    "qst": 0,
    "qst_tax_rate": 0,
    "qst_taxable_amount": 0,
    "shipping": {
      "combined_tax_rate": 0.11,
      "gst": 0.5,
      "gst_tax_rate": 0.05,
      "gst_taxable_amount": 10,
      "pst": 0.6,
      "pst_tax_rate": 0.06,
      "pst_taxable_amount": 10,
      "qst": 0,
      "qst_tax_rate": 0,
      "qst_taxable_amount": 0,
      "tax_collectable": 1.1,
      "taxable_amount": 10
    },
    "tax_collectable": 3.29,
    "taxable_amount": 29.95
  },
  "freight_taxable": true,
  "has_nexus": true,
  "jurisdictions": {
    "city": "REGINA",
    "country": "CA",
    "state": "SK"
  },
  "order_total_amount": 29.95,
  "rate": 0.11,
  "shipping": 10,
  "tax_source": "destination",
  "taxable_amount": 29.95
}

I also checked if the TaxJar APIs work for selling into Quebec (Quebec often has the most restrictive rules).

  • I used the address 7503 Rue St Denis Montreal QC H2R 2E7 in the TaxJar calculator. It returned 14.975%.
  • I used the same address in the TaxJar Developer Demo. It returned the rate of only 5%.
  • I filled out a survey on the Quebec government website to determine what should be the rate. The TaxJar Developer Demo was accurate in this scenario; this tool allows for more details to be submitted such as the "from" jurisdiction. Most businesses not operating in Quebec don't need to charge and file QST.

Just be sure, I also checked if the TaxJar APIs work for selling into BC from ON. It returned the correct combined 12%.

I tried this following request in TaxJar Developer Demo:

taxjar.taxForOrder({
  from_street: '356 Yonge St',
  from_city: 'Toronot',
  from_state: 'ON',
  from_zip: 'M5B 1S5',
  from_country: 'CA',
  line_items: [
    {
      id: 1,
      quantity: 1,
      unit_price: 2.00,
      product_tax_code: '20010'
    }
  ],
  to_street: '525 Albert St N',
  to_city: 'Regina',
  to_state: 'SK',
  to_zip: 'S4R 8E2',
  to_country: 'CA',
  amount: 2.00,
  shipping: 0
});

I used the same address on my test site and both returned with $0.22. I don't think we have any issue here.

I'll go ahead and close this, but we can reopen if needed.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

budzanowski picture budzanowski  路  4Comments

jobthomas picture jobthomas  路  3Comments

nabsul picture nabsul  路  3Comments

c-shultz picture c-shultz  路  5Comments

c-shultz picture c-shultz  路  5Comments