> For the complete documentation index, see [llms.txt](https://transiteo.gitbook.io/transiteo/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://transiteo.gitbook.io/transiteo/duties-and-taxes-services/duty-and-taxes-calculator/taxes-calculation-1/using-hscode.md).

# 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...


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://transiteo.gitbook.io/transiteo/duties-and-taxes-services/duty-and-taxes-calculator/taxes-calculation-1/using-hscode.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
