DOCS

Excise duties

Calculate excise duties

Configure product measurements to accurately calculate excise duties.

BETA

When shipping alcoholic products internationally, you need to calculate excise duties, which are special taxes for products like alcohol and other regulated goods. Zonos automatically calculates these duties for shipments to Canada and most EU countries when you provide the required product measurements through our API or add them to your Zonos Catalog.

Overview 

Excise duties apply to products classified under Chapter 22 of the Harmonized System, covering HS code subheadings 2201–2202 for non-alcoholic beverages, HS codes 2203–2208 for alcoholic beverages, spirits, and fermented products, and HS code 2209 for vinegars.

Important: If you're using Zonos Landed Cost guarantee and request a quote for Chapter 22 products without the required measurement values, no quote will be returned. You must provide the necessary measurements either via API or by uploading them to Zonos Catalog.

Measurement requirements by supported countries

Different countries require different measurements for calculating excise duties, depending on the product type. The table below shows which measurements are needed for each country and HS code category. Volume refers to the liquid volume of the product, while ABV (Alcohol by Volume) represents the percentage of alcohol content.

CountryISO CodeNon-alcoholic beverages (HS codes 2201-2202)Vinegars (HS codes 2209)Beer, Wine, Vermouth, Fermented beverages, Spirits and Liquors (HS codes 2203-2208)
🇦🇹 Attribution for Twitter Emojis: ©️ Twitter, Inc. AustriaATVolumeVolumeVolume, ABV
🇧🇬 Attribution for Twitter Emojis: ©️ Twitter, Inc. BulgariaBGVolumeVolumeVolume, ABV
🇧🇶 Attribution for Twitter Emojis: ©️ Twitter, Inc. BonaireBQVolumeVolumeVolume, ABV
🇨🇦 Attribution for Twitter Emojis: ©️ Twitter, Inc. CanadaCAVolumeVolumeVolume, ABV
🇨🇾 Attribution for Twitter Emojis: ©️ Twitter, Inc. CyprusCYVolumeVolumeVolume, ABV
🇨🇿 Attribution for Twitter Emojis: ©️ Twitter, Inc. Czech RepublicCZVolumeVolumeVolume, ABV
🇩🇪 Attribution for Twitter Emojis: ©️ Twitter, Inc. GermanyDEVolumeVolumeVolume, ABV
🇪🇪 Attribution for Twitter Emojis: ©️ Twitter, Inc. EstoniaEEVolume, WeightVolumeVolume, ABV
🇪🇸 Attribution for Twitter Emojis: ©️ Twitter, Inc. SpainESVolumeVolumeVolume, ABV
🇫🇮 Attribution for Twitter Emojis: ©️ Twitter, Inc. FinlandFIVolumeVolumeVolume, ABV
🇫🇷 Attribution for Twitter Emojis: ©️ Twitter, Inc. FranceFRVolumeVolumeVolume, ABV
🇬🇫 Attribution for Twitter Emojis: ©️ Twitter, Inc. French GuianaGFVolumeVolumeVolume, ABV
🇬🇵 Attribution for Twitter Emojis: ©️ Twitter, Inc. GuadeloupeGPVolumeVolumeVolume, ABV
🇬🇷 Attribution for Twitter Emojis: ©️ Twitter, Inc. GreeceGRVolumeVolumeVolume, ABV
🇭🇷 Attribution for Twitter Emojis: ©️ Twitter, Inc. CroatiaHRVolumeVolumeVolume, ABV
🇭🇺 Attribution for Twitter Emojis: ©️ Twitter, Inc. HungaryHUVolumeVolumeVolume, ABV
🇮🇪 Attribution for Twitter Emojis: ©️ Twitter, Inc. IrelandIEVolume, WeightVolumeVolume, ABV
🇮🇹 Attribution for Twitter Emojis: ©️ Twitter, Inc. ItalyITVolumeVolumeVolume, ABV
🇱🇹 Attribution for Twitter Emojis: ©️ Twitter, Inc. LithuaniaLTVolumeVolumeVolume, ABV
🇱🇺 Attribution for Twitter Emojis: ©️ Twitter, Inc. LuxembourgLUVolumeVolumeVolume, ABV
🇱🇻 Attribution for Twitter Emojis: ©️ Twitter, Inc. LatviaLVVolume, WeightVolumeVolume, ABV
🇲🇹 Attribution for Twitter Emojis: ©️ Twitter, Inc. MaltaMTVolumeVolumeVolume, ABV
🇳🇱 Attribution for Twitter Emojis: ©️ Twitter, Inc. NetherlandsNLVolumeVolumeVolume, ABV
🇵🇱 Attribution for Twitter Emojis: ©️ Twitter, Inc. PolandPLVolumeVolumeVolume, ABV
🇵🇹 Attribution for Twitter Emojis: ©️ Twitter, Inc. PortugalPTVolumeVolumeVolume, ABV
🇷🇪 Attribution for Twitter Emojis: ©️ Twitter, Inc. RéunionREVolumeVolumeVolume, ABV
🇷🇴 Attribution for Twitter Emojis: ©️ Twitter, Inc. RomaniaROVolume, WeightVolumeVolume, ABV
🇸🇪 Attribution for Twitter Emojis: ©️ Twitter, Inc. SwedenSEVolumeVolumeVolume, ABV
🇸🇮 Attribution for Twitter Emojis: ©️ Twitter, Inc. SloveniaSIVolumeVolumeVolume, ABV
🇸🇰 Attribution for Twitter Emojis: ©️ Twitter, Inc. SlovakiaSKVolumeVolumeVolume, ABV
🇾🇹 Attribution for Twitter Emojis: ©️ Twitter, Inc. MayotteYTVolumeVolumeVolume, ABV

