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 una cookie de sesión para iniciar sesión, una cookie de idioma para la preferencia lingüística y Tawk.to para el widget de chat en vivo (que establece sus propias cookies al abrir el chat). Google Analytics (GA4) se carga solo después de que aceptes, con anonimización de IP; sin rastreadores publicitarios. Consulta nuestra Política de Privacidad.