Customs document automation
Tavnit reads customs paperwork — commercial invoices, packing lists, bills of lading, certificates of origin — and returns shipper, consignee, goods descriptions, weights and values as typed fields. An HS code Cleaner classifies goods to tariff codes during processing, so declarations are prepared from structured data rather than retyped.
Why this is painful
A single shipment generates a stack of documents that repeat the same facts in different layouts, and a customs declaration requires them reconciled and correct. The work is transcription plus classification, done under time pressure, where an error means a delayed shipment or a penalty.
Classification is the specialist part. Deciding the tariff code for a given description is judgement work that most extraction tools do not attempt at all, leaving it as a manual step after the automation finishes.
What to extract
| Field | Why it needs care |
|---|---|
| Shipper and consignee | Full legal names and addresses, which drive the declaration. |
| Goods description per line | The text the tariff classification is derived from — worth extracting verbatim. |
| HS tariff code | Classified from the description by a Cleaner during processing rather than looked up afterwards. |
| Quantity, net and gross weight | Weights are on the packing list while values are on the invoice, so the pair has to be reconciled. |
| Country of origin | Drives duty rates and preferential treatment. Frequently per line rather than per shipment. |
| Incoterms and declared value | Determines what is dutiable and who is responsible for what. |
| Container and B/L numbers | The keys that let you tie the document set back to one shipment. |
What makes customs & trade hard
Classification is the hard part, and it is built in
Most document tools stop at extraction and leave tariff classification as manual work. Tavnit ships an HS code Cleaner that classifies goods from the extracted description during the run, so the specialist step happens inside the pipeline rather than after it.
One shipment, several documents, one truth
The commercial invoice carries values, the packing list carries weights, the bill of lading carries the container. A Collection routes each document type to its own flow, and a shared Bucket keyed on the shipment reference reassembles them into a single picture.
Errors here are penalties, not corrections
A misdeclared code or value is a customs issue rather than an accounting one. This is a use case where review on every declaration is proportionate, and where the append-only audit trail is genuinely useful when you are asked to show how a classification was arrived at.
How the pipeline handles it
- Collections — Routes invoices, packing lists and bills of lading from one inbox to the right flow automatically.
- Cleaners — Classifies goods to HS tariff codes, converts currencies and standardises weights and units.
- Splitters — Shipment paperwork usually arrives as one combined PDF. Splitters separate it before extraction.
- Human in the Loop — Review each declaration before submission, with a record of who approved which classification.
Common questions
- Does it actually assign HS tariff codes?
- Yes. An HS code Cleaner classifies goods from the extracted description during the run, so classification happens inside the pipeline rather than as a manual step afterwards. Declarations remain your responsibility, which is why review before submission is recommended.
- Can it handle a full shipment document set?
- Yes. A Collection routes commercial invoices, packing lists and bills of lading to their own flows, and results keyed on the shipment reference reassemble into one record.
- What if the paperwork arrives as one combined PDF?
- A Splitter separates the combined file into its constituent documents first, so each is extracted by the flow built for it.
Other document types
Try it on one document
Build a flow, send a real customs & trade through it, and see what comes back. Free credits to start.
Start free