Self-service VAT batch

Free bulk VIES checker for VAT lists

Use this free bulk VIES checker with the existing free shared EORI + VAT API key, within its remaining allowance. Upload a CSV or paste a list of full EU VAT IDs with country prefixes, then download dated results for each row. Live checks require a key; free access does not mean unlimited batches.

How the bulk VAT checker works

  1. Upload a CSV or paste the EU VAT IDs you need to check.
  2. Run the live VIES lookups with your EORI + VAT API key.
  3. Download dated rows with a local SHA-256 checksum for your records.

Need more than the free allowance?

Paid access uses the existing shared EORI + VAT checkout. It appears only while that checkout reports all required dependencies ready; this page never accepts payment or issues keys.

Checking checkout availability…

Use full VAT IDs with country prefix. Duplicate and malformed rows are not queried. Network failures and unreadable responses remain unresolved in your export; review them before retrying.

Get a free API key

CSV upload or pasted list: what happens before a live check?

Adding a VAT list does not start a live VIES check.

  1. Choose one input: upload a CSV with a recognised VAT column, or paste one full VAT ID per line. Keep the country prefix with every number, including when the list contains several countries.
  2. Verify your key: use Verify key to see the remaining allowance and rows permitted per run. This checks access, not VAT validity.
  3. Start deliberately: the Validate VAT IDs button starts the batch. Duplicate and malformed rows are recorded locally instead of being sent for a live lookup.

After the run, keep the full report before downloading unanswered IDs for a later attempt. A technical failure leaves a row unresolved; it does not establish that the VAT number is invalid. See the VIES service unavailable guide if a country service cannot answer.

Prepare a CSV for bulk VIES checks

Put the full VAT number in a column headed vat_number, vat_id, vat or number. Without a recognised header, the checker reads the first column. You can also paste one full VAT ID per line.

Keep the country prefix: use EL for Greece and XI for Northern Ireland. Duplicate numbers and rows that do not match the expected format are marked locally and are not sent for a live lookup. A format check alone does not establish VAT validity.

Read the results before retrying a batch

A bulk check can contain answered and unresolved rows in the same file.

  • Valid: VIES returned a positive result for that VAT number.
  • Invalid: VIES returned a negative result; check the number and its registration with the supplier.
  • Unresolved: a service, network, quota or rate-limit error prevented a usable answer. This is not an invalid VAT result.

Save the report first. Use Download unresolved IDs to prepare a later attempt with only unanswered VAT numbers; downloading the file does not run checks. Review your key and remaining allowance before uploading it again. For a service problem, check the VIES status by country and the VIES error guide.

The European Commission recommends keeping a record of validation. Read its official VIES guidance for what valid and invalid responses mean.

Bulk VAT checker questions

Can I use this as a free bulk checker for VIES?

Yes, with the existing free shared EORI + VAT API key and within its allowance. The free-key link is beside the key field above. A key is required for live checks; the tool verifies your remaining quota and the row limit for your tier before running. Free access does not mean unlimited batches.

Does VAT Validate upload my CSV?

No. The CSV and generated files stay in this browser. The tool sends each lookup to the live VIES route and does not retain the batch.

Does a checksum prove that a VAT number is valid?

No. The checksum proves the downloaded file was not changed. VIES supplies the validity result for each VAT number at the time of the check.

Evidence and privacy

Your API key and generated files remain in this browser. VAT Validate does not upload the CSV or retain the batch. Each row receives a local SHA-256 checksum; checksums are unsigned and prove file integrity, not official origin or legal validity.