{"openapi":"3.0.1","info":{"title":"Integrações","description":"\n# Introdução\n\nBem-vindo à documentação da API Integrações. Este documento fornece as informações necessárias para que os desenvolvedores utilizem os recursos do **SWA.JACAD**, sejam eles baseados em servidor ou no lado do cliente.\n\nA API Integrações permite acessar dados e funcionalidades de **Integrações** usando código em vez da interface do usuário.\n\nPor exemplo, você pode usar a API para:\n- Consultar disciplinas do Moodle.\n- Informar código do curso Moodle para disciplinas.\n\n\n### Quadro de Relacionamentos -JACAD\n<iframe style=\"border:none\" width=\"100%\" height=\"450\" src=\"https://whimsical.com/embed/JSZHN7TY25PZogto4GiP1D\"></iframe>\n \n## Segurança\n\nA API REST do JACAD utiliza o protocolo HTTPS para  uma  comunicação  criptografada, além  disso, todas as solicitações  na API são  obrigadas a informar  um  **token de  acesso** (Access Token) para  garantir a .\n\n### Obtendo  uma  Chave  de API\n\nPara  obter  um Token de  Acesso é necessário  se  autenticar  com  uma  **Chave  de API**. Você  pode  obter  sua  Chave  de API no painel  de  administração  da  plataforma SWA.JACAD.\n\nUma  Chave  de API tem o seguinte  formato:\n\n```json\n5837fa342c8a14c50c2d7c9a73369dce\n```\n\nUma  chave  de API deve  ser  definido  na  plataforma SWA.JACAD para  autenticação  na API.\n\nNavegue  até:`Integrações` > `API de  Integrações` > `Tokens de  Acesso` > `Cadastro  de Token de  Acesso`.\n\n1. Clique em  **Inserir**.\n2. Selecione  um  usuário.\n3. Insira a data de  vigência do token ou  marque a flag para  não  validar  datas.\n4. Clique em  salvar  para  gerar  automaticamente  um Token.\n\n**Nota:** É necessário  possuir  privilégios  de  administrador  para  obter  uma  chave  de API.\n\n![SWA.JACAD Desktop](/gerando-token.png \"Gerando Token de  acesso\")\n\n\n### Aviso\n\nTokens de API podem  representar  um  risco  de  segurança  para  sua  organização  se  usados  por  uma  pessoa  não  autorizada. Certifique-se  de  mantê-los  seguros, exclua as chaves  antigas e substitua-as em  seu  sistema  se  suspeitar  de  alguma  violação  de  segurança.\n\n> Você  pode  entrar  em  contato  conosco  para  obter  suporte  adicional.\n\n## Rate Limit\n\nTokens de requisição são uma abordagem eficiente para gerenciar o acesso a recursos, impedindo abusos e assegurando uma distribuição equitativa. No seu sistema, há dois principais filtros de controle de tokens:\n\n### Bloqueio Técnico:\n\n- **Quantidade Inicial:** 10 tokens por IP.\n- **Taxa de Recarga:** 1 token por segundo.\n- **Restrição:** Cada IP pode fazer 10 requisições por segundo. Após atingir esse limite, é necessário aguardar até que novos tokens sejam disponibilizados.\n\n### Filtro de Negócio:\n\n- **Quantidade Inicial:** Definida pelo usuário (por exemplo, 1000 tokens).\n- **Taxa de Recarga:** Recarregado a cada 1 hora.\n- **Restrição Adicional:** Se todos os tokens forem usados antes do período de uma hora, a recarga só ocorre após o término desse período, contado a partir do momento da última recarga. Por exemplo, se 1000 tokens forem usados em 55 minutos, a próxima recarga só ocorrerá 5 minutos após a última recarga.\n\nEste sistema oferece um equilíbrio entre acesso rápido (Bloqueio Técnico) e controle de uso a longo prazo (Filtro de Negócio), garantindo uma distribuição justa e evitando abusos.\n\n\n### Configuração do Controle de Requisições:\n\nNavegue  até:`Preferências` > `Segurança` > `Políticas de Segurança`.\n\nEm nossa plataforma, oferecemos total controle sobre como gerenciar suas requisições. Aqui está um guia simples para configurar o Filtro de Negócio:\n\n#### 1. Habilitar Controle de Requisições:\n\n- Para começar, marque a caixa de seleção \"Habilitar Controle de Requisições\". Isso permite que você personalize a quantidade máxima de requisições.\n\n- [ ] Habilitar Controle de Requisições\n\n#### 2. Definir Quantidade Máxima (Padrão: 1000 por Hora):\n- Abaixo da opção habilitar, você encontrará um campo para inserir a quantidade desejada de tokens. O valor padrão é 1000 por hora.\n\nAo marcar a opção e inserir sua preferência, você tem o poder de moldar como deseja que o Filtro de Negócio funcione para você.\n\nLembre-se: Se não desejar modificar, a configuração padrão de 1000 por hora permanecerá em vigor.\n\n![SWA.JACAD Desktop](/configurando-token.png \"Configurando entrada maxima de tokens\")\n\n\n## Jacad API Rest\n\nA API utiliza  os  princípios  das APIs REST, permitindo  que  os  desenvolvedores  realizem  consultas  na  plataforma SWA.JACAD utilizando o protocolo HTTP.\n\nUse uma  solicitação  **GET**  para  recuperar  informações, um  **POST**  para  criar  ou  atualizar e um  **DELETE**  para remover uma  informação.\n\n### Bearer Token (JWT)\n\nTodas as solicitações  de API requerem  um token de autorização para  validar a autenticidade e indicar  ao  sistema  quais  módulos, operações e recursos o usuário  pode  acessar. \n\nO Token JWT deve ser informado no cabeçalho (header) da solicitação como no formato abaixo:\n\n```json\nAuthorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c\n```\n\n**Nota:** O token JWT é obtido  após  realizar a autenticação  na API.\n\n\n\n\n### Respostas  de  Erros\n\nA API usa  códigos  de status HTTP padrão  para  indicar o sucesso  ou a falha  como  acontece  com  qualquer  resposta  de API, seu  cliente  deve  estar  preparado  para  lidar  com  erros  de  resposta. Normalmente, o corpo  da  resposta  será JSON no seguinte  formato:\n\n```json\n{\n\t\"timestamp\": \"2023-09-19T16:23:53-0300\",\n\t\"message\": \"Failed to convert property 'anoConsolidacao'\",\n\t\"details\": \"/api/v4/resource\",\n\t\"errorCode\": {\n\t\t\"code\": \"VFLD01\",\n\t\t\"desc\": \"Valor informado  inválido\"\n\t},\n\t\"validationErrors\": [\n\t\t{\n\t\t\t\"field\": \"anoConsolidacao\",\n\t\t\t\"rejectedValue\": \"2022-ASDF\",\n\t\t\t\"message\": \"Failed to convert property 'anoConsolidacao'\"\n\t\t}\n\t]\n}\n\n```\n\n### Código  de Status\n\n| CÓDIGO | DESCRIÇÃO | NOTA |\n| ------ | ------ | ------ |\n| 200 | OK | A requisição  foi  bem  sucedida. |\n| 201 | Created | Os  dados  foram  gravados  com  sucesso no sistema |\n| 400 | Bad Request | A solicitação  não  pôde  ser  compreendida  pelo  servidor. Os  parâmetros  recebidos  podem  não  ser  válidos |\n| 401 | Unauthorized | As credenciais  fornecidas, se  houver, não  são  suficientes  para  acessar o recurso |\n| 403 | Forbidden | As credenciais  fornecidas  não  possui  permissão  para  acessar o recurso. |\n| 404 | Not Found | A informação  requerida  não  foi  encontrada |\n| 422 | Unprocessable Entity | Não  foi  possível  processar a informação  devido a restrições  de  uso. |\n| 500 | Server Error | Erro  inesperado, ocorreu  algum  erro  interno no servidor |\n| 429 | Too Many Requests | Limite de requisições |","termsOfService":"https://www.swa.com.br/termo-de-uso/","contact":{"name":"Suporte","url":"https://ajuda.jacad.com.br","email":"suporte@swa.com.br"},"version":"v3.1.60.213"},"servers":[{"url":"https://fce-developer.jacad.com.br","description":"Generated server url"}],"security":[{"Access Token":[]}],"tags":[{"name":"Autenticação"}],"paths":{"/api/v1/integracoes/moodle/disciplina-professor-course/cadastrar-course":{"post":{"tags":["Moodle"],"summary":"Lançar Moodle Disciplina Professor Course","description":"Cadastra o Código do Curso do Moodle para todas as Diciplinas da Turma informadas.","operationId":"lancarFrequencia","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MoodleDisciplinaProfessorCourseDtoReq"}}},"required":true},"responses":{"200":{"description":"OK"},"400":{"description":"Solicitação inválida, contém erros de tipos ou de formatação","content":{"application/json":{"example":{"timestamp":"2026-04-03T22:38:45.502+00:00","message":"Um ou mais campos estão inválidos","details":"/api/v1/resource","errorCode":{"code":"VFLD01","desc":"Valor informado inválido"},"validationErrors":[{"field":"anoConsolidacao","rejectedValue":"202A","message":"Falha ao converter a propriedade 'anoConsolidacao'"}]}}}},"401":{"description":"Acesso negado, O usuário não está autenticado ou possui credenciais inválidas","content":{"application/json":{"example":{"timestamp":"2026-04-03T22:38:45.502+00:00","message":"É necessário estar autenticado para acessar este recurso","details":"/api/v1/resource","errorCode":{"code":"EXPTK01","desc":"Token inválido ou expirado"}}}}},"403":{"description":"Proibido, o usuário autenticado não possui a permissão de acesso para o recurso solicitado.","content":{"application/json":{"example":{"timestamp":"2026-04-03T22:38:45.502+00:00","message":"Voce nao tem permissao para acessar este recurso","details":"/api/v1/resource"}}}},"404":{"description":"Recurso não encontrado","content":{"application/json":{"example":{"timestamp":"2026-04-03T22:38:45.502+00:00","message":"Registro de código '123' não encontrado","details":"/api/v1/resource"}}}},"500":{"description":"Erro inesperado, ocorreu algum erro interno no servidor","content":{"application/json":{"example":{"timestamp":"2026-04-03T22:38:45.502+00:00","message":"Erro desconhecido","details":"/api/v1/resource"}}}}}}},"/api/v1/integracoes/interface-financeira-externa/bloqueios/desbloquear":{"post":{"tags":["Interface Financeira Externa"],"summary":"Inativar bloqueios para as transações","description":"Inativar o bloqueio para as transações informadas.","operationId":"desbloquearTransacoes","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransacaoDesbloqueioDtoReq"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/TransacaoBloqueioRestDtoRes"}}}}},"400":{"description":"Solicitação inválida, contém erros de tipos ou de formatação","content":{"application/json":{"example":{"timestamp":"2026-04-03T22:38:45.505+00:00","message":"Um ou mais campos estão inválidos","details":"/api/v1/resource","errorCode":{"code":"VFLD01","desc":"Valor informado inválido"},"validationErrors":[{"field":"anoConsolidacao","rejectedValue":"202A","message":"Falha ao converter a propriedade 'anoConsolidacao'"}]}}}},"401":{"description":"Acesso negado, O usuário não está autenticado ou possui credenciais inválidas","content":{"application/json":{"example":{"timestamp":"2026-04-03T22:38:45.505+00:00","message":"É necessário estar autenticado para acessar este recurso","details":"/api/v1/resource","errorCode":{"code":"EXPTK01","desc":"Token inválido ou expirado"}}}}},"403":{"description":"Proibido, o usuário autenticado não possui a permissão de acesso para o recurso solicitado.","content":{"application/json":{"example":{"timestamp":"2026-04-03T22:38:45.505+00:00","message":"Voce nao tem permissao para acessar este recurso","details":"/api/v1/resource"}}}},"404":{"description":"Recurso não encontrado","content":{"application/json":{"example":{"timestamp":"2026-04-03T22:38:45.505+00:00","message":"Registro de código '123' não encontrado","details":"/api/v1/resource"}}}},"500":{"description":"Erro inesperado, ocorreu algum erro interno no servidor","content":{"application/json":{"example":{"timestamp":"2026-04-03T22:38:45.505+00:00","message":"Erro desconhecido","details":"/api/v1/resource"}}}}}}},"/api/v1/integracoes/interface-financeira-externa/bloqueios/bloquear":{"post":{"tags":["Interface Financeira Externa"],"summary":"Cadastrar bloqueios para as transações","description":"Cadastra o bloqueio para as transações informadas.","operationId":"cadastrarBloqueio","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CadastroTransacaoBloqueioDtoReq"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/TransacaoBloqueioRestDtoRes"}}}}},"400":{"description":"Solicitação inválida, contém erros de tipos ou de formatação","content":{"application/json":{"example":{"timestamp":"2026-04-03T22:38:45.508+00:00","message":"Um ou mais campos estão inválidos","details":"/api/v1/resource","errorCode":{"code":"VFLD01","desc":"Valor informado inválido"},"validationErrors":[{"field":"anoConsolidacao","rejectedValue":"202A","message":"Falha ao converter a propriedade 'anoConsolidacao'"}]}}}},"401":{"description":"Acesso negado, O usuário não está autenticado ou possui credenciais inválidas","content":{"application/json":{"example":{"timestamp":"2026-04-03T22:38:45.508+00:00","message":"É necessário estar autenticado para acessar este recurso","details":"/api/v1/resource","errorCode":{"code":"EXPTK01","desc":"Token inválido ou expirado"}}}}},"403":{"description":"Proibido, o usuário autenticado não possui a permissão de acesso para o recurso solicitado.","content":{"application/json":{"example":{"timestamp":"2026-04-03T22:38:45.508+00:00","message":"Voce nao tem permissao para acessar este recurso","details":"/api/v1/resource"}}}},"404":{"description":"Recurso não encontrado","content":{"application/json":{"example":{"timestamp":"2026-04-03T22:38:45.508+00:00","message":"Registro de código '123' não encontrado","details":"/api/v1/resource"}}}},"500":{"description":"Erro inesperado, ocorreu algum erro interno no servidor","content":{"application/json":{"example":{"timestamp":"2026-04-03T22:38:45.508+00:00","message":"Erro desconhecido","details":"/api/v1/resource"}}}}}}},"/api/v1/integracoes/icode/cadastrar-acordo":{"post":{"tags":["iCode Sistemas"],"summary":"Cadastro de Acordo Financeiro","description":"Cadastra um acordo financeiro conforme as parcelas informadas.","operationId":"cadastrarAcordo","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ICodeCadastroAcordoDtoReq"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ICodeAcordoFinanceiroInfoDtoRes"}}}},"400":{"description":"Solicitação inválida, contém erros de tipos ou de formatação","content":{"application/json":{"example":{"timestamp":"2026-04-03T22:38:45.527+00:00","message":"Um ou mais campos estão inválidos","details":"/api/v1/resource","errorCode":{"code":"VFLD01","desc":"Valor informado inválido"},"validationErrors":[{"field":"anoConsolidacao","rejectedValue":"202A","message":"Falha ao converter a propriedade 'anoConsolidacao'"}]}}}},"401":{"description":"Acesso negado, O usuário não está autenticado ou possui credenciais inválidas","content":{"application/json":{"example":{"timestamp":"2026-04-03T22:38:45.527+00:00","message":"É necessário estar autenticado para acessar este recurso","details":"/api/v1/resource","errorCode":{"code":"EXPTK01","desc":"Token inválido ou expirado"}}}}},"403":{"description":"Proibido, o usuário autenticado não possui a permissão de acesso para o recurso solicitado.","content":{"application/json":{"example":{"timestamp":"2026-04-03T22:38:45.527+00:00","message":"Voce nao tem permissao para acessar este recurso","details":"/api/v1/resource"}}}},"404":{"description":"Recurso não encontrado","content":{"application/json":{"example":{"timestamp":"2026-04-03T22:38:45.527+00:00","message":"Registro de código '123' não encontrado","details":"/api/v1/resource"}}}},"500":{"description":"Erro inesperado, ocorreu algum erro interno no servidor","content":{"application/json":{"example":{"timestamp":"2026-04-03T22:38:45.527+00:00","message":"Erro desconhecido","details":"/api/v1/resource"}}}}}}},"/api/v1/auth/token":{"post":{"tags":["Autenticação"],"summary":"Realiza a autenticação via token","description":"Autentica o usuário a partir de um token de acesso a API cadastrado através do sistema acadêmico (desktop)","operationId":"token","parameters":[{"name":"token","in":"header","required":true,"schema":{"maximum":40,"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserInfo"}}}},"400":{"description":"Solicitação inválida, contém erros de tipos ou de formatação","content":{"application/json":{"example":{"timestamp":"2026-04-03T22:38:45.606+00:00","message":"Um ou mais campos estão inválidos","details":"/api/v1/resource","errorCode":{"code":"VFLD01","desc":"Valor informado inválido"},"validationErrors":[{"field":"anoConsolidacao","rejectedValue":"202A","message":"Falha ao converter a propriedade 'anoConsolidacao'"}]}}}},"401":{"description":"Acesso negado, O usuário não está autenticado ou possui credenciais inválidas","content":{"application/json":{"example":{"timestamp":"2026-04-03T22:38:45.606+00:00","message":"É necessário estar autenticado para acessar este recurso","details":"/api/v1/resource","errorCode":{"code":"EXPTK01","desc":"Token inválido ou expirado"}}}}},"403":{"description":"Proibido, o usuário autenticado não possui a permissão de acesso para o recurso solicitado.","content":{"application/json":{"example":{"timestamp":"2026-04-03T22:38:45.606+00:00","message":"Voce nao tem permissao para acessar este recurso","details":"/api/v1/resource"}}}},"404":{"description":"Recurso não encontrado","content":{"application/json":{"example":{"timestamp":"2026-04-03T22:38:45.606+00:00","message":"Registro de código '123' não encontrado","details":"/api/v1/resource"}}}},"500":{"description":"Erro inesperado, ocorreu algum erro interno no servidor","content":{"application/json":{"example":{"timestamp":"2026-04-03T22:38:45.606+00:00","message":"Erro desconhecido","details":"/api/v1/resource"}}}}},"security":[]}},"/api/v1/integracoes/moodle/disciplina-professor-course":{"get":{"tags":["Moodle"],"summary":"Consulta de Moodle Disciplina Professor Course","description":"Retorna todos os Moodle Disciplina Professor Course que atenderem aos parâmetros passados","operationId":"list","parameters":[{"name":"idOrganizacao","in":"query","description":"Código da Organização","required":true,"schema":{"type":"integer","format":"int32"},"example":1},{"name":"idPeriodoLetivo","in":"query","description":"Código do Período Letivo","required":false,"schema":{"type":"integer","format":"int32"},"example":1},{"name":"idTurma","in":"query","description":"Código da Turma","required":false,"schema":{"type":"integer","format":"int32"},"example":1},{"name":"idCursoBase","in":"query","description":"Código do Curso Base","required":false,"schema":{"type":"integer","format":"int32"},"example":1},{"name":"idCursoMatriz","in":"query","description":"Código do Curso Matriz","required":false,"schema":{"type":"integer","format":"int32"},"example":1},{"name":"idUnidadeFisica","in":"query","description":"Código do Câmpus/Polo","required":false,"schema":{"type":"integer","format":"int32"},"example":1},{"name":"situacao","in":"query","description":"Situação de Integração","required":false,"schema":{"type":"string","enum":["POSSUI_CURSO_MOODLE","NAO_POSSUI_CURSO_MOODLE"]},"example":"POSSUI_CURSO_MOODLE"},{"name":"search","in":"query","description":"Realiza busca por: Nome de Disciplina, Professor, Turma, Curso Base, Curso Matriz e Período Letivo","required":false,"schema":{"type":"string"},"example":"Foo Bar"},{"name":"pageSize","in":"query","description":"Total de registros que serão retornados a cada consulta (máximo de 500)","required":true,"schema":{"type":"integer","format":"int32"},"example":100},{"name":"currentPage","in":"query","description":"Página atual dos resultados","required":false,"schema":{"type":"integer","format":"int32"},"example":1}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginationMoodleDisciplinaProfessorCourseDtoResPage"}}}},"400":{"description":"Solicitação inválida, contém erros de tipos ou de formatação","content":{"application/json":{"example":{"timestamp":"2026-04-03T22:38:45.621+00:00","message":"Um ou mais campos estão inválidos","details":"/api/v1/resource","errorCode":{"code":"VFLD01","desc":"Valor informado inválido"},"validationErrors":[{"field":"anoConsolidacao","rejectedValue":"202A","message":"Falha ao converter a propriedade 'anoConsolidacao'"}]}}}},"401":{"description":"Acesso negado, O usuário não está autenticado ou possui credenciais inválidas","content":{"application/json":{"example":{"timestamp":"2026-04-03T22:38:45.621+00:00","message":"É necessário estar autenticado para acessar este recurso","details":"/api/v1/resource","errorCode":{"code":"EXPTK01","desc":"Token inválido ou expirado"}}}}},"403":{"description":"Proibido, o usuário autenticado não possui a permissão de acesso para o recurso solicitado.","content":{"application/json":{"example":{"timestamp":"2026-04-03T22:38:45.621+00:00","message":"Voce nao tem permissao para acessar este recurso","details":"/api/v1/resource"}}}},"404":{"description":"Recurso não encontrado","content":{"application/json":{"example":{"timestamp":"2026-04-03T22:38:45.621+00:00","message":"Registro de código '123' não encontrado","details":"/api/v1/resource"}}}},"500":{"description":"Erro inesperado, ocorreu algum erro interno no servidor","content":{"application/json":{"example":{"timestamp":"2026-04-03T22:38:45.621+00:00","message":"Erro desconhecido","details":"/api/v1/resource"}}}}}}},"/api/v1/integracoes/interface-financeira-externa/":{"get":{"tags":["Interface Financeira Externa"],"summary":"Consulta as transações bloqueadas","description":"Retorna os dados dos bloqueios existentes das transações","operationId":"list_1","parameters":[{"name":"idTransacao","in":"query","description":"Código da transação","required":false,"schema":{"type":"integer","format":"int32"},"example":1},{"name":"idTransacaoBloqueio","in":"query","description":"Código do bloqueio","required":false,"schema":{"type":"integer","format":"int32"},"example":1},{"name":"operacao","in":"query","description":"Operação da transação (+ / -)","required":false,"schema":{"type":"string"},"example":"+"},{"name":"idOrg","in":"query","description":"Código da organização","required":false,"schema":{"type":"integer","format":"int32"},"example":1},{"name":"pageSize","in":"query","description":"Total de registros que serão retornados a cada consulta (máximo de 500)","required":true,"schema":{"type":"integer","format":"int32"},"example":100},{"name":"currentPage","in":"query","description":"Página atual dos resultados","required":false,"schema":{"type":"integer","format":"int32"},"example":1}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginationTransacaoBloqueioRestDtoResPage"}}}},"400":{"description":"Solicitação inválida, contém erros de tipos ou de formatação","content":{"application/json":{"example":{"timestamp":"2026-04-03T22:38:45.629+00:00","message":"Um ou mais campos estão inválidos","details":"/api/v1/resource","errorCode":{"code":"VFLD01","desc":"Valor informado inválido"},"validationErrors":[{"field":"anoConsolidacao","rejectedValue":"202A","message":"Falha ao converter a propriedade 'anoConsolidacao'"}]}}}},"401":{"description":"Acesso negado, O usuário não está autenticado ou possui credenciais inválidas","content":{"application/json":{"example":{"timestamp":"2026-04-03T22:38:45.629+00:00","message":"É necessário estar autenticado para acessar este recurso","details":"/api/v1/resource","errorCode":{"code":"EXPTK01","desc":"Token inválido ou expirado"}}}}},"403":{"description":"Proibido, o usuário autenticado não possui a permissão de acesso para o recurso solicitado.","content":{"application/json":{"example":{"timestamp":"2026-04-03T22:38:45.629+00:00","message":"Voce nao tem permissao para acessar este recurso","details":"/api/v1/resource"}}}},"404":{"description":"Recurso não encontrado","content":{"application/json":{"example":{"timestamp":"2026-04-03T22:38:45.629+00:00","message":"Registro de código '123' não encontrado","details":"/api/v1/resource"}}}},"500":{"description":"Erro inesperado, ocorreu algum erro interno no servidor","content":{"application/json":{"example":{"timestamp":"2026-04-03T22:38:45.629+00:00","message":"Erro desconhecido","details":"/api/v1/resource"}}}}}}},"/api/v1/integracoes/icode/dados-acordo-financeiro/{idAcordoFinanceiro}":{"get":{"tags":["iCode Sistemas"],"summary":"Dados do acordo financeiro","description":"Retorna todas as informações de um acordo financeiro","operationId":"obterDadosAcordoFinanceiro","parameters":[{"name":"idAcordoFinanceiro","in":"path","required":true,"schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ICodeAcordoFinanceiroInfoDtoRes"}}}},"400":{"description":"Solicitação inválida, contém erros de tipos ou de formatação","content":{"application/json":{"example":{"timestamp":"2026-04-03T22:38:45.634+00:00","message":"Um ou mais campos estão inválidos","details":"/api/v1/resource","errorCode":{"code":"VFLD01","desc":"Valor informado inválido"},"validationErrors":[{"field":"anoConsolidacao","rejectedValue":"202A","message":"Falha ao converter a propriedade 'anoConsolidacao'"}]}}}},"401":{"description":"Acesso negado, O usuário não está autenticado ou possui credenciais inválidas","content":{"application/json":{"example":{"timestamp":"2026-04-03T22:38:45.634+00:00","message":"É necessário estar autenticado para acessar este recurso","details":"/api/v1/resource","errorCode":{"code":"EXPTK01","desc":"Token inválido ou expirado"}}}}},"403":{"description":"Proibido, o usuário autenticado não possui a permissão de acesso para o recurso solicitado.","content":{"application/json":{"example":{"timestamp":"2026-04-03T22:38:45.634+00:00","message":"Voce nao tem permissao para acessar este recurso","details":"/api/v1/resource"}}}},"404":{"description":"Recurso não encontrado","content":{"application/json":{"example":{"timestamp":"2026-04-03T22:38:45.634+00:00","message":"Registro de código '123' não encontrado","details":"/api/v1/resource"}}}},"500":{"description":"Erro inesperado, ocorreu algum erro interno no servidor","content":{"application/json":{"example":{"timestamp":"2026-04-03T22:38:45.634+00:00","message":"Erro desconhecido","details":"/api/v1/resource"}}}}}}},"/api/v1/integracoes/icode/consulta-parcelas-vencidas":{"get":{"tags":["iCode Sistemas"],"summary":"Consulta de parcelas vencidas do aluno","description":"Retorna as parcelas vencidas que o aluno possui em um determinado curso","operationId":"consultarParcelasVencidas","parameters":[{"name":"idAluno","in":"query","description":"Código do aluno","required":false,"schema":{"type":"integer","format":"int32"},"example":1},{"name":"ra","in":"query","description":"RA do aluno","required":false,"schema":{"type":"string"},"example":"ADM1234"},{"name":"idCurso","in":"query","description":"Código do Curso (base)","required":false,"schema":{"type":"integer","format":"int32"},"example":1},{"name":"pageSize","in":"query","description":"Total de registros que serão retornados a cada consulta (máximo de 500)","required":true,"schema":{"type":"integer","format":"int32"},"example":100},{"name":"currentPage","in":"query","description":"Página atual dos resultados","required":false,"schema":{"type":"integer","format":"int32"},"example":1}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginationICodeTransacaoVencidaRestDtoResPage"}}}},"400":{"description":"Solicitação inválida, contém erros de tipos ou de formatação","content":{"application/json":{"example":{"timestamp":"2026-04-03T22:38:45.645+00:00","message":"Um ou mais campos estão inválidos","details":"/api/v1/resource","errorCode":{"code":"VFLD01","desc":"Valor informado inválido"},"validationErrors":[{"field":"anoConsolidacao","rejectedValue":"202A","message":"Falha ao converter a propriedade 'anoConsolidacao'"}]}}}},"401":{"description":"Acesso negado, O usuário não está autenticado ou possui credenciais inválidas","content":{"application/json":{"example":{"timestamp":"2026-04-03T22:38:45.645+00:00","message":"É necessário estar autenticado para acessar este recurso","details":"/api/v1/resource","errorCode":{"code":"EXPTK01","desc":"Token inválido ou expirado"}}}}},"403":{"description":"Proibido, o usuário autenticado não possui a permissão de acesso para o recurso solicitado.","content":{"application/json":{"example":{"timestamp":"2026-04-03T22:38:45.645+00:00","message":"Voce nao tem permissao para acessar este recurso","details":"/api/v1/resource"}}}},"404":{"description":"Recurso não encontrado","content":{"application/json":{"example":{"timestamp":"2026-04-03T22:38:45.645+00:00","message":"Registro de código '123' não encontrado","details":"/api/v1/resource"}}}},"500":{"description":"Erro inesperado, ocorreu algum erro interno no servidor","content":{"application/json":{"example":{"timestamp":"2026-04-03T22:38:45.645+00:00","message":"Erro desconhecido","details":"/api/v1/resource"}}}}}}}},"components":{"schemas":{"MoodleDisciplinaProfessorCourseDtoReq":{"required":["disciplinasProfessor","idMoodleCourse","idOrganizacao"],"type":"object","properties":{"idMoodleCourse":{"type":"integer","description":"ID do Curso do Moodle","format":"int32","example":1},"idOrganizacao":{"type":"integer","description":"ID Organizacao","format":"int32","example":1},"disciplinasProfessor":{"type":"array","description":"Lista de Disciplinas da Turma","items":{"type":"integer","description":"Lista de Disciplinas da Turma","format":"int32"}}}},"TransacaoDesbloqueioDtoReq":{"type":"object","properties":{"transacoes":{"type":"array","description":"Lista dos códigos das transações","items":{"type":"integer","description":"Lista dos códigos das transações","format":"int32"}},"bloqueios":{"type":"array","description":"Lista dos códigos dos bloqueios","items":{"type":"integer","description":"Lista dos códigos dos bloqueios","format":"int32"}}}},"TransacaoBloqueioRestDtoRes":{"type":"object","properties":{"idTransacaoBloqueio":{"type":"integer","format":"int32"},"idTransacao":{"type":"integer","format":"int32"},"observacao":{"type":"string"},"status":{"type":"string","enum":["ATIVO","INATIVO"]},"get_usuarioBloqueio":{"type":"string"}}},"CadastroTransacaoBloqueioDtoReq":{"required":["transacoes"],"type":"object","properties":{"observacao":{"maxLength":250,"type":"string","description":"Alguma observação sobre o bloqueio","example":"Parcela com nfse autorizada"},"transacoes":{"type":"array","description":"Lista de transações","items":{"type":"integer","description":"Lista de transações","format":"int32"}}}},"ICodeCadastroAcordoCustoNegociacaoDtoReq":{"required":["dataVencimento","idServico","valor"],"type":"object","properties":{"dataVencimento":{"type":"string","description":"Data de vencimento da parcela","format":"date-time"},"valor":{"type":"number","description":"Valor final da parcela","format":"double","example":125.34},"idServico":{"type":"integer","description":"Código do serviço cadastrado no Jacad","format":"int32","example":15},"idCentroCusto":{"type":"integer","description":"Código do centro de custo para o rateio (opcional, porém necessário)","format":"int32","example":15}},"description":"Definições para custos da negociação do acordo."},"ICodeCadastroAcordoDtoReq":{"required":["motivo","novasParcelas","parcelas"],"type":"object","properties":{"idMetodoRecebimento":{"type":"integer","description":"Código do método de recebimento para geração de boletos","format":"int32","example":1},"idTemplateTermoConfissaoDivida":{"type":"integer","description":"Código do template do repositório de documentos para o termo de confissão de dívida","format":"int32","example":1},"idTemplateTermoRenegociacaoTitulos":{"type":"integer","description":"Código do template do repositório de documentos para o termo de renegociação de títulos","format":"int32","example":1},"idTipoAcordoFinanceiro":{"type":"integer","description":"Código do tipo de acordo financeiro","format":"int32","example":1},"idPolo":{"type":"integer","description":"Código do Campus/Polo","format":"int32","example":1},"motivo":{"type":"string","description":"Campo descritivo sobre o acordo financeiro","example":"Exemplo de motivo"},"observacao":{"type":"string","description":"Campo descritivo para uma observação","example":"Observação: ..."},"parcelas":{"type":"array","description":"Transações de receita que serão acordadas (código das transações)","items":{"type":"integer","description":"Transações de receita que serão acordadas (código das transações)","format":"int32"}},"novasParcelas":{"type":"array","description":"Relação das novas parcelas deste acordo","items":{"$ref":"#/components/schemas/ICodeCadastroAcordoParcelaDtoReq"}},"custoNegociacao":{"$ref":"#/components/schemas/ICodeCadastroAcordoCustoNegociacaoDtoReq"}}},"ICodeCadastroAcordoParcelaDtoReq":{"required":["dataVencimento","valor"],"type":"object","properties":{"dataVencimento":{"type":"string","description":"Data de vencimento da parcela","format":"date-time"},"valor":{"type":"number","description":"Valor final da parcela","format":"double","example":125.34},"entrada":{"type":"boolean"}},"description":"Relação das novas parcelas deste acordo"},"ICodeAcordoFinanceiroInfoDtoRes":{"type":"object","properties":{"NegociacaoNro":{"type":"integer","format":"int32"},"Unidade":{"type":"integer","format":"int32"},"AnoLetivo":{"type":"integer","format":"int32"},"PeriodoLetivo":{"type":"string"},"Matricula":{"type":"integer","format":"int32"},"Nome":{"type":"string"},"Curso":{"type":"string"},"CursoNome":{"type":"string"},"ConfissaoDividaURL":{"type":"string"},"TermoRenegociacaoTitulosURL":{"type":"string"},"TipoAcordo":{"type":"string"},"MotivoAcordo":{"type":"string"},"ObservacaoAcordo":{"type":"string"},"Lancamento":{"type":"array","items":{"$ref":"#/components/schemas/ICodeAcordoFinanceiroInfoParcelaDtoRes"}}}},"ICodeAcordoFinanceiroInfoParcelaDtoRes":{"type":"object","properties":{"Lancamento":{"type":"integer","format":"int32"},"IdBoleto":{"type":"integer","format":"int32"},"Parcela":{"type":"string"},"DataVencimento":{"type":"string","format":"date-time"},"LinhaDigitavel":{"type":"string"},"CopiaeCola":{"type":"string"},"BoletoURL":{"type":"string"}}},"GrantedAuthority":{"type":"object","properties":{"authority":{"type":"string"}}},"IUsuario":{"type":"object"},"Org":{"type":"object","properties":{"id_org":{"type":"integer","format":"int32"},"id_usuario_criacao":{"type":"integer","format":"int32"},"id_usuario_alteracao":{"type":"integer","format":"int32"},"data_criacao":{"type":"string","format":"date-time"},"data_alteracao":{"type":"string","format":"date-time"},"buscaIndexada":{"type":"boolean"},"idOrg":{"type":"integer","format":"int32"},"idCliente":{"type":"integer","format":"int32"},"descricao":{"type":"string"},"imagem":{"type":"string"},"nomeFantasia":{"type":"string"},"nomeComercial":{"type":"string"},"nomeComplementar":{"type":"string"},"nomePortalDiplomado":{"type":"string"},"nomeReduzido":{"type":"string"},"endereco":{"type":"string"},"cnpj":{"type":"string"},"inscricao":{"type":"string"},"enderecoFone":{"type":"string"},"pracaPagamento":{"type":"string"},"cep":{"type":"string"},"cidade":{"type":"string"},"inscricaoMunicipal":{"type":"string"},"diretorGeral":{"type":"string","deprecated":true},"cssPortais":{"type":"string"},"secretariaAcademica":{"type":"string","deprecated":true},"idPerfilDiretor":{"type":"integer","format":"int32"},"portariaDiretor":{"type":"string"},"get_nomeDiretor":{"type":"string"},"get_sexoDiretor":{"type":"string"},"idPerfilSecretariaAcademica":{"type":"integer","format":"int32"},"portariaSecretariaAcademica":{"type":"string"},"get_nomeSecretariaAcademica":{"type":"string"},"get_sexoSecretariaAcademica":{"type":"string"},"portariaCredenciamento":{"type":"string"},"website":{"type":"string"},"idCidadeNRE":{"type":"integer","format":"int32"},"idPerfilDiretorAcademico":{"type":"integer","format":"int32"},"get_nomeDiretorAcademico":{"type":"string"},"portariaDiretorAcademico":{"type":"string"},"email":{"type":"string"},"idPerfilResponsavelFinanceiro":{"type":"integer","format":"int32"},"get_nomeResponsavelFinanceiro":{"type":"string"},"get_sexoResponsavelFinanceiro":{"type":"string"},"numero":{"type":"string"},"logradouro":{"type":"string"},"bairro":{"type":"string"},"idPerfilViceDiretor":{"type":"integer","format":"int32"},"get_nomePerfilViceDiretor":{"type":"string"},"nomePortal":{"type":"string"},"idPerfilResposavelCertificacao":{"type":"integer","format":"int32"},"get_nomePerfilResposavelCertificacao":{"type":"string"},"portariaCertificacao":{"type":"string"},"status":{"type":"string"},"idEmpresa":{"type":"integer","format":"int32"},"codigoInep":{"type":"string"},"idPerfilRespLivroRegistro":{"type":"integer","format":"int32"},"get_nomePerfilRespLivroRegistro":{"type":"string"},"getiDouNumeroMatriculaRespLivReg":{"type":"string"},"modeloNegocio":{"type":"string"},"idPerfilSecretariaDiplomaDigital":{"type":"integer","format":"int32"},"portariaSecretariaDiplomaDigital":{"type":"string"},"idPerfilDiretorDiploma":{"type":"integer","format":"int32"},"portariaDiretorDiploma":{"type":"string"},"funcaoDiretorDiploma":{"type":"string"},"idPerfilSecretariaDiploma":{"type":"integer","format":"int32"},"portariaSecretariaDiploma":{"type":"string"},"funcaoSecretariaDiploma":{"type":"string"},"get_descricaoCliente":{"type":"string"},"newObjectInCache":{"type":"boolean"},"usuario":{"$ref":"#/components/schemas/IUsuario"},"ignorarLog":{"type":"boolean"}}},"TableEmailTag":{"type":"object","properties":{"tag":{"type":"string"},"descricao":{"type":"string"}}},"UserInfo":{"type":"object","properties":{"login":{"type":"string"},"token":{"type":"string"},"expiresIn":{"type":"integer","format":"int64"},"deviceDetails":{"type":"string"},"idUsuario":{"type":"integer","format":"int32"},"status":{"type":"string"},"idOrg":{"type":"integer","format":"int32"},"idCliente":{"type":"integer","format":"int32"},"idGrupoUsuario":{"type":"integer","format":"int32"},"moduloID":{"type":"string"},"tipoGrupoUsuario":{"type":"string"},"nomeComercial":{"type":"string"},"descOrg":{"type":"string"},"modeloNegocio":{"type":"string"},"grupoUsuario":{"type":"string"},"usuarioDirector":{"type":"string"},"modulos":{"type":"array","items":{"type":"string"}},"orgs":{"type":"array","items":{"$ref":"#/components/schemas/Org"}},"usuario":{"$ref":"#/components/schemas/UsuarioPortal"},"org":{"$ref":"#/components/schemas/Org"}}},"UsuarioPortal":{"type":"object","properties":{"id_org":{"type":"integer","format":"int32"},"id_usuario_criacao":{"type":"integer","format":"int32"},"id_usuario_alteracao":{"type":"integer","format":"int32"},"data_criacao":{"type":"string","format":"date-time"},"data_alteracao":{"type":"string","format":"date-time"},"buscaIndexada":{"type":"boolean"},"idUsuario":{"type":"integer","format":"int32"},"idGrupoUsuario":{"type":"integer","format":"int32"},"nome":{"type":"string"},"forcarAlterarSenha":{"type":"integer","format":"int32"},"senha":{"type":"string"},"descricao":{"type":"string"},"token":{"type":"string"},"status":{"type":"string"},"lookAndFeel":{"type":"string"},"skinBordas":{"type":"integer","format":"int32"},"flagAcessoTodasContas":{"type":"integer","format":"int32"},"usuarioWebService":{"type":"integer","format":"int32"},"idIntegracao":{"type":"integer","format":"int32"},"isUsuarioPolo":{"type":"integer","format":"int32"},"dataUltimaAlteracaoSenha":{"type":"string","format":"date-time"},"papelPolo":{"type":"string"},"get_nomeGrupoUsuario":{"type":"string"},"get_tipoGrupoUsuario":{"type":"string"},"idFuncionario":{"type":"integer","format":"int32"},"get_funcionario":{"type":"string"},"get_emailEmpresa":{"type":"string"},"get_senhaEmailEmpresa":{"type":"string"},"get_idSetor":{"type":"integer","format":"int32"},"get_idPerfil":{"type":"integer","format":"int32"},"get_nomePerfil":{"type":"string"},"get_idCliente":{"type":"integer","format":"int32"},"idUnidadeFisica":{"type":"integer","format":"int32","deprecated":true},"get_nomeUnidadeFisica":{"type":"string"},"desabilitarAcessoLogarComoNosPortais":{"type":"integer","format":"int32"},"usuarioGlobalConfiguracao":{"type":"integer","format":"int32"},"usuarioRemoto":{"$ref":"#/components/schemas/UsuarioSuporteBean"},"idCliente":{"type":"integer","format":"int32"},"email":{"type":"string"},"emailStatus":{"type":"string"},"emailMotivoInvalido":{"type":"string"},"emailCodigoConfirmacao":{"type":"string"},"celular":{"type":"string"},"orgs":{"type":"array","items":{"$ref":"#/components/schemas/Org"}},"permissoes":{"type":"array","items":{"$ref":"#/components/schemas/GrantedAuthority"}},"props":{"type":"object","additionalProperties":{"type":"object"}},"enabled":{"type":"boolean"},"firstName":{"type":"string"},"lastName":{"type":"string"},"accountNonExpired":{"type":"boolean"},"accountNonLocked":{"type":"boolean"},"credentialsNonExpired":{"type":"boolean"},"emailDestinatario":{"type":"string"},"emailIdPerfil":{"type":"integer","format":"int32"},"emailNomeDestinatario":{"type":"string"},"roles":{"type":"array","items":{"type":"string"}},"username":{"type":"string"},"password":{"type":"string"},"authorities":{"type":"array","items":{"$ref":"#/components/schemas/GrantedAuthority"}},"coreTagsPessoaFisica":{"type":"array","items":{"$ref":"#/components/schemas/TableEmailTag"}},"newObjectInCache":{"type":"boolean"},"usuario":{"$ref":"#/components/schemas/IUsuario"},"ignorarLog":{"type":"boolean"}}},"UsuarioSuporteBean":{"type":"object","properties":{"idUsuarioDirector":{"type":"integer","format":"int32"},"nome":{"type":"string"},"authToken":{"type":"string"},"dataLoginRemoto":{"type":"string","format":"date-time"}}},"MoodleDisciplinaProfessorCourseDtoRes":{"type":"object","properties":{"codCourseMoodle":{"type":"string"},"idDisciplinaProfessor":{"type":"integer","format":"int32"},"disciplina":{"type":"string"},"professor":{"type":"string"},"idTurma":{"type":"integer","format":"int32"},"turma":{"type":"string"},"idCursoBase":{"type":"integer","format":"int32"},"cursoBase":{"type":"string"},"idCursoMatriz":{"type":"integer","format":"int32"},"cursoMatriz":{"type":"string"},"idPeriodoLetivo":{"type":"integer","format":"int32"},"periodoLetivo":{"type":"string"},"organizacao":{"type":"string"},"idUnidadeFisica":{"type":"integer","format":"int32"},"unidadeFisica":{"type":"string"}}},"Page":{"type":"object","properties":{"pageSize":{"type":"integer","format":"int32"},"currentPage":{"type":"integer","format":"int32"},"totalElements":{"type":"integer","format":"int32"},"totalPages":{"type":"integer","format":"int32"},"ignoreFetching":{"type":"boolean"}}},"PaginationMoodleDisciplinaProfessorCourseDtoResPage":{"type":"object","properties":{"page":{"$ref":"#/components/schemas/Page"},"elements":{"type":"array","items":{"$ref":"#/components/schemas/MoodleDisciplinaProfessorCourseDtoRes"}}}},"PaginationTransacaoBloqueioRestDtoResPage":{"type":"object","properties":{"page":{"$ref":"#/components/schemas/Page"},"elements":{"type":"array","items":{"$ref":"#/components/schemas/TransacaoBloqueioRestDtoRes"}}}},"ICodeTransacaoVencidaRestDtoRes":{"type":"object","properties":{"lancamentoNro":{"type":"integer","format":"int32"},"valorTotal":{"type":"number","format":"double"},"origem":{"type":"string"},"idAcordoFinanceiro":{"type":"integer","format":"int32"},"unidade":{"type":"integer","format":"int32"},"matricula":{"type":"integer","format":"int32"},"anoLetivo":{"type":"integer","format":"int32"},"periodoLetivo":{"type":"string"},"cursoNome":{"type":"string"},"valor":{"type":"number","format":"double"},"dataVencimento":{"type":"string","format":"date-time"},"parcela":{"type":"string"},"alunoNome":{"type":"string"},"alunoRa":{"type":"string"},"valorBolsa":{"type":"number","format":"double"},"serieDescricao":{"type":"string"},"lancamentoCodigoBoleto":{"type":"integer","format":"int32"},"tipoAcordoFinanceiro":{"type":"string"},"serie":{"type":"integer","format":"int32"},"unidadeDescricao":{"type":"string"},"valorOriginal":{"type":"number","format":"double"},"curso":{"type":"string"},"isAssessoriaCobranca":{"type":"integer","format":"int32"},"isProtestado":{"type":"integer","format":"int32"},"valorMulta":{"type":"number","format":"double"},"valorPontualidade":{"type":"number","format":"double"},"lancamentoNossoNumero":{"type":"string"}}},"PaginationICodeTransacaoVencidaRestDtoResPage":{"type":"object","properties":{"page":{"$ref":"#/components/schemas/Page"},"elements":{"type":"array","items":{"$ref":"#/components/schemas/ICodeTransacaoVencidaRestDtoRes"}}}}},"securitySchemes":{"Access Token":{"type":"apiKey","name":"Authorization","in":"header"}}}}