/ Home / Blog / Bill of lading vs packing list vs invoice
Three documents, one shipment. What each one is actually for.
A single shipment produces several documents that all describe the same cargo, which makes it easy to assume they are interchangeable. They are not. Each one exists for a different reason, goes to a different party, and gets checked by a different authority. Here is what each actually records, and where they have to agree.
August 2026 ยท Marlow
The bill of lading: the carrier's receipt and contract
Issued by the shipping line or its agent, the bill of lading is both a receipt confirming the carrier has the goods and a contract for carrying them to the destination port. It records the container number, the number of packages, the gross weight, and the terms of carriage. Whoever holds the original bill of lading can typically claim the goods at destination, which is why it carries legal weight beyond a simple description of what is inside the box.
The commercial invoice: the sale, priced
The commercial invoice is the seller's bill to the buyer, and it is the document customs authorities lean on most heavily to assess duty and tax. It states the goods, their value, the currency, the agreed shipping terms such as CIF or FOB, and usually the HS code that classifies the goods for customs purposes. An error here, a wrong HS code or a value that does not reconcile with the declared terms, is the single most common trigger for a customs query or a duty reassessment.
The packing list: what is physically inside
Where the invoice describes value and the bill of lading describes the contract of carriage, the packing list describes the physical reality: how many cartons, how many pallets, gross and net weight, and often the dimensions. This is the document a customs inspector or a warehouse team uses to actually verify what arrived against what was declared. A carton count that differs here from the bill of lading is the most frequent mismatch in ordinary trade paperwork, and usually the most innocent, a clerical slip rather than anything deliberate.
Where they have to agree, and why it matters
Container numbers should match across the bill of lading and packing list. Package or carton counts should match between the bill of lading and packing list. Declared value on the invoice should reconcile with the shipping terms stated on both the invoice and bill of lading. The certificate of origin, a fourth common document, should describe the same goods and shipper as the invoice. None of these are arbitrary rules. Customs and carriers cross-check them precisely because a mismatch is either a genuine error worth catching, or a sign that something about the shipment needs a closer look. Either way, catching it before submission is a five-minute correction. Catching it after is an inspection and a delay.
Questions we get asked
Why do shipments need three separate documents that record similar information?
Because each document serves a different party and a different legal purpose. The bill of lading is the carrier's contract and receipt for the goods. The commercial invoice is the sale record customs uses to assess duty and tax. The packing list is the physical inventory used to actually check what is inside the shipment. They overlap in the numbers they contain, which is exactly why those numbers have to agree.
Which document is considered correct if two of them disagree?
There is no single automatic answer. Customs authorities and carriers can query any discrepancy, and resolving it usually means going back to whoever prepared the documents to confirm which figure is accurate and issuing a correction. This is why catching a mismatch before submission is so much cheaper than resolving one after the fact, there is no dispute process before the vessel arrives, only a conversation.
Does a certificate of origin also need to match the other documents?
Yes, at least on shipper details and the goods description. A certificate of origin that describes different goods than the invoice, or names a different shipper, raises the same kind of query at customs as a mismatched carton count, even though it is a separate document with a separate purpose.
See these checks running on a real shipment file.
Our logistics page runs a live example with these exact documents, a carton count that does not match and an HS code that does not fit, and shows what happens next.
Start a conversation