# WhatsApp Flows Decodificação/Codificação

### 📌 Para que serve?

Este módulo **WhatsApp Flows Decrypt/Enc** tem como objetivo garantir a **segurança e integridade dos dados trocados entre a Meta (WhatsApp Flows) e a plataforma**.\
Ele oferece dois modos de operação:

* **Descriptografar:** interpretar informações recebidas da Meta que chegam em formato criptografado (JSON ou mídia), tornando-as utilizáveis dentro do fluxo de automação.
* **Criptografar:** reprocessar dados tratados e enviar novamente para a Meta no formato esperado, preservando a confidencialidade das informações.

Na prática, esse módulo funciona como uma **ponte de segurança**: você recebe dados protegidos, manipula-os no fluxo e depois devolve-os criptografados, de forma que a Meta valide e aceite o processamento.

### 📌 Detalhes do módulo

O módulo possui duas abas: **Descriptografar** e **Criptografar**.

#### 🔓 Aba Descriptografar&#x20;

Usada no **início do fluxo**, quando a Meta envia dados criptografados para sua aplicação.

* **Canal**: seleção de qual canal WhatsApp será usado para aplicar o certificado.
  * Exemplo: `Canal WhatsApp Business - Suporte`
* **Certificado do canal**:
  * **Ligado:** basta selecionar o canal; o certificado correspondente é aplicado automaticamente.
  * **Desligado:** é necessário informar manualmente via variável de ambiente, útil para ambientes multi-conta ou testes.
* **Tipo**: Define o formato esperado dos dados descriptografados.
  * **JSON:** Estruturas de dados textuais (ex.: reservas, cadastros).
  * **Media:** Arquivos como imagens ou documentos.
* **Vetor Inicial (IV):** valor único para inicializar o processo de descriptografia. Vem como variável&#x20;
  * Exemplo: `{{input.initial_vector}}`.
* **Chave AES Criptografada:** chave de criptografia fornecida pela Meta, também passada via variável.
  * Exemplo: `{{input.encrypted_aes_key}}`.
* **Dados Criptografados:** payload de dados recebidos que precisam ser convertidos.
  * Exemplo: `{{input.encrypted_flow_data}}`.

<figure><img src="/files/DHC34SvM7PQKpjDAtJKU" alt=""><figcaption><p>Imagem 1 - Aba 'Descriptografar'.</p></figcaption></figure>

### 🔒 Aba Criptografar (com exemplos de variáveis)

Usada no **final do fluxo**, quando precisamos devolver dados processados à Meta em formato criptografado.

#### Campos:

* **Canal**
  * Seleção direta do canal WhatsApp, caso a opção esteja ligada.
  * Exemplo: `Canal WhatsApp Business - Suporte`
* **Certificado do canal**
  * **Ligado:** basta selecionar o canal que já tem o certificado cadastrado.
  * **Desligado:** é necessário informar manualmente via variável de ambiente.
  * Exemplo: `{{env.WHATSAPP_CHANNEL_CERT}}`
* **Vetor Inicial (IV)**
  * Valor necessário para inicializar o processo de criptografia.
  * Exemplo: `{{input.initial_vector}}`
* **Chave AES Criptografada**
  * Chave fornecida pela Meta para garantir a integridade da criptografia.
  * Exemplo: `{{input.encrypted_aes_key}}`
* **Dados Criptografados (JSON)**
  * Estrutura JSON que será criptografada antes do envio para a Meta.
  * Aqui você monta o objeto de saída conforme o fluxo processado.

<figure><img src="/files/R0kOMkhb9Y4NqkjNQnqt" alt=""><figcaption><p>Imagem 2 - Aba 'Criptografar'.</p></figcaption></figure>

{% hint style="success" %}
👉 Assim, no **início do fluxo** você usa a aba **Descriptografar** para transformar dados recebidos da Meta em informação utilizável.\
👉 No **final do fluxo** você usa a aba **Criptografar** para devolver esses dados tratados em formato seguro, pronto para ser aceito pela Meta.
{% endhint %}

### 📌 Casos de uso

1. **Reserva de vagas:**
   * Usuário inicia um fluxo de reserva via WhatsApp.
   * Meta envia os dados do formulário criptografados.
   * O módulo descriptografa → sistema consulta banco de dados (ex.: disponibilidade de vagas).
   * Resultado é montado em JSON → módulo criptografa novamente → resposta segura é enviada para a Meta.
2. **Processamento de pagamentos dentro do Flow:**
   * Meta envia dados do pagamento criptografados.
   * Plataforma descriptografa → aplica regras de negócio → retorna status “Pago/Recusado” criptografado.
3. **Fluxos dinâmicos com dados sensíveis (ex.: CPF, endereço, dados bancários):**
   * Garante que nenhuma informação trafegue em claro dentro do fluxo, apenas no formato criptografado.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://help.hyperflow.global/docs/builder-de-chatbots/controle-de-fluxo/whatsapp-flows-decodificacao-codificacao.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
