As APIs disponibilizadas funcionam com duas autenticações, Basic ou Token Bearer, nos dois casos é necessário um usuário e senha do RM previamente disponibilizado

Authorization - Basic Auth

Username <USUARIO RM>

Password <SENHA RM>


Abaixo estão as instruções de como buscar um bearer token, tanto com base em um certificado embutido automaticamente na aplicação quanto um inserido manualmente.

Exemplo de utilização - Sucesso:

  1. Realize uma requisição POST ao endpoint http(s)://{dominio}:{porta}/api/connect/token/ via Postman, SoapUi, ou outro programa que realize requisições HTTP REST.
  2. No corpo da requisição envie um JSON explicitando usuário e senha do RM para qual a autenticação está sendo direcionada:

 username
• password 

A requisição deve parecer com a abaixo


{
 "username": "USUARIO RM",
 "password": "SENHA RM"
}


O token de segurança será gerado e já poderá ser utilizado no cabeçalho das requisições subsequentes às API's disponibilizadas pela TOTVS.

Exemplo de Token de Segurança gerado com sucesso e pronto para ser utilizado:


{
    "access_token": "eyJhbGciOiJSUzI1NiIsDKXI9RYRNIpq4zd2ZFTuKRAvvTLvytOW_yvYxUn-k-XM4stBcnzuo8Eg00A8mDePRH-Kcjy6AWZjOPGYuaiKnDZ5hWfVCO-mefV44wU1vAYSb3jWQuS-4SPgrmHHy3XurY1clVpwrHuIENsZdFSZxy-g0I_8VwCFZHIPGh4-s_uejDPTmkscCWoejc42nyE8zn8gkG1YYWQRQ",
    "expires_in": 300,
    "refresh_token": "eyJUb2tlbktleSI6ImROcU5pam9BbnZhaG1WMEZST1o1NjFYQlVZekIzSXplYldNdDZkcUFyVE0iLCJjb25uZWN0aW9uSWQiOiJDb3Jwb3JlUk0ifQ==",
    "token_type": "Bearer"
}


Utilize o token gerado incluindo-o no cabeçalho da requisição através da diretiva:

• Authorization: Bearer {token}

Inclusão do token no cabeçalho da requisição:


Após a inclusão do cabeçalho de autorização, realize uma requisição HTTP em uma das API's disponibilizadas pela TOTVS e verifique o resultado.


<div class="get">GET</div>
<div class="endereco">/api/integracoes/v2/sesc/educacional/etapa</div>


Para buscar varias etapas no SGE, o filtro da busca deve ser passado via QueryString.

codColigada: Coligada da Turma/Disciplina no RM

idTurmaDisc: Id da Turma/Disciplina no RM

tipoEtapa: N para nota ou F para falta



/api/integracoes/v2/sesc/educacional/etapa?codColigada=2&idTurmaDisc=4151&tipoEtapa=N
{
    "hasNext": false,
    "items": [
        {
            "codColigada": 2,
            "idTurmaDisc": 572,
            "codEtapa": 1,
            "dataInicio": "2024-01-01T00:00:00-03:00",
            "dataFim": "2024-01-31T00:00:00-03:00",
            "tipoEtapa": "N",
            "pontosDistribuidos": 100.0000,
            "media": 60.0000,
            "permiteDigitacaoNaEtapa": false,
            "etapaFinal": false,
            "etapaEncerrada": false
        },
        {
            "codColigada": 2,
            "idTurmaDisc": 572,
            "codEtapa": 2,
            "dataInicio": "2024-01-01T00:00:00-03:00",
            "dataFim": "2024-12-31T00:00:00-03:00",
            "tipoEtapa": "N",
            "pontosDistribuidos": 100.0000,
            "media": 60.0000,
            "permiteDigitacaoNaEtapa": false,
            "etapaFinal": false,
            "etapaEncerrada": false
        }
    ]
}


Também é possível buscar uma etapa especifica, para isso os dados da chave devem ser passados na URL separados por pipeline "|", devem ser passados o codColigada, idTurmaDisc, codEtapa e tipoEtapa.


/api/integracoes/v2/sesc/educacional/etapa/2|572|1|N
{
    "codColigada": 2,
    "idTurmaDisc": 572,
    "codEtapa": 1,
    "dataInicio": "2024-01-01T00:00:00-03:00",
    "dataFim": "2024-01-31T00:00:00-03:00",
    "tipoEtapa": "N",
    "pontosDistribuidos": 100.0000,
    "media": 60.0000,
    "permiteDigitacaoNaEtapa": false,
    "etapaFinal": false,
    "etapaEncerrada": false
}
<div class="get">GET</div>
<div class="endereco">/api/integracoes/v2/sesc/educacional/planodeaula</div>


