top of page

EU €150 Exemption Removed: What Changes on 1 November

Writer: Customs Buddy
Customs Buddy
Sep 23
11 min read

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.

Timeline of EU low-value customs changes from July 2026 to 2034: the €150 duty exemption ends and the €3 flat duty starts on 1 July 2026, Shopify Managed Markets moves DDU to DDP on 24 August 2026, the customs reform (Regulation (EU) 2026/2108) is adopted in September 2026, then after today's marker a handling fee expected around €2, amount not final, and mandatory product identifiers start on 1 November 2026, the €3 duty ends when the Customs Data Hub opens on 1 July 2028, and the Data Hub becomes voluntary then mandatory between 2031 and 2034.

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.

Customs Buddy location settings for a warehouse in Leeds. The Tax credentials panel holds two VAT numbers, a UK and a Dutch one, plus an IOSS number and an EORI number, both highlighted, with empty MID and REX fields below. On the left, the company name, contact, export email and DDP terms of sale that fill the From section of every invoice from this location.

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.

Customs Buddy Product Rewrites screen. A list of product properties has checkboxes for Product Name, Variant Name, SKU, Barcode and Trade Item Description, with a Dash delimiter selected. Below, a Template row shows the chosen fields as draggable chips, here Product Name and Trade Item Description, with a Save rewrite settings button.

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.

Customs Buddy invoice editor in quick edit mode for an order of three items: a merino beanie with harmonised code 650500 made in Portugal, wool trail socks with code 611594 made in Italy, and a cotton canvas tote with code 420292 made in India. The harmonised code and country of origin columns are highlighted, and each description joins the product name to its material, like "Merino beanie-Knitted hat, 100% merino wool".

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.

Example commercial invoice generated by Customs Buddy for an order shipped from Leeds, United Kingdom to Berlin, Germany. The From section lists the seller's company name, address, VAT, EORI and IOSS numbers next to the invoice date, invoice number, DDP terms of sale and reason for export. Ship To and Sold To show the buyer. Three lines give units, a material-based description, a six-digit HS code, a two-letter country of origin, unit and total value in euros. The footer has the declaration statement, shipper, signature and totals including freight and tax.

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

Table of EU low-value customs changes. The €150 duty exemption ended 1 July 2026. The €3 flat duty per declaration line runs 1 July 2026 to 1 July 2028 and is paid by the declarant, often passed to the buyer at checkout. Product identifiers M-PID, NS-PID and S-PID become mandatory on every line from 1 November 2026, provided by the seller and manufacturer and submitted by the declarant. The EU handling fee, expected around €2 and not yet confirmed, starts by 1 November 2026 and is owed by the same declarant liable for the €3 duty. The full EU Customs Data Hub phases in from 2028 to 2034.

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

  1. 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.

  2. 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.

  3. Check HS codes and country of origin per product. Six digits at minimum for IOSS parcels. Origin is where it was made.

  4. Rewrite descriptions for customs. Keep marketing names on the storefront. The invoice gets material, function and form.

  5. 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.

  6. 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.

  7. 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.

  8. 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.

bottom of page