# Criar webhook

Há **duas formas de criar um webhooks na ZapSign**, via **interface web** ou via **chamada do endpoint na** **API.** Dessa forma, você pode configurar webhooks de maneira flexível e eficiente, garantindo que seu sistema seja notificado em tempo real sobre os eventos importantes.

{% hint style="info" %}
**Lembre:se Não é necessário criar um webhook para cada documento,** somente para cada evento que deseja.&#x20;
{% endhint %}

**Nesta seção:**\
\
[Criando webhooks via web;<br>](#criando-webhook-via-web)\
[Criando webhooks via Api;](#criando-via-api) \
[Configurando Headers para webhooks;](#configurando-headers-para-webhooks)

***

### Criando webhooks Via web

\
**Passo 1:** Em sua conta, navegue até área de **Configurações>Integrações>Api ZapSign>** [**Webhooks**](https://app.zapsign.com.br/conta/configuracoes/integration?tab=api-zapsign)**.**\
\
**Passo 2:** Insira o **endpoint** (URL) do seu servidor que receberá os dados dos webhooks. Esse endpoint deve estar preparado para processar requisições **POST** e lidar com os dados JSON que a ZapSign enviará.

**Passo 3:** Defina quais eventos deseja monitorar. A ZapSign permite que você escolha cinco tipos de eventos, são eles:

* [Documento Criado](https://docs.zapsign.com.br/webhooks/eventos/document/documento-criado)
* [Documento Assinado](https://docs.zapsign.com.br/webhooks/eventos/document/documento-assinado)
* [Documento Recusado](https://docs.zapsign.com.br/webhooks/eventos/document/documento-recusado)
* [Documento removido](https://docs.zapsign.com.br/webhooks/eventos/document/documento-removido)
* [Documento Expirado](https://docs.zapsign.com.br/webhooks/eventos/document/documento-expirado)

{% hint style="warning" %}
**Atenção**: A opção "Todos" inclui somente os eventos de documentos (criado, assinado, removido e recusado). Não inclui o de "Email bounce" (para falhas em entregas de email). Para este evento, é necessário cadastrá-lo separadamente.
{% endhint %}

**Passo 4:** Configure se deseja adicionar um filtro para receber notificações apenas de documentos criados a partir de um template específico. Além disso, é possível definir reintentos em caso de falha na notificação.

<figure><img src="https://3085168645-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M4noMoX5ZGb2-RhWjjf-887967055%2Fuploads%2FhKKFabcouVHPB6zzh7Wl%2Fimage.png?alt=media&#x26;token=3fe8a816-8b80-41a7-9815-6d92b4c39cac" alt=""><figcaption></figcaption></figure>

***

### Criando webhooks via API

Você também pode criar seus endpoints via API, ajustando os cabeçalhos e eventos conforme a necessidade do seu fluxo de trabalho para uma integração perfeita!

<mark style="color:green;">`POST`</mark> `https://api.zapsign.com.br/api/v1/user/company/webhook/`

#### Headers

| Name                                            | Type   | Description                                                                                     |
| ----------------------------------------------- | ------ | ----------------------------------------------------------------------------------------------- |
| Authorization<mark style="color:red;">\*</mark> | string | <p>Api token a frente do texto "Bearer". </p><p>Ex: Bearer c7f35c84-7893-4087-b4fb-d1f06c23</p> |

#### Request Body

```json

{
    "url": "https://SUA_URL.com",
    "type": "TIPO_EVENTO",
    "headers": [
        {
            "name": "Authorization",
            "value": "Bearer SEU_TOKEN_API"
        }
    ]
}

```

| Name                                   | Type           | Description                                                                                                                                                   |
| -------------------------------------- | -------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| url<mark style="color:red;">\*</mark>  | string         | Ex: <https://api.seusite.com/webhook-zapsign/>                                                                                                                |
| type<mark style="color:red;">\*</mark> | string         | Tipos de eventos que você deseja receber. Opções: "" (todos - default) \| "doc\_signed" \| "doc\_created" \| "doc\_deleted"\| "doc\_refused"\|"email\_bounce" |
| doc\_token                             | string         | Token do documento para associar o Webhook. Caso enviado, os webhooks serão disparados apenas para o documento em questão                                     |
| headers                                | Array\<Header> | Headers a serem enviados ao disparar o webhook. A configuração de cada header está abaixo                                                                     |

{% tabs %}
{% tab title="200- Sucesso" %}

```json
{
    "id": // Você receberá um ID de resposta//
}
```

{% endtab %}

{% tab title="403 Forbidden" %}
Verifique se seu API TOKEN está correto.
{% endtab %}
{% endtabs %}

### Configurando headers para webhooks

Também é possível implementar headers nos webhooks, garantindo maior segurança no envio de dados e otimizando o desempenho entre as aplicações.<br>

**Webhook** - raiz do JSON:

* **headers** - para cada header:

  * **name (string) -** Nome do cabeçalho HTTP a ser enviado.&#x20;

  &#x20;     **Ex:** Authorization

  * **value (string)** - Valor do cabeçalho HTTP a ser enviado.&#x20;

  &#x20;     **Ex:** Bearer SEU\_TOKEN\_DE\_AUTENTICACAO<br>

<mark style="color:green;">`POST`</mark>` ``{{api_url}}/api/v1/user/company/webhook/header/`

```
{
    "id": {{webhook_id}},
    "headers": [
        {
            "name": "Authorization",
            "value": "Bearer YOUR_AUTHENTICATION_TOKEN"
        }
    ]
}

```

### Exemplo de requisição

Faça um teste com a requisição pronta no Postman!

{% embed url="<https://www.postman.com/zapsign/workspace/zapsign-workspace/request/27495556-3413e0f8-be2d-4161-9ffa-b449443dc68d?ctx=documentation>" %}


---

# 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.zapsign.com.br/webhooks/criar-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.
