> For the complete documentation index, see [llms.txt](https://api-portal.novapost.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://api-portal.novapost.com/checklists/changes-to-eu-customs-clearance-rules-for-goods-from-november-1-2026.md).

# Changes to EU Customs Clearance Rules for Goods from November 1, 2026

From **November 1**, **2026**, new requirements for the information submitted to customs authorities during the customs clearance of goods sold online and imported from countries outside the EU will come into effect in the European Union.

The main change concerns **Product Identifiers (PID) for B2C shipments**. From now on, for distance sales to the EU, the customs declaration must contain more detailed information about the specific product. The purpose of this change is to make goods more traceable and simplify customs control, including safety checks, restrictions, and verification of product compliance with EU requirements.

#### What exactly is changing?

From November 1, **Product Identifiers** must be provided in the customs declaration:

<table><thead><tr><th width="120">Code</th><th width="135">Identifier</th><th>Description</th></tr></thead><tbody><tr><td><strong>C127</strong></td><td>M-PID</td><td>Product item number assigned by the seller, store, or marketplace</td></tr><tr><td><strong>C128</strong></td><td>NS-PID</td><td>Item number or reference number assigned by the product manufacturer or supplier</td></tr><tr><td><strong>C129</strong></td><td>S-PID</td><td>Standardized product identifier, EAN-13 barcode, or GTIN</td></tr></tbody></table>

**C127 and C128 are mandatory. C129** (S-PID) must be provided if such an identifier exists.

#### Example

For a product such as a "red mug with a logo", the information may look as follows:

* **M-PID / C127:** `GIFT-MUG-LOGO-RED` – item number in the store;
* **NS-PID / C128:** `PROMO-MUG-350ML` – supplier item number or reference number;
* **S-PID / C129:** not provided because the product does not have an EAN/GTIN.

Product data must be provided by the seller or marketplace to the customs declarant in a complete and correct form.

#### What will this look like in the API?

The contract for creating international shipments to EU countries is extended with new fields.

<table><thead><tr><th width="80">Field</th><th width="130">Required</th><th width="115">Type</th><th width="195">Recommended length</th><th>Example</th></tr></thead><tbody><tr><td>mPid</td><td>Yes</td><td>string</td><td>up to 50 characters</td><td>GIFT-MUG-LOGO-RED</td></tr><tr><td>nsPid</td><td>Yes</td><td>string</td><td>up to 50 characters</td><td>PROMO-MUG-350ML</td></tr><tr><td>sPid</td><td>No</td><td>string | null</td><td>up to 30 characters</td><td>5901234567890</td></tr></tbody></table>

**Validation rules effective from November 1, 2026**

When sending goods to an EU country and providing an array containing invoice information, the client must populate the following fields in the `invoice.items` array to ensure correct customs clearance of the goods in EU countries.

* For B2C shipments, the fields must always be populated.
* For C2C shipments, the fields must be populated when the export reason is "Selling"; for other export reasons, they are optional.

Example

```
"mPid": "BOOK-HPOTTER-B1-2020",
"nsPid": "HPOTTER-B1-2020-PL",
"sPid": "9780747558194"
```

If `mPid` or `nsPid` is not populated under the conditions specified above, the client will receive a validation error indicating the field that must be populated.

Error example

```
"errors": {
          "invoice"."items".0."mPid": "The mPid field is required",
          "invoice"."items".0."nsPid": "The nsPid field is required"
}
```

Full request example for creating a shipment from the USA to Poland

```
{
    "status": "ReadyToShip",
    "clientOrder": "1791-0680",
    "payerType": "ThirdPerson",
    "payerContractNumber": "GNPPL-1112233",
    "invoice": {
        "incoterm": "DAP",
        "customerNumber": "11123",
        "currencyCode": "USD",
        "exportReason": "Selling",
        "totalCost": 20.34,
        "items": [
            {
                "id": "3474637141929",
                "name": "Shampun dlya zvolozhennya volossya - Matrix Food For Soft Hydrating Shampoo (300ml)",
                "nameEng": "Moisturizing Shampoo - Matrix Food For Soft Hydrating Shampoo (300 ml)",
                "measurementCode": "pieces",
                "amount": 1,
                "cost": 11.41,
                "hsCode": "3305100000",
                "actualWeight": 325,
                "mPid": "SHAMP-MATRIX-SOFTHYDR-300",
                "nsPid": "SHAMP-MATRIX-SOFTHYDR-300",
                "sPid": "9780747558194"
            },
            {
                "id": "3474636993949",
                "name": "Multyfunktsionalnyi sprei-dohlyad dlya volossya 20-v-1 - Matrix Miracle Creator (190ml)",
                "nameEng": "20-in-1 Multifunctional Spray - Matrix Total Results Miracle Creator (190 ml)",
                "measurementCode": "pieces",
                "amount": 1,
                "currency": "USD",
                "cost": 8.93,
                "hsCode": "3305900000",
                "actualWeight": 220,
                "mPid": "SPREI-MATRIX-Miracle-190",
                "nsPid": "SPREI-MATRIX-Miracle",
                "sPid": "9780747558195"
            }
        ]
    },
    "parcels": [
        {
            "cargoCategory": "parcel",
            "parcelDescription": "cosmetics",
            "insuranceCost": 20.34,
            "rowNumber": 1,
            "width": 200,
            "length": 200,
            "height": 100,
            "actualWeight": 545
        }
    ],
      "sender": {
        "countryCode": "US",
        "addressParts": {
            "city": "Los Angeles",
            "region": "CA",
            "postCode": "90019",
            "street": "5064 Dockweiler Street",
            "building": "1"
        },
        "name": "Test Test",
        "phone": "48231111111",
        "email": "test@test.com"
    },
    "recipient": {
        "phone": "48231111111",
        "email": "test@test.pl",
        "name": "Oksana Test",
        "countryCode": "PL",
        "divisionId": null,
        "addressParts": {
            "city": "Łazy",
            "region": "Warszawa County",
            "street": "Rozmaitości",
            "postCode": "05552",
            "building": "2",
            "flat": "",
            "block": "",
            "note": ""
        }
    }
}
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://api-portal.novapost.com/checklists/changes-to-eu-customs-clearance-rules-for-goods-from-november-1-2026.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
