2. Fiscal - NFe

PROC005 - Ajustes Chave de Acesso Alfanumérica NF-e e NFC-e


image-1762776253666.png

Projeto/Sistema:
GERENCIAMENTO DE PROJETOS
Versão do Template:
1.2
Processo:
Descrição Processo
Versão do Documento:
1.0
Responsável(eis): 
-

Data: 

05/01/2026

1. Introdução

Este processo visa exemplificar a documentação padrão

2. Processo (adicionar fluxograma exemplo)

 

image-1724162109370.png

I - Fluxograma Exemplo

 

Processo

Envolvidos

Dados de Entrada

Dados de Saída

Processo

N/A

N/A

N/A

Processos Relacionados


Documentação Exemplo 1 

Documentação Exemplo 2

Especificação Funcional


PROC005 - Ajustes Chave de Acesso Alfanumérica NF-e e NFC-e:

Regras de Negócio:

1. Estrutura da chave de acesso (44 caracteres): A chave é composta por 9 blocos concatenados: UF(2) + AAMM(4) + CNPJ emitente(14) + modelo(2) + série(3) + número da nota(9) + tipo de emissão(1) + código numérico aleatório(8) + DV(1). Apenas o bloco do CNPJ pode conter letra, os demais blocos permanecem numéricos.

1.1 Exemplo de chave NUMÉRICA legada (referência): Para CNPJ numérico 12.345.678/0001-95 emitindo NF-e em SP (UF=35) em julho/2026, modelo 55, série 1, nota 123, tipo emissão normal (1), código 12345678 — a chave fica: 35 2607 12345678000195 55 001 000000123 1 12345678 + DV. Resultado: 35260712345678000195550010000001231123456786 (DV=6 calculado).

1.2. Exemplo de chave ALFANUMÉRICA nova: Para o mesmo cenário mas com CNPJ alfanumérico oficial 12.ABC.345/01DE-35 (publicado pela RFB como exemplo), a chave fica: 35 2607 12ABC34501DE35 55 001 000000123 1 12345678 + DV. Resultado: 35260712ABC34501DE3555001000000123112345678 + DV. O DV é calculado pelo mesmo algoritmo, agora considerando os valores ASCII das letras.

2. DV da chave gerado localmente (não pela lib): O dígito verificador da chave de acesso (44º caractere) é calculado pelo próprio projeto antes de enviar para a SEFAZ. A biblioteca de comunicação fiscal apenas recebe a chave já pronta. O algoritmo de cálculo (módulo 11 sobre os 43 caracteres anteriores, usando ASCII menos 48 para cada caractere) já é compatível com o formato alfanumérico.

2.1 Calculo: Serão utilizados, no cálculo do módulo 11, os valores relativos a letras maiúsculas da tabela código ASCII, como solução para unificar a representação de caracteres alfanuméricos.

2.2 Na rotina de cálculo do Dígito Verificador (DV) no CNPJ, serão substituídos os valores numéricos e alfanuméricos pelo valor decimal correspondente ao código constante na tabela ASCII e dele subtraído o valor 48. Desta forma os caracteres numéricos continuarão com os mesmos montantes, e os caracteres alfanuméricos terão os seguintes valores: A=17, B=18, C=19… e assim sucessivamente. 

Caractere ASCII Valor no cálculo
'0' a '9' 48–57 0 a 9
'A' 65 17
'B' 66 18
'C' 67 19
'D' 68 20
'E' 69 21
'F' 70 22
'G' 71 23
'H' 72 24
'I' 73 25
'J' 74 26
'K' 75 27
'L' 76 28
'M' 77 29
'N' 78 30
'O' 79 31
'P' 80 32
'Q' 81 33
'R' 82 34
'S' 83 35
'T' 84 36
'U' 85 37
'V' 86 38
'W' 87 39
'X' 88 40
'Y' 89 41
'Z' 90 42

1.3 O calculo do DV chave de acesso deverá ser feito considerando o valor ASCII das letras do CNPJ contidos na chave, ATUALMENTE O SISTEMA JÁ APLICARIA ESSE ALGORITMO.
Exemplo de chave:

