Max IT solutionsShopify App Store

Shopify HS Codes and Customs Forms: What to Fill In

Updated , first published · 6 min read

Before Shopify will create a label for a shipment that needs a customs declaration, every item needs an HS code of at least six digits and a country or region of origin, plus a description, quantity, value and weight, and the customs form is built from those details. Save the HS code and origin to the product once, and every later label for that product reuses them. Missing or wrong details can hold a parcel at the border, add unexpected duties or stop the label from being created.

This page follows Shopify’s Help Center articles on customs documentation and HS codes, read on October 23, 2026. It is one of the international guides in our shipping and returns hub.

What customs needs for every item

  1. An HS (Harmonized System) code of at least six digits, an international trade code (usually six) that describes what the product is.
  2. A country or region of origin: where the item was made or assembled into the form you sell it.
  3. A description of the goods.
  4. The quantity.
  5. The value.
  6. A weight per item.

Not everything has a product page. A custom item added directly to an order has none, so you enter its HS code while buying the label. Shipments to US military and diplomatic addresses (APO, FPO, DPO) count as international and need the same details. If you use Managed Markets, Shopify assigns HS codes to your products and you can’t edit them.

Add HS codes and the country of origin

There are four ways. Pick by how many products you have and whether you know the codes.

Method Best when Where
Product page A few products and you need to look the code up Products > product > Shipping
While buying a label You haven’t added codes yet Orders > order > Create shipping label > Edit customs information
Bulk editor A few products and you know the codes Products > select > Bulk edit > Columns
CSV file Many products, or you don’t know which ones lack codes Settings > Taxes and duties > Duties and import taxes > Manage

On the product page, make sure Physical product is on in the Shipping section, choose a Country of origin, and type the Harmonized System (HS) code. If you don’t have a code, start typing a description of the product and Shopify suggests matches.

At label purchase, click Edit customs information, add a code for each item and select Save shipping info to product details so the product keeps it. Then choose Update multiple orders or Only this order under Update customs declaration form, and click Save. Staff who fulfill international orders need the View products permission to see and use the HS code. If you sell regulated consumer products into the United States, shipments might also need CPSC eFiling data to clear customs.

In the bulk editor, click Columns and add Harmonized system code and Country of origin from the Shipping section.

With a CSV, go to Duties and import taxes > Manage, click Update with CSV under Product information, export products with missing information (it arrives by email), fill in the HS code and Country of origin columns, and import the file. Shopify emails you again when the import is complete. Use this file only for HS codes and origin; other changes go through the inventory CSV.

If most of your products come from one country, set a default country of origin under Settings > Taxes and duties (the Customs information section). It is used only for products without their own value.

For a catalog that has never had customs data, this order does the job with the least typing:

  1. Set the default country of origin, so only the exceptions need their own value.
  2. Export the CSV of products with missing information and fill in the HS codes, using the product page’s suggestion search for the ones you don’t know.
  3. Import the file and wait for Shopify’s confirmation email.
  4. Buy one international label for a test order and read the customs form before shipping to real customers.

Why the codes matter after the label

Shopify uses the HS code and country of origin to estimate duties and import taxes for international customers, and customs authorities set the actual amount from the product’s classification, its origin and the destination’s rules. If you collect duties at checkout, a product with no HS code or product type has no duties calculated, according to Shopify’s flash sales page, and Shopify’s duties and import taxes page notes that customers might otherwise be charged when the shipment arrives. A wrong code is the harder problem to spot, because the estimate at checkout is built from it.

Country-specific HS codes

Individual countries can add digits after the first six. When a country-specific code exists for the destination, Shopify uses it to calculate duties; otherwise it uses the global six-digit code. Shopify’s example: a product with HS code 3210.00 sells to Canada and the United Kingdom, with 3210.00.123 set for the UK. UK orders use 3210.00.123 and Canadian orders use 3210.00. On the product page, click the menu icon next to the HS code field, then Add HS codes by country/region, or add the extra digits to the HS code directly; you can only pick countries from your markets. Codes longer than six digits are fine, and the decimal points are removed when stored, so 1234.56.78.90 is saved as 1234567890.

Goods descriptions and commercial invoices

The description on a customs declaration usually comes from the item’s HS code, not from your product title, so it can sound more technical than the name customers know. If no standard description exists for the code, the product name is used. You can edit it under Edit customs information at label purchase; an edit applies to that label only and isn’t saved to the product. Some carriers shorten long descriptions to fit their systems.

A shipment can need two kinds of paperwork. A customs form declares the contents, printed or submitted electronically depending on the carrier and destination. A commercial invoice states the value and the delivery terms. Several carriers submit customs documents electronically for destinations that support it, leaving only the shipping label to print. If a driver asks for a paper invoice in that case, tell them it was sent to the carrier with the label; if they still need paper, create one with your carrier’s own invoice tool.

When the label won’t create

You can’t create a label for a shipment that needs customs documentation until every item has an HS code and a country or region of origin. If the error says an item has no weight, open Edit customs information in the Items section, add a weight for each item, add any missing HS code and origin, and click Save. Shipping services appear once all three are present. For the label steps themselves, read Shopify shipping labels; duties and rates are in international shipping on Shopify.

FAQ

Do I need an HS code to ship internationally from Shopify? Shopify says each product shipped internationally must have an HS code, and a label for a shipment that needs customs documentation can’t be created without one.

Where do I add the country of origin? You can add it on the product page, during label purchase under Edit customs information, in the bulk editor, or in the duties and import taxes CSV file. A default country of origin in Settings > Taxes and duties covers products without their own value.

Can I change the goods description on a customs form? You can change it under Edit customs information when buying the label, and the change applies to that label only.

Why is the customs description different from my product name? The declaration usually takes the standardized description of the HS code, which customs authorities recognize. Your product name is used only when no standard description exists for the code.