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

# Autenticação

> O token do webhook: como ele é gerado, o que ele autoriza e como protegê-lo.

A entrada de contatos é autenticada pelo **token no caminho da URL**. Não há cabeçalho
de autorização e não há chave de API separada.

```
https://crm.suaempresa.com/api/webhooks/receive/SEU_TOKEN
```

## O token

<ResponseField name="Formato" type="48 caracteres hexadecimais">
  Gerado a partir de 24 bytes aleatórios, único por webhook.
</ResponseField>

<ResponseField name="Escopo" type="uma organização">
  O token identifica o webhook e, por ele, a organização. Ele **só** autoriza criar
  contato: não lê nada, não lista nada e não altera nada do que já existe.
</ResponseField>

<ResponseField name="Ciclo de vida" type="regerável">
  Pode ser regerado a qualquer momento em **Configurações → Integrações → Webhooks**. O
  token anterior para de funcionar na hora.
</ResponseField>

## Onde colocar o token

<Tabs>
  <Tab title="Formulário HTML">
    Aceitável. O token fica visível no `action` do formulário, e o pior que alguém faz
    com ele é criar contatos falsos.

    ```html theme={"theme":{"light":"min-light","dark":"min-dark"}}
    <form action="https://crm.suaempresa.com/api/webhooks/receive/SEU_TOKEN" method="POST">
    ```
  </Tab>

  <Tab title="Servidor">
    O ideal. Guarde em variável de ambiente e faça a requisição do seu backend.

    ```bash theme={"theme":{"light":"min-light","dark":"min-dark"}}
    FLUNORA_WEBHOOK_URL="https://crm.suaempresa.com/api/webhooks/receive/SEU_TOKEN"
    ```
  </Tab>

  <Tab title="JavaScript de página pública">
    Evite. Um token em código de página pública é um convite para alguém automatizar a
    criação de contatos em escala.
  </Tab>
</Tabs>

## Como perceber abuso

O contador de contatos recebidos por webhook fica na tela de webhooks. Um salto sem
campanha correspondente é o primeiro sinal, e a resposta é regerar o token.

<Note>
  Desligue os webhooks que não estão em uso. Um webhook desligado responde `403` e não
  cria nada, o que é melhor que um token esquecido continuar aceitando dados por dois
  anos.
</Note>

## O que o token não faz

Ele não dá acesso de leitura a nada. Um token vazado não expõe a sua base: expõe você a
receber lixo, o que é chato e reversível.
