Diferenças
Aqui você vê as diferenças entre duas revisões dessa página.
| Ambos lados da revisão anterior Revisão anterior Próxima revisão | Revisão anterior | ||
| pres:gerti:manuais:integracaoiagoxetce [24/09/2026 14:46] – rmpires | pres:gerti:manuais:integracaoiagoxetce [24/09/2026 17:58] (atual) – [RN06 — Ementa] rmpires | ||
|---|---|---|---|
| Linha 1: | Linha 1: | ||
| - | # Integração | + | ====== |
| - | ## 1. Objetivo | + | ===== 1. Objetivo |
| - | Este documento descreve a integração utilizada pelo **IAGO** para criação automática de peças no **eTCE-GO | + | Este documento descreve a integração utilizada pelo **IAGO** para criação automática de peças no **eTCE-GO**, |
| - | - endpoint utilizado; | + | * endpoint utilizado; |
| + | * ambientes disponíveis; | ||
| + | * autenticação; | ||
| + | * usuário de serviço; | ||
| + | * contrato da requisição; | ||
| + | * regras para inclusão e substituição de documentos; | ||
| + | * validações de negócio; | ||
| + | * retornos HTTP; | ||
| + | * mensagens de validação; | ||
| + | * regras específicas da primeira versão da integração. | ||
| - | A finalidade do endpoint é permitir que uma peça produzida com apoio de Inteligência Artificial seja criada no TCE-Docs | + | A finalidade do endpoint é permitir que uma peça produzida com apoio de Inteligência Artificial seja criada no eTCE e vinculada ao último andamento do processo no setor informado. |
| - | > **Importante: | + | > **Importante: |
| + | > O uso do usuário de serviço | ||
| - | — | + | ---- |
| - | ## 2. Repositório da aplicação | + | ===== 2. Repositório da aplicação |
| Código-fonte do backend do eTCE: | Código-fonte do backend do eTCE: | ||
| - | <[[https:// | + | [[https:// |
| - | — | + | ---- |
| - | ## 3. Ambientes | + | ===== 3. Ambientes |
| - | ### Homologação | + | ==== Homologação |
| Swagger: | Swagger: | ||
| - | <[[https:// | + | [[https:// |
| Endpoint: | Endpoint: | ||
| - | ```http | + | < |
| + | POST https:// | ||
| + | </ | ||
| - | ### Produção | + | ==== Produção |
| Swagger: | Swagger: | ||
| - | <[[https:// | + | [[https:// |
| Endpoint: | Endpoint: | ||
| - | ```http | + | < |
| + | POST https:// | ||
| + | </ | ||
| - | — | + | ---- |
| - | ## 4. Endpoint | + | ===== 4. Endpoint |
| - | ```http | + | < |
| + | POST / | ||
| + | </ | ||
| - | ### Descrição | + | ==== Descrição |
| - | Cria o documento gerado pelo IAGO no **TCE-Docs** e vincula o documento ao **último andamento do processo**, considerando o processo, o setor informado e o usuário autenticado. | + | Cria o documento gerado pelo IAGO no **eTCE** e vincula o documento ao **último andamento do processo**, considerando o processo, o setor informado e o usuário autenticado. |
| - | O endpoint centraliza as validações necessárias para a criação da peça. Não existe uma etapa separada de pré-validação. | + | O endpoint centraliza as validações necessárias para a criação da peça. |
| - | — | + | ---- |
| - | ## 5. Autenticação | + | ===== 5. Autenticação |
| - | A integração utiliza autenticação via **[[: | + | A integração utiliza autenticação via **OpenID Connect / Keycloak**, com obtenção prévia de um token Bearer. |
| - | ### 5.1. Produção | + | ==== 5.1. Produção |
| - | ```bash curl –location ' | + | < |
| + | curl --location ' | ||
| + | --header ' | ||
| + | --data-urlencode ' | ||
| + | --data-urlencode ' | ||
| + | --data-urlencode ' | ||
| + | --data-urlencode ' | ||
| + | </ | ||
| - | - -header ' | + | ==== 5.2. Homologação ==== |
| - | - -data-urlencode ' | + | |
| - | - -data-urlencode ' | + | |
| - | - -data-urlencode ' | + | |
| - | - -data-urlencode ' | + | |
| - | ``` | + | <code bash> |
| - | + | curl --location ' | |
| - | ### 5.2. Homologação | + | --header ' |
| - | + | --data-urlencode ' | |
| - | ```bash | + | --data-urlencode ' |
| - | + | --data-urlencode ' | |
| - | - -header ' | + | --data-urlencode ' |
| - | - -data-urlencode ' | + | </ |
| - | - -data-urlencode ' | + | |
| - | - -data-urlencode ' | + | |
| - | - -data-urlencode ' | + | |
| - | + | ||
| - | ``` | + | |
| O token retornado deve ser enviado ao endpoint: | O token retornado deve ser enviado ao endpoint: | ||
| - | ```http | + | < |
| + | Authorization: | ||
| + | Content-Type: | ||
| + | </ | ||
| - | ### Retornos relacionados à autenticação | + | ==== Retornos relacionados à autenticação |
| - | |HTTP|Situação| | + | ^ HTTP ^ Situação |
| - | |—|—| | + | | '' |
| - | |`401 Unauthorized`|Requisição realizada sem autenticação/ | + | | '' |
| - | |`403 Forbidden`|Usuário autenticado, | + | |
| - | — | + | ---- |
| - | ## 6. Usuário de serviço | + | ===== 6. Usuário de serviço |
| O usuário recomendado para criação das peças geradas pelo IAGO é: | O usuário recomendado para criação das peças geradas pelo IAGO é: | ||
| - | ```text | + | < |
| + | BOTMINUTA | ||
| + | </ | ||
| O uso desse usuário permite identificar que o documento foi produzido por meio da integração com Inteligência Artificial e que deve passar por revisão de um servidor antes da continuidade do fluxo. | O uso desse usuário permite identificar que o documento foi produzido por meio da integração com Inteligência Artificial e que deve passar por revisão de um servidor antes da continuidade do fluxo. | ||
| - | ### 6.1. Regra de lotação | + | ==== 6.1. Regra de lotação |
| Uma das principais regras da integração é: | Uma das principais regras da integração é: | ||
| Linha 116: | Linha 134: | ||
| Atualmente existem vinculações do usuário de serviço aos seguintes setores: | Atualmente existem vinculações do usuário de serviço aos seguintes setores: | ||
| - | |Setor|Descrição|Usuário/ | + | ^ Setor ^ Descrição |
| - | |—|—|—| | + | | '' |
| - | |`DI-TI`|Diretoria de Tecnologia da Informação|`BOTMINUTA`| | + | | '' |
| - | |`GPCCR`|Gabinete do Procurador de Contas Carlos Gustavo Silva Rodrigues|`BOTMINUTA_GPCCR`| | + | |
| - | > Caso a funcionalidade seja disponibilizada para novos setores, será necessário incluir o usuário de serviço no setor correspondente antes de utilizar o endpoint. | + | > **Importante: |
| - | — | + | ---- |
| - | ## 7. Contrato da requisição | + | ===== 7. Contrato da requisição |
| - | ### Request Body | + | ==== Request Body ==== |
| - | + | ||
| - | ```json { | + | |
| - | < | + | |
| - | + | ||
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| + | <code json> | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | } | ||
| </ | </ | ||
| - | } ``` | + | ==== Campos ==== |
| - | ### Campos | + | ^ Campo ^ Obrigatório ^ Descrição ^ |
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| - | |Campo|Obrigatório|Descrição| | + | ==== Observações sobre o contrato ==== |
| - | |—|—: | + | |
| - | |`setorGeralId`|Sim|Identificador do setor no qual o processo deverá estar e ao qual o usuário autenticado deverá estar vinculado.| | + | |
| - | |`codigoProcesso`|Sim|Código do processo onde a peça será criada.| | + | |
| - | |`tipoDocumento`|Sim|Indicador do tipo de documento. Na primeira versão da integração deve ser utilizado `DP`, correspondente a **Parecer**.| | + | |
| - | |`corpoDocumento`|Sim|Conteúdo da peça em HTML.| | + | |
| - | |`conversaId`|Não|Identificador da conversa do IAGO, utilizado para rastreabilidade quando informado. O valor `0` é aceito e é tratado como não informado.| | + | |
| - | |`ementa`|Não|Ementa que será associada ao documento. Quando informada, será utilizada na criação da peça; quando omitida, a API utiliza a ementa cadastrada na autuação do processo.| | + | |
| - | ### Observações sobre o contrato | + | * Deve ser utilizado '' |
| + | * O contrato | ||
| + | * Recomenda-se utilizar os tipos definidos no contrato/ | ||
| + | * '' | ||
| + | * Tags HTML vazias não são aceitas. | ||
| - | - Recomenda-se enviar `tipoDocumento` como `DP`. - O contrato deve trabalhar com **um processo por requisição**. | + | ---- |
| - | — | + | ===== 8. Regra da ementa ===== |
| - | ## 8. Regra da ementa | + | O campo '' |
| - | O campo `ementa` é **opcional**. | + | Durante o processamento, |
| - | ### Quando `ementa` é informada | + | A definição da ementa |
| - | A ementa | + | * quando o campo '' |
| + | * quando | ||
| - | ```json { | + | Para que a criação do documento seja concluída, o processo deve possuir ementa cadastrada na autuação. |
| - | < | + | |
| - | " | + | Caso essa informação não esteja preenchida, a API retorna: |
| + | <code json> | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | } | ||
| </ | </ | ||
| - | } ``` | + | ^ Campo '' |
| + | | Informado | Conteúdo enviado na requisição | | ||
| + | | Não informado | Ementa cadastrada na autuação | | ||
| + | ---- | ||
| - | ### Quando `ementa` não é informada | + | ===== 9. Tipo de documento permitido |
| - | + | ||
| - | A API busca a ementa cadastrada no processo, proveniente do cadastro da **autuação**. | + | |
| - | + | ||
| - | Se nenhuma ementa estiver disponível para ser utilizada, a criação não poderá prosseguir. | + | |
| - | + | ||
| - | Retorno: | + | |
| - | + | ||
| - | ```json { | + | |
| - | + | ||
| - | < | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | + | ||
| - | </ | + | |
| - | + | ||
| - | } ``` | + | |
| - | + | ||
| - | > Se uma `ementa` válida for enviada diretamente na requisição, | + | |
| - | + | ||
| - | — | + | |
| - | + | ||
| - | ## 9. Tipo de documento permitido | + | |
| Na primeira versão da integração foi implementada a criação de **Parecer**. | Na primeira versão da integração foi implementada a criação de **Parecer**. | ||
| Linha 210: | Linha 213: | ||
| O valor esperado é: | O valor esperado é: | ||
| - | ```json { | + | < |
| - | + | { | |
| - | < | + | |
| - | " | + | } |
| </ | </ | ||
| - | } ``` | + | '' |
| - | + | ||
| - | `DP` corresponde ao tipo documental **Parecer**. | + | |
| Não devem ser enviados outros tipos documentais enquanto não forem explicitamente habilitados para a integração. | Não devem ser enviados outros tipos documentais enquanto não forem explicitamente habilitados para a integração. | ||
| - | ### Tipo não permitido para integração com o IAGO | + | ==== Tipo não permitido para integração com o IAGO ==== |
| - | + | ||
| - | ```json { | + | |
| - | + | ||
| - | < | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| + | <code json> | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | } | ||
| </ | </ | ||
| - | } ``` | + | ==== Tipo inexistente ou indisponível para o setor ==== |
| - | + | ||
| - | ### Tipo inexistente ou indisponível para o setor | + | |
| Também pode ocorrer validação relacionada ao cadastro ou habilitação do tipo documental para o setor informado: | Também pode ocorrer validação relacionada ao cadastro ou habilitação do tipo documental para o setor informado: | ||
| - | ```json { | + | < |
| - | + | { | |
| - | < | + | |
| - | " | + | " |
| - | " | + | " |
| - | " | + | " |
| - | " | + | " |
| - | " | + | " |
| - | " | + | " |
| - | " | + | } |
| </ | </ | ||
| - | } ``` | + | ---- |
| - | — | + | ===== 10. Fluxo da operação |
| - | + | ||
| - | ## 10. Fluxo da operação | + | |
| De forma simplificada, | De forma simplificada, | ||
| - | 1. recebe | + | - Recebe |
| + | - Valida a autenticação. | ||
| + | - Valida a autorização para utilização da API. | ||
| + | - Valida | ||
| + | - Valida | ||
| + | - Valida | ||
| + | - Valida | ||
| + | - Valida | ||
| + | - Valida as regras de segurança do processo. | ||
| + | - Valida | ||
| + | - Cria uma nova peça ou substitui uma peça anterior quando permitido. | ||
| + | - Cria ou atualiza o documento no TCE-Docs. | ||
| + | - Vincula | ||
| + | - Atualiza | ||
| + | - Retorna | ||
| - | — | + | ---- |
| - | ## 11. Regras de negócio | + | ===== 11. Regras de negócio |
| - | ### RN01 — Processo existente | + | ==== RN01 — Processo existente |
| O processo informado precisa existir. | O processo informado precisa existir. | ||
| Linha 277: | Linha 285: | ||
| Caso contrário, a operação é interrompida. | Caso contrário, a operação é interrompida. | ||
| - | ```json { | + | < |
| - | + | { | |
| - | < | + | |
| - | " | + | " |
| - | " | + | " |
| - | " | + | " |
| - | " | + | " |
| - | " | + | " |
| - | " | + | " |
| - | " | + | } |
| </ | </ | ||
| - | } ``` | + | ---- |
| - | — | + | ==== RN02 — Usuário vinculado ao setor ==== |
| - | ### RN02 — Usuário vinculado ao setor | + | O usuário autenticado precisa estar vinculado ao '' |
| - | + | ||
| - | O usuário autenticado precisa estar vinculado ao `setorGeralId` informado. | + | |
| - | + | ||
| - | ```json { | + | |
| - | + | ||
| - | < | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| + | <code json> | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | } | ||
| </ | </ | ||
| - | |||
| - | } ``` | ||
| Essa regra é válida tanto para processos comuns quanto reservados. | Essa regra é válida tanto para processos comuns quanto reservados. | ||
| - | — | + | ---- |
| - | ### RN03 — Processo no setor informado | + | ==== RN03 — Processo no setor informado |
| O processo deve estar no setor informado na requisição, | O processo deve estar no setor informado na requisição, | ||
| Linha 323: | Linha 325: | ||
| Não é permitido utilizar a integração para incluir uma peça em processo pertencente a setor para o qual o usuário de serviço não esteja devidamente vinculado. | Não é permitido utilizar a integração para incluir uma peça em processo pertencente a setor para o qual o usuário de serviço não esteja devidamente vinculado. | ||
| - | — | + | ---- |
| - | ### RN04 — Processos sigilosos | + | ==== RN04 — Processos sigilosos |
| Não é permitida a criação de documentos por este endpoint em processos classificados como **sigilosos**, | Não é permitida a criação de documentos por este endpoint em processos classificados como **sigilosos**, | ||
| - | ```json { | + | < |
| - | + | { | |
| - | < | + | |
| - | " | + | " |
| - | " | + | " |
| - | " | + | " |
| - | " | + | " |
| - | " | + | " |
| - | " | + | " |
| - | " | + | } |
| </ | </ | ||
| - | |||
| - | } ``` | ||
| O número do processo apresentado na mensagem varia conforme o processo informado. | O número do processo apresentado na mensagem varia conforme o processo informado. | ||
| - | — | + | ---- |
| - | ### RN05 — Processos reservados | + | ==== RN05 — Processos reservados |
| - | A criação é permitida em processo reservado desde que o usuário de serviço esteja vinculado ao mesmo setor do processo e as demais regras de negócio sejam atendidas. | + | A criação é permitida em processo reservado desde que: |
| - | Caso o usuário | + | * o usuário |
| + | * o processo esteja no setor informado; | ||
| + | * as demais regras de negócio sejam atendidas. | ||
| - | — | + | Caso o usuário não esteja vinculado ao setor informado, a requisição é rejeitada com '' |
| - | ### RN06 — Ementa | + | ---- |
| - | A ementa utilizada no documento segue a seguinte prioridade: | + | ==== RN06 — Ementa ==== |
| - | 1. `ementa` informada no body da requisição; | + | Aplica-se a regra descrita no tópico **8. Regra da ementa**: |
| - | Caso não exista uma ementa | + | * se '' |
| + | * se não for informada, será utilizada a ementa | ||
| + | * em ambos os casos, o processo deve possuir ementa cadastrada na autuação para que a criação | ||
| - | — | + | ---- |
| - | ### RN07 — Responsável pelo setor | + | ==== RN07 — Responsável pelo setor ==== |
| Deve existir responsável cadastrado para o setor do processo. | Deve existir responsável cadastrado para o setor do processo. | ||
| Linha 372: | Linha 375: | ||
| Caso não exista responsável cadastrado, a criação da minuta será interrompida. | Caso não exista responsável cadastrado, a criação da minuta será interrompida. | ||
| - | — | + | ---- |
| - | ### RN08 — Documento assinado ou aguardando assinatura | + | ==== RN08 — Documento assinado ou aguardando assinatura |
| Não é permitida a substituição quando o processo já possui documento assinado ou aguardando assinatura. | Não é permitida a substituição quando o processo já possui documento assinado ou aguardando assinatura. | ||
| - | ```json { | + | < |
| - | + | { | |
| - | < | + | |
| - | " | + | " |
| - | " | + | " |
| - | " | + | " |
| - | " | + | " |
| - | " | + | " |
| - | " | + | " |
| - | " | + | } |
| </ | </ | ||
| - | } ``` | + | ---- |
| - | — | + | ==== RN09 — Documento aberto para edição no Word ==== |
| - | + | ||
| - | ### RN09 — Documento aberto para edição no Word | + | |
| Não é permitida a substituição automática quando o documento está aberto para edição. | Não é permitida a substituição automática quando o documento está aberto para edição. | ||
| - | ```json { | + | < |
| - | + | { | |
| - | < | + | |
| - | " | + | " |
| - | " | + | " |
| - | " | + | " |
| - | " | + | " |
| - | " | + | " |
| - | " | + | " |
| - | " | + | } |
| </ | </ | ||
| - | } ``` | + | ---- |
| - | + | ||
| - | — | + | |
| - | ### RN10 — Substituição de documento criado pelo IAGO | + | ==== RN10 — Substituição de documento criado pelo IAGO ==== |
| Um documento criado anteriormente pelo IAGO pode ser automaticamente substituído **somente quando não tiver sofrido alteração por usuário**. | Um documento criado anteriormente pelo IAGO pode ser automaticamente substituído **somente quando não tiver sofrido alteração por usuário**. | ||
| Linha 422: | Linha 419: | ||
| Nesse cenário, o endpoint retorna sucesso e: | Nesse cenário, o endpoint retorna sucesso e: | ||
| - | ```json { | + | < |
| - | + | { | |
| - | < | + | |
| - | " | + | } |
| </ | </ | ||
| - | } ``` | + | ---- |
| - | — | + | ==== RN11 — Documento criado pelo IAGO e alterado por usuário |
| - | + | ||
| - | ### RN11 — Documento criado pelo IAGO e alterado por usuário | + | |
| Se um documento criado pelo IAGO tiver sido posteriormente alterado por um usuário, a substituição automática não é permitida. | Se um documento criado pelo IAGO tiver sido posteriormente alterado por um usuário, a substituição automática não é permitida. | ||
| - | ```json { | + | < |
| - | + | { | |
| - | < | + | |
| - | " | + | " |
| - | " | + | " |
| - | " | + | " |
| - | " | + | " |
| - | " | + | " |
| - | " | + | " |
| - | " | + | } |
| </ | </ | ||
| - | } ``` | + | ---- |
| - | — | + | ==== RN12 — Documento criado por usuário |
| - | + | ||
| - | ### RN12 — Documento criado por usuário | + | |
| Documentos originalmente criados por usuário não podem ser substituídos automaticamente pela integração. | Documentos originalmente criados por usuário não podem ser substituídos automaticamente pela integração. | ||
| - | ```json { | + | < |
| - | + | { | |
| - | < | + | |
| - | " | + | " |
| - | " | + | " |
| - | " | + | " |
| - | " | + | " |
| - | " | + | " |
| - | " | + | " |
| - | " | + | } |
| </ | </ | ||
| - | } ``` | + | ---- |
| - | — | + | ==== RN13 — Corpo do documento obrigatório ==== |
| - | ### RN13 — Corpo do documento obrigatório | + | '' |
| - | + | ||
| - | `corpoDocumento` é obrigatório e precisa conter conteúdo válido. | + | |
| Não são aceitos: | Não são aceitos: | ||
| - | - valor `null`; - string vazia; | + | * valor '' |
| + | * string vazia; | ||
| + | * conteúdo contendo somente espaços; | ||
| + | * HTML sem conteúdo útil; | ||
| + | * conteúdo em formato HTML considerado inválido pela API. | ||
| - | Para valor vazio ou `null`: | + | Para valor vazio ou '' |
| - | + | ||
| - | ```json { | + | |
| - | + | ||
| - | < | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| + | <code json> | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | } | ||
| </ | </ | ||
| - | |||
| - | } ``` | ||
| Para HTML inválido ou contendo somente tags vazias: | Para HTML inválido ou contendo somente tags vazias: | ||
| - | ```json { | + | < |
| - | + | { | |
| - | < | + | |
| - | " | + | " |
| - | " | + | " |
| - | " | + | " |
| - | " | + | " |
| - | " | + | " |
| - | " | + | " |
| - | " | + | } |
| </ | </ | ||
| - | } ``` | + | ---- |
| - | — | + | ==== RN14 — Um processo por requisição |
| - | + | ||
| - | ### RN14 — Um processo por requisição | + | |
| O endpoint deve ser utilizado para inclusão de documento em **um processo por vez**. | O endpoint deve ser utilizado para inclusão de documento em **um processo por vez**. | ||
| - | Não deve ser enviada uma lista de processos no campo `codigoProcesso`. | + | Não deve ser enviada uma lista de processos no campo '' |
| - | — | + | ---- |
| - | ### RN15 — Atualização do andamento | + | ==== RN15 — Atualização do andamento |
| Após a criação do documento, o endpoint atualiza o andamento do processo, incluindo os dados utilizados para referenciar o documento gerado no TCE-Docs. | Após a criação do documento, o endpoint atualiza o andamento do processo, incluindo os dados utilizados para referenciar o documento gerado no TCE-Docs. | ||
| Linha 533: | Linha 519: | ||
| Entre os dados relacionados ao documento estão: | Entre os dados relacionados ao documento estão: | ||
| - | ```text | + | < |
| + | ID_DOCUMENT_N | ||
| + | TIPO_DOCUMENT_A | ||
| + | </ | ||
| - | — | + | ---- |
| - | ## 12. Campos obrigatórios e mensagens de validação | + | ===== 12. Campos obrigatórios e mensagens de validação |
| - | ### `setorGeralId` | + | ==== setorGeralId |
| Quando não informado: | Quando não informado: | ||
| - | ```json { | + | < |
| - | + | { | |
| - | < | + | |
| - | " | + | " |
| - | " | + | " |
| - | " | + | " |
| - | " | + | " |
| - | " | + | " |
| - | " | + | " |
| - | " | + | } |
| </ | </ | ||
| - | } ``` | + | ==== codigoProcesso |
| - | + | ||
| - | ### `codigoProcesso` | + | |
| Quando não informado: | Quando não informado: | ||
| - | ```json { | + | < |
| - | + | { | |
| - | < | + | |
| - | " | + | " |
| - | " | + | " |
| - | " | + | " |
| - | " | + | " |
| - | " | + | " |
| - | " | + | " |
| - | " | + | } |
| </ | </ | ||
| - | } ``` | + | ==== corpoDocumento ==== |
| - | ### `corpoDocumento` | + | Quando vazio ou '' |
| - | + | ||
| - | Quando vazio ou `null`: | + | |
| - | + | ||
| - | ```json { | + | |
| - | + | ||
| - | < | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| + | <code json> | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | } | ||
| </ | </ | ||
| - | } ``` | ||
| - | ### `conversaId` | ||
| - | O campo não é obrigatório. | + | ===== 13. Exemplo de requisição ===== |
| - | São permitidos: | + | ==== Homologação ==== |
| - | - atributo não informado; - `conversaId = 0`. | + | < |
| - | + | curl --location ' | |
| - | — | + | --header ' |
| - | + | --header ' | |
| - | ## 13. Exemplo de requisição | + | --data '{ |
| - | + | " | |
| - | ```bash curl –location ' | + | " |
| - | + | " | |
| - | - -header ' | + | " |
| - | - -header ' | + | " |
| - | - -data '{ | + | }' |
| + | </ | ||
| - | " | + | Para produção utilizar: |
| < | < | ||
| - | " | + | https://api-etce.tce.go.gov.br/api/ |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | }' | + | |
| </ | </ | ||
| - | ``` | + | ---- |
| - | > No ambiente | + | ===== 14. Retorno |
| - | — | + | ==== Criação de novo documento |
| - | + | ||
| - | ## 14. Retorno de sucesso | + | |
| - | + | ||
| - | ### Criação de novo documento | + | |
| - | + | ||
| - | ```json { | + | |
| - | + | ||
| - | < | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| + | <code json> | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | } | ||
| </ | </ | ||
| - | } ``` | + | ==== Substituição permitida |
| - | + | ||
| - | ### Substituição permitida | + | |
| - | + | ||
| - | ```json { | + | |
| - | + | ||
| - | < | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| + | <code json> | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | } | ||
| </ | </ | ||
| - | } ``` | + | ==== Campos do retorno ==== |
| - | ### Campos | + | ^ Campo ^ Descrição ^ |
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| - | |Campo|Descrição| | + | ---- |
| - | |—|—| | + | |
| - | |`documentoId`|Identificador do documento criado/ | + | |
| - | |`codigoProcesso`|Processo relacionado à operação.| | + | |
| - | |`tipoDocumento`|Descrição do tipo documental criado.| | + | |
| - | |`dataHora`|Data e hora da operação.| | + | |
| - | |`nomeUsuario`|Usuário responsável pela criação via integração.| | + | |
| - | |`acaoExecutada`|Informa se houve `[[: | + | |
| - | — | + | ===== 15. Códigos HTTP ===== |
| - | ## 15. Códigos | + | ^ HTTP ^ Situação ^ |
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| - | |HTTP|Situação| | + | ---- |
| - | |—|—| | + | |
| - | |`200 OK`|Documento criado ou substituído com sucesso.| | + | |
| - | |`400 Bad Request`|Campos ou parâmetros inválidos, processo inexistente, | + | |
| - | |`401 Unauthorized`|Ausência de autenticação válida.| | + | |
| - | |`403 Forbidden`|Usuário autenticado sem autorização para utilizar o endpoint.| | + | |
| - | |`409 Conflict`|Regra de negócio impede a criação ou substituição.| | + | |
| - | |`422 Unprocessable Entity`|Falha de validação ou vínculo, como usuário não vinculado ao setor informado.| | + | |
| - | |`500 Internal Server Error`|Erro interno da aplicação.| | + | |
| - | — | + | ===== 16. Resumo das principais validações ===== |
| - | ## 16. Resumo das principais validações | + | ^ Validação ^ Resultado ^ |
| + | | Usuário sem autenticação | '' | ||
| + | | Usuário sem permissão | '' | ||
| + | | '' | ||
| + | | Usuário não vinculado ao setor | '' | ||
| + | | '' | ||
| + | | Processo inexistente | '' | ||
| + | | Processo sigiloso | '' | ||
| + | | Processo reservado no mesmo setor | Permitido, se as demais regras forem atendidas | | ||
| + | | Processo reservado fora do setor | '' | ||
| + | | Processo sem ementa disponível | '' | ||
| + | | Tipo diferente do permitido para integração | '' | ||
| + | | Documento assinado/ | ||
| + | | Documento em edição no Word | '' | ||
| + | | Documento IAGO sem alteração humana | Substituição permitida | | ||
| + | | Documento IAGO alterado por usuário | '' | ||
| + | | Documento criado por usuário | '' | ||
| + | | '' | ||
| + | | HTML inválido/ | ||
| - | |Validação|Resultado| | ||
| - | |—|—| | ||
| - | |Usuário sem autenticação|`401`| | ||
| - | |Usuário sem permissão|`403`| | ||
| - | |`setorGeralId` ausente|`400`| | ||
| - | |Usuário não vinculado ao setor|`422`| | ||
| - | |`codigoProcesso` ausente|`400`| | ||
| - | |Processo inexistente|`400`| | ||
| - | |Processo sigiloso|`409`| | ||
| - | |Processo reservado no mesmo setor|Permitido, | ||
| - | |Processo reservado fora do setor|`422`| | ||
| - | |Processo sem ementa disponível|`409`| | ||
| - | |Tipo diferente do permitido para integração|`409`| | ||
| - | |Documento assinado/ | ||
| - | |Documento em edição no Word|`409`| | ||
| - | |Documento IAGO sem alteração humana|Substituição permitida| | ||
| - | |Documento IAGO alterado por usuário|`409`| | ||
| - | |Documento criado por usuário|`409`| | ||
| - | |`corpoDocumento` vazio ou `null`|`400`| | ||
| - | |HTML inválido/ | ||
| - | |`conversaId` ausente|Permitido| | ||
| - | |`conversaId = 0`|Permitido| | ||
| - | — | + | ---- |
| - | ## 17. Considerações para expansão da funcionalidade | + | ===== 17. Considerações para expansão da funcionalidade |
| Para habilitar a criação automática de peças em novos setores, deve-se verificar no mínimo: | Para habilitar a criação automática de peças em novos setores, deve-se verificar no mínimo: | ||
| - | 1. lotação/ | + | - lotação/ |
| + | - permissão do usuário para utilização do endpoint; | ||
| + | - disponibilidade do tipo documental para o setor; | ||
| + | - existência de responsável cadastrado para o setor; | ||
| + | - regras específicas do tipo documental; | ||
| + | - necessidade de habilitar novos indicadores além de '' | ||
| + | - adequação das regras de segurança e substituição; | ||
| + | - validação em ambiente de homologação antes da liberação em produção. | ||
| - | Enquanto não houver ampliação formal da integração, | + | Enquanto não houver ampliação formal da integração, |
| - | — | + | ---- |
| - | ## 18. Recomendações para consumo pelo IAGO | + | ===== 18. Recomendações para consumo pelo IAGO ===== |
| Antes de enviar a requisição: | Antes de enviar a requisição: | ||
| - | - obter o token utilizando o usuário de serviço; | + | * obter o token utilizando o usuário de serviço; |
| - | + | * utilizar o setor em que o processo efetivamente se encontra; | |
| - | — | + | * garantir que o usuário esteja vinculado ao setor; |
| - | + | * utilizar | |
| - | + | * enviar HTML válido e não vazio em '' | |
| + | * enviar | ||
| + | * tratar | ||
| + | * não realizar substituição forçada quando a API indicar alteração humana, assinatura ou edição do documento. | ||
| + | ---- | ||