shiponline
← Back to blogHow-to

How to fill out a customs form for international shipping

Field-by-field walk-through of a CN22 / CN23 customs form. Contents description, declared value, HS tariff codes, restricted items - the practical version with examples and common mistakes.

8 min read·

Customs forms scare first-time international shippers more than they should. The form itself is six or seven fields, most of which are obvious - the only ones that catch people are contents description (which has rules) and HS tariff code (which most people have never heard of).

This guide walks through every field on the two forms you'll actually see - CN22 for parcels under ~$400 and CN23 for everything heavier - with examples of what to write and what to avoid. By the end you'll be able to fill out either form without a second tab open to a carrier FAQ.

CN22 or CN23?

  • CN22 (small green sticker): packages under $400 USD declared value. Single page, ~7 fields. Used for most light international parcels.
  • CN23 (full white form): packages over $400 USD, packages over 4 lb, or any package the destination country requires more detail for. Three to four copies; includes a commercial invoice equivalent.
Through shiponline.app or any carrier label tool, the software picks the right form automatically based on the declared value and weight you enter - you don't pick manually. This guide is what to put in each field.

Field 1: Contents type

A checkbox: Gift, Documents, Commercial Sample, Returned Goods, Merchandise, Other. Pick what's actually true - marking a commercial shipment as a "gift" to dodge duty is fraud and customs catches it routinely.

  • Gift: sender to recipient with no commercial relationship, both individuals (not a business). Some countries have higher de minimis thresholds for gifts; carriers verify the actual commercial reality.
  • Merchandise: e-commerce sale. The default for any shipment a business is sending to a buyer.
  • Documents: paper documents only - contracts, legal papers, printed materials. Often duty-free.
  • Returned goods:something the recipient previously bought from the sender that's being sent back. Important to mark correctly to avoid double-duty.
  • Commercial sample: non-saleable sample sent to a business contact for evaluation.
  • Other: avoid unless nothing above fits. Forces customs to ask for clarification = clearance delay.

Field 2: Contents description

The field that delays the most shipments. Customs needs to understand exactly what's in the parcel to assess duty - vague descriptions trigger holds.

Good vs bad descriptions

  • Bad:"gifts", "clothing", "items", "personal stuff", "merchandise"
  • Good:"2× cotton t-shirts, men's size L", "1× leather wallet, brown", "3× printed paperback books", "1× ceramic coffee mug + 2× steel teaspoons"

The rule: include quantity, material (when relevant), and what category the customs officer would classify it as. "3× cotton t-shirts" gives them everything they need to apply the right tariff rate. "Clothing" doesn't.

If you sell multiple items per parcel, list each one with quantity. "2× cotton t-shirts, 1× cotton hoodie" is fine. "Various apparel" is not.

Field 3: Quantity

Number of identical items per line. If your parcel has 2 t-shirts and 1 hoodie, that's two lines: "2× cotton t-shirt" and "1× cotton hoodie". The CN22 has 4 lines available; the CN23 has more.

Field 4: Net weight per item

Weight in kilograms per line item (not total parcel weight). Some countries duty-cap by weight category, so per-item weight matters. Most shipping platforms convert automatically from the parcel total - you don't usually fill this in by hand.

Field 5: Declared value per item

Commercial value in USD (or sender's currency) per line item. This is what duty + VAT gets calculated against.

What value to write

  • Sold items: the price the buyer paid you for the item (not the retail value to a different buyer).
  • Gifts:fair market value - what someone would pay to buy the item. Don't write $0; customs will reject. Don't lowball; customs has price databases for common items.
  • Samples:"No commercial value" is acceptable when actually true. Still need a number for customs reference - $1 minimum.
  • Returned goods: the original purchase price. The recipient (original seller) may need to file additional paperwork to avoid double-duty.

Don't under-declare

Under-declaring value to dodge duty is fraud. Some buyers ask for it explicitly - refuse. Customs catches it via random package opens and price databases; the seller's carrier account is what gets suspended, not the buyer's.

Field 6: HS tariff number

The Harmonized System (HS) tariff number is the 6-digit international product classification code customs uses to apply the right duty rate. Optional on most CN22 forms, required on CN23 for most destinations.

How to find the right HS code

  1. 1

    Use your shipping platform's suggestion

    shiponline.app suggests an HS code based on your saved item presets or contents description. Override if wrong, accept if right.
  2. 2

    Search the US Census Schedule B database

    Free lookup at uscensus.prod.3ceonline.com - type the product type and pick the 6-digit code. The US uses 10-digit codes domestically; you only need the first 6 for international.
  3. 3

    When in doubt, use a general category code

    Better to send a slightly broader code than a wrong specific one. "6109.10" (cotton knit t-shirt) is fine for most cotton tops; getting it more specific than that rarely matters.

HS code format

Six digits, sometimes written with a period after the first four (e.g. 6109.10) for human readability. Carriers accept either format. The first 2 digits are chapter, next 2 are heading, last 2 are subheading.

Field 7: Country of origin

Where the item was manufactured (not where you're shipping from). A US-based seller shipping a t-shirt made in Vietnam declares country of origin = Vietnam. This is what determines whether the destination country's tariff rules apply - trade agreements between specific country pairs can change duty rates.

If you don't know the country of manufacture, check the product tag or supplier paperwork. Don't guess - the wrong country of origin can trigger a duty audit.

Field 8 (CN23 only): Total weight

Total parcel weight in kilograms, including packaging. Most platforms fill this from the weight you entered at quote time.

Field 9 (CN23 only): Total value

Sum of all line-item values. Same currency as per-item values.

Field 10 (CN23 only): Restricted-item attestation

A signed declaration that the shipment doesn't contain prohibited goods (firearms, perishables in some countries, alcohol, controlled substances, hazardous materials without proper paperwork). The sender signs this; lying voids the label and triggers carrier account review.

What happens after the form is filled

Three things happen with the customs data you entered:

  1. 1

    Carrier prints the customs label

    Through shiponline.app, the customs form prints alongside the shipping label as a single PDF. Carrier label on the outside; commercial invoice in a clear pouch if the destination needs it (DHL especially).
  2. 2

    Data flows electronically to destination customs

    Most carriers transmit the customs declaration digitally before the parcel physically arrives. This is why complete + accurate fields speed clearance - customs has already pre-assessed by the time the box lands.
  3. 3

    Recipient pays duty (DDU) or receives a clean parcel (DDP)

    DDU: carrier holds the parcel until the recipient pays the duty + VAT. DDP: you pre-paid at label printing, parcel goes straight to delivery.

The takeaway

A customs form has 7-10 fields. Three of them matter: contents description (be specific - quantity + material + category), declared value (accurate, not under-declared), and HS code (correct or close-enough). Get those right and customs clearance becomes a 4-hour delay instead of a 4-day one.

Ready to print your first international label? Sign up free - the buy flow auto-suggests all three of the fields above from your staged items and walks you through confirmation before the label fires.

Print your next label with shiponline.app.

All four carriers at commercial rates. Free signup, no card required, label in 60 seconds.

Start shipping smarter
USPS · UPS · FedEx · DHL · No monthly fee