Every import and export declaration in Thailand has to show an HS code (tariff code) for each item. That number decides how much duty you pay, whether you can claim an FTA rate, and which licences the goods need before release. Get it wrong and you may face extra duty, surcharges, fines and cargo stuck at the port. This guide explains what an HS code is, how to read Thailand’s 8-digit tariff code and statistical code, how to check a code yourself in five steps, and the mistakes importers make most often.
อ่านฉบับภาษาไทย: HS Code คืออะไร?
- The HS code is a global product classification maintained by the World Customs Organization (WCO). The first six digits are the same in more than 200 countries and economies.
- Thailand uses 8-digit tariff codes based on the ASEAN Harmonised Tariff Nomenclature (AHTN), and the customs declaration adds a 3-digit statistical code and a unit, e.g. 8409.91.22-001/KGM.
- The code drives the duty rate, FTA eligibility, import licences and mandatory standards.
- Classify with the six General Interpretative Rules (GRI), looking at material, function and the section and chapter notes, not the trade name or the code printed on the supplier’s invoice.
- If in doubt, search past Thai Customs rulings, apply for an advance classification, or have your customs broker check the code before the declaration is filed.
- HS 2028 takes effect on 1 January 2028, and many codes will change again.

What is an HS code?
HS stands for the Harmonized Commodity Description and Coding System, developed by the World Customs Organization. It groups goods into more than 5,000 commodity groups, each identified by a six-digit code. More than 200 countries and economies use it as the basis of their customs tariffs, and over 98% of the merchandise in international trade is classified in HS terms (WCO).
Each country extends the six international digits for its own tariff. Thailand and the other ASEAN members add digits 7 and 8 from the AHTN, so the Thai customs tariff uses 8-digit codes.
Reading the 8-digit code and statistical code on a Thai declaration
The table uses a knitted cotton T-shirt to show the structure. Levels 2 to 6 are international and identical everywhere; digits 7–8 and the statistical code have to be looked up in Thailand’s tariff and statistical code list.
| Level | Example | Meaning | Set by |
|---|---|---|---|
| Chapter (2 digits) | 61 | Apparel, knitted or crocheted | WCO (global) |
| Heading (4 digits) | 61.09 | T-shirts, singlets and other vests, knitted | WCO (global) |
| Subheading (6 digits) | 6109.10 | Of cotton | WCO (global) |
| Tariff line (8 digits) | 6109.10.xx | National split | AHTN (ASEAN) |
| Statistical code (3 digits) + unit | -xxx/unit | Declared on the customs entry | Thai Customs |
A real example from Thai Customs Notification 118/2569: 8409.91.22-001/KGM is a cylinder block for spark-ignition engines of vehicles of heading 87.01, declared in kilograms. Cylinder blocks and crankcases used to share statistical code 000; from 1 October 2026 they must be declared as 001 and 002. The 8-digit code did not change, but the statistical code did (our summary, in Thai).
What the HS code controls
- Import duty. Every tariff line has its own rate, and similar-looking goods in different lines can pay very different duty. Import VAT is calculated on a base that includes duty, so a wrong code also means wrong VAT.
- FTA rates. Preferential rates are set line by line, and product-specific rules of origin refer to HS codes. Claiming Form E, Form D or any other certificate of origin starts with the correct code.
- Licences and mandatory standards. Agencies such as the Thai FDA and the Thai Industrial Standards Institute (TISI) attach controls to tariff and statistical codes, and e-licences are matched through the National Single Window against the code you declare.
- Trade statistics and customs checks. Customs uses tariff data for national statistics and when deciding which shipments to inspect, so data that does not match your other documents can lead to closer checks.
Exports need codes too. The export declaration shows the tariff code, and your buyer will use the same first six digits to import. Giving the buyer the right code helps the shipment clear at destination.