CHAVE ALFANUMÉRICA: 35260712ABC34501DE3555001000000123112345678
Bloco Tam Valor Significado
cUF 2 35 São Paulo
AAMM 4 2607 Julho/2026
CNPJ emitente 14 12ABC34501DE35 CNPJ alfanumérico (sem pontuação, em maiúsculas)
mod 2 55 NF-e
série 3 001 Série 1 (preenchida com zeros à esquerda)
nNF 9 000000123 Nota nº 123 (zeros à esquerda)
tpEmis 1 1 Emissão normal
cNF 8 12345678 Código numérico aleatório da nota

1.3.1 Aplicado pesos cíclicos 2,3,4,5,6,7,8,9,2,3,4,5,6,7,8,9... da direita para a esquerda.

1.3.2 Soma dos produtos (por blocos para conferência):

2. Composição da chave preservando letras: Hoje a composição da chave aplica uma rotina que apaga letras do CNPJ antes de concatená-lo. Essa rotina precisa ser substituída por uma que preserve A-Z e 0-9, removendo apenas pontuação. Após a correção, o CNPJ alfanumérico entra na chave inteira e o DV sai correto automaticamente.

Questões Técnicas:

1. A coluna 'nfe'.'chaveAcesso' esta como VARCHAR(255), não sendo necessário ajuste em banco.

2. Arquivos a alterar da composição da chave - Pontos críticos da montagem da chave:

Arquivo : linha

Risco

Descrição / Ação

adapters/xml/nfe/EnvioNfeAdapter.java : 29

Crítico

CpfOrCnpjUtil.clean(empresa.getCnpj()) — herda correção de PROC001 (clean preserva letras).

adapters/xml/nfe/EnvioNfeAdapter.java : 46

Sem ação

ModValidador.of(11, value, value.length(), 4).calc() — algoritmo já compatível.

adapters/xml/nfce/EnvioNfceAdapter.java : 36, 53

Crítico/Sem ação

Mesma estrutura do NFe — herda PROC001.

util/NFCeUtil.java : 145, 151

Crítico

lpadTo(cnpjCpf.replaceAll("\D",""), 14, '0') — substituir limpeza por uma que preserve letras.

adapters/xml/nfe/NfeAdapter.java : 67

Sem ação

Apenas extrai o DV via chaveAcesso.substring(chaveAcesso.length() - 1) — agnóstico.

validadores/ModValidador.java : 179, 192

Sem ação

char - '0' é o algoritmo oficial alfanumérico.

©SOFTEN SISTEMAS 2026

PROC005.1 - Ajustes em Preenchimentos em Tela


image-1762776253666.png

Projeto/Sistema:
GERENCIAMENTO DE PROJETOS
Versão do Template:
1.2
Processo:
PROC005.1 - Ajustes em Preenchimentos em Tela
Versão do Documento:
1.0
Responsável(eis): 
Luís Leite

Data: 

27/05/2026

1. Introdução

Este processo visa exemplificar a documentação padrão

2. Processo

 

Processo

Envolvidos

Dados de Entrada

Dados de Saída

PROC005.1.1 - NFE - Ajustes em Preenchimentos em Tela - Referenciar Documento

 

 

 

PROC005.1.2 - NFE - Ajustes em Preenchimentos em Tela - Imposto por Produto

 

 

 

 

Processos Relacionados


Documentação Exemplo 1 

Documentação Exemplo 2

Especificação Funcional


PROC005.1.1 - NFE - Ajustes em Preenchimentos em Tela - Referenciar Documento:

Tela:

image-1779888970031.png

Imagem I - Chave NFe Referenciada.

image-1779889017911.png

Imagem II - Chave NFe Referenciada de antecipação de pagamento.

image-1779889207759.png

Imagem III - NF-e de Produtor Rural.

Descrição dos Campos:

Campo

Tipo

Tamanho

Obrig. ?

Máscara

Observações

Chave Nota (Ref NF-e)

Texto

44

-

-

-

CNPJ/CPF Emitente*

Texto

14

Sim

-

-

Regras de Interface:

