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

# otp.created

> Evento emitido após a criação de um OTP

`otp.created` é emitido depois que um [OTP](/data-modelling/identity/otp) é criado.

Handlers usam este evento para executar efeitos assíncronos fora do fluxo síncrono.

## Detalhes do Evento

| Propriedade    | Valor                                                |
| -------------- | ---------------------------------------------------- |
| **Tipo**       | `otp.created`                                        |
| **Origem**     | Criação de OTP                                       |
| **Publicação** | Após commit do OTP                                   |
| **Quando**     | Um código OTP é gerado para um fluxo de verificação. |

## Handlers

| Handler         | Responsabilidade      | Dados usados | Execução                                            |
| --------------- | --------------------- | ------------ | --------------------------------------------------- |
| `send-otp-code` | Entrega o código OTP. | `data`       | Assíncrona. Usa o canal disponível para o contexto. |

## Payload

| Campo  | Tipo  | Descrição           |
| ------ | ----- | ------------------- |
| `data` | `OTP` | Entidade OTP criada |

## Regras dos handlers

* Handlers não rodam na transação que publicou o OTP.
* Falha em handler não desfaz o OTP.
* Cada handler deve ser idempotente.
* Novos handlers podem ser adicionados sem mudar o fluxo síncrono.

## Exemplo

```json theme={null}
{
  "type": "otp.created",
  "data": {
    "otpId": "0197a7fb-5227-7e39-a12d-ae3f6d50a732",
    "userId": "0197a7f5-2a88-7c1e-9b65-1f6d8f3b3a10",
    "code": "482910",
    "context": "RESET_PASSWORD",
    "recipient": "+5511987654321",
    "expiresAt": "2026-07-03T12:02:00.000Z",
    "usedAt": null,
    "createdBy": "0197a805-0910-7eb2-bae7-90a13df2a9b2",
    "createdAt": "2026-07-03T12:00:00.000Z",
    "updatedBy": "0197a805-0910-7eb2-bae7-90a13df2a9b2",
    "updatedAt": "2026-07-03T12:00:00.000Z"
  }
}
```
