Diferenças
Aqui você vê as diferenças entre duas revisões dessa página.
| Próxima revisão | Revisão anterior | ||
| pres:gerti:manuais:integracaoiagoxetce [24/09/2026 14:39] – criada rmpires | pres:gerti:manuais:integracaoiagoxetce [24/09/2026 17:18] (atual) – [Campos] rmpires | ||
|---|---|---|---|
| Linha 1: | Linha 1: | ||
| - | # Integração IAGO × eTCE — Criação de Peças/ | + | ====== |
| - | ## 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:// | + | POST https:// |
| - | ``` | + | </ |
| - | ### Produção | + | ==== Produção |
| Swagger: | Swagger: | ||
| - | <https:// | + | [[https:// |
| Endpoint: | Endpoint: | ||
| - | ```http\\ | + | < |
| - | POST https:// | + | POST https:// |
| - | ``` | + | </ |
| - | --- | + | ---- |
| - | ## 4. Endpoint | + | ===== 4. Endpoint |
| - | ```http\\ | + | < |
| - | POST / | + | 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 **OpenID Connect / Keycloak**, com obtenção prévia de um token Bearer. | 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 ' | + | --header ' |
| - | --data-urlencode ' | + | --data-urlencode ' |
| - | --data-urlencode ' | + | --data-urlencode ' |
| - | --data-urlencode ' | + | --data-urlencode ' |
| - | --data-urlencode ' | + | --data-urlencode ' |
| - | ``` | + | </ |
| - | ### 5.2. Homologação | + | ==== 5.2. Homologação |
| - | ```bash\\ | + | < |
| - | curl --location ' | + | curl --location ' |
| - | --header ' | + | --header ' |
| - | --data-urlencode ' | + | --data-urlencode ' |
| - | --data-urlencode ' | + | --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: | + | Authorization: |
| - | Content-Type: | + | 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\\ | + | 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 134: | 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 | + | ^ 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 | + | < |
| - | {\\ | + | { |
| - | " | + | " |
| - | " | + | " |
| - | " | + | " |
| - | " | + | " |
| - | " | + | " |
| - | " | + | } |
| - | }\\ | + | </ |
| - | ``` | + | |
| - | ### Campos | + | ==== Campos |
| - | | Campo | Obrigatório | + | ^ Campo ^ Obrigatório |
| - | |---|---: | + | | '' |
| - | | `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 | + | | '' |
| - | | `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 | + | ==== Observações sobre o contrato |
| - | - Recomenda-se enviar `tipoDocumento` como `DP`.\\ | + | * Deve ser utilizado '' |
| - | - O contrato deve trabalhar com **um processo por requisição**.\\ | + | |
| - | - Recomenda-se utilizar os tipos definidos no contrato/ | + | |
| - | - `corpoDocumento` deve possuir conteúdo HTML válido e conteúdo efetivo; tags vazias não são aceitas. | + | * '' |
| + | * Tags HTML vazias não são aceitas. | ||
| - | --- | + | ---- |
| - | ## 8. Regra da ementa | + | ===== 8. Regra da ementa |
| - | O campo `ementa` é **opcional**. | + | O campo '' |
| - | ### Quando | + | ==== Quando |
| A ementa do documento será gerada utilizando o conteúdo enviado na própria requisição: | A ementa do documento será gerada utilizando o conteúdo enviado na própria requisição: | ||
| - | ```json\\ | + | < |
| - | {\\ | + | { |
| - | " | + | " |
| - | }\\ | + | } |
| - | ``` | + | </ |
| - | ### Quando `ementa` não é informada | + | ===== 8. Regra da ementa |
| - | A API busca a ementa | + | O campo '' |
| - | Se nenhuma ementa estiver disponível para ser utilizada, a criação não poderá prosseguir. | + | Durante o processamento, a API também considera a ementa cadastrada na autuação do processo. |
| - | Retorno: | + | A definição da ementa do documento ocorre da seguinte forma: |
| - | ```json\\ | + | * quando o campo '' |
| - | {\\ | + | * quando o campo '' |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | }\\ | + | |
| - | ``` | + | |
| - | > Se uma `ementa` válida for enviada diretamente na requisição, ela será utilizada. Caso contrário, será utilizada a ementa cadastrada na autuação. | + | Para que a criação do documento seja concluída, o processo deve possuir |
| - | --- | + | Caso essa informação não esteja preenchida, a API retorna: |
| - | ## 9. Tipo de documento permitido | + | <code json> |
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | ^ Campo '' | ||
| + | | Informado | Conteúdo enviado na requisição | | ||
| + | | Não informado | Ementa cadastrada na autuaçã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 222: | Linha 227: | ||
| 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\\ | + | < |
| - | {\\ | + | { |
| - | " | + | " |
| - | " | + | " |
| - | " | + | " |
| - | " | + | " |
| - | " | + | " |
| - | " | + | " |
| - | " | + | " |
| - | }\\ | + | } |
| - | ``` | + | </ |
| - | ### 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 |
| - | 2. valida autenticação; | + | - Valida a autenticação. |
| - | 3. valida | + | - Valida a autorização para utilização da API. |
| - | 4. valida | + | - Valida |
| - | 5. valida | + | - Valida |
| - | 6. valida | + | - Valida |
| - | 7. valida | + | - Valida |
| - | 8. valida | + | - Valida |
| - | 9. valida | + | - Valida as regras de segurança do processo. |
| - | 10. valida | + | - Valida |
| - | 11. cria uma nova peça ou substitui uma peça anterior quando permitido;\\ | + | - Cria uma nova peça ou substitui uma peça anterior quando permitido. |
| - | 12. cria/atualiza o documento no TCE-Docs;\\ | + | - Cria ou atualiza o documento no TCE-Docs. |
| - | 13. vincula | + | - Vincula |
| - | 14. atualiza | + | - Atualiza |
| - | 15. retorna | + | - 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 294: | Linha 299: | ||
| 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 `setorGeralId` informado. | + | O usuário autenticado precisa estar vinculado ao '' |
| - | ```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 334: | Linha 339: | ||
| 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 | + | ---- |
| + | |||
| + | ==== RN06 — Ementa | ||
| A ementa utilizada no documento segue a seguinte prioridade: | A ementa utilizada no documento segue a seguinte prioridade: | ||
| - | 1. `ementa` informada no body da requisição; | + | - '' |
| - | 2. ementa cadastrada na autuação do processo. | + | |
| Caso não exista uma ementa válida disponível, | Caso não exista uma ementa válida disponível, | ||
| - | --- | + | ---- |
| - | ### 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 381: | Linha 390: | ||
| 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 425: | Linha 434: | ||
| 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`;\\ | + | * 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\\ | + | < |
| - | {\\ | + | { |
| - | " | + | " |
| - | " | + | " |
| - | " | + | " |
| - | " | + | " |
| - | " | + | " |
| - | " | + | " |
| - | " | + | " |
| - | }\\ | + | } |
| - | ``` | + | </ |
| 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 525: | Linha 534: | ||
| Entre os dados relacionados ao documento estão: | Entre os dados relacionados ao documento estão: | ||
| - | ```text\\ | + | < |
| - | ID_DOCUMENT_N\\ | + | ID_DOCUMENT_N |
| - | TIPO_DOCUMENT_A\\ | + | 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 `null`: | + | Quando vazio ou '' |
| - | ```json\\ | + | < |
| - | {\\ | + | { |
| - | " | + | " |
| - | " | + | " |
| - | " | + | " |
| - | " | + | " |
| - | " | + | " |
| - | " | + | " |
| - | " | + | " |
| - | }\\ | + | } |
| - | ``` | + | </ |
| - | ### `conversaId` | + | ==== conversaId |
| O campo não é obrigatório. | O campo não é obrigatório. | ||
| Linha 588: | Linha 597: | ||
| São permitidos: | São permitidos: | ||
| - | - atributo não informado;\\ | + | * atributo não informado; |
| - | - `conversaId = 0`. | + | * '' |
| - | --- | + | ---- |
| - | ## 13. Exemplo de requisição | + | ===== 13. Exemplo de requisição |
| - | ```bash\\ | + | ==== Homologação ==== |
| - | curl --location ' | + | |
| - | --header ' | + | |
| - | --header ' | + | |
| - | --data '{\\ | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | }'\\ | + | |
| - | ``` | + | |
| - | > No ambiente de produção, substituir a URL de homologação pela URL correspondente de produção. | + | <code bash> |
| + | curl --location ' | ||
| + | --header ' | ||
| + | --header ' | ||
| + | --data '{ | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | }' | ||
| + | </ | ||
| - | --- | + | Para produção utilizar: |
| - | ## 14. Retorno de sucesso | + | < |
| + | https:// | ||
| + | </ | ||
| - | ### Criação de novo documento | + | ---- |
| - | ```json | + | ===== 14. Retorno de sucesso ===== |
| - | {\\ | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | }\\ | + | |
| - | ``` | + | |
| - | ### Substituição permitida | + | ==== Criação de novo documento ==== |
| - | ```json\\ | + | < |
| - | {\\ | + | { |
| - | " | + | " |
| - | " | + | " |
| - | " | + | " |
| - | " | + | " |
| - | " | + | " |
| - | " | + | " |
| - | }\\ | + | } |
| - | ``` | + | </ |
| - | ### Campos do retorno | + | ==== Substituição permitida ==== |
| - | | Campo | Descrição |\\ | + | <code json> |
| - | |---|---|\\ | + | { |
| - | | `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 `CriacaoNova` ou `Substituicao`. | | + | " |
| + | } | ||
| + | </ | ||
| - | --- | + | ==== Campos do retorno ==== |
| - | ## 15. Códigos HTTP | + | ^ Campo ^ Descriçã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. | | + | |
| - | --- | + | ===== 15. Códigos HTTP ===== |
| - | ## 16. Resumo das principais validações | + | ^ HTTP ^ Situação ^ |
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| - | | 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, se as demais regras forem atendidas |\\ | + | |
| - | | 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 | | + | |
| - | --- | + | ===== 16. Resumo das principais validações ===== |
| - | ## 17. Consideraçõ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 | ||
| + | | 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/ | ||
| + | | '' | ||
| + | | '' | ||
| - | Para habilitar a criação automática de peças em novos setores, deve-se verificar no mínimo: | + | ---- |
| - | 1. lotação/ | + | ===== 17. Considerações |
| - | 2. permissão do usuário | + | |
| - | 3. disponibilidade do tipo documental para o setor;\\ | + | |
| - | 4. existência de responsável cadastrado para o setor;\\ | + | |
| - | 5. regras específicas do tipo documental; | + | |
| - | 6. necessidade de habilitar novos indicadores além de `DP`;\\ | + | |
| - | 7. adequação das regras de segurança e substituição; | + | |
| - | 8. validação em ambiente de homologação antes da liberação em produção. | + | |
| - | Enquanto não houver ampliação formal da integração, deve-se | + | Para habilitar a criação automática de peças em novos setores, deve-se |
| - | --- | + | |
| + | | ||
| + | | ||
| + | - 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. | ||
| - | ## 18. Recomendações para consumo pelo IAGO | + | Enquanto não houver ampliação formal da integração, |
| - | Antes de enviar a requisição: | + | ---- |
| - | - obter o token utilizando o usuário de serviço; | + | ===== 18. Recomendações para consumo pelo IAGO ===== |
| - | - utilizar o setor em que o processo efetivamente se encontra; | + | |
| - | - garantir que o usuário esteja vinculado ao setor;\\ | + | |
| - | - utilizar `tipoDocumento | + | |
| - | - enviar HTML válido e não vazio em `corpoDocumento`; | + | |
| - | - enviar `ementa` quando o IAGO possuir uma ementa específica para a peça;\\ | + | |
| - | - utilizar `conversaId` quando houver necessidade de rastreabilidade da interação; | + | |
| - | - tratar `409` e `422` como respostas funcionais de regra de negócio/ | + | |
| - | - não realizar substituição forçada quando a API indicar alteração humana, assinatura ou edição do documento. | + | |
| - | --- | + | Antes de enviar a requisiçã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 '' | ||
| + | * utilizar '' | ||
| + | * tratar '' | ||
| + | * não realizar substituição forçada quando a API indicar alteração humana, assinatura ou edição do documento. | ||
| + | ---- | ||