Para buscar os planos de aula no SGE, o filtro da busca deve ser passado via QueryString.

codColigada: Coligada da Turma/Disciplina no RM

idTurmaDisc: Id da Turma/Disciplina no RM



/api/integracoes/v2/sesc/educacional/planodeaula/?codColigada=2&idTurmadisc=572
{
    "hasNext": false,
    "items": [
        {
            "codColigada": 2,
            "idTurmaDisc": 572,
            "idPlanoAula": 23293,
            "numeroAula": 1,
            "dataPlanoAula": "2024-04-04T00:00:00-03:00",
            "confirmado": false,
            "aulaOnline": "http//:opopopoo",
            "conteudoPrevisto": "aula",
            "conteudoRealizado": "fez a aula",
            "dataEfetiva": "2025-04-04T00:00:00-03:00",
            "licaoDeCasa": "para casa via patch",
            "observacao": "via patch",
            "horaInicial": "07:00",
            "horaFinal": "07:50"
        },
        {
            "codColigada": 2,
            "idTurmaDisc": 572,
            "idPlanoAula": 23294,
            "numeroAula": 2,
            "dataPlanoAula": "2024-04-04T00:00:00-03:00",
            "confirmado": false,
            "aulaOnline": "",
            "conteudoPrevisto": "",
            "conteudoRealizado": "",
            "licaoDeCasa": "",
            "observacao": "",
            "horaInicial": "07:50",
            "horaFinal": "08:40"
        }
    ]
}
<div class="post">PATCH</div>
<div class="endereco">/api/integracoes/v2/sesc/educacional/planodeaula</div>


Para atualizar os dados de um plano de aula (importação de conteúdo realizado) os dados da chave do registro devem ser passados na URL separados por pipeline "|" e os campos a serem atualizados devem ser enviados no corpo da requisição.

Como chave do campo devem ser passados o codColigada, idTurmaDisc, idPlanoAula.


/api/integracoes/v2/sesc/educacional/planodeaula/2|572|23293
{
    "numeroAula": 1,
    "dataPlanoAula": "2024-04-04T00:00:00-03:00",
    "dataEfetiva": "2025-04-04",
    "confirmado": false,
	"aulaOnline": "url da aula",
    "conteudoPrevisto": "conteudo previsto",
    "conteudoRealizado": "conteudo realizado",
    "licaoDeCasa": "para casa via patch",
    "observacao": "via patch"
}
{
    "codColigada": 2,
    "idTurmaDisc": 572,
    "idPlanoAula": 23293,
    "numeroAula": 1,
    "dataPlanoAula": "2024-04-04T00:00:00-03:00",
    "confirmado": false,
    "dataEfetiva": "2025-04-04T00:00:00-03:00",
    "licaoDeCasa": "para casa via patch",
    "observacao": "via patch"
}



<style>
	.expand-control {
    	cursor: pointer;
    	text-decoration: none;
	    margin-bottom: 10px;
	    background-color: #ededed;
	    height: 20px;
	    font-size: 15px;
	    padding: 5px;
	}
	.expand-control-text {
    	vertical-align: top;
	    font-weight: bold;
		color: #242424;
	}
	.post {
    	background-color: #378000;
	    color: #ffffff;
	    display: inline-block;
	    padding: 5px;
	    border-radius: 5px;
		font-weight: bold;
	}
	.get {
    	background-color: #004fd6;
	    color: #ffffff;
	    display: inline-block;
	    padding: 5px;
	    border-radius: 5px;
		font-weight: bold;
	}
	.put {
    	background-color: #ffa200;
	    color: #ffffff;
	    display: inline-block;
	    padding: 5px;
	    border-radius: 5px;
		font-weight: bold;
	}
	.delete {
    	background-color: #cf0000;
	    color: #ffffff;
	    display: inline-block;
	    padding: 5px;
	    border-radius: 5px;
		font-weight: bold;
	}
	.endereco{
		display: inline-block;
		padding: 5px;
		font-weight: bold;
	}
</style>
<!-- 
EXEMPLO DE MARCAÇÃO PARA TIPO DE REQUEST:
<div class="post">POST</div>
<div class="get">GET</div>
<div class="put">PUT</div>
<div class="delete">DELETE</div>

O ENDEREÇO DEVE SER INSERIDO COM A SEGUINTE MARCAÇÃO:
<div class="endereco">/rm/api/TOTVSCustomizacao/CstIntegracaoProtheus/ItemContabil</div>
-->