1001Ferramentas
🇪🇺Validadores

Validador de VAT (EU) por País

Valida o formato de números VAT da União Europeia conforme regras de cada país (DE, FR, IT, ES, PT, NL, BE, AT etc.).

Validação de VAT da UE: formatos por país e o sistema VIES

O número VAT (Value Added Tax — equivalente europeu ao IVA) é o identificador fiscal que toda empresa registrada para IVA na União Europeia carrega em notas fiscais, declarações aduaneiras e registros de fornecimento intracomunitário. Validar um VAT não é um algoritmo único — cada um dos 27 Estados-membros publica seu próprio comprimento, alfabeto e regra de dígito verificador, e um validador robusto precisa primeiro separar o prefixo de país (duas letras ISO-3166) do corpo e então despachar para a rotina correta. Esta página roda tudo no navegador, sem chamadas para o VIES.

A base legal é a Diretiva 2006/112/CE do Conselho e o portal VIES (VAT Information Exchange System) operado pela DG TAXUD. O VIES é a única fonte oficial para confirmar se um número está ativo hoje — a validação sintática local (o que esta ferramenta faz) é necessária mas não suficiente antes de emitir nota intracomunitária com isenção.

Resumo dos formatos por país

  • DE Alemanha: DE + 9 dígitos, dígito por mod 11 (ex.: DE123456789).
  • FR França: FR + chave alfanumérica de 2 + 9 dígitos SIREN (FR12345678901); chave derivada do SIREN mod 97.
  • IT Itália: IT + 11 dígitos, dígito estilo Luhn (IT12345678901).
  • ES Espanha (NIF-IVA): ES + 9 caracteres, uma letra + 7 dígitos + uma letra, ou variantes DNI/NIE.
  • NL Holanda: NL + 9 dígitos + B + sufixo de 2 dígitos (NL123456789B01) — o esquema pós-2020 é randomizado.
  • PT Portugal: PT + 9 dígitos — coincide com o NIF pessoal/empresarial.
  • IE Irlanda: 8 ou 9 caracteres, pode conter +, * ou duas letras em padrões legados.
  • PL Polônia: PL + 10 dígitos, mod 11 ponderado.
  • BE Bélgica: BE + 10 dígitos começando em 0 ou 1, mod 97.
  • GB Reino Unido: pós-Brexit, não é mais VAT da UE — exceto Irlanda do Norte, que usa o prefixo XI e segue no VIES.

Algoritmos de dígito verificador

A maioria dos países da UE adota variações de mod 11 ou mod 97 para o DV. A Itália usa o mesmo "Luhn" (dobrar e somar) dos cartões de crédito. A Espanha mistura letras no corpo, então sua rotina é mais parecida com um hash do que com aritmética. A Alemanha pondera as posições 2,4,8,5,10,9,7,3,6 numa cascata multiplicativa, enquanto a Bélgica calcula 97 - (corpo mod 97) nos primeiros oito dígitos. Um validador genérico precisa, portanto, de uma tabela de dispatch indexada pelo código de país.

// Pseudocódigo: dispatch pelo código ISO do país
function validarVAT(raw) {
  const cc    = raw.slice(0, 2).toUpperCase()
  const corpo = raw.slice(2).replace(/[\s.-]/g, '')
  const regra = REGRAS_VAT[cc]            // regex + fn de DV por país
  if (!regra) return { ok: false, motivo: 'país desconhecido' }
  if (!regra.regex.test(corpo)) return { ok: false, motivo: 'formato inválido' }
  return { ok: regra.check(corpo), pais: cc }
}

VIES, OSS e fornecimento intracomunitário

Um vendedor brasileiro exportando via Mercado Livre EU, Magazine Luiza Marketplace B2B ou contrato direto B2B precisa colocar o VAT do cliente na nota para que valha o regime de reverse-charge — o IVA passa a ser obrigação do comprador, não do vendedor. Emitir nota com isenção contra um VAT fictício é o sinal clássico de carousel fraud, então a Comissão Europeia exige consulta em tempo real ao VIES antes do embarque. O endpoint SOAP gratuito (ec.europa.eu/taxation_customs/vies/services/checkVatService) tem rate limit mas não exige autenticação; stacks de produção costumam cachear a resposta por (país, número) por 24 horas.

Para serviços digitais a consumidores da UE, o regime OSS (One-Stop Shop) — que substituiu o antigo MOSS (Mini One-Stop Shop) em julho/2021 — permite com um único registro de IVA coletar imposto para os 27 Estados-membros. Vendedores não-UE (incluindo SaaS brasileiros) podem se registrar no non-Union OSS.

LGPD/GDPR, GB pós-Brexit e ferramentas

Números de VAT identificam pessoa jurídica e, quando o registrante é MEI/autônomo, se qualificam como dado pessoal sob GDPR Art. 4(1) e, no Brasil, sob a LGPD. Logs com VAT pedem o mesmo controle de retenção que CPF ou e-mail. Após o Brexit, números com prefixo GB deixaram o VIES em 1º de janeiro de 2021; só sobrou XI (Irlanda do Norte). O número GB antigo ainda é validável sintaticamente — seu corpo de 9 dígitos usa o mod 97 histórico — mas a consulta ao VIES retorna "serviço indisponível para este Estado-membro".

  • Bibliotecas: node-vat e jsvat em JavaScript, python-stdnum em Python, valvat em Ruby — todas embarcam o dispatch por país.
  • Portal OSS da UE: oss.europa.eu para registro e declarações trimestrais.
  • CFE Tax Advisers Europe: entidade independente que acompanha a implementação do IVA por país.

FAQ

O VIES é gratuito? Sim. Os endpoints SOAP e REST não têm tarifa, só rate limit. Aplicações em produção devem cachear e fazer backoff em HTTP 429.

O que aconteceu com GB pós-Brexit? O Reino Unido (prefixo GB) saiu do VIES em 1º de janeiro de 2021. A Irlanda do Norte permaneceu via o prefixo dedicado XI.

Um DV válido prova que a empresa existe? Não. A validação sintática só pega erros de digitação. O VIES prova que o número está registrado hoje, e ainda assim não certifica o nome fantasia da nota.

Como evitar carousel fraud? Cruze o VAT com o VIES em cada embarque, guarde a resposta SOAP como evidência e fique atento a notas com rotação frequente de número vindas do mesmo endereço.

SaaS brasileiro pode usar OSS? Pode — basta registrar no esquema non-Union OSS em qualquer Estado-membro (Irlanda e Malta são populares) e recolher o IVA do país do consumidor em uma única declaração trimestral.

Ferramentas Relacionadas