1. Chave Nota (Ref NF-e): Deve ser alterado para permitir o uso de alfanumérico. Atualmente existe tratamento para limpar a chave caso existam valores incorretos para a validação atual. Manter normalização para remoção de espaços e caracteres especiais. Normalizar para caixa alta as letras inseridas.
2. CNPJ/CPF Emitente*: Conferir validação do campo para aceitar alfanumérico. Reaproveitar validações do PROC001 - Núcleo de validação de formatação de CNPJ

2.1. Normalização: Deve ser tratado para deixar todas as letras em caixa alta(maiúsculo) visando a padronização da informação.

Regras de Negócio:

1. Chave Nota (Ref NF-e): A chave de acesso passa por validação de DV. Manter a validação de chave vazia e 44 digitos. O tratamento para caixa maior visa manter a validação do DV.

1.1. Mapeamento de valores para o cálculo (ASCII menos 48): Cada caractere da chave entra no cálculo do DV com seu valor ASCII menos 48: dígitos '0' a '9' valem 0 a 9 (como sempre); letras 'A' a 'Z' valem 17 a 42 ('A'=17, 'B'=18, 'C'=19, 'D'=20, 'E'=21, ..., 'Z'=42). O salto entre '9' (valor 9) e 'A' (valor 17) é por causa dos caracteres ASCII entre eles (':;<=>?@') que não são usados.

1.2. Cálculo do DV (algoritmo mantido): O DV é calculado por módulo 11 sobre os 43 caracteres anteriores, lendo da direita para a esquerda, multiplicando cada caractere por pesos cíclicos 2, 3, 4, 5, 6, 7, 8, 9, 2, 3, 4... Soma-se tudo, calcula o resto da divisão por 11. Se o resto for 0 ou 1, DV = 0; senão DV = 11 - resto. O resultado é sempre um dígito de 0 a 9, o DV NUNCA é letra.

1.3 O calculo do DV chave de acesso deverá ser feito considerando o valor ASCII das letras do CNPJ contidos na chave, ATUALMENTE O SISTEMA JÁ APLICARIA ESSE ALGORITMO.
Exemplo de chave:

CHAVE ALFANUMÉRICA: 35260712ABC34501DE3555001000000123112345678
Bloco Tam Valor Significado
cUF 2 35 São Paulo
AAMM 4 2607 Julho/2026
CNPJ emitente 14 12ABC34501DE35 CNPJ alfanumérico (sem pontuação, em maiúsculas)
mod 2 55 NF-e
série 3 001 Série 1 (preenchida com zeros à esquerda)
nNF 9 000000123 Nota nº 123 (zeros à esquerda)
tpEmis 1 1 Emissão normal
cNF 8 12345678 Código numérico aleatório da nota

1.3.1 Aplicado pesos cíclicos 2,3,4,5,6,7,8,9,2,3,4,5,6,7,8,9... da direita para a esquerda.

1.3.2 Soma dos produtos (por blocos para conferência):

PROC005.1.2 - NFE - Ajustes em Preenchimentos em Tela - Imposto por Produto:

Tela:

image-1779899167122.png

Imagem I - CNPJ Encomendante da importação na Tela de Imposto Produto na Nota

image-1779899343311.png

Imagem II - Chave de Acesso de exportação na Tela de Imposto Produto na Nota

image-1779899510285.png

Imagem III - CNPJ Fabricante na aba 'Outros' na Nota Fiscal.

image-1779899486599.png

Imagem IV - CNPJ Fabricante na aba 'Outros' na Nota Fiscal.

Descrição dos Campos:

Campo

Tipo

Tamanho

Obrig. ?

Máscara

Observações

Aba de Importação

CNPJ Encomendante

Texto

14

-

-

-

Aba de Exportação

Chave da NF-e

Texto

44

-

-

-

Aba Outros

CNPJ Fabricante

Texto

14

-

-

-

DFe Referenciado

Texto

44

-

-

-

Regras de Interface:

1. CNPJ Encomendante: O campo aceita alfanumérico. Validar o tamanho máximo e a normalização para caixa alta.
2. Chave da NF-e: Atualmente permite a inserção alfanumérica. Normalizar para remoção de espaços e caracteres especiais e transformar em caixa alta as letras inseridas.
3. CNPJ Fabricante: O campo aceita alfanumérico. Validar o tamanho máximo e a normalização para caixa alta.
4. DFe Referenciado: Deve ser alterado para permitir o uso de alfanumérico. Normalizar removendo espaços e caracteres especiais, manter as letras em caixa alta.

