# Configurar webhook global

`POST /globalwebhook`

Pasta: **Administração**

## Autenticação

```http
admintoken: {{adminToken}}
```

## Descrição

# Configurar webhook global

Substitui a lista de webhooks globais do tenant. Aceita um objeto, um array ou `{ "webhooks": [...] }`. Use para receber eventos de todas as instâncias em um endpoint central.

## Endpoint

`POST {{baseUrl}}/globalwebhook`

## Autenticação

Envie o token de administrador no header `admintoken: {{adminToken}}`.

## Corpo da requisição

| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| `url` | string | Sim | URL de destino (`webhookUrl` / `webhook` também são aceitos). |
| `enabled` | boolean | Não | Padrão `true` se omitido. |
| `events` | string[] | Não | Categorias a enviar (ex.: `messages`, `connection`, `chats`). |
| `excludeMessages` | string[] | Não | Filtros como `wasSentByApi`, `fromMeYes`, `isGroupYes`. |
| `addUrlTypesMessages` | boolean | Não | Acrescenta o tipo da mensagem na URL. |
| `addUrlEvents` | boolean | Não | Acrescenta a categoria do evento na URL. |

## Exemplo de Requisição

```bash
curl --request POST '{{baseUrl}}/globalwebhook' \
  --header 'admintoken: {{adminToken}}' \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "enabled": true,
  "url": "{{globalWebhook}}",
  "events": ["messages", "connection"],
  "excludeMessages": ["wasSentByApi"]
}'
```

## Resposta de Sucesso

```json
{
  "success": true,
  "webhooks": [
    {
      "id": "uuid-gerado",
      "enabled": true,
      "url": "https://seu-servidor.com/webhook",
      "events": ["messages", "connection"],
      "excludeMessages": ["wasSentByApi"],
      "addUrlTypesMessages": false,
      "addUrlEvents": false
    }
  ]
}
```

## Erros comuns

- `401 Unauthorized`: `admintoken` ausente ou inválido.
- `400 Bad Request`: payload vazio ou sem `url`.
- `500 Internal Server Error`: falha ao substituir os registros no banco.

## Observações

- A operação **substitui** todos os webhooks globais existentes (delete + insert).
- Para evitar loop de automação, use `excludeMessages: ["wasSentByApi"]`.

## Corpo (exemplo)

```json
{
  "enabled": true,
  "url": "{{globalWebhook}}",
  "events": [
    "messages",
    "connection"
  ],
  "excludeMessages": [
    "wasSentByApi"
  ],
  "addUrlTypesMessages": false,
  "addUrlEvents": false
}
```

## cURL

```bash
curl -X POST "{{baseUrl}}/globalwebhook" \
  -H "admintoken: {{adminToken}}" \
  -H "Content-Type: application/json" \
  -d '{
  "enabled": true,
  "url": "{{globalWebhook}}",
  "events": [
    "messages",
    "connection"
  ],
  "excludeMessages": [
    "wasSentByApi"
  ],
  "addUrlTypesMessages": false,
  "addUrlEvents": false
}'
```

---

[Índice da pasta](./index.md) · [Índice geral](../index.md) · [UI](https://gozap.dev/docs?op=administracao/configurar-webhook-global)
