Customs clearance

Customs packets checked before the declaration is filed

Documind splits mixed shipment packets, reads each document and checks invoices, packing lists, origin certificates and HS codes against each other. Your team reviews only the values that cannot be proven. Clean data goes to your declaration software or ERP.

  • GDPR and KVKK aligned
  • SOC 2 Type II in progress
  • Runs on-prem

The problem

  1. 01

    One shipment. Many documents. Many formats.

    Every shipment packet holds 5 to 10 documents that must match: the commercial invoice, the packing list, the bill of lading or air waybill, and a certificate of origin such as an EUR.1 or an A.TR. Each one is keyed again into the declaration, and every re-key is a chance for a typo in a weight, a value or a tariff code.

  2. 02

    A small mismatch turns into a customs query.

    The invoice says 1,240 kg, the packing list says 1,262.5 kg. The consignee name differs by one word. Customs asks questions and the release slips. Post-clearance audits can find the same gap months later.

  3. 03

    Every day at the terminal costs money.

    After free time, container detention and demurrage are charged per box per day, and reefers cost more. Late corrections to a declaration add days to that clock. Speed comes from getting the data right the first time.

One packet, checked as a whole

One shipment, five documents, one set of checks

Documind reads the whole packet and checks the documents against each other. A mismatch stops the value from being approved and names the rule that failed.

  • invoice.total declaration.customs_value

    The invoice total matches the customs value on the declaration draft, after the freight and insurance adjustments you define.

  • packing_list.gross_weight bill_of_lading.gross_weight

    Gross weights agree within the tolerance you set, for example 0.5%.

  • bill_of_lading.container_no packing_list.container_no

    Same container number on both documents, and the ISO 6346 check digit passes.

  • invoice.line.hs6 declaration.tariff_code

    The first six digits of the national tariff code match the HS code on the invoice line.

  • a_tr.issue_date presentation_date

    The A.TR is presented within four months of its issue date.

  • invoice.buyer bill_of_lading.consignee

    Buyer and consignee are the same legal entity; name variants go to a reviewer.

Documents Documind reads

Documents in a typical packet, what each one is for, and the fields Documind extracts.
Document Purpose Key fields
Commercial invoice Sets price and value for customs valuation; shows parties, terms and currency.
  • Invoice number and date
  • Seller and buyer, tax IDs
  • Incoterm and place
  • Currency and total
  • Line items
  • Origin per line
  • Freight and insurance
  • HS code per line
Packing list Physical content of the consignment; must match invoice counts and weights.
  • Packing list number
  • Packages and type
  • Marks and numbers
  • Net weight
  • Gross weight
  • Volume (CBM)
  • Line mapping to invoice
Certificate of origin Declares the country of origin for tariff or non-preferential purposes.
  • Certificate number and issuer
  • Issue date
  • Exporter and producer
  • Consignee
  • Country of origin
  • Goods and HS (6-digit)
  • Gross weight
EUR.1 movement certificate Preferential origin proof for agricultural and ECSC goods and for FTA trade.
  • Certificate number
  • Issuing authority and date
  • Exporter
  • Consignee
  • Countries
  • Goods description
  • Gross mass
  • Invoice reference
A.TR movement certificate Proves free circulation under the EU–Türkiye customs union (not origin); valid four months.
  • Serial number and QR code
  • Issuing body and date
  • Exporter and consignee
  • Goods description
  • Gross weight and packages
  • Invoice number and date
Bill of lading Sea transport contract and document of title.
  • B/L number and type
  • Shipper, consignee, notify party
  • Ports of loading and discharge
  • Vessel and voyage
  • Container and seal numbers
  • Packages and gross weight
  • Freight terms
Air waybill (AWB) Air transport contract.
  • MAWB / HAWB number
  • Shipper and consignee
  • Airports
  • Flight and date
  • Pieces and gross weight
  • Chargeable weight
  • Nature of goods
CMR consignment note Road transport contract for international road freight.
  • CMR number
  • Sender and consignee
  • Places of loading and delivery
  • Packages and marks
  • Gross weight
  • Carrier and vehicle plate
Customs declaration (draft) The declaration your team prepares in the declaration software.
  • Regime and procedure code
  • Importer or exporter and declarant
  • Countries of origin and dispatch
  • Invoice value and currency
  • Tariff code per item
  • Net and gross weight
  • Preference document reference
  • Transport document reference

Checks that matter here

  • HS and tariff code format

    A tariff code in the wrong format, or an HS code that differs between invoice, origin certificate and declaration.

  • ISO 6346 check digit

    A mistyped container number on the B/L or the packing list.

  • Tax ID check digits

    A wrong tax ID for the importer, the exporter or the declarant.

  • IBAN checksum

    A wrong bank account on the invoice.

  • Sums and arithmetic

    Line items that do not add up to the invoice total.

  • Dates and validity windows

    An A.TR outside its four-month window, or an invoice dated after the B/L.

Cross-document validation

