> ## Documentation Index
> Fetch the complete documentation index at: https://help.treble.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Introdução aos Webhooks

> Os webhooks no Treble permitem que você receba notificações em tempo real sobre eventos importantes da plataforma, como mudanças de estado do HSM, fechamentos de sessão ou falhas na implantação.

## O que é o centro de webhooks?

O centro de webhooks do Treble é o lugar onde você pode configurar as URLs dos seus endpoints para receber notificações em tempo real sobre eventos relevantes da plataforma.

Quando um evento ocorre, o Treble envia uma solicitação HTTP **POST** para a URL que você configurar, incluindo um **JSON** no corpo com as informações do evento. Seu servidor pode processar essas informações para executar ações específicas como atualizar registros, enviar alertas ou iniciar processos internos.

## Tipos de eventos disponíveis

Atualmente você pode se inscrever em diferentes tipos de eventos globais:

* **Atualização do Estado do HSM:** Notifica quando um HSM muda de estado.
* **Atualização de Fechamento de Sessão:** Notifica quando uma sessão de conversa é fechada.
* **Falha na Implantação:** Notifica quando ocorre um erro durante uma implantação.

Cada um desses webhooks pode ser ativado ou desativado de acordo com suas necessidades no painel de configuração.

## Requisitos

* Seu endpoint deve responder em menos de **5 segundos**.
* A resposta deve ser um **corpo JSON válido**.
* É recomendado usar **HTTPS** para maior segurança.

## Exemplo básico

Aqui você tem um exemplo em **Node.js** para gerenciar um webhook do Treble:

```javascript theme={null}
const express = require('express');
const app = express();
app.use(express.json());

app.post('/webhook', (req, res) => {
  const { event_type } = req.body;

  console.log('Evento recebido:', event_type);

  // Processa o evento de acordo com seu tipo
  switch (event_type) {
    case 'hsm.status':
      // Lógica para gerenciar mudanças de estado do HSM
      break;
    case 'session.close':
      // Lógica para gerenciar fechamento de sessão
      break;
    case 'deployment.failure':
      // Lógica para gerenciar falhas na implantação
      break;
  }

  res.status(200).json({ success: true });
});

app.listen(3000, () => console.log('Servidor webhook escutando na porta 3000'));
```
