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

# Enviar mensagens de verificação, magic link, OTP e dupla aceitação

> Exemplos de mensagens de verificação de email e SMS usando OneSignal, incluindo senhas de uso único, magic links e fluxos de dupla aceitação com modelos e exemplos de API.

Seja para autenticação de conta, registro de novos usuários/senhas ou confirmação de uma transação, às vezes você só precisa enviar uma senha de uso único, magic link ou URL de registro para alguém. A verificação de email é um bom exemplo e uma maneira de prevenir endereços de email falsos ou inativos. Seguir este guia ajudará a garantir que seus usuários possam realmente receber os emails que você envia, ao mesmo tempo em que aumenta a reputação do remetente e a capacidade de entrega.

## Requisitos

* Um servidor para gerar e enviar o OTP ou código de confirmação.

## Enviando `custom_data` através da API

Nossa [API de criar mensagem](/reference/create-message) tem a propriedade `custom_data` que você pode usar para passar dados do seu servidor para a mensagem.

Dependendo de como você gera o código de confirmação, magic link ou URL personalizada, uma vez feito isso, você pode passá-lo para o objeto `custom_data` ao enviar uma mensagem para seus usuários. Por exemplo:

<CodeGroup>
  ```Text JSON theme={null}
  "custom_data": {
      "user": {
          "first_name": "George"
      },
      "verify": {
          "URL" : "https://yourdomain.com/users/confirm?confirmation_token=OS4EVA",
          "otp" : "OS4EVA"
      }
  }
  ```
</CodeGroup>

## Modelo de Email de Verificação

Este exemplo de modelo de email demonstrará como exibir o nome do usuário, uma senha de uso único e um botão com um link para confirmar seu endereço de email.

<Frame caption="Exemplo de email de verificação">
  <img src="https://mintcdn.com/onesignal/Z6xkXGfmy814If53/images/docs/e653d20-Screenshot_2023-08-28_at_3.07.09_PM.png?fit=max&auto=format&n=Z6xkXGfmy814If53&q=85&s=8633ab043badb9bf58acb90ef326052c" alt="" width="649" height="729" data-path="images/docs/e653d20-Screenshot_2023-08-28_at_3.07.09_PM.png" />
</Frame>

### Configuração do Modelo de Email

Navegue até **Mensagens > Modelos > Novo Modelo de Email** e use o **Editor Arrastar e Soltar**.

Crie 1 linha e arraste os seguintes blocos:

* Bloco de **Título**
* Bloco de **Parágrafo**
* Bloco de **Botão**

<Frame caption="Exemplo de editor Arrastar e Soltar">
  <img src="https://mintcdn.com/onesignal/Xl2NHJvxakrK4JbL/images/docs/eaf02d3-Screenshot_2023-08-28_at_2.46.21_PM.png?fit=max&auto=format&n=Xl2NHJvxakrK4JbL&q=85&s=bebf50444f6d7733961279be58712871" alt="" width="859" height="209" data-path="images/docs/eaf02d3-Screenshot_2023-08-28_at_2.46.21_PM.png" />
</Frame>

### Exibir o nome do usuário no email

Isto é opcional, mas você pode tornar a mensagem mais personalizada adicionando o nome do usuário. Se você não tiver o nome, pode omiti-lo ou definir um padrão.

Dentro do bloco de **Título** do nosso modelo, defina sua cópia conforme desejado. Exemplo:

```
Olá {{ message.custom_data.user.first_name | default: "there" }},
```

### Exibir senha de uso único no email

Este exemplo mostra tanto a opção de enviar uma senha de uso único quanto um botão com URL de confirmação. Dependendo de como você deseja configurar, defina sua cópia dentro do bloco de **Parágrafo** conforme desejado. Exemplo:

```
Para se juntar à equipe de esquilos, verifique seu email com a Senha de Uso Único:
{{message.custom_data.verify.otp}}

Ou use o link abaixo!
```

Você pode usar mais de um bloco de **Parágrafo** ou **Texto** se quiser tornar a senha maior ou distinta do texto. Neste exemplo, a tornamos em negrito:

<Frame caption="OTP estilizada em negrito dentro do conteúdo do email">
  <img src="https://mintcdn.com/onesignal/Xl2NHJvxakrK4JbL/images/docs/f534afb-Screenshot_2023-08-28_at_3.05.35_PM.png?fit=max&auto=format&n=Xl2NHJvxakrK4JbL&q=85&s=9ebc5e94bdc7afad54e0a39ffd994f0f" alt="" width="566" height="199" data-path="images/docs/f534afb-Screenshot_2023-08-28_at_3.05.35_PM.png" />
</Frame>

### Adicionar uma URL personalizada no email

Existem várias maneiras de configurar a URL de verificação. Neste exemplo, passamos a URL completa com o código de confirmação para `custom_data`.

No bloco de **Botão** > Propriedades de Conteúdo > Ação > Url, defina:

* `{{message.custom_data.verify.URL}}`

<Frame caption="Configuração de URL personalizada no bloco de Botão">
  <img src="https://mintcdn.com/onesignal/6v_cVPknFpo5qSVB/images/docs/075aacf-Screenshot_2023-08-28_at_3.06.14_PM.png?fit=max&auto=format&n=6v_cVPknFpo5qSVB&q=85&s=34a80930c78a39d662dcf787677e565f" alt="" width="1185" height="624" data-path="images/docs/075aacf-Screenshot_2023-08-28_at_3.06.14_PM.png" />
