A customs hold is more than just a delay. It’s a shipment sitting at a border while your customer wonders where their order went—and while you’re on the clock to fix the problem before it turns into a return, refund, or support ticket. 

When goods cross an EU external customs border—such as a shipment entering the EU from the UK, US, or another non-EU country—accurate customs data and documentation are essential for clearance. Shipments moving between EU Member States generally don’t go through customs simply because they cross a national border, because the EU operates as a single customs union. 

The exact requirements vary by shipment, product, destination, and transport method. But several recurring mistakes can create avoidable delays for EU-bound shipments. Here’s what each mistake looks like, why it happens, and how to build a shipping process that catches it before you print the label. 

1. A missing, inactive, or mismatched EORI number 

Your EORI (Economic Operators Registration and Identification) number is used by customs authorities to identify you as the economic operator/person involved in customs operations. Without one, or with one that’s inactive or tied to the wrong legal entity, your shipment gets held until it’s sorted out. 

Here’s something many shippers miss: An EORI is an EU-wide identifier, so you don’t normally need a different EORI for each EU country you ship through. EU-established businesses generally receive their EORI from the Member State where they’re established, while businesses established outside the EU obtain one from the EU country where they conduct their first customs operation. Because an EORI can be invalidated and the associated business information can become outdated, it’s worth checking that the number and associated legal-entity information are correct. 

An incorrect or missing Importer of Record creates a similar issue. The Importer of Record is the party that assumes legal responsibility for the shipment on the receiving end, and if that information is incorrect or doesn’t align with the customs declaration, it can cause clearance problems or delays. 

The fix: 

Save your EORI (and any other tax IDs) in ShipStation’s International Settings (under Tax Identifiers). After you enter it once, you can then apply it to shipments automatically through an Automation Rule instead of re-entering it order by order. If you work with a consistent Importer of Record, ShipStation also lets you save it once and attach it to shipments from a dropdown, so you’re not filling it in from memory. 

2. A vague or wrong HS code 

The Harmonized System (HS) code is how customs authorities identify what’s actually in the box. Getting it wrong or leaving it too vague is a common reason for customs delays. “Clothes” doesn’t cut it anymore for EU-bound shipments. Customs wants something closer to “Men’s cotton shirt.” 

There’s a nuance here that’s easy to overlook: HS codes aren’t one-size-fits-all for exports and imports. HS codes are internationally standardised to six digits, but countries and customs unions can extend them further. In the EU, the Combined Nomenclature uses eight-digit CN codes, while the TARIC system can extend those codes to 10 digits for EU import measures. The exact code required depends on the customs declaration and destination. 

In many product categories, those additional digits can affect the applicable duty rate and other import measures. A code that worked for one shipment last year isn’t guaranteed to still be correct today, either. Codes get revised, and product classifications shift. It’s also one of the inputs you need to standardise before comparing carrier quotes, since an inconsistent HS code will throw off duty estimates from one carrier to the next. 

The fix: 

Don’t classify products at the point of shipping. Save the HS code once per SKU in ShipStation’s Product Default Customs settings, and it will auto-populate every future shipment for that product. If you’re fixing codes across a whole catalogue, the bulk CSV import handles that in one pass instead of product by product. 

And when you’re writing the description itself, consider: what it is, what it’s made of, what it’s for. Use a specific description that makes the product readily identifiable—for example, “organic argan oil hair serum, 100 ml” rather than simply “hair product.” 

3. An incomplete or inconsistent commercial invoice 

A commercial invoice with missing details, or details that don’t match your other shipping documents, can cause delays even when nothing about the shipment itself is wrong. Missing or inconsistent information—such as an incomplete goods description, incorrect quantity or value, missing country-of-origin information, or differences between the commercial invoice and electronic customs declaration—can delay clearance. 

Inconsistency is often hidden in plain sight. If your invoice says 500 units, your packing information says 480, and your customs declaration says 520, customs doesn’t need to know which number is correct to flag the shipment. The mismatch alone is enough. Every document tied to a shipment needs to tell the same story. 

The fix: 

ShipStation automatically creates customs declarations using your order and product data, reducing the need to manually re-enter shipment information. Keeping your Product Default Customs settings accurate standardises the description and value across all shipments of that product, so you’re not relying on whatever text came through from the sales channel. 

4. Misapplying (or missing) IOSS 

The Import One-Stop Shop (IOSS) lets you collect and remit VAT upfront on low-value B2C sales into the EU, so your customer doesn’t get charged VAT again when the package arrives. It is not a general-purpose import framework, and using it (or skipping it) in the wrong situation can create different problems. When an eligible sale isn’t handled through IOSS, import VAT may instead be collected at the point of import, potentially resulting in an unexpected payment request or additional charges at delivery. 

It’s also important to understand that IOSS covers VAT, not customs duty. Since July 1, 2026, the EU has applied a temporary €3 customs duty per item to applicable low-value consignments of up to €150, replacing the previous customs-duty exemption. The duty applies under specific rules and is separate from whether IOSS is used. 

IOSS is one of the areas where customs paperwork can break down when building a smarter international shipping strategy for the EU. 

There’s also a format requirement worth knowing. A valid IOSS number is 12 characters, starting with “IM” followed by 10 digits. Get the format wrong, and it won’t be recognised regardless of whether the underlying registration is valid. 

The fix: 

Add your IOSS number once in ShipStation’s International Settings, the same place you’d add an EORI or VAT number, and it becomes available to apply to shipments going forward. Not every carrier supports IOSS, so it’s worth checking that your carrier for a given lane is on the list before you rely on it. 

5. No clear decision on who pays duties 

This is the mistake that shows up as an angry customer instead of a held shipment.  

In ShipStation, the standard option is DDU (Delivery Duty Unpaid), where the recipient is responsible for applicable customs duties, taxes, and fees. DDP (Delivered Duty Paid) shifts those charges to the sender when the carrier supports it. More on DDU vs. DDP

That’s fine, as long as your customer knows it’s coming. When they don’t, a duty bill at the door feels like a bait-and-switch, and you risk a refused delivery. Brands that still default to DDU without flagging it up front aren’t dealing with a logistics failure. They’re creating a brand failure, and it’s one of the clearer signs of the complexity of cross-border ecommerce shipping catching up with a seller who hasn’t adjusted for it. 

The fix: 

Where your carrier supports it, ShipStation can bill duties to you instead of the recipient when you create the label, so the amount is calculated and paid upfront rather than sprung on the customer later. If you’d rather stick with DDU for margin reasons, that’s a legitimate call too. Just make sure your checkout page says so in plain language, not buried in a shipping policy page. 

Avoiding EU customs form mistakes comes down to consistency 

None of these five mistakes requires deep customs expertise to avoid. They require consistency: the same EORI and tax IDs on every shipment, the same accurate HS code on every unit of a given product, the same numbers across every document tied to an order, IOSS applied only where it actually belongs, and a duty decision your customer knows about before the package ships. 

Build that consistency into your product records and shipping settings once, and you can reduce avoidable customs delays across subsequent orders. 

Ready to simplify your international fulfilment and shipping? ShipStation centralizes your tax IDs, product-level customs data, and duty billing preferences in one place. Start your free trial of ShipStation today to ship across the EU without the hassle or delays.