# Using Product's HSCode

## HSCode for taxes calculation

<mark style="color:green;">`POST`</mark> `https://api.transiteo.io/v1/taxsrv/taxCalculationHscode`

This endpoint allows you to calculate locales taxes for a product HSCode.

#### Headers

| Name          | Type   | Description      |
| ------------- | ------ | ---------------- |
| Content-type  | string | application/json |
| Authorization | string | "your id\_token" |

{% tabs %}
{% tab title="200 " %}

```
{
    "products": [
        {
            "vat": [
                {
                    "label": "string",
                    "percentage": number,
                    "product_taxes_amount": number,
                    "shipping_taxes_amount": number,
                    "packaging_taxes_amount": number,
                    "insurance_taxes_amount": number,
                    "message": "string"
                }
            ],
    ],
    "shipping_global": {
        "vat": [
            {
                "label": "string",
                "amount": number,
                "percentage": number
            }
        ]
    },
    "packaging_global": {
        "vat": [
            {
                "label": "string",
                "amount": number,
                "percentage": number
            }
        ]
    },
    "insurance_global": {
        "vat": [
            {
                "label": "string",
                "amount": number,
                "percentage": number
            }
        ]
    },
    "incoterm": "string",
    "extra_fees": {
        "percentage": number,
        "amount": number,
        "currency": "string"
    },
    "global": {
        "amount": number
    },
    "timestamp": number
}
```

{% endtab %}
{% endtabs %}

### JSON Request Body Format

```
{
  "products": [
      {
        "identification": {
          "value": string
        },
        "weight": number,
        "weight_unit": string,
        "quantity": number,
        "unit_price": number,
        "currency_unit_price": string,
        "unit_ship_price": number,
        "unit_packaging_price": number,
        "unit_insurance_price": number,
        "origin_country": string,
        "transport": {
          "type": string,
          "id": number
        },
      }
  ],
  "lang": string,
  "from_country": string,
  "to_country": string,
  "from_district": string,
  "to_district": string,
  "shipment_type": string,
  "global_ship_price": number,
  "currency_global_ship_price": string,
  "global_packaging_price": number,
  "currency_global_packaging_price": string,
  "global_insurance_price": number,
  "currency_global_insurance_price": string,
  "included_tax": boolean,
  "incoterm": string,
  "extra_fees": number,
  "sender": {
    "pro": boolean,
    "revenue_country_annual": number,
    "currency_revenue_country_annual": string
  },
  "transport": {
    "type": string,
    "id": number
  },
  "transit_fees" : {
    "percentage": null,
    "amount" : 10, 
    "currency" : "EUR",  
    "on_products_price": false, 
    "on_shipping_products_price": false, 
    "on_global": true
  },
  "receiver": {
    "pro": boolean,
    "activity_id": string
  }
}
```

### Request fields

#### "products" / "identification" / "value"

You need to fill this field with a HTS Code version 2017. Between 8 to 13 digits numbers.\
\&#xNAN;***Examples :**  9503006100*\
\&#xNAN;***Type :** string*\
\&#xNAN;***Required :** yes*

#### "products" / "weight"

You need to fill the "weight" field of the product with a number.\
\&#xNAN;***Examples :** 12 **or** 3.5*\
\&#xNAN;***Type :** number*\
\&#xNAN;***Required :** yes if  "unit\_ship\_price" and* "currency\_unit\_ship\_price"*are not mentionned. Or if you request Switzerland in "from\_country".*

#### "products" / "weight\_unit"

You can fill the "weight\_unit" field with one of this two labels : \
\&#xNAN;**- "kg"** :  if you use the international metric system\
\&#xNAN;**- "lbs"** : if you use the imperial system\
\&#xNAN;***Type :** string*\
\&#xNAN;***Required :** yes if  "unit\_ship\_price" and* "currency\_unit\_ship\_price"*are not mentionned. Or if you request Switzerland in "from\_country".*

#### "products" / "quantity"

