EU VAT Number Checker
Current finding
{{ summaryLine }}
Check incomplete.
Cancelled. No finding was retained.
{{ loading || hasResult || cancelled ? summaryValue + '. ' + summaryLine : '' }} {{ copyStatus }}
{{ exportStatus }}
| Record field | Observed value | Copy |
|---|---|---|
| {{ row.field }} | {{ row.value }} |
{{ exportStatus }}
| Next action | How to use this finding | Copy |
|---|---|---|
| {{ row.action }} | {{ row.detail }} |
{{ exportStatus }}
Request timing is unavailable; the finding and record remain usable.
Similar tools
- VAT Calculator Calculate VAT from net, gross or VAT-only amounts with exact posted-cent arithmetic, then compare per-unit and invoice-total rounding results.
- GST Calculator Calculate GST from tax-exclusive, tax-inclusive or tax-only amounts with quantity-aware rounding and a side-by-side scope check.
- Invoice Due Date Calculator Calculate an invoice due date from Net, end-of-month or business-day terms with explicit weekend and holiday rules plus an auditable date path.
- Billable Hours Calculator Calculate billable hours from duration or clock entries with rounding and write-down rules, then review net value and realization warnings.
A customer's VAT number on an invoice identifies a tax registration. Its presence alone does not show that the registration is recognised for trade between EU countries. Checking that distinction matters when reviewing a customer's details for a particular cross-border transaction.
VAT means value added tax. Each EU country issues its own VAT identification numbers, normally combining a country prefix with a national number. Despite the word “number”, meaningful letters can appear in the national part. A business operating in several countries may hold more than one registration, so the prefix identifies the registration being checked rather than simply the customer's location. Northern Ireland's XI prefix has a specific role in goods trade with the EU and should not be treated as a general replacement for GB.
The VAT Information Exchange System, or VIES, obtains registration information from national VAT databases. A check concerns the supplied identifier and the information available when the request is answered. It does not reconstruct registration history or promise that the same answer will apply to a later sale.
Three different questions often arise when reviewing a VAT number:
- Does the entry have an acceptable country prefix and character structure?
- Does VIES confirm that identifier for intra-EU transactions?
- What VAT treatment applies to the particular supply?
A plausible-looking identifier cannot establish current registration, and a positive registration answer cannot settle the VAT treatment of a sale. That decision still depends on the transaction, applicable rules, supporting evidence and reporting requirements. A VAT check alone does not establish entitlement to exemption.
A negative VIES answer can reflect an absent number, registration that is not activated for intra-EU trade, or a registration process that is still unfinished. Changes may also take time to appear. An invalid finding alone does not establish fraud. A service failure supplies no registration answer at all and must not be treated as a negative result.
Keeping a dated finding with the relevant transaction documents makes the check easier to review later. The record documents the response obtained for that identifier; customer verification and decisions about the sale remain separate tasks.
How to Use This Tool:
Check one customer's identifier for a legitimate intra-EU transaction. Opening the page or entering a number does not start a VIES lookup.
- Enter the complete number in VAT identifier, including its country prefix. Spaces are removed and letters are converted to uppercase. If several nonblank lines are pasted, only the first is used and the others are reported as ignored.
- Select the matching Member State / Northern Ireland. The initial selection is Germany, and entering another prefix does not change it automatically.
A missing or mismatched prefix blocks Check VAT number. Correct the entry or the selection before continuing. Greece uses EL; GB is outside VIES. Use XI only when it is the customer's actual Northern Ireland VAT identifier.
- Leave Client timeout override blank for the default 12,000 ms, or open Advanced and enter a whole number from 3,000 to 15,000 ms. This limits how long the browser waits for the complete response.
- Select Check VAT number to submit the country and national number. Checking appears while the response is pending, and Cancel lets you stop waiting.
- Read Current finding and its explanation, then use Follow-up actions for the outcome-specific next step. Save any record you need before editing the identifier, country or timeout, because changing any of them clears the current finding.
Interpreting Results:
- Valid means VIES confirmed the exact identifier for intra-EU transactions at the reported time. Retain the finding if needed and assess the customer's transaction separately.
- Invalid means a usable VIES reply did not confirm that identifier. Confirm every character with the customer; if the entry is correct, ask them to resolve their registration status with the relevant national tax administration.
- Inconclusive means no usable registration answer was obtained. Read the explanation to distinguish a service problem, rejected request or timeout. Wait before using Retry check to submit another request manually. If the lookup service refuses the request, Open official VIES in the identifier help provides a manual alternative for the same transaction.
Check the input is a local correction message, while Cancelled means no finding was retained. Neither is a VIES declaration about registration. Ready to check is the pre-check display and can appear even when the identifier is still empty.
Reading and keeping the dated record
The Validation record contains the normalized VAT identifier, country or region, finding, VIES response date, local UTC check time, result source or error, and consultation reference. These belong to one check of one identifier.
VIES response date comes from an accepted registration reply. Checked at (UTC) is the time recorded by your device when the request finishes, expressed in Coordinated Universal Time. It is not the registration's start date or an independently certified timestamp. An inconclusive attempt can have a local check time while showing No usable response date.
Result source / error shows the accepted registration answer or a recognised service error when available. A transport failure can instead show No usable VIES response; the explanation under the finding gives the reason. If an accepted registration reply supplies a consultation reference, the record retains it. Otherwise Consultation reference shows Not supplied. The checker does not create a substitute.
Copy CSV, Download CSV and Export DOCX retain the current validation table as one check's record. The CSV represents the table's fields and values, rather than a history of checks. Individual rows can also be copied. The separate Follow-up actions table supports the same formats; exporting it does not include the validation record.
Copy finding produces a shorter text summary containing the identifier, finding, local UTC check time and explanation. Use the full validation record when you also need the VIES response date, source or error, and any consultation reference.
In the record's CSV, a value beginning with =, +, -, @, a tab or a carriage return receives a leading apostrophe to reduce accidental spreadsheet formula interpretation. The apostrophe may remain visible when the CSV is read as plain text.
Request timing is a separate record of waiting time. Its CSV contains elapsed wait, client deadline and percentage of that deadline used; the chart can also be downloaded as PNG, WebP or JPEG. These downloads become available when the chart is ready. If the chart is unavailable, the finding and validation record remain usable.
Technical Details:
National VAT numbers follow different formats. A general character check can decide whether an entry is suitable for submission, but it cannot establish registration. VIES supplies the registration answer; there is no universal checksum applied here.
Rule core
The entry rules below prepare a single prefixed identifier. They are deliberately broader than each country's full national format.
| Part of the entry | Accepted rule |
|---|---|
| Country prefix | One of the 27 EU Member State prefixes, or XI for Northern Ireland, matching the selected country or region. Greece uses EL. GR and GB are rejected. |
| National part | 2 to 12 characters after the prefix, using ASCII letters A to Z, digits 0 to 9, plus signs, asterisks or dots. |
| Formatting | Whitespace is removed and letters are uppercased. Plus signs, asterisks and dots are preserved. Other punctuation, including hyphens and slashes, causes rejection. |
| Multiple lines | Only the first nonblank line is considered. Additional nonblank lines are counted and ignored. |
| Excluded entry | A national part consisting of exactly .. is rejected even though dots are otherwise accepted characters. |
Passing these rules only allows the identifier to be submitted. It does not confirm a national length rule, a check digit or an active registration.
A completed registration reply must meet all of the following conditions before it can establish Valid or Invalid:
- It refers to exactly the submitted country and national VAT number.
- It contains an explicit true or false registration answer, rather than a missing value, text that resembles an answer, or a service error.
- It includes a usable date and time with a time-zone designation. Dates before 2000, impossible calendar dates and date-only values are not accepted.
- The response is complete, contains only the permitted registration fields, and has a usable consultation reference if one is supplied.
The provider's affirmative answer then produces Valid, and its negative answer produces Invalid. An unreadable or inconsistent reply stays Inconclusive. A provider error such as INVALID_INPUT also stays inconclusive because it rejects the submitted request without establishing a negative registration answer. Service unavailability, request limits and blocked requests follow the same rule.
Which deadline was reached?
A timeout can occur at different points in a check. The explanation identifies the observed failure; none of these failures establishes that a VAT registration is invalid.
| Timeout | What happened | Finding |
|---|---|---|
| VIES timeout | VIES reports that a national service did not answer in time. | Inconclusive |
| Checking-service timeout | The checking service reaches its own time limit before returning a usable VIES response. | Inconclusive |
| Client timeout | The browser's selected deadline expires before the complete response has been received and processed. | Inconclusive |
The client deadline runs until the complete reply has arrived and been processed. Increasing it does not extend the checking service's or national service's own limit. There is no automatic retry or alternative-provider lookup.
Cancellation is different from a timeout. It discards the pending check and retains no result. Changing an input also invalidates the pending check, so a later-arriving response cannot become a finding for the changed entry.
Timing calculation
The percentage of the client deadline used measures waiting time, not confidence in the VAT registration. Let W be elapsed wait in milliseconds, T the client deadline in milliseconds, and P the reported percentage.
A 1,500 ms wait against a 12,000 ms deadline uses 12.5% of the allowance. A prompt response can still be inconclusive, and a slower response can still contain a valid registration answer.
The gauge runs from zero to the selected deadline and stops at that limit; the displayed elapsed wait is rounded to whole milliseconds. The measured wait is limited to 60,000 ms before the percentage is calculated; the timing CSV keeps that value without the display rounding. The percentage never exceeds 100%, even if scheduling delays make the recorded wait longer than the selected deadline.
Privacy and Limitations:
Each explicit check sends the selected country and national VAT number in a request body to the checking service and official VIES. The number stays out of request URLs. This is a network lookup, so keeping the entry out of the browser's saved state does not mean it stays on your device.
- The identifier and result are not saved in browser storage or included in shareable page settings. Only the country and timeout settings can be restored from a link. Reloading the page starts without the identifier or previous finding.
- The result contains no provider-supplied company name, address or other returned entity details. There is no company search, directory, bulk check or background monitoring.
- Copies and downloads contain the chosen record or summary for the customer transaction. Keep them with the relevant transaction documents rather than republishing or combining them into a directory. Clear removes the entry and current result from the page; it does not remove previously copied or downloaded material. Clearing or cancelling also cannot retract data already transmitted.
- The page does not specify the checking service's or VIES's logging and retention policies, and its controls cannot delete records held by those services.
- A saved finding records one attempt and is not an official certificate or tax-eligibility decision. This is informational checking, not tax advice. Resolve transaction-specific tax questions with the relevant authority or adviser.
Worked Examples:
These examples illustrate entry handling and assumed responses. The sample identifiers are synthetic and are not claims about real registrations; do not submit them as test lookups.
Formatting changes without a registration check
With Germany selected, an illustrative first line of de 1 0 0 becomes DE100. If XI100 is pasted on the next line, it is ignored and the page reports one ignored line. The entry can show Ready to check even though Germany's full national format has not been checked. No registration has been confirmed and no lookup occurs merely from entering the text.
A negative reply with a dated record
Assume a coherent VIES reply for the exact submitted identifier gives a negative answer dated 2026-11-01T00:00:00Z and supplies a consultation reference. The finding is Invalid, and the validation record retains that provider date and reference alongside the separate local check time. Keeping the full CSV or DOCX preserves those details; Copy finding only keeps the shorter summary. The customer can then check the entry and registration with their national authority.
A response starts but does not finish
With the timeout left blank, suppose response headers arrive after 2 seconds but the complete reply is still unavailable when the 12-second client deadline is reached. The finding is Inconclusive, with a client-time-limit explanation and no usable VIES response date. The early headers do not establish registration. Selecting Cancel before that deadline would instead leave Cancelled with no retained finding.
References:
- VAT identification numbers, European Commission.
- Check a VAT number (VIES), Your Europe, European Union.
- VAT on movements of goods between Northern Ireland and the EU, HM Revenue & Customs, updated 1 October 2026.