Pular para o conteúdo principal

Turmas

Turma é a realização presencial de um curso: tem data de início e de término, período, modalidade, alunos, instrutores, despesas e certificados. Cada turma é criada a partir de um curso, e a carga horária vem dele.

Esta página documenta a raiz do recurso, /comercial/classes: o cadastro da turma, as ações sobre ela (cancelar, concluir, reabrir, importar alunos e alterar a validade) e as listas de apoio usadas nos formulários. A tela principal é Turmas. Cada aba da página da turma tem a sua própria página, listada abaixo. Os documentos impressos da turma estão em Relatórios e documentos da turma.

Recursos desta seção​

RecursoTelaPágina
TurmaTurmasEsta página
AlunosTurmas > AlunosAlunos
Datas de treinamentoTurmas > Datas de treinamentoDatas de treinamento
InstrutoresTurmas > InstrutoresInstrutores
DespesasTurmas > DespesasDespesas
ArquivosTurmas > Arquivos do aluno e Arquivos da classeArquivos
CertificadosTurmas > CertificadosCertificados
AuditoriasTurmas > AuditoriasAuditorias
PagamentosTurmas > Alunos > PagamentosPagamentos
QualificaçõesTurmas > QualificaçõesQualificações
Relatórios e documentosTurmas > Documentos da turmaRelatórios e documentos

Todas as chamadas seguem as regras de Convenções (cabeçalhos, paginação, erros e acesso por tela).

Endpoints​

MétodoCaminhoDescrição
GET/comercial/classesLista as turmas, com filtros e paginação
POST/comercial/classesCria uma turma
GET/comercial/classes/{uuid}Consulta uma turma
PUT/comercial/classes/{uuid}Altera uma turma
DELETE/comercial/classes/{uuid}Apaga uma turma que não tem alunos
POST/comercial/classes/get-end-dateCalcula a data de término da turma
GET/comercial/classes/{uuid}/actionsLista as ações disponíveis para a turma, com o checklist
PATCH/comercial/classes/{uuid}/cancelCancela a turma
PATCH/comercial/classes/{uuid}/concludeConclui a turma
PATCH/comercial/classes/{uuid}/reopenReabre a turma
POST/comercial/classes/{uuid}/import-studentsImporta alunos por planilha
POST/comercial/classes/change-validityAltera a validade dos alunos das turmas selecionadas
GET/comercial/classes/export/{class_uuid?}Exporta a listagem de turmas em Excel
GET/comercial/classes/import-templateBaixa a planilha modelo de importação de alunos
GET/comercial/classes/actionsLista de apoio: catálogo das ações de auditoria
GET/comercial/classes/audits/actionsLista de apoio: catálogo das ações de auditoria (mesma consulta)
GET/comercial/classes/audits/studentsLista de apoio: matrículas sem turma vinculada
GET/comercial/classes/check-scheduleLista de apoio: confere se o aluno já tem matrícula no período
GET/comercial/classes/companiesLista de apoio: filiais do cliente
GET/comercial/classes/coursesLista de apoio: cursos
GET/comercial/classes/courses/{uuid}Lista de apoio: detalhe de um curso
GET/comercial/classes/modalitiesLista de apoio: modalidades
GET/comercial/classes/periodsLista de apoio: períodos das aulas
GET/comercial/classes/statusesLista de apoio: status da turma
GET/comercial/classes/businessLista de apoio: empresas do cadastro de clientes
GET/comercial/classes/business/{customer_vendor_uuid}/cost-centersLista de apoio: centros de custo da empresa
POST/comercial/classes/business/{customer_vendor_uuid}/cost-centersCadastra um centro de custo da empresa
GET/comercial/classes/expenses/customers-vendorsLista de apoio: fornecedores das despesas
GET/comercial/classes/expenses/typesLista de apoio: tipos de despesa
GET/comercial/classes/files/studentsLista de apoio: matrículas sem turma vinculada
GET/comercial/classes/food-vouchersLista de apoio: vouchers de alimentação
GET/comercial/classes/accommodation-vouchersLista de apoio: vouchers de hospedagem
GET/comercial/classes/instructorsLista de apoio: instrutores
GET/comercial/classes/instructors/responsables-typesLista de apoio: tipos de responsável
GET/comercial/classes/instructors/{employee_id}/specializationsLista de apoio: especializações do instrutor
GET/comercial/classes/studentsLista de apoio: alunos do cadastro do cliente
GET/comercial/classes/students/food-vouchersLista de apoio: vouchers de alimentação
GET/comercial/classes/students/accommodation-vouchersLista de apoio: vouchers de hospedagem
GET/comercial/classes/students/agentLista de apoio: usuários do cliente
GET/comercial/classes/students/responsibleLista de apoio: usuários do cliente
POST/comercial/classes/students/{uuid}/photoEnvia a foto de um aluno
DELETE/comercial/classes/students/{uuid}/photoRemove a foto de um aluno