</Frame>

## Atualizar o modelo de email e enviar a mensagem

Consulte [Projetar Emails com Arrastar e Soltar](./design-emails-with-drag-and-drop) para mais detalhes sobre como personalizar o modelo.

Exemplo de JSON de solicitação de API:

<CodeGroup>
  ```Text JSON theme={null}
  {
      "include_email_tokens": [
          "Email Address"
      ],
      "app_id": "YOUR_APP_ID",
      "template_id": "YOUR_TEMPLATE_ID",
      "custom_data": {
          "user": {
              "first_name": "George"
          },
          "verify": {
              "URL" : "https://yourdomain.com/users/confirm?confirmation_token=OS4EVA",
              "otp" : "OS4EVA"
          }
      }
  }
  ```
</CodeGroup>

<Check>
  Quando estiver pronto, você pode usar o `template_id` dentro de suas solicitações de API [Criar notificação](/reference/create-message) com a propriedade `custom_data`.
</Check>

## Modelo de SMS de Verificação

Este exemplo de modelo de SMS demonstrará como exibir uma senha de uso único.

### Configuração do Modelo de SMS

O SMS deve ser enviado apenas com uma quantidade limitada de dados para reduzir cobranças.

Navegue até **Mensagens > Modelos > Novo Modelo de SMS**.

Nomeie o modelo algo memorável como `Modelo OTP`.

### Exibir OTP no modelo de SMS

No campo **Mensagem** do modelo, adicione a seguinte cópia:

* `{{message.custom_data.verify.otp}} é seu código de verificação OneSignal.`

Recomendamos alterar "OneSignal" para o nome do seu aplicativo.

### Atualizar o modelo de SMS e enviar a mensagem

Depois de ter o modelo criado, você pode gerar suas senhas de uso único e passá-las para o OneSignal usando o seguinte exemplo de JSON de solicitação de API:

<CodeGroup>
  ```Text JSON theme={null}
  {
      "include_phone_numbers": ["+19999999999"],
      "app_id": "YOUR_APP_ID",
      "template_id": "YOUR_TEMPLATE_ID",
      "custom_data": {
          "verify": {
              "otp" : "OS4EVA"
          }
      }
  }
  ```
</CodeGroup>

<Check>
  Quando estiver pronto, você pode usar o `template_id` dentro de suas solicitações de API [Criar notificação](/reference/create-message) com a propriedade `custom_data`.
</Check>

## Configurando Dupla Aceitação de Email

A dupla aceitação é um processo que requer que os usuários confirmem suas assinaturas de email para melhorar a qualidade da lista de email e cumprir com regulamentações.

### 1. Adicionando Endereços de Email ao OneSignal

Ao adicionar endereços de email ao OneSignal, eles são automaticamente inscritos por padrão. No entanto, para dupla aceitação, abstenha-se de [adicionar usuários através de nossa API Criar usuário](/reference/create-user) até que eles cliquem no link de verificação enviado por email.

### 2. Enviando Emails de Verificação

O OneSignal permite que você envie emails de verificação para destinatários usando nossa [API Criar notificação](/reference/create-message). O endpoint enviará o email e adicionará o endereço ao OneSignal como uma assinatura de email se ele ainda não existir no aplicativo.

#### Endpoint de API: Enviando um Email de Verificação

* Utilize o [endpoint Criar notificação](/reference/create-message) para criar e enviar um [email de verificação](./example-verification-magic-link-otp) para o destinatário.

### 3. Lidando com Respostas de Verificação

Dependendo da resposta do destinatário ao link de verificação, siga estas etapas:

**Para Não-Assinantes**

1. Segmente o destinatário do email com uma notificação de dados personalizados através de nossa [API Criar notificação](/reference/create-message).
2. Se o usuário clicar no link de verificação, use o endpoint "[Criar usuário](/reference/create-user)" da API para adicioná-los como uma assinatura.

**Para Assinantes Existentes**

1. Segmente assinantes existentes separadamente com um email de verificação.
2. Monitore as respostas dos destinatários ao link de verificação por um período predefinido.

**Se Eles Não Responderem**

* [Atualize a assinatura](/reference/update-subscription) para cancelar a inscrição ou [exclua-a completamente](/reference/delete-subscription) através da API.

**Se Eles Clicarem no Link de Verificação**

* Não faça nada - eles já estão inscritos no OneSignal.

### Em resumo, configurar a dupla aceitação com OneSignal envolve as seguintes etapas:

#### Para Endereços de Email Que Não Estão Atualmente em Seu Público

1. Envie um email de verificação para o destinatário através da API.
2. Se o destinatário clicar no link de verificação, use o endpoint de API "criar usuário" para criar a assinatura.

#### Para Endereços de Email Já no OneSignal

1. Envie um email de verificação para assinantes existentes através da API.
2. Monitore sua resposta ao link de verificação.
3. Se eles não responderem dentro de um período especificado, atualize sua assinatura para cancelar a inscrição ou excluí-la.
4. Se eles clicaram no link de verificação, não tome nenhuma ação, pois eles já estão inscritos.

Seguindo essas etapas, você pode implementar efetivamente a funcionalidade de dupla aceitação em seu processo de assinatura de email, garantindo conformidade e mantendo uma lista de email de alta qualidade.

***
