Menu

Validação de número fiscal: o que dá para conferir

A validação de número fiscal pode detectar erros de digitação, mas não provar que uma empresa existe. Veja onde termina a checagem automática e começa a consulta oficial.

Publicado em

  • número fiscal
  • validação
  • cadastro

A validação de número fiscal é a etapa em que um sistema confere o identificador tributário de uma empresa antes de aceitá-lo em um cadastro, uma fatura ou um processo de aprovação. Ela é útil, mas costuma ser mal compreendida: detectar um erro de digitação e provar que um negócio existe são coisas diferentes, e confundir as duas leva a decisões erradas. Neste texto, mostramos o que é possível conferir, o que não é e como projetar a checagem para não bloquear clientes legítimos.

O que é um número fiscal de empresa?

Número fiscal é o identificador que uma empresa recebe da administração tributária do país onde está registrada, e ele serve para que as obrigações de imposto sejam atribuídas a um contribuinte específico. Os nomes variam de lugar para lugar: alguns países chamam de identificação de contribuinte, outros usam a sigla do imposto correspondente, e há lugares em que o mesmo número vale para pessoas físicas e jurídicas.

Duas características importam para quem projeta sistemas. A primeira é que o número fiscal é local, emitido por uma autoridade de um país, e por isso só faz sentido acompanhado da indicação desse país. A segunda é que ele é distinto do número de registro: o registro diz que a empresa existe como ente jurídico, o número fiscal diz como ela se relaciona com o imposto.

Por que a validação automática tem limites?

Porque a única coisa que um algoritmo consegue fazer sem consultar ninguém é verificar a forma. Ele pode conferir se o valor tem o comprimento esperado, se usa apenas caracteres previstos e, quando o país publica uma regra de dígito de controle, se esse dígito fecha.

Nenhuma dessas checagens consulta a base oficial, então nenhuma delas pode afirmar que a empresa existe. Um valor inventado que respeite a forma passa em qualquer validação local; um valor real digitado com um caractere trocado é rejeitado corretamente. A validação serve para separar erros de digitação de valores plausíveis, e só isso.

Há ainda um limite adicional: nem todo país publica uma regra verificável por cálculo. Alguns emitem números simplesmente sequenciais, sem dígito de controle, e nesse caso não existe algoritmo capaz de dizer se o valor está certo. Um sistema que presume o contrário vai rejeitar identificadores válidos.

O que dá e o que não dá para conferir por algoritmo

Pergunta Dá para responder localmente? Como responder
O valor tem a forma esperada? Sim, quando a regra é conhecida Regra de formato por país
Os caracteres são permitidos? Sim Filtro de alfabeto e separadores
O dígito de controle fecha? Só quando existe regra publicada Cálculo de verificação
A empresa existe? Não Consulta ao registro oficial
A inscrição está ativa? Não Consulta ao serviço de inscrições
É um bom parceiro comercial? Não Análise própria

Se a sua aplicação responde às três primeiras linhas e nenhuma das três últimas, ela está no lugar certo. O erro clássico é achar que a terceira linha implica a quarta: um dígito de controle correto só indica que o número foi construído segundo a regra, não que ele pertença a alguém.

Quando a checagem falha: o que o sistema deve dizer

A mensagem de erro é a parte mais visível dessa etapa e a mais mal feita. Uma frase como “número inválido” junta causas completamente diferentes e não ajuda ninguém.

Vale separar três situações:

  • Erro de formato. O valor tem caracteres ou comprimento incompatíveis com o país indicado. A mensagem deve dizer exatamente o que se espera, sem jargão.
  • Dígito de controle inconsistente. O valor é plausível, mas a conta não fecha. Aqui a mensagem mais honesta é que pode haver um dígito trocado, e não que a empresa não existe.
  • Não foi possível confirmar. A consulta externa falhou ou não respondeu. Isso não é culpa do usuário, e o sistema deve permitir seguir adiante informando que a confirmação será feita depois.

A regra que resume tudo: o sistema pode afirmar que não conseguiu confirmar, mas não deve afirmar que a empresa não existe a menos que a consulta oficial tenha dito isso.

Números fiscais fictícios para testar o campo

No gerador de dados de empresa desta página, você escolhe o país e recebe uma ficha com número de registro e número de VAT gerados para aquele formato, junto com nome, sede e forma jurídica coerentes. Os valores existem apenas para teste, o que permite exercitar as três situações de erro sem tocar em dados de contribuintes reais.

Para entender a fronteira entre formato e inscrição, o texto sobre números de VAT detalha o caso europeu. Se a checagem faz parte de um processo de aprovação maior, o material sobre checklist de teste de KYB mostra o encaixe dessa etapa. E a página da Espanha serve como exemplo de país em que os campos precisam se comportar de forma específica.

Para quem desenvolve: três camadas, dois veredictos

O desenho que costuma funcionar organiza a conferência em três camadas, e mantém duas conclusões separadas: o valor está bem formado e o valor foi confirmado.

A primeira camada é de sanidade: alfabeto, separadores, comprimento folgado. Ela roda sempre e não depende de rede. A segunda é de integridade, aplicada somente quando o país tem regra publicada e confiável. A terceira é de existência, feita por consulta oficial, com tempo limite curto.

Três decisões tornam esse desenho sustentável:

  • Nunca implemente regras de todos os países por conta própria. A manutenção é infinita e o erro é silencioso. Mantenha poucas regras confiáveis e delegue o resto à consulta.
  • Não trate falha de rede como valor inválido. Um serviço fora do ar não diz nada sobre o número informado, e transferir esse problema para o cliente é o pior desfecho possível.
  • Registre o que foi verificado. Guarde data, camada e resultado. Sem isso, não há como responder a uma auditoria meses depois nem reproduzir uma decisão de aprovação.

Vale considerar ainda o efeito do cache. Guardar o resultado de uma consulta por um período reduz latência e carga, mas o resultado envelhece: uma inscrição pode ser encerrada depois da consulta. Deixe a validade do cache explícita e curta o bastante para não sustentar uma decisão antiga.

Próximos passos

Monte um caso de teste no gerador de dados de empresa e exercite as três situações de erro, inclusive a de serviço indisponível. Se o seu formulário também emite faturas, vale ver os casos de teste de formulário de cobrança, que tratam das ramificações encontradas nesse fluxo.

O material acima é orientação de engenharia para ambientes controlados. Nenhum número fiscal real é exibido, os exemplos são sintéticos e este conteúdo não deve ser usado para validar, simular ou representar a situação tributária de qualquer empresa existente.

Continue lendo

Artigos sobre Gerador de dados de empresa para testes