How to Reconcile Country of Origin
on EU Supplier Invoices
A supplier invoice can carry one origin statement at the bottom of the page and several different origins in the goods lines. The statement describes the document. Customs assesses the goods. Most of the reconciliation work sits in that gap.
The fix is a line-level register: one row per invoice line, carrying the country, the proof behind it, and the page it came from. Once that register exists, Intrastat, the customs entry and the audit file draw from the same rows instead of being rebuilt three times.

Key Takeaways
- Line nine is where an "EU origin" footer stops being an answer, because customs assesses the goods line and never the invoice.
- Two origin answers sit on every line, and a single country-of-origin column can only hold one of them.
- EUR 2,200 is what a missing origin looks like when the country rows do not add up to the 14-line invoice total.
A Document-Level Origin Is a Claim About the Invoice
One origin printed once on a fourteen-line invoice says little about line nine. Supplier invoices consolidate. A distributor in Rotterdam can ship German pumps, Vietnamese shoes and Turkish fittings on one document, then print "EU origin" in the footer because most of the value is European. The footer is a statement about the invoice as a whole. The customs declaration, the Intrastat line and the preference claim are all assessed at a finer grain.
EU customs law treats origin as a mandatory element of the declaration for release for free circulation, and it places the responsibility for getting it right on the declarant. The European Commission's guidance on non-preferential origin is explicit: the declarant should hold information on the processing carried out in the last country of production. A supplier's footer does not transfer that responsibility. The same line-grain problem appears when the entry is prepared from a broker's packet. Extracting customs declaration data breaks down when that packet mixes formats.
Intrastat has the same shape. The declaration is built per commodity line, not per invoice, and the origin field sits beside the commodity code, net mass and value. A single origin for a mixed invoice either overstates one country or hides the others.
| Invoice lines | What the footer says | What the goods are | What the line needs |
|---|---|---|---|
| 1 to 4 | EU origin | Pumps made in Germany | DE, with a line marking or supplier confirmation |
| 5 to 9 | EU origin | Shoes made in Vietnam, shipped from a Dutch warehouse | VN, not NL. Dispatch is not origin |
| 10 to 12 | EU origin | Fittings assembled in Turkey from Chinese parts, A.TR attached | The non-preferential origin after the substantial transformation test, plus a separate preference answer |
| 13 and 14 | EU origin | Components made in Poland | PL |
The Turkish lines are the ones that expose a common shortcut. An A.TR certificate proves that goods are in free circulation in the EU-Turkey customs union. It does not prove where they were made. The European Commission's customs union guidance defines the A.TR through customs status, not origin. A file that uses the A.TR as the origin answer has answered a different question.
The complaint is easy to find. A 2025 r/supplychain thread on country-of-origin data described "a lot of data inaccuracy in the mix", from origin to missing or wrong HS codes.
The invoice is the container. The line is the unit that customs, Intrastat and a preference claim all assess.
A Line Needs Two Origin Answers, Not One

