---
title: EU VAT Validation Always Fails
description: "Valid EU VAT numbers rejected? Fix format, method and VIES issues, numbers that show valid but fail at checkout, and sign-up form errors."
url: "https://wpfactory.com/docs/eu-vat-validation-fails/"
updated: "2026-09-27"
category: Troubleshooting
tags:
  - EU VAT Manager for WooCommerce
---

# EU VAT Validation Always Fails

If valid EU VAT numbers are always returned as "not valid" by [EU/UK VAT Manager for WooCommerce](https://wpfactory.com/item/eu-vat-for-woocommerce/), the cause is usually a settings or format issue, a strict extra check, or a VIES outage. Start at **WPFactory > EU VAT** (also reachable at **WooCommerce > Settings > EU VAT**) > **Validation** and work through the checks below.

## Symptoms

- A number that passes the official VIES lookup is marked invalid at checkout.
- The problem persists even with the correct format and country code.
- Numbers are rejected only at busy times, or only from one country.

## What the messages mean

| Message (Messages sub-tab) | Meaning |
| --- | --- |
| VAT is not valid. | VIES said the number is not registered, the format was rejected, or no validation method got an answer (for example VIES was down, or SOAP, cURL and Simple all failed). The debug log tells these apart. |
| VAT accepted due to VIES error: %vies_error%. | **Accept the VAT number if VIES is not available** is on and VIES was unavailable. |
| Wrong billing country. | **Check for matching billing country code** is on and the prefix does not match the billing country. |
| VAT is valid, but registered to %company_name%. | **Check company name** (Pro) is on and the billing company differs. |

## Fix

1. **Confirm validation is on.** Go to **WPFactory > EU VAT** (also reachable at **WooCommerce > Settings > EU VAT**), **Validation** sub-tab, and set **Validate** to Yes.
2. **Change the validation method.** If your host has SOAP disabled, set **First validation method** to cURL or Simple. The plugin also falls back automatically, but choosing a working method first is faster.
3. **Check the number format.** Enter the country prefix and no spaces, for example `FR12345678901`. Greek numbers use the `EL` prefix, not `GR`. If customers often omit the prefix, enable **Allow VAT number input without country code**, and enable **Allow VAT number input with non-alphanumeric symbols** to tolerate spaces, dots and hyphens.
4. **Review the extra checks.** **Check for matching billing country code** (free), **Check company name** and **Check country by IP** (Pro) can reject numbers that VIES accepts. Turn them off to test.
5. **Handle VIES outages.** Enable **Accept the VAT number if VIES is not available** to accept numbers for the errors `MS_UNAVAILABLE`, `GLOBAL_MAX_CONCURRENT_REQ` and `MS_MAX_CONCURRENT_REQ` (read the checkout note in the next section). If the log shows `MS_MAX_CONCURRENT_REQ` often, enable **Advanced > Reduce concurrent request to VIES**. With a VATSense key you can also enable **Enable VATSense fallback**.
6. **Clear the cached result.** The result is stored in the customer's session for the same number and billing country. Enable **Advanced > Force VAT recheck on checkout**, or test in a new private window.
7. If it still fails, check **WooCommerce > Status > Logs** for the debug entry and send it to support.

## Workarounds for known-good customers

- **Manual validation of VAT numbers** (Advanced): list numbers you have checked yourself, comma separated with the prefix, for example `DE123456789,FR12345678901`. They pass without a VIES call.
- **Skip VAT validation for selected countries** (Validation): numbers from these country codes are exempted without a VIES call. Read the checkout note in the next section before relying on it.

If VIES blocks your server with `IP_BLOCKED`, see [VIES VAT Validation Blocked (IP_BLOCKED)](https://wpfactory.com/docs/vies-ip-blocking/).

## The field says valid, but checkout says the number is not valid

EU/UK VAT Manager checks the number twice: once while the customer types (the message under the field) and again when the order is placed. If the second check fails, the order stops with the **Message on not valid** error even though the field looked fine. The usual reasons:

1. **The number was accepted without a confirmed answer.** In the current version (4.7.4), a number accepted only through **Skip VAT validation for selected countries** or through **Accept the VAT number if VIES is not available** is shown as accepted under the field, but the check at order time still needs a number that VIES, VATSense or your manual list confirmed. For customers you have checked yourself, add their numbers to **Manual validation of VAT numbers** (Advanced) instead: those count as confirmed at checkout. On Pro, **Allow checkout on unregistered VAT numbers** also lets these orders through.
2. **A fresh check at order time got a different answer.** With **Force VAT recheck on checkout** on, placing the order triggers a new VIES call, and a VIES timeout at that moment rejects the order. If VIES is unreliable for your customers, turn the option off so the result from the field is reused for the same number and billing country.
3. **The customer changed the billing country or company after the check.** The stored result only applies to the same number and billing country. A new combination is checked again, and an extra check such as **Check for matching billing country code** or **Check company name** (Pro) can fail at that point. Ask the customer to re-enter the number after filling in the billing details.

## Customers without a registered VAT number

Some consumers want a tax ID on the invoice that is not registered in VIES. Two options look similar but do different things:

- **Valid VAT but still paying?** (General, free) adds a checkbox for customers whose number *is* valid but who must still pay VAT. It does not make an unregistered number pass.
- **Allow checkout on unregistered VAT numbers** (General, Pro) lets the order go through with a number that VIES does not confirm. The number is saved with the order, and VAT is still charged because only confirmed numbers are exempt.

If you are on the free version, set **VAT field will be** to **Optional** so these customers can leave the field empty. See [Make the VAT Field Required Only for Businesses](https://wpfactory.com/docs/require-vat-number-conditionally/).

## Numbers rejected on the registration form

On the WooCommerce registration form the number is validated only when **VAT field will be** is **Required** and **Validate at sign-up form** (Validation) is on. Registration forms usually have no billing country field, which causes two problems:

- With **Check for matching billing country code** on, the prefix is compared with an empty billing country, so every number fails. Turn that check off, or add a billing country field to the form.
- With **Allow VAT number input without country code**, there is no billing country to take the country from. Ask customers to type the country prefix on this form.

See [Add the EU VAT Field to the Registration Form](https://wpfactory.com/docs/add-vat-field-to-signup-form/) for the setup.

## FAQ

### Is VIES validation a Pro feature?

No. Real-time VIES validation with the SOAP, cURL and Simple methods is free.

### Why does a number validate on the VIES website but not in my store?

Usually a format difference (prefix, spaces, EL for Greece), an extra check such as billing country or company name, or a cached result from an earlier attempt.

### Are UK numbers checked through VIES?

No. GB numbers are validated with VATSense. See [UK VAT Validation Fails](https://wpfactory.com/docs/uk-vat-validation-fails/).

Need a hand? Our team answers every ticket on the [EU/UK VAT Manager support forum](https://wpfactory.com/support/item/eu-vat-for-woocommerce/).

Related articles

- [Customize the VAT Validation Messages](https://wpfactory.com/docs/customize-vat-validation-messages/)
- [EU VAT Validation Options in WooCommerce](https://wpfactory.com/docs/streamline-eu-vat/)
- [Configuring EU VAT Validation](https://wpfactory.com/docs/configure-eu-vat-validation/)
- [VAT Not Removed After Entering a Valid VAT Number](https://wpfactory.com/docs/eu-vat-not-removed-valid-number/)
- [VAT Field Not Showing in Block-Based Checkout](https://wpfactory.com/docs/vat-field-block-checkout-issue/)

 

[![EU VAT Manager for WooCommerce](https://wpfactory.com/wp-content/uploads/EU-UK-VAT-Manager-for-WooCommerce.webp)](https://wpfactory.com/item/eu-vat-for-woocommerce/)
