When freight crosses a border, the paperwork gets thicker. Instead of one primary shipping document, you've got a Bill of Lading plus a commercial invoice plus (often) a packing list, a certificate of origin, and whatever else the importing country's customs authority requires.
The two documents that matter most are the commercial invoice and the BOL. They sound similar, they cover some of the same ground, and small logistics operators new to cross-border shipping often confuse them. They're not the same thing. Getting them mixed up — or leaving one of them out — is a fast way to get a shipment held at customs.
What a commercial invoice is
A commercial invoice is the financial document for an international shipment. It's issued by the seller (exporter) to the buyer (importer) and describes the transaction: what was sold, to whom, for how much, on what terms.
A proper commercial invoice includes:
- Seller name and address
- Buyer name and address
- Invoice number and date
- Reference numbers (PO, contract, order number)
- Detailed description of each item — including quantity, unit of measure, and unit price
- Harmonized System (HS) code for each item
- Country of origin
- Currency and total invoice value
- Incoterms (FOB, CIF, DAP, etc.) — defining who is responsible for shipping costs, insurance, and risk at each stage
- Payment terms
- Signature of the seller
Customs officials in the importing country use the commercial invoice as the basis for duties, taxes, and customs clearance. It's also the document the buyer uses to pay the seller, and the document a bank uses if the shipment is financed through a letter of credit.
What a BOL is (and why it's different)
A Bill of Lading, covered in more detail in Rate Confirmation vs Bill of Lading, is a shipping document. It's created when the freight is physically loaded and serves as a receipt for the goods, a contract of carriage, and — depending on the type of BOL — potentially a document of title.
An international BOL (often called an ocean BOL or air waybill depending on the mode) describes what's on the truck, ship, or plane and where it's going. It covers the physical movement of the freight, not the commercial transaction behind it.
A BOL says "this box of these items is being transported from point A to point B by this carrier." A commercial invoice says "the seller is selling this box of these items to the buyer for this price under these terms."
They're complementary. Customs authorities typically require both. Banks often require both. Insurance adjusters definitely want both if something goes wrong.
The fields that overlap — and where they don't
Both documents include:
- Shipper/seller name and address
- Consignee/buyer name and address
- A description of the goods
- Quantity and weight
- Some kind of reference number
That's where the overlap ends. Here's where they diverge:
Commercial invoice has — BOL does not:
- Unit prices and total invoice value
- HS codes for customs classification
- Incoterms
- Country of origin
- Payment terms
- Currency
BOL has — commercial invoice does not:
- Carrier name and SCAC code
- Freight charges (sometimes)
- Mode of transport
- Pickup and delivery dates
- Signatures from the shipper, carrier, and consignee
- Freight class (for domestic LTL — less relevant internationally)
The overlap is why people confuse them. The differences are why you need both.
Why the data on each one matters
A mistake on the commercial invoice is a customs problem. Wrong HS code, understated value, missing country of origin — any of those can trigger an inspection, a hold, or a penalty. Penalties under U.S. customs law for negligent errors can reach a significant percentage of the merchandise value. This isn't a document you want to fill out from memory.
A mistake on the BOL is a shipping problem. Wrong consignee address, wrong weight, missing freight class — these cause misdeliveries, detention, and billing errors on the domestic leg of an international move.
So both documents need to be accurate, and both documents need to match each other on the overlapping fields. If the BOL says 500 kg and the commercial invoice says 480 kg, customs may ask which is correct, and you're now answering questions instead of clearing your shipment.
The data entry problem at scale
If you're a 3PL or broker handling international freight, each shipment multiplies your paperwork. You're processing a commercial invoice, a BOL, often a packing list, and sometimes customs forms for every load. For a single cross-border move, that might be 4–6 documents to key into your systems.
Manual entry at this volume doesn't scale. Every field typed is a chance to introduce a discrepancy between the commercial invoice and the BOL — which is exactly the kind of inconsistency that triggers customs holds.
The better approach is to extract structured data from each document and store it linked to the same load record. When the commercial invoice, BOL, and packing list all feed into the same structured dataset, you can cross-check them programmatically. Weights should match, descriptions should match, quantities should match. If anything diverges, you know before the documents reach customs, not after.
What extraction looks like for these documents
You upload a commercial invoice — PDF, scan, or photo — and the system pulls out the seller and buyer info, invoice number, line items (with HS codes, quantities, unit prices), currency, total value, Incoterms, and reference numbers. Each field gets a confidence score so you know what to review.
The BOL goes through the same process. Upload, extract, review the flagged fields, export.
Once both are in structured form, you can cross-reference them for any given shipment. The weights match. The descriptions match. The consignee lines up. If something doesn't, you catch it before the shipment leaves your dock.
For line-level detail — especially on commercial invoices with lots of SKUs — the structured extraction pulls each line as its own record, complete with quantity, description, unit price, and line total. That's a big upgrade from a PDF you'd otherwise have to read visually to catch errors.
Getting started with cross-border document extraction
If you're handling international freight, both documents are worth digitizing. Sign up free on CargoParse and upload a commercial invoice and the matching BOL. You'll see the extracted fields side by side, each with confidence scores, and you can compare them for consistency. No credit card required.
For a deeper look at BOLs specifically, see how to digitize Bills of Lading. And for the broader workflow, how to build a paperless freight brokerage walks through the document chain end to end.