1. Autenticação e Autorização
Bússola da Gestão
  • Introdução
  • Autenticação e Autorização
    • Autenticação de Aplicações Cliente
    • Criando o Access Token
      • Via Password Grant
      • Via Client Credentials
      • Via Authorization Code (PKCE)
      • Renovando Access Token
      • Invalidando Token
    • Login Social
      • Microsoft
    • Recuperação de senha
      • Gerar código de recuperação
      • Verificar código de recuperação
      • Cadastrar nova senha
  • Usuário
    • Meus dados
      GET
    • Minhas empresas
      GET
    • Consultar empresa
      GET
    • Atualizar dados
      PUT
    • Atualizar senha
      PUT
    • Trocar empresa
      PATCH
    • Upload da imagem do usuário
      POST
    • Metricas do usuário
      GET
  • Empresa
    • Consultar dados da empresa
      GET
    • Atualizar dados da empresa
      POST
    • Cadastrando dados estruturais
      POST
    • Atualizando dados estruturais
      PUT
    • Atualizando dados de atuação
      POST
    • Atualizando dados da gestão organizacional
      POST
    • Cadastrando dados sobre segurança, saúde e conformidade
      POST
    • Cadastrar dados sobre Meio Ambiente e ESG
      POST
    • Cadastrar dados sobre o histórico na Energisa
      POST
    • Removendo dados de atuação
      DELETE
  • Cadastro de unidades
    • Listar unidades
      GET
    • Cadastrar unidade
      POST
    • Consultar unidade
      GET
    • Atualizar unidade
      PUT
    • Excluindo unidade
      DELETE
  • Cadastro de colaboradores
    • Listar colaboradores cadastrados
    • Visualizar detalhes do colaborador
    • Cadastrar colaborador
    • Atualizar colaborador
    • Listar situações do colaborador
    • Atualizar imagem do colaborador
    • Excluir imagem do colaborador
    • Consultar métricas do colaborador
    • Fato Observado - Listar
    • Fato Observado - Cadastrar
    • Fato Observado - Editar
    • Exportar lista de colaboradores
  • Cadastro de cargos
    • Listar cargos
    • Cadastrar cargo
    • Visualizar detalhes do cargo
    • Atualizar cargo
    • Excluindo cargo
    • Gerar descrição do cargo
    • Lista de niveis de cargo
    • Perfil DISC: Criar novo perfil
    • Perfil DISC: Visualizar detalhes
    • Perfil DISC: Responder questionario
    • Perfil DISC: Excluir perfil
  • Cadastro de setores
    • Listar setores
    • Cadastrar setor
    • Consultar setor
    • Consultar setor com colaboradores
    • Atualizar setor
    • Excluindo setor
  • Cadastro equipes
    • Listar equipes
    • Visualizar equipe
    • Cadastrar equipe
    • Atualizar equipe
    • Excluir equipe
    • Adicionar membro
    • Atualizar membro
    • Remover membro
  • Cadastro de contratos
    • Listar contratos
  • Fatos Observados
    • Listar fatos observados
    • Cadastrar fato observado
    • Visualizar fato observado
    • Listar notas disponíveis
  • Avaliação e Diagnóstico Corporativo
    • Modelos
      • Listar modelos
    • Ciclos
      • Listar ciclos de avaliações
      • Novo Ciclo
      • Visualizar detalhes do ciclo
      • Listar inscrições do ciclo
      • Atualizar ciclo
      • Excluir ciclo
    • Inscrição
      • Listar inscrições
      • Visualizar detalhes da inscrição
      • Adicionar inscrição
      • Excluir inscrição
    • Avaliação
      • Listar as avaliações da empresa
      • Nova avaliação
      • Ver detalhes da avaliação
      • Visualizar questionário
      • Atualizar situação do bloco na avaliação
      • Respondendo a uma Pergunta Chave
      • Respondendo a uma checkpoint de processos
      • Respondendo a uma Checkpoint de indicadores
      • Respondendo a um processo com valor externo
      • Visualizar resultado
      • Excluir avaliação
      • Visualizar indicadores
      • Alterar periodicidade do indicador
      • Cadastrar uma valor para o indicador
      • Gerar relatório
      • Finalizar avaliação
    • Comentários
      • Listar comentários
      • Listar tipos de comentários
      • Novo comentário
      • Excluir comentário
  • Feedbacks
    • Listar feedbacks realizados
    • Cadastrar fato observado
    • Visualizar fato observado
  • Aniversariantes
    • Próximos
    • Calendário
  • Calendário
    • Meus compromissos
  • Tarefas
    • Minhas tarefas
    • Visualizar tarefa
    • Busca CEP Gov.br
  • Consultas auxiliares
    • Listar ramos de atividade
    • Listar portes de empresa
    • Listar cargos
    • Listar colaboradores
    • Listar unidades
    • Visualizar dados do usuário
    • Listar equipes
    • Listar setores
    • Listar sexos
  • Universidade
    • Aluno
      • Matricula
        • Material
          • Visualizar
          • Atualizar
          • Concluir
        • Listar Cursos
        • Visualizar Matrícula
        • Gerar
      • Trilha
        • Listar Trilhas
        • Visualizar Trilha
      • Curso
        • Acervo
        • Listar Conteúdo do Capítulo
        • Visualizar
      • Prova
        • Criar Prova
        • Salvar Resposta
        • Visualizar
  • Arquivos
    • Gerar URL temporária
  • Trial
    • Teste DISC
      • Inscrição
        • Nova inscrição
        • Consultar inscrição
        • Validar credenciais
      • Usuário
        • Novo teste de usuário
        • Listar usuários da inscricao
        • Consultar dados do usuário
        • Exibir questionário do usuário
        • Responder questão do teste
        • Exibir resultado do teste do usuário
        • Excluir teste do usuário
    • Avaliação Canvas 360
      • Inscrição
        • Nova inscrição para realizar avaliação
        • Consultar dados da inscrição
      • Avaliação
        • Nova avaliação
        • Consultar avaliação
        • Exibir questionário da avaliação
        • Comentar
        • Excluir comentário
        • Finalizar avaliação
        • Emitir relatório da avaliação
  • Administração e manutenção
    • ACL
      • Perfis de acesso
        • Listar perfis de acesso
      • Módulos
        • Listar módulos do sistema
        • Visualziar detalhes do módulo
      • Rotas
        • Listar rotas pendentes
        • Salvar novas rotas
  • Esquemas
    • Sample Schemas
      • Pet
      • Category
      • Tag
  1. Autenticação e Autorização