Provide required measurements 

When shipping alcohol or other Chapter 22 products subject to excise duties, you must include specific measurement inputs to ensure accurate calculations. The required measurements vary by destination country—for example, when shipping wine to Poland, you need to provide both VOLUME and ALCOHOL_BY_VOLUME.

This table shows how measurement fields correspond between API requests and CSV uploads:

API enumValue typeCSV headerDescription
unitOfMeasureitemUnitOfMeasure!Volumetric unitUnit for volume measurement
volumevalueVolumeVolume amount
alcohol_by_volumePERCENTAGEAlcohol by volumeABV percentage

View our API reference here for a complete list of API measurement values.

Add measurements via API or Catalog

You can add product measurements at the time of your landed cost request, or add measurements to your Zonos Catalog items so they automatically apply based on the product ID or SKU. Follow the mutation and steps below:

Include measurements directly via API using the measurements array in itemCreateWorkflow.

1mutation {
2 partyCreateWorkflow(
3 input: [
4 { location: { countryCode: US }, type: ORIGIN }
5 {
6 location: {
7 countryCode: PL
8 line1: "ul. Leonarda 87"
9 locality: "Lublin"
10 postalCode: "20-625"
11 }
12 person: {
13 email: "test@gmail.com"
14 firstName: "firstName"
15 lastName: "lastName"
16 phone: "5022303021"
17 companyName: "goProTest"
18 metadata: { key: "key", value: "value" }
19 }
20 type: DESTINATION
21 }
22 ]
23 ) {
24 type
25 id
26 organization
27 }
28 
29 itemCreateWorkflow(
30 input: [
31 {
32 amount: 500
33 currencyCode: USD
34 countryOfOrigin: US
35 quantity: 1
36 description: "Red Wine Sparkling"
37 sku: "15120"
38 measurements: [
39 { type: ALCOHOL_BY_VOLUME, value: 12, unitOfMeasure: PERCENTAGE }
40 { type: VOLUME, value: 750, unitOfMeasure: MILLILITER }
41 ]
42 }
43 ]
44 ) {
45 id
46 name
47 productId
48 sku
49 amount
50 hsCode
51 description
52 }
53 cartonizeWorkflow {
54 id
55 type
56 items {
57 item {
58 id
59 }
60 }
61 }
62 
63 shipmentRatingCreateWorkflow(
64 input: {
65 amount: 15
66 currencyCode: EUR
67 serviceLevelCode: "ups.worldwide_expedited"
68 }
69 ) {
70 id
71 serviceLevelCode
72 amount
73 }
74 landedCostCalculateWorkflow(
75 input: {
76 endUse: NOT_FOR_RESALE
77 tariffRate: ZONOS_PREFERRED
78 calculationMethod: DDP_PREFERRED
79 }
80 ) {
81 id
82 landedCostGuaranteeCode
83 
84 amountSubtotals {
85 taxes
86 items
87 shipping
88 fees
89 duties
90 landedCostTotal
91 }
92 shipmentRating {
93 displayName
94 }
95 method
96 duties {
97 item {
98 hsCode
99 id
100 sku
101 amount
102 }
103 amount
104 currency
105 note
106 description
107 formula
108 }
109 taxes {
110 item {
111 id
112 sku
113 amount
114 hsCode
115 }
116 amount
117 currency
118 description
119 formula
120 type
121 note
122 }
123 fees {
124 item {
125 id
126 sku
127 amount
128 }
129 amount
130 currency
131 description
132 }
133 }
134}

Was this page helpful?