# PROC002 - Cadastro de Nova Empresa

<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;">GERENCIEAQUI - MIGRAÇÃO CNPJ ALFANUMÉRICO (NT 2026.004)</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>  
PROC002 - Cadastro de Nova Empresa</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;">25/05/2026</span>

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

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

<span style="color: #000000;">Este processo descreve a adaptação do fluxo de cadastro inicial e do cadastro adicional de empresa pelo usuário logado ao CNPJ Alfanumérico (NT 2026.004).</span>

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

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

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

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

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

</td></tr><tr style="height: 58px;" valign="top"><td style="border-style: solid; border-color: black; height: 58px;" width="27%">PROC002 - Cadastro de Nova Empresa

</td><td style="border-style: solid; border-color: black; height: 58px;" width="19%"><span style="font-size: small; color: #000000;">Usuário</span>

</td><td style="border-style: solid; border-color: black; height: 58px;" width="27%"><span style="color: #000000; font-size: small;">CNPJ Alfanumérico</span>

</td><td style="border-style: solid; border-color: black; height: 58px;" width="27%"><span style="color: #000000; font-size: small;">CNPJ Alfanumérico validado e cadastrado em banco.</span>

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

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

- - - - - -

<span style="color: #000000;"><span style="font-family: Arial, serif;"><span style="font-size: small;">PROC001 — Núcleo de validação e formatação de CNP  
</span></span></span>

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

- - - - - -

#### <span style="color: #000000;">**PROC002 - Cadastro de Nova Empresa:**</span>

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

<span style="color: #000000;">[![image-1779734202008.png](https://docs.softensistemas.com.br/uploads/images/gallery/2026-05/scaled-1680-/image-1779734202008.png)](https://docs.softensistemas.com.br/uploads/images/gallery/2026-05/image-1779734202008.png)</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;">CNPJ\*</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.Ajuste de validação:*** 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. Normalização:*** Deve ser tratado para deixar todas as letras em caixa maior (maiúsculo) visando a padronização da informação.</span>

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

<span style="color: #000000;">**1. Validação tripla mantida:** O fluxo atual valida o CNPJ em três pontos (ajax onChange, novaEmpresa, EmpresaService.salvarNovaEmpresa) via CnpjUtil.isCnpjValidoSalvar. Como o util legado já usa charAt-48 e substring (tolerantes a alfanumérico), a validação funciona após a correção do PROC001.</span>

<span style="color: #000000;">**2. Unicidade global do CNPJ:** isDBContainCnpj (CnpjUtil:400) verifica via EmpresaDao.existsByCnpj se já há empresa cadastrada com o mesmo CNPJ. Bloqueia o cadastro com mensagem "Já existe uma empresa com esse CNPJ!". A collation default do MariaDB é case-insensitive — a normalização para maiúsculas elimina ambiguidades em comparações externas.</span>

<span style="color: #000000;">**3. Token A3 sensível à caixa:** Empresa.gerarTokenA3 (Empresa.java:736) faz gerarHash(cnpj + email, "SHA-256"). Como SHA-256 é sensível a caixa, o CNPJ DEVE ser gravado em maiúsculas — caso contrário, "ABC..." e "abc..." gerariam tokens diferentes e quebrariam a integração com certificado A3.</span>

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

<span style="color: #000000;">**1. Mudança na base de dados:** Sem alteração. Coluna 'empresa'.'cnpj' é varchar(20).</span>

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