Criar, listar e consultar​

GET /comercial/classes​

Lista as turmas do cliente. Sem ordenação informada, a lista vem da data de início mais recente para a mais antiga e, dentro de cada data de início, da data de término mais antiga para a mais recente. Com column e order, a ordenação usa esses campos. Com per_page, a resposta é paginada.

Parâmetros de URL

ParâmetroDescrição
searchTexto livre: código da turma, curso (nome, código e sigla), comentários e dados de alunos e empresas da turma
codeCódigo da turma
company_id / company_uuidFilial (empresa cliente) da turma
customer_vendor_business_idEmpresa do cadastro de clientes vinculada à turma
course_id / course_uuidCurso da turma
period_idPeríodo das aulas
status_idStatus da turma
modality_id / modality_uuidModalidade da turma
class_uuidUma turma específica
class_uuidsLista de turmas, pelos uuids
not_class_uuidExclui uma turma da lista
start_date e end_datePeríodo. Com os dois, a turma deve começar e terminar dentro do intervalo. Com apenas um, filtra essa data de início ou de término
limitQuantidade máxima de registros
column e orderCampo e sentido da ordenação
per_page e pagePaginação (ver Listagens em Convenções)

Resposta

Status 200. Lista de turmas, ou resposta paginada quando per_page é informado. Os campos principais são uuid, code, course_uuid, course_name, course_code, period, modality_name, company_name, start_date, end_date, status_name, student_count, location_name, user_create_name e user_update_name.

POST /comercial/classes​

Cria a turma. O sistema gera o código sequencial da turma para o cliente e copia a carga horária do curso escolhido. A criação grava um registro na auditoria da turma. A data de término não pode ser anterior à data de início.

Corpo

CampoObrigatórioTipoDescrição
course_uuidSimtexto (uuid)Curso da turma
modality_uuidSimtexto (uuid)Modalidade do treinamento
period_idSimnúmero inteiroPeríodo das aulas
daily_workloadSimnúmero inteiroHoras de treinamento por dia
start_dateSimdataPrimeiro dia da turma
end_dateSimdataData de término. Não pode ser anterior à data de início
weekend_dayNãonúmero inteiroDia do fim de semana, usado quando o período é de fim de semana
vacanciesNãonúmero inteiroNúmero de vagas
company_uuidNãotexto (uuid)Filial (empresa cliente) à qual a turma pertence
location_uuidNãotexto (uuid)Local de realização
status_idNãonúmero inteiroStatus da turma
commentsNãotextoObservações internas sobre a turma
justificationNãotextoTexto registrado na auditoria da criação

Resposta

Status 201, com a turma criada (inclui uuid e code).

curl -X POST "https://api.pedagogo.app/comercial/classes" \
-H "Authorization: Bearer <token-de-sessao>" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{
"course_uuid": "<uuid-do-curso>",
"modality_uuid": "<uuid-da-modalidade>",
"period_id": 1,
"daily_workload": 8,
"start_date": "2026-03-02",
"end_date": "2026-03-13",
"vacancies": 20,
"comments": "Turma exemplo"
}'

