How to Fill Out a Commercial Invoice: A Step-by-Step Guide with Example
Every field on a commercial invoice explained, with a worked US → Germany example. No guesswork, no glossing over the fields customs actually cares about.
A commercial invoice has about nine required blocks and a handful of optional ones. Fill all nine correctly and a broker can clear the shipment without calling you. Miss one and you’ll be fielding questions from port staff on a Friday afternoon. Here’s the field-by-field walk-through, with a worked example from a US exporter shipping to Germany.
The nine required blocks
- Invoice number + date + currency
- Shipper / exporter (name, address, country, tax ID)
- Consignee / importer (name, address, country, tax ID)
- Incoterm + named place
- Transport mode, port of loading, port of discharge
- Line items (description, HS code, country of origin, qty, unit price, total)
- Subtotal + freight + insurance + declared value
- Declaration statement
- Signature / authorised representative (electronic fingerprint acceptable)
1. Invoice header — number, date, currency
Invoice number is your internal reference. Pick a pattern and stick with it: INV-2026-001 is clearer than a 12-digit random ID. The date is the issue date, which must be on or before the shipment date (customs flags post-dated invoices). The currency is the currency of the transaction — not the currency of the destination.
Worked example: INV-2026-001, date 2026-04-10, currency USD.
2. Shipper — you, the exporter
Full legal company name, full physical address, ISO country code, and your tax ID in the exporting country. For US exporters that’s your EIN; for EU exporters the EORI number; for Chinese exporters the Unified Social Credit Code (USCC). Missing the tax ID is the #1 cause of customs bouncing the paperwork back at you.
If your manufacturer is a different company from the seller of record, you’ll also want a manufacturer block — required on the Certificate of Origin, optional on the commercial invoice but useful for FTA preferential claims.
3. Consignee — the buyer / importer
Full legal name, address, ISO country code, importer-of-record tax ID. For shipments into the US the consignee needs an EIN; into the EU an EORI; into Canada a Business Number with RM account; into Brazil a CNPJ + RADAR. Ship’s-destination address != consignee address — if the buyer is in Paris but the shipment goes to their Rotterdam warehouse, both addresses go on the invoice with the right labels.
4. Incoterm + named place
The Incoterm is a three-letter code plus a named place: FOB Shanghai, DDP Berlin, CIF Rotterdam. The named place tells customs and the parties where cost and risk transfer. Pick the term that matches your transport mode — see our Incoterms 2020 chart for the full list, and avoid the classic mistake of using FOB on a container shipment (use FCA instead).
5. Transport — mode, loading port, discharge port
Four modes in common use: sea, air, road, courier. The loading port is where the goods depart the exporting country; the discharge port is where they arrive in the importing country. For a ship it’s the seaport codes (CNSHA Shanghai, NLRTM Rotterdam); for air the IATA airport codes (JFK, FRA). Road / courier can use city names.
6. Line items — the list of goods
Each line needs, at minimum:
- Description.Plain English that a non-expert customs officer understands. “Stainless steel bolts, grade A2, 10mm x 30mm” — not “hardware.”
- HS code.At least the 6-digit international HS subheading; ideally the destination country’s full extension (10 digits for the US, 8–10 for the EU). See our HS chapter index or use the autocomplete inside the wizard.
- Country of origin. Where the goods were manufactured (ISO alpha-2). Not where they were shipped from.
- Quantity and unit. Qty plus a unit code (PCS, KG, MTR, LTR, SET, BOX, PAL, PKG).
- Unit price + line total. In the invoice currency.
Describe each variant separately. A shipment of 50 red T-shirts + 50 blue T-shirts is twoline items, not one line of 100 “t-shirts, assorted.”
7. Totals — subtotal, freight, insurance, declared value
Subtotal is the sum of line totals. Freight and insurance are additions or already included in the line price depending on your Incoterm:
- EXW, FCA, FAS, FOB: freight and insurance are buyer’s cost, not on this invoice.
- CFR, CPT: freight paid by seller, shown as a separate line on the invoice.
- CIF, CIP: freight and insurance paid by seller, both shown.
- DAP, DPU, DDP: all transport costs are in the seller’s scope. DDP also includes destination duties.
The declared value— sometimes called “total customs value” — is the number customs uses to assess duty. It equals the subtotal plus whatever freight and insurance your Incoterm says you’ve included. Our generator does this math automatically once you pick an Incoterm and enter the charges.
8. Declaration statement
A one-line declaration that you’re stating the truth. Every commercial invoice carries one. A common wording:
“I declare that the information on this invoice is true and correct and that the contents and value of this shipment are as stated above.”
9. Signature block
Name, title, and an authorised signature. Electronic signatures are widely accepted — the practical requirement is that the document has an identifiable author. Our generated PDFs include a fingerprint line at the bottom that serves this role for electronic filing.
Worked example: US → Germany
Say you’re Acme Export Inc. in Austin, Texas, and you’re shipping 500 industrial bearings to a machinery distributor in Stuttgart, Germany. The agreed terms are CIF Hamburg.
- Invoice header:
INV-2026-042, date2026-04-10, currencyUSD. - Shipper: Acme Export Inc., 2100 Commerce Way, Austin, TX 78701, USA. EIN:
12-3456789. - Consignee: Stuttgart Machinery GmbH, Industrieweg 15, 70565 Stuttgart, Germany. EORI:
DE123456789. VAT:DE123456789. - Incoterm: CIF Hamburg.
- Transport: Sea. Port of loading: Houston (USHOU). Port of discharge: Hamburg (DEHAM).
- Line item: Industrial ball bearings, 6203 series, stainless steel. HS code
8482.10. Country of origin:US. Quantity: 500 PCS. Unit price:USD 8.50. Line total:USD 4,250.00. - Totals: Subtotal
USD 4,250.00, freightUSD 350.00, insuranceUSD 25.00, declared valueUSD 4,625.00. - Declaration: standard language as above.
Hand that to a German customs broker and the shipment clears without a phone call.
Common errors — and how we prevent them
- Missing tax ID on the consignee. EORI for EU, EIN for US, BN for Canada. Required for formal entry.
- Country of origin = country of shipment. Different concepts. Origin is where the goods were manufactured.
- HS code mismatch between invoice and commodity. Customs compares declared classification against physical inspection. Mismatch triggers a hold.
- Declared value < actual paid value. Customs can reassess from bank transfer records.
- Sea-only Incoterm on a container shipment. Use FCA / CPT / CIP / DAP / DDP for containers.
The five-part common-mistakes post goes deeper on each.
What to do next
Instead of filling this out in Word with inherited templates, use the wizard at customs-invoice.com/create — HS code autocomplete, Incoterm validation, and a live preview that matches the final PDF. For country-specific guidance (US EORI requirements, EU VAT handling, Canadian CUSMA certification), our country template pages cover the common destinations.
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