EU VAT Number Batch
Bulk-validate partner EU VAT numbers via the customer's own VIES access and archive timestamped proof-of-check
Want EU VAT Number Batch installed and configured for you? Onboarding Pack: $350 one-off
Support plans from $425 a month
Check your customers' VAT numbers in batches
Structure and check digits offline, VIES through your own access, every result archived
Zero-rated intra-Community supplies require a valid VAT number of the customer, and the tax office asks for proof that you checked it. This app checks partner VAT numbers in batches. Offline it tests the structure of each member state and the check digits where a member state publishes the rule; it never pretends that an offline check is a confirmation. Through your own VIES access it asks the member state itself. Every check is kept as a line of the proof archive, and a proof audit counts per country which partners are proven, stale or missing.
Key features
Batches
Collect partners from a selection or a saved filter into a batch and run it in one go; the batch counts checked, valid, not checked, invalid and error results.
Offline structure check
The number is split into country prefix and national part and tested against the pattern of the member state. An offline check marks a number as not checked when its structure is right: nothing has been proven yet.
Check digits
France and Belgium check digits are recomputed and a wrong number is rejected. For the Netherlands a mismatch is reported as something to confirm with VIES, because the btw-id of sole traders does not follow the classic rule.
VIES through your own access
In VIES mode the batch asks the member state through the endpoint configured on your company. Without an endpoint the check ends in error and is never marked valid.
Proof archive
Each check keeps the number as entered, the status, the date and time, the message and, after a VIES answer, the consultation number and trader data.
Proof on the partner
Only a VIES answer writes the proof date and number on the partner; a later VIES answer that the number is no longer valid withdraws it.
Proof audit
Count per country how many partners have a valid, stale, missing or invalid proof against a staleness limit, and export the audit as CSV.
Re-validation
A scheduled action re-checks proofs older than the number of days set on the company.
Screenshots
Odoo 19.0 in English with the data of a French company, Lavergne Distribution SAS (Lyon, EUR); the screens are the same in Odoo 18.0 and 20.0.
1. Offline batch
An offline batch of 13 customers and suppliers in seven member states: every number has the right structure and the French and Belgian check digits are correct, yet each one stays Not Checked until VIES confirms it.
2. A Dutch sole-trader number
A Dutch btw-id whose check digit does not follow the classic rule: the check says so and asks for a VIES query rather than rejecting the customer.
3. Proof archive
All checks with the number as entered, the structure and check-digit result, the status and the date of the check.
4. Member-state formats
The pattern, check-digit rule and example of each member state.
Why this app
✓ Never confuses a structure check with a VIES confirmation
✓ Check digits for France and Belgium catch typing errors
✓ Dutch sole-trader numbers are not rejected by mistake
✓ Your own VIES access, no third-party service
Get started
Formats
Review the member-state formats under Configuration.
Build a batch
Select partners and use Validate VAT Numbers, or create a batch.
Run
Run offline for structure, or in VIES mode with your company endpoint.
Archive and audit
Keep the proof lines and run a proof audit per country.
Questions
Does the app call VIES by itself?
Only in VIES mode and only through the endpoint you configure on your company. Offline and simulation runs never contact anyone.
Why is a correct number shown as Not Checked?
Because an offline check proves only the shape of the number. The status becomes Valid after a VIES answer.
Which countries have a check-digit test?
France and Belgium (conclusive) and the Netherlands (reported, to be confirmed with VIES). Other member states get the structure test.
Specifications
- This page: Odoo 19.0 (also available for Odoo 18.0 and 20.0), Community and Enterprise
- License: OPL-1
- Languages: English
- Depends on: base, contacts
- Outputs: proof archive per check, proof audit per country (CSV)
- Author: Pokutsoft, pokutsoft.com
- Support: support@pokutsoft.com
Update date: 2026-10-30 · Version: 19.0.1.2.5
User guides (PDF)
Related modules
EU Avoir / Creditnota
Compliant credit notes (avoir / note de credit / creditnota) for FR/BE/NL with reason codes, original-invoice linkage and correct VAT reversal
EU Triangulation +
Detect intra-EU triangular/chain transactions, apply the simplification and produce the correct invoice mentions and EC Sales listing lines
EU Cash Pooling
Intragroup cash pooling: zero-balancing / target sweeps, consolidated group position, intercompany interest on pool balances and draft accounting entries.