====== RF-004 – Emissão de Certidão Negativa ====== Permite que qualquer cidadão consulte a existência de registro de Contas Julgadas Irregulares no TCE-GO e, em caso negativo, emita uma Certidão Negativa imprimível diretamente pelo navegador. Em caso de pendência, o sistema informa a necessidade de comparecimento presencial. Um fluxo secundário permite validar a autenticidade de certidões previamente emitidas. **Local de Acesso:** Portal TCE-GO → Serviços → Emitir Certidão Negativa | Rota: `/certidao` --- ===== Atores ===== ^ Nível ^ Perfil ^ Autenticação ^ Abrangência ^ | Público | Cidadão | Não requer autenticação | Acesso irrestrito — qualquer usuário da internet | --- ===== Telas ===== ==== Tela 01 – Formulário de Emissão (estado: search) ==== {{:pres:gerti:gestao_de_ativos:portal:pasted:20260330-210837.png}} ^ Elemento ^ Tipo ^ Obrigatório ^ Regra ^ | Nome | Texto | Sim | Máximo 200 caracteres | | CPF/CNPJ | Texto numérico com máscara | Sim | 11 dígitos (CPF) ou 14 dígitos (CNPJ) — validação de dígito verificador | | Captcha | Widget reCAPTCHA "Não sou um robô" | Sim | Deve ser marcado antes de submeter | | Botão "Emitir Certidão" | Ação | — | Habilitado somente quando todos os campos obrigatórios são válidos | | Link "Validar Certidão" | Ação | — | Abre o [[#tela_05_modal_de_validacao_estado_validacao-modal|Modal de Validação]] | ==== Tela 03 – Certidão Negativa (estado: negativa) ==== {{:pres:gerti:gestao_de_ativos:portal:pasted:20260330-210911.png}} ^ Elemento ^ Tipo ^ Descrição ^ | Título | Texto estático | "CERTIDÃO NEGATIVA DE CONTAS JULGADAS IRREGULARES" | | Subtítulo | Texto estático | "(Válida somente com a apresentação do CPF/CNPJ)" | | Nome | Texto dinâmico | Nome retornado pela API | | CPF/CNPJ | Texto dinâmico | CPF/CNPJ retornado pela API | | Corpo da certidão | Texto estático | Texto institucional conforme modelo TCE-GO | | Data e hora de emissão | Texto dinâmico | Formato: HH:mm:ss do dia dd/MM/yyyy | | Validade | Texto dinâmico | Data de emissão + 30 dias | | Código de controle | Texto dinâmico | Código retornado pela API (ex: 7FF4DBFE7B7DDAFE) | | Aviso de rasura | Texto estático | "Atenção: qualquer rasura ou emenda invalidará este documento." | | Botão "Imprimir Certidão" | Ação | Aciona window.print() — exibe apenas o conteúdo da certidão | | Botão "Nova Consulta" | Ação | Reseta o formulário e retorna ao estado search | ==== Tela 04 – Certidão Positiva / Aviso (estado: positiva) ==== {{:pres:gerti:gestao_de_ativos:portal:pasted:20260330-212917.png}} ^ Elemento ^ Tipo ^ Descrição ^ | Aviso de impossibilidade | Texto dinâmico | Mensagem de pendência conforme modelo TCE-GO | | Lista de tipos de pendência | Texto estático | Homonímia, contas irregulares, deliberações sob efeito suspensivo, provimento de recurso | | Botão "Nova Consulta" | Ação | Reseta o formulário e retorna ao estado search | ==== Tela 05 – Modal de Validação (estado: validacao-modal) ==== {{:pres:gerti:gestao_de_ativos:portal:pasted:20260330-211554.png}} ^ Elemento ^ Tipo ^ Obrigatório ^ Regra ^ | CPF/CNPJ | Texto numérico com máscara | Sim | CPF (11 dígitos) ou CNPJ (14 dígitos) válido | | Data de Emissão | Date | Sim | Formato yyyy-MM-dd (input type="date") | | Hora de Emissão | Time | Sim | Formato HH:mm:ss (input type="time" step=1) | | Código de Controle | Texto | Sim | Código alfanumérico da certidão a validar | | Botão "Validar" | Ação | — | Submete os dados para a API de validação | | Botão "Fechar" | Ação | — | Fecha o modal sem submeter | ==== Tela 06 – Resultado da Validação (estado: validacao-resultado) ==== {{:pres:gerti:gestao_de_ativos:portal:pasted:20260330-211602.png}} ^ Elemento ^ Tipo ^ Descrição ^ | Status da validação | Texto dinâmico | "Certidão válida" ou "A certidão pesquisada não é válida" | | Dados da certidão original | Texto dinâmico | Exibidos apenas quando valida=true: nome, CPF/CNPJ, data/hora de emissão, código, validade | --- ===== Fluxos ===== ==== Fluxo 01 – Emissão de Certidão ==== ^ Passo ^ Ação ^ Regra ^ Tela ^ | 01 | O sistema exibe o formulário de emissão com os campos Nome, CPF/CNPJ e Captcha | — | Tela 01 | | 02 | O cidadão preenche o campo Nome | RN01 | Tela 01 | | 03 | O cidadão preenche o campo CPF/CNPJ — o sistema aplica a máscara automaticamente conforme a quantidade de dígitos digitados | RN02, RN03, RN04 | Tela 01 | | 04 | O cidadão marca o widget reCAPTCHA "Não sou um robô" | RN05 | Tela 01 | | 05 | O cidadão aciona o botão "Emitir Certidão" | — | Tela 01 | | 05.1 | Se Nome não preenchido: o sistema bloqueia a submissão e exibe indicação de campo obrigatório | RN01 | Tela 01 | | 05.2 | Se CPF/CNPJ não preenchido: o sistema bloqueia a submissão e exibe indicação de campo obrigatório | RN02 | Tela 01 | | 05.3 | Se CPF/CNPJ com dígito verificador inválido: o sistema bloqueia a submissão e exibe mensagem de erro antes de chamar a API | RN03, RN04 | Tela 01 | | 05.4 | Se Captcha não verificado: o sistema bloqueia a submissão | RN05 | Tela 01 | | 06 | O sistema exibe o indicador de carregamento e envia requisição POST `/api/certidao/emitir` | RN06 | | | 07 | A API retorna resposta | — | — | | 07.1 | Se `ehPositiva = false`: o sistema executa o [[#fluxo_01a_exibicao_de_certidao_negativa|Fluxo 01A]] | RN07, RN08, RN09 | Tela 03 | | 07.2 | Se `ehPositiva = true`: o sistema executa o [[#fluxo_01b_exibicao_de_aviso_de_pendencia|Fluxo 01B]] | RN10 | Tela 04 | | 07.3 | Se a API retornar erro de validação: o sistema exibe as mensagens de erro correspondentes aos campos | — | Tela 01 | ==== Fluxo 01A – Exibição de Certidão Negativa ==== ^ Passo ^ Ação ^ Regra ^ Tela ^ | 01 | O sistema exibe a certidão negativa com: nome, CPF/CNPJ, data e hora de emissão, código de controle e data de validade (emissão + 30 dias) | RN08, RN09 | Tela 03 | | 02 | O sistema exibe o botão "Imprimir Certidão" | RN11 | Tela 03 | | 03 | O cidadão aciona o botão "Imprimir Certidão": o sistema chama window.print() exibindo exclusivamente o conteúdo da certidão (sem header, formulário, botões ou footer) | RN11, RN12 | Tela 03 | | 04 | O cidadão aciona o botão "Nova Consulta": o sistema reseta todos os campos e retorna ao estado search | — | Tela 01 | ==== Fluxo 01B – Exibição de Aviso de Pendência ==== ^ Passo ^ Ação ^ Regra ^ Tela ^ | 01 | O sistema exibe o aviso: "As informações disponíveis sobre o interessado não permitem a emissão de Certidão Negativa via Internet. É necessário o comparecimento ou contato com o Tribunal de Contas do Estado de Goiás na Secretaria Geral para esclarecimento de pendências e/ou obtenção da Certidão pretendida." | RN10 | Tela 04 | | 02 | O sistema lista os possíveis tipos de pendência: Problemas de Homonímia; Contas julgadas irregulares; Contas julgadas irregulares, cuja deliberação está sob efeito suspensivo; Contas julgadas irregulares, com posterior provimento de recurso, cujo julgamento tornou-se regular | — | Tela 04 | | 03 | O sistema não exibe botão de impressão nem emite documento | RN10 | Tela 04 | | 04 | O cidadão aciona o botão "Nova Consulta": o sistema reseta todos os campos e retorna ao estado search | — | Tela 01 | ==== Fluxo 02 – Validação de Certidão Existente ==== ^ Passo ^ Ação ^ Regra ^ Tela ^ | 01 | O cidadão aciona o link "Validar Certidão" na Tela 01 | — | Tela 01 | | 02 | O sistema abre o modal de validação com os campos: CPF/CNPJ, Data de Emissão, Hora de Emissão e Código de Controle | — | Tela 05 | | 03 | O cidadão preenche todos os campos do modal | RN02, RN03, RN04, RN13 | Tela 05 | | 04 | O cidadão aciona o botão "Validar" | — | Tela 05 | | 04.1 | Se qualquer campo obrigatório não preenchido: o sistema bloqueia a submissão | RN13 | Tela 05 | | 04.2 | Se CPF/CNPJ inválido: o sistema bloqueia a submissão e exibe erro | RN03, RN04 | Tela 05 | | 05 | O sistema envia requisição POST `/api/certidao/validar` com os dados informados | RN14 | Tela 05 | | 06 | A API retorna resposta | — | — | | 06.1 | Se `valida = true`: o sistema exibe os dados originais da certidão (nome, CPF/CNPJ, data/hora de emissão, código de controle, data de validade) | — | Tela 06 | | 06.2 | Se `valida = false`: o sistema exibe a mensagem: "A certidão pesquisada não é válida" | RN15 | Tela 06 | | 07 | O cidadão fecha o modal ou retorna ao formulário de emissão | — | Tela 01 | --- ===== RN – Regras de Negócio ===== ^ Regra ^ Descrição ^ | RN01 | O campo Nome é obrigatório e possui limite máximo de 200 caracteres. | | RN02 | O campo CPF/CNPJ é obrigatório. Deve conter exatamente 11 dígitos (CPF) ou 14 dígitos (CNPJ), excluindo caracteres de formatação. | | RN03 | O tipo de pessoa é inferido automaticamente pelo sistema a partir da quantidade de dígitos: 11 dígitos = Pessoa Física (FISICA); 14 dígitos = Pessoa Jurídica (JURIDICA). | | RN04 | O CPF é validado pelo algoritmo de dígito verificador módulo 11. O CNPJ é validado pelo algoritmo com pesos [5,4,3,2,9,8,7,6,5,4,3,2]. Sequências repetidas (ex: 111.111.111-11) são consideradas inválidas. A validação ocorre no frontend antes de chamar a API. | | RN05 | O campo Captcha é obrigatório. O sistema utiliza componente reCAPTCHA simulado no padrão "Não sou um robô". A submissão é bloqueada enquanto o captcha não for verificado. | | RN06 | A requisição de emissão é enviada via POST para `/api/certidao/emitir` com os campos `nome` e `cpfCnpj` (apenas dígitos). O captcha não é enviado ao backend — é verificado apenas no frontend. | | RN07 | A certidão negativa emitida tem validade de 30 dias a contar da data de emissão. A data de vencimento é calculada e exibida no documento. | | RN08 | A certidão negativa contém um código de controle alfanumérico único (ex: 7FF4DBFE7B7DDAFE) gerado pelo backend, que permite verificar a autenticidade do documento posteriormente. | | RN09 | O sistema não aciona a impressão automaticamente. A impressão é iniciada exclusivamente pela ação do cidadão no botão "Imprimir Certidão". | | RN10 | Quando `ehPositiva = true`, o sistema não emite certidão e não exibe botão de impressão. Exibe apenas o aviso de comparecimento presencial com a lista de possíveis pendências. | | RN11 | O layout de impressão via `@media print` deve ocultar: header, formulário, botões de ação e footer. Deve exibir apenas: logo TCE, título, corpo da certidão e rodapé com código de controle. Fonte de impressão: Times New Roman, 14pt, largura máxima 900px centralizada. | | RN12 | O botão "Nova Consulta" reseta todos os campos do formulário (nome, CPF/CNPJ, captcha) e retorna a interface ao estado `search`, independentemente do estado atual. | | RN13 | No modal de validação, todos os campos são obrigatórios: CPF/CNPJ, Data de Emissão, Hora de Emissão (formato HH:mm:ss) e Código de Controle. | | RN14 | A requisição de validação é enviada via POST para `/api/certidao/validar` com os campos: `cpfCnpj`, `dataEmissao` (formato yyyy-MM-dd), `horaEmissao` (formato HH:mm:ss) e `codigo`. A API consulta a view Oracle `VWEB_CERTIDAO` com os filtros correspondentes. | | RN15 | Quando `valida = false`, o sistema exibe a mensagem: "A certidão pesquisada não é válida". Nenhum dado adicional é exibido. |