Put the commercial invoice and the packing list into a spreadsheet or clean text, then ask an AI tool to compare them line by line: quantities, unit prices times quantities, carton counts, net and gross weights, HS codes and the consignee's name and address. Have it return a mismatch table, then verify each flagged item against the physical goods and your own records.
The two documents describe the same shipment from different angles, one for money and one for boxes, and they are usually produced at different times by different people. That is where mismatches creep in. A mismatch can mean a delayed release, a query from customs or a payment held until the paperwork is corrected, so the hour you spend comparing them before the lorry leaves is cheap by comparison.
What each document must say, and where they must agree
The commercial invoice is the seller's bill and the main document customs uses to value the goods. It normally names the seller and the buyer or consignee, gives the invoice number and date, lists each product with description, quantity, unit price and line total, states the currency and the total, shows the delivery terms (an Incoterm such as FOB, one of eleven standard rules published by the International Chamber of Commerce), and often the country of origin and the HS code. The packing list says what is in each package: carton numbers, contents and quantity per carton, net and gross weights, dimensions and shipping marks.
The fields that must agree, and the check for each, are below.
| Field | Appears on | What to check |
|---|---|---|
| Quantity per product | Both | Packing list cartons x pieces per carton equals invoice quantity |
| Line totals and invoice total | Invoice | Quantity x unit price per line; lines add up to the stated total |
| Carton count | Both, plus booking | Packing list total equals any figure on the invoice and the transport booking |
| Net and gross weight | Packing list, sometimes invoice | Carton weights add to totals; gross is never below net |
| HS code | Often both | Same code for same goods; digits as the destination requires |
| Consignee name and address | Both, plus booking | Identical spelling, suite numbers and company form |
| Descriptions | Both | Same product wording, enough to identify the goods |
| Invoice number and date | Both (reference) | Packing list refers to the right invoice |
| Incoterm and named place | Invoice, contract | Matches the sales contract and booking |
| Currency | Invoice | Same currency as the contract and any letter of credit |
The HS (Harmonized System) code is a product classification. Its first six digits are the same across customs systems worldwide, and each country is allowed to add further digits for its own purposes, which is why a code that works for one destination may need extending for another. Your broker or the destination's customs authority has the final say on the full code, and so no AI tool should be treated as the authority on it.