Example rules and what happens when they fail. Values are sample data.
Rule Example Outcome
Gross weight: packing list vs B/L Packing list 1,262.5 kg, B/L 1,240.0 kg. Difference 1.8%, tolerance 0.5%. Veto
Invoice arithmetic Sum of lines 48,250.00 vs invoice total 48,520.00. Difference 270.00 EUR. Veto
HS consistency Invoice line HS 845959, declaration draft tariff code starts with 845950. Veto
Origin consistency Certificate of origin says DE; one invoice line says CN. Veto
A.TR validity window A.TR issued 2 Oct 2026; presentation planned 15 Mar 2027, more than four months later. Veto
Party name match Invoice buyer "Atlas Machinery Industries Ltd." vs B/L consignee "Atlas Machinery Industries Limited". Needs review
Incoterm and freight Incoterm FCA, but freight charges appear on the invoice. Customs value needs a person to confirm. Needs review
Package count Packing list 4 cartons, invoice 4 pieces, B/L 4 packages. Approved

How it works

  1. Send the packet

    Forward the email, drop the file into an SFTP folder or S3 bucket, or call the API. Scans, phone photos and multi-page PDFs all work.

  2. Split and classify

    Documind finds where each document starts and ends and labels it: invoice, packing list, origin certificate, A.TR, EUR.1, B/L, AWB, CMR and more.

  3. Extract with evidence

    Three different AI models read each value and must agree. Each value comes with its evidence: the exact place on the page, how certain the models are, and which sources agree.

  4. Check across documents

    Weights, values, parties, origin, incoterms and HS codes are compared across the packet. Your own rules run on top. A value that fails a check is stopped and is not approved.

  5. Review and deliver

    Reviewers see only the routed fields, with the reason. Approved data goes to your declaration software, TMS or ERP by webhook, SFTP, S3 or SAP IDoc output.

Source · Split · Classify · Extract · Rules · Review · Deliver

When it is not sure, it asks

bill_of_lading.consignee

Needs review

Reason: The consignee name differs from the invoice buyer: the legal form is written out in full.

Candidate values

  • Atlas Machinery Industries Ltd. Invoice, page 3
  • Atlas Machinery Industries Limited B/L, page 9

Sample data

What you get

  • Mixed-packet splitting

    One PDF, many documents.

    Documind finds each document in a combined file. A 40-page scan with an invoice on page 3, a packing list on pages 4 to 6 and a CMR on page 9 becomes separate, labelled documents.

  • Certificate-aware extraction

    A.TR, EUR.1 and other origin certificates, read the same way.

    Documind reads certificate numbers, issue dates, origin criteria and validity. It checks that an A.TR is presented within its four-month window. An A.TR proves free circulation, not origin, and the rules treat it that way.

  • HS and tariff code validation

    Format and consistency, checked as code.

    Documind validates the national tariff code format and checks that the HS code agrees across the invoice, the origin certificate and the declaration draft. A licensed person still decides the classification.

  • Cross-document rules you approve

    Describe the rule. Approve the code.

    Describe a rule such as "packing-list gross weight matches the B/L within 0.5%". The AI assistant writes the validation code, which is compiled and checked before you accept it. A failed rule shows both values and both pages.

  • New forms without a training project

    Describe the document and give examples.

    Add a supplier certificate, a phytosanitary certificate or a conformity certificate by describing its fields and adding a few examples. Documind generates the schema, the extraction prompt and the validation code for you to approve.

  • Your servers, your record

    Your data center. Your tamper-proof record.

    Documind runs in your data center, including air-gapped, on AI models you own. Every decision and every edit is saved in a tamper-proof record. Each entry is linked to the one before it, so a change cannot go unnoticed, and RFC 3161 timestamps (a trusted time stamp that proves when each step happened) are added.

Sample output

A five-document import packet after the checks: two values approved with evidence, two stopped by rules, one routed to a reviewer.

response.json Sample data
{  "packet_id": "PKT-2026-0412-0093",  "status": "needs_review",  "documents": [    { "type": "commercial_invoice", "pages": [3] },    { "type": "packing_list", "pages": [4, 5] },    { "type": "a_tr", "pages": [7] },    { "type": "bill_of_lading", "pages": [9] },    { "type": "customs_declaration_draft", "pages": [11] }  ],  "fields": {    "invoice.total_value": {      "value": "48250.00 EUR",      "status": "approved",      "evidence": [        { "type": "citation", "page": 3, "bbox": [612, 1128, 884, 1162] },        { "type": "model_agreement", "models": 3, "agrees": true },        { "type": "rule", "id": "line_items_sum", "pass": true }      ]    },    "bill_of_lading.container_number": {      "value": "DMXU4821935",      "status": "approved",      "evidence": [        { "type": "citation", "page": 9, "bbox": [88, 702, 340, 731] },        { "type": "rule", "id": "iso6346_check_digit", "pass": true }      ]    },    "packing_list.gross_weight_kg": {      "value": 1262.5,      "status": "veto",      "evidence": [        { "type": "citation", "page": 5, "bbox": [540, 1090, 940, 1150] },        { "type": "rule", "id": "gross_weight_match_bl", "pass": false, "detail": "B/L 1240.0 kg, difference 1.8%, tolerance 0.5%" }      ]    },    "declaration_draft.gtip": {      "value": "8459.50.00.00.00",      "status": "veto",      "evidence": [        { "type": "rule", "id": "hs6_matches_invoice", "pass": false, "detail": "invoice line HS 845959" }      ]    },    "bill_of_lading.consignee": {      "value": null,      "status": "needs_review",      "reason": "Name variant: 'Atlas Machinery Industries Limited' vs invoice buyer 'Atlas Machinery Industries Ltd.'"    },    "a_tr.issue_date": {      "value": "2026-10-02",      "status": "approved",      "evidence": [        { "type": "citation", "page": 7, "bbox": [60, 1010, 500, 1340] },        { "type": "rule", "id": "atr_within_4_months", "pass": true, "detail": "valid until 2027-02-02" }      ]    }  }}
The invoice total and the container number are approved with a citation and a passed rule. The packing-list gross weight and the declaration tariff code are stopped because a cross-document rule failed. The B/L consignee goes to a reviewer because the name is a variant of the invoice buyer. Illustrative output with fictional values. The field names and the structure show the format; they are not a customer result.

What the evidence shows

  1. invoice.total_value Approved

    Cited on page 3. All three AI models agree, and the line items add up to the total.

  2. bill_of_lading.container_number Approved

    The ISO 6346 check digit passes, so the container number is structurally valid.

  3. packing_list.gross_weight_kg Veto

    1,262.5 kg vs 1,240.0 kg on the B/L: 1.8% apart, above the 0.5% tolerance. The rule stops the value.

  4. declaration_draft.gtip Veto

    The first six digits (845950) differ from the invoice HS code (845959).

  5. bill_of_lading.consignee Needs review

    No value is approved. The reviewer sees both names and both pages.

Outputs and deployment

Documind prepares validated data for your declaration software, TMS or ERP. It connects through built-in connectors and an open API.

Built-in connectors and outputs

  • Email (IMAP)

    Forward packets to a customs inbox; each message starts a run.

  • SFTP and S3

    Pick up scans from a folder or bucket and deliver results back.

  • Google Drive

    Watch a shared folder for new packets.

  • Signed webhooks

    Push approved data to your declaration software, TMS or ERP.

  • SAP IDoc output

    Write validated invoice data as an IDoc, for example INVOIC02.

  • JSON, CSV, Excel, XML, PDF

    Export results in the format your team already uses.

Any system that can call a REST API or receive a webhook can use Documind: declaration software, ERPs, TMS, RPA and automation tools. SDKs are available for Java, .NET, Python, TypeScript and Go.

Runs in your data center, including air-gapped, on open-weight models. No document leaves your network and no third-party AI API is called.

Documind does not submit declarations to national customs systems (for example BİLGE in Türkiye, or NCTS and ICS2 in the EU). It prepares and checks the data; your declaration software or your broker submits it.

Outcome targets

Targets, not customer results. We measure them with you in a pilot.

Fields typed by hand
Exceptions only
Target: most fields pre-filled above your threshold, so reviewers see exceptions only.
Mismatches that reach customs
Caught before filing
Target: cross-document checks catch weight, value, party and origin mismatches before the declaration is filed.
Packet turnaround
Minutes, not hours
Target: a 10-page packet ready for review in minutes. We measure the time from email receipt to approved data in your pilot.

Context

Frequently asked questions

Which documents does Documind read for customs clearance?

Commercial invoices, packing lists, certificates of origin, EUR.1 and A.TR certificates, bills of lading, air waybills, CMR notes and customs declaration drafts. You can add other forms, such as phytosanitary or conformity certificates, by describing their fields and giving examples.

Does Documind submit declarations to customs systems?

No. Documind prepares and checks the data. Your declaration software, your broker or your customs team submits the declaration. Documind delivers the data by webhook, SFTP, S3, file export or SAP IDoc output.

Does Documind choose the HS code?

No. Documind validates the national tariff code format and checks that the HS code agrees across the invoice, the origin certificate and the declaration draft. A licensed person decides the classification.

How does it handle A.TR and EUR.1 certificates?

Documind reads the certificate number, issue date, parties, goods and invoice reference. A rule checks that an A.TR is presented within four months of its issue date. The rules also reflect that an A.TR proves free circulation, not origin.

Does it work with scanned and handwritten documents?

Yes. It reads scans, phone photos and PDFs with mixed layouts. When a value cannot be proven, for example because a stamp covers a digit, Documind does not guess: it routes the field to a reviewer with the reason.

What happens when two documents disagree?

The rule that compares them fails and the value is not approved. The reviewer sees both values, both pages and the rule name, and decides which value is right.

Can we set our own validation rules?

Yes. Describe the rule in plain language, for example "packing-list gross weight matches the B/L within 0.5%". The AI assistant writes the validation code, which is compiled and checked before you accept it.

Where is our data processed?

In your own data center, including air-gapped, on AI models you own. No document leaves your network and no third-party AI API is called. Documind is GDPR and KVKK aligned; SOC 2 Type II is in progress.

Map your process with us. Go live in the demo.

In the demo we look at how your team checks shipment packets today. Then we put your first customs workflow live, on your own systems.