GET /comercial/classes/{uuid}​

Consulta uma turma, com o curso e os credenciamentos dele, o status, a empresa, a modalidade e a quantidade de alunos. Status 404 quando a turma não existe ou pertence a outro cliente.

PUT /comercial/classes/{uuid}​

Altera a turma. O corpo segue as mesmas regras do cadastro. O status não muda por esta rota: ele é mantido, e a mudança de status é feita pelas ações de cancelar, concluir e reabrir, descritas nesta página.

Corpo

CampoObrigatórioTipoDescrição
course_uuidSimtexto (uuid)Curso da turma. Se for trocado, a carga horária passa a ser a do novo curso
modality_uuidSimtexto (uuid)Modalidade do treinamento
period_idSimnúmero inteiroPeríodo das aulas
daily_workloadSimnúmero inteiroHoras de treinamento por dia
start_dateSimdataPrimeiro dia da turma
end_dateSimdataData de término. Não pode ser anterior à data de início
weekend_dayNãonúmero inteiroDia do fim de semana
vacanciesNãonúmero inteiroNúmero de vagas
company_uuidNãotexto (uuid)Filial (empresa cliente)
location_uuidNãotexto (uuid)Local de realização
status_idNãonúmero inteiroNão altera o status (ver acima)

Resposta

Status 200, com a turma alterada.

Quando as datas da turma mudam, os alunos que não têm a opção de datas próprias (Alterar data desmarcada) recebem as novas datas. A alteração grava um registro na auditoria da turma, com as datas antigas e novas. Os alunos da turma também recebem a carga horária, o curso e a empresa da turma, além do responsável e do representante conforme o cadastro.

DELETE /comercial/classes/{uuid}​

Apaga a turma (exclusão lógica). Se a turma tem alunos cadastrados, a resposta é 400 com a mensagem de que a turma não pode ser apagada.

Resposta

Status 200, com a mensagem de confirmação, ou 400 quando há alunos na turma.

POST /comercial/classes/get-end-date​

Calcula a data de término da turma a partir do curso, do período, da data de início, da carga horária diária e do dia de fim de semana. É a conta usada no campo Data de término, que não pode ser digitado. Quando class_uuid é informado, a carga horária usada é a da turma, e não a do curso.

Corpo

CampoObrigatórioTipoDescrição
course_uuidSimtexto (uuid)Curso da turma
period_idSimnúmero inteiroPeríodo das aulas
start_dateSimdataData de início
daily_workloadSimnúmero inteiroHoras de treinamento por dia
weekend_dayNãonúmero inteiroDia do fim de semana
class_uuidNãotexto (uuid)Turma, para usar a carga horária dela

Resposta

Status 200, com a data e hora de término no formato AAAA-MM-DD HH:MM:SS.

GET /comercial/classes/{uuid}/actions​

Lista as ações disponíveis para a turma. A primeira entrada é o Checklist, com o resultado das condições de cancelamento e de conclusão. Cada condição traz o título e se está atendida (allowed). Para turma que não está Aberta, o checklist vem vazio. As demais entradas são ações, cada uma com title, url relativa e icon:

  • turma Aberta: entradas de cancelar e de concluir, quando a condição correspondente está atendida;
  • turma que não está Aberta: entrada de reabrir.
[
{
"title": "Checklist",
"icon": "...",
"checklist": {
"cancel": { "allowed": true, "checklist": [ { "title": "...", "allowed": true } ] },
"conclude": { "allowed": false, "checklist": [ { "title": "...", "allowed": false } ] }
}
},
{ "title": "...", "url": "comercial/classes/<uuid-da-turma>/cancel", "icon": "..." }
]

PATCH /comercial/classes/{uuid}/cancel​

