paemuri / brdoc

Brazilian docs validator for Go - CPF, CNPJ, CEP, RENAVAM, CNH and license plate!
The Unlicense
126 stars 27 forks source link

Bug com IsCNPJ para CNPJ 39591842000010 #26

Closed jvcoutinho closed 2 months ago

jvcoutinho commented 9 months ago

A lib diz que esse CNPJ 39.591.842/0000-10 não é válido: https://go.dev/play/p/Xx2wSw8yfDe

Mas todos os outros sites, incluindo o da Receita, dizem que é:

image

Pode ser um bug com o algoritmo.

paemuri commented 9 months ago

Primeiramente, obrigado pela contribuição e perdão pela demora! hehe

Sobre o seu caso... Mas isso é válido? Se não me engano, essa parte entre / e - (no caso, 0000) que representa a filial é incremental e começa sempre com 1. Por exemplo, o CNPJ do Banco do Brasil, o primeiro CNPJ do país, é 00.000.000/0001-91, e o teu exemplo não aparece no informecadastral.com.br.

Não sou o maior especialista no assunto, mas não me parece ser válido mesmo. :eyes: Qual é essa página da Receita em que você testou?

cc @tiagompalte por ter feito o PR (obrigado por isso).

jvcoutinho commented 8 months ago

@paemuri

Qual é essa página da Receita em que você testou?

Esse aqui: https://solucoes.receita.fazenda.gov.br/servicos/cnpjreva/Cnpjreva_Solicitacao.asp?cnpj=39591842000010

Quando o CNPJ é inválido, ele mostra a mensagem:

image

Mas, para esse CNPJ, ele mostra a mensagem:

image

Que informa que ele é de fato válido, mas não pertence a nenhuma empresa no momento.

paemuri commented 8 months ago

Obrigado pela resposta, @jvcoutinho.

Ainda não consigo entender como uma filial 0000 pode ser válida. Pesquisarei sobre o assunto.

paemuri commented 2 months ago

Vou fechar esta issue porque realmente creio que não devamos permitir 0000 no sufixo. Toda referência que eu busco mostra como o sufixo deve começar no 0001 (representando a matriz) e os valores sebsequentes (0002) representam filiais, como Wikipédia (aqui) e uma página da Sumup (aqui). Se em algum momento esta lib acabar barrando um CNPJ realmente sendo usado na prática, podemos reabri-lo. De qualquer forma, agradeço pela ajuda, @jvcoutinho; e para @tiagompalte também, por tentar implementar uma solução.