HS Code Checker
Paste a commodity code and see what each pair of digits means, whether the code exists at all, and what the heading officially covers.
🔒 Your data never leaves your browser.
What it can answer, and what it cannot
This tool cannot tell you which code your product needs. Classification depends on what the goods are made of and what they are for, and it is decided by the General Rules of Interpretation — not by looking at a number. Anything that claims otherwise from the digits alone is guessing, and customs does not accept guesses.
What it does answer is narrower and still worth having: does this code exist, is it the right length for where you are sending it, and what does the heading say it covers. The last one is the cheapest check available — reading the official heading text catches a mis-keyed code in seconds.
Why chapters 01–09 break in spreadsheets
Chapters 01 to 09 cover live animals, meat, fish, dairy, vegetables, fruit, coffee, tea and
spices. Their codes start with a zero, and a spreadsheet reads 0901 as the number
901 and drops it. The result has an odd digit count — a shape no HS code can have — and nothing
in the file complains. Paste 901 above to see it recognised.
How many digits does a code need?
Six digits are all the world agrees on. Beyond that every country adds its own detail, and the digits it adds are the ones that decide the duty rate — so a six-digit code on a declaration that needs more is not merely short, it is missing the part that costs money.
| Destination | Digits | On what basis |
|---|---|---|
| Any WCO country (the harmonised part) | 6 | The WCO defines the Harmonized System down to a six digit code, identical in every member country. source |
| United States (HTS import or Schedule B export) | 10 | The US International Trade Administration states the United States requires a 10-digit number to classify products being imported or exported. source |
| European Union (Combined Nomenclature) | 8 | The European Commission describes the CN code as an 8-digit code number followed by a description and a duty rate. source |
Other countries use other lengths. They are not listed here because we could not find a page stating the requirement plainly enough to cite — and a digit count written from memory is worse than no answer, because you would act on it.
Chapter 77 is empty, and that is checkable
Chapter 77 carries no headings at all; it is held in reserve. That is not a claim taken from a summary — the full published tariff, all 1,228 headings of it, contains nothing in that chapter, and the script that builds this tool's data re-checks it on every refresh.
Chapters 98 and 99 belong to one country each
They hold special provisions a country writes for itself — goods returned, items repaired abroad and so on. A code starting 98 or 99 can be perfectly valid at one border and meaningless at every other, so this tool says which rather than marking it right or wrong.
Every check this tool runs (14 rules)
HS-N01 This tool does not classify goods
It checks whether a code you already have is real and the right shape. It cannot tell you which code your product needs — that depends on what the goods are made of and what they are for, and it is decided by the General Rules of Interpretation, not by arithmetic. A wrong classification is still wrong when the number is well formed.
Fix: For the code itself, use your customs broker or your destination country’s official tariff search.
HS-F01 The code contains something other than digits
HS codes are digits only. Dots and spaces are presentation and are ignored here, but letters mean you are looking at something else — a Schedule B alphabetic suffix, a supplier reference, or a note that got pasted along with the number.
Fix: Strip everything but the digits and check what is left.
HS-F02 The code has an impossible number of digits
HS codes grow in pairs: 2 digits for the chapter, 4 for the heading, 6 for the international subheading, then national digits in pairs beyond that. An odd number of digits cannot be any of those levels, which almost always means a digit was lost or an extra one typed.
Fix: Check the code against its source — most often a leading zero was dropped.
HS-X01 A spreadsheet dropped the leading zero
Chapters 01 to 09 cover live animals, meat, fish, dairy, vegetables, fruit, coffee, tea and spices — a large part of what is sold across borders. A spreadsheet treats 0901 as the number 901 and drops the zero silently, and the result is a code with an odd digit count that nobody notices until the declaration is rejected.
Fix: Restore the leading zero, and format the column as text before pasting codes into a spreadsheet.
Source: USITC Harmonized Tariff Schedule — public JSON export
HS-X02 The code was destroyed by scientific notation
A ten-digit code stored as a number can be rendered as 9.01211E+09. That form keeps a few significant figures and throws the rest away, so the original cannot be recovered from what is left.
Fix: Go back to the source system and export the column as text.
Source: USITC Harmonized Tariff Schedule — public JSON export
HS-C01 Chapter 77 is reserved and empty
Chapter 77 carries no headings at all — it is held in reserve for future international use. Any code starting 77 is wrong. This is not a judgement call: the full published tariff contains no code in that chapter.
Fix: Check the chapter — 77 is often a typo for 76 (aluminium) or 78 (lead).
Source: USITC Harmonized Tariff Schedule — public JSON export
HS-C02 Chapters 98 and 99 are national, not international
Chapters 98 and 99 hold special classification provisions that each country defines for itself — US chapter 98 covers goods returned, repairs abroad and similar. They are valid where they are defined and meaningless everywhere else, so a code starting 98 or 99 cannot be quoted as an HS code to another country.
Fix: For a cross-border declaration, give the ordinary chapter 01–97 code for the goods themselves.
Source: USITC Harmonized Tariff Schedule — public JSON export
HS-C03 No such chapter
The Harmonized System has chapters 01 to 97. Chapter 00 does not exist, and neither does anything above 99.
Fix: Check the first two digits.
Source: USITC Harmonized Tariff Schedule — public JSON export
HS-H01 No such heading
The first four digits are the heading, and the list of headings is fixed worldwide. This one is not in it, so the code cannot be right in any country.
Fix: Check the four-digit heading in your destination’s official tariff search.
Source: USITC Harmonized Tariff Schedule — public JSON export
HS-H02 What this heading covers
The official heading text is shown so you can confirm the code matches what you are actually shipping. Reading it is the cheapest check available: a well-formed code for the wrong goods passes every format validator and still gets you a penalty.
Source: USITC Harmonized Tariff Schedule — public JSON export
HS-S01 No such subheading in this heading
The heading exists but these six digits are not one of its subheadings. Since the six-digit level is identical in every WCO country, this is wrong everywhere, not just at one border.
Fix: Check digits five and six against the subheadings under this heading.
HS-D01 Not enough digits for that destination
Six digits are all the world agrees on; countries require more. A declaration filed with a six-digit code where ten are required is incomplete, and the shortfall is the part that decides the duty rate.
Fix: Look up the remaining digits in the destination country’s own tariff.
Source: US International Trade Administration — Harmonized System (HS) Codes
HS-D02 More digits than that destination uses
Extra digits are usually another country’s national detail carried over — a ten-digit US HTS number sent to an EU declaration that takes eight. The first six will be right; the tail belongs to a different tariff.
Fix: Keep the first six digits and look up that destination’s own national digits.
HS-E01 Which edition this is checked against
The Harmonized System is revised every few years and countries adopt each revision at different times. This check uses the current published US tariff, which implements the latest HS revision; a country still on an older edition may use a code that has since been deleted, or not yet have one that was added.
Source: USITC Harmonized Tariff Schedule — public JSON export
Existence is checked against 1228 headings and 5612 subheadings extracted from the published tariff on 2026-08-23.