Recuperação de senha

API de Recuperação de Senha#

Documentação para desenvolvimento de aplicações cliente (web, mobile, etc.) que consomem o fluxo de recuperação de senha.

Visão geral do fluxo#

O processo acontece em 3 chamadas sequenciais. Cada etapa depende do resultado da anterior:
1. POST /password/reset-code    → dispara o código por e-mail
2. POST /password/verify-code   → troca o código pelo reset_token
3. POST /password/reset         → usa o reset_token para definir a nova senha
O reset_token obtido na Etapa 2 é obrigatório na Etapa 3 e tem validade curta (10 minutos). O código enviado por e-mail é usado apenas na Etapa 2 — ele nunca deve ser reenviado nas etapas seguintes.
Todas as requisições e respostas usam Content-Type: application/json.

1. Solicitar código de verificação#

Inicia o processo. Envia um código de 6 caracteres para o e-mail informado, caso ele esteja cadastrado.
POST /password/reset-code

Request#

CampoTipoObrigatórioDescrição
emailstringSimE-mail de acesso do usuário
{
  "username": "usuario@exemplo.com"
}

Response — 200 OK#

{
  "message": "Se este e-mail estiver cadastrado, você receberá um código em instantes."
}
⚠️ Importante: esta resposta é sempre a mesma, independente de o e-mail existir ou não na base — é uma proteção intencional contra enumeração de usuários. A aplicação cliente não deve tentar inferir se o e-mail existe a partir da resposta; trate sempre como sucesso e avance para a tela de inserção do código.

Response — 422 Unprocessable Entity#

Retornado apenas em caso de erro de validação do próprio campo username (formato inválido, campo ausente):
{
  "message": "O campo username deve ser um endereço de e-mail válido.",
  "errors": {
    "email": ["O campo username deve ser um endereço de e-mail válido."]
  }
}

Response — 429 Too Many Requests#

{
  "message": "Muitas tentativas. Tente novamente em alguns minutos."
}
Limites: 3 requisições a cada 15 minutos por e-mail · 10 requisições por hora por IP.

2. Verificar código#

Valida o código recebido por e-mail. Em caso de sucesso, retorna um reset_token temporário que deve ser usado na Etapa 3.
POST /password/verify-code

Request#

CampoTipoObrigatórioDescrição
usernamestringSimMesmo e-mail informado na Etapa 1
codestringSimCódigo de 6 caracteres recebido por e-mail
{
  "email": "usuario@exemplo.com",
  "code": "A1B2C3"
}
O código não diferencia maiúsculas de minúsculas na exibição, mas recomenda-se normalizar para uppercase antes de enviar (code.toUpperCase()), já que é assim que ele é gerado e comparado no backend.

Response — 200 OK#

{
  "message": "Código verificado com sucesso.",
  "reset_token": "8f3a1c9e2b7d4f6a...(64 caracteres)",
  "expires_in": 600
}
CampoTipoDescrição
reset_tokenstringToken opaco a ser enviado na Etapa 3. Não decodifique nem tente interpretar seu conteúdo — é uma string aleatória sem significado próprio.
expires_innumberTempo de validade do token, em segundos, a partir do momento desta resposta
💡 Use expires_in para exibir um contador regressivo na tela de nova senha (ex: Date.now() + expires_in * 1000). Não assuma um valor fixo no cliente — o backend pode alterar essa janela.

