> For the complete documentation index, see [llms.txt](https://hubla.gitbook.io/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://hubla.gitbook.io/docs/webhooks/proteja-seu-endpoint.md).

# Proteja seu endpoint

Recomendamos enfaticamente que proteja sua integração garantindo que todas as requisições recebidas sejam verificadas e autenticadas.

***

## Verificação de autenticidade

Para garantir a autenticidade das requisições recebidas, é altamente recomendável adicionar uma verificação de autenticidade no momento em que as requisições são recebidas pelo seu servidor. No webhook da Hubla, essa verificação pode ser feita utilizando a propriedade **x-hubla-token**, presente em todas as requisições enviadas pela Hubla.

**Headers**

<table><thead><tr><th width="236">Campo</th><th width="116">Tipo</th><th>Valor</th><th width="116">Presença</th></tr></thead><tbody><tr><td>Content-Type</td><td>string</td><td><code>application/json</code></td><td>Sempre</td></tr><tr><td><strong>x-hubla-token</strong></td><td>string</td><td><code>&#x3C;token></code></td><td>Sempre</td></tr><tr><td>x-hubla-sandbox</td><td>boolean</td><td><code>FALSE</code></td><td>Sempre</td></tr><tr><td>x-hubla-idempotency</td><td>string</td><td><code>3639911e-cfa3-47b3-80a6-d215dba62be4</code></td><td>Sempre</td></tr><tr><td>x-hubla-delivery-mode</td><td>string</td><td><code>standard</code> ou <code>compatibility</code></td><td>Sempre</td></tr></tbody></table>

**O que cada cabeçalho garante — e o que não garante**

* **`x-hubla-token`** — autentica a requisição: confirma que ela saiu da Hubla. Não diz nada sobre o conteúdo do aviso.
* **`x-hubla-sandbox`** — indica se a requisição veio do [ambiente de testes](/docs/webhooks/sandbox.md) (`TRUE`) ou de uma venda real (`FALSE`).
* **`x-hubla-idempotency`** — identifica **o aviso**, não a venda. Serve para descartar o reenvio do mesmo aviso. Dois avisos diferentes da mesma venda chegam com valores diferentes, então ele **não** colapsa duplicidade de venda — veja [Como enviar seus dados](/docs/webhooks/como-enviar-seus-dados.md#quantos-avisos-voce-recebe).
* **`x-hubla-delivery-mode`** — identifica o **formato** do aviso (`standard` ou `compatibility`). Não é identificador de aviso nem de venda, e **não substitui a deduplicação**.

***

## Modo de envio na requisição

O cabeçalho **x-hubla-delivery-mode** diz em qual modo de envio a regra estava quando o aviso foi disparado:

| Valor           | Modo na regra           | O que esperar                                                                                                                               |
| --------------- | ----------------------- | ------------------------------------------------------------------------------------------------------------------------------------------- |
| `standard`      | Integração recomendada  | **1 aviso por fatura.** Ofertas do mesmo produto agrupadas, `isOrderBump` presente e `products[].id` com o id do produto.                   |
| `compatibility` | Modo de compatibilidade | **Um aviso por item da fatura** (2 × N numa venda com order bump). `products[].id` com o id da oferta principal e sem campos de order bump. |

Ele é enviado em **todas** as requisições, inclusive nos eventos de [Lead](/docs/webhooks/eventos/lead.md), [Membro](/docs/webhooks/eventos/membro.md), [Assinatura](/docs/webhooks/eventos/assinatura.md), [Parcelamento Inteligente](/docs/webhooks/eventos/parcelamento-inteligente.md) e [Solicitação de Reembolso](/docs/webhooks/eventos/solicitacao-de-reembolso.md), onde o formato do corpo é o mesmo nos dois modos. Nesses casos o valor apenas reflete a configuração da regra.

{% hint style="info" %}
Os cabeçalhos enviados ficam registrados no [histórico de eventos](/docs/webhooks/historico.md), na tela de detalhe do evento — dá para conferir por lá o modo com que cada requisição saiu.
{% endhint %}

{% content-ref url="/pages/oezJ7rnSnaeRGWamZg75" %}
[Como enviar seus dados](/docs/webhooks/como-enviar-seus-dados.md)
{% endcontent-ref %}

***

## Onde encontrar meu x-hubla-token?

Para garantir a autenticidade das requisições recebidas pelo webhook da Hubla, é necessário obter o valor único do **x-hubla-token**. Esse valor pode ser obtido no painel de configuração do webhook na plataforma da Hubla.

Siga estas etapas para encontrar o valor do **x-hubla-token**:

1. Faça login na sua conta da Hubla.
2. Acesse a sua área de [integrações e selecione Webook](https://app.hub.la/dashboard?provider=webhook#integrations).
3. Com a integração de webhook ativa, acesse a aba de Autenticação.
4. Procure pela opção "Hubla Webhook Token".
5. Utilize o valor dessa seção para validar a autenticidade das requisições recebidas.

{% hint style="warning" %}
Lembre-se de manter o seu **Hubla Webhook Token** em segredo. Não compartilhe e tome cuidado para não expô-lo publicamente.
{% endhint %}

<figure><img src="https://362338790-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fm2RlpXepfB0XfFvxSdcP%2Fuploads%2FPvfyKIJigngT4bPSHhyY%2Fimage.png?alt=media&amp;token=f3d0c6a7-431a-4ce1-8629-968e95541f4b" alt=""><figcaption><p>Painel de Integrações > Webhook > Aba Autenticação > Configurar ferramenta</p></figcaption></figure>

***