Non-preferential origin and preferential origin are separate determinations, and one "country of origin" column cannot hold both. Non-preferential origin decides the MFN duty rate, anti-dumping duties, quotas, sanctions, origin marking and the origin field on the Intrastat declaration. Preferential origin decides whether goods qualify as originating under a specific trade agreement so a lower rate can be claimed.
The rules differ, so the answers can differ. Under the Union Customs Code, non-preferential origin for goods produced in more than one country is the country of the last substantial transformation. A preferential claim uses the product-specific rule in the agreement, which may be a change of tariff heading, a value-added threshold, a weight test or a specific process. A machine assembled in Turkey from Chinese components can be Turkish for non-preferential purposes and still fail the value-added test in a particular agreement.
That is why the line record needs two answers and a clear label for each:
- Non-preferential origin: the country used for the customs duty rate, anti-dumping measures and Intrastat.
- Preference claimed: yes or no, and if yes, under which agreement.
- Preferential origin or party: the country or party whose originating status is claimed.
- Proof reference: the statement, certificate or importer's knowledge that supports the claim.
Putting the FTA answer into the Intrastat field is a real error. So is using the non-preferential country as the preference answer. The first can report a party code where a country is required. The second can claim a rate that the proof does not support.
Intrastat and the MFN rate use non-preferential origin. An FTA rate uses the agreement's rule. They are allowed to disagree.
The Line Record Carries More Than a Country
A country code is the last field on the row, not the first, because it means nothing without the line identity, value, classification and proof around it. The register below is the minimum that survives a broker query and an audit request. It is wider than a spreadsheet of country names, and narrower than a full ERP item master.
| Field group | Fields | Why the row fails without it |
|---|---|---|
| Identity | Supplier legal name, invoice number, invoice date, line number, description as printed | You cannot join the row to the AP record, the broker file or the audit sample. Two suppliers can use the same invoice number. |
| Money and measure | Quantity, unit price, line value, net mass, printed invoice total | No tie-out, no Intrastat mass, no way to split a mixed line by value. |
| Classification | HS chapter and heading (two and four digits), CN8 where the supplier provides it | No product-specific rule lookup and no Intrastat commodity code. The supplier's code is a candidate, not your declaration. |
| Non-preferential origin | Origin as printed, normalized country code, evidence tier, source page | The duty rate, anti-dumping exposure and Intrastat line all depend on it. |
| Preference | Claim flag, agreement, preferential origin, proof type, REX or approval number, statement text verbatim | A rate is claimed without proof that covers the line. |
| Status | Verified, missing, or query sent; confirmed by; date | The same gap gets chased on every shipment, and nobody can show when it was closed. |
Four fields cause most of the failures. The origin country is often written as "EU", which is not a country code, or inferred from the supplier's address, which is not where the goods were made. The HS code is often given at four digits when the declaration needs eight, and it reflects the supplier's export classification rather than your import classification. The first two digits are the chapter, which points to the product-specific rule; the four-digit heading narrows it. The REX or approval number is treated as a checkbox, even though it identifies an exporter rather than proving that the goods qualify. The statement text is summarized or retyped, when the wording is prescribed and a paraphrase is not evidence.
The statement requirement is where otherwise careful teams improvise. The text of a statement on origin is set out in Annex 22-07 of the UCC Implementing Regulation, and the exporter is expected to use it, not a version edited for readability. Access2Markets points to that annex and to the EU database where a REX registration can be checked. Capturing the paragraph with the country name and the wording intact is what makes a later comparison possible.
A row with a country and no proof reference is a guess with good formatting.
Record Where the Country Came From

