# 2. Fiscal - NFe



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

<table border="1" id="bkmrk-%C2%A0-projeto%2Fsistema%3Age" style="border-collapse: collapse; width: 100.123%; height: 68px;"><tbody><tr style="border-style: solid;"><td rowspan="3" style="width: 26.6667%; height: 68px; border-color: black; border-top-style: hidden; border-left-style: hidden; border-bottom-style: hidden;">  
<span style="color: #000000;">[![image-1762776253666.png](https://docs.softensistemas.com.br/uploads/images/gallery/2025-11/scaled-1680-/image-1762776253666.png)](https://docs.softensistemas.com.br/uploads/images/gallery/2025-11/image-1762776253666.png)</span>

</td><td style="width: 49.9999%; height: 10px; border-color: black; border-style: solid;"><span style="color: #000000;">**Projeto/Sistema:**</span>  
<span style="color: #000000;">GERENCIAMENTO DE PROJETOS</span></td><td class="align-center" style="width: 23.3333%; height: 10px; border-color: black; border-style: solid;"><span style="color: #000000;">**Versão do *Template:***</span>  
<span style="color: #000000;">1.2</span></td></tr><tr style="border-style: solid;"><td style="width: 49.9999%; height: 29px; border-color: black; border-style: solid;"><span style="color: #000000;">**Processo:**</span>  
<span style="color: #000000;">Descrição Processo</span></td><td class="align-center" style="width: 23.3333%; height: 29px; border-color: black; border-style: solid;"><span style="color: #000000;">**Versão do Documento:**</span>  
<span style="color: #000000;">1.0</span></td></tr><tr style="border-style: solid;"><td style="width: 49.9999%; height: 29px; border-color: black; border-style: solid;"><span style="color: #000000;">**Responsável(eis):** </span>  
<span style="color: #000000;">-</span></td><td class="align-center" style="width: 23.3333%; height: 29px; border-color: black; border-style: solid;"><span style="color: #000000;">**Data:** </span>

<span style="color: #000000;">05/01/2026</span>

</td></tr></tbody></table>

##### <span style="color: #000000;">**1. Introdução**</span>

<span style="color: #000000;">**Este processo visa exemplificar a documentação padrão**</span>

##### <span style="color: #000000;">**2. Processo (adicionar fluxograma exemplo)**</span>

<span style="color: #000000;">[![image-1724162109370.png](https://docs.softensistemas.com.br/uploads/images/gallery/2024-08/scaled-1680-/image-1724162109370.png)](https://docs.softensistemas.com.br/uploads/images/gallery/2024-08/image-1724162109370.png)</span>

<span style="color: #000000;">I - Fluxograma Exemplo</span>

<table cellpadding="9" cellspacing="0" id="bkmrk-processo-envolvidos-" width="100%"><tbody><tr valign="top"><td bgcolor="#acb9ca" style="border-style: solid; border-color: black;" width="27%"><span style="font-size: small; color: #000000;">**Processo**</span>

</td><td bgcolor="#acb9ca" style="border-style: solid; border-color: black;" width="19%"><span style="font-size: small; color: #000000;">**Envolvidos**</span>

</td><td bgcolor="#acb9ca" style="border-style: solid; border-color: black;" width="27%"><span style="font-size: small; color: #000000;">**Dados de Entrada**</span>

</td><td bgcolor="#acb9ca" style="border-style: solid; border-color: black;" width="27%"><span style="font-size: small; color: #000000;">**Dados de Saída**</span>

</td></tr><tr valign="top"><td style="border-style: solid; border-color: black;" width="27%"><span style="font-size: small; color: #000000;">Processo</span>

</td><td style="border-style: solid; border-color: black;" width="19%"><span style="font-size: small; color: #000000;">N/A</span>

</td><td style="border-style: solid; border-color: black;" width="27%"><span style="font-size: small; color: #000000;">N/A</span>

</td><td style="border-style: solid; border-color: black;" width="27%"><span style="font-size: small; color: #000000;">N/A</span>

</td></tr></tbody></table>

#### <span style="color: #000000;">**Processos Relacionados** </span>

- - - - - -

<span style="color: #000000;">Documentação Exemplo 1 </span>  
  
<span style="color: #000000;">Documentação Exemplo 2</span>

#### <span style="color: #000000;">**Especificação Funcional**</span>

- - - - - -

#### <span style="color: #000000;">**PROC005 - Ajustes Chave de Acesso Alfanumérica NF-e e NFC-e:**</span>

##### <span style="color: #000000;">***Regras de Negócio:***</span>

<span style="color: #000000;">**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.</span>

<span style="color: #000000;">**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).</span>

<span style="color: #000000;">**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.</span>

<span style="color: #000000;">**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.</span>

<span style="color: #000000;">**2.1 Calculo:** <span lang="PT-BR">Serão utilizados, no cálculo do módulo 11, os </span><span lang="PT-BR">valores relativos a letras maiúsculas da tabela código ASCII, como solução para unificar a representação de caracteres alfanuméricos.</span></span>

<span style="color: #000000;"><span lang="PT-BR">**2.2** </span><span lang="PT-BR">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. </span></span>

<table border="1" class="align-center" id="bkmrk-caractere-ascii-valo" style="border-collapse: collapse; width: 75.0617%; height: 854px;"><tbody><tr><th style="width: 33.3333%;"><span style="color: #000000;">Caractere</span></th><th style="width: 33.3333%;"><span style="color: #000000;">ASCII</span></th><th style="width: 33.3333%;"><span style="color: #000000;">Valor no cálculo</span></th></tr><tr><td style="width: 33.3333%;"><span style="color: #000000;">`'0'` a `'9'`</span></td><td style="width: 33.3333%;"><span style="color: #000000;">48–57</span></td><td style="width: 33.3333%;"><span style="color: #000000;">0 a 9</span></td></tr><tr><td style="width: 33.3333%;"><span style="color: #000000;">`'A'`</span></td><td style="width: 33.3333%;"><span style="color: #000000;">65</span></td><td style="width: 33.3333%;"><span style="color: #000000;">**17**</span></td></tr><tr><td style="width: 33.3333%;"><span style="color: #000000;">`'B'`</span></td><td style="width: 33.3333%;"><span style="color: #000000;">66</span></td><td style="width: 33.3333%;"><span style="color: #000000;">18</span></td></tr><tr><td style="width: 33.3333%;"><span style="color: #000000;">`'C'`</span></td><td style="width: 33.3333%;"><span style="color: #000000;">67</span></td><td style="width: 33.3333%;"><span style="color: #000000;">19</span></td></tr><tr><td style="width: 33.3333%;"><span style="color: #000000;">`'D'`</span></td><td style="width: 33.3333%;"><span style="color: #000000;">68</span></td><td style="width: 33.3333%;"><span style="color: #000000;">20</span></td></tr><tr><td style="width: 33.3333%;"><span style="color: #000000;">`'E'`</span></td><td style="width: 33.3333%;"><span style="color: #000000;">69</span></td><td style="width: 33.3333%;"><span style="color: #000000;">21</span></td></tr><tr><td style="width: 33.3333%;"><span style="color: #000000;">`'F'`</span></td><td style="width: 33.3333%;"><span style="color: #000000;">70</span></td><td style="width: 33.3333%;"><span style="color: #000000;">22</span></td></tr><tr><td style="width: 33.3333%;"><span style="color: #000000;">`'G'`</span></td><td style="width: 33.3333%;"><span style="color: #000000;">71</span></td><td style="width: 33.3333%;"><span style="color: #000000;">23</span></td></tr><tr><td style="width: 33.3333%;"><span style="color: #000000;">`'H'`</span></td><td style="width: 33.3333%;"><span style="color: #000000;">72</span></td><td style="width: 33.3333%;"><span style="color: #000000;">24</span></td></tr><tr><td style="width: 33.3333%;"><span style="color: #000000;">`'I'`</span></td><td style="width: 33.3333%;"><span style="color: #000000;">73</span></td><td style="width: 33.3333%;"><span style="color: #000000;">25</span></td></tr><tr><td style="width: 33.3333%;"><span style="color: #000000;">`'J'`</span></td><td style="width: 33.3333%;"><span style="color: #000000;">74</span></td><td style="width: 33.3333%;"><span style="color: #000000;">26</span></td></tr><tr><td style="width: 33.3333%;"><span style="color: #000000;">`'K'`</span></td><td style="width: 33.3333%;"><span style="color: #000000;">75</span></td><td style="width: 33.3333%;"><span style="color: #000000;">27</span></td></tr><tr><td style="width: 33.3333%;"><span style="color: #000000;">`'L'`</span></td><td style="width: 33.3333%;"><span style="color: #000000;">76</span></td><td style="width: 33.3333%;"><span style="color: #000000;">28</span></td></tr><tr><td style="width: 33.3333%;"><span style="color: #000000;">`'M'`</span></td><td style="width: 33.3333%;"><span style="color: #000000;">77</span></td><td style="width: 33.3333%;"><span style="color: #000000;">29</span></td></tr><tr><td style="width: 33.3333%;"><span style="color: #000000;">`'N'`</span></td><td style="width: 33.3333%;"><span style="color: #000000;">78</span></td><td style="width: 33.3333%;"><span style="color: #000000;">30</span></td></tr><tr><td style="width: 33.3333%;"><span style="color: #000000;">`'O'`</span></td><td style="width: 33.3333%;"><span style="color: #000000;">79</span></td><td style="width: 33.3333%;"><span style="color: #000000;">31</span></td></tr><tr><td style="width: 33.3333%;"><span style="color: #000000;">`'P'`</span></td><td style="width: 33.3333%;"><span style="color: #000000;">80</span></td><td style="width: 33.3333%;"><span style="color: #000000;">32</span></td></tr><tr><td style="width: 33.3333%;"><span style="color: #000000;">`'Q'`</span></td><td style="width: 33.3333%;"><span style="color: #000000;">81</span></td><td style="width: 33.3333%;"><span style="color: #000000;">33</span></td></tr><tr><td style="width: 33.3333%;"><span style="color: #000000;">`'R'`</span></td><td style="width: 33.3333%;"><span style="color: #000000;">82</span></td><td style="width: 33.3333%;"><span style="color: #000000;">34</span></td></tr><tr><td style="width: 33.3333%;"><span style="color: #000000;">`'S'`</span></td><td style="width: 33.3333%;"><span style="color: #000000;">83</span></td><td style="width: 33.3333%;"><span style="color: #000000;">35</span></td></tr><tr><td style="width: 33.3333%;"><span style="color: #000000;">`'T'`</span></td><td style="width: 33.3333%;"><span style="color: #000000;">84</span></td><td style="width: 33.3333%;"><span style="color: #000000;">36</span></td></tr><tr><td style="width: 33.3333%;"><span style="color: #000000;">`'U'`</span></td><td style="width: 33.3333%;"><span style="color: #000000;">85</span></td><td style="width: 33.3333%;"><span style="color: #000000;">37</span></td></tr><tr><td style="width: 33.3333%;"><span style="color: #000000;">`'V'`</span></td><td style="width: 33.3333%;"><span style="color: #000000;">86</span></td><td style="width: 33.3333%;"><span style="color: #000000;">38</span></td></tr><tr><td style="width: 33.3333%;"><span style="color: #000000;">`'W'`</span></td><td style="width: 33.3333%;"><span style="color: #000000;">87</span></td><td style="width: 33.3333%;"><span style="color: #000000;">39</span></td></tr><tr><td style="width: 33.3333%;"><span style="color: #000000;">`'X'`</span></td><td style="width: 33.3333%;"><span style="color: #000000;">88</span></td><td style="width: 33.3333%;"><span style="color: #000000;">40</span></td></tr><tr><td style="width: 33.3333%;"><span style="color: #000000;">`'Y'`</span></td><td style="width: 33.3333%;"><span style="color: #000000;">89</span></td><td style="width: 33.3333%;"><span style="color: #000000;">41</span></td></tr><tr><td style="width: 33.3333%;"><span style="color: #000000;">`'Z'`</span></td><td style="width: 33.3333%;"><span style="color: #000000;">90</span></td><td style="width: 33.3333%;"><span style="color: #000000;">**42**</span></td></tr></tbody></table>

<span style="color: #000000;">**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:</span>

<table border="1" class="align-center" id="bkmrk-chave-alfanum%C3%89rica%3A-" style="border-collapse: collapse; width: 86.4197%; height: 379px;"><tbody><tr style="height: 29px;"><th colspan="4" style="width: 100%; height: 29px;"><span style="color: #000000;">**CHAVE ALFANUMÉRICA: 35260712ABC34501DE3555001000000123112345678**</span></th></tr><tr style="height: 29px;"><th style="width: 25%; height: 29px;"><span style="color: #000000;">Bloco</span></th><th style="width: 25%; height: 29px;"><span style="color: #000000;">Tam</span></th><th style="width: 25%; height: 29px;"><span style="color: #000000;">Valor</span></th><th style="width: 25%; height: 29px;"><span style="color: #000000;">Significado</span></th></tr><tr style="height: 30px;"><td style="width: 25%; height: 30px;"><span style="color: #000000;">cUF</span></td><td style="width: 25%; height: 30px;"><span style="color: #000000;">2</span></td><td style="width: 25%; height: 30px;"><span style="color: #000000;">`35`</span></td><td style="width: 25%; height: 30px;"><span style="color: #000000;">São Paulo</span></td></tr><tr style="height: 30px;"><td style="width: 25%; height: 30px;"><span style="color: #000000;">AAMM</span></td><td style="width: 25%; height: 30px;"><span style="color: #000000;">4</span></td><td style="width: 25%; height: 30px;"><span style="color: #000000;">`2607`</span></td><td style="width: 25%; height: 30px;"><span style="color: #000000;">Julho/2026</span></td></tr><tr style="height: 63px;"><td style="width: 25%; height: 63px;"><span style="color: #000000;">CNPJ emitente</span></td><td style="width: 25%; height: 63px;"><span style="color: #000000;">14</span></td><td style="width: 25%; height: 63px;"><span style="color: #000000;">`12ABC34501DE35`</span></td><td style="width: 25%; height: 63px;"><span style="color: #000000;">CNPJ alfanumérico (sem pontuação, em maiúsculas)</span></td></tr><tr style="height: 30px;"><td style="width: 25%; height: 30px;"><span style="color: #000000;">mod</span></td><td style="width: 25%; height: 30px;"><span style="color: #000000;">2</span></td><td style="width: 25%; height: 30px;"><span style="color: #000000;">`55`</span></td><td style="width: 25%; height: 30px;"><span style="color: #000000;">NF-e</span></td></tr><tr style="height: 46px;"><td style="width: 25%; height: 46px;"><span style="color: #000000;">série</span></td><td style="width: 25%; height: 46px;"><span style="color: #000000;">3</span></td><td style="width: 25%; height: 46px;"><span style="color: #000000;">`001`</span></td><td style="width: 25%; height: 46px;"><span style="color: #000000;">Série 1 (preenchida com zeros à esquerda)</span></td></tr><tr style="height: 46px;"><td style="width: 25%; height: 46px;"><span style="color: #000000;">nNF</span></td><td style="width: 25%; height: 46px;"><span style="color: #000000;">9</span></td><td style="width: 25%; height: 46px;"><span style="color: #000000;">`000000123`</span></td><td style="width: 25%; height: 46px;"><span style="color: #000000;">Nota nº 123 (zeros à esquerda)</span></td></tr><tr style="height: 30px;"><td style="width: 25%; height: 30px;"><span style="color: #000000;">tpEmis</span></td><td style="width: 25%; height: 30px;"><span style="color: #000000;">1</span></td><td style="width: 25%; height: 30px;"><span style="color: #000000;">`1`</span></td><td style="width: 25%; height: 30px;"><span style="color: #000000;">Emissão normal</span></td></tr><tr style="height: 46px;"><td style="width: 25%; height: 46px;"><span style="color: #000000;">cNF</span></td><td style="width: 25%; height: 46px;"><span style="color: #000000;">8</span></td><td style="width: 25%; height: 46px;"><span style="color: #000000;">`12345678`</span></td><td style="width: 25%; height: 46px;"><span style="color: #000000;">Código numérico aleatório da nota</span></td></tr></tbody></table>

<span style="color: #000000;">**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.</span>

<span style="color: #000000;">**1.3.2 Soma dos produtos (por blocos para conferência):**</span>

- - - - - <span style="color: #000000;">Posições 1–8 (cUF + AAMM + parte do CNPJ): `12+15+4+54+0+49+6+10` = **150**</span>
                - <span style="color: #000000;">Posições 9–16 (CNPJ — bloco com `A B C`): `68+54+38+27+32+35+0+5` = **259**</span>
                - <span style="color: #000000;">Posições 17–24 (CNPJ `D E` + mod + série + início nNF): `80+63+6+45+40+35+0+0` = **269**</span>
                - <span style="color: #000000;">Posições 25–32 (nNF): `4+0+0+0+0+0+0+5` = **9**</span>
                - <span style="color: #000000;">Posições 33–40 (tpEmis + parte do cNF): `8+9+2+9+16+21+24+25` = **114**</span>
                - <span style="color: #000000;">Posições 41–43 (final do cNF): `24+21+16` = **61**</span>
                - <span style="color: #000000;">**Total = 862**</span>
                - <span style="color: #000000;">Aplicado módulo 11 = 862 / 11 = 78 (**resto 4, porque 78 x 11 = 858 e 862 - 858 = 4**). </span>
                - <span style="color: #000000;">Resto = **4**</span>
                - <span style="color: #000000;">**Como o resto foi acima de 1, DV = 11-4=7**.</span>

<span style="color: #000000;">**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.</span>

##### <span style="color: #000000;">***Questões Técnicas:***</span>

<span style="color: #000000;">***1.*** A coluna 'nfe'.'chaveAcesso' esta como VARCHAR(255), não sendo necessário ajuste em banco.</span>

<span style="color: #000000;">**2. Arquivos a alterar da composição da chave - Pontos críticos da montagem da chave:**</span>

<table border="1" id="bkmrk-arquivo-%3A-linha-risc" style="border-collapse: collapse; width: 100%;"><tbody><tr><td bgcolor="#acb9ca" style="width: 37.9012%; border-style: solid; border-color: black;" width="318"><span style="color: #000000;"><span style="font-family: Arial, serif;"><span style="font-size: small;">**Arquivo : linha**</span></span></span>

</td><td bgcolor="#acb9ca" style="width: 14.4445%; border-style: solid; border-color: black;" width="53"><span style="color: #000000;"><span style="font-family: Arial, serif;"><span style="font-size: small;">**Risco**</span></span></span>

</td><td bgcolor="#acb9ca" style="width: 50.8642%; border-style: solid; border-color: black;" width="337"><span style="color: #000000;"><span style="font-family: Arial, serif;"><span style="font-size: small;">**Descrição / Ação**</span></span></span>

</td></tr><tr><td style="width: 37.9012%; border-style: solid; border-color: black;" width="318"><span style="color: #000000;"><span style="font-family: Arial, serif;"><span style="font-size: small;">adapters/xml/nfe/EnvioNfeAdapter.java : 29</span></span></span>

</td><td style="width: 14.4445%; border-style: solid; border-color: black;" width="53"><span style="color: #000000;"><span style="font-family: Arial, serif;"><span style="font-size: small;">Crítico</span></span></span>

</td><td style="width: 50.8642%; border-style: solid; border-color: black;" width="337"><span style="color: #000000;"><span style="font-family: Arial, serif;"><span style="font-size: small;">CpfOrCnpjUtil.clean(empresa.getCnpj()) — herda correção de PROC001 (clean preserva letras).</span></span></span>

</td></tr><tr><td style="width: 37.9012%; border-style: solid; border-color: black;" width="318"><span style="color: #000000;"><span style="font-family: Arial, serif;"><span style="font-size: small;">adapters/xml/nfe/EnvioNfeAdapter.java : 46</span></span></span>

</td><td style="width: 14.4445%; border-style: solid; border-color: black;" width="53"><span style="color: #000000;"><span style="font-family: Arial, serif;"><span style="font-size: small;">Sem ação</span></span></span>

</td><td style="width: 50.8642%; border-style: solid; border-color: black;" width="337"><span style="color: #000000;"><span style="font-family: Arial, serif;"><span style="font-size: small;">ModValidador.of(11, value, value.length(), 4).calc() — algoritmo já compatível.</span></span></span>

</td></tr><tr><td style="width: 37.9012%; border-style: solid; border-color: black;" width="318"><span style="color: #000000;"><span style="font-family: Arial, serif;"><span style="font-size: small;">adapters/xml/nfce/EnvioNfceAdapter.java : 36, 53</span></span></span>

</td><td style="width: 14.4445%; border-style: solid; border-color: black;" width="53"><span style="color: #000000;"><span style="font-family: Arial, serif;"><span style="font-size: small;">Crítico/Sem ação</span></span></span>

</td><td style="width: 50.8642%; border-style: solid; border-color: black;" width="337"><span style="color: #000000;"><span style="font-family: Arial, serif;"><span style="font-size: small;">Mesma estrutura do NFe — herda PROC001.</span></span></span>

</td></tr><tr><td style="width: 37.9012%; border-style: solid; border-color: black;" width="318"><span style="color: #000000;"><span style="font-family: Arial, serif;"><span style="font-size: small;">util/NFCeUtil.java : 145, 151</span></span></span>

</td><td style="width: 14.4445%; border-style: solid; border-color: black;" width="53"><span style="color: #000000;"><span style="font-family: Arial, serif;"><span style="font-size: small;">Crítico</span></span></span>

</td><td style="width: 50.8642%; border-style: solid; border-color: black;" width="337"><span style="color: #000000;"><span style="font-family: Arial, serif;"><span style="font-size: small;">lpadTo(cnpjCpf.replaceAll("\\D",""), 14, '0') — substituir limpeza por uma que preserve letras.</span></span></span>

</td></tr><tr><td style="width: 37.9012%; border-style: solid; border-color: black;" width="318"><span style="color: #000000;"><span style="font-family: Arial, serif;"><span style="font-size: small;">adapters/xml/nfe/NfeAdapter.java : 67</span></span></span>

</td><td style="width: 14.4445%; border-style: solid; border-color: black;" width="53"><span style="color: #000000;"><span style="font-family: Arial, serif;"><span style="font-size: small;">Sem ação</span></span></span>

</td><td style="width: 50.8642%; border-style: solid; border-color: black;" width="337"><span style="color: #000000;"><span style="font-family: Arial, serif;"><span style="font-size: small;">Apenas extrai o DV via chaveAcesso.substring(chaveAcesso.length() - 1) — agnóstico.</span></span></span>

</td></tr><tr><td style="width: 37.9012%; border-style: solid; border-color: black;" width="318"><span style="color: #000000;"><span style="font-family: Arial, serif;"><span style="font-size: small;">validadores/ModValidador.java : 179, 192</span></span></span>

</td><td style="width: 14.4445%; border-style: solid; border-color: black;" width="53"><span style="color: #000000;"><span style="font-family: Arial, serif;"><span style="font-size: small;">Sem ação</span></span></span>

</td><td style="width: 50.8642%; border-style: solid; border-color: black;" width="337"><span style="color: #000000;"><span style="font-family: Arial, serif;"><span style="font-size: small;">char - '0' é o algoritmo oficial alfanumérico.</span></span></span>

</td></tr></tbody></table>

<span style="color: #000000;">©SOFTEN SISTEMAS 2026</span>

# PROC005.1 - Ajustes em Preenchimentos em Tela

<table border="1" id="bkmrk-%C2%A0-projeto%2Fsistema%3Age" style="border-collapse: collapse; width: 100.123%; height: 68px;"><tbody><tr style="border-style: solid;"><td rowspan="3" style="width: 26.6667%; height: 68px; border-color: black; border-top-style: hidden; border-left-style: hidden; border-bottom-style: hidden;">  
<span style="color: #000000;">[![image-1762776253666.png](https://docs.softensistemas.com.br/uploads/images/gallery/2025-11/scaled-1680-/image-1762776253666.png)](https://docs.softensistemas.com.br/uploads/images/gallery/2025-11/image-1762776253666.png)</span>

</td><td style="width: 49.9999%; height: 10px; border-color: black; border-style: solid;"><span style="color: #000000;">**Projeto/Sistema:**</span>  
<span style="color: #000000;">GERENCIAMENTO DE PROJETOS</span></td><td class="align-center" style="width: 23.3333%; height: 10px; border-color: black; border-style: solid;"><span style="color: #000000;">**Versão do *Template:***</span>  
<span style="color: #000000;">1.2</span></td></tr><tr style="border-style: solid;"><td style="width: 49.9999%; height: 29px; border-color: black; border-style: solid;"><span style="color: #000000;">**Processo:**</span>  
PROC005.1 - Ajustes em Preenchimentos em Tela</td><td class="align-center" style="width: 23.3333%; height: 29px; border-color: black; border-style: solid;"><span style="color: #000000;">**Versão do Documento:**</span>  
<span style="color: #000000;">1.0</span></td></tr><tr style="border-style: solid;"><td style="width: 49.9999%; height: 29px; border-color: black; border-style: solid;"><span style="color: #000000;">**Responsável(eis):** </span>  
<span style="color: #000000;">Luís Leite</span></td><td class="align-center" style="width: 23.3333%; height: 29px; border-color: black; border-style: solid;"><span style="color: #000000;">**Data:** </span>

<span style="color: #000000;">27/05/2026</span>

</td></tr></tbody></table>

##### <span style="color: #000000;">**1. Introdução**</span>

<span style="color: #000000;">**Este processo visa exemplificar a documentação padrão**</span>

##### <span style="color: #000000;">**2. Processo**</span>

<table cellpadding="9" cellspacing="0" id="bkmrk-processo-envolvidos-" width="100%"><tbody><tr valign="top"><td bgcolor="#acb9ca" style="border-style: solid; border-color: black;" width="27%"><span style="font-size: small; color: #000000;">**Processo**</span>

</td><td bgcolor="#acb9ca" style="border-style: solid; border-color: black;" width="19%"><span style="font-size: small; color: #000000;">**Envolvidos**</span>

</td><td bgcolor="#acb9ca" style="border-style: solid; border-color: black;" width="27%"><span style="font-size: small; color: #000000;">**Dados de Entrada**</span>

</td><td bgcolor="#acb9ca" style="border-style: solid; border-color: black;" width="27%"><span style="font-size: small; color: #000000;">**Dados de Saída**</span>

</td></tr><tr valign="top"><td style="border-style: solid; border-color: black;" width="27%"><span style="color: #000000;">PROC005.1.1 - NFE - Ajustes em Preenchimentos em Tela - Referenciar Documento</span>

</td><td style="border-style: solid; border-color: black;" width="19%"></td><td style="border-style: solid; border-color: black;" width="27%"></td><td style="border-style: solid; border-color: black;" width="27%"></td></tr><tr><td style="border-style: solid; border-color: black;"><span style="color: #000000;">PROC005.1.2 - NFE - Ajustes em Preenchimentos em Tela - Imposto por Produto</span>

<span style="color: #000000;"> </span>

</td><td style="border-style: solid; border-color: black;"><span style="font-size: small; color: #000000;"> </span>

</td><td style="border-style: solid; border-color: black;"><span style="font-size: small; color: #000000;"> </span>

</td><td style="border-style: solid; border-color: black;"><span style="font-size: small; color: #000000;"> </span>

</td></tr></tbody></table>

#### <span style="color: #000000;">**Processos Relacionados** </span>

- - - - - -

<span style="color: #000000;">Documentação Exemplo 1 </span>  
  
<span style="color: #000000;">Documentação Exemplo 2</span>

#### <span style="color: #000000;">**Especificação Funcional**</span>

- - - - - -

#### <span style="color: #000000;">**PROC005.1.1 - NFE - Ajustes em Preenchimentos em Tela - Referenciar Documento:**</span>

##### <span style="color: #000000;">***Tela:***</span>

<span style="color: #000000;">[![image-1779888970031.png](https://docs.softensistemas.com.br/uploads/images/gallery/2026-05/scaled-1680-/image-1779888970031.png)](https://docs.softensistemas.com.br/uploads/images/gallery/2026-05/image-1779888970031.png)</span>

Imagem I - Chave NFe Referenciada.

<span style="color: #000000;">[![image-1779889017911.png](https://docs.softensistemas.com.br/uploads/images/gallery/2026-05/scaled-1680-/image-1779889017911.png)](https://docs.softensistemas.com.br/uploads/images/gallery/2026-05/image-1779889017911.png)</span>

<span style="color: #000000;">Imagem II - Chave NFe Referenciada de antecipação de pagamento.</span>

<span style="color: #000000;">[![image-1779889207759.png](https://docs.softensistemas.com.br/uploads/images/gallery/2026-05/scaled-1680-/image-1779889207759.png)](https://docs.softensistemas.com.br/uploads/images/gallery/2026-05/image-1779889207759.png)</span>

<span style="color: #000000;">Imagem III - NF-e de Produtor Rural.</span>

##### <span style="color: #000000;">***Descrição dos Campos:***</span>

<table border="1" cellpadding="7" cellspacing="0" id="bkmrk-campo-tipo-tamanho-o" style="width: 843px;"><tbody><tr valign="top"><td bgcolor="#acb9ca" style="width: 168px; border-style: solid; border-color: black;"><span style="color: #000000;">**Campo**</span>

</td><td bgcolor="#acb9ca" style="width: 102px; border-style: solid; border-color: black;"><span style="color: #000000;">**Tipo**</span>

</td><td bgcolor="#acb9ca" style="width: 88px; border-style: solid; border-color: black;"><span style="color: #000000;">**Tamanho**</span>

</td><td bgcolor="#acb9ca" style="width: 165px; border-style: solid; border-color: black;"><span style="color: #000000;">**Obrig. ?**</span>

</td><td bgcolor="#acb9ca" style="width: 119px; border-style: solid; border-color: black;"><span style="color: #000000;">**Máscara**</span>

</td><td bgcolor="#acb9ca" style="width: 201px; border-style: solid; border-color: black;"><span style="color: #000000;">**Observações**</span>

</td></tr><tr><td style="width: 168px; border-style: solid; border-color: black;"><span style="color: #000000;">Chave Nota (Ref NF-e)</span>

</td><td style="width: 102px; border-style: solid; border-color: black;"><span style="color: #000000;">Texto</span>

</td><td style="width: 88px; border-style: solid; border-color: black;"><span style="color: #000000;">44</span>

</td><td style="width: 165px; border-style: solid; border-color: black;"><span style="color: #000000;">-</span>

</td><td style="width: 119px; border-style: solid; border-color: black;"><span style="color: #000000;">-</span>

</td><td style="width: 201px; border-style: solid; border-color: black;"><span style="color: #000000;">-</span>

</td></tr><tr><td style="width: 168px; border-style: solid; border-color: black;"><span style="color: #000000;">CNPJ/CPF Emitente\*</span>

</td><td style="width: 102px; border-style: solid; border-color: black;"><span style="color: #000000;">Texto</span>

</td><td style="width: 88px; border-style: solid; border-color: black;"><span style="color: #000000;">14</span>

</td><td style="width: 165px; border-style: solid; border-color: black;"><span style="color: #000000;">Sim</span>

</td><td style="width: 119px; border-style: solid; border-color: black;"><span style="color: #000000;">-</span>

</td><td style="width: 201px; border-style: solid; border-color: black;"><span style="color: #000000;">-</span>

</td></tr></tbody></table>

##### <span style="color: #000000;">***Regras de Interface:***</span>

<span style="color: #000000;">***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</span>

<span style="color: #000000;">***2.1. Normalização:*** Deve ser tratado para deixar todas as letras em caixa alta(maiúsculo) visando a padronização da informação.</span>

##### <span style="color: #000000;">***Regras de Negócio:***</span>

<span style="color: #000000;">***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.</span>

<span style="color: #000000;">**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 (':;&lt;=&gt;?@') que não são usados.</span>

<span style="color: #000000;">**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.</span>

<span style="color: #000000;">**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.**</span>  
<span style="color: #000000;">Exemplo de chave:</span>

<table border="1" class="align-center" id="bkmrk-chave-alfanum%C3%89rica%3A-"><tbody><tr><th colspan="4"><span style="color: #000000;">**CHAVE ALFANUMÉRICA: 35260712ABC34501DE3555001000000123112345678**</span></th></tr><tr><th><span style="color: #000000;">Bloco</span></th><th><span style="color: #000000;">Tam</span></th><th><span style="color: #000000;">Valor</span></th><th><span style="color: #000000;">Significado</span></th></tr><tr><td><span style="color: #000000;">cUF</span></td><td><span style="color: #000000;">2</span></td><td><span style="color: #000000;">`35`</span></td><td><span style="color: #000000;">São Paulo</span></td></tr><tr><td><span style="color: #000000;">AAMM</span></td><td><span style="color: #000000;">4</span></td><td><span style="color: #000000;">`2607`</span></td><td><span style="color: #000000;">Julho/2026</span></td></tr><tr><td><span style="color: #000000;">CNPJ emitente</span></td><td><span style="color: #000000;">14</span></td><td><span style="color: #000000;">`12ABC34501DE35`</span></td><td><span style="color: #000000;">CNPJ alfanumérico (sem pontuação, em maiúsculas)</span></td></tr><tr><td><span style="color: #000000;">mod</span></td><td><span style="color: #000000;">2</span></td><td><span style="color: #000000;">`55`</span></td><td><span style="color: #000000;">NF-e</span></td></tr><tr><td><span style="color: #000000;">série</span></td><td><span style="color: #000000;">3</span></td><td><span style="color: #000000;">`001`</span></td><td><span style="color: #000000;">Série 1 (preenchida com zeros à esquerda)</span></td></tr><tr><td><span style="color: #000000;">nNF</span></td><td><span style="color: #000000;">9</span></td><td><span style="color: #000000;">`000000123`</span></td><td><span style="color: #000000;">Nota nº 123 (zeros à esquerda)</span></td></tr><tr><td><span style="color: #000000;">tpEmis</span></td><td><span style="color: #000000;">1</span></td><td><span style="color: #000000;">`1`</span></td><td><span style="color: #000000;">Emissão normal</span></td></tr><tr><td><span style="color: #000000;">cNF</span></td><td><span style="color: #000000;">8</span></td><td><span style="color: #000000;">`12345678`</span></td><td><span style="color: #000000;">Código numérico aleatório da nota</span></td></tr></tbody></table>

<span style="color: #000000;">**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.</span>

<span style="color: #000000;">**1.3.2 Soma dos produtos (por blocos para conferência):**</span>

- - - - - - - <span style="color: #000000;">Posições 1–8 (cUF + AAMM + parte do CNPJ): `12+15+4+54+0+49+6+10` = **150**</span>
                        - <span style="color: #000000;">Posições 9–16 (CNPJ — bloco com `A B C`): `68+54+38+27+32+35+0+5` = **259**</span>
                        - <span style="color: #000000;">Posições 17–24 (CNPJ `D E` + mod + série + início nNF): `80+63+6+45+40+35+0+0` = **269**</span>
                        - <span style="color: #000000;">Posições 25–32 (nNF): `4+0+0+0+0+0+0+5` = **9**</span>
                        - <span style="color: #000000;">Posições 33–40 (tpEmis + parte do cNF): `8+9+2+9+16+21+24+25` = **114**</span>
                        - <span style="color: #000000;">Posições 41–43 (final do cNF): `24+21+16` = **61**</span>
                        - <span style="color: #000000;">**Total = 862**</span>
                        - <span style="color: #000000;">Aplicado módulo 11 = 862 / 11 = 78 (**resto 4, porque 78 x 11 = 858 e 862 - 858 = 4**).</span>
                        - <span style="color: #000000;">Resto = **4**</span>
                        - <span style="color: #000000;">**Como o resto foi acima de 1, DV = 11-4=7**.</span>

#### <span style="color: #000000;">**PROC005.1.2 - NFE - Ajustes em Preenchimentos em Tela - Imposto por Produto:**</span>

##### <span style="color: #000000;">***Tela:***</span>

[![image-1779899167122.png](https://docs.softensistemas.com.br/uploads/images/gallery/2026-05/scaled-1680-/image-1779899167122.png)](https://docs.softensistemas.com.br/uploads/images/gallery/2026-05/image-1779899167122.png)

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

[![image-1779899343311.png](https://docs.softensistemas.com.br/uploads/images/gallery/2026-05/scaled-1680-/image-1779899343311.png)](https://docs.softensistemas.com.br/uploads/images/gallery/2026-05/image-1779899343311.png)

*<span style="color: #000000;">Imagem II - Chave de Acesso de exportação na Tela de Imposto Produto na Nota</span>*

[![image-1779899510285.png](https://docs.softensistemas.com.br/uploads/images/gallery/2026-05/scaled-1680-/image-1779899510285.png)](https://docs.softensistemas.com.br/uploads/images/gallery/2026-05/image-1779899510285.png)

<span style="color: #000000;">*Imagem III - CNPJ Fabricante na aba 'Outros' na Nota Fiscal.*</span>

[![image-1779899486599.png](https://docs.softensistemas.com.br/uploads/images/gallery/2026-05/scaled-1680-/image-1779899486599.png)](https://docs.softensistemas.com.br/uploads/images/gallery/2026-05/image-1779899486599.png)

<span style="color: #000000;">*Imagem IV - CNPJ Fabricante na aba 'Outros' na Nota Fiscal.*</span>

##### <span style="color: #000000;">***Descrição dos Campos:***</span>

<table border="1" cellpadding="7" cellspacing="0" id="bkmrk-campo-tipo-tamanho-o-0" style="width: 843px;"><tbody><tr valign="top"><td bgcolor="#acb9ca" style="width: 168px; border-style: solid; border-color: black;"><span style="color: #000000;">**Campo**</span>

</td><td bgcolor="#acb9ca" style="width: 102px; border-style: solid; border-color: black;"><span style="color: #000000;">**Tipo**</span>

</td><td bgcolor="#acb9ca" style="width: 88px; border-style: solid; border-color: black;"><span style="color: #000000;">**Tamanho**</span>

</td><td bgcolor="#acb9ca" style="width: 165px; border-style: solid; border-color: black;"><span style="color: #000000;">**Obrig. ?**</span>

</td><td bgcolor="#acb9ca" style="width: 119px; border-style: solid; border-color: black;"><span style="color: #000000;">**Máscara**</span>

</td><td bgcolor="#acb9ca" style="width: 201px; border-style: solid; border-color: black;"><span style="color: #000000;">**Observações**</span>

</td></tr><tr><td class="align-center" colspan="6" style="width: 843px; border-style: solid; border-color: black;">Aba de Importação</td></tr><tr><td style="width: 168px; border-style: solid; border-color: black;"><span style="color: #000000;">CNPJ Encomendante</span>

</td><td style="width: 102px; border-style: solid; border-color: black;"><span style="color: #000000;">Texto</span>

</td><td style="width: 88px; border-style: solid; border-color: black;"><span style="color: #000000;">14</span>

</td><td style="width: 165px; border-style: solid; border-color: black;"><span style="color: #000000;">-</span>

</td><td style="width: 119px; border-style: solid; border-color: black;"><span style="color: #000000;">-</span>

</td><td style="width: 201px; border-style: solid; border-color: black;"><span style="color: #000000;">-</span>

</td></tr><tr><td class="align-center" colspan="6" style="width: 843px; border-style: solid; border-color: black;">Aba de Exportação</td></tr><tr><td style="width: 168px; border-style: solid; border-color: black;"><span style="color: #000000;">Chave da NF-e</span>

</td><td style="width: 102px; border-style: solid; border-color: black;"><span style="color: #000000;">Texto</span>

</td><td style="width: 88px; border-style: solid; border-color: black;"><span style="color: #000000;">44</span>

</td><td style="width: 165px; border-style: solid; border-color: black;"><span style="color: #000000;">-</span>

</td><td style="width: 119px; border-style: solid; border-color: black;"><span style="color: #000000;">-</span>

</td><td style="width: 201px; border-style: solid; border-color: black;"><span style="color: #000000;">-</span>

</td></tr><tr><td class="align-center" colspan="6" style="width: 843px; border-style: solid; border-color: black;">Aba Outros</td></tr><tr><td style="width: 168px; border-style: solid; border-color: black;"><span style="color: #000000;">CNPJ Fabricante</span>

</td><td style="width: 102px; border-style: solid; border-color: black;"><span style="color: #000000;">Texto</span>

</td><td style="width: 88px; border-style: solid; border-color: black;"><span style="color: #000000;">14</span>

</td><td style="width: 165px; border-style: solid; border-color: black;"><span style="color: #000000;">-</span>

</td><td style="width: 119px; border-style: solid; border-color: black;"><span style="color: #000000;">-</span>

</td><td style="width: 201px; border-style: solid; border-color: black;"><span style="color: #000000;">-</span>

</td></tr><tr><td style="width: 168px; border-style: solid; border-color: black;"><span style="color: #000000;">DFe Referenciado</span>

</td><td style="width: 102px; border-style: solid; border-color: black;"><span style="color: #000000;">Texto</span>

</td><td style="width: 88px; border-style: solid; border-color: black;"><span style="color: #000000;">44</span>

</td><td style="width: 165px; border-style: solid; border-color: black;"><span style="color: #000000;">-</span>

</td><td style="width: 119px; border-style: solid; border-color: black;"><span style="color: #000000;">-</span>

</td><td style="width: 201px; border-style: solid; border-color: black;"><span style="color: #000000;">-</span>

</td></tr></tbody></table>

##### <span style="color: #000000;">***Regras de Interface***</span><span style="color: #000000;">***:***</span>

<span style="color: #000000;">**1. CNPJ Encomendante:** </span><span style="color: #000000;">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.</span>

##### <span style="color: #000000;">***Regras de Negócio***</span><span style="color: #000000;">***:***</span>

<span style="color: #000000;">**1.** Não são feitas validações de DV.</span>

##### <span style="color: #000000;">***Questões Técnicas:***</span>

<span style="color: #000000;">***1.*** O campo 'nfereferenciada'.'refNfe' esta como VARCHAR(255), não necessitando mudanças.  
</span>**2.** <span style="color: #000000;">O campo 'nfeproduto'.'cnpjEncomendante' esta como VARCHAR(255), não necessitando mudanças.  
</span>**3.**<span style="color: #000000;"> O campo 'nfeproduto'.'chaveNfeExport' esta como VARCHAR(44), não necessitando mudanças.  
</span>**4.**<span style="color: #000000;"> O campo 'nfeprodutosinfo'.'CNPJFab' esta como VARCHAR(14), não necessitando mudanças.  
</span>**5.**<span style="color: #000000;"> O campo 'nfeproduto'.'chaveDfe' esta como VARCHAR(44), não necessitando mudanças.</span>

<span style="color: #000000;">©SOFTEN SISTEMAS 2026</span>

# PROC005.2 - Alterações em XML

<table border="1" id="bkmrk-%C2%A0-projeto%2Fsistema%3Age" style="border-collapse: collapse; width: 100.123%; height: 68px;"><tbody><tr style="border-style: solid;"><td rowspan="3" style="width: 26.6667%; height: 68px; border-color: black; border-top-style: hidden; border-left-style: hidden; border-bottom-style: hidden;">  
<span style="color: #000000;">[![image-1762776253666.png](https://docs.softensistemas.com.br/uploads/images/gallery/2025-11/scaled-1680-/image-1762776253666.png)](https://docs.softensistemas.com.br/uploads/images/gallery/2025-11/image-1762776253666.png)</span>

</td><td style="width: 49.9999%; height: 10px; border-color: black; border-style: solid;"><span style="color: #000000;">**Projeto/Sistema:**</span>  
<span style="color: #000000;">GERENCIAMENTO DE PROJETOS</span></td><td class="align-center" style="width: 23.3333%; height: 10px; border-color: black; border-style: solid;"><span style="color: #000000;">**Versão do *Template:***</span>  
<span style="color: #000000;">1.2</span></td></tr><tr style="border-style: solid;"><td style="width: 49.9999%; height: 29px; border-color: black; border-style: solid;"><span style="color: #000000;">**Processo:**</span>  
PROC005.2 - Alterações em XML</td><td class="align-center" style="width: 23.3333%; height: 29px; border-color: black; border-style: solid;"><span style="color: #000000;">**Versão do Documento:**</span>  
<span style="color: #000000;">1.0</span></td></tr><tr style="border-style: solid;"><td style="width: 49.9999%; height: 29px; border-color: black; border-style: solid;"><span style="color: #000000;">**Responsável(eis):** </span>  
<span style="color: #000000;">-</span></td><td class="align-center" style="width: 23.3333%; height: 29px; border-color: black; border-style: solid;"><span style="color: #000000;">**Data:** </span>

<span style="color: #000000;">05/01/2026</span>

</td></tr></tbody></table>

##### <span style="color: #000000;">**1. Introdução**</span>

<span style="color: #000000;">**Este processo visa exemplificar a documentação padrão**</span>

##### <span style="color: #000000;">**2. Processo**</span>

<table cellpadding="9" cellspacing="0" id="bkmrk-processo-envolvidos-" width="100%"><tbody><tr valign="top"><td bgcolor="#acb9ca" style="border-style: solid; border-color: black;" width="27%"><span style="font-size: small; color: #000000;">**Processo**</span>

</td><td bgcolor="#acb9ca" style="border-style: solid; border-color: black;" width="19%"><span style="font-size: small; color: #000000;">**Envolvidos**</span>

</td><td bgcolor="#acb9ca" style="border-style: solid; border-color: black;" width="27%"><span style="font-size: small; color: #000000;">**Dados de Entrada**</span>

</td><td bgcolor="#acb9ca" style="border-style: solid; border-color: black;" width="27%"><span style="font-size: small; color: #000000;">**Dados de Saída**</span>

</td></tr><tr valign="top"><td style="border-style: solid; border-color: black;" width="27%"><span style="font-size: small; color: #000000;">Processo</span>

</td><td style="border-style: solid; border-color: black;" width="19%"><span style="font-size: small; color: #000000;">N/A</span>

</td><td style="border-style: solid; border-color: black;" width="27%"><span style="font-size: small; color: #000000;">N/A</span>

</td><td style="border-style: solid; border-color: black;" width="27%"><span style="font-size: small; color: #000000;">N/A</span>

</td></tr></tbody></table>

#### <span style="color: #000000;">**Processos Relacionados** </span>

- - - - - -

<span style="color: #000000;">Documentação Exemplo 1 </span>

#### <span style="color: #000000;">**Especificação Funcional**</span>

- - - - - -

#### <span style="color: #000000;">**PROC005.2 - Alterações em XML:**</span>

##### <span style="color: #000000;">***Regras de Negócio:***</span>

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

##### <span style="color: #000000;">***Questões Técnicas:***</span>

<span style="color: #000000;">***1. Grupo BA. Documento Fiscal Referenciado:***</span>

<span style="color: #000000;">[![image-1779906279379.png](https://docs.softensistemas.com.br/uploads/images/gallery/2026-05/scaled-1680-/image-1779906279379.png)](https://docs.softensistemas.com.br/uploads/images/gallery/2026-05/image-1779906279379.png)</span>

<span style="color: #000000;">**2. Grupo C. Identificação do Emitente da Nota Fiscal eletrônica:**</span>

[![image-1779906372493.png](https://docs.softensistemas.com.br/uploads/images/gallery/2026-05/scaled-1680-/image-1779906372493.png)](https://docs.softensistemas.com.br/uploads/images/gallery/2026-05/image-1779906372493.png)

<span style="color: #000000;">**3. Grupo E. Identificação do Destinatário da Nota Fiscal eletrônica**</span>

[![image-1779906686035.png](https://docs.softensistemas.com.br/uploads/images/gallery/2026-05/scaled-1680-/image-1779906686035.png)](https://docs.softensistemas.com.br/uploads/images/gallery/2026-05/image-1779906686035.png)

<span style="color: #000000;">**4. Grupo G. Identificação do Local de Retirada**</span>

[![image-1779906702256.png](https://docs.softensistemas.com.br/uploads/images/gallery/2026-05/scaled-1680-/image-1779906702256.png)](https://docs.softensistemas.com.br/uploads/images/gallery/2026-05/image-1779906702256.png)

<span style="color: #000000;">**5. Grupo G. Identificação do Local de Entrega**</span>

[![image-1779906715656.png](https://docs.softensistemas.com.br/uploads/images/gallery/2026-05/scaled-1680-/image-1779906715656.png)](https://docs.softensistemas.com.br/uploads/images/gallery/2026-05/image-1779906715656.png)

**<span style="color: #000000;">6. Grupo GA. Autorização para obter XML</span>**

[![image-1779907130519.png](https://docs.softensistemas.com.br/uploads/images/gallery/2026-05/scaled-1680-/image-1779907130519.png)](https://docs.softensistemas.com.br/uploads/images/gallery/2026-05/image-1779907130519.png)

**<span style="color: #000000;">7. Grupo I. Produtos e Serviços da NF-e</span>**

[![image-1779907264394.png](https://docs.softensistemas.com.br/uploads/images/gallery/2026-05/scaled-1680-/image-1779907264394.png)](https://docs.softensistemas.com.br/uploads/images/gallery/2026-05/image-1779907264394.png)

**<span style="color: #000000;">8. Grupo I01. Produtos e Serviços / Declaração de Importação</span>**

[![image-1779907739552.png](https://docs.softensistemas.com.br/uploads/images/gallery/2026-05/scaled-1680-/image-1779907739552.png)](https://docs.softensistemas.com.br/uploads/images/gallery/2026-05/image-1779907739552.png)

**<span style="color: #000000;">9. Grupo I03. Produtos e Serviços / Grupo de Exportação</span>**

[![image-1779907756812.png](https://docs.softensistemas.com.br/uploads/images/gallery/2026-05/scaled-1680-/image-1779907756812.png)](https://docs.softensistemas.com.br/uploads/images/gallery/2026-05/image-1779907756812.png)

**<span style="color: #000000;">10. Grupo O. Imposto sobre Produtos Industrializados</span>**

[![image-1779907776471.png](https://docs.softensistemas.com.br/uploads/images/gallery/2026-05/scaled-1680-/image-1779907776471.png)](https://docs.softensistemas.com.br/uploads/images/gallery/2026-05/image-1779907776471.png)

**<span style="color: #000000;">11. Grupo X. Informações do Transporte da NF-e</span>**

[![image-1779907790455.png](https://docs.softensistemas.com.br/uploads/images/gallery/2026-05/scaled-1680-/image-1779907790455.png)](https://docs.softensistemas.com.br/uploads/images/gallery/2026-05/image-1779907790455.png)

**<span style="color: #000000;">12.Grupo YA. Informações de Pagamento</span>**

[![image-1779907808097.png](https://docs.softensistemas.com.br/uploads/images/gallery/2026-05/scaled-1680-/image-1779907808097.png)](https://docs.softensistemas.com.br/uploads/images/gallery/2026-05/image-1779907808097.png)

**<span style="color: #000000;">13. Grupo YB. Informações do Intermediador da Transação</span>**

[![image-1779907829460.png](https://docs.softensistemas.com.br/uploads/images/gallery/2026-05/scaled-1680-/image-1779907829460.png)](https://docs.softensistemas.com.br/uploads/images/gallery/2026-05/image-1779907829460.png)

**<span style="color: #000000;">14. Grupo VC. Referenciamento de item de outro Documento Fiscal Eletrônico - DF-e </span>**

[![image-1779907856978.png](https://docs.softensistemas.com.br/uploads/images/gallery/2026-05/scaled-1680-/image-1779907856978.png)](https://docs.softensistemas.com.br/uploads/images/gallery/2026-05/image-1779907856978.png)

<span style="color: #000000;">**14. Grupo ZD. Informações do Responsável Técnico**</span>

[![image-1779909106517.png](https://docs.softensistemas.com.br/uploads/images/gallery/2026-05/scaled-1680-/image-1779909106517.png)](https://docs.softensistemas.com.br/uploads/images/gallery/2026-05/image-1779909106517.png)

<span style="color: #000000;">©SOFTEN SISTEMAS 2026</span>

# PROC005.3 - Ajustes Jasper

<table border="1" id="bkmrk-%C2%A0-projeto%2Fsistema%3Age" style="border-collapse: collapse; width: 100.123%; height: 68px;"><tbody><tr style="border-style: solid;"><td rowspan="3" style="width: 26.6667%; height: 68px; border-color: black; border-top-style: hidden; border-left-style: hidden; border-bottom-style: hidden;">  
<span style="color: #000000;">[![image-1762776253666.png](https://docs.softensistemas.com.br/uploads/images/gallery/2025-11/scaled-1680-/image-1762776253666.png)](https://docs.softensistemas.com.br/uploads/images/gallery/2025-11/image-1762776253666.png)</span>

</td><td style="width: 49.9999%; height: 10px; border-color: black; border-style: solid;"><span style="color: #000000;">**Projeto/Sistema:**</span>  
<span style="color: #000000;">GERENCIAMENTO DE PROJETOS</span></td><td class="align-center" style="width: 23.3333%; height: 10px; border-color: black; border-style: solid;"><span style="color: #000000;">**Versão do *Template:***</span>  
<span style="color: #000000;">1.2</span></td></tr><tr style="border-style: solid;"><td style="width: 49.9999%; height: 29px; border-color: black; border-style: solid;"><span style="color: #000000;">**Processo:**</span>  
<span style="color: #000000;">Descrição Processo</span></td><td class="align-center" style="width: 23.3333%; height: 29px; border-color: black; border-style: solid;"><span style="color: #000000;">**Versão do Documento:**</span>  
<span style="color: #000000;">1.0</span></td></tr><tr style="border-style: solid;"><td style="width: 49.9999%; height: 29px; border-color: black; border-style: solid;"><span style="color: #000000;">**Responsável(eis):** </span>  
<span style="color: #000000;">-</span></td><td class="align-center" style="width: 23.3333%; height: 29px; border-color: black; border-style: solid;"><span style="color: #000000;">**Data:** </span>

<span style="color: #000000;">05/01/2026</span>

</td></tr></tbody></table>

##### <span style="color: #000000;">**1. Introdução**</span>

<span style="font-family: 'Segoe UI', sans-serif; color: #000000;"><span style="font-size: small;">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).</span></span>

##### <span style="color: #000000;">**2. Processo** </span>

<table cellpadding="9" cellspacing="0" id="bkmrk-processo-envolvidos-" width="100%"><tbody><tr valign="top"><td bgcolor="#acb9ca" style="border-style: solid; border-color: black;" width="27%"><span style="font-size: small; color: #000000;">**Processo**</span>

</td><td bgcolor="#acb9ca" style="border-style: solid; border-color: black;" width="19%"><span style="font-size: small; color: #000000;">**Envolvidos**</span>

</td><td bgcolor="#acb9ca" style="border-style: solid; border-color: black;" width="27%"><span style="font-size: small; color: #000000;">**Dados de Entrada**</span>

</td><td bgcolor="#acb9ca" style="border-style: solid; border-color: black;" width="27%"><span style="font-size: small; color: #000000;">**Dados de Saída**</span>

</td></tr><tr valign="top"><td style="border-style: solid; border-color: black;" width="27%"><span style="font-size: small; color: #000000;">Processo</span>

</td><td style="border-style: solid; border-color: black;" width="19%"><span style="font-size: small; color: #000000;">N/A</span>

</td><td style="border-style: solid; border-color: black;" width="27%"><span style="font-size: small; color: #000000;">N/A</span>

</td><td style="border-style: solid; border-color: black;" width="27%"><span style="font-size: small; color: #000000;">N/A</span>

</td></tr></tbody></table>

#### <span style="color: #000000;">**Processos Relacionados** </span>

- - - - - -

<span style="color: #000000;">Documentação Exemplo 1 </span>  
  
<span style="color: #000000;">Documentação Exemplo 2</span>

#### <span style="color: #000000;">**Especificação Funcional**</span>

- - - - - -

#### <span style="color: #000000;">**PROC005.3 - Ajustes Jasper:**</span>

##### <span style="color: #000000;">***Protótipo de Tela:***</span>

##### <span style="color: #000000;">***Descrição dos Campos:***</span>

<table border="1" cellpadding="7" cellspacing="0" id="bkmrk-campo-tipo-tamanho-o" style="width: 843px;"><tbody><tr valign="top"><td bgcolor="#acb9ca" style="width: 168px; border-style: solid; border-color: black;"><span style="color: #000000;">**Campo**</span>

</td><td bgcolor="#acb9ca" style="width: 102px; border-style: solid; border-color: black;"><span style="color: #000000;">**Tipo**</span>

</td><td bgcolor="#acb9ca" style="width: 88px; border-style: solid; border-color: black;"><span style="color: #000000;">**Tamanho**</span>

</td><td bgcolor="#acb9ca" style="width: 165px; border-style: solid; border-color: black;"><span style="color: #000000;">**Obrig. ?**</span>

</td><td bgcolor="#acb9ca" style="width: 119px; border-style: solid; border-color: black;"><span style="color: #000000;">**Máscara**</span>

</td><td bgcolor="#acb9ca" style="width: 201px; border-style: solid; border-color: black;"><span style="color: #000000;">**Observações**</span>

</td></tr><tr><td style="width: 168px; border-style: solid; border-color: black;"><span style="color: #000000;">Campo</span>

</td><td style="width: 102px; border-style: solid; border-color: black;"><span style="color: #000000;">Texto</span>

</td><td style="width: 88px; border-style: solid; border-color: black;"><span style="color: #000000;">100</span>

</td><td style="width: 165px; border-style: solid; border-color: black;"><span style="color: #000000;">Sim</span>

</td><td style="width: 119px; border-style: solid; border-color: black;"><span style="color: #000000;">-</span>

</td><td style="width: 201px; border-style: solid; border-color: black;"><span style="color: #000000;">-</span>

</td></tr></tbody></table>

##### <span style="color: #000000;">***Regras de Interface:***</span>

<span style="color: #000000;">***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.</span>

##### <span style="color: #000000;">***Regras de Negócio:***</span>

<span style="color: #000000;">**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).</span>  
<span style="color: #000000;">**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.</span>  
<span style="color: #000000;">**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.</span>

#### <span style="color: #000000;">**PROC005.3.1 - Ajustes Jasper - DANFe - Código de Barras da Chave de Acesso:**</span>

##### <span style="color: #000000;">***Regras de Negócio:***</span>

<span style="color: #000000;">**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.</span>

#### <span style="color: #000000;">**PROC005.3.2 - Ajustes Jasper - DANFCe:**</span>

##### <span style="color: #000000;">***Regras de Negócio:***</span>

<span style="color: #000000;">**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. </span>  
<span style="color: #000000;">**2.** **Identificador estrangeiro inalterado:** Documentos que não se enquadrem em 11 ou 14 caracteres continuam sendo rotulados como "Id. Estrangeiro:". </span>  
<span style="color: #000000;">**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.</span>

#### <span style="color: #000000;">**PROC005.3.2 - Ajustes Jasper - DANFCe:**</span>

##### <span style="color: #000000;">***Regras de Negócio:***</span>

<span style="color: #000000;">**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. </span>  
<span style="color: #000000;">**2.** **Identificador estrangeiro inalterado:** Documentos que não se enquadrem em 11 ou 14 caracteres continuam sendo rotulados como "Id. Estrangeiro:". </span>  
<span style="color: #000000;">**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</span>

#####  

<span style="color: #000000;">©SOFTEN SISTEMAS 2026</span>

