Executando verificação de segurança...
1

O fato da inclusão de letras no CNPJ estar programada apenas para 2026 mas já termos uma biblioteca
suportando essa nova versão é incrível.

Mas tenho uma dúvida, como você lidou com a validação disso? Quero dizer, teria como validar um CNPJ com letras hoje, da mesma forma que se valida um CNPJ numérico por meio do dígito verificador?

Talvez seja até uma sugestão para implementação futura.

Carregando publicação patrocinada...
1

A forma de validação que foi feita no pacote consegue validar ambos os cenários sem nenhuma intervenção, seja o CNPJ com apenas números (versão 1) quanto o CNPJ que possui alfanuméricos (versão 2).

No pacote o único momento que se faz necessário especificar a versão é caso queira gerar um CNPJ, nesse caso o default é a versão 1, mas é possível informar que deseja usar a versão com alfanuméricos.

No arquivo de testes do CNPJ eu criei cenários para validar ambos os casos.

Veja um exemplo de teste para o CNPJ na versão com dígitos:

t.Run("Should return no error if CNPJ is valid", func(t *testing.T) {
    // Arrange
    input := "59.541.264/0001-03"

    sut := cnpj.New()

    // Act
    res := sut.IsValid(input)

    // Assert
    if res != nil {
        t.Errorf("Expected no error, got %v", res)
    }
})

Agora outro cenário com o CNPJ contendo alfanuméricos:

t.Run("Should return no error if CNPJ with letters is valid", func(t *testing.T) {
    // Arrange
    input := "12.ABC.345/01DE-35"

    sut := cnpj.New()

    // Act
    res := sut.IsValid(input)

    // Assert
    if res != nil {
        t.Errorf("Expected no error, got %v", res)
    }
})

Veja que a implementação e o uso do pacote é igual independente se recebeu um CPNJ na versão antiga ou na nova.

1

Sendo o CNPJ formado por 14 dígitos, e considerando que:

Os 8 primeiros: são o número base da empresa (identificação única).

Os 4 seguintes: Código da filial (matriz sempre têm 0001, filiais podem ter 0002, 0003, etc.).

Os dois últimos: Dígitos verificadores, usados para validar a autenticidade do CNPJ.

Acredito que as letras irão compor apenas o número base. E a fórmula para calcular o dígito verificador deve mudar.

Fonte: https://www.contabilizei.com.br/contabilidade-online/o-que-e-cnpj/

2