SAFTCheck
Docs / vies
nif.vies

VIES cross-check — NIF registered in EU VAT exchange

Header NIF is verified against the EU VIES service and the registered name is compared with the SAF-T CompanyName.

What VIES is

VIES (VAT Information Exchange System) is the EU's official VAT-registration look-up service, operated by the European Commission. Each member state's tax authority feeds the registered VAT numbers into VIES, and any party — including SAFTCheck — can call its public REST endpoint to confirm whether a given country + VAT number is currently registered.

What SAFTCheck checks

For every validation we cross-check one NIF against VIES: the file's Header.TaxRegistrationNumber (your own company NIF, prefixed with country code PT). Customer and supplier NIFs are not VIES-checked — there can be hundreds of them per file, VIES is rate-limited and slow, and the most valuable signal is whether the file's owning entity is who it claims to be.

What you'll see

OutcomeSAFTCheck output
NIF is registered, name matchesinfo: "NIF cross-checked against VIES — registered for VAT" with the registered legal name shown
NIF is registered, name does not matchwarning: "CompanyName does not match VIES" with both the SAF-T value and the VIES value visible
NIF is Mod-11-valid but not in VIESinfo: "NIF is Mod-11-valid but not VAT-registered in VIES" — legitimate for sole-traders and other non-VAT entities
VIES unreachable / timeoutsilent — no finding (we never block validation on a third-party outage)
NIF fails Mod-11silent for VIES — the Mod-11 check already flagged it
NIF is the "Consumidor final" sentinel 999999990silent — by design, not a real registration

How the name comparison works

VIES occasionally returns a slightly different legal name than the ERP exports — extra whitespace, a trailing legal-form abbreviation (LDA, SA, Unipessoal), different casing. We normalise both sides to lowercase alphanumerics and accept either side being a prefix of the other before flagging a mismatch. This avoids noisy warnings on cosmetic differences while still catching genuine "wrong NIF on the wrong company" mistakes.

Performance and reliability

  • Timeout: 3 seconds per VIES call. If the EU service is slow, we move on without blocking the rest of validation.
  • Caching: successful VIES results are cached for 24 hours per NIF. Re-validating the same file (or another file with the same Header NIF) does not re-hit the EU endpoint.
  • Failure mode: when VIES is down or returns an error, we cache nothing and the next validation retries. Validation never fails because of a VIES outage.

What VIES does not tell you

  • It does not certify that the NIF is valid for tax-compliance purposes. AT may have additional restrictions VIES does not surface.
  • It does not check the customer or supplier NIFs in the file (intentional — see scope above).
  • It does not detect intra-day registration changes; the cache is up to 24h old.

Related

  • NIF Mod-11 — the offline check that runs before VIES.
  • Inline editor — fix the Header NIF in place if VIES says the wrong one is in the file.

Other rules

Usamos um cookie de sessão para autenticação e um cookie de idioma. Sem rastreadores de terceiros. Veja a nossa Política de Privacidade.