> ## Documentation Index
> Fetch the complete documentation index at: https://docs.didit.me/llms.txt
> Use this file to discover all available pages before exploring further.

# Eventos de autenticação e webhooks

> Como a atividade de início de sessão chega à consola: resumo e cronologia de sessões, vistas de fraude, regras de eventos e webhooks auth.* da Didit.

> [!WARNING]
>
> A autenticação é uma funcionalidade nova. A Didit ativa o envio de eventos para a sua aplicação. As ações de regra que terminam a sessão de uma pessoa ou a bloqueiam ainda não estão ativas: uma regra que as utilize regista a ação sem a aplicar.

A Didit Authentication envia automaticamente a sua atividade para a Didit. Não precisa de submeter eventos de início de sessão. Cada evento fica associado à pessoa com o mesmo `vendor_data`, junto às suas verificações e transações.

Não publique também os seus próprios eventos `auth.login` em [`/v3/events/`](https://docs.didit.me/pt/transaction-monitoring/events) para os mesmos inícios de sessão. Ficariam guardados duas vezes e não atualizam o resumo de início de sessão da pessoa, nem enviam webhooks `auth.*`.

## O que é enviado

| Atividade de início de sessão | Guardado como | Webhook |
| - | - | - |
| Registo | `auth.signup` | `auth.signup` |
| Início de sessão | `auth.login` | `auth.login` |
| Início de sessão falhado | `auth.login_failed` | `auth.login_failed` |
| Fim de sessão, ou sessão revogada | `auth.logout` | Nenhum |
| Esqueci-me da palavra-passe | `auth.password_forgot` | `auth.password_reset_requested` |
| Redefinição da palavra-passe | `auth.password_reset` | `auth.password_reset_completed` |
| Palavra-passe alterada | `security.password_changed` | Nenhum |
| Autenticador adicionado ou alterado | `security.mfa_changed` | `auth.mfa_changed` |
| Início de sessão a partir de um novo dispositivo | `security.device_changed` | `auth.new_device` |
| Conta bloqueada ou com o acesso bloqueado | `security.account_locked` | `auth.account_locked` |
| Acesso de agente aprovado ou revogado | `security.agent_access_approved`, `security.agent_access_revoked` | Nenhum |

As decisões da [proteção contra bots](https://docs.didit.me/pt/authentication/bot-protection.md) (`attempt_challenged`, `attempt_blocked` e outras) também são guardadas como eventos `auth.*`, para aparecerem na linha temporal.

Um novo dispositivo é um dispositivo que não corresponde nem a um ID de dispositivo nem a uma impressão digital que a pessoa já tenha utilizado para iniciar sessão.

Cada evento inclui:

* o `method` de início de sessão (por exemplo `password` ou `passkey`) e um `reason` para falhas e bloqueios,
* o endereço IP e o contexto do dispositivo: um ID de dispositivo persistente, uma impressão digital, o agente do utilizador e uma pontuação de bot, quando o cliente a enviou,
* o ID da sessão.

Um início de sessão falhado com um identificador desconhecido ou não comprovado não tem `vendor_data`. A Didit nunca recebe o próprio identificador, apenas um hash com chave do identificador. Estas tentativas nunca são associadas a uma pessoa, mas as vistas de fraude abaixo continuam a contá-las por conta.

## Onde os visualiza

### O perfil da pessoa

Cada pessoa tem um resumo de início de sessão, apresentado na lista e no perfil de **Pessoas** e devolvido em [`/v3/users/`](https://docs.didit.me/pt/management-api/users/list) como `authentication`:

```json theme={null}
{
  "authentication": {
    "status": "ACTIVE",
    "methods": ["password", "passkey"],
    "mfa_enabled": true,
    "last_sign_in_at": "2026-10-14T09:12:44Z"
  }
}
```

* `status` é `ACTIVE`, `LOCKED` (bloqueado por uma política de segurança) ou `BLOCKED` (bloqueado pela sua equipa).
* `authentication` é `null` para uma pessoa sem identidade de início de sessão.
* Pode filtrar **Pessoas** por estado de início de sessão, método de início de sessão (incluindo "nenhum") e MFA.

### Eventos e linha temporal

Os eventos de início de sessão aparecem na página **Eventos** da consola e no separador **Eventos** de cada pessoa. Para os ler, é necessária a permissão `list:transactions` ou `read:authentication`. Ao abrir um evento de início de sessão, são apresentados o dispositivo e a rede, qualquer motivo de proteção (por exemplo `bots`, `stuffing`, `brute`, `vpn`, `travel` ou `attack_mode`) e as regras às quais correspondeu.

### Vistas de fraude

A página **Eventos** tem vistas prontas a usar que combinam os inícios de sessão com o restante histórico de atividade de uma pessoa:

| Vista | O que encontra |
| - | - |
| Um dispositivo, várias pessoas | 3 ou mais pessoas com a mesma impressão digital de dispositivo no prazo de 7 dias. |
| Pico de inícios de sessão falhados | Um IP público com 10 ou mais inícios de sessão falhados contra 3 ou mais contas (24 horas por predefinição), com os seus 30 minutos mais movimentados. |
| Novo dispositivo, depois um pagamento | Um início de sessão a partir de um dispositivo não visto nos últimos 90 dias, seguido de um levantamento ou de uma transação de saída no prazo de 15 minutos. |
| Palavra-passe alterada, depois uma transação | Uma transação de saída no prazo de 30 minutos após uma alteração de palavra-passe. |
| Muitas sessões a partir de um IP | 3 ou mais sessões de verificação para 3 ou mais pessoas no prazo de 48 horas. |

As vistas analisam até 31 dias para trás.

## Regras de eventos

Os eventos de início de sessão passam pelas mesmas [regras de eventos](https://docs.didit.me/pt/transaction-monitoring/event-rules.md) que os restantes eventos. O pacote **Fraude de autenticação** tem quatro predefinições:

| Predefinição | Corresponde a | Ações |
| - | - | - |
| Tomada de conta | Uma alteração de palavra-passe ou de MFA após 3 ou mais inícios de sessão falhados e um novo dispositivo no prazo de 1 hora. | Recusar (pontuação 90), etiquetar, terminar sessão, bloquear |
| Preenchimento de credenciais | Um início de sessão bem-sucedido a partir de um IP com 10 ou mais falhas em 3 ou mais contas no prazo de 1 hora. | Analisar (pontuação 60), etiquetar, terminar sessão |
| Novo dispositivo, depois um pagamento | Um levantamento no prazo de 15 minutos após um novo dispositivo. | Analisar (pontuação 60), etiquetar, terminar sessão |
| Deslocação impossível | Mais de 500 km entre inícios de sessão a mais de 1.000 km/h. | Analisar (pontuação 50), etiquetar, terminar sessão |

Campos úteis para as suas próprias regras incluem `event.category`, `event.action_type`, `event.payload.method`, `event.payload.reason`, `event.security.changed_field`, `event.device.fingerprint`, `event.device.persistent_device_id`, `event.device.bot_score`, `event.ip.is_vpn_or_tor`, `event.ip.is_data_center`, `event.ip.country`, `event.ip.travel_distance_km` e `event.ip.travel_speed_kmh`.

As regras de eventos têm apenas duas ações exclusivas dos eventos de início de sessão: **Terminar a sessão da pessoa em todas as sessões** e **Impedir a pessoa de iniciar sessão**. Ainda não estão ativas. Até lá, uma regra regista-as com o estado `DISABLED` e não as aplica. As restantes ações (pontuação, estado, etiquetas, notas, listas e casos) funcionam normalmente.

## Webhooks

Subscreva um [destino de webhook](https://docs.didit.me/pt/integration/webhooks.md) aos tipos `auth.*` de que precisa. Apenas os destinos subscritos recebem estes eventos. Use **Try Webhook** na consola para enviar um exemplo de cada tipo.

```json auth.new_device theme={null}
{
  "webhook_type": "auth.new_device",
  "event_id": "0b6f2a71-3c4d-4e5f-8a9b-0c1d2e3f4a5b",
  "application_id": "11111111-2222-3333-4444-555555555555",
  "environment": "live",
  "timestamp": 1760433164,
  "created_at": 1760433164,
  "vendor_user_id": "8f0c3a52-4b7e-4a51-9a56-1f2d3c4b5a69",
  "vendor_data": "user-1234",
  "auth_event": {
    "event_id": "auth:3d0f1c2e-7a8b-4c5d-9e0f-1a2b3c4d5e6f",
    "event_uuid": "5b6c7d8e-9f01-4a2b-8c3d-4e5f60718293",
    "type": "security.device_changed",
    "method": "passkey",
    "reason": null,
    "occurred_at": "2026-10-14T09:12:44+00:00",
    "ip_address": "203.0.113.10",
    "device": {
      "fingerprint": "fp_7f3a",
      "label": "Chrome on Android",
      "persistent_device_id": "dev_4c21"
    }
  },
  "authentication": {
    "status": "ACTIVE",
    "methods": ["passkey"],
    "mfa_enabled": true,
    "last_sign_in_at": "2026-10-14T09:12:44Z"
  }
}
```

* Deduplique por `auth_event.event_id`, o próprio ID do evento de início de sessão: mantém-se igual em todas as entregas desse evento. `auth_event.event_uuid` permite ler o evento guardado em `GET /v3/events/{event_uuid}/`.
* `vendor_data`, `vendor_user_id` e `authentication` são `null` numa tentativa que não indica nenhuma pessoa conhecida.
* Verifique a assinatura como em qualquer webhook da Didit (ver [webhooks](https://docs.didit.me/pt/integration/webhooks.md)).

## Faturação

Os eventos de autenticação não são faturados por evento. A autenticação é faturada por utilizador ativo mensal.

## Eventos da sua aplicação

Para ações que acontecem no seu próprio produto, como uma alteração de perfil ou um pedido de pagamento, envie diretamente os eventos a partir do seu servidor (`POST /v3/events/` com `x-api-key`) ou a partir do dispositivo, com um token de monitorização com âmbito limitado. Consulte [eventos](https://docs.didit.me/pt/transaction-monitoring/events.md) e [envio de eventos com o SDK](https://docs.didit.me/pt/transaction-monitoring/sdk-event-submission.md). Use o `vendor_data` da pessoa a partir do token de acesso da pessoa.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.