Shipping and customs
The CN22 form,
and the CN23 that replaced it
The CN22 was the short customs label for low-value parcels leaving the UK by post. From 1 June 2026, Royal Mail and Parcelforce postal shipments require a CN23 customs declaration instead.
For a merchant shipping abroad, the form matters less than the data behind it. Every line needs a description, a value, a tariff code and a country of origin, and the business that holds those on the product record never types a declaration again.
From 1 June 2026
CN23 for postal shipments
Royal Mail: all Royal Mail and Parcelforce postal shipments require a CN23 customs declaration.
SourceEvery declaration
States the nature of goods
Sale of goods, gift, returned goods and so on, chosen for the contents of each parcel.
SourceInto the EU
No VAT exemption at €22
Royal Mail: goods of €22 or less imported into the EU are no longer exempt from VAT. The IOSS scheme is the route for sales to EU consumers.
SourceRead from Royal Mail's own pages on 23 September 2026. Carriers change customs requirements at short notice, so check Royal Mail before a rule here decides how a parcel goes out.
What a customs declaration asks for
Six things, and most of them are properties of the product rather than the parcel. That's the case for holding them in the catalogue.
- Description
- What the item is, in words a customs officer can classify. "Clothing" is not a description; "women's cotton knitted jumper" is.
- Quantity and weight
- Per line, and the parcel total.
- Value
- Per line, in the currency of the sale.
- Tariff code
- The HS code that classifies the goods and sets the duty.
- Country of origin
- Where the goods were made, not where they were shipped from.
- Nature of goods
- Sale, gift, return, sample. One per parcel.
Where customs data should live
01
Typed at the packing bench
Fits when
A handful of international parcels a week and a small catalogue.
How it runs
The packer fills in the declaration for each parcel from memory or a spreadsheet.
02
Held on the Shopify product
Fits when
One sales channel, with international orders a steady share of volume.
How it runs
Tariff code and country of origin sit on each product in Shopify, and the shipping app builds the declaration from the order.
03
Held in the stock system
Fits when
Several channels shipping abroad, or a warehouse or 3PL doing the dispatch.
How it runs
The product record in the stock system owns the customs data, and every channel and carrier reads it from there.
A declaration is a product record, printed
The tariff code, the origin and the customs description don't change between parcels. Typed once on the product, they reach every declaration correctly. Typed per parcel, they're guessed a little differently every time.
When a catalogue moves onto Shopify Plus, or into a stock system, the customs fields move with it. They are part of the data migration, mapped and checked like price and stock.
Where product data should live across channels is on stock control software, and how a catalogue moves is on how a migration runs.
Customs data on every order, without the typing
Tell us where you ship to, what the store runs on and who packs the parcels. We'll reply with where the customs data should live and what it takes to put it there.