# Autenticação de dois fatores

A autenticação de dois fatores (2FA) adiciona uma segunda etapa de verificação além da senha ao acessar o Dashboard da Fluxis. Algumas ações sensíveis — como **criar chaves de API** — exigem um método 2FA ativo.

## Acesso ao dashboard

Gerencie a 2FA em:

**`/app/user/2fa`**

Nesta página você pode cadastrar métodos, concluir desafios de verificação e remover métodos que não usa mais.

## Métodos suportados

| Método | Descrição |
| ------ | ----------- |
| **Email OTP** | Código de uso único enviado ao e-mail cadastrado |
| **TOTP** | Códigos baseados em tempo de um app autenticador (Google Authenticator, Authy, etc.) |
| **Passkey** | Chaves WebAuthn / FIDO2 de hardware ou plataforma |

::::note
Existe um endpoint de cadastro OAuth do Google no código, mas não está exposto na UI do dashboard hoje. Use Email OTP, TOTP ou Passkey.
::::

## Fluxo de cadastro

Cada método segue um padrão de duas etapas:

1. **Iniciar cadastro** — inicia o registro e recebe dados de configuração (QR code para TOTP, desafio WebAuthn para passkey ou envio de OTP por e-mail)
2. **Verificar cadastro** — confirme com código válido ou asserção de passkey para ativar o método

### Email OTP

1. POST início do cadastro → OTP enviado ao seu e-mail
2. Informe o código para concluir o cadastro

### TOTP (app autenticador)

1. POST início do cadastro → recebe segredo / QR code
2. Escaneie com seu app autenticador
3. POST verificação com código de 6 dígitos gerado

### Passkey

1. POST início do cadastro → prompt WebAuthn do navegador
2. POST conclusão do cadastro com a resposta da credencial

## Usar 2FA para ações protegidas

Operações sensíveis do dashboard exigem uma sessão 2FA verificada:

1. **Criar desafio** — solicite um desafio para uma ação específica (ex.: criação de chave de API)
2. **Verificar** — envie seu OTP, código TOTP ou asserção de passkey
3. **Concluir ação** — prossiga dentro da janela da sessão verificada

A criação de chaves de API em `/app/api-keys` usa o middleware `Require2FA()` — sem um método cadastrado, você não pode criar novas chaves.

::::warning
Cadastre pelo menos um método 2FA antes de tentar criar credenciais de API. Consulte [Credenciais de API](/pt/docs/developers/api-credentials).
::::

## Gerenciar métodos

| Ação | Descrição |
| ------ | ----------- |
| List available methods | Métodos que sua organização suporta |
| List enrolled methods | Métodos ativos na sua conta |
| Delete method | Remover um método por ID |

Mantenha pelo menos um método ativo para não ficar bloqueado de recursos protegidos do dashboard.

## Gerenciamento de senha

Em `/app/user`, você também pode:

- Ver seu perfil (`GET /user/me`)
- Alterar senha (`PUT /user/change-password`)
- Definir senha inicial (`PUT /user/set-password`)

Esses endpoints exigem autenticação de sessão do dashboard, mas não necessariamente um desafio 2FA novo, a menos que a política exija.

## Recomendações de segurança

1. **Cadastre TOTP ou passkey** — mais resistente a comprometimento de e-mail que apenas OTP
2. **Cadastre um método de backup** — ex.: TOTP + passkey, para que um dispositivo perdido não bloqueie o acesso
3. **Não compartilhe códigos OTP** — o suporte Fluxis nunca pedirá seu código 2FA
4. **Revise métodos cadastrados** — remova métodos vinculados a dispositivos perdidos com rapidez

## Autenticação API vs dashboard

::::info
A 2FA se aplica apenas a **sessões do Dashboard (colaborador)**. A autenticação REST API usa chave de API + segredo → token Bearer e não envolve 2FA em cada chamada à API.
::::

Integrações autenticam com [Credenciais de API](/pt/docs/developers/api-credentials); membros da equipe autenticam no dashboard com e-mail, senha e 2FA.

## Documentação relacionada

- [Credenciais de API](/pt/docs/developers/api-credentials) — criação de chaves exige 2FA
- [Equipe e papéis](/pt/docs/developers/team-and-roles) — níveis de acesso de colaboradores
- [Cadastro](/pt/docs/merchant-integration/sign-up) — onboarding inicial
