# Receber eventos do Drime Sign com webhooks

Receba no seu servidor um aviso HTTP quando um documento é enviado, visto, assinado, recusado ou concluído no Drime Sign e confira a origem de cada aviso.

Atualizado em: 2026-10-21  
Fonte: https://drime.cloud/pt-br/support/integrations-and-api/sign-webhooks

Com um webhook, o Drime chama o seu servidor sempre que algo acontece com as suas solicitações de assinatura. Cada chamada é um `POST` em JSON, assinado com um segredo para que o seu servidor possa verificar que ela vem do Drime.

## Adicionar um webhook

1. Abra **Configurações** \> **Desenvolvedores** \> **Webhooks**.

   No Drime Sign, você também pode clicar em **Preferências**, abrir a aba **Webhooks** e depois clicar em **Abrir as configurações de Desenvolvedores**.

2. Clique em **Adicionar um webhook**.

3. Em **URL do endpoint**, digite o endereço do servidor que vai receber as chamadas.

4. Em **Eventos**, coloque em **Ativado** cada evento que você quer receber e clique em **Criar o webhook**.

   A mensagem **Webhook criado** confirma a criação.

5. Copie o segredo agora e clique em **Pronto**.

   **Segredo do webhook, copie agora**: ele só é exibido uma vez. Guarde-o em um lugar seguro.

![A janela de novo webhook com a URL do endpoint de um servidor de demonstração e a lista de eventos do Drime Sign](https://drime.cloud/media/01M5F06YR56KKN1FP1T6WCV3QW/8adc8de810cf-web-sign-webhook-create.png)

## Os eventos

| Evento | Enviado quando |
| --- | --- |
| `envelope.sent` | Um documento é enviado para assinatura |
| `envelope.completed` | Todos os signatários assinaram |
| `envelope.declined` | Um signatário recusou, então o documento é recusado |
| `signer.viewed` | Um signatário abriu o documento |
| `signer.signed` | Um signatário assinou |
| `signer.declined` | Um signatário recusou |
| `template.created` | Um modelo é criado |

## O que o Drime envia

Cada chamada traz estes cabeçalhos:

- `X-Drime-Event`: o evento, por exemplo `envelope.completed`;
- `X-Drime-Delivery`: o número da entrega;
- `X-Drime-Signature`: `sha256=` seguido do HMAC SHA-256 do corpo bruto, calculado com o seu segredo.

O corpo JSON contém `event_type`, `event_uuid`, `timestamp` e `data`, que traz o documento em questão com os signatários dele. A seção **Webhooks** mostra um exemplo completo em **Exemplo de requisição e verificação de assinatura**.

Uma mesma entrega pode chegar mais de uma vez: use `event_uuid` para processar cada evento uma única vez.

## Verificar a assinatura

Calcule o HMAC SHA-256 do corpo bruto da requisição com o seu segredo e compare o resultado com o cabeçalho `X-Drime-Signature`. Por exemplo, em Node.js:

```js
import crypto from 'node:crypto';

function isFromDrime(rawBody, header, secret) {
  const expected = 'sha256=' + crypto.createHmac('sha256', secret).update(rawBody).digest('hex');
  return header.length === expected.length && crypto.timingSafeEqual(Buffer.from(header), Buffer.from(expected));
}
```

Use o corpo exatamente como ele foi recebido, antes de fazer o parse do JSON.

## Testar e acompanhar as entregas

- **Enviar um teste** envia um evento de teste: **Evento de teste na fila, confira o log de entregas**.
- **Entregas** lista cada chamada com o status dela: **Sucesso**, **Pendente** ou **Falhou**. **Reenviar** envia uma entrega de novo.
- Se o seu servidor não responder ou responder com um erro, o Drime tenta de novo, em até 10 tentativas ao longo de cerca de 34 horas.
- A chave **Ativado** / **Desativado** pausa um webhook sem excluí-lo: **Webhook pausado** confirma a pausa, e **Webhook ativado**, a reativação.

## Trocar o segredo ou excluir o webhook

- **Trocar o segredo** cria um novo segredo. O app avisa: **Trocar o segredo? Seu segredo atual para de funcionar na hora.** Atualize o seu servidor imediatamente.
- **Excluir** remove o webhook: **Excluir este webhook e todo o histórico de entregas dele?**

## Se não funcionar

| O que aparece | O que fazer |
| --- | --- |
| **Digite a URL do endpoint** | Digite o endereço do seu servidor antes de criar o webhook. |
| **Ative pelo menos um evento** | Escolha pelo menos um evento em **Eventos**. |
| As entregas continuam como **Falhou** | Verifique se o seu servidor pode ser acessado pela internet e se ele responde com um código de sucesso. Depois, clique em **Reenviar**. |
| O seu servidor rejeita a assinatura | Calcule o HMAC sobre o corpo bruto, e não sobre o JSON já convertido, e use o segredo atual. Depois de **Trocar o segredo**, o antigo deixa de funcionar. |

## Próximos passos

- [Criar um aplicativo ou conectar webhooks](https://drime.cloud/pt-br/support/integrations-and-api/build-an-integration)
- [Criar um token de API](https://drime.cloud/pt-br/support/integrations-and-api/api-tokens)
- [O que contém o certificado de auditoria de um documento assinado](https://drime.cloud/pt-br/support/sign/audit-trail-and-certificate)