Cancela a turma, que passa para Cancelada, e todos os alunos passam para Cancelado. Só vale para turma Aberta em que nenhum aluno tem pagamento registrado. A ação grava um registro na auditoria.

Resposta

Status 200, com a mensagem Turma cancelada com sucesso!. Status 400 quando a turma não pode ser cancelada.

PATCH /comercial/classes/{uuid}/conclude​

Conclui a turma. Só vale para turma Aberta com o checklist de conclusão atendido, que exige:

  1. a turma ter pelo menos um aluno;
  2. nenhum aluno estar apenas como Matriculado ou Confirmado;
  3. todos os alunos terem CPF ou passaporte cadastrado. Alunos Cancelados, Ausentes ou Não concluídos não entram nessa conferência;
  4. para alunos particulares (sem empresa), o total pago ser igual ao total do valor do curso desses alunos.

Ao concluir, o sistema faz as etapas abaixo de uma vez. Se uma delas falhar, nenhuma é aplicada:

  • marca a turma como Concluída e grava um registro na auditoria;
  • gera os certificados dos alunos Aprovados que ainda não têm certificado ativo;
  • atualiza o responsável e o representante de cada aluno, conforme o cadastro da empresa ou do aluno.

Resposta

Status 200, com a mensagem Turma concluída com sucesso!. Status 400 quando o checklist não está atendido.

PATCH /comercial/classes/{uuid}/reopen​

Reabre a turma, que volta para Aberta. Não é possível reabrir uma turma que já está Aberta. A reabertura não restaura o status dos alunos: os alunos Cancelados continuam nesse status e precisam ser ajustados um a um.

Corpo

CampoObrigatórioTipoDescrição
justificationNãotextoJustificativa da reabertura, registrada na auditoria

Resposta

Status 200, com a mensagem Turma reaberta com sucesso!. Status 400 com a mensagem de que o status da turma não permite reabertura, quando a turma já está Aberta. Status 403 quando a ação não está liberada para o usuário.

POST /comercial/classes/{uuid}/import-students​

Importa alunos por planilha Excel (xlsx) no campo file. O envio é feito como multipart/form-data. Cada linha válida vira uma matrícula na turma, com status Matriculado e com as datas da turma. As linhas sem nome, sem CPF ou com CPF inválido são recusadas. Se o CPF já existe no cadastro de alunos do cliente, o cadastro existente é usado; se não existe, o aluno é criado.

As colunas da planilha, na ordem, são:

  1. Nome (obrigatório)
  2. CPF (obrigatório, válido)
  3. Passaporte
  4. Data de nascimento
  5. CPF ou CNPJ da empresa
  6. E-mail
  7. Celular
  8. Data da prática
  9. Valor

A planilha modelo está em GET /comercial/classes/import-template.

Corpo

CampoObrigatórioTipoDescrição
fileNãoarquivo xlsxPlanilha com os alunos. Sem o arquivo, nenhum aluno é importado

Resposta

Status 201, com success e msg. msg traz uma mensagem para cada linha recusada, com o número da linha, e o total de alunos importados.

POST /comercial/classes/change-validity​

Altera a validade, em meses, de todos os alunos das turmas selecionadas. As turmas são escolhidas pelos mesmos filtros da listagem de turmas, como class_uuids. A alteração grava um registro na auditoria de cada turma.

Corpo

CampoObrigatórioTipoDescrição
validityNãonúmero inteiroValidade, em meses
class_uuidsNãolista de textos (uuid)Turmas selecionadas

Resposta

Status 200, sem conteúdo útil (null).

GET /comercial/classes/export/{class_uuid?}​

Gera um arquivo Excel (xlsx) com a listagem de turmas, com os mesmos filtros de GET /comercial/classes. Quando class_uuid é informado no caminho, a exportação traz só essa turma. A exportação traz até 5.000 turmas. O arquivo é gerado na própria chamada e devolvido como download.

Resposta

Status 200, com o arquivo xlsx.

GET /comercial/classes/import-template​

