Extract Commercial Invoice Data into Excel — Customs and Trade Documentation from Any Export Format
Most invoice OCR tools were built for domestic accounts payable — they miss the fields that customs actually checks. Column-name extraction reads HS codes, Incoterms, and country of origin wherever they appear on the page, so the same six column names work across supplier invoices from Shenzhen, Stuttgart, or São Paulo.
5–10s per page · Up to 99% accuracy on printed text · No templates required
What You Can Extract from a Commercial Invoice
Type the column names you need — the AI locates each value anywhere on the page by understanding what it means, not where it sits. This approach, called Custom Column Extraction, means you define the output fields once and they work across every exporter's format without per-supplier configuration.
Why Commercial Invoices Break Standard OCR — and How Semantic Extraction Handles Them
A commercial invoice is not just a bill. It is a customs declaration — and the fields that determine whether your shipment clears or gets held appear in a different place on every exporter's form. Standard OCR tools, built for domestic invoices with predictable layouts, fail at precisely the fields customs cares about most.
Where Template-Based OCR Falls Short
HS codes wander across layouts. One supplier puts tariff codes in a column next to each line item. Another prints them in a separate "Harmonized Code" box below the total. A third labels them "HTS" in the document header. Template-based tools need a new configuration for each variant — and customs brokers on Reddit describe this inconsistency as the single biggest friction point in document processing.
Country of origin is structurally ambiguous. Some invoices state origin once in the header. Others list it per line item — because the 20 items in one shipment may come from 5 different countries. A template that reads "Country of Origin" as a single header field will miss per-line declarations entirely, leaving a customs broker to cross-check each row manually against the PDF.
Incoterms + named place form a compound value that OCR splits. "FOB Shanghai" is not two separate pieces of data — the named place is part of the trade term and determines when legal responsibility transfers. Standard OCR reads it as two disconnected tokens and may even drop the city name, which is the one piece a customs entry cannot function without.
How Column-Name Extraction Handles Trade Fields
You name the fields — the AI finds them by meaning. Type HS Code | Country of Origin | Incoterms | Line Total and the tool reads the document the way a customs professional would. It understands that an HS code might sit in a product table column, a header field, or a separate box — and finds it there, regardless of position.
Per-line and per-invoice fields coexist in one output. Define invoice-level columns (Invoice Number, Exporter, Currency) alongside line-level columns (Product Description, HS Code per line, Country of Origin per line). The AI extracts each line item as its own row and repeats invoice-level fields on every row — so the spreadsheet stays usable when filtered, sorted, or imported into a customs management system.
One column setup works across every exporter. A Vietnamese textile manufacturer and a German machinery supplier use completely different invoice formats. The same six column names apply to both — the tool produces identical structured output regardless of layout, currency, or language for numeric fields.
From Mixed Supplier Invoices to a Single Structured Spreadsheet
If you process commercial invoices from overseas suppliers — for customs entry preparation, landed-cost calculation, or trade compliance — here is what the workflow looks like.
Upload your commercial invoices
Drop in a batch of PDF, scanned, or photographed invoices from any supplier — a mix of machine-generated PDFs from a German exporter's ERP and a photographed paper invoice from a Vietnamese trading company can go into the same batch. Each page processes in 5–10 seconds, and formats can be mixed freely within a single upload.
Type the columns you need
Enter field names that match your customs workflow — Invoice Number | Exporter | Consignee | HS Code | Country of Origin | Incoterms | Line Total | Currency. For a computed column, write something like Declared Value Check (Invoice Total - Sum of Line Totals) — the AI performs the calculation during extraction and outputs any discrepancy directly.
Download the structured output
Export to XLSX, CSV, or JSON. Each product line becomes one row with invoice-level fields repeated — ready for ACE entry filing, landed-cost calculation, duty assessment, or reconciliation against packing lists and bills of lading. Google Sheets users can use the sidebar add-on to extract results directly into an active sheet without leaving Sheets.
When It Works Best — and When to Review Results
Accuracy is high for standard commercial invoices. A few specific conditions are worth knowing before processing a large batch — especially when customs compliance is at stake.
When it works best
Machine-generated PDFs from supplier ERPs or trade platforms. Digitally created invoices with a clear text layer extract with near-perfect accuracy across all fields — including per-line HS codes, Incoterms, and declared values.
Standard printed invoices with mixed languages. Commercial invoices that mix English field labels with product descriptions in the exporter's language (Chinese, Vietnamese, German, etc.) are handled — the AI reads field labels semantically, so language mixing does not block extraction.
One column setup, applied to mixed supplier batches. Upload invoices from 20 different countries in a single batch. The same column definitions extract the fields you need from all of them — the output is one unified Excel file, one row per line item, regardless of format differences.
Worth a spot-check
Handwritten corrections on printed invoices. Exporters frequently hand-write corrections to quantities, values, or HS codes on printed commercial invoices. The AI attempts to read these, but accuracy drops for heavy cursive or light pencil — review handwritten amendments against the original.
Scanned invoices with heavy stamp overlays. Customs stamps, certification seals, or freight forwarder stamps that overlap with printed fields can reduce recognition confidence. When the AI is uncertain about a value, it flags it — spot-check flagged cells before using them in a customs entry.
The tool extracts what is on the page — it does not classify or validate customs data. If a supplier prints an incorrect HS code or omits a country of origin, the tool extracts what is present. Customs classification, tariff validation, and compliance checks remain a human review step. The tool makes the evidence easier to inspect; it does not certify the filing.
Frequently Asked Questions
Can I extract HS codes from commercial invoices when they appear in different columns on different exporters' forms?
Yes. The tool uses column-name extraction — you type HS Code as a column name and the AI locates it anywhere on the page by understanding what it means, not by matching a fixed position. Whether the code appears next to each product line, in a separate table column labeled "Harmonized Code," or inside a header field, the same column definition works across all suppliers. No per-supplier configuration is needed, and you can mix invoices from 20 different exporters in a single batch.
How does the tool handle Incoterms when they're written as "FOB Shanghai" or "CIF Los Angeles" — does it extract the full term?
Yes. Add an Incoterms column and the AI captures the complete term including the named place, exactly as written on the page. The named place is part of the trade term — "FOB" means something different from "FOB Shanghai" — so the tool preserves both components. If the Incoterm is written with an abbreviation only, the tool extracts what is present. It does not infer or guess the named place from other document fields.
Can I extract line items with per-line country of origin and HS code — and do invoice-level fields repeat on each row?
Yes. Define columns for both levels — Invoice Number | Exporter | Consignee | Currency for the invoice header, and Product Description | HS Code | Country of Origin | Quantity | Unit Price | Line Total for each product line. The AI extracts each line item as its own row and repeats the invoice-level fields on every row. A 10-line commercial invoice produces 10 output rows, each carrying full invoice context — so the spreadsheet remains usable when filtered by HS code or origin, or imported into a customs entry system.
What happens when the declared currency on a commercial invoice is different from my reporting currency?
The tool extracts the currency as stated on the invoice — it does not perform currency conversion. Add a Currency column to capture the invoice currency, and a separate Exchange Rate column if the invoice shows a conversion rate. For automated conversion at the declared-value level, use a Computed Column in your extraction setup — for example, Declared Value USD (Line Total × 0.14) would multiply every line total by a fixed rate during extraction. The rate itself must be supplied by you; the tool does not fetch live exchange rates.
Can I batch process commercial invoices from 20 different suppliers into one consolidated Excel file?
Yes. Upload all 20 invoices at once — they can be different file formats (PDF, JPG, PNG) from different countries, with different layouts, currencies, and languages. The same column definitions apply to the entire batch. The output is one merged Excel file with all line items from all suppliers, ready for customs entry preparation, landed-cost analysis, or ERP import. For teams that collect commercial invoices from overseas suppliers, the Collection Link feature lets you generate a shareable upload link — suppliers submit their invoices directly to your processing queue without needing an account.