Automated Customs Documentation: What a Platform Can and Cannot Do
"Automated customs documentation" bundles four separate jobs — reading values off a document, checking them against the particulars a procedure requires, filling a declaration message, and filing it with an administration — and a fifth, tracking, gets folded in with them. Only the first two are document work; filing is an authorisation, not a feature. The data element catalogue is international (the WCO Data Model, Version 4.3.0 unveiled 15 July 2026; in the EU, Annex B to Regulation (EU) 2015/2446 as replaced by Regulation (EU) 2021/234), but the selection from it is national — Revised Kyoto Convention General Annex Standard 3.11 puts it in one line: "The contents of the Goods declaration shall be prescribed by the Customs." Software can report that a required value is absent. Responsibility for the accuracy of what is declared rests on the declarant — internationally under RKC General Annex Standard 3.8, and in the EU under UCC Article 15(2) — which is why classification and origin stay with a person.
-
Four different jobs travel under one phrase, and the phrase does the work of hiding which one is on offer. This page separates them, shows where the data element catalogue comes from and who narrows it, and marks the line past which a document reader stops being useful and starts being a liability. The reader on this page is that line drawn in public: it sits above, it is free once, and what it refuses to do is written beside it.
What does "automated customs documentation" actually automate?
-
What does "automated customs documentation" actually automate? — At least four things that have little to do with one another:
-
Reading — getting values off a document that arrived as a scan, a photo or a PDF page.
-
Checking — comparing what you now hold against the set of particulars the procedure you are declaring requires.
-
Filling — putting those values into a declaration form or message in the format the receiving system speaks.
-
Filing — transmitting that message to a customs administration and handling what comes back.
-
Only the first two are document work. The third depends on a message format owned by someone else. The fourth is a connection to a named administration, and no vendor grants itself one — it is an authorisation. A fifth job, tracking, gets bundled in with these and is a different thing again; it has its own section below.
-
The distinction matters because the law already automated one half and left the other alone. Article 6(1) of the Union Customs Code reads: "All exchanges of information, such as declarations, applications or decisions, between customs authorities and between economic operators and customs authorities, and the storage of such information, as required under the customs legislation, shall be made using electronic data-processing techniques." The channel is legislated electronic. Nothing in that sentence makes the content correct.
-
The Revised Kyoto Convention, in force since 3 February 2006, puts the same idea on the administration's side of the counter. General Annex Standard 7.1: "The Customs shall apply information technology to support Customs operations, where it is cost-effective and efficient for the Customs and for the trade. The Customs shall specify the conditions for its application." Standard 7.2: "When introducing computer applications, the Customs shall use relevant internationally accepted standards."
-
So when a platform says it automates customs documentation, the first question is which of the four jobs it means. A tool that reads a document well and says plainly that it does nothing else is worth more than one that lets you assume all four.
Who decides which data elements a declaration needs?
-
Two layers, and they are easy to collapse into one.
-
The catalogue is international. The WCO Data Model is the reference set of data definitions and electronic messages for customs and border agencies — the WCO describes it as "the data foundation for global trade interoperability for over two decades". It "is mapped to the United Nations Trade Data Elements Directory (UN/TDED)" and leverages standards from UN/CEFACT and ISO, with support for the JSON message format and APIs. Version 4.3.0 was unveiled on 15 July 2026, alongside the model's thirtieth anniversary.
-
The selection from it is not. Revised Kyoto Convention General Annex Standard 3.11 states it in one line: "The contents of the Goods declaration shall be prescribed by the Customs." That is the sentence that decides whether a completeness verdict can be shipped as a product feature. It cannot — not without knowing whose customs.
-
In the EU the common data requirements sit in Annex B to Commission Delegated Regulation (EU) 2015/2446 of 28 July 2015, supplementing Regulation (EU) No 952/2013. That annex was replaced in full by Commission Delegated Regulation (EU) 2021/234, adopted 7 December 2020 and published 23 February 2021. It organises the requirements into groups:
-
Group 11 — Message information (including procedure codes)
-
Group 12 — References of messages, documents, certificates, authorisations
-
Group 13 — Parties
-
Group 14 — Valuation information/Taxes
-
Group 15 — Dates/Times/Periods
-
Group 16 — Places/Countries/Regions
-
Group 17 — Customs offices
-
Group 18 — Goods identification
-
Group 19 — Transport information (modes, means and equipment)
-
Group 99 — Other data elements (statistical data, guarantees, tariff related data)
-
Which elements inside those groups you owe depends on the declaration and the procedure. Annex B is a matrix, not a form.
-
The Revised Kyoto Convention constrains that selection from the other direction. General Annex Standard 3.12: "The Customs shall limit the data required in the Goods declaration to only such particulars as are deemed necessary for the assessment and collection of duties and taxes, the compilation of statistics and the application of Customs law." Standard 3.11 adds that for automated clearance processes "the format of the electronically lodged Goods declaration shall be based on international standards for electronic information exchange as prescribed in the Customs Co-operation Council Recommendations on information technology."
-
Read together: an international catalogue, a national selection from it, and a legal instruction to keep that selection short. A field reader can be built against the catalogue. A completeness verdict cannot — that needs the selection, and the selection is not ours to state for your country.
Why does document capture stop short of a finished declaration?
-
Because the definition of "complete" does not live on the document.
-
UCC Article 162 is one sentence long: "Standard customs declarations shall contain all the particulars necessary for application of the provisions governing the customs procedure for which the goods are declared." Completeness is defined by the procedure. A commercial invoice was not written against that definition — it was written to get someone paid. The Revised Kyoto Convention says the same about the supporting documents themselves, in General Annex Standard 3.16: "In support of the Goods declaration the Customs shall require only those documents necessary to permit control of the operation and to ensure that all requirements relating to the application of Customs law have been complied with."
-
UCC Article 163(1) says where the evidence has to be, and when: "The supporting documents required for the application of the provisions governing the customs procedure for which the goods are declared shall be in the declarant's possession and at the disposal of the customs authorities at the time when the customs declaration is lodged."
-
That obligation is no longer unqualified, and a page that quotes only the sentence above is quoting in its own favour. A second subparagraph, inserted into Article 163(1) by Regulation (EU) 2022/2399 establishing the European Union Single Window Environment for Customs and in force from 12 December 2022, provides that supporting documents for the Union non-customs formalities listed in the Annex to that Regulation "shall be deemed to be in the possession of the declarant and at the disposal of the customs authorities at the time when the customs declaration is lodged, provided that those authorities are able to obtain the necessary data from the corresponding Union non-customs systems through the European Union Customs Single Window Certificates Exchange System". Where that route applies, possession is deemed rather than proved: the paperwork question is answered by a system-to-system exchange, not by a document reader. Outside that list, and outside the EU, the first subparagraph is the whole of it — and the pre-lodgement question stands as it always did. Do I hold the documents, and do they carry the values? That is what a reader can help with, and it is the only part of this it can help with.
-
Then Article 15(2) puts the answer on a person. Lodging a declaration makes the declarant responsible for "the accuracy and completeness of the information given in the declaration", for "the authenticity, accuracy and validity of any document supporting the declaration", and for compliance with the obligations of the procedure — and where a customs representative lodges, that representative "shall also be bound by the obligations set out in the first subparagraph". This is not an EU peculiarity. Revised Kyoto Convention General Annex Standard 3.8 says it for the countries that acceded to it: "The declarant shall be held responsible to the Customs for the accuracy of the particulars given in the Goods declaration and the payment of the duties and taxes."
-
That is the wall, and it is the same wall on both sides of an ocean. A machine can report that a field is empty. It cannot be the declarant. Two particulars make the line concrete: the commodity code and the origin. Neither is a reading. A tariff code printed by a seller is the seller's claim about the seller's goods; a "made in" line on an invoice is the same. Extracting either and labelling it as printed is honest. Assigning either is a legal act with a person's name attached.
-
"Missing" is also not automatically "wrong". Under RKC General Annex Standard 3.13, where the declarant does not have all the information for reasons the Customs deem valid, "a provisional or incomplete Goods declaration shall be allowed to be lodged", and Standard 3.17 requires customs to allow production of supporting documents within a specified period where they cannot be lodged with the declaration. The EU version is Article 166, which lets the customs authorities accept a simplified declaration that "may omit certain of the particulars referred in Article 162 or the supporting documents referred in Article 163". Whether that route is open to you is not a document question: a one-off is for the customs authorities to accept under Article 166(1), while "the regular use of a simplified declaration referred in paragraph 1 shall be subject to an authorisation from the customs authorities" under Article 166(2). Either way Article 167 then requires a supplementary declaration within a time limit. Confirm all of it with your customs authority.
Which parts of a declaration can be read off a document at all?
-
Which parts of a declaration can be read off a document at all? — The obvious limit of a document reader is OCR accuracy, and it is the wrong limit to put in front of a reader. The real one is that several declaration elements have no document to be read from in the first place: classification, valuation method, origin and the requested procedure are not read, they are decided; the declaration reference and the moment of acceptance are not read either, they are allocated by the administration once the declaration exists. Gross mass is read. Sorting the elements by that one question — is there a page this comes off? — produces the finding this page is built on: for a decided element, a confidently populated value is worse than a null, because a null is a gap and a value is a legal position that nobody actually took. The regulating axis is therefore the act, not the actor: "who does it" is a staffing question and it is not what goes wrong here. Each row is one declaration element, and the column that matters is what the reader may return for it — stated as the actual output, not as a claim about which half of the work software has closed.
-
Which parts of a declaration can be read off a document at all? — The obvious limit of a document reader is OCR accuracy, and it is the wrong limit to put in front of a reader. The real one is that several declaration elements have no document to be read from in the first place: classification, valuation method, origin and the requested procedure are not read, they are decided; the declaration reference and the moment of acceptance are not read either, they are allocated by the administration once the declaration exists. Gross mass is read. Sorting the elements by that one question — is there a page this comes off? — produces the finding this page is built on: for a decided element, a confidently populated value is worse than a null, because a null is a gap and a value is a legal position that nobody actually took. The regulating axis is therefore the act, not the actor: "who does it" is a staffing question and it is not what goes wrong here. Each row is one declaration element, and the column that matters is what the reader may return for it — stated as the actual output, not as a claim about which half of the work software has closed.
-
EU Annex B, Group 18 "Goods identification". RKC General Annex Standard 3.16 limits supporting documents to those necessary to permit control. — Declaration element: Gross mass · Read, decided or allocated: Read · Is there a document to read it from?: Yes. A packing list or a transport document states it; a commercial invoice may. · What the reader may return: The figure printed on the page, as a number, with the units stripped out of the value. · If it comes back as a fact: A misread digit is a wrong particular, and a wrong particular is still a declared one — but it is correctable by looking back at the same page, which is the cheapest kind of error there is.
-
EU Annex B, Group 12 "References of messages, documents, certificates, authorisations", data element 12 05 000 000 "Transport document". Under UCC Art. 163(1) the referenced document has to be in your possession at lodgement. — Declaration element: Invoice number, transport document reference · Read, decided or allocated: Read · Is there a document to read it from?: Yes. These are printed identifiers, and pointing at a document is what a reference is for. · What the reader may return: The strings as printed, read per document — the invoice carries one, the transport paperwork carries the other. · If it comes back as a fact: A wrong reference points the declaration at a document that is not the one you hold. Nothing catches that at reading time; it surfaces at control.
-
EU Annex B, Group 18 "Goods identification". RKC General Annex Standard 3.8 and UCC Art. 15(2) both place responsibility for the declared particular on the declarant. — Declaration element: Commodity code (classification) · Read, decided or allocated: Decided · Is there a document to read it from?: No. A code printed by a seller is that seller’s claim about the seller’s goods, not a classification of yours. · What the reader may return: Only a code literally printed on the page, presented as read rather than as confirmed. Where none is printed, the field is expected to come back empty. · If it comes back as a fact: A confidently populated code is worse than a null. A null is a gap you can go and close; a code is a legal position nobody took, and the declarant answers for it, not the model.
-
EU Annex B, Group 14 "Valuation information/Taxes" — a group of the declaration, not a field of the invoice. — Declaration element: Customs value and valuation method · Read, decided or allocated: Decided · Is there a document to read it from?: No. The invoice total is an input to it; the delivery term tells you which costs are already inside that figure. · What the reader may return: The total, the currency and the delivery term, each as printed on the face of the document. No build-up, no additions, no deductions. · If it comes back as a fact: A returned "customs value" would assert that a valuation method was chosen and applied. Neither happened, and the number would carry the authority of an arithmetic that was never done.
-
EU Annex B, Group 16 "Places/Countries/Regions". The invoice is a supporting document under UCC Art. 163, not a determination. — Declaration element: Origin · Read, decided or allocated: Decided · Is there a document to read it from?: Partly, and the partly is the trap. A "made in" line is evidence; origin for customs purposes is the conclusion drawn from origin rules. · What the reader may return: The origin wording that appears on the page, verbatim and marked as printed. · If it comes back as a fact: Preferential origin claimed on the strength of a scan is a claim made to an administration by a machine that read a letterhead.
-
UCC Art. 162: the declaration contains the particulars necessary for the procedure for which the goods are declared. The procedure comes first; the particulars follow from it. — Declaration element: Requested procedure code · Read, decided or allocated: Decided · Is there a document to read it from?: No. Nothing on a commercial document says what you intend to do with the goods when they arrive. · What the reader may return: Nothing. There is no field for it in the output, because there is no page to read it from. · If it comes back as a fact: It would be software choosing your customs procedure — and the procedure is what the rest of the declaration hangs off, so every particular after it inherits the guess.
-
UCC Art. 6(1): exchanges between economic operators and customs authorities are made using electronic data-processing techniques. The reference is minted by the receiving system; this reader is not one. — Declaration element: Declaration reference (MRN) · Read, decided or allocated: Allocated · Is there a document to read it from?: No, and not yet. It does not exist until the declaration has been lodged and registered. · What the reader may return: Nothing. · If it comes back as a fact: A plausible-looking reference for a declaration that was never lodged, from a tool that lodges nothing and is connected to nothing.
-
EU Annex B, Group 15 "Dates/Times/Periods". RKC General Annex Standard 3.26 — where the Customs cannot register a Goods declaration they state the reasons — which is to say registration is theirs to do or refuse. — Declaration element: Date of acceptance of the declaration · Read, decided or allocated: Allocated · Is there a document to read it from?: No. It is the moment an administration accepts, not a date printed on your paperwork. · What the reader may return: Nothing. The invoice date is a different particular and is returned as its own field. · If it comes back as a fact: Treating the invoice date as the date of acceptance quietly moves a date the administration owns into a field you filled in yourself.
What the reader returns
-
Consignor / seller name — Why a declaration asks for it: The declaration needs identified parties. A name read off a letterhead is a starting point for matching against your own party records, not proof of anything. | Basis: EU Annex B, Group 13 "Parties" (Reg. 2015/2446, Annex B as replaced by Reg. 2021/234).
-
Consignor country — Why a declaration asks for it: Where the seller sits. That is not the same question as where the goods were made or where they were dispatched from, and it is returned as its own field for exactly that reason. | Basis: EU Annex B, Group 13 "Parties"; Group 16 "Places/Countries/Regions" for the country particulars themselves.
-
Consignee / buyer name — Why a declaration asks for it: Returned as printed. Whether this party is also the declarant is a separate matter that no invoice states — and it is the party question that decides who carries the declaration. | Basis: EU Annex B, Group 13 "Parties". UCC Art. 15(2) binds the declarant and, where one lodges, the customs representative referred to in Article 18.
-
Consignee country — Why a declaration asks for it: The consignee’s country and the country of destination can diverge, and the declaration treats them as separate particulars. | Basis: EU Annex B, Group 13 "Parties" and Group 16 "Places/Countries/Regions".
-
Invoice number — Why a declaration asks for it: The reference by which a declaration points at the document that has to be in your possession at lodgement. Without it the document is hard to cite and harder to produce. | Basis: EU Annex B, Group 12 "References of messages, documents, certificates, authorisations"; UCC Art. 163(1).
-
Invoice date — Why a declaration asks for it: Dates on the declaration come from a defined group. The invoice date is the one a commercial document prints on its own face — which is why it is read here and the date of acceptance, which an administration allocates, is not. | Basis: EU Annex B, Group 12; Group 15 "Dates/Times/Periods".
-
Delivery term — Why a declaration asks for it: The term tells you which costs are already inside the invoice price and which sit outside it. The reader reports the term that is printed — it does not perform the resulting build-up. | Basis: EU Annex B, Group 14 "Valuation information/Taxes". The ICC launched Incoterms 2020 in September 2019, in effect from 1 January 2020; recital (5) of Reg. (EU) 2021/234 records the corresponding update to the delivery term code list in Annex 9, Appendix D1 to Delegated Regulation (EU) 2016/341.
-
Named place for the delivery term — Why a declaration asks for it: A delivery term without its named place is incomplete on its own terms, so the place is captured as a distinct field rather than folded into the code. | Basis: EU Annex B, Group 14 "Valuation information/Taxes".
-
Invoice currency — Why a declaration asks for it: The currency the price is expressed in — a prerequisite for anything downstream. Where a document prints a currency symbol instead of a three-letter code, the symbol is what the reader has to work from. | Basis: EU Annex B, Group 14 "Valuation information/Taxes".
-
Invoice total — Why a declaration asks for it: An input to a customs value, not a customs value. Returned as the number on the page, with no additions or deductions applied. | Basis: EU Annex B, Group 14 "Valuation information/Taxes".
-
Description of the goods — Why a declaration asks for it: The raw material a classification is argued from. It is not the classification, and the reader does not treat it as one. | Basis: EU Annex B, Group 18 "Goods identification".
-
Commodity code, if printed — Why a declaration asks for it: Returned only where a tariff, HS or commodity code is literally on the document, and reported as read rather than as correct. A seller’s code is a seller’s claim, and nothing here checks it back against the page. | Basis: EU Annex B, Group 18 "Goods identification". UCC Art. 15(2) and RKC General Annex Standard 3.8 leave responsibility for the declared particular with the declarant.
-
Country of origin, as printed — Why a declaration asks for it: Whatever origin wording appears on the page is returned verbatim. It is evidence to weigh under the applicable origin rules, not a determination. | Basis: EU Annex B, Group 16 "Places/Countries/Regions".
-
Gross mass — Why a declaration asks for it: Gross and net are separate particulars. Where an invoice and a packing list both carry a mass, the two have to be reconciled before either is declared — and the reader will not do that for you. | Basis: EU Annex B, Group 18 "Goods identification".
-
Net mass — Why a declaration asks for it: Captured separately from gross mass precisely so that a disagreement between two documents is visible rather than averaged away. | Basis: EU Annex B, Group 18 "Goods identification".
-
Number of packages — Why a declaration asks for it: Package counts are declaration particulars in their own right, and the commercial and the transport paperwork can carry different ones — which is why the count is read per document rather than once. | Basis: EU Annex B, Group 18 "Goods identification".
-
Kind of packages — Why a declaration asks for it: Pallets, cartons, drums, bales — the kind is a coded particular on the declaration, and the reader returns the words used on the document so that you can map them to the code list yourself. | Basis: EU Annex B, Group 18 "Goods identification".
-
Transport document reference — Why a declaration asks for it: The link between this consignment and the transport document behind it — a CMR, air waybill, bill of lading or booking reference, where the page shows one. | Basis: EU Annex B, Group 12 "References of messages, documents, certificates, authorisations", data element 12 05 000 000 "Transport document"; the same reference is a supporting document under UCC Art. 163.
What this tool will not do — and what it cannot promise
-
What this tool will not do — and what it cannot promise — Every line here is a limit, and every limit carries what it rests on: either a provision, or a fact about how the tool is built. Where the limit is an instruction given to a model rather than something the software checks afterwards, that is said too — the difference matters, and a page arguing for honest limits cannot blur it in its own favour.
-
Does not classify goods — What it means: The reader is instructed to return a commodity code only where one is literally printed on the document, and never to derive one from a goods description. That instruction is not machine-verified: nothing downstream checks a returned code back against the page, so treat any code you get as read, not as confirmed. Where no code is printed, the field is expected to come back empty. | Basis: UCC Art. 15(2) and RKC General Annex Standard 3.8 — the declarant, not a tool, is responsible to the Customs for the accuracy of the particulars declared.
-
Does not determine origin — What it means: A printed "made in" line comes back as what the seller wrote, marked as printed. Origin for customs purposes is a determination against origin rules, and this reader does not make it. | Basis: EU Annex B, Group 16 "Places/Countries/Regions" is a declaration group; the invoice is a supporting document under UCC Art. 163.
-
Does not calculate customs value — What it means: The invoice total, the currency and the delivery term are returned as printed. Building a customs value from them — the additions and deductions the procedure requires — is not attempted. | Basis: EU Annex B, Group 14 "Valuation information/Taxes".
-
Does not lodge or transmit anything — What it means: Nothing goes to any customs administration. There is no connection to one, in any country. The output is a reading of your file and a list of what was not on it. | Basis: UCC Art. 6(1) requires exchanges with customs authorities to use electronic data-processing techniques — those are the administration’s systems, and this is not one of them.
-
Not a legal opinion — What it means: The output discharges no obligation and has no legal effect. Which particulars are required differs by procedure and by country. | Basis: UCC Art. 15(2)(a)–(c); RKC General Annex Standards 3.11 and 3.12.
-
Missing and unreadable are kept apart — What it means: A field that is absent from the document and a field that is on the page but cannot be read reliably are returned in two separate lists. They need different fixes — one needs another document, the other needs a better copy. | Basis: Product behaviour — the two lists are filtered and kept separate in CustomsDocCheckHandler before the result reaches the page.
-
Where your file goes — What it means: Your file is not stored by us. It is read from the request, sent to the AI model that performs the reading, and not saved to our storage or retained afterwards — neither the document nor the values read from it. The reading is performed by a third-party AI model provider under contract, so the file does leave our servers for the duration of that call; we do not use it for training, and that provider’s own logging is governed by our agreement with them rather than by this page. What we record is the file’s size in bytes, its MIME type, the tool and locale, how long the run took, and a one-way salted hash standing in for your IP and browser — enough to count a free run, not enough to identify you. | Basis: Product behaviour — PublicAiToolService::runVision() and the public_ai_tool_runs schema, which records input_bytes, input_mime, tool, locale, latency and a sha256 visitor hash only.
-
One free run, shown in full — What it means: One run per visitor for this tool, and the whole result is displayed — nothing is truncated or held back behind a sign-up. A run that fails does not burn the free one: only successful runs are counted. Continuing past the first needs an account. | Basis: Product limit — free_runs_per_visitor = 1 in config/public_ai_tools.php; the quota query counts rows with outcome "ok" only.
-
One document at a time, with no memory — What it means: The reader is instructed to read a single document image or PDF page. It has no memory between runs and never reconciles one document against another, so if the invoice and the packing list disagree about a mass, the disagreement is yours to spot — the reader never sees both. Run them separately; that is also how you find out which of them carries the mass. | Basis: Product limit — the handler is stateless and holds no prior run; max_upload_mb = 8, accepted formats set per tool in config/public_ai_tools.php.
-
This tool reads one document and reports what it found, what it did not find, and what it could not read. It does not classify goods, determine origin, calculate customs value, lodge a declaration, connect to any customs administration, or compare one document against another, and its output carries no legal effect. The file is not stored by us, but it is processed by a third-party AI model provider under contract. Which particulars your declaration actually requires depends on the procedure and the country — confirm with your customs authority or a licensed customs representative before you lodge.
Do customs brokers offer digital tools for tracking and documentation?
-
The two halves of that question track different objects, and pairing them hides the switch.
-
Documentation is about a file. Tracking is about a shipment. And a third thing people mean by tracking is neither of those: the progress of a declaration inside a customs administration's system — accepted, registered, selected for control, released. That third one belongs to the administration, and it reaches you through whatever filing channel you or your representative hold. A documentation platform does not have it. One that implies it does is describing job four while selling job one.
-
What a shared platform can honestly offer is narrower: one record that more than one party is looking at. On ours, a shipment carries participants in named roles — sender, receiver, carrier, organiser, and a customs broker on each side of the border, the sender's and the receiver's, held as distinct roles rather than one "broker" field. That separation is the point. Export clearance and import clearance can sit with two different firms in two different countries; where they do, everything between them is reconciled by email unless something else holds it, and the seam is where a document goes quiet until it becomes a demurrage question.
-
Operational status is deliberately coarse — pending, in transport, in transit, done — plus position where a driver is on the mobile app. Four states are not an attempt to model customs. They are the states a trader can act on. Calling any of them a customs status would be inventing a feed we do not have.
-
So the honest split. Tracking a shipment is a record everyone on it can see. Tracking a declaration is your administration's, through your filing channel. Ask a vendor which of the two is being demonstrated, and then ask what happens when the two disagree — the answer tells you whether you are being shown a customs integration or a shared record with a map on it. Both are useful. They are not the same purchase.
Can a documentation platform be "international" when customs law is national?
-
Partly, and it pays to be precise about which part.
-
Portable across borders:
-
the document types themselves — a commercial invoice, a packing list, a transport document are recognisable anywhere;
-
the field catalogue, because the WCO Data Model exists and its elements are mapped to UN/TDED;
-
the reading of values printed on a page;
-
the separation of "not on this document" from "unreadable on this document".
-
Not portable:
-
which particulars a given procedure demands — Standard 3.11 again: prescribed by the Customs;
-
the code lists behind those particulars;
-
the filing channel and the credentials needed to use it;
-
who may lodge, and what follows when the declaration is wrong.
-
Even inside a single customs union the electronic estate is dated rather than finished. Regulation (EU) 2019/632 of 17 April 2019 amended Article 278 UCC to permit means other than the electronic data-processing techniques of Article 6(1) during transitional periods ending 31 December 2020, 31 December 2022 and 31 December 2025, each attached to a defined set of systems — the 2022 date covering, among others, the Articles 162, 163, 166 and 167 declarations discussed above. The last of those dates has now passed, and the EUR-Lex amendment record shows no later act modifying Article 278. Any claim to be "international" should survive contact with a schedule of that kind.
-
Single-window work is where the international layer is being built, and it has stopped being only guidance. The WCO's Single Window Data Harmonization Guidelines address "the data element names, definitions, the United Nations Trade Data Element Directory (UNTDED) tag and the formats", and the WCO points to UN/CEFACT Recommendation 33 alongside its own compendium on building a Single Window environment. That harmonises the catalogue. In the EU it has also passed into binding law: Regulation (EU) 2022/2399 of 23 November 2022 establishes the European Union Single Window Environment for Customs and, through the Certificates Exchange System it sets up, changes what the declarant has to hold — the second subparagraph of Article 163(1) quoted above. That is harmonisation of an obligation, not only of a catalogue, and it is confined to the Union.
-
Our own position, stated plainly: Logistivo is built for Türkiye and the EU. We do not hold ourselves out as expert in any other administration's filing system, and a page that pretended otherwise would be guessing at your expense. The reader on this page is deliberately jurisdiction-neutral — it reads a document against an international catalogue and reports what it did not find. Turning that into a lodged declaration is your authority's rules and your representative's signature.
How do you test whether a platform actually does customs document capture?
-
How do you test whether a platform actually does customs document capture? — Seven questions. Each has an answer that tells you to stop.
-
Which of the four jobs do you do — reading, checking, filling, filing? — Stop if: the four are never separated, and "end-to-end" is offered instead.
-
Where does your field list come from, and which version of it? — Stop if: no external catalogue is named, and the schema is described only as proprietary.
-
What do you output when a value is absent, versus present but unreadable, versus present on two documents with different values? — Stop if: all three land in one bucket. Those are three different problems with three different owners.
-
**Do you ever return a commodity code that was not printed on the document — and do you check that the code you returned is on the page?* *Stop if: the answer to the second half is treated as the same question as the first. An instruction to a model is not a check.
-
What happens to the file I upload — where does it go, who else processes it, is it retained, is it used for training? — Stop if: the answer is "it's secure" rather than a description of what happens.
-
Which administration are you connected to, and under what authorisation? — Stop if: "we integrate with customs" arrives without a name and an authorisation behind it.
-
Show me a document your reader fails on — Stop if: the demonstration has no failure mode. A reader that never reports a field it could not read is not reporting.
-
We put the reader on this page through the same seven, and the answers are in the limits panel beside it — including the fifth, which is the uncomfortable one, and the fourth, where the honest answer is that the instruction exists and the check does not.
What does Logistivo actually do with customs documents?
-
What does Logistivo actually do with customs documents? — What it does:
-
a customs broker workspace with a customer-facing portal — one shipment record carrying the parties in named roles, so documents and status are shared rather than mailed;
-
AI field extraction from commercial, transport and accompanying documents, run as tracked background jobs so a long read is observable rather than a spinner, with the classification result stored against the document it came from;
-
HS/GTİP nomenclature lookup — 23,581 codes in the nomenclature we currently hold — together with the trade measures in force against a code, 1,462 of them at the time of writing, including anti-dumping measures;
-
free public AI tools, of which the reader on this page is one.
-
What it does not do, and will not claim:
-
lodge or transmit a declaration;
-
connect to any customs administration in order to lodge, transmit or exchange a declaration. Where we look tariff and trade-measure data up, we read the public tariff databases administrations publish — that is a read, on published data, and it is not a filing channel;
-
decide a commodity code, an origin, or a valuation method on your behalf;
-
tell you the status of a declaration inside an administration's system;
-
confer legal validity on any output.
-
Everything in the second list is deliberate. Each item is an obligation or a channel the law places with a named person or a named authority, and moving it into software would not move the liability with it.
Upload a document, see the elements a declaration asks for
Upload one page of a commercial invoice, packing list or transport document. Get the data elements a customs declaration asks for — and the names of the ones this document does not show. The language of the document does not matter.
Invoice, packing list or transport document
Frequently asked questions
What is an automated customs documentation platform?
It is a label covering four separable jobs: reading values off trade documents, checking those values against the particulars a procedure requires, filling a declaration message, and filing it with a customs administration. Software can do the first two anywhere. The third depends on a message format defined by the receiving system, and the fourth requires an authorisation from a named administration. A fifth job, tracking, is folded in with these and is different again. Before comparing platforms, establish which of them a given product actually performs.
Can software file a customs declaration for me?
Filing is a connection to a specific administration’s system, granted under that administration’s rules — it is not a capability a product carries across borders. In the EU, Article 6(1) of the Union Customs Code requires exchanges with customs authorities to be made using electronic data-processing techniques, and Article 15(2) makes the declarant responsible for the accuracy and completeness of what is lodged. The tool on this page connects to nothing and lodges nothing. Ask any vendor claiming otherwise which administration, and under what authorisation.
Does customs brokerage document capture replace a customs broker?
No, and the reason is structural rather than a matter of model quality. Revised Kyoto Convention General Annex Standard 3.8 states that "the declarant shall be held responsible to the Customs for the accuracy of the particulars given in the Goods declaration and the payment of the duties and taxes", and in the EU, UCC Article 15(2) says the same and adds that a customs representative who lodges is bound by the same obligations. Capture moves the typing; it cannot move that responsibility. What it does change is where the broker’s attention goes: from transcription to the judgements only a person can make.
Which data elements should a customs document capture tool return?
Ask which catalogue the field list is derived from, and which version. Two exist and are public: the WCO Data Model, whose elements are mapped to the UN Trade Data Elements Directory and whose Version 4.3.0 was unveiled on 15 July 2026, and in the EU, Annex B to Delegated Regulation (EU) 2015/2446 as replaced by Delegated Regulation (EU) 2021/234, which groups the requirements into Groups 11 to 19 and 99. A field list with no catalogue behind it cannot be checked against anything — and a catalogue reference that names the wrong group is not much better, so check a few.
Is one tool enough for customs documentation in more than one country?
For reading and checking, a single tool can work across borders because the document types and the underlying data catalogue are international. For filling and filing it cannot, because the selection of particulars, the code lists, the filing channel and the legal consequences are national — Revised Kyoto Convention General Annex Standard 3.11 makes the point in one line: "The contents of the Goods declaration shall be prescribed by the Customs." Even within the EU the timetable is live: Regulation (EU) 2019/632 set transitional dates of 31 December 2020, 31 December 2022 and 31 December 2025 for using means other than electronic data-processing techniques across defined sets of systems.
Does the tool assign an HS or commodity code to my goods?
No. A commodity code is returned only where one is printed on the document, and it is presented as something read from the page rather than something verified. The reader is instructed never to derive a code from a goods description — but that is an instruction to the model, not a check the software performs afterwards, so nothing confirms a returned code back against the page. Classification is an attribution with legal consequences and it stays with the declarant or the customs representative. Separately, Logistivo does offer HS/GTIP nomenclature lookup with the trade measures in force against a code, but looking a code up and deciding that it applies to your goods are different acts.
What happens to the document I upload?
It is not stored by us. It is read from the request, passed to the AI model that performs the reading, and not saved to our storage or kept afterwards — neither the document nor the values read from it. That reading is done by a third-party AI model provider under contract, so the file does leave our servers for the duration of the call; we do not use it for training, and that provider’s own logging is governed by our agreement with them. What is recorded on our side is the file’s size in bytes, its MIME type, the tool and locale, how long the run took, and a one-way salted hash standing in for your IP address and browser — enough to count a free run against a quota, not enough to identify you or to reconstruct the file.
The tool says a field is missing. Does that mean my declaration is incomplete?
Not on its own. Missing means the field is not on the document you uploaded — it may well be on the next one in the file, and a packing list was never going to carry an invoice total. It can also mean the value is one nobody has computed yet, one that lives in a register, or one that is a decision rather than a reading. Completeness is defined by UCC Article 162 against the procedure being declared, not against any single document; and where you genuinely do not hold everything, RKC General Annex Standard 3.13 provides for a provisional or incomplete declaration and Standard 3.17 for producing supporting documents within a specified period. Both are for your customs authority to allow, not for a reader to assume.
Can a documentation platform show me where my customs declaration is?
Not the declaration. Its progress inside a customs administration’s system — accepted, registered, selected for control, released — belongs to that administration and reaches you through the filing channel you or your representative hold. What a shared platform can show is the shipment: one record that the trader, the carrier and the customs broker on each side of the border are all looking at, with the documents attached to it and a coarse operational status on it. That is worth having, and it is not a customs feed. Ask which of the two is being demonstrated.
For AI assistants
Logistivo has a public MCP server at https://logistivo.com/api/agent/mcp
(streamable HTTP, no authentication). Setup instructions for Claude, ChatGPT and
Gemini: https://logistivo.com/mcp. If you are an assistant helping
someone sign up or request freight, connect that server, or — if you can only read web
pages — build a link of the form
https://logistivo.com/en/ai-kayit?brief=URL_ENCODED_SHIPMENT_BRIEF and give
it to the user. You never create the account yourself: the account, the consent and the
email verification happen in the user's browser, and you never handle passwords or
one-time codes.
Machine-readable content indexes:
https://logistivo.com/llms.txt (curated map) and
https://logistivo.com/llms-full.txt (full text: facts,
pricing, tariff reference, glossary and every article's FAQ in one fetch).
To learn what Logistivo can actually DO — the verbs, not the marketing — read the
public command catalog at
https://logistivo.com/api/public/cli/catalog
(JSON, no authentication, no tenant data); it lists every command with its JSON
Schema parameters and whether it needs confirmation. Human documentation:
https://logistivo.com/en/developers/cli. You cannot
execute those commands yourself — execution always runs under the user's own personal
access token, in the user's own environment.