Response — 422 Unprocessable Entity#

Retornado quando o código está incorreto, expirado, ou o limite de tentativas foi excedido. A mensagem é sempre genérica por design, para não revelar qual foi a causa exata:
{
  "message": "Código inválido ou expirado."
}
Trate esse status como "peça ao usuário para conferir o código ou solicitar um novo" — não exponha detalhes técnicos na UI.

Response — 429 Too Many Requests#

Limites: 10 requisições a cada 15 minutos por e-mail · 30 requisições por hora por IP.

3. Redefinir senha#

Efetiva a troca da senha, usando o reset_token obtido na Etapa 2.
POST /password/reset

Request#

CampoTipoObrigatórioDescrição
usernamestringSimMesmo e-mail das etapas anteriores
reset_tokenstringSimToken retornado na Etapa 2
passwordstringSimNova senha, respeitando a política abaixo
{
  "username": "usuario@exemplo.com",
  "reset_token": "8f3a1c9e2b7d4f6a...(64 caracteres)",
  "password": "MinhaSenh@2026"
}

Política de senha#

A senha é validada no backend com os seguintes critérios (a aplicação cliente deve replicar essa validação no formulário para dar feedback imediato ao usuário, mas o backend é sempre a fonte de verdade):
RegraDetalhe
Comprimento mínimo8 caracteres
Comprimento máximo64 caracteres
LetraAo menos uma (a-z ou A-Z)
NúmeroAo menos um (0-9)
Caractere especialAo menos um (qualquer caractere fora de a-zA-Z0-9)
Vazamentos conhecidosA senha é checada contra bases de vazamento conhecidas; se comprometida, é rejeitada mesmo atendendo aos critérios acima

Response — 200 OK#

{
  "message": "Senha redefinida com sucesso. Faça login com sua nova senha."
}
Após esta resposta, todas as sessões e tokens de acesso anteriores do usuário são revogados no backend. Se a aplicação cliente mantinha alguma sessão ativa desse usuário em outra aba/dispositivo, ela deixará de ser válida — a aplicação deve redirecionar para a tela de login.

Response — 422 Unprocessable Entity#

Pode ocorrer por dois motivos — verifique o campo message para diferenciar:
Token inválido/expirado:
{
  "message": "Token de redefinição inválido ou expirado."
}
→ Reinicie o fluxo a partir da Etapa 1.
Senha não atende à política:
{
  "message": "A senha não atende aos requisitos mínimos de segurança.",
  "errors": {
    "password": ["A senha não atende aos requisitos mínimos de segurança."]
  }
}
→ Mantenha o usuário na mesma tela e destaque os requisitos não atendidos.

Response — 429 Too Many Requests#

Limites: 5 requisições a cada 15 minutos por e-mail · 20 requisições por hora por IP.

Tabela-resumo#

#EndpointAutenticaçãoRate limit (e-mail)Rate limit (IP)
1POST /password/reset-codeNenhuma3 / 15 min10 / hora
2POST /password/verify-codeNenhuma10 / 15 min30 / hora
3POST /password/resetNenhuma5 / 15 min20 / hora
Nenhum dos três endpoints requer token de autenticação (Bearer/API key) — o próprio reset_token da Etapa 2 cumpre esse papel de forma escopada e temporária.

Boas práticas para a aplicação cliente#

Não persista o reset_token em localStorage ou sessionStorage. Mantenha-o apenas em memória (estado do componente/aplicação). Se a página for recarregada, force o reinício do fluxo a partir da Etapa 1 — isso é esperado e reduz a superfície de exposição do token.
Não exiba mensagens de erro diferentes com base em suposições próprias. Os status 422 das Etapas 1 e 2 são propositalmente genéricos — reproduza a mensagem do backend (message) sem tentar adivinhar ou complementar com informação adicional (ex: não diga "esse e-mail não existe").
Trate a expiração do reset_token no cliente também, usando expires_in, para não deixar o usuário preencher um formulário que o backend já vai rejeitar por expiração.
Sempre reinicie o fluxo do zero (Etapa 1) quando: o token expirar, o código expirar/exceder tentativas, ou o usuário fechar/recarregar a página no meio do processo. Não há endpoint de "retomada" — cada tentativa de recuperação é uma sequência nova e completa.
Após sucesso na Etapa 3, redirecione para a tela de login. Não tente reaproveitar nenhuma sessão anterior — ela foi revogada no backend.

Exemplo de fluxo completo (cURL)#

Modificado em 2026-07-21 14:58:51
Página anterior
Microsoft
Próxima página
Gerar código de recuperação
Built with