Why do I need to validate EU VAT numbers for B2B sales?

Validation & accuracy

Why do I need to validate EU VAT numbers for B2B sales?

When you sell goods B2B to a customer in another EU country, you can generally zero-rate the supply as an intra-Community supply – but only if the customer has a valid EU VAT number (validated in VIES) at the time of supply, you report it on your EC Sales List, and you can evidence both the check and that the goods actually crossed the border. For cross-border B2B services the mechanism is different: the supply is outside your country’s VAT and the customer accounts for VAT under the reverse charge – see the EU VAT for B2B SaaS guide for how that plays out for subscription businesses specifically. If the conditions aren’t met or you can’t evidence them, the tax authority can deny the zero-rating and assess the VAT against you.

Why the check matters for goods

Since the 2020 Quick Fixes (Council Directive 2018/1910), a valid EU VAT number for the customer is a substantive condition for zero-rating intra-EU supplies of goods, not just an administrative formality. A number that was never valid, or has lapsed, removes the basis for the zero rate.

Why it matters for services

For cross-border B2B services, the customer’s VAT status decides whether the reverse charge applies. If you issue an invoice without VAT to a buyer whose number turns out to be invalid, you have supplied without charging VAT and without a legal basis for it.

What to keep as evidence

  • The validation result itself, with its time. Every vatnode response has a checkId and a verifiedAt timestamp, so store both with the invoice.
  • If you want the EU-side reference, set your own EU VAT as the requester in dashboard Account details and responses carry the VIES consultationNumber. The VAT audit trail guide explains what it is and how retention differs by country.
  • Your records that the goods actually left the country, where the supply is goods.

Rules differ by member state, so confirm what your own tax authority expects with a tax adviser.

Doing it in practice

Validate before you issue the invoice, not after. A single number can be checked on the free checker; for invoicing flows, call GET /v1/vat/:vatId from your server and apply the zero rate only when the response says valid: true. If the check can’t be completed (for instance a 503 VIES_UNAVAILABLE), treat it as unverified rather than as valid.

Related questions