🔧 Troubleshooting - Acesso e Onboarding
Este guia ajuda você a identificar e resolver problemas comuns nos fluxos de login, primeiro acesso, recuperação de senha e troca de dispositivo.
🎯 Início Rápido: Checklist de Debug
Antes de abrir um chamado de suporte, verifique:
- Credenciais válidas:
client_ideclient_secretestão corretos? - Realm correto: O
{realm}na URL está correto para o seu ambiente? - Content-Type: Está usando
application/x-www-form-urlencodedpara o login? - Token de sessão: O token retornado na validação de dados está sendo usado nos passos seguintes?
- URL correta: Está usando HML ou PRD apropriadamente?
- Formato JSON: Body está em JSON válido (para endpoints de identificação)?
- CPF válido: O CPF informado é válido e está cadastrado?
📑 Índice por Fluxo
- 🔑 Login / Autenticação — Obter token, refresh e service account
- 👤 Primeiro Acesso / 🔑 Recuperação de Senha / 📲 Troca de Dispositivo — Validação de dados, biometria, SMS, perguntas, termo e senha (fluxos compartilhados)
📚 Erros Comuns por Endpoint
🔑 Login / Autenticação
Obter Token de Acesso (Login) (POST /token)
⚠️ 400 Bad Request
| Mensagem | Detalhe | Solução |
|---|---|---|
Parâmetros ausentes | grant_type, client_id ou client_secret não enviados | Verifique se todos os campos obrigatórios estão no body como x-www-form-urlencoded |
grant_type inválido | Valor de grant_type não reconhecido | Use password para login ou refresh_token para renovação |
⛔ 401 Unauthorized
| Mensagem | Detalhe | Solução |
|---|---|---|
Credenciais inválidas | client_id ou client_secret incorretos | Confirme as credenciais com a equipe de suporte. Credenciais de HML ≠ PRD |
Usuário/senha incorretos | username ou password não correspondem | Verifique se o usuário existe e a senha está correta |
Realm incorreto | O realm na URL não existe | Confirme o realm correto para seu APP com a equipe técnica |
👤 Primeiro Acesso / 🔑 Recuperação de Senha / 📲 Troca de Dispositivo
nota
Os endpoints abaixo são compartilhados entre os fluxos de Primeiro Acesso, Recuperação de Senha e Troca de Dispositivo.
Validar Dados do Cliente (POST /identificacao/dados)
⚠️ 400 Bad Request
| Mensagem | Detalhe | Solução |
|---|---|---|
Dados inválidos | CPF, data de nascimento ou nome da mãe não conferem | Verifique se os dados informados estão corretos e correspondem ao cadastro |
CPF inválido | CPF com formato inválido ou dígitos incorretos | Envie apenas números (11 dígitos). Valide os dígitos verificadores |
Campos obrigatórios | cpf, dataNascimento ou nomeMae ausentes | Todos os 3 campos são obrigatórios no body JSON |
🔍 404 Not Found
| Mensagem | Detalhe | Solução |
|---|---|---|
Cliente não encontrado | CPF não localizado na base de clientes | Confirme o CPF com o cliente. Ele precisa ter um cartão Credsystem ativo |
Solicitar Biometria (POST /identificacao/biometria)
⚠️ 400 Bad Request
| Mensagem | Detalhe | Solução |
|---|---|---|
Consumidor obrigatório | Campo consumidor não enviado no body | Envie o campo consumidor com o código do cliente no body JSON |
⛔ 401 Unauthorized
| Mensagem | Detalhe | Solução |
|---|---|---|
Token inválido | O token de sessão é inválido ou expirado | Use o token retornado no passo 1 (validação de dados). Tokens de sessão expiram em 15 minutos |
Enviar Código SMS (POST /identificacao/token-sms/envio)
⛔ 401 Unauthorized
| Mensagem | Detalhe | Solução |
|---|---|---|
Token inválido | Token de sessão expirado ou não reconhecido | Reinicie o fluxo desde o passo 1 se o token expirou (15 min) |
💥 500 Internal Server Error
| Mensagem | Detalhe | Solução |
|---|---|---|
Erro no envio | Falha no serviço de SMS | Tente novamente em alguns segundos. Se persistir, contate o suporte |
Validar Código SMS (POST /identificacao/token-sms)
⚠️ 400 Bad Request
| Mensagem | Detalhe | Solução |
|---|---|---|
Código inválido | O código SMS digitado não confere | Verifique se o código foi digitado corretamente. Códigos expiram após alguns minutos |
Código expirado | O tempo de validade do código SMS passou | Solicite um novo código via POST /identificacao/token-sms/envio |
Tentativas excedidas | Número máximo de tentativas atingido | Reinicie o fluxo desde o passo 1 |
Validar Perguntas de Segurança (POST /identificacao/perguntas)
⚠️ 400 Bad Request
| Mensagem | Detalhe | Solução |
|---|---|---|
Respostas incorretas | Uma ou mais respostas não conferem | Peça ao cliente para verificar as respostas. As perguntas são sobre dados cadastrais |
Campos obrigatórios | As respostas não foram enviadas | Envie todas as respostas no body JSON conforme as perguntas retornadas |
Obter Termo de Aceite (GET /contratos/termo-aceite)
⛔ 401 Unauthorized
| Mensagem | Detalhe | Solução |
|---|---|---|
Token inválido | Token de sessão expirado | Reinicie o fluxo se o token de sessão expirou |
Aceitar Termo de Aceite (PUT /contratos/termo-aceite)
⛔ 401 Unauthorized
| Mensagem | Detalhe | Solução |
|---|---|---|
Token inválido | Token de sessão expirado | Reinicie o fluxo se o token de sessão expirou |
Criar/Atualizar Senha (POST /usuario/acesso)
⚠️ 400 Bad Request
| Mensagem | Detalhe | Solução |
|---|---|---|
Senha não atende requisitos | A senha informada não cumpre as regras de complexidade | A senha deve ter no mínimo 6 caracteres, incluindo letras e números |
Senhas não conferem | O campo de confirmação não bate com a senha | Certifique-se de que os campos senha e confirmação são idênticos |
⛔ 401 Unauthorized
| Mensagem | Detalhe | Solução |
|---|---|---|
Token inválido | Token de sessão expirado | Reinicie o fluxo completo desde o passo 1 |
🔄 Erros Gerais (Todos os Fluxos)
⛔ 401 — Token de Sessão Expirado
Sintoma: Após o passo 1 funcionar, os passos seguintes retornam 401.
Causa: O token de sessão retornado na validação de dados expira em 15 minutos.
Solução:
- Reinicie o fluxo desde o passo 1 (Validar Dados)
- Implemente controle de tempo para alertar o usuário antes de expirar
- Não armazene tokens de sessão por mais de 15 minutos
💥 500 — Erro no Envio de SMS
Sintoma: O passo de envio de SMS retorna 500 intermitentemente.
Solução:
- Aguarde 10 segundos e tente novamente
- Implemente retry com backoff (10s, 20s, 30s)
- Se persistir após 3 tentativas, abra chamado com suporte
🌐 CORS / Content-Type Incorreto
Sintoma: Erro de CORS ou 415 Unsupported Media Type no login.
Solução:
- O endpoint de login (
/token) usaContent-Type: application/x-www-form-urlencoded, não JSON - Os endpoints de identificação (
/identificacao/*) usamContent-Type: application/json - Chamadas à API devem ser feitas pelo backend, não pelo frontend
🔒 Realm Incorreto
Sintoma: 404 ou 401 ao tentar login mesmo com credenciais corretas.
Solução:
- O
{realm}na URL do Keycloak é específico para cada APP/parceiro - Confirme o realm com a equipe técnica da Credsystem
- Realms de HML ≠ PRD
📞 Contato com Suporte
Se o problema persistir após seguir este guia:
Informações para incluir no chamado:
- Fluxo que estava sendo executado (Login, Primeiro Acesso, Recuperação, Troca)
- Passo em que o erro ocorreu (1, 2, 3...)
- Timestamp de quando ocorreu o erro
- Dados enviados (remova informações sensíveis como senhas e tokens)
- Resposta recebida (completa, incluindo status code e body)
- Ambiente (HML ou PRD)
- Realm utilizado na URL
Canais de Contato:
Tempo de Resposta:
- 🔴 Crítico (produção parada): 2 horas
- 🟡 Alto (funcionalidade impactada): 8 horas
- 🟢 Normal (dúvidas, melhorias): 24 horas
🔄 Ambientes
| Serviço | URL HML | URL PRD |
|---|---|---|
| Keycloak (Login) | https://ssohml.credsystem.com.br/auth/realms/{realm}/protocol/openid-connect | https://ssoprd.credsystem.com.br/auth/realms/{realm}/protocol/openid-connect |
| Sessão/Identificação | https://apihml.credsystem.com.br/api/v1 | https://api.credsystem.com.br/api/v1 |
🎓 Recursos Adicionais
- 🔑 Guia de Login
- 👤 Guia de Primeiro Acesso
- 🔑 Guia de Recuperação de Senha
- 📲 Guia de Troca de Dispositivo
- 📄 Referência OpenAPI — Especificação técnica completa