EU Small Parcel Levy: The Complete Guide for Shopify Sellers (€3 + €2 + PIDs)
If you sell from outside the EU into the EU, you've heard "small parcel levy" thrown around a lot this year. But here's the thing most guides get wrong: it's not one fee — it's three separate layers that landed (or are landing) in 2026.
- The €3 customs duty — live since July 1, 2026
- The €2 Union Handling Fee — starts November 1, 2026
- Mandatory Product Identifiers (PIDs) — also November 1, 2026
Each layer has its own rule, its own cost, and its own data requirement. This guide puts the whole puzzle in one place — what each fee is, how it's calculated, the real-world problems Shopify sellers are hitting, and the 5 things to do before November 1.
What the "small parcel levy" actually is in 2026
Until 2026, parcels under €150 shipped from outside the EU were largely duty-free. The EU abolished that exemption and replaced it with a temporary flat charge (Regulation (EU) 2026/382) — and then kept adding layers on top.
| Layer | Amount | Since | Applies to |
|---|---|---|---|
| €3 customs duty | €3 per item | Jul 1, 2026 | Consignments ≤ €150 (until Jul 2028) |
| €2 Union Handling Fee | €2 per item | Nov 1, 2026 | All e-commerce imports — no €150 cap |
| Product Identifiers (PIDs) | — | Nov 1, 2026 (mandatory) | All distance-sale imports |
Net effect: from November 1, a single-item EU order costs €5 in customs charges, not €3 — and the data you must provide per item goes from "HS code + origin" to "HS code + origin + three product identifiers."
Layer 1: the €3 customs duty (already live)
The €3 charge applies per item, not per parcel. One "item" is defined by the combination of HS code + customs description + country of origin — five identical T-shirts from the same origin count as one item (€3), while a T-shirt plus a hat from different origins count as two (€6).
This is separate from IOSS: IOSS handles VAT at checkout, the €3 is a customs charge collected at the border. If the distinction is still fuzzy, start with the €3 rule explained for Shopify sellers, then read per parcel vs per item.
Layer 2: the €2 Union Handling Fee (Nov 1)
From November 1, the EU adds a €2 "Union Handling Fee" on e-commerce imports. Three details that matter:
- Per item, same counting rule as the €3 — the number of declared items decides the total
- No €150 cap — higher-value parcels get the fee too
- Not refundable — even for faulty goods
Full breakdown, including the timeline and the cost table: the €2 handling fee guide.
Layer 3: Product Identifiers (PIDs, mandatory Nov 1)
From November 1, customs declarations for distance sales must include product identifiers for every item:
- M-PID — the merchant product identifier (your SKU)
- NS-PID — the manufacturer's or supplier's own code for the item
- GTIN/EAN/UPC — the retail barcode, where one exists
The legal basis is Commission Delegated Regulation (EU) 2026/1022. It's been voluntary since July 1 — from November it's mandatory.
The Shopify wrinkle: your product export has SKU and Barcode columns, but no field for the manufacturer's code. That data has to be collected from suppliers and stored somewhere — a variant metafield or a side sheet keyed by SKU. Carriers differ on how they'll accept it: some support the fields now, others (e.g. FedEx's desktop tool) only from March 2027 — until then the codes go on the commercial invoice or packing list. Confirm with your own carrier before the first November shipment.
The problems Shopify sellers are actually hitting
This isn't theory — it's what merchants have been reporting since the €3 landed in July. In the longest-running community thread on the levy, UK sellers shipping to the EU reported:
1. Shopify isn't calculating the €3 correctly
Reported symptoms: no duty at all on qualifying parcels, full duty instead of the flat €3, or the €3 appearing only in some scenarios. Shopify's changelog says the €3 should now be included automatically in import duty calculations — but live checkouts are still inconsistent. Shopify Support has acknowledged the issue and escalated it to their Taxes team, but it's not fully resolved.
2. VAT being added on top of the €3
Some merchants saw import VAT charged in addition to the €3 — double-collection on the same parcel. If you spot this, it's a bug worth reporting, not absorbing.
3. Multiple €3 charges for identical products
Several sellers were charged €3 per line for products with the same HS code and origin — meaning 5 identical items could be billed €15 instead of €3. Same HS + same origin should be one customs item; being charged per line is a consolidation problem, and it's exactly where correct product data saves real money.
4. Charges on goods that should be exempt
Some merchants saw the €3 applied to goods they believe qualify for preferential-treatment exemptions. If a product genuinely qualifies, the exemption has to be claimed on the declaration — clean data and the right documentation are what make that claim stick.
What to do before November 1
1. Decide how you're handling the €3 today
Don't wait for Shopify to fix the calculation — the bug affects everyone, but absorbed €3-per-order adds up fast. Fold it into EU pricing or add it as a checkout handling fee. See the 3 ways to pass the €3 to customers.
2. Complete HS codes + country of origin on every product — find your HS code for each SKU
In one review of 11 stores, only 1 had origin populated. No origin, no correct calculation — and no carrier can transmit PIDs for products that don't have clean data. This one fix unlocks every layer of the levy.
3. Collect your PIDs from suppliers now
Ask suppliers for the manufacturer's product identifier (NS-PID) for every SKU you sell. Decide where it lives in Shopify (metafield or side sheet) before the deadline — retrofitting this at the end of October is the expensive way.
4. Confirm how your carrier accepts PIDs
Each carrier handles PID transmission differently right now. Ask yours: supported in the integration, or on the commercial invoice / packing list until their software catches up?
5. Re-price your EU channel
From November it's €5 per item (or more, on multi-item orders). Update EU prices, shipping rates and free-shipping thresholds before the fee lands — not after your first November P&L.
The money-saving angle: correct HS codes and fewer declared items
The levy is charged per item, and the number of items you declare is the one cost lever you fully control. Products that share the same HS6 code, description and origin can be declared as a single item — legally. Stores that group properly have cut customs fees by up to 73%. The full method: HS6 grouping savings explained.
How DutyRight helps
Every layer of the levy — the €3, the €2 fee, the PIDs — sits on the same foundation: correct product data. DutyRight is a Shopify app that audits your products' HS codes, flags incorrect or missing codes and origins, and shows exactly how many declared items you could legally consolidate — and what that saves per EU order.
DutyRight is currently under Shopify review. Join the waitlist to get the App Store install link and your early-bird discount when we go live.
Key takeaways
- The EU small parcel levy in 2026 = €3 customs duty + €2 handling fee + mandatory PIDs
- From Nov 1 it's €5 per item (€3 + €2), with no €150 cap on the €2 fee
- One "item" = same HS code + description + origin; identical products count once, not per line
- Shopify's €3 calculation is still unreliable — don't wait for a fix, price it in yourself
- PIDs (SKU + manufacturer code + barcode) become mandatory Nov 1 — collect supplier codes now
- Clean product data is the shared solution for every layer — and correct HS codes are the fastest way to cut the levy itself
The small parcel levy is a puzzle, but it's a solvable one. Understand the three layers, fix your product data, and the €3 and €2 stop being surprises — they become numbers you priced in.