Two rows can both say "VN" while one is supported by a line marking and the other by a ship-from address. The country value alone does not tell an auditor which one it is. The evidence tier does.
| Tier | Source | How to use it |
|---|---|---|
| 1 | Country printed against the goods line, or "Made in" inside the line description | Strongest. Use it for the entry and the Intrastat row when it is present. |
| 2 | Statement on origin or supplier's declaration scoped to the product | Supports a preference claim. Record the document reference and the products it covers. |
| 3 | Packing list, EUR.1, export declaration, mill or processing certificate | Document evidence. Read it before deciding a line has no origin signal. |
| 4 | Item master or a previous shipment from the same supplier | Reuse only with the date and the person who confirmed it. Suppliers change sources. |
| 5 | Ship-from address or the supplier's registered address | Not origin. Use it as a lead for a query, never as the value. |
Default to the highest tier the line actually supports, and record the tier in its own column. If tier 5 is the only thing available, the row is missing, not solved. The same rule applies when the invoice footer and the line disagree: the line marking wins, because it is attached to the goods.
Conflicts need a written rule. A statement on origin can exclude specific products with the phrase "except where otherwise clearly indicated". If the exclusion covers a line, the blanket sentence at the top does not cover that line. Two sources at the same tier that name different countries are a query, not a coin toss. Freeze the value, keep both source references, and record who is resolving it.
Country codes need the same discipline. Intrastat and customs systems use a controlled list, not free text. EU institutions use EL for Greece and UK for the United Kingdom, while ISO 3166 uses GR and GB. The EU country vocabulary documents those exceptions. "EU" itself is not a country of origin. Keep the raw string the supplier printed in one column and the normalized code in another, so a mapping decision can be reviewed later.
The source tier is what turns a country value into evidence.
REX Is One Proof, Not the Proof
The proof that supports a preferential claim depends on the agreement, the exporter's registration and the consignment value, so a REX field on every row can be both empty and correct. REX is the registered exporter system used for the EU's Generalised Scheme of Preferences, the Overseas Countries and Territories and certain bilateral agreements. Other agreements still use EUR.1 certificates, approved-exporter declarations or importer's knowledge.
| Proof | Who issues it | When it applies | What the row needs |
|---|---|---|---|
| Statement on origin under REX | Registered exporter | Agreements that use REX, including GSP and parts of the EU's bilateral network | REX number, prescribed text, date, products covered |
| Invoice or origin declaration | Approved exporter, or any exporter below the value threshold in some schemes | Agreements that still use approved-exporter declarations | Authorisation number where required, text, signature if required |
| EUR.1 movement certificate | Customs of the exporting country | Agreements that use certificates rather than self-declaration | Certificate number, date, item coverage |
| Importer's knowledge | Importer | EU-Japan, EU-New Zealand and the EU-UK Trade and Cooperation Agreement | Records that support the claim; no supplier statement is required |
| A.TR movement certificate | Turkish exporter, endorsed by Turkish customs | EU-Turkey customs union | Not an origin proof. The row still needs a non-preferential origin answer |
The value threshold is easy to misread. Under the EU's proof of origin rules, an exporter that is not registered may make out a statement on origin for consignments of originating products with a total value up to EUR 6,000. Above that, the statement has to come from a registered exporter for the arrangements that use REX. The threshold is a condition of the statement, not a discount on the origin test.
A registered exporter number also does not prove that the goods meet the rule. It proves that the exporter is registered. The statement has to be made out by that exporter, for the products concerned, using the prescribed text. A statement copied onto a broker's invoice by a trader who is not the exporter is a different document with the same words.
The cost of a small wording error is not small. A 2024 case described by forwarder Ritra Cargo involved a clothing shipment from Bangladesh where the REX declaration omitted the word "Union". The preference was void and the importer paid 12% import duty after the fact. The goods may well have been originating. The document did not carry the claim.
Regular suppliers add a second instrument: the long-term supplier's declaration. It covers repeated supplies of the same goods for a period of up to 24 months, with a start date no more than 12 months before or 6 months after the date of issue. The supplier must notify the customer if it stops being valid. For the importer, it is supporting evidence behind the supplier's statement, not a substitute for the statement itself. A customs law firm's explanation of supplier's declarations sets out the rule. An expired declaration is no support, even when the goods still originate.
A valid REX number on an invalid statement is still an invalid proof.
Intrastat Tests the Same Row on a Monthly Clock
Intrastat asks for the country where the goods were produced, not the member state they were shipped from, and it asks every month. The declaration separates arrivals from dispatches. The partner member state is the member state of consignment on arrivals and the member state of destination on dispatches. The country of origin is a separate field, and it can be a country outside the EU even on an intra-EU movement.
Since January 2022, Regulation (EU) 2019/2152 has made country of origin a required element of Intrastat dispatch declarations. On arrivals, the requirement is implemented nationally. Germany has collected origin on arrivals since the single market and added it to dispatches in 2022, as the Federal Statistical Office explains in its 2022 changes note. Sweden, by contrast, collects origin only on dispatches. A team filing in several member states has to read the national rule for each flow.
The filing obligation has a threshold, and the threshold does not change the data requirement. In Germany, a business files from 2025 when dispatches exceed EUR 1,000,000 or arrivals exceed EUR 3,000,000 in the current or previous calendar year, according to Destatis. Declarations are monthly and due by the tenth working day of the following month. The German Intrastat guide sets the penalty for a missing, wrong, incomplete or late declaration at up to EUR 50,000.
The row also needs data the invoice may not carry. Intrastat uses the eight-digit Combined Nomenclature code, net mass in kilograms, invoice value, nature of transaction and, on dispatches, the partner VAT number. Supplier invoices often give a four- or six-digit HS code and no net mass. The packing list has the weight, and the classification is the declarant's responsibility. That is a cross-document join, not a field you can infer from the invoice alone. When the volume of codes turns classification into the bottleneck, batch HS code extraction covers the line-volume problem.
Intrastat uses non-preferential origin. The preference claim is not the value that goes in this field. A line can be correctly reported as Vietnamese origin for Intrastat and still be the subject of an unrelated FTA claim, or no claim at all. Keeping the two answers in separate columns prevents the monthly report from silently rewriting the duty position.
A correct Intrastat line and a correct customs line can still disagree on preference, because they answer different questions.
The Tie-Out Is What Catches the Missing Line

