The Windsor Framework
The Windsor Framework is an agreement between the UK and the EU that manages trade between Great Britain and Northern Ireland after Brexit. It replaces the Northern Ireland Protocol and aims to simplify customs procedures while ensuring that Northern Ireland retains access to the EU single market.
This guide explains what the framework means for your shipments, the data you must include when creating labels, and the next steps to stay compliant.
What Is the Windsor Framework?
The framework introduces new customs and trade rules for moving goods from Great Britain to Northern Ireland.
Key points include:
-
Simplified Customs Procedures:
Depending on the trade lane—whether Business-to-Consumer (B2C), Consumer-to-Consumer (C2C), or Business-to-Business (B2B)—different levels of customs data are required. -
Green and Red Lanes:
- Green Lane: Goods are declared “not at risk” and are subject to simplified checks.
- Red Lane: Goods are considered at risk of moving into the EU and require a full customs declaration with extra details.
-
Timelines:
Although many changes were initially set to start on 30 September 2024, final timelines (including full compliance by 31 March 2025) are still being confirmed by the government. For the latest updates, please check the official HMRC guidance.
For more details on the framework and its terminology, visit the UK government’s official guidance on the Windsor Framework.
How the Framework Affects Your Shipping Process
When shipping from Great Britain to Northern Ireland, you must now include additional data in your label creation requests. This extra information ensures customs declarations are correct and that your shipments are routed properly. The data requirements differ between B2C/C2C shipments and B2B shipments.
For B2C and C2C Shipments
-
Basic Consignment Data:
- Sender and recipient names, addresses, and contact details
- Parcel weight and total consignment value
- A plain English description of the shipment contents
-
Customs Formalities:
For B2C shipments, customs data requirements are usually simpler if you follow the UK Carrier Scheme guidelines and your goods are not at risk of moving into the EU.
For B2B Shipments
B2B shipments require more detailed data so that your shipment can be classified as either “green lane” (not at risk) or “red lane” (at risk). In addition to the basic consignment data, you must provide:
-
Mandatory Fields:
- Sale Type: Indicate if the shipment is a business or consumer shipment.
- Number of Pieces and Total Value: The overall details of the goods.
- Commodity Details:
- Commodity codes / HS codes (6 or 10 digits, as required)
- Descriptions, quantities, unit weights, and unit values
- Country of manufacture
- If needed, sender/recipient deferment account details for customs charges
-
UKIMS Number:
Either the sender’s or recipient’s UK Internal Market Scheme (UKIMS) number must be provided. If this number is missing, the shipment defaults to B2C rules and may be deemed at risk. -
EORI Number:
The sender’s EORI number is always required. If a recipient’s UKIMS number is provided, the recipient’s EORI number must also be included. -
Clearance Declaration Details:
These details differ based on the lane:- Green Lane (Not at risk): Only minimal extra data is needed when UKIMS details are included.
- Red Lane (At risk): A full international dataset (similar to an H1 declaration) is required, along with additional customs information. Duties may be charged at the EU rate.
Data Fields Required When Creating Shipping Labels
Below is a summary of the key data fields you should include to ensure compliance under the Windsor Framework. Please check the courier requirements table for the couriers that you are using to fully comply with the courier requirements for the Windsor Framework:
-
Sale Type:
Identifies whether the shipment is B2B, B2C, C2C, or C2B. -
For B2B Shipments (Customs and Declaration Data):
- Commodity Code (HS Code)
- Detailed Description: Including quantity, unit weight, unit value, and country of origin.
- UKIMS Number: For the shipper, recipient, or both.
- EORI Numbers: Always include the shipper’s EORI and, if applicable, the recipient’s EORI.
- Other Commodity Details: As required by your carrier.
Note |
Our documentation will be updated as new information emerges. We will revise the general regulation details as well as the specifics for each carrier affected by the framework. |
Courier Requirements
Fields/Courier | RoyalMail | Whistl | RoyalMail ClickAndDrop |
Yodel |
Supported Sales Types: | B2B / B2C | B2B / B2C | B2B / B2C | B2C |
courier.sale_type | Required | Required | Required | N/A |
ship_to.ukims_number | Required for B2B shipments unless ship_from.ukims number isn't entered | N/A | Required for B2B shipments unless ship_from.ukims number isn't entered | N/A |
ship_from.ukims_number | Required for B2B shipments | N/A | Required for B2B shipments | N/A |
ship_to.eori_number | Required for B2B if ship_to.ukims number is entered for B2B | N/A | It is required for B2B if ship_to.ukims number is entered for B2B | N/A |
ship_from.eori_number | Required for B2B | N/A | Required for B2B | N/A |
item.sku | Required | Required | Required | Required |
item.quantity | Required | Required | Required | Required |
item.description | Required | Required | Required | Required |
item.value | Required | Required | Required | Required |
item.currency | Required | Required | Required | Required |
item.origin_country | Required | Required | Required | Optional |
item.hs_code | Required | Required | Required | Optional |
item.weight | Required | Required | Required | Optional |
courier.export_reason | N/A | N/A | N/A | N/A |
courier.sender_deferment_account | N/A | N/A | N/A | N/A |
Note | Either ship_to UKIMS or ship_from.ukims number is required for B2B shipments | UKIMS and EORI numbers should be configured on Whistl interface | Either ship_to UKIMS or ship_from.ukims number is required for B2B shipments |
Fields/Courier | Evri Corporate |
Hermes Corporate |
DPD UK | DPD Local | DPD Ireland |
Supported Sales Types: | B2C / C2C / C2B | B2C / C2C / C2B | B2B, B2C, C2C | B2B, B2C, C2C | B2B, B2C, C2C |
courier.sale_type | N/A | N/A | Required | Required | Required |
ship_to.ukims_number | N/A | N/A | Required for B2B shipments unless ship_from.ukims number isn't entered | Required for B2B shipments unless ship_from.ukims number isn't entered | Required for B2B shipments unless ship_from.ukims number isn't entered |
ship_from.ukims_number | N/A | N/A | Required for B2B shipments if not at-risk goods | Required for B2B shipments if not at-risk goods | Required for B2B shipments if not at-risk goods |
ship_from.vat_number | N/A | N/A | Required for B2B At Risk Goods | Required for B2B At Risk Goods | Required for B2B At Risk Goods |
ship_to.vat_number | N/A | N/A | Required for B2B At Risk Goods if ship_from.vat_number not entered | Required for B2B At Risk Goods if ship_from.vat_number not entered | Required for B2B At Risk Goods if ship_from.vat_number not entered |
ship_to.eori_number | N/A | N/A | Required for B2B if ship_to.ukims number is entered for B2B | Required for B2B if ship_to.ukims number is entered for B2B | Required for B2B if ship_to.ukims number is entered for B2B |
ship_from.eori_number | N/A | N/A | Required for B2B | Required for B2B | Required for B2B |
item.sku | Required | Required | Required | Required | Required |
item.quantity | Required | Required | Required | Required | Required |
item.description | Required | Required | Required | Required | Required |
item.value | Required | Required | Required | Required | Required |
item.currency | Required | Required | Required | Required | Required |
item.origin_country | Required | Required | Optional for B2C&C2C but Required for B2B | Optional for B2C&C2C but Required for B2B | Optional for B2C&C2C but Required for B2B |
item.hs_code | Required | Required | Optional for B2C&C2C but Required for B2B | Optional for B2C&C2C but Required for B2B | Optional for B2C&C2C but Required for B2B |
item.weight | Required | Required | Required | Required | Required |
courier.at_risk | N/A | N/A | Required | Required | Required |
courier.export_reason | N/A | N/A | N/A | TBD | |
courier.sender_deferment_account | N/A | N/A | N/A | TBD | |
Note | TBD |
Fields/Courier | RoyalMailIntersoft | ProCarrier | Hermes | DHLParcelUKCloud |
Supported Sales Types: | B2B / B2C | TBD | B2C / C2C / C2B | B2C / B2B / C2C / C2B |
courier.sale_type | Required | TBD | N/A | Required |
ship_to.ukims_number | Required for B2B shipments unless ship_from.ukims number isn't entered | TBD | N/A | Required for C2B. Required for B2B if ship_from.ukims is not entered |
ship_from.ukims_number | Required for B2B shipments | TBD | N/A | Required for B2B |
ship_to.eori_number | Required for B2B if ship_to.ukims number is entered for B2B | TBD | N/A | Required for C2B. Required if ship_to.ukims is entered |
ship_from.eori_number | Required for B2B | TBD | N/A | Required for B2B |
item.sku | Required | TBD | Required | Required |
item.quantity | Required | TBD | Required | Required |
item.description | Required | TBD | Required | Required |
item.value | Required | TBD | Required | Required |
item.currency | Required | TBD | Required | Required |
item.origin_country | Required | TBD | Required | Optional |
item.hs_code | Required | TBD | Optional | Optional |
item.weight | Required | TBD | Required | Required |
courier.export_reason | N/A | TBD | N/A | Required for B2B |
courier.sender_deferment_account | N/A | TBD | N/A | Required for B2B |
Note | Either ship_to UKIMS or ship_from.ukims number is required for B2B shipments | TBD | B2B isn't supported by Evri so there is no need for UKIMS and EORI Number |
Fields/Courier | DHLParcelUK | SecuredMail | Fedex | DPDC2C |
Supported Sales Types: | B2C / B2B / C2C / C2B | B2B / B2C / C2B | TBD | TBD |
courier.sale_type | Required | Required | TBD | TBD |
ship_to.ukims_number | Required for C2B. Required for B2B if ship_from.ukims is not entered | Required for B2B shipments unless ship_from.ukims number isn't entered or Required for C2B shipments | TBD | TBD |
ship_from.ukims_number | Required for B2B | Required for B2B shipments | TBD | TBD |
ship_to.eori_number | Required for C2B. Required if ship_to.ukims is entered | Not Required | TBD | TBD |
ship_from.eori_number | Required for B2B | Not Required | TBD | TBD |
item.sku | Required | Required | TBD | TBD |
item.quantity | Required | Required | TBD | TBD |
item.description | Required | Required | TBD | TBD |
item.value | Required | Required | TBD | TBD |
item.currency | Required | Required | TBD | TBD |
item.origin_country | Optional | Required | TBD | TBD |
item.hs_code | Required | Required | TBD | TBD |
item.weight | Required | Required | TBD | TBD |
parcel.dim_width | Not Required | Required | TBD | TBD |
dim_height | Not Required | Required | TBD | TBD |
dim_length | Not Required | Required | TBD | TBD |
dim_unit | Not Required | Required | TBD | TBD |
courier.export_reason | Required for B2B | Required | TBD | TBD |
courier.sender_deferment_account | Required for B2B | N/A | TBD | TBD |
Note | TBD | TBD |
Fields/Courier | Huxloe | DGInternational | CollectPlus | PPI |
Supported Sales Types: | TBD | TBD | TBD | TBD |
courier.sale_type | TBD | TBD | TBD | TBD |
ship_to.ukims_number | TBD | TBD | TBD | TBD |
ship_from.ukims_number | TBD | TBD | TBD | TBD |
ship_to.eori_number | TBD | TBD | TBD | TBD |
ship_from.eori_number | TBD | TBD | TBD | TBD |
item.sku | TBD | TBD | TBD | TBD |
item.quantity | TBD | TBD | TBD | TBD |
item.description | TBD | TBD | TBD | TBD |
item.value | TBD | TBD | TBD | TBD |
item.currency | TBD | TBD | TBD | TBD |
item.origin_country | TBD | TBD | TBD | TBD |
item.hs_code | TBD | TBD | TBD | TBD |
item.weight | TBD | TBD | TBD | TBD |
courier.export_reason | TBD | TBD | TBD | TBD |
courier.sender_deferment_account | TBD | TBD | TBD | TBD |
Note | TBD | TBD | TBD | TBD |
Fields/Courier | Starlinks | UPS | ArrowXL | ParcelHub |
Supported Sales Types: | TBD | TBD | TBD | TBD |
courier.sale_type | TBD | TBD | TBD | TBD |
ship_to.ukims_number | TBD | TBD | TBD | TBD |
ship_from.ukims_number | TBD | TBD | TBD | TBD |
ship_to.eori_number | TBD | TBD | TBD | TBD |
ship_from.eori_number | TBD | TBD | TBD | TBD |
item.sku | TBD | TBD | TBD | TBD |
item.quantity | TBD | TBD | TBD | TBD |
item.description | TBD | TBD | TBD | TBD |
item.value | TBD | TBD | TBD | TBD |
item.currency | TBD | TBD | TBD | TBD |
item.origin_country | TBD | TBD | TBD | TBD |
item.hs_code | TBD | TBD | TBD | TBD |
item.weight | TBD | TBD | TBD | TBD |
courier.export_reason | TBD | TBD | TBD | TBD |
courier.sender_deferment_account | TBD | TBD | TBD | TBD |
Note | TBD | TBD | TBD | TBD |
Fields/Courier | DxExpress |
Supported Sales Types: | TBD |
courier.sale_type | TBD |
ship_to.ukims_number | TBD |
ship_from.ukims_number | TBD |
ship_to.eori_number | TBD |
ship_from.eori_number | TBD |
item.sku | TBD |
item.quantity | TBD |
item.description | TBD |
item.value | TBD |
item.currency | TBD |
item.origin_country | TBD |
item.hs_code | TBD |
item.weight | TBD |
courier.export_reason | TBD |
courier.sender_deferment_account | TBD |
Note | TBD |