EU VAT · CSV GUIDE
How to check EU VAT numbers from a CSV list.
When you have a list of customer VAT numbers, prepare the data once, review duplicates and keep a result for each row. This guide follows the ApiVect VAT-list workflow, including what to do when VIES cannot give a conclusive answer.
See VAT list plans and availability → Only checking one number?
1. Prepare a small UTF-8 CSV
Use comma-separated columns for the country code and VAT number. An optional reference helps match each result to your own records. Keep the file under 512 KiB and include only the data needed for the check.
country,vat_number,reference
DK,00000000,example-1
DK,00000000,example-2
Synthetic format example only. These are not real registrations or VIES results. Replace the placeholder numbers before uploading. The two rows deliberately repeat the same number to illustrate duplicate handling.
You can upload a file or paste CSV text. In the column mapping, select the country and VAT-number columns; the reference column is optional. Avoid adding customer names, addresses or email addresses just to identify a row.
2. Review the list before starting checks
The preview shows the row count, unique VAT numbers and duplicates. Preparing a preview does not run VIES checks or consume your allowance. Fix rejected input before continuing.
Check that your remaining VAT allowance can cover every unique number. Duplicates within the list share the first result. Confirm the usage and retention information before starting the list.
3. Read the result, including uncertainty
- Valid: VIES returned a valid registration result for the supplied country and number.
- Invalid: VIES returned an invalid result. Review the number and ask the customer to resolve registration questions with the relevant national authority.
- Inconclusive: the check did not establish validity. A provider outage or technical failure must not be treated as proof that a VAT number is invalid.
VIES retrieves information from national VAT databases. An invalid response can have several causes, including registration that is not activated for intra-EU transactions. See the EU's official explanation of VIES results and the official VIES service.
In ApiVect, conclusive results use one VAT check per unique number, including invalid results. Inconclusive results and technical failures use none. List jobs use bounded retries and have a 24-hour deadline; an unavailable provider can still leave unresolved rows.
4. Download evidence while it is available
CSV and JSON exports include every row. A PDF summary covers up to 100 rows. Keep the row reference, result, check time and source with your records. Cached results retain their original check time; do not treat the export time as a fresh VIES check.
Inputs and results are encrypted and retained for up to seven days unless removed sooner. Download what you need within that period and manage the exported files under your own retention policy.
5. Recheck a recurring customer list
For repeat work, Business and Platform support saved lists and optional monthly rechecks. Saved inputs can be retained for up to 365 days. Monthly rechecks stay off until you enable them and share the same VAT allowance as the API and other lists.
A single-number manual check uses a separate allowance. VAT-list checks do not create overage; choose a plan with enough checks and rows for the list you intend to run. See current VAT list prices and limits.
Take the next step
Review the current trial, paid plans and account requirements, then open your list workflow. Email verification and an authenticator are required. Paid subscriptions are for businesses in supported checkout countries.
Explore VAT lists → Open my lists ↗VAT registration checks are not company-register extracts, identity checks or tax advice. This guide does not determine the VAT treatment of a transaction.
Need automated checks? Read the VAT API details · Browse all guides