Import duty is a type of tax collected by a country’s customs authorities on goods that arrive from other countries (i.e. imports). The duty amount is calculated based on the value of the goods and varies depending on the country’s regulations and duty de minimis values.
Zonos processes hundreds of thousands of landed cost quotes per day. Duty rates are one of the most complicated components in a total landed cost calculation. Often, either a simplified duty is charged or else duty is not charged at all for low-value imports.
We decode cross-border fees and charges to create transparency in ecommerce. Transparency is important so that an exporter can trust calculations, assess how much time and effort is needed to harmonize a catalog, and accurately calculate duties and taxes with the least amount of cost and effort.
Zonos will calculate duty with or without an HS code, including reduced rates, simplified rates, and the impact of de minimis values. As shown in the landed cost object, the duty rates are returned on a per-item basis with descriptions for the duty rates.
Landed cost
{
"id": "ldct_1Ce6vt2eZvKYlo2CrgzPqxaz",
"amount_subtotal": {
"duties": 9.85,
"fees": 21.0,
"taxes": 29.11
},
"duties": [
{
"amount": 7.5,
"description": "Duty",
"formula": "10%",
"item_id": "294395",
"note": null,
"type": "item"
},
{
"amount": 2.35,
"description": "Duty",
"formula": "10%",
"item_id": null,
"note": null,
"type": "shipping"
}
]
}
To start receiving a landed cost calculation with duty rates, a country-specific, frequently-used HS code is required in your account setup. You can send a unique HS code in each request. If the HS code is missing on a request, the default HS code will be used.
When the goods' combined value in a single shipment is below the duty de minimis, the item will clear without any duty collection; however, import tax may still be collected if the tax threshold is lower than the duty threshold. The opposite scenario is not possible because countries don’t set a lower threshold for duty and a higher threshold for tax.
The duty de minimis qualification is returned in the landed cost object. When the amount is below the de minimis threshold ("threshold": "below"
), duties will not be applied to the import.
Landed cost
{
"id": "ldct_1Ce6vt2eZvKYlo2CrgzPqxaz",
"amount_subtotal": {
"duties": 0,
"fees": 21.0,
"taxes": 29.11
},
"de_minimis": [
{
"formula": "Less than 150 EUR",
"method": "cif",
"note": null,
"threshold": "below",
"type": "duty"
}
]
}
When a request is under the duty threshold in Checkout, Quoter, or Hello, the app will inform the shopper.
Landed cost
{
"de_minimis": [
{
"formula": "Less than 150 EUR",
"method": "cif",
"note": null,
"threshold": "below",
"type": "duty"
},
{
"formula": "Less than 22 EUR",
"method": "cifd",
"note": null,
"threshold": "above",
"type": "tax"
}
]
}
The method
demonstrates the formula used for the duty calculation.
Method | Duty is applied to |
---|---|
CIF | Cost + insurance + freight: A method for calculating import taxes or duties where the tax is calculated on the cost of the order plus the cost of freight, and insurance. |
FOB | Free on board: A method for calculating import taxes or duties where the fees are calculated only on the cost of the goods sold. FOB is not calculated on the shipping, duty, insurance, etc. |
Other | Per unit, weight-based |
All duty charges in the landed cost calculation are derived from an HS code. If an HS code is not provided in a request, the default HS code will be used in the calculation. If the HS code is for the wrong country, (e.g. an eight-digit HS code for Canada is provided on a request for a landed cost quote intended for Ireland), the code will be trimmed to the universal six digits for calculation. The response will contain a note indicating the code was trimmed due to a mismatch.
The landed cost object will contain the source of the HS code calculation: hs_code_source
. There are five possible sources for an HS code that can be returned in the response. The zonos_catalog
source will take precedence over any other source and will be used to match the appropriate duty rate of the item.
HS code source | Description |
---|---|
zonos_catalog PRIORITY | The item was entered in the Zonos Catalog with an HS code. |
api_request | The HS code was sent in the API request. |
platform | The HS code was passed from your ecommerce platform. |
zonos_classified | Item was classified by the Zonos Classify product. |
account_default | The HS code applied was the frequently-used HS code on your account. |
Landed cost
{
"id": "ldct_1Ce6vt2eZvKYlo2CrgzPqxaz",
"customs": {
"amount_shipping": 25.0,
"delivery_duty_paid": "available",
"items": [
{
"id": "294395",
"amount": 75.0,
"country_of_origin": "FR",
"country_of_origin_source": "api_request",
"description_customs": "Footwear with outer soles of leather or composition leather",
"description_retail": "Hoka One Running Shoe - Women's",
"detail": null,
"dimensions": {
"height": 4.0,
"length": 6.0,
"unit": "inch",
"width": 11.0
},
"hs_code": "6404.20",
"hs_code_source": "account_default",
"image_url": "https://zonos.com/images/handbag.png",
"note": null,
"quantity": 1,
"upc_code": null,
"weight": 10.0,
"weight_unit": "pound"
},
{
"id": "294396",
"amount": 100.0,
"country_of_origin": "FR",
"country_of_origin_source": "platform",
"description_customs": "Footwear with outer soles of leather or composition leather - For Women",
"description_retail": "Hoka One Running Shoe - Men's",
"detail": null,
"dimensions": {
"height": 4.0,
"length": 6.0,
"unit": "inch",
"width": 11.0
},
"hs_code": "6404.20.20",
"hs_code_source": "platform",
"image_url": "https://zonos.com/images/handbag.png",
"note": null,
"quantity": 1,
"upc_code": null,
"weight": 10.0,
"weight_unit": "pound"
},
{
"id": "294397",
"amount": 125.0,
"country_of_origin": "FR",
"country_of_origin_source": "platform",
"description_customs": "Other footwear - With uppers of leather or composition leather",
"description_retail": "Hoka One Running Shoe - Children's",
"detail": null,
"dimensions": {
"height": 4.0,
"length": 6.0,
"unit": "inch",
"width": 11.0
},
"hs_code": "6405.10",
"hs_code_source": "api_request",
"image_url": "https://zonos.com/images/handbag.png",
"note": "hs_code_not_found Hs code trimmed to six digits due to a mismatch",
"quantity": 1,
"upc_code": null,
"weight": 10.0,
"weight_unit": "pound"
}
],
"ship_to_country": "FR"
}
}
A country of origin can impact the duty amount applied to an import due to trade agreements, laws, etc.
The country of origin can be set in the "items"
array within the LANDED COST REQUEST API and requires a two-digit ISO code. See the ISO code reference sheet in our guides for a full list of 2-digit ISO codes.
Landed cost request
{
"items": [
{
"id": "294395",
"amount": 75.0,
"country_of_origin": "FR",
"description_customs": "Telephones for cellular networks or for other wireless networks:",
"description_retail": "Smartphone XL - 128 GB - Black",
"hs_code": "8517.12",
"quantity": 1
}
],
"shipping": {
"amount": 25.0,
"landed_cost": "delivery_duty_paid"
}
}
If you prefer, you can manage countries of origin and HS codes in Zonos Catalog. Catalog entries for products will take preference in determining the country of origin.
For example, if product id:
294395
was added to your catalog withCA
as the country of origin but a request was sent withFR
as the country of origin, theCA
country of origin would take precedence and be used for determining any possible duty rates for that item.
We'll calculate the preferential duty rate with a qualified country of origin. By default, other trade agreements are not enabled because many times smaller exporters don't have proper documentation and processes in place to receive the eligible reduced rate for all trade agreements. Additional trade agreements can be applied to your landed cost calculation upon request. To enable additional trade agreement preferences, contact the Zonos Decoder team for assistance.
Often small, medium, and even large companies don’t have their products harmonized; if they do, the products are usually only harmonized to the sixth digit. In addition, the items may not even have a country of origin. The majority of duty and tax calculators are unable to calculate duty and tax without an eight-digit code and a country of origin. Zonos Landed Cost will calculate duty, even in cases where data is incomplete.
When only a six-digit HS code is available, the duty amount applied at the time of calculation uses a safety net by selecting the rate from the maximum dutiable HS code from the subset of country-level HS codes. This can be controlled at the API level by sending maximum
, median
, minimum
, or zonos_preferred
in the landed cost request. The selection of a median tariff allows for a cleaner calculation of specific duty rates vs attempting to calculate the average. The median tariff is the middle tariff calculation in an ordered list. Below is an example of sending a median
code in the rate request.
Landed cost request
{
"tariff_rate": "median"
}
An ad valorem rate is simply a fancy way of saying percentage. Here is an example of country-level ad valorem tariffs available if a six-digit code of 6109.90 is supplied.
6109.90 | Description | Duty tariff (ad valorem) |
---|---|---|
6109.90.10 | T-shirt - Of man-made fibers | 32% MAXIMUM |
6109.90.15 | T-shirt - Of wool, with long sleeves | 5.6% |
6109.90.40 | T-shirt - Containing 70% or more silk | 2.6% MINIMUM |
6109.90.80 | T-shirt - Other | 16% MEDIAN |
In this example, by default, the maximum tariff 6109.90.10 would be used since it has the highest duty rate (32%). The landed cost object would return the six-digit HS code in items.hs_code
and the duty percentage would be displayed in duties.formula
.
Landed cost
{
"id": "ldct_1Ce6vt2eZvKYlo2CrgzPqxaz",
"customs": {
"amount_shipping": 20.0,
"delivery_duty_paid": "available",
"items": [
{
"id": "294395",
"amount": 75.0,
"country_of_origin": "FR",
"country_of_origin_source": "platform",
"description_customs": "T-shirt - Of man-made fibers",
"description_retail": "Stranger Things Women's T-shirt - Red",
"detail": null,
"dimensions": {
"height": 1.0,
"length": 1.0,
"unit": "inch",
"width": 1.0
},
"hs_code": "6109.90",
"hs_code_source": "Account default HS code",
"image_url": "https://zonos.com/images/handbag.png",
"note": null,
"quantity": 1,
"upc_code": null,
"weight": 1.0,
"weight_unit": "pound"
}
]
},
"duties": [
{
"amount": 24.0,
"description": "Duty",
"formula": "32%",
"item_id": "294395",
"note": null,
"type": "item"
}
]
}
Specific tariffs supply an amount, such as weight, and return specific duties for those amounts. Here is an example of country-level specific tariffs available if a six-digit code of 9105.19 is supplied.
9105.19 | Description | Duty tariff (specific duty) |
---|---|---|
9105.19.10 | Clocks - Other | 0.20 RUB per unit MAXIMUM |
9105.19.20 | Having no jewels or only one jewel | 0.05 RUB per unit |
9105.19.30 | Having over one jewel | 0.05 RUB per unit MEDIAN |
9105.19.40 | Valued over 5 USD each | 0.05 RUB per unit MINIMUM |
The rate used in this example would default to the code 9105.19.10, which was the highest rate—0.20 RUB per unit. The landed cost object would return the six-digit HS code in items.hs_code
and the specific duty rate would be displayed in duties.formula.
Landed cost
{
"id": "ldct_1Ce6vt2eZvKYlo2CrgzPqxaz",
"customs": {
"amount_shipping": 30.0,
"delivery_duty_paid": "available",
"items": [
{
"id": "294395",
"amount": 75.0,
"country_of_origin": "FR",
"country_of_origin_source": "api_request",
"description_customs": "Clocks - Other",
"description_retail": "Standard Atomic Clock - Black",
"detail": null,
"dimensions": {
"height": 12.0,
"length": 12.0,
"unit": "inch",
"width": 2.0
},
"hs_code": "9105.19",
"hs_code_source": "Account default HS code",
"image_url": "https://zonos.com/images/handbag.png",
"note": null,
"quantity": 20,
"upc_code": null,
"weight": 5.0,
"weight_unit": "pound"
}
]
},
"duties": [
{
"amount": 4.0,
"description": "Duty",
"formula": ".20 RUB per unit",
"item_id": "294395",
"note": null,
"type": "item"
}
]
}
For duty rates applied per weight, an item weight and/or dimensions will be needed to accurately calculate the duty; however, if weight or dimensions are not available for an item, Zonos Landed Cost can use the average weight and/or dimensions for the calculation.
In cases where there is a tariff mixture of ad valorem and specific duty rates, the maximum, median, minimum, and Zonos-preferred calculations are based on the highest duty amount.
8205.51 | Description | Qty | Value | Weight | Duty | Amount |
---|---|---|---|---|---|---|
8205.51.15 | Household tools - of steel | 3 | 30 | 0.14lbs | 0.20 RMB per unit | .60 MINIMUM |
8205.51.45 | Household tools - of copper | 3 | 30 | 0.14lbs | 5% | 4.50 |
8205.51.60 | Household tools - of aluminum | 3 | 30 | 0.14lbs | 0.35 RMB per unit | 1.05 MEDIAN |
8205.51.75 | Household tools - Other | 3 | 30 | 0.14lbs | 2.90 RMB per unit | 8.70 MAXIMUM |
The rates used in this example would be from code 8205.51.75 with the highest calculated amount of 8.70.
Awesome! You are that much closer to having a landed cost solution for your business. Next, you may want to dive into tax calculations or start adding clearance fees to your duty and tax calculations.
Do I need to harmonize my catalog to get a landed cost calculation?
No, a harmonized catalog is not required for a landed cost. If a harmonized code is not provided, the default HS code will be used and a landed cost calculation will be provided.
Does Zonos offer catalog harmonization?
Zonos Classify can be used for on-demand HS code classifications. Harmonize your product catalog with advanced image recognition, UPC code lookup, and HTS country code support.
Is there an interface available to calculate import duty and taxes?
Zonos Quoter is available as a standalone application, so you can easily calculate duties and taxes without an integration.
Is import duty applied to every order?
Not necessarily. It is very common for low-value shipments to be below the duty de minimis, which would indicate that duty is not applied to the import.
How many countries support sending a shipment DDP?
The ability to send a shipment DDP differs by the shipping carrier’s service level. See the Availability document to learn more about DDP.
How is import duty calculated?
Import duty can vary by the destination country, the country of origin, the item HS code, possible de minimis thresholds, and other laws that affect the duty rate of an import. It's not always as straightforward as a single HS code tariff.
When the good's value in a single import or shipment is below the duty de minimis, the item will clear without any duty collection; however, the tax may still be collected if the tax threshold is lower than the duty threshold. It's possible for the value of an item to exceed the tax threshold and not exceed the duty threshold. The opposite is not true, because countries don't set a lower threshold for duty and a higher threshold for tax.
Who pays import duty?
Duty is typically paid by the Importer of Record (IOR). The IOR is the owner or purchaser of products being imported to a country. The IOR is responsible for ensuring the imported goods comply with local laws and regulations, filing a completed duty entry and associated documents required by the CBP (Customs Border Protection), and paying the import duties and taxes.
The IOR is typically the person or entity who has ownership of the imported goods at the time of import.
In some instances, packages are shipped DDP(Delivery Duty Paid). DDP is a loosely used term to describe the process of billing duties and taxes back to the retailer. A retailer may want to send a package DDP if they have collected duties and taxes upfront from their customer, which can be done with Zonos Checkout or any of our Landed Cost products.
Use the Zonos Landed Cost Guarantee for total peace of mind on every duty and tax quote. With the Landed Cost Guarantee, duties and taxes are billed to Zonos.
Import duty
Learn about import duty and how Zonos calculates it for you.