Regras de Negócio:

1. Não são feitas validações de DV.

Questões Técnicas:

1. O campo 'nfereferenciada'.'refNfe' esta como VARCHAR(255), não necessitando mudanças.
2. O campo 'nfeproduto'.'cnpjEncomendante' esta como VARCHAR(255), não necessitando mudanças.
3. O campo 'nfeproduto'.'chaveNfeExport' esta como VARCHAR(44), não necessitando mudanças.
4. O campo 'nfeprodutosinfo'.'CNPJFab' esta como VARCHAR(14), não necessitando mudanças.
5. O campo 'nfeproduto'.'chaveDfe' esta como VARCHAR(44), não necessitando mudanças.

©SOFTEN SISTEMAS 2026

PROC005.2 - Alterações em XML


image-1762776253666.png

Projeto/Sistema:
GERENCIAMENTO DE PROJETOS
Versão do Template:
1.2
Processo:
PROC005.2 - Alterações em XML
Versão do Documento:
1.0
Responsável(eis): 
-

Data: 

05/01/2026

1. Introdução

Este processo visa exemplificar a documentação padrão

2. Processo

Processo

Envolvidos

Dados de Entrada

Dados de Saída

Processo

N/A

N/A

N/A

Processos Relacionados


Documentação Exemplo 1 

Especificação Funcional


PROC005.2 - Alterações em XML:

Regras de Negócio:

1. A geração de XML é realizada pela LIB, basta passar os valores tratados em concordância com o alfanumérico.
2. Os retornos do governo de eventos e autorizações também irão retornar CNPJ alfanumérico.
3. O Schema XSD deve estar atualizado em conformidade com a ultima versão.

Questões Técnicas:

1. Grupo BA. Documento Fiscal Referenciado:

image-1779906279379.png

2. Grupo C. Identificação do Emitente da Nota Fiscal eletrônica:

image-1779906372493.png

3. Grupo E. Identificação do Destinatário da Nota Fiscal eletrônica

image-1779906686035.png

4. Grupo G. Identificação do Local de Retirada

image-1779906702256.png

5. Grupo G. Identificação do Local de Entrega

image-1779906715656.png

6. Grupo GA. Autorização para obter XML

image-1779907130519.png

7. Grupo I. Produtos e Serviços da NF-e

image-1779907264394.png

8. Grupo I01. Produtos e Serviços / Declaração de Importação

image-1779907739552.png

9. Grupo I03. Produtos e Serviços / Grupo de Exportação

image-1779907756812.png

10. Grupo O. Imposto sobre Produtos Industrializados

image-1779907776471.png

11. Grupo X. Informações do Transporte da NF-e

image-1779907790455.png

12.Grupo YA. Informações de Pagamento

image-1779907808097.png

13. Grupo YB. Informações do Intermediador da Transação

image-1779907829460.png

14. Grupo VC. Referenciamento de item de outro Documento Fiscal Eletrônico - DF-e

image-1779907856978.png

14. Grupo ZD. Informações do Responsável Técnico

image-1779909106517.png

©SOFTEN SISTEMAS 2026

PROC005.3 - Ajustes Jasper


image-1762776253666.png

Projeto/Sistema:
GERENCIAMENTO DE PROJETOS
Versão do Template:
1.2
Processo:
Descrição Processo
Versão do Documento:
1.0
Responsável(eis): 
-

Data: 

05/01/2026

1. Introdução

Este processo descreve a adaptação dos relatórios Jasper (DANFE NF-e, DANFE NFC-e e Carta de Correção) ao CNPJ Alfanumérico previsto pela NT 2026.004. Com a entrada das letras nas 12 primeiras posições do CNPJ, a chave de acesso de 44 caracteres também pode conter letras (nas posições 7 a 20, faixa do CNPJ do emitente).

2. Processo 

Processo

Envolvidos

Dados de Entrada

Dados de Saída

Processo

N/A

N/A

N/A

Processos Relacionados


Documentação Exemplo 1 

Documentação Exemplo 2

Especificação Funcional


PROC005.3 - Ajustes Jasper:

Protótipo de Tela:

 

