EU €150 Exemption Removed: What Changes on 1 November

The EU's €150 customs duty exemption ended on 1 July 2026. Since then, every low-value parcel into the EU pays a flat €3 duty per declared item. That was the first step.
The second step lands on 1 November 2026, and it brings two things on the same day. EU countries must start collecting a new customs handling fee, expected to be around €2. And every line on a low-value import declaration must carry product identifiers: your SKU, the manufacturer's reference, and the barcode.
The fee is a cost question. The identifiers are a paperwork question, and they hit every order you ship. This covers what the final law, adopted in September, actually says.

What happened to the EU's €150 exemption?
Until this summer, parcels worth €150 or less entered the EU without customs duty. You still owed import VAT, but no duty. That exemption ended on 1 July 2026 under Council Regulation (EU) 2026/382, per the European Commission's guidance on the temporary flat fee.
In its place is a temporary flat duty of €3 per declared item, on consignments of €150 or less. It runs from 1 July 2026 until 1 July 2028. That end date is when the EU's new Customs Data Hub is supposed to take over duty calculation for e-commerce. If the Hub isn't ready, the flat duty may run longer. If you've read "March 2028" anywhere, that's outdated. The EU's June 2026 guidance says 1 July 2028.
"Per declared item" sounds simple. It isn't quite. Legally, an item is a group of goods that share a tariff classification, a description and a country of origin. In practice, because of IT limits, the €3 is charged per line on the customs declaration. How fine those lines are depends on the declaration type:
H7, the simplified low-value declaration most IOSS parcels use, groups lines by 6-digit HS code. (An HS code is the international number that classifies what a product is.)
H6 groups by 8-digit CN code. H1, the full formal declaration, goes down to the 10-digit TARIC code, and each distinct code is its own €3.
So a parcel with a T-shirt, a lipstick, a pair of shoes and a ring is four product categories. That's four lines and €12 in duty on one order. A parcel with three T-shirts in three colours is usually one line and €3.
The duty applies whatever VAT scheme you use. IOSS, the special arrangements, standard import VAT: all of them pay it. It also now covers goods that were previously carved out, like perfume, alcohol and tobacco.
What is the EU's new customs handling fee, and when does it start?
It's a separate charge on top of the €3 duty. The EU calls it a "Union handling fee." It's meant to cover the cost of the data checks, risk analysis and controls customs runs on e-commerce parcels.
The legal basis is now settled. Regulation (EU) 2026/2108, the EU's big customs reform, got final Council approval on 3 September 2026 and European Parliament approval on 16 September. It was published around 19 September. Member states must start collecting the fee no later than 1 November 2026.
What isn't settled is the amount. The regulation creates the fee but leaves the figure to a later Commission delegated act (a follow-up rule the European Commission issues on its own), reviewed every two years. The €2 you've seen everywhere comes from a political agreement in November 2025. It's the expected number. Until the Commission publishes the act, it isn't the law.
Two more open questions:
Per item or per parcel? Nobody knows yet. Some logistics providers describe the fee as charged per item line, the same way as the €3 duty. Others describe it as one fee per parcel. The final regulation doesn't resolve it, and the answer is waiting on the same delegated act as the amount. On a four-category parcel, that's the difference between one fee and four. Plan for both until it's published.
Who pays? The regulation says whoever is responsible for the other customs charges on the parcel is also responsible for the fee. That's the same party paying the €3 duty and the import VAT: in practice the IOSS holder, or the carrier or postal operator acting as declarant on H7. How that cost gets passed to you or your customer hasn't been published. DHL expects the fee to be "approximately €2 per shipment" and points shippers to its Duties and Taxes Paid option, so the customer isn't asked to pay at the door. No carrier has published its billing method yet, so check your carrier's surcharge page before 1 November.
Does Trust and Check Trader or AEO status get me a discount?
Not as far as anyone can confirm. An earlier proposal floated a discounted fee of €0.50 for businesses with Trust and Check Trader status, the new successor to AEO (Authorised Economic Operator, the EU's trusted-trader certification). That discount doesn't appear in any coverage of the final text. It may have been dropped, or it may come later in the delegated act.
Trust and Check Trader status itself is real. It's created by the same reform and brings centralised clearance and fewer controls from 2028. For a store doing a few hundred orders a month, it's not a November problem.
Does IOSS still cover me?
For VAT, yes. For anything else, no.
IOSS (the Import One-Stop Shop) lets you collect EU VAT at checkout on consignments of €150 or less, so your customer doesn't get a VAT bill on delivery. It still does that. It doesn't exempt you from the €3 duty, the handling fee or the product identifier requirement. Those all apply on top.
IOSS parcels go through the simplified H7 declaration, which uses a 6-digit HS code. That's the good news: six digits is the global stem, and most Shopify catalogues that have HS codes at all have at least that.
Here's the part that matters for paperwork. Whoever's IOSS or EORI number sits on the declaration is the party liable for the duty and the fee. (EORI is the EU's trader registration number. Customs uses it to identify who's importing.) If you're the importer of record yourself, for example on DDP shipments, goods above €150, or without IOSS, you need your own EORI, registered to the same legal entity named on your invoice. On simplified H7 low-value shipments, the carrier or postal operator acting as declarant generally uses its own.
Now picture a store that ships to the EU from two warehouses, or sells under a UK company and a US company. Each origin may need a different VAT, IOSS or EORI number on the invoice. Get that wrong and the wrong entity is named against the charges.
A merchant doing 200 EU orders a month cannot check that by hand on every invoice. Customs Buddy stores tax credentials per Shopify Location: VAT (multiple numbers), IOSS, EORI, REX and more. Each commercial invoice picks up the numbers for the location it ships from, so the right registration is on the document without anyone checking it per order.

What are M-PID, NS-PID and S-PID, and do I already have this data?
This is the change nobody is writing about. From 1 November 2026, the same day as the handling fee, low-value import declarations must carry product identifiers on every line. They've been accepted voluntarily, with no penalties, since 1 July 2026. In November they become mandatory.
There are three:
Identifier | What it is | Who assigns it | Where it lives in Shopify |
M-PID (merchant product identifier) | Your own reference for the item | You or your sales platform | SKU, or the product/listing ID |
NS-PID (non-standardised product identifier) | The manufacturer's own reference, like a model number | The manufacturer | No dedicated field. Usually in the title, description or a metafield, if anywhere |
S-PID (standardised product identifier) | A standard code such as an EAN/GTIN barcode or ISBN, required where one exists | The manufacturer | Barcode field on the variant |
The declarant submits all three to customs. The declarant is usually your carrier or IOSS intermediary, and they can only submit what you gave them.
The good news: most of this data is already in your catalogue. SKU and barcode are standard Shopify variant fields. The real work is making sure they're filled in on every variant, and that they're consistent. A SKU that's blank on half your variants, or a barcode field holding an internal code instead of a real EAN, is the kind of thing that used to not matter. From November it goes on a customs declaration.
It's the same lesson as why your product name doesn't matter to customs. "Aurora Hoodie" means nothing at the border. A SKU, a barcode and "men's hooded sweatshirt, 80% cotton, 20% polyester" do.
Customs Buddy's Rewrites feature builds the invoice description from the fields you choose: Product Name, Variant Name, SKU, Barcode and Trade Item Description (a variant metafield where you store the customs-grade material description). You pick the fields, set a delimiter and drag them into order. So the SKU and barcode that PID compliance depends on can already sit on every invoice line, next to a proper customs description.
To be precise about what that does and doesn't mean: Customs Buddy doesn't have separate M-PID, NS-PID or S-PID fields, and it doesn't submit identifiers to customs. It puts clean SKU and barcode data on the commercial invoice. Your declarant files the declaration. A store using Rewrites is closer to ready than one typing a free-text box, but the invoice isn't where carriers collect identifiers.
Express carriers want them as data in the shipment booking, line by line, not just printed on a PDF. FedEx says that from 1 November you won't be able to create a label for an EU consumer shipment without them. DHL takes them per product line in MyDHL+ or through your shipping integration. Postal operators haven't published their method yet. So the SKUs and barcodes need to be right in whatever tool books your shipments, too.
Watch the one identifier Shopify doesn't store for you: the manufacturer's own product code (NS-PID). There's no native field for it. If you want it on your invoices, keep it in a metafield, and ask your suppliers for it now.

What has to be on an EU commercial invoice now?
Removing the exemption didn't create a lighter EU paperwork track. It took the exemption away, and full paperwork now applies at every order value. Per line, that means:
A precise description: material, function and form.
An HS code: 6 digits is enough for H7. Formal H1 declarations need the full code, up to 10 digits.
Country of origin: where the goods were made, not where you ship from.
Value, in a stated currency.
Product identifiers: SKU and barcode, from 1 November.

Plus the invoice-level fields: EORI where you're the importer, an explicit Incoterm (the standard trade term saying who pays shipping, duty and risk, such as DAP or DDP), and IOSS if you use it. Our commercial invoice automation guide has a US-versus-EU field table if you ship both ways. The US went the same direction, too. US de minimis is gone for good, so there's no value floor left on either side of the Atlantic.

There's one more change in the September reform to watch. Sellers and platforms making distance sales from outside the EU to EU consumers become the importer for distance sales. They must supply customs data, pay or guarantee the charges and ensure the products comply. They also have to be established in the EU or represented by an AEO or Trust and Check Trader holder. The concept applies from 1 November 2026, but the working obligations start on 1 July 2028, when importers for distance sales have to file through the new EU Customs Data Hub.
If you sell from your own Shopify store outside the EU and ship straight to EU consumers, you're the seller making the distance sale, so expect the role to land on you. The exception is when a merchant of record, such as Global-e on Managed Markets, sits between you and the customer.
DDP vs DAP: what does Shopify do for you?
If you use Shopify Managed Markets or Shopify's own import tax and duty calculation, the €3 duty is calculated, shown and collected at checkout automatically, with no settings change. That's been live since 1 July 2026. On Managed Markets, Global-e acts as merchant of record, meaning it's the legal seller for the cross-border sale.
Managed Markets also stopped supporting DDU (delivered duty unpaid, where the customer pays duties on delivery) on 24 August 2026, everywhere it supports DDP (delivered duty paid, where duties are collected up front). Markets were converted to DDP automatically. Merchants who wanted to keep pay-on-delivery had to turn off Managed Markets before the cutover.
Two things Shopify hasn't covered. As of late September, Shopify hasn't announced handling-fee support. Its June announcement covers only the €3 duty. Managed Markets does guarantee the duty and tax shown at checkout and covers any difference customs charges, but Shopify hasn't said whether that extends to the new fee. And Shopify doesn't generate a commercial invoice from your order data. DDP changes who pays and when the customer finds out. It doesn't fill in your HS codes or your SKUs.
What changed, when, and who pays

What | When | Who pays or provides it |
€150 duty exemption | Ended 1 Jul 2026 | — |
€3 flat duty per declaration line | 1 Jul 2026 to 1 Jul 2028 (transitional) | Declarant (IOSS holder or importer), often passed to the buyer at checkout |
M-PID / NS-PID / S-PID on every line | Mandatory from 1 Nov 2026 | Seller or platform (M-PID), manufacturer (NS-PID, S-PID); declarant submits |
EU handling fee (expected ~€2, not confirmed) | Collection starts by 1 Nov 2026 | Same declarant liable for the €3 duty; per item or per parcel not yet decided |
Full EU Customs Data Hub | Phases from 2028; voluntary 2031, mandatory 2034 (per the Sep 2026 reform) | — |
What to do before 1 November
Fill in SKU and barcode on every variant. Export your products and filter for blanks. Barcode should be a real EAN/GTIN where the product has one, not an internal code.
Find your manufacturer references. For anything you resell, get the model or reference number from the supplier and store it somewhere structured, like a metafield.
Check HS codes and country of origin per product. Six digits at minimum for IOSS parcels. Origin is where it was made.
Rewrite descriptions for customs. Keep marketing names on the storefront. The invoice gets material, function and form.
Match credentials to locations. Every location that ships to the EU needs the right VAT, IOSS and EORI numbers, registered to the entity on the invoice.
Check your shipping tool, not just your invoice. From 1 November FedEx won't create an EU consumer label without product identifiers, so make sure whatever books your shipments sends SKU and barcode per line. While you're there, ask how the handling fee will be billed.
Budget for both fee models. Until the delegated act lands, price your EU margins with the fee charged per parcel and per line, and see which categories hurt.
Automate the invoice. Once the data lives on the product, the invoice for each order should build itself. Our Shopify commercial invoice guide covers the full field list.
FAQ
Is the EU's low-value customs exemption really gone?
Yes. The €150 duty exemption ended on 1 July 2026 under Council Regulation (EU) 2026/382. A temporary €3 flat duty per declaration line replaces it until at least 1 July 2028.
Is the EU handling fee definitely €2?
No. The fee itself is law under Regulation (EU) 2026/2108, and collection must start by 1 November 2026. The amount is set separately by a Commission delegated act, reviewed every two years. €2 is the expected figure, not a confirmed one.
Does IOSS still cover me?
For VAT on consignments of €150 or less, yes. It doesn't exempt you from the €3 duty, the handling fee or product identifiers.
Do I need an EORI number to sell into the EU?
It depends on who's the importer. On simplified low-value H7 shipments, the carrier or postal operator acting as declarant generally uses its own EORI. If you're the importer of record (DDP, goods over €150, or no IOSS), you need your own, registered to the same entity named on your invoice.
What are M-PID, NS-PID and S-PID?
The three product identifiers required on low-value EU import declarations from 1 November 2026. M-PID is your SKU or listing reference, NS-PID is the manufacturer's model or reference number, and S-PID is a standard barcode (EAN/GTIN) or ISBN where one exists.
The €150 exemption is gone. The €3 duty is here until 2028, and November adds a fee and a data requirement on the same parcels. The cost you can price in. The data has to be right on every order.
Customs Buddy generates the commercial invoice for every international Shopify order from the data you already have: HS code, country of origin, value, a customs-grade description with SKU and barcode, and the right VAT, IOSS and EORI numbers for the location it ships from. It makes the document. It doesn't file your declaration, pay your duties or act as your broker. Install it, generate an invoice for a real EU order, and check what your declarant would see.


