All articles →

Validating VAT Numbers for Business Customers: When You May Refuse the Order and When You Must Not

A practical guide to staying compliant without losing sales.

WHY VAT VALIDATION MATTERS
When you sell to other businesses in the EU you need to know if their VAT number is real. A wrong number can lead to a fine, a complaint from a consumer authority or a competitor reporting you for an unfair discount. The real cost is not the fee itself. it is the sleepless night wondering if you missed something and the stress of dealing with a legal notice later. Getting validation right means you can focus on growing your shop instead of worrying about paperwork.

HOW VIES WORKS AND WHERE IT FAILS
The official VIES service is the source of truth for EU VAT numbers. It returns an HTTP 200 even when the system is down. The real answer lives in the userError field. Only the values VALID and INVALID give you a clear judgement. Anything else. MS_UNAVAILABLE, MS_MAX_CONCURRENT_REQ, GLOBAL_MAX_CONCURRENT_REQ, SERVICE_UNAVAILABLE or TIMEOUT. means the service could not respond at that moment. If you treat every 200 as a final answer you risk caching a temporary outage as an invalid number and turning away good customers.

WHEN YOU MAY REFUSE THE ORDER
You may refuse an order when the VAT Check API returns userError = INVALID. That means the number does not exist in the national register or it fails the checksum test. In that case you are not obliged to apply VAT exemption and you can ask the customer for a correct number or proceed with VAT charged. You may also refuse when the API returns a clear error that indicates the number is malformed. for example a missing country code or wrong length. because the field will still show INVALID.

WHEN YOU MUST NOT REFUSE THE ORDER
You must not refuse an order when the API returns HTTP 200 with userError = VALID. That is a confirmed, active VAT number. You must also not refuse when the service is temporarily unavailable and the userError field shows one of the service-error codes. In those situations you have no proof that the number is wrong. The safest approach is to treat the request as pending, inform the customer that verification is taking a moment and try again after a short pause. Refusing based on a missing response could break distance-selling rules and lead to complaints.

BEST PRACTICES WITH THE VAT CHECK API
1. Always inspect the userError field before making a decision.
2. Cache the VALID or INVALID result for 24 hours as the API does, but never cache a service-error as a final verdict.
3. If you receive a service-error, retry the request up to two times with a short delay before falling back to asking the customer for clarification.
4. Combine the VAT check with the Omnibus lowest-price check and the shipping-threshold calculator that the same API provides. This gives you a single compliance check that covers price display, tax exemption and shipping rules in one call.
5. Log the raw userError value for audit purposes. If a dispute arises you can show that you followed the service’s guidance.

THE FEELING YOU BUY
You are not buying a set of API calls. You are buying the certainty that your shop will not be hit with a surprise fine, that you will not accidentally turn away a legitimate B2B customer and that you can sleep knowing your compliance is handled automatically. That peace of mind lets you spend time on product selection, marketing and customer service instead of poring over legal texts.

NEXT STEP
If you want a quick reference that walks you through the exact fields to check, the retry logic and the Omnibus rule, download our free checklist covers all you can be found here https://insightoperator.org
https://insightoperator.org/ (the checklist, grab the free VAT Check compliance checklist at https://insightoperator.org. It walks you through the same steps in a printable format so you can keep it by your desk while you integrate the API.

Stay compliant, stay confident.

The 12 point EU dropship checklist
Check this before you spend a euro on inventory. Free, on your screen straight away.
Get the checklist →