.png)
To detect inconsistencies between a commercial invoice, a packing list, and a bill of lading, you must compare the three documents field by field (parties, description, quantities, number of packages, weight, containers, origin), and then distinguish legitimate discrepancies from actual inconsistencies. These three documents serve different purposes and do not provide the same level of detail; therefore, a difference is not always an error. The key is to analyze the shipment as a whole, rather than document by document.
Let’s consider a simple ocean shipment. The packing list lists a gross weight of 12,850 kg for 42 packages. The bill of lading, issued by the carrier, lists 12,580 kg and 42 packages. The invoice, on the other hand, lists only the net weight. Each document, taken on its own, appears to be correct. It is only when reading them together that the discrepancy becomes apparent—and that is exactly what customs officials will do during a document review.
The invoice, packing list, and bill of lading all describe the same goods, but each addresses a different issue. This is what makes reconciling them both useful and challenging.
The commercial invoice describes the transaction: seller, buyer, description of the goods, quantities, unit prices, total value, currency, and Incoterm. It serves as the reference document for the customs value and, often, for the origin and tariff classification.
The packing list describes the goods as they were physically packed: the number and type of packages, the contents of each package, net and gross weight, dimensions, and markings. It generally does not include prices. It serves as the basis for a physical inspection by customs.
The Bill of Lading is issued by the carrier or its representative. It certifies that the goods have been taken into custody, constitutes the contract of carriage, and, in its negotiable form, represents the goods themselves. It lists the shipper, the consignee, the notify party, the ports, the container and seal numbers, the number of packages, and the gross weight.
This is the only one of the three documents that does not come from the exporter. Issued by a third party, the B/L is a valuable control point, but the information it contains about the goods (packages, weight, description) is most often based on the shipper’s declarations. For more information on its digitization, see our article on the eBL and FIATA’s vision.
Not all fields are compared in the same way. Some must be exactly the same, others are reconciled through calculation, and still others appear in only one document.
This matrix completes the comparison of the two documents detailed in our article “How to Automatically Verify Consistency Between an Invoice and a Packing List.” The addition of the Bill of Lading primarily introduces three categories of checks: parties, physical data (packages, gross weight), and shipping data (containers, seals, ports).
The consignee on the B/L does not match the buyer listed on the invoice without justification (B/L to order, bank, agent), or the notify party (for example, the buyer, their freight forwarder, or their customs broker at the destination) is listed as the consignee. A company name spelled differently is sometimes enough to trigger a customs inquiry or a bank rejection.
The invoice lists “M8x40 hex head screws, zinc-plated steel,” while the Bill of Lading lists “Hardware.” The generic description on the B/L is standard. However, an invoice that refers to “spare parts” and a B/L that refers to “electronic equipment” tell two different stories, especially if the declared HS code does not match either of them.
The invoice lists 1,000 units, while the packing list lists 960. Or, the invoice lists the number of items, and the packing list lists the number of cartons, without specifying the number of items per carton. This is one of the most common discrepancies between an invoice and a packing list, and it can be a problem during a physical inspection.
The packing list lists 42 packages, while the bill of lading lists 40. Or perhaps the packing list counts cartons, whereas the bill of lading counts pallets. The number of packages is declared by the shipper; it is not verified by the carrier except in the case of full container loads (less-than-container load, conventional). A discrepancy in this regard always warrants verification.
Common mistakes include: a gross weight that is identical to the net weight (the tare weight was omitted), a gross weight on the B/L that differs from the total on the packing list, or confusion between kilograms and pounds. Gross weight also has safety implications: since 2016, the SOLAS Convention has required a Verified Gross Mass (VGM) for each container.
A container number with two reversed characters, a seal that was replaced without the change being documented, and package markings that differ between the packing list and the B/L. These data entry errors may seem minor, but they prevent a document from being linked to the correct shipment.
A discrepancy in the country of origin between the invoice and the certificate of origin, an HS code that does not match the description, or a CIF Incoterm on the invoice with “collect” freight on the B/L. These discrepancies have a direct impact on customs duties and eligibility for tariff preferences. They relate to both customs compliance and document consistency.
The invoice, packing list, and bill of lading do not necessarily have to be identical. They must tell the same story. A check that requires strict consistency across all fields generates a flood of false alerts, and teams end up ignoring them.
1,000 units invoiced, 50 cartons on the packing list, 5 pallets on the bill of lading: all three figures could be correct. The check involves verifying that the hierarchy holds (20 units per carton, 10 cartons per pallet), not that the figures match.
Net weight excludes packaging, gross weight includes it, and the weight listed on the B/L may include pallets and dunnage. A discrepancy between net weight and gross weight is therefore to be expected. What should raise a red flag is a gross weight that is less than the net weight, or an unexplained discrepancy between two gross weights.
An invoice may cover multiple shipments, and a bill of lading may combine multiple invoices. In this case, the totals cannot be compared directly; you must reconcile the lines corresponding to each shipment.
The phrases “said to contain” or “shipper’s load and count” indicate that the carrier has not verified the contents and is relying on the shipper’s declarations. The B/L therefore provides less assurance than it appears to, and consistency with the packing list must be verified in advance.
For digital data, it is helpful to define explicit thresholds that are appropriate for the type of data stream. For example:
These thresholds should be established in consultation with the operational and customs teams: they depend on the products, destinations, and the acceptable level of risk.
An inconsistency discovered late always costs more than one corrected at the outset:
Before forwarding a file to customs, the bank, or the client, these ten checks cover the essentials:
This checklist works for a few cases a day. Beyond that, manual review is the first step to be cut when deadlines loom.
OCR reads documents, and IDP extracts structured data from them (see the difference between IDP and OCR). However , data can be extracted perfectly yet still be inconsistent with the rest of the file. And a strict field-by-field comparison would flag the 1,000 units, 50 boxes, and 5 pallets from the example above as anomalies.
Detecting a true inconsistency therefore requires three additional skills:
This is the principle of document reconciliation: automatically cross-referencing data from multiple documents and sources to verify their consistency. The differences between these approaches are detailed in our article “OCR vs. Document AI: What Are the Differences for Logistics?”
Invoices, packing lists, and bills of lading do not arrive at the same time. The pro forma invoice precedes the final invoice; the draft bill of lading precedes the original bill of lading; and a certificate of origin may be issued after shipment. A one-time, ad hoc check therefore fails to detect some discrepancies.
The document-centric, agent-based approach involves maintaining a dynamic file that is re-validated each time a new document is received. Any discrepancies are tracked, explained, and submitted to an operator, who makes the final decision. The validated data is then fed into the TMS, ERP, or customs declaration tool without the need for re-entry. This shift moves the process from a control-based approach to one focused on ensuring document reliability.
Docloop applies this approach to the files of freight forwarders, customs brokers, and trade finance teams that prepare documentary credit applications.