EU Product Identifiers: Fix Your Catalog by 1 Nov 2026
Key Takeaways
- EU product identifiers become mandatory on 1 November 2026 for distance sales of imported goods in consignments with an intrinsic value of EUR 150 or less, mainly to EU consumers.
- Reporting has been voluntary since 1 July 2026, with no sanctions for absent or incorrect PID data during that phase. Effective enforcement starts on 1 November.
- The minimum is an M-PID plus an NS-PID. Declare an S-PID where one exists; use Y081 only for a verified absence, not an empty catalog field.
- The assignment chain is platform to manufacturer to declarant. B2B flows are generally outside scope.
- The main catalog gap is the manufacturer-side code. Standard platform exports carry merchant identifiers but do not supply missing manufacturer references.
What Changes on 1 November
From 1 November 2026, in-scope customs declarations must include product identifiers for each product. Missing identifiers create a risk of consignments being held or rejected at customs. A populated SKU column alone does not establish readiness.
Section 8 of the Commission’s TAXUD guidance, dated 5 October 2026, describes the scope as distance sales of imported goods with an intrinsic value not exceeding EUR 150. It mainly concerns B2C imports. The Commission’s amendment to Annex B formally clarifying that limit is in process.
Operators could report voluntarily from 1 July 2026 without sanctions for missing or incorrect PID data during that period. That implementation window ends when effective enforcement begins on 1 November. The guidance is explanatory, not legally binding; customs legislation and the authentic Official Journal texts take precedence.
The related package includes Council Regulation (EU) 2026/382, Delegated Regulation (EU) 2026/1022, whose Recital 11 covers PIDs, and Implementing Regulation (EU) 2026/1200. Separately, the EUR 3 per-item duty applies to qualifying distance sales from 1 July 2026 to 1 July 2028. A Union Handling Fee of around EUR 2 per item is expected from about 1 November 2026, subject to adoption of the delegated act, which remains under scrutiny. Unlike the temporary duty, the expected fee is not value-limited or time-limited.
EU Product Identifiers: Assignment Rules
Do not use the incorrect “manufacturer / importer / seller” mapping for M-PID, NS-PID and S-PID. The actual chain separates platform identification, manufacturer identification and customs submission.
| Identifier | What it is | Who assigns it | Legal basis | When required | TARIC code |
|---|---|---|---|---|---|
| M-PID | The platform-side product identifier, unique across that platform irrespective of seller count. | The online seller, marketplace or platform organising and managing the offer. | Article 1(58), UCC-DA | In all cases. | C127 |
| NS-PID | A non-standardised manufacturer product identifier. The manufacturer may also use its own S-PID for this role. | The manufacturer, producer or product supplier. | Article 1(59), UCC-DA | In all cases. | C128 |
| S-PID | A standards-based identifier, such as EAN, ISBN or an MDR/IVDR UDI-DI. | The manufacturer, producer or product supplier under the relevant standard. | Article 1(60), UCC-DA | Only where one exists. Otherwise declare Y081. | C129 |
The platform must make its M-PID available to other stakeholders. Manufacturer-side identifiers must pass through the supply chain. A merchant SKU is only an M-PID candidate: verify that it meets the platform-wide identification requirement rather than treating any internal reference as sufficient.
The declarant supplies the values to customs and carries accuracy and completeness responsibility under Article 15 UCC. The declaration cascade runs from the IOSS holder to the Special Arrangements user, through the relevant indirect representatives, including the importer’s indirect representative, and ultimately anyone able to present the goods. Agree the handoff with the actual declarant.
How Identifiers Reach Customs
C127, C128 and C129 belong in repeatable data element 12 03 000 000, Supporting Document. Y081 means “no standardised manufacturer product identifier exists” and belongs in 12 04, Additional reference type. The TARIC measure has been valid since 1 July 2026; the guidance connects reporting to additional procedure codes F48, F49 and F53.
Minimum identifier reporting is M-PID plus NS-PID. If an S-PID exists, report it too. Exceptionally, the same value can serve two roles, such as a manufacturer using its S-PID as its NS-PID, but both corresponding codes must still be declared.
- Repeat per product: two products on one declaration item line, each with three identifiers, require six repetitions of data element 12 03.
- Handle bundles explicitly: report each grouped product’s identifiers. Y081 applies only when none of those products has an S-PID.
- Keep missing separate from absent: an empty S-PID field does not justify Y081.
- Keep fees separate: Y126 is the Union Handling Fee flag, not a PID code.
The guidance treats deliberately reporting batch- or unit-level PIDs where a model-level PID exists as an infringement, citing Article 274(1)(b) of the new UCC. Do not generate row-specific substitutes that prevent customs from linking products with similar risks.
Audit Your Identifier Coverage
Measure coverage before changing data. The deliverable should be a dated, reproducible CSV showing which in-scope products have verified identifiers and which require supplier action.
-
Define the in-scope subset. Identify distance sales of imported goods to EU consumers in consignments with an intrinsic value of EUR 150 or less. Use shipping and order data alongside the catalog: a SKU’s price alone does not establish consignment scope.
-
Export the full catalog. Include every relevant variant, its stable record key, SKU, platform reference, barcode and available manufacturer reference. Do not sample. Keep the original export unchanged as the baseline.
-
Map each identifier’s origin. Distinguish platform-side fields, such as a SKU or handle candidate, from manufacturer-side references. Confirm who assigned each value. A “vendor” name is not a manufacturer product identifier.
-
Build a per-SKU coverage matrix. Record M-PID, NS-PID and S-PID values, their sources and verification status. Add a separate Y081 justification field. For grouped products, assess Y081 again at declaration-line level.
-
Use three explicit states. “Present” means supported by a verified source. “Missing” means unresolved. “Not applicable” requires a documented reason, such as confirmed non-existence of an S-PID. M-PID and NS-PID are not optional fields.
-
Quantify and prioritise gaps. Divide in-scope rows missing a required identifier or exception justification by all in-scope rows, then multiply by 100. Report NS-PID gaps separately and rank unresolved rows by revenue or order volume.
-
Save and repeat. Retain the export date, scope rules and source references. Re-run the same checks after enrichment and after import. Compare the resulting CSVs rather than relying on an import success message.
A practical audit schema is record_key, sku, in_scope, m_pid, m_status, ns_pid, ns_status, s_pid, s_status, y081_reason, source_ref, reviewed_at. Add an exception reason and review owner so unresolved rows remain actionable.
For the underlying file-handling process, follow the practical workflow for catalog data enrichment from CSV.
Why Platform Exports Miss Manufacturer Codes
A standard Shopify export carries merchant-side identifiers, but it does not supply a manufacturer code that nobody has collected. For a catalog with no manufacturer-side enrichment, NS-PID coverage is effectively zero out of the box. Similar storefront exports should be audited rather than assumed complete.
The Shopify merchant discussion on PID export behaviour reports that an NS-PID can be stored as a typed variant barcode. It appears in the CSV Variant Barcodes cell as ns-pid:<value>. These are reported platform behaviours, not customs rules.
The same discussion identifies several integration risks:
- Variant metafields are excluded from the product CSV export and require the Admin API to read or edit.
- Barcode order can differ from entry order. Sales channels may interpret the first barcode as the GTIN.
- Colons and semicolons in custom values are escaped, so parsing must normalise and unescape values.
- Typed-barcode re-import remained untested in the discussion. Validate round-tripping before a full merge.
If storing NS-PIDs as barcodes would confuse a channel, evaluate a metafield plus an API extraction path instead. Agencies maintaining that path should also review the Shopify API version 2026-10 changes to audit.
A formula can extract an existing code from a cell. It cannot establish a missing manufacturer reference. Closing that gap requires a manufacturer-side source and verified matching.
Fix the Gap Through Bulk Enrichment
bulkbase.ai provides a system-agnostic workflow layer for CSV-based product data. It does not assign legally valid manufacturer identifiers or change the requirement. Its role is to remove repetitive mapping and validation work around verified source data.
- Prepare CSV inputs. Join the catalog to a manufacturer, producer or supplier file using reliable references. Route ambiguous matches to review instead of guessing.
- Map and normalise. Use chained prompts to map source fields, extract supplied identifiers and prepare consistent output columns. Preserve the raw identifier and its source.
- Apply conditional processing. Use conditional steps and dependency filters for specific row ranges, such as unresolved NS-PIDs. Leave approved identifiers untouched.
- Validate the schema. Configure structured outputs to enforce the target columns. Apply character-length filters and validator or guardrail prompts. Confirm character restrictions with the receiving customs provider rather than inventing a universal limit.
- Review and merge. Export CSV, resolve exceptions and merge only approved fields using stable record keys. Re-export the destination catalog and repeat the coverage audit.
Never prompt a model to invent an NS-PID. If the source contains no valid manufacturer-side identifier, the output should remain an exception for supplier follow-up.
For non-urgent runs, Eco mode uses OpenAI’s Batch API at 50% lower token cost, with a 24-hour wait. Use Instant mode when the remaining deadline requires immediate processing. Neither processing mode replaces validation.
The same separation of source data, transformation and review supports controlled automation from product feeds. Here, the output is identifier coverage rather than marketing copy.
Special Goods and Administrative Tolerances
Second-hand, refurbished, custom, personalised and print-on-demand goods must carry identifiers. Use the original product’s PID for second-hand goods and the underlying product’s PID for customised items, such as a textile personalised with a name or logo.
The guidance provides an administrative tolerance using the convention “M-PID” under C127 and “NS-PID” under C128 for unprocessed agricultural and perishable goods in HS chapters 1–15, specified handmade and artisanal goods, and antiques, collectibles, art, stamps and coins under HS 9701–9706.
This is not a blanket exemption for anything described as handmade. The artisanal tolerance is tied to the commodity codes listed in section 8.8. Check the product’s classification against that list and document the basis for applying it.
Current-UCC caveat: These roles follow guidance based on Regulation (EU) No 952/2013. The guidance will be updated for the new UCC, Regulation (EU) 2026/2108, so roles and responsibilities may evolve. Check the current official guidance with your declarant.
Pre-Deadline Checklist
Readiness check dated 22 October 2026: complete these checks before 1 November, allowing time to test the final handoff.
- ☐ Confirm which flows involve imported goods sold to EU consumers within the threshold.
- ☐ Pull a full catalog CSV, not a sample.
- ☐ Run the per-SKU coverage matrix and rank unresolved rows.
- ☐ Obtain manufacturer-side codes from suppliers, with source evidence.
- ☐ For Shopify, test NS-PIDs as typed variant barcodes, or document the metafield/API alternative.
- ☐ Use Y081 only where no grouped product has an S-PID.
- ☐ Re-export and re-run the audit after the approved merge.
- ☐ Agree who supplies each value to the declarant and test the declaration format.
- ☐ Retain the dated audit CSV and exception decisions.
Frequently Asked Questions
Are PIDs the EUR 3 duty?
No. PIDs are identification data used for customs controls. The EUR 3 duty is a separate charge. Paying it does not replace identifier reporting.
Do B2B shipments need PIDs?
B2B flows are generally not concerned by this distance-sales requirement. Confirm mixed customer and shipping flows with the declarant rather than applying one store-wide assumption.
What if no manufacturer identifier exists?
The manufacturer, producer or product supplier must assign an NS-PID. It may use its own S-PID as the NS-PID. There is no equivalent obligation to create an S-PID where none exists.
Can my SKU serve as NS-PID?
Not merely because it is populated or unique. The NS-PID must originate from the manufacturer, producer or product supplier. If your SKU genuinely carries that assigned reference, document its provenance.
Start With a Verified Audit
Sign up for free to test a controlled enrichment workflow with 100 rows per month. Bring your own OpenAI API key, with no markup on token costs. Start with verified manufacturer references and measure coverage before merging changes.
Sign up for free
Stays free forever — 100 rows per month. Bring your own API key: you pay OpenAI at cost, 0% markup from us.