ARES: Czech Republic VAT register

Queried livemeta.source: ares
By Remco from Avatcado

ARES is the Czech Ministry of Finance's directory of economic subjects: one public interface over the company data several Czech registers hold, including the VAT registration status a Czech company carries. Avatcado queries it by the company identification number when VIES has nothing to say about a Czech number.

ARES is run by the Czech Ministry of Finance, and its data is published at ares.gov.cz. It is one of the 10 national registers Avatcado consults on the Pro and Business plans when VIES cannot answer for Czech Republic, and it never replaces a VIES answer that does arrive. The national registry fallback guide covers the full precedence order.

What ARES publishes

  • The record of an economic subject keyed by its 8-digit identification number, which for a Czech company is also the digits of its VAT number
  • A registrations section holding the state of each source register, including the one that says whether VAT registration is currently active
  • The trade name of the subject and its seat as a single formatted address line, both of which a fallback answer passes through
  • Registration states other than active, such as a company that was once VAT registered and is no longer

How Avatcado uses it

A Czech fallback fetches the economic subject by its 8-digit identifier and requires two things before it answers: the record has to carry a tax identification number at all, and the VAT source register in the registrations section has to read as active. Only then is the answer served with source ares, name and seat included. A 404 from ARES, or an inactive VAT registration, is not served as valid false; the request falls through to the cache.

ARES answers per number, so Avatcado calls it while your request is open, with a 10 second timeout. There is no snapshot to go stale (queried live on the request), so a fallback answer reflects the register as it stood at that moment. If the register is slow or down as well, the request falls through to the cache.

The rule that matters most is that a register can only ever confirm a registration. A miss, whether ARES says not registered or simply has no record, is never turned into valid: false: the request falls through to the stored result instead. An answer that does come from here carries source: "ares" and source_status: "fallback", and no consultation_number field at all, because only VIES issues those.

What a ARES answer contains

FieldARES
Company nameYes
Company addressYes
Consultation numberNo, VIES only

Data quirks worth knowing

  • Only 8-digit numbers (legal entities); 9 and 10 digit numbers issued to individuals are not looked up
  • ARES is a directory over other registers rather than a register itself, so its VAT field reports what the tax administration's source register says at the time of the call
  • The identifier is the company number, not the VAT number: the two share their digits in Czechia, which is what makes a single lookup possible at all
  • A record can exist in ARES with no VAT registration at all, which is an ordinary company rather than a signal that something went wrong

Try it

Validating a Czech Republic VAT number takes the same call whichever source answers it. This one uses CZ00177041, a real registered number:

curl "https://api.avatcado.com/v1/validate?vat_number=CZ00177041" \
  -H "Authorization: Bearer avat_live_your_api_key"
import Avatcado from "@avatcado/node";

const avatcado = new Avatcado("avat_live_your_api_key");
const { data, error } = await avatcado.vat.validate({
  vatNumber: "CZ00177041",
});

if (data?.meta.source === "ares") {
  // VIES was unavailable; ARES confirmed the registration.
  console.log(data.meta.source_status); // "fallback"
}

On an ordinary day that answer comes from VIES, with source_status: "live". Only when VIES cannot answer for Czech Republic does ARES step in, and then meta.source_status reads "fallback" and meta.source reads "ares". The register fallback is included in the Pro and Business plans; the free tier covers 500 validations per month from VIES and the cache. Get an API key or read the API documentation.

Frequently asked questions

What does ARES return for a Czech VAT number?

ARES returns the whole record of the economic subject behind the number: its trade name, its seat as a formatted address, its legal form, and a registrations section describing the state of each register that holds data about it. The part Avatcado reads is narrow. It checks that the record carries a tax identification number and that the VAT source register reports the registration as active, and only that combination produces a fallback answer. Everything else in the record is ignored, so a change in an unrelated part of the response cannot alter what a validation says. The name and seat travel back to you as the company name and address on the response.

Why can ARES not check 9 and 10 digit Czech VAT numbers?

Czech VAT numbers are the letters CZ followed by 8, 9 or 10 digits. The 8-digit form is the company identification number of a legal entity, which is exactly the key ARES is organised around. The 9 and 10 digit forms are issued to individuals and are derived from personal identifiers, which are not published in a company register at all. So a lookup for one of those has nowhere to go, and Avatcado does not attempt it: those numbers skip the register entirely and fall through to the cache during a VIES outage. It is a limit of what Czechia publishes, not something a different query would work around.

Keep reading

Sources