Descrição dos Campos:

Campo

Tipo

Tamanho

Obrig. ?

Máscara

Observações

Campo

Texto

100

Sim

-

-

Regras de Interface:

1.Renderização visual mantida: O layout do DANFE NF-e, DANFE NFC-e e Carta de Correção permanece inalterado. As mudanças são internas ao template e ao subtipo do código de barras.

Regras de Negócio:

1. Subtipo do código de barras da chave: O código de barras Code 128 usado para representar a chave de acesso na DANFE NF-e e na Carta de Correção deve aceitar caracteres alfanuméricos. O subtipo atual (Code 128C, otimizado para apenas pares de dígitos) precisa ser substituído por Code 128B (que aceita letras A-Z, dígitos 0-9 e símbolos) ou Code 128 em modo automático (que escolhe o subtipo conforme o conteúdo).
2. Formatação visual do CNPJ e da chave: A formatação do CNPJ na máscara XX.XXX.XXX/XXXX-XX e da chave em blocos de 4 caracteres é feita por substring. Funciona corretamente com letras sem nenhum ajuste.
3. Determinação do rótulo CPF × CNPJ no destinatário (NFC-e): O rótulo do destinatário ("CPF:" ou "CNPJ:") deve ser determinado pelo número de caracteres do documento APÓS remover pontuação, considerando que letras devem ser preservadas. CPF tem 11 caracteres (numéricos); CNPJ tem 14 caracteres (alfanuméricos ou numéricos). A lógica atual baseada exclusivamente no comprimento do valor formatado (14 = CPF formatado, 18 = CNPJ formatado) falha quando o CNPJ alfanumérico chega sem máscara passa a ter 14 caracteres e seria rotulado erroneamente como CPF.

PROC005.3.1 - Ajustes Jasper - DANFe - Código de Barras da Chave de Acesso:

Regras de Negócio:

1. Troca obrigatória de subtipo Code 128: O subtipo Code 128C é incompatível com letras. Precisa ser trocado por Code 128B (alfanumérico maiúsculo) ou Code 128 (modo automático).
2. Sem mudança no conteúdo codificado:
O dado codificado no código de barras continua sendo a chave de acesso de 44 caracteres. Apenas o algoritmo de codificação muda.

PROC005.3.2 - Ajustes Jasper - DANFCe:

Regras de Negócio:

1. Ajustes Label consumidor: O rótulo deve ser escolhido pelo número de caracteres do documento APÓS remover pontuação (preservando letras): 11 caracteres = CPF (numérico); 14 caracteres = CNPJ (alfanumérico ou numérico); qualquer outro tamanho = Id. Estrangeiro. A lógica atual decide pelo comprimento do valor formatado (14 = CPF, 18 = CNPJ), o que falha quando o CNPJ alfanumérico chega sem máscara pois tem 14 caracteres e seria rotulado como CPF.
2. Identificador estrangeiro inalterado: Documentos que não se enquadrem em 11 ou 14 caracteres continuam sendo rotulados como "Id. Estrangeiro:".
3. CPF continua exclusivamente numérico: Apenas CPF formatado (14 com pontuação) ou puro (11 numérico) recebe rótulo "CPF:". CPF não tem letras.

PROC005.3.2 - Ajustes Jasper - DANFCe:

Regras de Negócio:

1. Ajustes Label consumidor: O rótulo deve ser escolhido pelo número de caracteres do documento APÓS remover pontuação (preservando letras): 11 caracteres = CPF (numérico); 14 caracteres = CNPJ (alfanumérico ou numérico); qualquer outro tamanho = Id. Estrangeiro. A lógica atual decide pelo comprimento do valor formatado (14 = CPF, 18 = CNPJ), o que falha quando o CNPJ alfanumérico chega sem máscara pois tem 14 caracteres e seria rotulado como CPF.
2. Identificador estrangeiro inalterado: Documentos que não se enquadrem em 11 ou 14 caracteres continuam sendo rotulados como "Id. Estrangeiro:".
3. CPF continua exclusivamente numérico: Apenas CPF formatado (14 com pontuação) ou puro (11 numérico) recebe rótulo "CPF:". CPF não tem letras.6

 

©SOFTEN SISTEMAS 2026