2.5 - Duty Calculation

Building on the foundation of 2.1 A Simple Transaction, AvaTax can calculate import duties for physical goods shipped to other countries. Here are some terms and definitions that will be helpful for making our first landed cost calculation:

  • DAP - Delivered At Place, buyer is responsible for import clearance, import duties, and tariffs. You may read more at https://www.avalara.com/us/en/blog/2016/12/landed-cost-who-pays.html , "Who pays the taxes when selling cross-border?"
  • DDP - Delivered Duty Paid, the seller is Importer of Record and/or is responsible for collecting customs duty and import taxes.
  • Harmonized System - an internationally standardized system of names and character strings to classify physical, traded products.
  • HS Code - hierarchically organized classification system of product types based on attributes of the physical good. Higher numbers denote greater level of manufacture. The first six digits of an HS Code are standardized among all countries using Harmonized System. Fully qualified HS Codes, which can be eight to 13 characters, are unique to the destination country.

There are three prerequisites for calculating import duties:

  • Customs Duty nexus must be selected for your company for the country to which you are shipping
  • ShipTo and shipFrom addresses must be in different countries
  • Line items must have a valid, fully qualified HS code for the destination country — this is a large topic outside the scope of this document

To apply Customs Duty nexus in the AvaTax Update UI, go to Settings > Where You Collect Tax. Select “Customs duty” and choose the countries to which you will be shipping. If you always collect and remit duties on behalf of your customer, be sure to check the box “You’re the importer of record.”

For this example, we will use the CreateTransaction endpoint. By adding the same information to the CreateOrAdjustTransaction request model , import duties and tariffs will get calculated in the same way as CreateTransaction.

Here is an example for flower bulbs shipped to Vancouver BC.

POST /api/v2/transactions/create
{
 "issellerimporterofrecord": true,
 "lines": [
   {
   "number": "1",
   "quantity": 1,
   "amount": 2500,
   "taxCode": "P0000000",
   "hscode": "0601101100"
   }
 ],
 "type": "SalesOrder",
 "date": "2020-05-01",
 "customerCode": "yourCustomerCode",
 "addresses": {
   "shipto": {
     "line1": "1230 Commercial Dr",
     "city": "Vancouver",
     "region": "BC",
     "country": "CA",
     "postalCode": "V5L 3X4"
     },
   "shipfrom": {
     "line1": "255 S King St",
     "city": "Seattle",
     "region": "WA",
     "country": "US",
     "postalCode": "98104"
     }
   },
 "currencyCode": "CAD"
}

The response from AvaTax includes a duty and tariff calculation. In the summary array, you should see the ImportDuty for Canada and a use tax; the message array indicates that this transaction meets Canada import duty de minimis and import duty applies. Here is the summary object from our example request:

 {
      "country": "CA",
      "region": "CA",
      "jurisType": "Country",
      "jurisCode": "CA",
      "jurisName": "CANADA",
      "taxAuthorityType": 45,
      "stateAssignedNo": "",
      "taxType": "LandedCost",
      "taxSubType": "ImportDuty",
      "taxName": "CA LandedCost",
      "rateType": "Standard",
      "taxable": 2500,
      "rate": 0.06,
      "tax": 150,
      "taxCalculated": 150,
      "nonTaxable": 0,
      "exemption": 0
}

If the nexus settings for your company are configured for DAP, you will see the following message: “Estimated import customs duty & tax calculated. Buyer is the importer of record and will pay import customs duty & tax upon arrival in destination country.” Double check that these are the nexus settings you actually want.

Additional information