·6 min read·customs-invoice team

5 Customs Invoice Mistakes That Get Shipments Held

Most customs holds trace back to the same handful of invoice errors. Here are the ones worth guarding against before the shipment leaves the warehouse.

Most customs holds aren’t caused by anything exotic. They come from five or six invoice mistakes that show up again and again, across every mode of transport, every destination, and every freight forwarder’s inbox. Fix these before the shipment ships and you’ll avoid the 2 a.m. call from your broker.

1. Wrong or missing HS code

The Harmonized System code determines the duty rate, whether anti-dumping applies, whether a licence is required, and whether your shipment is eligible for preferential treatment under a free-trade agreement. Customs officers compare what you declare against what the goods actually are; if the code is wrong — or worse, missing — the shipment gets referred for manual inspection.

Common failure mode: copying the HS code from a supplier’s invoice without checking. Your supplier classifies for their export authority; the destination country may use a different version of the HS at the 8- or 10-digit level.

Rule of thumb: the first 6 digits of the HS code are globally standardised. Digits 7–10 vary by country. Always confirm you have the right full-length code for the destination.

2. Country of origin ≠ country of shipment

Country of origin means where the goods were manufactured, not where they’re being shipped from. This trips up re-exporters constantly: goods made in Vietnam, warehoused in Singapore, shipped to the US should say VN as origin, not SG.

Getting this wrong can be expensive. Preferential duty rates under agreements like USMCA, CPTPP, or the EU–UK Trade and Cooperation Agreement depend on origin — state the wrong one and you either pay duty you didn’t need to, or (worse) claim a preference you don’t qualify for and trigger an audit.

3. FOB on a container

Incoterms 2020 is explicit: FOB is for bulk and break-bulk sea freight only. For containerised shipments — which is almost everything today — the correct term is FCA(Free Carrier). Why? Under FOB, risk transfers when the goods are on board the vessel. With containers, the shipper doesn’t put anything on the vessel; the container is handed over at the terminal, often days before loading.

Using FOB for containers creates a legal gap between when the shipper thinks risk transferred and when it actually does. Claims get disputed. Forwarders hate it. Use FCA.

4. Declared value that doesn’t match reality

Customs valuation rules require the declared value to reflect the actual transaction value between unrelated parties, adjusted for the Incoterm. If you write DDPon the invoice but only declare the EXW price, you’ve under-declared — because DDP bakes freight, insurance, and duties into the sale price that customs expects to see.

The fix is usually a simple additions table: start with the invoice amount, add freight, add insurance, adjust for royalties and commissions if applicable. Our generator does this automatically when you fill in the Freight and Insurance fields.

5. Incomplete consignee tax ID

Every major destination requires a tax identifier for the importer of record:

Leaving this blank doesn’t just slow clearance — it can prevent the broker from filing the entry at all. The result: your shipment sits in the bonded warehouse racking up storage fees until the consignee scrambles for the right number.

One more, because it’s always the worst: packing-list mismatches

If you provide a packing list, the quantities, net/gross weights, and number of packages on the list must match the invoice. Customs officers spot-check. A 50-kg gross-weight discrepancy between your invoice and packing list is a red flag for smuggling or under-declaration, and it triggers a full physical inspection. Keep the two documents derived from the same source of truth — our wizard generates both from the same line items, which is exactly why this feature exists.

Do the ten-second sanity check

Before you click Generate, look at five things:

  1. HS code matches the destination country’s tariff schedule.
  2. Country of origin is where the goods were made.
  3. Incoterm matches the transport mode (FCA for containers, FOB for bulk sea).
  4. Declared value reflects the Incoterm you chose.
  5. Consignee tax ID is present and valid.

That’s the difference between clearing in hours and clearing in days.

Stop re-typing the same fields.

Generate a compliant customs invoice PDF in under a minute, with HS code autocomplete and Incoterms validation baked in.

Create an invoice