VIES VAT number check: no waiting, no gaps

Robert Reiz Robert Reiz | | 09:34 UTC
ZEIT.IO re-checks every day the VAT IDs that VIES couldn't check when you saved. If one doesn't exist, the freelancer or the organisation's admins get an email – and so do clients with a running supplier contract.

ZEIT.IO, the time tracking and invoicing software for freelancers and agencies, now checks your own VAT ID against VIES for five seconds at most. If VIES is down, you can still save, and ZEIT.IO checks the number again every day. If it doesn't exist, you get an email, and so do clients with a running supplier contract.

An hourglass by a grey form, a green calendar with a check mark and a person receiving an email

No more minutes in front of a frozen form, and no more VAT IDs that slip through unchecked.


What happens when VIES doesn't answer?

An example: Noel is a freelance developer in Leipzig. He enters his VAT ID in ZEIT.IO and clicks save. ZEIT.IO asks VIES, the European Commission's validation service, whether the number exists. That evening, VIES is overloaded. Noel waits, and waits – for a whole minute nothing moves. Then the number is saved without ever having been checked.

But two digits had swapped places: DE123456798 instead of DE123456789. Nobody notices. Noel sends invoices with that number, and his client, Franz's agency, books them with a VAT ID that doesn't exist.

Until now, that was simply how it went: if VIES was unavailable, the number was accepted – and never checked again.


How it works

  1. You enter your VAT ID: as a freelancer under Settings › Legal form & taxes, as an organisation under Settings › Billing address.
  2. ZEIT.IO asks VIES whether the number exists. If VIES doesn't answer within five seconds, or the service is down, your entry is saved, just as before. But the number is flagged as still open.
  3. Once a day, ZEIT.IO asks VIES again about every open number. That repeats until VIES answers.
  4. If the number exists, that's it. You won't get an email.
  5. If it doesn't, you get an email with the subject "Your VAT ID … does not exist" and a link that takes you straight to where you can correct it.

If VIES does answer while you save and doesn't know the number, you still see this right away: "The VAT ID number does not exist. Please check the VAT ID number."


Who is told when a VAT ID doesn't exist?

  • Freelancers get an email with a link to Legal form & taxes. It points out that the number may contain a typo.
  • Organisations: every administrator of the organisation gets an email with a link to the Billing address.
  • A freelancer's clients: if the freelancer has an accepted supplier contract that is running or hasn't started yet, the person who created the contract is told. If that person is no longer in ZEIT.IO, the emails go to the organisation's administrators. The email names the freelancer and the VAT ID and links to the contract. Expired contracts and contracts not yet accepted don't trigger an email.
  • ZEIT.IO is told as well, because we invoice you with that VAT ID.

You can read more about binding supplier contracts in ZEIT.IO in a separate post.


What does the client see?

Franz's agency gets one email per affected contract, in the recipient's language. It names Noel, his VAT ID and the supplier contract, and says that Noel has already been asked to correct the number. So Franz doesn't have to chase anyone, but he knows before he books the next invoice.

Every one of these emails is recorded in the contract's audit log, with recipient, freelancer and VAT ID. That way it's clear later on who was told and when.


What stays the same

  • You can still save when VIES is down. A disruption at the EU never blocks you.
  • Only your own VAT ID is checked – the freelancer's and the organisation's. Your customers' VAT IDs get their country prefix, but no VIES check. How the prefix is added is explained in Two letters that decide whether your e-invoice gets paid.
  • Only EU VAT IDs are checked. VIES only knows numbers from EU member states. If a freelancer is based in the USA, Dubai or Singapore, ZEIT.IO doesn't check whether their VAT or tax number really exists. Swiss and UK numbers aren't looked up in VIES either.
  • A number is reported only once. Once it's settled, it's no longer open. If you've already changed the number by then, no email goes out.
  • Nothing changes on screen. The re-check runs in the background.

At a glance

  • Where: freelancers: Settings › Legal form & taxes; organisations: Settings › Billing address
  • Who: freelancers and organisations with a VAT ID from an EU country
  • Limits: VIES lookup capped at 5 seconds; open numbers are checked again once a day until VIES answers; no check for numbers from outside the EU (e.g. USA, United Arab Emirates, Singapore, Switzerland, UK)
  • Emails: to the owner of the number; for freelancers also to the client of every running or upcoming supplier contract
  • Validation service: VIES, the European Commission's VAT Information Exchange System

Frequently asked questions

How long does the VIES lookup take when I save?

Five seconds at most. Before, a lookup could hang for up to a minute when VIES was struggling. Now anything slower counts as "VIES unavailable", and your entry is saved anyway.

How often does ZEIT.IO re-check an open VAT ID?

Once a day, until VIES gives an answer. Because VIES can be down for a single member state, one country's outage doesn't hold up the checks for the other numbers.

Is VIES frequently down?

Often enough to matter. VIES doesn't hold any data itself: it forwards every query to the national database of the member state concerned, and each of these can be unavailable at times, for example during maintenance. That's why ZEIT.IO checks open VAT IDs again once a day until VIES answers.

Will my client find out that my VAT ID is wrong?

Yes, if you have an accepted supplier contract with them that is running or still to start. They get an email naming you, the VAT ID and the contract. Nobody is told about expired contracts.

Does VIES work for tax numbers outside the EU?

No. VIES only knows VAT IDs from EU member states. For a freelancer or company in the USA, Dubai or Singapore, and also in Switzerland or the UK, ZEIT.IO doesn't check whether the number really exists.

Why does a correct VAT ID on an invoice matter?

Because it's a mandatory detail: under Article 226 of the EU VAT Directive, an invoice must show the supplier's VAT identification number. A number that doesn't exist can cost your customer their input tax deduction.


Why this matters

Two swapped digits in a VAT ID can go unnoticed for a long time. They're on every invoice, they end up in your customers' books, and they only come to light at the next audit – when fixing them is the most work. Even the e-invoicing standard EN 16931 won't catch them, because it only enforces the format: the VAT ID must start with the right country prefix – why exactly that decides whether you get paid is explained in Two letters that decide whether your e-invoice gets paid. Whether the number exists is not something the standard checks, so an e-invoice with a made-up VAT ID still passes validation.

With the daily re-check, ZEIT.IO catches up on the check that couldn't happen when you saved. You don't wait for a slow service, and no EU VAT ID stays unchecked.

Five seconds of patience. After that, ZEIT.IO takes over.