Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Novo padrão do CNPJ 2026 #104

Open
wants to merge 17 commits into
base: master
Choose a base branch
from

Conversation

victorers1
Copy link
Contributor

@victorers1 victorers1 commented Dec 20, 2024

Contexto

Conforme dito na issue #103, a Receita Federal publicou a Instrução Normativa RFB nº 2.229, de 15 de outubro de 2024, que altera o formato do Cadastro Nacional da Pessoa Jurídica (CNPJ).

A transição para o formato alfanumérico está prevista para julho de 2026.

O novo CNPJ terá 14 posições:

  • As oito primeiras identificarão a raiz do novo número, compostas por letras e números.
  • As quatro seguintes representarão a ordem do estabelecimento, também alfanuméricas.
  • As duas últimas posições, que correspondem aos dígitos verificadores, continuarão a ser numéricas.

Mais detalhes em gov.br.

Sugestões

  • Cria CnpjAlfanumericoValidator para gerar e validar CNPJs no novo padrão
  • Cria CnpjAlfanumericoInputFormatter para formatar CNPJs no novo padrão
  • Cria CpfOuCnpjAlfanumericoFormatter para formatar campos mistos de CPF/Novo CNPJ
  • Adiciona campos no App exemplo:
    • Novo CNPJ
    • CPF/Novo CNPJ
  • Cria casos de testes com CNPJs alfanuméricos
  • Adiciona testes em métodos existentes
  • Adapta UtilBrasilFields.isCNPJValido e UtilBrasilFields.gerarCNPJ para trabalhar com os dois padrões
  • Devido ao novo Formatter composto CpfOuCnpjAlfanumericoFormatter, adiciona toUpperCase na saída do CpfInputFormatter.

Testes uniários do validators mantiveram-se em 100%:

Screenshot 2025-01-25 at 17 14 15

@victorers1
Copy link
Contributor Author

@rubensdemelo pode revisar, por favor?

@rubensdemelo
Copy link
Collaborator

Estou de férias e quando voltar eu avalio

@rubensdemelo
Copy link
Collaborator

@victorers1 irei avaliar esta semana. obrigado

@rubensdemelo
Copy link
Collaborator

@victorers1 Por compatibilidade, o ideal é termos 2 formatters para CNPJ: o atual e o novo (alfanumérico). Criar um novo formatter CnpjNovo/CnpjAlfanumerico + InputFormatter. Assim, é possivel implementar e testar, sem perder a compatibilidade ou "quebrar" nenhuma outra funcionalidade ja existente. Manter toda a estrutura do atual formatter como está e adicionar uma nova estrutura para o novo.

@victorers1
Copy link
Contributor Author

@rubensdemelo beleza, farei dessa forma. Te aviso quando estiver pronto para avaliação.

@victorers1
Copy link
Contributor Author

@rubensdemelo
Pode avaliar agora. Atualizei o texto do PR com explicações.

@rubensdemelo
Copy link
Collaborator

@victorers1 obrigado, revisando.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants