# Notificação - Webhook

## Cadastro de Webhook

Para utilização do recurso de notificações através de Webhook o cliente deverá fornecer à plataforma Score Positivo um endpoint HTTP. Seguem as especificações:

* **Método**: POST
* **Formato/Content-Type:** application/json
* &#x20;**Autenticação**: Para garantir a segurança e a autenticidade das mensagens enviadas via webhook, utilizamos um mecanismo de assinatura digital baseado em **HMAC-SHA256**.&#x20;
  * Chave secreta (**secret**): Fornecer à plataforma ScorePositivo um token alfanumérico de 32 caracteres. Essa chave é usada tanto para **gerar** quanto para **validar** assinaturas.
  * Antes de enviar um webhook, o payload (conteúdo em JSON) é assinado com a secret. O hash é calculado usando o algoritmo:

    ```
    hash_hmac('sha256', payloadJson, secret)
    ```
  * O valor gerado é enviado no **header** da requisição:

    ```
    Signature: <hash_gerado>
    ```
  * O cliente também deverá realizar o mesmo cálculo hash e deverá comparar com o valor enviado header `Signature`. Se os valores não coincidirem, a requisição deverá ser rejeitada.

## Regras de entrega

Segue abaixo as regras implementadas pelo Webhook para entrega das notificações:

#### Sucesso&#xD;

* A entrega é confirmada quando o código de retorno da requisição HTTP for 200.

#### Falha

* Será contabilizado como um erro na entrega qualquer retorno diferente de 200;
* Em caso de registro de falha na tentativa de entrega, mais duas tentativas serão  \
  realizadas totalizando 3 tentativas no máximo.;
* O tempo entre cada nova tentativa de entrega após um registro de erro é de 30  \
  segundos.;
* Qualquer tentativa de entrega que não obtiver uma resposta no tempo de 5  \
  segundos será considerada um erro.


---

# 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://docs.scorepositivo.com.br/notificacao-webhook.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.