How to check a tariff code yourself in 5 steps
- Collect the full product details: name, materials and their proportions, function and use, the condition it arrives in (assembled, knocked down, or as a set), photos and the catalogue or specification sheet. The better the details, the more accurate the code.
- Find the chapter and the 4-digit heading. Read the heading texts together with the section and chapter notes, which often say what is included or excluded. If more than one heading fits, apply the GRI (next section).
- Go down to the 6-digit subheading and the Thai 8-digit line, comparing only lines at the same level. Use the tariff database on Thai Customs’ tariff search page (in Thai).
- Check everything tied to the code: the statistical code and unit to declare, the general duty rate against any FTA rate, and controls such as FDA licences, TISI standards or Department of Agriculture certificates.
- Compare with existing rulings. Thai Customs publishes its classification rulings through Tariff e-Service. If you are still unsure, especially for regular imports or when the duty difference is large, apply for an advance tariff classification or ask a customs broker before you place the order.
The Thai Customs search page notes that the data shown is preliminary and that the Ministry of Finance and Customs notifications are the reference. Where they differ, the notification wins.
The six General Interpretative Rules (GRI), in plain words
Every country classifies goods with the same General Interpretative Rules (GRI). They apply in order: you move to the next rule only if the previous one cannot decide.
| Rule | What it says | Example |
|---|---|---|
| GRI 1 | Section and chapter titles are for reference only. Classification follows the heading texts and the section and chapter notes. | Never classify from a chapter title alone. |
| GRI 2 | (a) Incomplete or unassembled goods that have the essential character of the finished article are classified as the finished article. (b) Goods of mixed materials go to GRI 3. | A machine shipped knocked down for assembly at destination is classified as that machine. |
| GRI 3 | If more than one heading fits: (a) the most specific heading wins; (b) mixtures and sets follow the material or component that gives the essential character; (c) otherwise, the heading that comes last in numerical order. | A hairdressing set of electric clippers, comb, scissors, brush and towel in a case is classified as the clippers. |
| GRI 4 | Goods that cannot be classified under rules 1–3 go to the heading for the most similar goods. | Rarely used; for genuinely new products. |
| GRI 5 | Cases made specially for an article and suitable for long-term use, such as camera or instrument cases, and normal packing are classified with the goods. | A camera with its fitted case is classified as a camera. |
| GRI 6 | The same rules apply at subheading level, and only subheadings at the same level are compared. | Choose among one-dash lines first, then the two-dash lines below. |
Common classification mistakes
- Copying the code from the supplier’s invoice. The first six digits are international, but digits 7–8 and national interpretations can differ, and the importer is responsible for what is declared.
- Classifying by trade name or marketing use instead of material, function and chapter notes. Products with the same trade name can sit in different headings.
- Parts versus finished goods. Knocked-down goods with the essential character of the finished article are classified as the finished article, and parts have their own rules in the section and chapter notes.
- Sets and mixtures. Find the component that gives the essential character, which may come from function, quantity, weight or value, not simply the most expensive item.
- Old statistical codes or units. The statistical code list is amended regularly, as with heading 84.09 from 1 October 2026.
- Checking the duty rate but not the controls. Some lines need a licence or a mandatory TIS standard before import.
What a wrong code can cost
The consequences depend on whether duty was underpaid and whether there was intent. In summary, under the Customs Act B.E. 2560 (2017):
- The unpaid duty plus a surcharge of 1% per month of the additional duty, capped at the amount of that duty (Section 22), plus the VAT that follows from the higher duty base.
- Filing an incorrect declaration or incorrect data is an offence under Section 202, with a fine of up to THB 500,000.
- Intentional duty evasion falls under Section 243: up to 10 years’ imprisonment or a fine of half to four times the additional duty, or both.
- Cargo held at the port if the correct code needs a licence you have not prepared, with storage and container charges running in the meantime.
- Lost FTA rates if the code on the declaration and the certificate of origin do not match.
The reverse also costs money: declaring a line with a higher duty rate than necessary means overpaying. Getting the code right the first time pays off both ways.
HS 2028: codes change again on 1 January 2028
The WCO reviews the HS in cycles. The eighth edition, HS 2028, is the outcome of the 7th review cycle and enters into force on 1 January 2028. Countries that use the HS, Thailand included, will update their national tariffs to match, so affected goods may get new tariff codes, duty rates and statistical codes. Importers with regular product lines should review their codes when Thai Customs publishes its correlation tables, and update their systems, licences and certificates of origin in time.
Frequently asked questions
What is an HS code?
A product classification code from the Harmonized System developed by the World Customs Organization. The first six digits are shared by more than 200 countries, and the code determines duty, FTA eligibility and import controls.
How many digits does a Thai tariff code have?
Eight. On the customs declaration you also add a 3-digit statistical code and a unit of quantity, for example 8409.91.22-001/KGM.
Where can I check a Thai tariff code?
On the Thai Customs tariff search page, and in published classification rulings on Tariff e-Service. Ministry of Finance and Customs notifications are the legal reference.
Can I use the HS code on the supplier’s invoice?
As a starting point, yes, but do not copy it straight onto your declaration. Digits 7–8 and national interpretations can differ, and the importer is responsible for the code declared.
What should I do if I am not sure of the code?
Look up rulings for similar goods, apply to Thai Customs for an advance tariff classification, or have your customs broker review the product details before you order and before the declaration is filed.
Sources
- World Customs Organization, What is the Harmonized System (HS)?: wcoomd.org
- World Customs Organization, HS Nomenclature 2028 Edition: wcoomd.org
- Thai Customs Department, tariff search (in Thai): customs.go.th
- Thai Customs Department, Tariff e-Service: tariffeservice.customs.go.th
- Customs Notification 118/2569, statistical codes (amendment no. 12): Met-Logs summary, in Thai
- Legardy, customs duty assessment, appeal and seizure in Thailand (summary of Sections 22, 202 and 243 of the Customs Act B.E. 2560): legardy.com
Working with Met-Logs in Thailand
Met-Logs is a Bangkok-based freight forwarder and customs broker, established in 2009 and a member of the Thai International Freight Forwarders Association (TIFFA). Our in-house customs specialists can review your product details and tariff code before you order, and check the duty rate, FTA eligibility, statistical code and licences the goods need. Send us the product name, materials, use, photos or specifications. See Customs Clearance and Sea Freight.
Not sure of your tariff code?
Our team replies within business hours, Monday–Friday 08:30–17:30 (GMT+7).
The legal points are a summary for general information, not legal advice. The code examples only illustrate the structure; check codes, duty rates and statistical codes against the latest Thai Customs notifications before declaring.
อ่านฉบับภาษาไทย: HS Code คืออะไร? วิธีเช็คพิกัดศุลกากรด้วยตัวเอง และจุดที่สำแดงผิดบ่อย