Commercial Invoice to Excel for Customs Entry — HS Codes, Weights, and Incoterms Without Typing
Most invoice OCR tools were built for domestic accounts payable, so they miss the fields customs actually checks. Name the columns you need for commercial invoice to Excel and the AI reads HS codes, Incoterms, country of origin, weights, and package counts wherever each one sits on the page, across 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
Stop retyping HS codes, weights, and Incoterms from each supplier's form. Type the column names you need once and the AI finds every value wherever it sits on the page, because it reads each label for what it is rather than where it lands. That approach, called Custom Column Extraction, means one setup covers every exporter's format with no per-supplier configuration.
Why Commercial Invoices Break Standard OCR, and How to Get Every Trade Field Out
One wrong or missing HS code, origin, or Incoterm is enough to hold a shipment at the border. Yet those are exactly the fields that move around on every exporter's form, and the ones standard OCR tools, built for tidy domestic invoices, read least reliably.
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, because 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, and the AI finds them wherever they sit. 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 field names apply to both, and the tool produces identical structured output regardless of layout, currency, or language for numeric fields.
How a Commercial Invoice Becomes an Entry-Ready Spreadsheet
Customs brokers filing entries, importers clearing goods, and freight forwarders reconciling shipment files all run the same workflow: drop the invoices in, name the fields you need, and export one clean sheet for customs entry preparation, landed-cost calculation, or trade compliance.
Upload your commercial invoices
Drop in a batch of PDF, scanned, or photographed invoices from any supplier. A machine-generated PDF from a German exporter's ERP and a photographed paper invoice from a Vietnamese trading company can go into the same batch, and each page processes in 5–10 seconds. Formats can be mixed freely within a single upload.
Type the columns you need
Enter the field names your customs workflow needs, such as Invoice Number | Exporter | Consignee | HS Code | Country of Origin | Incoterms | Line Total | Currency. For a calculated 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. Your commercial invoice to Excel output puts each product line on its own row with invoice-level fields repeated, ready for ACE entry filing, landed-cost calculation, duty assessment, letter-of-credit documentation, 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, because the AI reads each field label for what it means, 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, so 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, so 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, so 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 written as "FOB Shanghai" or "CIF Los Angeles", and 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, so "FOB" means something different from "FOB Shanghai". 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, and 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 calculated 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, so suppliers submit their invoices directly to your processing queue without needing an account.
Does the tool extract shipping details like the bill of lading number, net and gross weight, and the number of packages?
Yes. Add columns such as Bill of Lading / AWB Number, Net Weight, Gross Weight, and Number of Packages, and the AI pulls each value from wherever the exporter printed it. Weight and package counts usually sit in a summary block near the totals or beside the shipping marks, and the tool reads them the same way it reads line item fields. Nothing is inferred: if a shipment document omits a value, that cell stays blank.