To help you maintain compliance with updated European Union regulations, this guide covers the removal of the €150 duty-free threshold for B2C shipments and the mandatory product identifier requirements for customs clearance in Metapack.
Effective July 1, 2026, the European Union has removed the €150 duty-free threshold. Qualifying B2C shipments valued at €150 or less, originating outside the EU and destined for an EU member state, are subject to a flat €3 customs duty per unique HS code.
This requirement applies to shipments that:
-
Originate outside the European Union
-
Are shipped to an EU member country
-
Have a declared value of €150 or less.
Important Compliance and Exemption Notes
-
B2B Exemption: This duty, and the Product Identifiers requirement below, only apply to business-to-consumer (B2C) shipments, where the recipient is not VAT-registered in the destination country. Business-to-business (B2B) shipments (VAT-registered recipient) are not subject to either requirement.
-
Customs Risk: Providing complete and accurate PID data helps ensure smooth customs clearance. Missing or incomplete data may lead to processing delays, holds, or shipments being returned by customs authorities.
Pass the shipment type in the <ns2:movementIndicator> field at the consignment level:
|
Movement Indicator |
API Code |
Use for |
|---|---|---|
|
B2B |
|
Business-to-business shipments |
|
B2C |
|
Business-to-consumer shipments |
|
C2B |
|
Consumer-to-business shipments |
|
C2C |
|
Consumer-to-consumer shipments |
Required as of November 1, 2026, every product item in a B2C shipment to the EU, regardless of its value, must carry product identification data so customs authorities can identify the precise items being imported.
In MetaPack SOAP XML, product identifiers are passed within the <ns2:movementIndicator> element inside each product object.
The following table details the product identifier fields supported in MetaPack SOAP XML:
|
MetaPack SOAP Field |
Description |
Type / Enum |
|---|---|---|
|
|
Internal SKU or product code (at the product level). |
String |
|
|
The primary manufacturer identifier (GTIN, UPC, EAN, MPN, or SKU). |
String |
|
|
The type code for |
Enum: |
|
|
An extra non-standard manufacturer part or model number. |
String |
Variant-Level Requirements
Identifiers must be assigned per distinct product variant (color/size combination). Lot/batch numbers will be rejected.
The sample below demonstrates a complete MetaPack SOAP payload featuring the <ns2:movementIndicator> and <ns2:compliance> elements:
XML
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:ns2="http://metapack.com/shipping">
<soapenv:Header/>
<soapenv:Body>
<ns2:CreateConsignmentRequest>
<ns2:consignment>
<!-- 1. Movement Indicator -->
<ns2:movementIndicator>B2C</ns2:movementIndicator>
<ns2:incoterm>DDP</ns2:incoterm>
<ns2:parcels>
<ns2:parcel>
<ns2:weight>0.236</ns2:weight>
<ns2:products>
<ns2:product>
<ns2:productCode>8379892</ns2:productCode>
<ns2:description>Test Product 1</ns2:description>
<ns2:quantity>1</ns2:quantity>
<ns2:unitValue>65.00</ns2:unitValue>
<ns2:currency>EUR</ns2:currency>
<ns2:countryOfOrigin>GB</ns2:countryOfOrigin>
<ns2:harmonizedProductCode>95134569</ns2:harmonizedProductCode>
<!-- 2. Product Compliance Block -->
<ns2:compliance xsi:type="ns2:Compliance">
<ns2:manufacturerProductId xsi:type="soapenc:string">0123456789012</ns2:manufacturerProductId>
<ns2:manufacturerProductIdType xsi:type="soapenc:string">gtin</ns2:manufacturerProductIdType>
<ns2:manufacturerNsProductId xsi:type="soapenc:string">NS-PROD-001</ns2:manufacturerNsProductId>
</ns2:compliance>
</ns2:product>
</ns2:products>
</ns2:parcel>
</ns2:parcels>
</ns2:consignment>
</ns2:CreateConsignmentRequest>
</soapenv:Body>
</soapenv:Envelope>
Last updated: 30 September 2026
These carriers are ready to accept the movement indicator and product identifier data described above:
-
Starlinks
-
UPS
We're rolling out support to more carriers in stages, and we'll update this list as each one goes live.
If your carrier isn't listed yet, you can start preparing your integration now with the <ns2:movementIndicator> and <ns2:compliance> elements fields in your requests so you're ready when support is added.