You need to fill the "quantity" field  with a entire number representing your product units.\
\&#xNAN;***Examples :** 1 **or** 9*\
\&#xNAN;***Type :** number*\
\&#xNAN;***Required :** yes*

#### "products" / "unit\_price"

You need to fill the "unit\_price" field with a number representing the price of one item.\
\&#xNAN;***Examples :** 39 **or** 99.90*\
\&#xNAN;***Type :** number*\
\&#xNAN;***Required :** yes.*

#### "products" / "currency\_unit\_price"

You need to fill the "currency\_unit\_price" field of the product with a currency iso Alpha 3.\
Download the [list of currencies](https://f.hubspotusercontent20.net/hubfs/3856821/Dico%20-%20currency.csv) with them name and code.\
\&#xNAN;***Examples : "**&#x45;UR" **or "**&#x43;AD"*\
\&#xNAN;***Type :** string*\
\&#xNAN;***Required :** yes*

#### "products" / "unit\_ship\_price"

You need to fill the "unit\_ship\_price" field of the product with a number.\
\&#xNAN;***Examples :** 19 **or** 34.37*\
\&#xNAN;***Type :** number*\
\&#xNAN;***Required :** yes*

#### "products" / "unit\_packaging\_price"

You need to fill the "unit\_packaging\_price" field of the product with a number.\
\&#xNAN;***Examples :** 19 **or** 34.37*\
\&#xNAN;***Type :** number*\
\&#xNAN;***Required :** yes*

#### "products" / "unit\_insurance\_price"

You need to fill the "unit\_insurance\_price" field of the product with a number.\
\&#xNAN;***Examples :** 19 **or** 34.37*\
\&#xNAN;***Type :** number*\
\&#xNAN;***Required :** yes*

#### "products" / "origin\_country"

You need to fill the "origin\_country" field with the Iso Alpha 2 or 3 code from where the product had build.\
Download the [list of countries](https://f.hubspotusercontent20.net/hubfs/3856821/Dico%20-%20countries.csv).\
\&#xNAN;***Examples : "**&#x46;RA" **or "**&#x56;EN*"\
\&#xNAN;***Type :** string*\
\&#xNAN;***Required :** yes*

#### "products" / "transport" / "type"

You need to fill the "transport" field of the shipping product(s) price.\
\&#xNAN;***Type :** string*\
\&#xNAN;***Required :** optional (required if you want to know the duty fees by product)*

#### "products" / "transport" / "*id*"

You need to fill the "transport" field of the shipping product(s) price with an id number.\
Download the [list of carriers and freight forwarder](https://f.hubspotusercontent20.net/hubfs/3856821/Dico%20-%20transporteurs.csv).\
\&#xNAN;***Type :** string*\
\&#xNAN;***Required :** optional (required if you want to know the duty fees by product)*

#### "products" / "*unit*"

You need to fill the "unit" field  with a entire number representing an other feature of product \
\&#xNAN;***Examples :** 1 **or** 9*\
\&#xNAN;***Type :** number*\
\&#xNAN;***Required :** optional*

#### "products" / "unit\_type"

You need to fill the "unit\_price" field with a number representing the price of one item.\
\&#xNAN;***Examples :** 39 **or** 99.90*\
\&#xNAN;***Type :** number*\
\&#xNAN;***Required :** optional and yes es if "unit" is mentioned.*

**"lang"**

You need to fill this field with a web language code of your product name or description. 3 languages are available :\
fr = french\
en = english\
es = spanish\
\&#xNAN;***Examples :** "fr"*\
\&#xNAN;***Type :** string*\
\&#xNAN;***Required :** yes*

#### "from\_country"

You need to fill the "from\_country" field with the country english label or Iso Alpha 2 or 3 from where the product is sent.\
Download the [list of countries](https://f.hubspotusercontent20.net/hubfs/3856821/Dico%20-%20countries.csv).\
\&#xNAN;***Examples : "**&#x42;ulgaria" **or "**&#x5A;HN*"\
\&#xNAN;***Type :** string*\
\&#xNAN;***Required :** yes*

#### "from\_district"

You need to fill the "from\_district" field with the Iso codes of the district from where the product is sent.\
Download the [list of districts](https://f.hubspotusercontent20.net/hubfs/3856821/Dico%20-%20districts.csv).\
\&#xNAN;***Examples : "**&#x41;L-11" **or "**&#x46;R-GES"*\
\&#xNAN;***Type :** string*\
\&#xNAN;***Required :** yes*

#### "to\_country"

You need to fill the "to\_country" field with the country english label or Iso Alpha 2 or 3 from where the product arrives.\
Download the [list of countries](https://f.hubspotusercontent20.net/hubfs/3856821/Dico%20-%20countries.csv).\
\&#xNAN;***Examples : "**&#x42;razil" **or "**&#x47;LP"* \
\&#xNAN;***Type :** string*\
\&#xNAN;***Required :** yes*

#### "to\_district"

You need to fill the "to\_district" field with the Iso codes of the district from where the product arrives.\
Download the [list of districts](https://f.hubspotusercontent20.net/hubfs/3856821/Dico%20-%20districts.csv).\
\&#xNAN;***Examples : "**&#x41;L-11" **or "**&#x46;R-GES"*\
\&#xNAN;***Type :** string*\
\&#xNAN;***Required :** yes*

**"shipment\_type"**\
*GLOBAL :  global shipping*\
*ARTICLE : One ship price per article*\
**Type :** enum\
**Required:** yes

#### "global\_ship\_price"

You need to fill the "global\_ship\_price" field with a number. \
\&#xNAN;***Examples :** 450 **or** 3451.87*\
\&#xNAN;***Type :** number*\
\&#xNAN;***Required :** yes if shipment\_type is GLOBAL*

#### "currency\_global\_ship\_price"

You need to fill the "currency\_global\_ship\_price" field of the product with a currency iso Alpha 3.\
Download the [list of currencies](https://f.hubspotusercontent20.net/hubfs/3856821/Dico%20-%20currency.csv).\
\&#xNAN;***Examples : "**&#x55;SD" **or "**&#x41;UD"*\
\&#xNAN;***Type :** string*\
\&#xNAN;***Required :** yes if shipment\_type is GLOBAL*

#### "global\_packaging\_price"

You need to fill the "global\_packaging\_price" field with a number. \
\&#xNAN;***Examples :** 450 **or** 3451.87*\
\&#xNAN;***Type :** number*\
\&#xNAN;***Required :** yes if shipment\_type is GLOBAL*

#### "currency\_global\_packaging\_price"

You need to fill the "currency\_global\_packaging\_price" field of the product with a currency iso Alpha 3.\
Download the [list of currencies](https://f.hubspotusercontent20.net/hubfs/3856821/Dico%20-%20currency.csv).\
\&#xNAN;***Examples : "**&#x55;SD" **or "**&#x41;UD"*\
\&#xNAN;***Type :** string*\
\&#xNAN;***Required :** yes if shipment\_type is GLOBAL*

#### "global\_insurance\_price"

You need to fill the "global\_insurance\_price" field with a number. \
\&#xNAN;***Examples :** 450 **or** 3451.87*\
\&#xNAN;***Type :** number*\
\&#xNAN;***Required :** yes if shipment\_type is GLOBAL*

#### "currency\_global\_insurance\_price"

You need to fill the "currency\_global\_insurance\_price" field of the product with a currency iso Alpha 3.\
Download the [list of currencies](https://f.hubspotusercontent20.net/hubfs/3856821/Dico%20-%20currency.csv).\
\&#xNAN;***Examples : "**&#x55;SD" **or "**&#x41;UD"*\
\&#xNAN;***Type :** string*\
\&#xNAN;***Required :** yes if shipment\_type is GLOBAL*

#### "included\_tax"

If you fill with true, we consider that the product(s) price is tax incl. so we will deduct the taxes attached to the departure country from the duties & taxes amount. If you fill with false or no value, we consider that the product(s) price is tax excl.\
\&#xNAN;***Examples :** true **or** false*\
\&#xNAN;***Type :** boolean*\
\&#xNAN;***Required :** optional*

#### "incoterm"

2 choices : if it's CIF, we calcul the duties and taxes on product(s) and shipping price(s). If it's FOB, only on product(s).\
\&#xNAN;***Examples :** CIF **or** FOB*\
\&#xNAN;***Type :** string*\
\&#xNAN;***Required :** optional*

#### "extra\_fees"

You can add extra fees to duties & taxes amount. You need to fill the "extra\_fees" field with a number. \
\&#xNAN;***Examples :** 0.02 **or** 0.1 (0.02 = 2% / 0.1 = 10%)*\
\&#xNAN;***Type :** number*\
\&#xNAN;***Required :** optional*

#### "sender" / "pro"

You need to fill the "pro" field with **true** or **false** dependind if the sender is a business company or not.\
\&#xNAN;***Type :** boolean*\
\&#xNAN;***Required :** yes*

#### "sender" / "revenue\_country\_annual"

You need to fill the "revenue\_country\_annual" field with a number.\
\&#xNAN;***Examples :** 34560 **or** 234567.98*\
\&#xNAN;***Type :** number*\
\&#xNAN;***Required :** yes if "sender" / "pro" field is "pro" and from\_country & to\_country are European countries.*&#x20;

#### "sender" / "currency\_revenue\_country\_annual"

You need to fill the "currency\_global\_ship\_price" field with a currency iso Alpha 3.\
Download the [list of currencies](https://f.hubspotusercontent20.net/hubfs/3856821/Dico%20-%20currency.csvhttps://f.hubspotusercontent20.net/hubfs/3856821/Dico%20-%20currency.csv).\
\&#xNAN;***Examples : "**&#x55;SD" **or "**&#x41;UD"*\
\&#xNAN;***Type :** string*\
\&#xNAN;***Required :** yes if "sender" / pro" field is "pro" and from\_country & to\_country are European countries.*&#x20;

#### "receiver" / "pro"

You need to fill the "pro" field by "**true"** or "**false"** dependind if the receiver is a business company or not.\
\&#xNAN;***Type :** boolean*\
\&#xNAN;***Required :** yes*

#### "receiver" / "activity\_id"

You need to fill the "activity\_id" field with an activity code.\
Download the [list of companies activities](https://f.hubspotusercontent20.net/hubfs/3856821/Dico%20-%20activity.csv).\
\&#xNAN;***Examples :** "0112Z" **or** "7161A"*\
\&#xNAN;***Type :** string*\
\&#xNAN;***Required :** yes if "receiver" / "pro" field is "pro".*

#### "transport" / "type"

You can fill the "type" field of the transport company with **"CARRIER"** or **"FREIGHT\_FORWARDER"**.\
\&#xNAN;***Type :** string*\
\&#xNAN;***Required :** optional (required if you want to know the duty fees)*

#### "transport" / "id"

You can fill the "id" field of the transport company with an entire number.\
Download the [list of carriers and freight forwarder](https://f.hubspotusercontent20.net/hubfs/3856821/Dico%20-%20transporteurs.csv)s.\
\&#xNAN;***Examples :** "01" **or** "28"*\
\&#xNAN;***Type :** string*\
\&#xNAN;***Required :** optional (required if you want to add automaticaly the duty fees)*

#### "transit\_fees" / "percentage"

You can fill the "percentage" field of your duty fees.\
\&#xNAN;***Examples :** "0.01" **or** "0.3" (0.01 = 1% / 0.3 = 30%)*\
\&#xNAN;***Type :** number*\
\&#xNAN;***Required :** optional*

#### "transit\_fees" / "amount"

You can fill the "amount" field of your duty fees.\
\&#xNAN;***Examples :** "10" **or** "29.99"*\
\&#xNAN;***Type :** number*\
\&#xNAN;***Required :** optional*

#### "transit\_fees" / "currency"

You can fill the "amount" field of your duty fees.\
\&#xNAN;***Examples :** "10" **or** "29.99"*\
\&#xNAN;***Type :** number*\
\&#xNAN;***Required :** optional (required you filled*  "transit\_fees" / "amount" )

#### "transit\_fees" / "on\_products\_price"

You have three choices : on\_products\_price / on\_shipping\_products\_price / on\_global\
If on\_products\_price = true, the transit\_fees will be calculated only on the price of product(s).\
**Examples :** "true" **or** "false"\
**Type :** boolean\
**Required :** optional but required if you fill a value in transit\_fees, percentage or amount/currency

#### "transit\_fees" / "on\_shipping\_products\_price"

You have three choices : on\_products\_price / on\_shipping\_products\_price / on\_global\
If on\_shipping\_products\_price = true, the transit\_fees will be calculated only on the price of shipping.\
\&#xNAN;***Examples :** "true" **or** "false"*\
\&#xNAN;***Type :** boolean*\
\&#xNAN;***Required :** optional but required if you fill a value in* transit\_fee&#x73;*, percentage or amount/currency*

#### "transit\_fees" / "on\_global"

You have three choices : on\_products\_price / on\_shipping\_products\_price / on\_global\
If on\_global = true, the transit\_fees will be calculated only on the price of product(s) and the shipping.\
\&#xNAN;***Examples :** "true" **or** "false"*\
\&#xNAN;***Type :** boolean*\
\&#xNAN;***Required :** optional but required if you fill a value in* transit\_fee&#x73;*, percentage or amount/currency*

### JSON Response Format

```
{
    "products": [
        {
            "vat": [
                {
                    "label": "string",
                    "percentage": number,
                    "product_taxes_amount": number,
                    "shipping_taxes_amount": number,
                    "packaging_taxes_amount": number,
                    "insurance_taxes_amount": number,
                    "message": "string"
                }
            ],
    ],
    "shipping_global": {
        "vat": [
            {
                "label": "string",
                "amount": number,
                "percentage": number
            }
        ]
    },
    "packaging_global": {
        "vat": [
            {
                "label": "string",
                "amount": number,
                "percentage": number
            }
        ]
    },
    "insurance_global": {
        "vat": [
            {
                "label": "string",
                "amount": number,
                "percentage": number
            }
        ]
    },
    "incoterm": "string",
    "extra_fees": {
        "percentage": number,
        "amount": number,
        "currency": "string"
    },
    "global": {
        "amount": number
    },
    "timestamp": number
}
```

### Response fields & values

#### "products" / "vat" / "label"

The value is the label of VAT tax. It depends on the "to\_country" field in the request.\
\&#xNAN;***Examples :** vat **or** gst*\
\&#xNAN;***File type :** string*

#### "products" / "vat" / "percentage"

The value is the percentage (%) of VAT tax.\
\&#xNAN;***Examples :** 3 **or** 1.5*\
\&#xNAN;***File type :** number*

#### "products" / "vat" / "product\_taxes\_amount"

The value is the amount of : ("unit\_ship\_price" x  "products" / "vat" / "percentage"). The currency of this amount depends on "currency\_unit\_ship\_price".\
\&#xNAN;***Examples :** 3.45 **or** 2*\
\&#xNAN;***File type :** number*

#### "products" / "vat" / "shipping\_taxes\_amount"

The value is the amount of : ("unit\_price" x  "products" / "vat" / "percentage"). The currency of this amount depends on "currency\_unit\_ship\_price".\
\&#xNAN;***Examples :** 2.88 **or** 9*\
\&#xNAN;***File type :** number*

#### "products" / "vat" / "packaging\_taxes\_amount"

The value is the amount of : ("unit\_price" x  "products" / "vat" / "percentage"). The currency of this amount depends on "currency\_unit\_ship\_price".\
\&#xNAN;***Examples :** 2.88 **or** 9*\
\&#xNAN;***File type :** number*

#### "products" / "vat" / "insurance\_taxes\_amount"

The value is the amount of : ("unit\_price" x  "products" / "vat" / "percentage"). The currency of this amount depends on "currency\_unit\_ship\_price".\
\&#xNAN;***Examples :** 2.88 **or** 9*\
\&#xNAN;***File type :** number*

#### "*message*"

The value is the locale rule.\
\&#xNAN;***Examples :** European Country*\
\&#xNAN;***File type :** string*

#### "shipping\_global" / "vat" / "label"

The value is the label of VAT tax. It depends on the "to\_country" field in the request.\
\&#xNAN;***Examples :** vat **or** gst*\
\&#xNAN;***File type :** string*

#### "shipping\_global" / "vat" / "amount"

The value is the amount of : ("global\_ship\_price" x  "shipping\_global" / "vat" / "percentage"). The currency of this amount depend of "currency\_global\_ship\_price".\
\&#xNAN;***Examples :** 345 **or** 29.99*\
\&#xNAN;***File type :** number*

#### "shipping\_global" / "vat" / "percentage"

The value is the percentage (%) of VAT tax.\
\&#xNAN;***Examples :** 3 **or** 1.5*\
\&#xNAN;***File type :** number*

#### "packaging\_global" / "vat" / "label"

The value is the label of VAT tax. It depends on the "to\_country" field in the request.\
\&#xNAN;***Examples :** vat **or** gst*\
\&#xNAN;***File type :** string*

#### "packaging\_global" / "vat" / "amount"

The value is the amount of : ("global\_ship\_price" x  "packaging\_global" / "vat" / "percentage"). The currency of this amount depend of "currency\_global\_ship\_price".\
\&#xNAN;***Examples :** 345 **or** 29.99*\
\&#xNAN;***File type :** number*

#### "packaging\_global" / "vat" / "percentage"

The value is the percentage (%) of VAT tax.\
\&#xNAN;***Examples :** 3 **or** 1.5*\
\&#xNAN;***File type :** number*

#### "insurance\_global" / "vat" / "label"

The value is the label of VAT tax. It depends on the "to\_country" field in the request.\
\&#xNAN;***Examples :** vat **or** gst*\
\&#xNAN;***File type :** string*

#### "insurance\_global" / "vat" / "amount"

The value is the amount of : ("global\_ship\_price" x  "insurance\_global" / "vat" / "percentage"). The currency of this amount depend of "currency\_global\_ship\_price".\
\&#xNAN;***Examples :** 345 **or** 29.99*\
\&#xNAN;***File type :** number*

#### "insurance\_global" / "vat" / "percentage"

The value is the percentage (%) of VAT tax.\
\&#xNAN;***Examples :** 3 **or** 1.5*\
\&#xNAN;***File type :** number*

#### "Incoterm"

*The value is* **CIF** or **FOB** dependind of your reques&#x74;*.*\
\&#xNAN;***Type :** string*\
\&#xNAN;***Required :** yes*

#### "extra\_fees" / "percentage"

The value is the percentage (%) of VAT tax.\
\&#xNAN;***Examples :** 3 **or** 1.5*\
\&#xNAN;***File type :** number*

#### "extra\_fees" / "amount"

The value is the amount of : ("global\_ship\_price" x  "extra\_fees" / "vat" / "percentage"). The currency of this amount depend of "currency\_global\_ship\_price".\
\&#xNAN;***Examples :** 345 **or** 29.99*\
\&#xNAN;***File type :** number*

#### "extra\_fees" / "*currency*"

The value is the currency.\
\&#xNAN;***Examples :** EUR*\
\&#xNAN;***File type :** string*

#### "global" / "amount"

The value is the sum of all amount fields.\
\&#xNAN;***Examples :** 1675 **or** 80.98*\
\&#xNAN;***File type :** number*

{% hint style="warning" %}
**Warning : 1 product = 1 request / 3 products = 3 requests**
{% endhint %}

### JSON Examples - Request & Response

It exist many possibilities. Please [book a call ](https://meetings.hubspot.com/gauthier11/gauthier)with our support team.<br>

### Video explainer

in progress...
