How to Display Estimated Duties and Taxes on Your Shopify Store
Published 2026-09-01 · by the DutyFox team
If you sell internationally, there's a good chance some of your customers are abandoning their carts — or worse, refusing delivery — because they were hit with unexpected customs fees. Showing estimated duties and taxes upfront is one of the most straightforward ways to fix that. This guide walks through exactly how to do it on Shopify, what your options are, and what to watch out for.
Why Displaying Estimated Duties and Taxes on Shopify Matters
When a package crosses a border, the destination country's customs authority typically charges import duties and local taxes (like VAT or GST). These charges can range from a few dollars to a significant percentage of the order value depending on the product category and destination country.
The problem isn't the fee itself — it's the surprise. A customer who ordered a $60 item and then receives a $20 customs invoice at their door is unlikely to order from you again. Many will simply refuse delivery, which creates a return headache and a lost sale.
Showing estimated duties and taxes at the product page or cart stage sets honest expectations, reduces disputes, and in many cases increases conversion from international visitors who would otherwise hesitate.
The Two Main Approaches: DDP vs. DDU
Before choosing a display method, you need to understand the two shipping terms that determine who actually pays:
| Term | Full Name | Who Pays Duties | Customer Experience |
|---|---|---|---|
| DDP | Delivered Duty Paid | Merchant (collected at checkout) | No surprise at delivery; total cost is clear |
| DDU | Delivered Duty Unpaid | Customer (billed on delivery) | Risk of surprise fees; potential refusals |
Displaying estimated duties works under either model. Under DDP you collect the amount at checkout and remit it. Under DDU you're informing the customer of what they'll likely owe later. Both are legitimate approaches — DDP gives a cleaner customer experience but requires more operational setup on your end.
Option 1: Shopify Markets and Shopify Payments (Built-In)
If you're using Shopify Markets alongside Shopify Payments, Shopify has a native duty and import tax feature. Here's how it works:
Requirements
- Shopify plan or higher (not available on Basic in all regions)
- Shopify Payments enabled on your store
- Products must have HS (Harmonized System) codes assigned
- Country of origin set on your products
How to Enable It
- Go to Settings → Markets in your Shopify admin.
- Select the market you want to configure (e.g., European Union).
- Under Duties and import taxes, toggle the feature on.
- Choose whether to collect duties at checkout (DDP) or show an estimate with a disclaimer (DDU).
- Make sure all products in that market have HS codes — Shopify uses these to calculate the correct rate.
The built-in feature covers a solid range of countries and handles common tax frameworks like EU VAT reasonably well. The main limitations are the Shopify Payments dependency and the need to manually add HS codes to every product, which can be time-consuming for large catalogs.
Option 2: Third-Party Duty Estimation Apps
If you're not using Shopify Payments, or if you want duty estimates visible earlier in the shopping journey — on the product page itself rather than only at checkout — a third-party app fills that gap.
For example, DutyFox displays estimated import duties directly on product pages and in the cart, so international shoppers see a realistic landed cost before they even begin checkout. This is particularly useful for stores with higher-value items where customers are more likely to do cost comparisons before committing.
When evaluating any third-party duty app, look for:
- Coverage — How many destination countries does it support?
- HS code handling — Does it suggest codes automatically or require manual entry?
- Display placement — Product page, cart, checkout, or all three?
- Update frequency — Duty rates change. How often is the rate database refreshed?
- Disclaimer clarity — Good apps make clear the figure is an estimate, not a guarantee.
Option 3: Manual Duty Messaging (Low-Tech Fallback)
If you're shipping to only a handful of international markets and don't want to invest in a full solution yet, you can add manual messaging to your product pages and checkout. This won't calculate anything, but it sets expectations.
Examples of simple copy you can add:
- "International orders may be subject to import duties and taxes upon delivery. These charges are the responsibility of the customer."
- "Customers in the EU may be charged VAT at their local rate on delivery."
You can add this via Shopify's theme editor in product description templates, cart notices, or the checkout additional scripts field. It's better than nothing, but it doesn't give customers actual numbers — so it reduces surprise without fully eliminating it.
Getting Your HS Codes Right
Regardless of which method you use, accurate duty estimates depend on correct HS codes. An HS code is a standardized international number that classifies a product for customs purposes — the rate applied to a $40 ceramic mug is different from the rate on a $40 electronic accessory.
How to Find the Right HS Code
- Use the US International Trade Commission tariff database or your country's customs authority lookup tool.
- Search by product description — codes are typically 6 digits at the international level, with countries adding extra digits for their own classifications.
- When in doubt, consult a customs broker. Misclassification can cause delays or fines, so it's worth getting right for your top-selling SKUs.
- In Shopify, HS codes are set per product under Product → Shipping → Customs information.
For large catalogs, some apps and services offer bulk HS code assignment or AI-assisted classification — worth exploring if you have hundreds of SKUs.
What to Tell Customers (And What Not To)
However you display duty estimates, the messaging needs to be accurate and honest. A few practical guidelines:
- Always label estimates as estimates. Duty rates can change, and de minimis thresholds (the value below which no duty is charged) vary by country and can shift with trade policy.
- Mention de minimis thresholds where relevant. For example, in many cases orders under a certain value shipped to a given country are duty-free — telling customers this is genuinely helpful.
- Don't promise a specific figure unless you're collecting it at checkout (DDP). Showing "$12 estimated duty" and then having the customer owe $18 at the door is nearly as bad as showing nothing.
- Update your messaging if you change shipping terms. Switching from DDU to DDP mid-product-catalog without updating copy creates confusion.
A Simple Checklist Before You Go Live
- ☐ HS codes assigned to all products shipping internationally
- ☐ Country of origin set on products
- ☐ Duty display method chosen (native Shopify, app, or manual messaging)
- ☐ DDP or DDU model decided and clearly communicated
- ☐ Estimate disclaimer visible wherever duty figures appear
- ☐ Shipping policy page updated to reflect customs responsibilities
- ☐ Tested the checkout flow from an international IP or with a test order
Frequently Asked Questions
Do I have to collect duties at checkout, or can I just show an estimate?
You don't have to collect duties — you can display an estimate and leave the customer responsible for paying at delivery (DDU model). However, collecting at checkout (DDP) gives a better customer experience and typically reduces refusals and disputes. Which model makes sense depends on your shipping volume, margins, and the carriers you use.
What are de minimis thresholds and do they affect duty display?
A de minimis threshold is the order value below which a country doesn't charge import duties. For example, many countries have thresholds between $20 and $200 USD equivalent. If the majority of your orders to a specific country fall below that country's threshold, showing a duty estimate may be unnecessary or misleading. Good duty apps typically account for these thresholds automatically.
Will displaying duties hurt my conversion rate?
The evidence generally points the other way. Customers who see a realistic landed cost upfront and still proceed are more committed buyers. The conversion risk is higher when customers only discover fees at delivery — that's where refusals, chargebacks, and negative reviews come from. Transparency tends to build trust, especially for repeat international buyers.
What if my products fall into different duty rate categories?
Then you need separate HS codes for each product category, which is the correct approach regardless. Blending rates or applying a single flat estimate across a mixed catalog will produce inaccurate figures. Take the time to classify each product type correctly — for most stores, there are typically only a handful of distinct HS codes covering the whole catalog.
→ View DutyFox on the Shopify App Store