[REF] Implementação do CNPJ Alfanumérico (NT 2025.001)#63
Open
renatonlima wants to merge 1 commit into
Open
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
CNPJ Alfanumérico (NT 2025.001)
Introdução
A Receita Federal do Brasil publicou a Instrução Normativa 2229 de 15 de outubro de 2024 que modifica a regra de formação do CNPJ no Brasil. Essa ação visa ampliar a capacidade de geração de números de CNPJ para abertura de empresas devido ao esgotamento da modelagem atual.
A previsão de geração dos primeiros CNPJ Alfanuméricos está definida para julho de 2026.
Esta nota técnica abrange os ambientes de autorização de documentos fiscais eletrônicos sob a coordenação do ENCAT:
Cronograma de implantação:
Nova Lei de Formação do CNPJ
O novo número de identificação — CNPJ Alfanumérico — terá o mesmo tamanho que o número atual, com 14 posições, distribuídas da seguinte forma:
Cálculo do Dígito Verificador do CNPJ Alfanumérico
A fórmula de cálculo do dígito verificador não muda: continua sendo pelo módulo 11. Porém, para garantir compatibilidade com CNPJs puramente numéricos existentes, altera-se o modo de obtenção dos valores usados no cálculo:
'0'→ 0,'9'→ 9).A= 17,B= 18,C= 19 … e assim por diante.Pesos utilizados no cálculo (posições 1 a 13, da esquerda para a direita):
Algoritmo (módulo 11):
valor_ascii - 48.soma_dv1.dv1 = 0sesoma_dv1 % 11 < 2, senãodv1 = 11 - (soma_dv1 % 11).dv1com peso 2 →soma_dv2.dv2 = 0sesoma_dv2 % 11 < 2, senãodv2 = 11 - (soma_dv2 % 11).Letras não permitidas
Algumas letras não devem ser aceitas no CNPJ Alfa por solicitação do ENCAT à Receita Federal:
I(letra i maiúscula)O(letra o maiúscula)U(letra u maiúscula)Q(letra q maiúscula)F(letra f maiúscula)Campos do Tipo CNPJ nos DFe
A expressão regular que valida um campo do tipo CNPJ nos schemas XSD passa a aceitar letras maiúsculas nas primeiras 12 posições:
Os campos que representam um CNPJ existem dispostos diversas vezes em todos os DFe, eventos e schemas de serviços disponíveis (emitente, destinatário, tomador, comprador, recebedor, expedidor, etc.).
Regras de Validação
A redação das regras de validação existentes não se altera: elas continuam indicando que o CNPJ informado deve ser válido em relação ao DV.
A partir da data de implantação, os ambientes autorizadores considerarão o novo cálculo de DV tanto para CNPJs numéricos quanto alfanuméricos. As rejeições já existentes continuarão sendo aplicadas.
Chave de Acesso com CNPJ Alfanumérico
A chave de acesso de qualquer DFe possui estrutura de 44 posições, sendo que as posições do CNPJ (posições 7 a 20) podem agora conter caracteres alfanuméricos:
A expressão regular que verifica a chave de acesso passa a suportar letras nas 12 primeiras posições do CNPJ:
Cálculo do DV da Chave de Acesso
O cálculo do DV da chave de acesso aplica a mesma lógica do CNPJ Alfa:
código_ASCII - 48.(mesma lógica já utilizada para chaves puramente numéricas).
Código de Barras dos Documentos Auxiliares
O padrão de código de barras impresso no documento auxiliar (DACTE, DANFE, DABPE, etc.) é o CODE-128C, que suporta somente números. Por isso, ele não é compatível com chaves de acesso que contenham caracteres alfanuméricos nas posições do CNPJ.
Novo Padrão Híbrido CODE-128A/C
Para suportar o CNPJ Alfa, adota-se um modelo híbrido:
100(CODE A ↔ CODE C).Dimensões mínimas
Cálculo do Dígito Verificador do CODE-128
O DV do código de barras é baseado no módulo 103, calculado pela soma ponderada dos valores de cada símbolo, incluindo o caractere de início (Start).
105como Start.103como Start.Algoritmo:
Orientações para alternância entre CODE-128C e CODE-128A
Inicie com o conjunto
C(pois a chave começa com quatro ou mais dígitos).Se os dados iniciam com número ímpar de dígitos: insira
Code Aantes do últimodígito ímpar.
Se 4 ou mais dígitos aparecerem em sequência enquanto no modo
A:Code Cantes do primeiro dígito.Code Capós o primeiro dígito (o primeiro permanece emA).Quando no modo C e um caractere não numérico ocorrer: insira
Code Aantes docaractere não numérico.
Exemplo de Validação — CNPJ Alfa (JavaScript)
O exemplo abaixo implementa a validação do CNPJ Alfa conforme a NT 2025.001:
Exemplo de Validação — Chave de Acesso (Visual Basic .NET)
Referência
formação do CNPJ no Brasil.
CNPJ Alfanumérico para DFe sob coordenação do ENCAT.