All posts
Article··11 min read·Portmind Team

Commercial Invoice vs Packing List: What to Check

The commercial invoice says what the goods are worth and the packing list says how they're packed, and customs, carriers and your own systems expect the two to agree. This guide goes field by field through what to compare, why the two documents drift apart, and which differences should stop a shipment.

Updated: November 4, 2026 • Audience: trade operations, customs and logistics teams who receive invoices and packing lists from suppliers

A commercial invoice is the seller's bill for the goods. It names the seller and the buyer, describes each item and gives its quantity, unit price and value, and customs uses it as the starting point for the value it charges duty on. A packing list describes the same shipment physically: what each carton or pallet contains, the marks and numbers on it, and its net and gross weight. Carriers and forwarders plan the move from the packing list, warehouses receive against it, and customs reaches for it when it opens a container to see what's inside.

Because the two documents describe one shipment from two angles, every figure they share has to agree. When they don't, the problem tends to surface at the worst moment, as a broker's query the day the vessel arrives, a declaration filed with the wrong weight or a goods receipt that won't reconcile. This guide goes through the fields the two documents share, what to compare on each, why they drift apart in the first place, and how teams decide which differences should stop a shipment and which only need a note.

The difference at a glance

Commercial invoicePacking list
What it recordsWhat was sold, to whom and for how muchHow the goods are packed and what each package holds
Who uses itCustoms for value, duty and statistics, the buyer's accounts payable, banks under a letter of creditCarriers, forwarders and warehouses, and customs when it inspects the goods
ValuesUnit prices, line totals, invoice total, currency and IncotermUsually none, although a combined invoice and packing list carries both
QuantitiesIn the unit the goods are sold inIn packages, with the quantity inside each one
WeightsSometimes per line, often only as totals, sometimes not at allNet and gross per package or line, with totals
Where it comes fromThe billing or ERP system, built from the sales orderThe warehouse, built from what was picked and packed

That last row explains most of what follows, because the invoice is written from what was ordered and the packing list from what was packed, so any change between the two moments shows up as a difference between the documents.

What to compare, field by field

The table lists the fields that both documents usually carry. Not every invoice and packing list will have all of them, and a field that's missing on one side is worth noting in its own right, because it means that point can't be verified against the other document.

FieldWhat to compareWhy they often differ
Invoice referenceThe packing list quotes the invoice number it belongs toThe packing list was made before the invoice, or quotes a PO or delivery number instead
Seller, buyer and consigneeNames and addresses of each partyTwo legal entities in one group, a delivery address used as the buyer, abbreviations
Item codes and descriptionsThe same items, with descriptions that mean the same thingThe invoice uses the sales catalogue's wording and the packing list the warehouse system's
Quantity per lineThe same quantity per item, in the same unit of measureCartons on one and pieces on the other, or one item split over two batches
Total quantity and packagesHeader totals that equal the sum of the lines, with packages and quantity kept apartA "total quantity" field that actually holds the number of cartons
Net weightThe same net weight per line and in total, and lines that add up to the totalRounding, or weight per carton on one document and per line on the other
Gross weightThe same totals, and gross above net on every line and in totalPallet weight added on one document only, or a typing error
Marks and package numbersShipping marks and number ranges (1 to 24, say) that match the packages shippedMarks copied over from an earlier shipment
HS codesThe same code for each item, at the same number of digitsOne document uses the export code and the other the import code, or 6 digits against 8 or 10
Country of originThe same origin for each lineOrigin stated once for the whole invoice on one document and per line on the other
IncotermThe same rule and named place, and freight or insurance charges on the invoice that fit the ruleA different rule or place on the packing list, or main freight added to an invoice whose Incoterm leaves it to the buyer
Currency and valueIf the packing list shows values, the same values in the same currencyA combined document edited in two places

When there are more than two documents

The set that arrives from a supplier isn't always an invoice and a packing list. It can be an invoice with a delivery note, an invoice with a shipping advice, all three together, or a single PDF with everything in it and nothing titled. The customs team at one consumer goods manufacturer we work with put the rule simply: whatever arrives, everything has to match. With three documents, that means comparing each one against the invoice and the packing list against the delivery note as well, because two documents that each agree with the invoice within tolerance can still disagree with each other.

Checking that every document is there matters just as much. When a supplier sends two invoices and one packing list, the comparison that does run will look fine, and the problem is the packing list that never arrived. Counting the documents expected for each invoice, per supplier or lane, catches the gap before anyone starts comparing figures.

Mismatches worth looking for

Packages read as quantity

Packing list headers usually carry both a total number of packages and a total quantity, and the two get swapped. A total quantity that's really the number of boxes looks plausible, and it'll even match an invoice built from the same packing list, but it's the wrong figure for the declaration. The check that catches it compares the header total with the sum of the line quantities, and it was one of the first a customer's customs team asked us for.

Lines that don't line up

An invoice might have one line per batch while the packing list has one line per material, so an item shipped from two batches shows up as two invoice lines and one packing list line. Compared line by line, everything after that point looks wrong. The batch lines have to be summed before they're compared, and the invoice is normally the better source for the line structure, because it's what customs values and what the declaration is built from.

Weights that don't add up

There are three things to check on weights: that the net weight is below the gross weight on every line and in total, that the line weights add up to the totals on each document, and that the totals agree between the documents. Some invoices carry no weights at all, and the weight per line then has to come from the packing list or delivery note, which is its own small calculation when the lines aren't broken down the same way. We've written about that in automated weight distribution.

Documents that don't share a reference

Pairing an invoice with its packing list is easy when the packing list quotes the invoice number, but often it doesn't. The invoice carries the buyer's PO number and the packing list carries a delivery number or a reference the buyer uses internally, so there's no single field that links them. They can still be paired on the items and quantities, which works in most cases but is less certain, so a pairing made that way deserves a second look before anything else is checked against it.

Which differences should stop a shipment

Some differences matter far more than others. A net weight that's 40 kg out goes straight into the customs declaration, while a seller written as "Ltd" on one document and "Limited" on the other changes nothing. Teams that check documents at volume decide this field by field, and some of the teams we work with arrive with the decision already made, as a list of which fields are hard stops and which only raise a warning.

The fields that usually end up as hard stops are the ones that feed the declaration directly: item or material code, quantity, value, and net and gross weight. One customs team told us they expect these fields to be right every time, because a wrong material code, quantity or value has consequences with the customs authority. Party names and addresses, descriptions and invoice references are more often warnings, which a person looks at but which don't hold the shipment on their own.

Two settings make this workable in practice. The first is tolerance, since weights rarely match to the gram and a small difference, set as a percentage or an absolute value, shouldn't block anything. The second is what happens at a hard stop. The shipment's data is held until someone decides whether the supplier has to reissue the document or the difference can be accepted with a reason recorded. Holding a document usually costs an email to the supplier, which is far cheaper than correcting a declaration after a wrong weight or value has gone into the customs system or ERP.

Checking at volume

When a team receives hundreds of document sets a week, these checks stop being something a person can do on every shipment, and they end up being done on a sample or after something has gone wrong. Sail, Portmind's trade document validation product, reads the invoice, packing list and any delivery note or transport document as they arrive, in whatever layout the supplier uses, and runs these cross-checks before the data goes on to your customs software or ERP.

Out of the box, differences between the invoice and the packing list in net weight, gross weight, quantity and total value are hard stops, and differences in parties, addresses, HS codes and the invoice reference raise warnings. Your team can change any of those, set tolerances in percent, and add checks of its own, such as package counts or volumes. When a hard-stop check fails, the shipment is held, and if the supplier has to correct a document, Sail drafts the email listing each difference with the values it found on both documents, for your team to review and send.

Templates and requirements

If you're producing these documents yourself, the commercial invoice and packing list generator builds both from one form so that they agree from the start, and there are Excel and Word templates for both on the same page. What the invoice itself has to contain for customs in the EU, Switzerland, the UK and the US is covered in commercial invoice requirements.