Hoje Estamos Lançando a Esta é a documentação oficial da nova integração via API do nexur. Com ela você lista, cria, atualiza, consulta, ativa e desativa alunos da sua conta a partir de outro sistema.
>> Ver a Documentação Oficial Da API De Integração do Nexur.
Versão 1.1 — atualizada em setembro de 2026.
Leia antes de integrar: a exclusão de aluno é definitiva
Quando você chama DELETE /delete, o aluno é arquivado e não há como reativá-lo. Mandar status: 1 depois não traz o aluno de volta: a chamada responde 200 OK, mas ele continua invisível no app e no painel. Para pausar, suspender ou bloquear um aluno temporariamente, use status: 4 (Desativado) — nunca o DELETE.
Sumário
- Antes de começar
- Autenticação
- Status do aluno: o conceito mais importante
- Excluir x desativar (a regra de ouro)
- Endpoints
- Estrutura de dados
- Códigos de status e erros
- O que esta API não faz
- Suporte
1. Antes de começar
| Base URL | https://api.nexur.com.br/aluno/ |
| Formato | JSON (envio e resposta) |
| Autenticação | Bearer Token no header |
| Escopo | Alunos da sua própria conta |
2. Autenticação
Todas as requisições precisam do token no cabeçalho:
Authorization: Bearer {SEU_TOKEN}
Content-Type: application/jsonO token é pessoal e dá acesso de escrita à sua base de alunos. Guarde-o como uma senha: não coloque em código publicado, em planilha compartilhada nem em aplicativo que roda no navegador do cliente final. Se suspeitar que ele vazou, fale com o suporte para gerar um novo.
3. Status do aluno: o conceito mais importante
O campo status controla se o aluno aparece na plataforma e o que ele consegue acessar. Ele não é um liga/desliga: são cinco estados diferentes.
| status | Nome | Aparece na lista? | O que o aluno acessa | Dá para voltar atrás? |
|---|---|---|---|---|
| 0 | Excluído / arquivado | Não | Nada | Não |
| 1 | Ativo | Sim (toggle amarelo) | Tudo | Sim |
| 2 | Pendente 1ª fatura | Sim (toggle cinza) | Somente “Meu Plano” | Sim |
| 3 | Atrasado da 2ª fatura em diante | Sim (toggle amarelo) | Tudo, com alerta de fatura pendente | Sim |
| 4 | Desativado | Sim (toggle cinza) | Somente “Meu Plano” | Sim |
Os status 2 e 3 são definidos automaticamente pela cobrança do Nexur. Na prática, a sua integração deve trabalhar com 1 (Ativo) e 4 (Desativado).
4. Excluir x desativar (a regra de ouro)
O que o DELETE realmente faz
O DELETE /delete não apaga o registro do banco. Ele marca o aluno como excluído (status 0, com a data gravada em deletedAt). Todas as telas do app e do painel filtram registros nesse estado — por isso o aluno some da lista, dos treinos e dos relatórios, mas continua existindo no banco de dados.
O erro mais comum das integrações
É este fluxo aqui:
- O sistema chama
DELETE /delete?id=42para “pausar” um aluno que cancelou. - Semanas depois o aluno volta, e o sistema chama
POST /upsert?id=42com"status": 1para reativar. - A API responde 200 OK. O campo
statusrealmente volta para1no banco. - E mesmo assim o aluno não aparece no app nem no painel.
O motivo: o que esconde o aluno do sistema não é o valor de status, e sim a marcação de exclusão feita pelo DELETE. O upsert altera os dados cadastrais e o status, mas não desfaz essa marcação. O resultado é o pior dos dois mundos: um cadastro que existe no banco, ocupa e-mail e login, mas não aparece em lugar nenhum.
Não existe endpoint de restauração. Um aluno excluído por engano precisa ser tratado como perda definitiva: o histórico dele (treinos, avaliações, medidas) não volta.
O que fazer no lugar
| Sua intenção | O que fazer | O que NÃO fazer |
|---|---|---|
| Aluno cancelou ou trancou | POST /upsert com "status": 4 | DELETE /delete |
| Aluno voltou a treinar | POST /upsert com "status": 1 | Criar um cadastro novo |
| Liberar vaga no seu plano | "status": 4 (aluno desativado não conta na cota) | DELETE /delete |
| Aluno duplicado / criado por engano, sem histórico | DELETE /delete — este é o caso de uso legítimo | — |
Recomendação prática: se a sua integração hoje chama o DELETE, troque essa chamada por um upsert com status: 4. Você mantém o histórico, o aluno continua visível na lista de desativados e a reativação passa a ser um campo de status — não um chamado para o suporte.
5. Endpoints
5.1 Listar alunos
GET /aluno/index — retorna uma lista paginada de alunos, com busca, ordenação e filtro por status.
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
search | string | Não | Busca por nome, e-mail ou login. |
limit | integer | Não | Máximo de registros por página. |
offset | integer | Não | Deslocamento para paginação. |
field | string | Não | Campo usado na ordenação (ex.: nome). |
order | string | Não | ASC ou DESC. |
active | integer | Não | Filtra pelo status do aluno (ex.: 1 para trazer só os ativos). |
Requisição
GET https://api.nexur.com.br/aluno/index?search=braga&limit=10&offset=0&field=nome&order=ASC&active=1
Authorization: Bearer {SEU_TOKEN}Resposta (200 OK)
{
"count": 125,
"items": [
{
"id": 42,
"nome": "Thiago Braga",
"email": "thiago.braga@nexur.com.br",
"uuid": "e4d1c2f0-3b7a-4b2d-9c1a-abcdef123456",
"dataNascimento": "15/04/1990",
"dataMatricula": "01/02/2025",
"sexo": "Male",
"grupo": 2,
"login": "tbraga",
"phone": "81987654321",
"cpf_cnpj": "12345678901",
"status": 1
}
]
}O campo count traz o total de registros que atendem ao filtro — use-o junto com limit e offset para paginar. Alunos excluídos (status 0) não aparecem nesta listagem.
5.2 Criar ou atualizar aluno (upsert)
POST /aluno/upsert é um endpoint só, com dois comportamentos bem diferentes. Quem decide qual deles acontece é a presença do id na chamada:
| Como você chama | O que a API faz |
|---|---|
Sem idPOST /aluno/upsert | CRIA um aluno novo e devolve o id gerado. |
Com idPOST /aluno/upsert?id=42 | ATUALIZA o aluno de id 42. Nenhum cadastro novo é criado. |
Atualizar não recupera um aluno excluído
Se o id for de um aluno que já passou pelo DELETE, o upsert grava os dados, responde 200 OK — e o aluno continua fora do app e do painel. Atualizar não desfaz a exclusão (veja a seção 4).
Antes de atualizar, confirme com GET /view?id= ou GET /index que o aluno existe e aparece na listagem. Se ele não aparecer, está excluído — e não há o que atualizar.
Campos do corpo da requisição
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
id | integer | Não | Informe para atualizar; omita para criar. |
nome | string | Sim | Nome completo do aluno. |
email | string | Sim | E-mail válido e único. |
uuid | string | Sim | Identificador único do aluno. |
dataNascimento | string | Não | Formato dd/mm/aaaa. |
dataMatricula | string | Não | Formato dd/mm/aaaa. |
sexo | string | Sim | Male ou Female. |
grupo | integer | Sim | Código do grupo/classificação (0 a 4). |
login | string | Sim | Nome de usuário, único na plataforma. |
phone | string | Não | Telefone só com números, com DDD. |
cpf_cnpj | string | Não | Só números, sem pontuação. |
status | integer | Sim | Veja a tabela de status na seção 3. Use 1 ou 4. |
senha | string | Sim | Senha em texto puro, definida por você na criação. |
5.2.1 Criar um aluno novo — sem id
Não envie o id em lugar nenhum: nem na URL (?id=), nem no corpo. É a ausência dele que diz à API para criar um cadastro.
POST https://api.nexur.com.br/aluno/upsert
Content-Type: application/json
Authorization: Bearer {SEU_TOKEN}
{
"nome": "Thiago Braga",
"email": "thiago.braga@nexur.com.br",
"uuid": "e4d1c2f0-3b7a-4b2d-9c1a-abcdef123456",
"dataNascimento": "15/04/1990",
"dataMatricula": "01/02/2025",
"sexo": "Male",
"grupo": 2,
"login": "tbraga",
"phone": "81987654321",
"cpf_cnpj": "12345678901",
"status": 1,
"senha": "SenhaSegura123"
}A resposta traz o id do aluno criado. Guarde esse id no seu sistema — é com ele que você vai fazer todas as atualizações daqui em diante.
5.2.2 Atualizar um aluno existente — com id
O id vai na URL. O aluno precisa existir e não estar excluído.
POST https://api.nexur.com.br/aluno/upsert?id=42
Content-Type: application/json
Authorization: Bearer {SEU_TOKEN}
{
"nome": "Thiago Braga Silva",
"email": "thiago.braga@nexur.com.br",
"uuid": "e4d1c2f0-3b7a-4b2d-9c1a-abcdef123456",
"dataNascimento": "15/04/1990",
"dataMatricula": "01/02/2025",
"sexo": "Male",
"grupo": 2,
"login": "tbraga",
"phone": "81999998888",
"cpf_cnpj": "12345678901",
"status": 1,
"senha": "SenhaSegura123"
}No exemplo acima mudaram o sobrenome e o telefone. O mais seguro é reenviar a ficha completa do aluno trocando só o que mudou — assim você não corre o risco de apagar um campo sem querer.
5.2.3 Desativar ou reativar um aluno
É uma atualização como qualquer outra: a mesma chamada com id, mudando só o status. Para desativar, use "status": 4:
POST https://api.nexur.com.br/aluno/upsert?id=42
Content-Type: application/json
Authorization: Bearer {SEU_TOKEN}
{
(demais campos do aluno)
"status": 4
}Para reativar, a mesma chamada com "status": 1. Como o aluno nunca foi excluído, ele volta a aparecer normalmente, com todo o histórico preservado.
Esta é a única forma de ativar e desativar aluno. O upsert com status explícito (1 ou 4) é sempre previsível: não importa quantas vezes a chamada se repita, o aluno termina no estado que você mandou — o que é essencial em sincronizações e filas de reprocessamento.
5.3 Consultar um aluno
GET /aluno/view?id={id} — retorna a ficha completa de um aluno.
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
id | integer | Sim | ID do aluno. |
GET https://api.nexur.com.br/aluno/view?id=42
Authorization: Bearer {SEU_TOKEN}Resposta (200 OK)
{
"id": 42,
"nome": "Thiago Braga",
"email": "thiago.braga@nexur.com.br",
"uuid": "e4d1c2f0-3b7a-4b2d-9c1a-abcdef123456",
"dataNascimento": "15/04/1990",
"dataMatricula": "01/02/2025",
"sexo": "Male",
"grupo": 2,
"login": "tbraga",
"phone": "81987654321",
"cpf_cnpj": "12345678901",
"status": 1,
"createdAt": "2025-02-01T14:32:00Z",
"updatedAt": "2025-07-15T09:20:10Z"
}Use esta chamada para conferir o status atual de um aluno antes de decidir o que gravar no upsert.
5.4 Excluir um aluno
DELETE /aluno/delete?id={id} — arquiva o aluno (status 0).
Atenção: esta ação não tem volta
Depois de chamar este endpoint, o aluno não pode ser reativado. Não existe endpoint de restauração, e mandar status: 1 no upsert não resolve — a API responde 200 OK, mas o aluno continua fora do app e do painel, porque a marcação de exclusão permanece.
Se a sua intenção é apenas pausar, suspender ou bloquear o acesso, use POST /upsert com "status": 4. Só use o DELETE para cadastros duplicados ou criados por engano, sem histórico a preservar.
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
id | integer | Sim | ID do aluno a ser excluído. |
DELETE https://api.nexur.com.br/aluno/delete?id=42
Authorization: Bearer {SEU_TOKEN}Resposta (200 OK)
{
"message": "Aluno excluído com sucesso"
}Efeitos da exclusão: o aluno some da listagem (/index), perde o acesso ao app, sai dos relatórios e o histórico dele deixa de ser consultável. O registro permanece no banco, ocupando o e-mail e o login usados — então, se você tentar recriar o mesmo aluno depois, pode esbarrar em conflito de cadastro.
6. Estrutura de dados
| Campo | Descrição |
|---|---|
id | Identificador único do aluno no Nexur. |
nome | Nome completo. |
email | E-mail de cadastro. |
uuid | Identificador universal único. |
dataNascimento, dataMatricula | Datas no formato dd/mm/aaaa. |
sexo | Male ou Female. |
grupo | Código do grupo/classificação (0 a 4). |
login | Nome de usuário para acesso ao app. |
phone | Telefone só com números. |
cpf_cnpj | CPF ou CNPJ só com números. |
status | Estado do aluno, de 0 a 4 — veja a seção 3. |
senha | Senha do aluno (enviada em texto puro, nunca retornada pela API). |
createdAt, updatedAt | Datas de criação e da última atualização, em ISO 8601. |
deletedAt | Data da exclusão. Preenchido pelo DELETE; é o que mantém o aluno fora do sistema. |
7. Códigos de status e erros
| Código | Significado | O que costuma ser |
|---|---|---|
| 200 | OK | Requisição bem-sucedida. |
| 400 | Bad Request | Campo obrigatório ausente, data em formato errado, status inválido. |
| 401 | Unauthorized | Token ausente, expirado ou escrito errado no header. |
| 404 | Not Found | ID inexistente — ou aluno já excluído. |
| 500 | Internal Server Error | Erro no servidor. Se persistir, acione o suporte com data, hora e o corpo da requisição. |
Um 200 OK não garante o efeito esperado no caso descrito na seção 4: reativar um aluno excluído responde 200, mas não o traz de volta. Sempre que uma reativação for crítica, confirme com um GET /index se o aluno realmente voltou a aparecer.
8. O que esta API não faz
- Não restaura aluno excluído. Não existe endpoint para isso.
- Não gerencia treinos, dietas, avaliações físicas ou medidas. Esta versão cobre apenas o cadastro do aluno.
- Não trata faturas, planos ou dados da sua assinatura. Isso continua no painel do Nexur.
- Não envia webhooks. Não há notificação de eventos: para saber o estado atual de um aluno, sua integração precisa consultar a API.
- Não faz importação em massa. Cadastros em lote são feitos com uma chamada por aluno.
9. Suporte
Dúvidas sobre a integração, pedido de token ou erro persistente: fale com a gente por e-mail em contato@aplicativonexur.com.br ou pelo WhatsApp (61) 99908-2525.
Ao abrir um chamado sobre a API, envie o endpoint chamado, o corpo da requisição (sem o token), a resposta recebida e o horário — isso reduz bastante o tempo de resposta.