From 1 November 2026, every online order you ship from outside the EU to a European consumer needs EU product identifiers (PIDs) on its customs declaration. Until now, customs mostly relied on a goods description and an HS code, which says what kind of product is in the parcel ("cotton T-shirt"). PIDs go one level deeper and say which exact product it is: this model, in this size and colour, from this manufacturer.
For most merchants, this is a product-data job first and a shipping job second. If the right codes sit in your catalogue, they can travel with each order through your shipping platform to the carrier that clears the parcel. If they don't, the parcel can be held at the border. The rule is the second step of the EU customs reform 2026, which already replaced the €150 de minimis duty exemption with a flat €3 duty on 1 July.
The number of low-value e-commerce parcels entering the EU has grown fast, and the European Commission reports that a high share of these goods don't meet EU product requirements and safety rules. The problem for customs is scale. When an officer finds an unsafe product in one parcel, a description like "toy" or "phone charger" doesn't help find the thousands of other parcels carrying the same item.
PIDs solve that. Because each parcel now names the exact product and its manufacturer, the result of one check can be applied to every shipment carrying the same identifier. The Commission's guidance on low-value consignments describes this as scaling up the outcome of controlling one product to all products that present a similar risk.
The wider reform has three milestones, according to the EU's Access2Markets update:
A €3 customs duty per item replaces the duty exemption on parcels worth up to €150. PID codes also become available, with no penalties for missing or wrong data.
PIDs become mandatory on B2C import declarations. Missing or incorrect data counts as an infringement.
The temporary €3 duty is scheduled to end (unless extended), and e-commerce imports must be recorded through the new EU Customs Data Hub.
Put simply, the July change affects what a parcel costs. The November change affects whether it clears customs at all. The Commission's EU customs reform page also announces a €2 Union handling fee from 1 November 2026, so check how your carriers will pass that on too.
EU product identifiers are three codes, each with its own TARIC document code, that together point to one specific product variant. Each code answers a different question for customs. If you know the codes in our guide to product identification numbers, most of them will look familiar.
| Identifier | The question it answers | Who assigns it | Where to find it | Required? |
|---|---|---|---|---|
| Merchant PID (M-PID), code C127 | What does the seller call this product? | You, your store, or the marketplace | Your store, ERP, or marketplace listing (usually the SKU) | Always |
| Non-standardised manufacturer PID (NS-PID), code C128 | What does the maker call it? | The manufacturer, producer, or product supplier | Product label, packaging, datasheet, or supplier catalogue (model, part, or style number) | Always |
| Standardised manufacturer PID (S-PID), code C129 | Which global barcode does it carry? | The manufacturer, under an international standard | The barcode on the product: GTIN, EAN, UPC, or ISBN | Only if one exists (otherwise Y081) |
Your M-PID is usually the SKU code you already use. The NS-PID takes the most work because it has to come from your supply chain. If none exists, the Commission expects the manufacturer to create one, and a manufacturer can also reuse its barcode as the NS-PID.
Each PID must refer to exactly one product variant: same brand, size, colour, and packaging. A black T-shirt in size M and the same T-shirt in size L need different codes. Batch numbers and unit serial numbers don't count where a model-level code exists.
The rule covers distance sales of imported goods: a consumer in the EU buys online, and the goods ship from outside the EU. It doesn't matter whether the sale happened on your own store or on a marketplace, so your store and marketplace integrations need to pass on the right product data either way.
What about parcels worth more than €150? Carriers such as FedEx apply the rule to B2C shipments of €150 or less, but the Commission's guidance words it as covering all goods sold in distance sales of imported goods. Collecting PIDs for your whole EU catalogue is the safest approach.
Here are three common products and how their PIDs would be filled in. The codes are made up for illustration.
| Product | M-PID (C127) | NS-PID (C128) | S-PID (C129) |
|---|---|---|---|
| Running shoes, black, EU size 42 | RUN-BLK-42 (your SKU) | ZX-2291-BK42 (factory model reference) | 5012345678900 (EAN on the box) |
| Mug printed with a customer's photo | MUG-CUSTOM-11 (your SKU) | MB-11W (blank mug supplier's reference) | Y081 (no barcode) |
| Handmade candle you make yourself | CND-LAV-200 (your SKU) | MK-CND-01 (code you assign as the maker) | Y081 (no barcode) |
All three fields are filled in. The factory reference is often printed near the barcode or listed in the supplier's datasheet.
Custom items still need PIDs. The Commission's guidance says to declare the identifiers of the underlying product, so for a printed mug that means the blank mug you buy from your supplier.
You're the manufacturer, so you create the manufacturer code yourself.
Plenty of products, especially from small brands and makers, have no GTIN or EAN. That's allowed. Work through it like this:
Some carriers or brokers apply Y081 when the barcode field is left empty. Others want it in their own format: FedEx's PID guide, for example, uses headers such as "M-PID" before each code and "S-PIDNO" when there's no barcode. Check with every carrier you use.
The Commission's guidance also sets out special cases for products that rarely carry manufacturer codes, and confirms that some categories get no special treatment:
| Product type | What applies |
|---|---|
| Unprocessed agricultural and perishable goods (HS chapters 1 to 15), handmade and artisanal goods, and antiques, collectibles, art, stamps, and coins (headings 9701 to 9706) | Simplified "conventional" identifiers are accepted, if the goods are correctly classified |
| Medical devices and medicines | Specific rules apply, for example the UDI-DI counts as the barcode identifier for medical devices |
| Second-hand and refurbished goods | Full PIDs required, using the original product's identifiers |
| Custom, personalised, and print-on-demand goods | Full PIDs required, using the underlying product's identifiers |
The data passes along a chain, and it only arrives if every link carries it:
The most common failure isn't missing data but a broken link, such as supplier codes sitting in a spreadsheet that never reaches the order. DHL advises checking that your e-commerce platform, ERP, marketplace integrations, and shipping tools can all capture and send PID data electronically.
Carriers also differ in how they accept the codes: through their own shipping tools, through API fields, or on the commercial invoice. FedEx, for instance, asks for PIDs to appear on the commercial invoice and other shipping documents.
Product & Resources
Create labels and CN22 customs forms for international orders from one dashboard.
Explore the platform →Connect your online stores and marketplaces so orders flow straight into ShippyPro.
See integrations →Flag extra charges and see duties and taxes itemised on carrier invoices.
Discover Invoice Analysis →Create labels and CN22 forms for your international orders in one place.
Pull every product variant you sell to EU customers into one sheet and add three columns: M-PID, NS-PID, and S-PID.
Use your existing SKUs. Check that every size and colour has its own, not one code shared across variants.
Check labels, packaging, and datasheets for model, part, or style numbers, and email suppliers for any that are missing.
Enter the GTIN, EAN, UPC, or ISBN. If there's none, mark it clearly for Y081 instead of using a placeholder.
Ask which fields, documents, or formats each carrier expects, then send test shipments with full PIDs before 1 November.
If you ship with ShippyPro, you can bulk-import item names, SKUs, HS codes, country of origin, and weight from an Excel file under Addresses and Parcels > Customs info. Fix missing HS codes and origins while you add PIDs. See the Help Center guide for the file format.
They are codes on the customs declaration that identify the exact product variant in a B2C import: a merchant code (C127), a manufacturer code (C128), and a standardised barcode such as a GTIN (C129) where one exists.
No. The €3 duty, in place since 1 July 2026, changes what low-value parcels cost. PIDs, mandatory from 1 November 2026, are a data requirement that decides whether a parcel clears customs.
No. The barcode identifier is only required where one exists. If a product has none, the exception code Y081 is declared instead, but the merchant and manufacturer codes are still mandatory.
Only if you make the product yourself. Otherwise the manufacturer code must come from the manufacturer, producer, or product supplier, not from you as the seller.
Generally no. The rule targets distance sales to consumers, so B2B shipments to VAT-registered EU businesses are usually out of scope.
It counts as a customs infringement, and the declaration can be held or rejected. Carriers also warn of delays, inspections, or returns to origin.
Related Articles
The bigger picture behind the €3 duty and the end of duty-free low-value parcels.
Read more →How GTIN, EAN, UPC, MPN, and SKU codes work and where to get them.
Read more →Build a SKU structure that works as your merchant product identifier.
Read more →Step-by-step Help Center guide to adding customs item data in ShippyPro.
Open the guide →Try ShippyPro free for 14 days and manage your international shipments from one dashboard.