Baixa a planilha modelo de importação de alunos (xlsx), usada em POST /comercial/classes/{uuid}/import-students.

Resposta

Status 200, com o arquivo xlsx.

Listas de apoio​

As listas abaixo alimentam os formulários da turma e as abas. Elas seguem as regras de listagem de Convenções: com per_page a resposta é paginada, sem ele vem a lista completa. Os filtros aceitos estão indicados em cada item.

  • GET /comercial/classes/actions e GET /comercial/classes/audits/actions: catálogo das ações registradas nas auditorias da turma. Cada item traz id, action (nome da ação), status_id e status. As duas rotas devolvem a mesma consulta.
  • GET /comercial/classes/audits/students e GET /comercial/classes/files/students: matrículas sem turma vinculada, com os filtros de matrícula. Usam a mesma consulta.
  • GET /comercial/classes/check-schedule: confere se o aluno tem matrícula que coincide com o período informado. Parâmetros: customer_vendor_student_id (obrigatório), start_date (obrigatório), end_date e uuid (matrícula a ignorar). Devolve a matrícula mais recente que coincide, com curso e turma, ou null.
  • GET /comercial/classes/companies: filiais (empresas cliente) do cliente. É a lista do campo Filial.
  • GET /comercial/classes/courses: cursos do cliente. Aceita search, group_uuid e group_id.
  • GET /comercial/classes/courses/{uuid}: um curso. É a fonte da carga horária e da validade preenchidas ao escolher o curso.
  • GET /comercial/classes/modalities: modalidades do cliente. Aceita search.
  • GET /comercial/classes/periods: períodos das aulas, com id e period.
  • GET /comercial/classes/statuses: status da turma, com id e status.
  • GET /comercial/classes/business: empresas do cadastro de clientes, ativas, usadas como empresa do aluno.
  • GET /comercial/classes/business/{customer_vendor_uuid}/cost-centers: centros de custo da empresa informada.
  • GET /comercial/classes/expenses/customers-vendors: fornecedores, usados no campo Fornecedor das despesas.
  • GET /comercial/classes/expenses/types: tipos de despesa cadastrados pelo cliente.
  • GET /comercial/classes/instructors: instrutores cadastrados.
  • GET /comercial/classes/instructors/responsables-types: tipos de responsável, que definem o papel do instrutor na turma.
  • GET /comercial/classes/instructors/{employee_id}/specializations: especializações do instrutor informado.
  • GET /comercial/classes/students: alunos do cadastro do cliente, com paginação.
  • GET /comercial/classes/food-vouchers e GET /comercial/classes/students/food-vouchers: vouchers de alimentação cadastrados. Devolvem a mesma consulta.
  • GET /comercial/classes/accommodation-vouchers e GET /comercial/classes/students/accommodation-vouchers: vouchers de hospedagem cadastrados. Devolvem a mesma consulta.
  • GET /comercial/classes/students/agent e GET /comercial/classes/students/responsible: usuários do cliente, com search e paginação. Devolvem a mesma consulta.

POST /comercial/classes/business/{customer_vendor_uuid}/cost-centers​

Cadastra um centro de custo na empresa informada no caminho.

Corpo

CampoObrigatórioTipoDescrição
cost_centerSimtextoNome ou código do centro de custo

Resposta

Status 201, com o centro de custo criado.

Foto do aluno​

POST /comercial/classes/students/{uuid}/photo​

Envia a foto do aluno. O {uuid} é o do cadastro de aluno. O envio é feito como multipart/form-data, no campo file. Se o aluno já tinha foto, a anterior é substituída.

Corpo

CampoObrigatórioTipoDescrição
fileNãoimagemFoto do aluno. Sem o arquivo, a foto não é alterada

Resposta

Status 200, com o cadastro do aluno.

DELETE /comercial/classes/students/{uuid}/photo​

Remove a foto do aluno.

Resposta

Status 200, com a mensagem Foto removida com sucesso.. Status 404 quando o aluno não tem foto.