Integre sua instituição
ao PrevUni.
Consulte o contrato de integração, o formato dos dados esperados e as configurações necessárias para disponibilizar sua instituição no PrevUni.
Como uma instituição se integra?
O PrevUni utiliza uma integração baseada em API. A instituição continua mantendo seus dados em seus próprios sistemas e disponibiliza um endpoint para que o PrevUni possa consultar as informações necessárias.
O endpoint deve retornar um objeto contendo informações da instituição, coordenadores, professores, cursos, disciplinas, alunos e matrículas.
Endpoint de integração
A instituição deve disponibilizar um endpoint HTTP acessível pelo PrevUni.
https://sua-instituicao.br/api/prevuniDurante o desenvolvimento, você pode utilizar um endpoint de teste como:
https://prevuni-api.netlify.app/get-data-prevuniResposta esperada
O endpoint deve retornar um JSON seguindo exatamente a estrutura abaixo:
{
"instituicao": {
"id": "unifenas",
"nome": "Universidade de Exemplo",
"sigla": "UNI",
"cnpj": "00.000.000/0001-00",
"cidade": "Alfenas",
"estado": "MG",
"api": "https://faculdade.br/api/prevuni",
"dominio": "prevuni.faculdade.br"
},
"coordenadores": [],
"professores": [],
"cursos": [],
"disciplinas": [],
"alunos": [],
"matriculas": []
}Estrutura dos dados
O PrevUni espera os seguintes objetos dentro da resposta da API.
Instituicao
Identifica a instituição que está fornecendo os dados.
{
"id": "string",
"nome": "string",
"sigla": "string",
"cnpj": "string",
"cidade": "string",
"estado": "string",
"api": "string",
"dominio": "string"
}Coordenador
Representa os coordenadores acadêmicos disponibilizados pela instituição.
{
"id": "string",
"instituicaoId": "string",
"nome": "string",
"email": "string",
"matricula": "string"
}Professor
{
"id": "string",
"instituicaoId": "string",
"nome": "string",
"email": "string",
"matricula": "string"
}Curso
{
"id": "string",
"nome": "string",
"quantidadePeriodos": 8,
"instituicaoId": "string",
"coordenadorId": "string"
}Disciplina
{
"id": "string",
"nome": "string",
"periodo": 1,
"cargaHoraria": 80,
"cursoId": "string",
"professorId": "string"
}Aluno
{
"id": "string",
"nome": "string",
"cpf": "string",
"email": "string",
"dataNascimento": "2000-01-01",
"cursoId": "string",
"periodoAtual": 3,
"status": "ativo",
"dataIngresso": "2024-02-01"
}Matrícula
{
"id": "string",
"alunoId": "string",
"disciplinaId": "string",
"semestre": "2026.1",
"situacao": "matriculado",
"cargaHorariaCumprida": 40,
"nota": 8.5
}Regras de relacionamento
Os dados enviados precisam respeitar os relacionamentos abaixo.
- Uma instituição pode possuir um ou mais cursos.
- Uma instituição pode possuir um ou mais coordenadores.
- Uma instituição pode possuir um ou mais professores.
- Um curso deve possuir um coordenador.
- Um curso pode possuir uma ou mais disciplinas.
- Um curso pode possuir um ou mais alunos.
- Uma disciplina deve possuir um professor.
- Uma disciplina pode possuir uma ou mais matrículas.
- Uma matrícula deve estar associada a um aluno.
Configure o domínio da instituição
Cada instituição possui seu próprio ambiente dentro do PrevUni. Para isso, a instituição deve configurar um subdomínio apontando para a infraestrutura onde o PrevUni está hospedado.
Exemplo de configuração
O administrador responsável pelo domínio da instituição deverá criar o registro DNS solicitado pela equipe responsável pelo PrevUni.
CNAMEprevuniseu-destino-do-prevuniO DNS não deve conter senhas, tokens, chaves privadas ou outras informações secretas. As configurações exatas de DNS podem variar conforme a infraestrutura de hospedagem utilizada pelo PrevUni.
Exemplo de integração
Abaixo está um exemplo simplificado de uma resposta completa que uma instituição poderia fornecer.
{
"instituicao": {
"id": "faculdade-001",
"nome": "Faculdade Exemplo",
"sigla": "FAEX",
"cnpj": "00.000.000/0001-00",
"cidade": "Alfenas",
"estado": "MG",
"api": "https://faculdade.br/api/prevuni",
"dominio": "prevuni.faculdade.br"
},
"coordenadores": [
{
"id": "coord-001",
"instituicaoId": "faculdade-001",
"nome": "Maria Silva",
"email": "maria@faculdade.br",
"matricula": "123456"
}
],
"professores": [
{
"id": "prof-001",
"instituicaoId": "faculdade-001",
"nome": "João Souza",
"email": "joao@faculdade.br",
"matricula": "654321"
}
],
"cursos": [
{
"id": "curso-001",
"nome": "Ciência da Computação",
"quantidadePeriodos": 8,
"instituicaoId": "faculdade-001",
"coordenadorId": "coord-001"
}
],
"disciplinas": [
{
"id": "disc-001",
"nome": "Programação",
"periodo": 1,
"cargaHoraria": 80,
"cursoId": "curso-001",
"professorId": "prof-001"
}
],
"alunos": [
{
"id": "aluno-001",
"nome": "Aluno Exemplo",
"cpf": "00000000000",
"email": "aluno@faculdade.br",
"dataNascimento": "2004-05-10",
"cursoId": "curso-001",
"periodoAtual": 1,
"status": "ativo",
"dataIngresso": "2026-02-01"
}
],
"matriculas": [
{
"id": "mat-001",
"alunoId": "aluno-001",
"disciplinaId": "disc-001",
"semestre": "2026.1",
"situacao": "matriculado",
"cargaHorariaCumprida": 20,
"nota": null
}
]
}Pronto para integrar sua instituição?
Configure seu endpoint, siga o contrato de dados e entre em contato com a equipe do PrevUni para configurar seu ambiente.
Acesso administrativo