If the country rows do not add back to the invoice total, the difference is a line whose origin you have not captured. The arithmetic is the cheapest control in the whole process, and it is the one most teams skip.
The rule is that every amount on the invoice lands in exactly one place: a country row, an unallocated bucket, or a named control line for freight, discount, VAT or rounding. The country rows plus the unallocated bucket plus the control lines must equal the printed invoice total. Line count and net mass get their own tie-outs. A fourteen-line invoice with one unresolved line looks like this:
| Bucket | Lines | Amount |
|---|---|---|
| Vietnam origin | 6 | EUR 21,400 |
| Turkey origin | 3 | EUR 9,800 |
| Germany origin | 4 | EUR 15,200 |
| Unallocated | 1 | EUR 2,200 |
| Invoice total | 14 | EUR 48,600 |
The EUR 2,200 line is the one to open first. It carries "EU origin" in the footer and no country against the line. It might be German, Polish or something else. Until someone confirms it, the row is not ready for Intrastat and the preference question is unanswered. The country rows sum to EUR 46,400 against an invoice total of EUR 48,600. The EUR 2,200 difference is not rounding. It is the line that never got a country, and the unallocated bucket is where it sits until someone resolves it.
Mixed lines need a split. A knife set with a blade from Japan and a sheath from China is one invoice line and two origins. Split it into two sub-rows by value, keep the parent line ID, and reconcile the sub-rows back to the parent. The same applies to a line that mixes originating and non-originating goods under one preference claim.
This is also where a spreadsheet earns its place. A computed column can multiply quantity by unit price to check the line total, and compare the sum of the line values with the printed invoice total. The cross-document join to the entry or the Intrastat file stays outside the extraction tool, in Excel, Google Sheets or the ERP. No extraction tool should be trusted to decide that two different documents agree. The control works the same way whether a clerk builds the table or a batch process does; the manual versus AI customs comparison covers the volume trade-off.
The unallocated bucket is a query list, not a rounding account.
An Audit Reconstructs the Line, Three Years Later
The audit question is not whether the goods were Vietnamese. It is whether the file can show that the line was. Customs can verify a claim with the exporting country, and the importer carries the duty if the proof does not hold. The evidence usually sits with the supplier, which is the asymmetry that makes the file matter.
The retention window is long enough for the people who built the file to have moved on. Under Article 51 of the Union Customs Code, records must be kept for at least three years from the end of the year in which the customs declaration was accepted. Under Article 103, a customs debt cannot be notified after three years from the date it was incurred, with a longer period where the act could give rise to criminal proceedings. The UCC text is the reference for both.
A post-clearance file normally has to answer four things: what was declared, on what proof, for which goods, and where the supporting records are. That means the invoice with the statement, the supplier's declaration, the bill of materials or cost calculation behind the origin claim, the packing list, the entry or Intrastat record, and evidence of direct transport or non-manipulation where the agreement requires it. The row's source page and capture date are what let someone find the right page in a folder of PDFs.
The most common own goal is a document that existed but expired. A long-term supplier's declaration has a defined period, and the supplier is obliged to tell you when it stops being valid. If the supplier changed a material, moved production or simply let the declaration run out, the PDF on file may still look official. The declaration no longer supports it. A customs law firm's summary of the post-clearance verification process makes the point sharply: "An origin that is genuine but undocumented is, in practice, an origin that has not been proven."
The register should therefore carry the proof's validity period, not just its number. When a declaration expires, the affected rows need a renewal or a new query. That is a calendar task, not an annual cleanup.
Three years is a long time to remember why a line said "EU".
Reconciliation Breaks at the Handoffs
Origin data fails between purchasing, AP and the declarant more often than inside any one team. Each role sees a different document at a different time, and none of them owns the whole row unless the process says so.
| Role | Decision they own | What the row must give them |
|---|---|---|
| Trade compliance lead | The rule set, the evidence tier, the query threshold and the sign-off | Every line, with its proof and source, in one place |
| Purchasing or category buyer | The contract clause and the supplier relationship | A reason to require per-line origin and change notification |
| AP clerk | Capturing the invoice and flagging what is missing | Columns that record absence without forcing a guess |
| Customs broker or declarant | The entry and, where applicable, the Intrastat filing | Country, CN8, net mass, value and proof reference at line level |
| Auditor or customs officer | Whether the claim is supported | A path from the declaration back to the invoice page and the proof |
| Master data or IT | Code mapping and the item-supplier origin table | A clean normalized code and a visible raw value |
Purchasing has the strongest lever, and it is usually the least involved. A purchase order term that requires the country of origin against each line, a statement on origin on request, and notice within a set number of days when the source changes is cheaper than an audit cleanup. For regular supplies, the long-term declaration is the mechanism. For one-off shipments, it is the per-invoice statement.
The AP clerk should record that origin is missing, not decide what it should be. A guess entered to clear a validation rule becomes a false statement in a customs file. The status column exists so the gap can travel to the person who can close it.
The AP clerk should record that origin is missing, not decide what it should be.
Build the Origin Register From the Invoices You Already Have
The register is one row per invoice line, built from the PDFs you already receive. The work is repetitive and the format changes with every supplier, which is exactly the case for semantic extraction rather than a template per vendor.
Name the columns you need on the line
In the To Table workflow, which returns a spreadsheet rather than a Word document, Custom Column Extraction lets you type the column names and the AI finds the matching values by meaning. Start with Supplier, Invoice No, Invoice Date, Description, HS Code, Origin as Printed, Net Mass, Line Value, Preference Claimed, Proof Type, REX or Approval No and Statement Text. The names you type become the headers. Add Line No, evidence tier, page reference and status in the spreadsheet afterward, because they are register controls rather than fields printed on the invoice.
Load a batch, not one invoice at a time
Batch processing lets you upload a batch of supplier invoices and merge the results into one table. A German invoice, a Dutch invoice and a Vietnamese export invoice can land in the same columns because the extraction follows the field meaning, not a fixed layout.
Add control columns
Use computed columns for the arithmetic: a line total from quantity and unit price, and a gap between the printed invoice total and the sum of the extracted line values. The second column is what surfaces the EUR 2,200 line that never got an origin.
Verify where each country came from
Use Review Mode with Bbox: click a cell and the matching region on the original page is highlighted. That is how you tell whether "VN" came from the line's origin column, the ship-from address or an invoice footer. The visual check is the step that assigns the evidence tier.
Normalize outside the tool
Map the raw strings to the country list your filing system uses. Keep the raw value and the normalized code in separate columns, and keep the mapping table under version control. "China", "CN", "PRC" and "Made in China" are one code. "EU" is not a code at all.
Query, record and close
Send the supplier the line reference, the missing field and the format you need. Record the answer, the date and the person who confirmed it. The next shipment from the same supplier then starts from a known value instead of the same blank cell.
Use a sample invoice. Files are processed securely and not stored.
The boundary is firm. The tool does not determine origin, validate a REX number against the EU registry, compare the statement text with Annex 22-07, file Intrastat or a customs entry, or decide whether two documents agree. It extracts the line-level fields into a table. The statement text is a searchable copy for review, while the original page remains the evidence. The legal determination, the registry check and the sign-off stay with the declarant and the compliance team.
That division is where a tool earns its place. The slow part of the job is reading a folder of inconsistent invoices and getting the same fields into the same columns. The part that needs judgement is deciding what the country, the proof and the exception mean. Automating the first part leaves more time for the second.
Frequently Asked Questions
Does every supplier invoice line need a country of origin?
For your own filing, treat it that way. A customs declaration needs origin at goods-item level, and Intrastat needs it at commodity-line level. Germany requires it on arrivals and dispatches; the EU-wide requirement covers dispatches, while arrivals follow the national rule. The supplier's paper often omits the field. The register should record the absence and trigger a query rather than invent a country.
Is a REX number enough to claim preferential origin?
No. A REX number identifies a registered exporter. The statement on origin must be made out by that exporter, use the prescribed text, cover the products in the claim, and rest on goods that meet the agreement's rule. A REX number on an invoice with no statement, or with a statement that excludes the line, does not support the claim. Below EUR 6,000, an unregistered exporter can make a statement under the arrangements that allow it.
Can I use the country of dispatch as the country of origin?
No. Dispatch is where the goods were shipped from. Origin is where they were produced or last substantially transformed. A Rotterdam warehouse dispatching Vietnamese goods is a Dutch dispatch and a Vietnamese origin. If the origin is unknown, record it as unknown and query the supplier. Some national Intrastat guides allow a fallback code in specific cases, but a default to the dispatch country hides the question instead of answering it.
What is a long-term supplier's declaration and how long does it last?
It is a supplier's declaration covering regular supplies of the same goods, rather than a single consignment. It can run for up to 24 months, with a start date no more than 12 months before or 6 months after the date of issue. The supplier must tell the customer if it stops being valid. An expired declaration is no support, even when the goods still originate.
Is an A.TR certificate proof of origin?
No. An A.TR proves that goods are in free circulation in the EU-Turkey customs union. It can support duty-free movement of industrial goods between the two sides, but it does not answer the origin field for Intrastat, anti-dumping or an FTA claim. The line still needs a non-preferential origin, and any preference claim needs its own proof.
How long should the origin evidence be kept?
At least three years from the end of the year in which the customs declaration was accepted, under Article 51 of the Union Customs Code. National law or an open appeal can require longer. The customs debt notification window is three years under Article 103, extended where the act could give rise to criminal proceedings. Keep the invoice, the statement, the supplier declaration and the supporting calculation together, in a form that can be read without the person who built the file.
Does ImageToTable.ai determine origin or validate REX numbers?
No. It extracts the line-level fields from supplier invoices into a table, including the origin as printed, the statement text, the REX or approval number and the HS code. Review Mode shows the page region behind a cell. It does not decide whether the goods qualify, query the REX registry, review the statement against the prescribed wording, or file a declaration.
The Register Has to Survive the Question
Country of origin reconciliation is not a monthly report. It is a register that has to answer a question asked three years later, when the supplier may have changed production, the declaration may have expired and the person who keyed the line may have left. The register works when every line can name its country, its proof and its source, and when the lines still add up to the invoice. That is a narrower promise than "compliant origin", and a more useful one.