The Complete Excel Course with AI Integration
From formulas and pivot tables to Power Query, DAX, VBA and AI with Copilot, ChatGPT and Claude — hands-on from the first lesson.
By Sagnik Bhattacharya and Virginia Thorn, Primetime Emmy Award winner
Buy nowThe main example: a ceramics exporter's pre-shipment check
Take an illustrative small exporter of stoneware tableware shipping 43 cartons. The commercial invoice lists:
| Item | HS code | Qty | Unit price | Line total |
|---|---|---|---|---|
| Stoneware mug 350 ml | 6912.00 | 1,200 | $2.10 | $2,520.00 |
| Stoneware bowl 15 cm | 6912.00 | 800 | $1.65 | $1,320.00 |
| Serving platter 30 cm | 6912.00 | 150 | $6.40 | $960.00 |
| Printed gift box | 4819.20 | 300 | $0.55 | $165.00 |
The invoice states a total of $4,950.00 and "44 cartons". The packing list shows:
| Cartons | Contents | Per carton | Pieces | Gross each | Net each |
|---|---|---|---|---|---|
| 1 to 20 | Mugs | 60 | 1,200 | 14.5 kg | 12.8 kg |
| 21 to 36 | Bowls | 50 | 800 | 13.0 kg | 11.4 kg |
| 37 to 41 | Platters (HS 6911.10) | 28 | 140 | 12.0 kg | 10.5 kg |
| 42 to 43 | Gift boxes | 150 | 300 | 3.0 kg | 2.4 kg |
The packing list states a total gross weight of 565 kg and a consignee written "[Consignee] Limited, Unit 4A". The invoice reads "[Consignee] Ltd, Unit 4". Nobody sees any of this by glancing at the two pages. A comparison does.
The prompt that produces a mismatch report
I will paste a commercial invoice and a packing list for one shipment.
Compare them and return a mismatch report. Do not assume anything not in
the documents.
Checks:
1. Quantity: for each product, packing-list pieces vs invoice quantity.
2. Arithmetic: invoice quantity x unit price per line; sum of lines vs stated
total. Show each sum.
3. Cartons: total on packing list vs any carton count on the invoice.
4. Weights: carton count x per-carton weight per product; sum vs the stated
totals, for net and gross. Flag any net above gross.
5. HS codes: list each product's code on each document; flag differences.
6. Consignee: compare name, address, suite/unit and company form character
by character; flag every difference.
7. References: invoice number and date quoted on the packing list.
Output a table: check, document A value, document B value, difference,
severity (blocks shipment / fix before sending / note). Then list anything you
could not check because the information was missing.
INVOICE:
[paste]
PACKING LIST:
[paste]
The "could not check" list is as important as the table. Tools that are not asked for it tend to skip missing fields silently, so a packing list with no dimensions or an invoice with no origin country passes without comment.
What a good report looks like for the example
A realistic report (illustrative) would give these rows, each of which you can confirm with a short sum.
- Invoice total does not add up. 2,520.00 + 1,320.00 + 960.00 + 165.00 = $4,965.00, but the invoice states $4,950.00. Difference $15.00. Fix before sending, since customs values the goods from this figure.
- Platter quantity mismatch. Invoice 150, packing list 5 cartons x 28 = 140. Ten pieces differ. At $6.40 each, that is $64.00 of value. Blocks shipment until someone counts what is in the cartons.
- Carton count mismatch. Packing list 20 + 16 + 5 + 2 = 43 cartons, invoice says 44. Check the booking and the marks on the boxes.
- Gross weight total. Per-carton: 20 x 14.5 = 290; 16 x 13.0 = 208; 5 x 12.0 = 60; 2 x 3.0 = 6. Sum 564 kg against a stated 565 kg. A 1 kg difference, but the declared figure must match what the scale and the booking say.
- Net weight. 20 x 12.8 = 256; 16 x 11.4 = 182.4; 5 x 10.5 = 52.5; 2 x 2.4 = 4.8. Sum 495.7 kg. The packing list gives no total net weight, so the report lists it as missing.
- HS code difference. Platters are 6912.00 on the invoice and 6911.10 on the packing list. Heading 6911 covers tableware of porcelain or china, and 6912 covers ceramic tableware other than porcelain or china, which is where stoneware sits, so the two documents are giving a different material for the same goods. Ask your broker which is right for what is in the box.
- Consignee form. "Ltd" against "Limited" and "Unit 4" against "Unit 4A". A different unit number is the kind of difference that gets a parcel redirected, so confirm with the customer's order.
Seven findings from two pages, of which only two (the platter count and the HS code) would normally change a decision about the goods. The others are clerical, and still worth fixing, because clerical differences are what cause a document set to be queried.
Rebuild the sums yourself
An AI tool can misread a digit, skip a row or round early. Rebuild the sums in a spreadsheet, which takes five minutes for a shipment this size. With the invoice lines in rows 2 to 5, quantity in column C and unit price in column D:
- Line total, in E2:
=C2*D2, copied down. - Invoice total:
=SUM(E2:E5), which returns 4,965. - Packing list cartons in column G, per-carton quantity in H, and gross weight per carton in I: pieces in J2 as
=G2*H2and gross weight in K2 as=G2*I2. - Totals:
=SUM(K2:K5)for gross weight and=SUM(G2:G5)for cartons. - Quantity difference, in L2:
=J2-C2. Anything other than zero is a mismatch to explain.
The point of doing this once is the pattern: any figure the AI reports as a difference is one you can re-derive with a formula. If the spreadsheet and the AI disagree, the spreadsheet is nearer the truth until you find why. For a general view of which AI tools suit export paperwork, see AI tools for shipping documents, and for the invoice that follows the same goods back on the buying side, matching supplier invoices to purchase orders uses the same line-by-line logic.
Extracting from PDFs: where the reading goes wrong
Most export documents arrive as PDFs, often scans or exports from an accounting package. AI tools can read them, and the reading is where silent errors begin. Watch for four problems. A zero read as the letter O, so a quantity of 1,200 appears as 1,2OO and the arithmetic fails. A merged table cell that puts the unit price into the wrong column. A multi-page invoice where the second page's header repeats and gets counted as a line. A decimal comma or a thousands separator read the other way, turning 1,200 into 1.2.
The control is a line count. Before you let the tool compare anything, ask: "How many product lines are on the invoice, and how many cartons on the packing list?" and check both against the pages. Then ask it to print the extracted table back to you, and compare that with the original on screen. This takes two minutes and removes a common source of false mismatches. If you can, work from the system that produced the documents rather than the PDF: an export to a spreadsheet gives the AI clean numbers and removes the reading step altogether.
When the mismatch is the buyer's, not yours
Some differences originate in the sales order. A customer asks for 150 platters, the warehouse packs 140 because stock ran out, and the invoice was raised from the order. The AI report shows a mismatch, but the cause is a short shipment that someone should have told the customer about. The corrective step is not to edit the packing list to match; it is to decide whether to ship 140 and invoice 140, or to hold the shipment. Having the report in front of you before the goods leave is what gives you that choice. A short email to the buyer follows:
Subject: Order [order number]: platter quantity
Hi [first name],
Your order was for 150 serving platters. We have 140 packed and ready, and the
remaining 10 will follow in about [number] days. We will invoice the 140 now
($896.00) and the remainder on dispatch. Please tell us today if you would
rather we hold the whole shipment.
[your name]
That 140 x $6.40 = $896.00 matches the corrected invoice line, so the paperwork and the message say the same thing. If you are working with a forwarder or broker, send them the corrected documents and the mismatch report summary at the same time. They can often tell you how a given difference would have been treated, which shapes what you check next time. For a view from their side, how customs brokers use AI for client updates and entry checks shows what they look for.
Descriptions: where vague wording hides a mismatch
Quantities and totals are easy to compare. Descriptions are harder, because two people describe the same carton differently. An invoice line that reads "ceramic items" next to a packing list that reads "stoneware mugs 350 ml, white" is not a numeric mismatch, but it is a problem: a customs officer reading the invoice cannot tell what the goods are, and the HS code cannot be tested against a description that says nothing. Ask the AI to rate each invoice description for whether it identifies the goods precisely enough to support its code, and to propose a clearer wording that you check against the product.
A before and after, using the example documents:
BEFORE
Invoice: "Ceramic items, assorted"
Packing list: "Stoneware mugs 350 ml white; stoneware bowls 15 cm; platters"
AFTER (agreed wording on both)
"Stoneware mug, 350 ml, white glaze"
"Stoneware bowl, 15 cm diameter"
"Stoneware serving platter, 30 cm"
"Printed paperboard gift box"
Use the same words in both documents, and in the same order, so the next comparison is mechanical. Where a trade term or a material matters for classification, such as porcelain against stoneware, state it. One caution: the AI may suggest a "better" description that makes the goods sound more valuable or more favourable for duty. Wording must describe what is in the box, not what would be convenient, so read every suggestion against the sample on your desk.
Volume and chargeable weight, a quick sum
Packing lists often carry carton dimensions, and the carrier charges on the larger of actual weight and volumetric weight. The divisor differs by carrier and mode, so take it from your forwarder's rate sheet. As an illustration with a divisor of 5,000, a 60 x 40 x 30 cm carton has a volume of 72,000 cubic centimetres and a volumetric weight of 72,000 / 5,000 = 14.4 kg. The mug carton weighs 14.5 kg gross, so actual weight governs, by 0.1 kg. A platter carton of 12.0 kg with the same dimensions would be charged at 14.4 kg, 20% above its real weight. Ask the AI to compute both figures for every carton type from the dimensions on the packing list and flag the cartons where volume governs. It is a check that turns a packing-list column into a pricing decision, and it catches dimension typos, such as 6 cm for 60 cm, which would otherwise understate the booking.
More than one invoice or more than one packing list
Mixed or split shipments multiply the places a mismatch can hide. Two invoices may cover one container, or one invoice may be split across two packing lists because the goods left on different days. Give the AI a short map first: "Invoice A covers cartons 1 to 30, invoice B covers cartons 31 to 43, packing lists P1 and P2 cover the same ranges." Then ask it to check each pair and also to confirm that no carton number appears twice and none is missing from the sequence. A carton numbered 17 twice, or a jump from 29 to 31, is a common sign of a late amendment that reached one document and not the other. Keep one master spreadsheet for the shipment and generate both documents from it where you can, because comparison catches errors, but a single source stops them being made.
Letters of credit: the bank reads the credit, not your intent
If the buyer pays by letter of credit, the bank checks your documents against the terms and conditions of the credit. A goods description that does not match the credit, or a unit price, party name or address that conflicts with it or with another document in the set, can be raised as a discrepancy. Discrepant documents have to be amended and resubmitted, which can delay payment and add bank fees. Ask the AI to compare your invoice not only with the packing list but with the credit's text, pasted in, and to list every phrase in the credit that the documents must repeat. Your bank or forwarder can tell you how strictly your credit will be read, and what a discrepancy would cost you.
Three other ways exporters use the same check
- A small food and drink exporter adds batch numbers and best-before dates, which must be identical on the packing list, the invoice and the labels. The prompt gains a check that each batch on the packing list appears on the invoice with the same quantity.
- A furniture exporter ships flat-pack items in several packages each, so the packing list shows "1 of 3, 2 of 3, 3 of 3". The check counts that every set is complete, and that the package count equals the invoice quantity multiplied by the packages per item.
- A spare-parts supplier has hundreds of lines. The AI is asked to look only for rows where the part number appears on one document and not the other, and for part numbers that differ by one character, which usually means a typo.
A routine that fits into a shipping day
- Prepare: export both documents to spreadsheet form, remove bank details, tax numbers and anything not needed for comparison.
- Compare: run the prompt and keep the table.
- Verify: rebuild totals with formulas and confirm each blocking item with the warehouse or the order.
- Correct: change the source documents, not the report, then run the comparison again until it shows no blocking items.
- Record: save the final report with the shipment file, together with the name of the person who approved it.
The AI is useful here because the work is repetitive and precise and the cost of a miss is out of proportion to the effort of a check. It does not replace your broker's view on classification, your bank's view on a credit or your own count of the cartons. If you would like a hand setting this routine up for the documents your business sends, an AI implementation consultation is where we would map it.
Invoice and packing list questions from small exporters
What is the difference between a commercial invoice and a packing list?
The invoice states what is sold and its price: parties, descriptions, quantities, unit prices, totals, currency and terms. The packing list states how it is packed: cartons, contents of each, weights, dimensions and marks. Both describe the same goods, so their quantities and details must agree.
Which weights should match between the documents?
Total net and gross weights, and the carton counts, should agree across the packing list, the invoice if it quotes them, and the transport booking. Gross weight is never lower than net weight, and the carton-level weights must add up to the totals you declare.
Do HS codes need to match on both documents?
Where both documents show a code, it should be the same for the same goods. The first six digits are shared internationally, and each country may add more digits, so confirm the full code your destination needs with your broker or the customs authority.
Can I upload documents with prices and addresses to an AI tool?
Prices and addresses are commercially sensitive. Use a plan that does not train on your content by default, remove bank details and tax numbers before upload, and keep the original documents as your record. The check only needs quantities, weights, codes and names.
Should I trust AI to read a scanned PDF of the documents?
Not on its own. Scans produce misread digits and merged columns, and the tool can silently skip a row. Compare the number of lines it read with the number on the page, and rebuild every total in a spreadsheet before relying on it.
Further reads
- FOB Price Calculation: An AI-Built Costing Sheet for Exporters — Build the price that ends up on the invoice.
- Can AI Check Customs Compliance? What a Person Must Still Verify — See what a person must still verify with customs rules.
- AI for Freight Business Analytics: Margin by Lane From a Spreadsheet — See which shipping lanes actually earn their margin.
- Find Overseas Suppliers With AI: Shortlists, RFQs and Red Flags — The buying side of the same shipment.
- How to Catch Duplicate Invoices and Payment Fraud With AI — Spot duplicate or altered invoices in your own records.
- AQL Sampling Plan: Pick Sample Sizes for Incoming Goods With AI — Work out a sample size and accept/reject numbers for an incoming lot, with a spreadsheet lookup you can test against the standard.
- Demurrage and Detention: AI Tracks Free Days and Drafts Disputes — A free-day tracker, an evidence checklist and AI-drafted dispute letters for forwarders who are tired of paying demurrage and detention bills unchallenged.
- Freight Damage Claim: AI Builds the Evidence Pack and Letter — An evidence checklist, a liability-limit sum, a deadline tracker and a claim letter drafted with AI, with a person checking and filing each claim.
- Freight Invoice Audit: AI Checks Carrier Bills Against Quotes — Turn a carrier quote and invoice into two tables, let AI list every difference, sort the accessorial charges and send the dispute from a weekly routine.
- SSCC Pallet Labels: Check Label Data Against the ASN With AI — Reconcile the SSCC list your label software printed against the ASN you sent, so a retailer's dock scanner never finds a mismatch.
- Shipper's Letter of Instruction: Fill It From the Order With AI — Field-by-field guide to the shipper's letter of instruction, with a prompt that fills it from an order and a forwarder checklist.
- AI for Exporters: Six Jobs From Finding Buyers to Paperwork — Six export jobs AI can take on, from buyer research to shipping documents, each with a tool, a prompt to copy and the check that catches errors.
- Export Declaration: What AI Can Pre-Check Before You File — Use AI to catch mismatched values, weights and descriptions across your shipping papers, and know which decisions stay with you or your broker.
- AI Tools and AI Development: The Complete 2026 Guide — the AI hub, including every tutorial in the AI-for-business series.
Sources: ICC Incoterms rules page (eleven rules), trade.gov pages on Harmonized System codes (six shared digits, country additions), Incoterms 2020 and letters of credit, the USITC Harmonized Tariff Schedule for headings 6911, 6912 and 4819.20, and general export-documentation practice. All figures in the example are illustrative.