# Webhooks

Use Webhooks para receber eventos de tarefa e cobrança sem sondagem. Tripo envia cargas úteis JSON para seu endpoint HTTPS quando ocorrem eventos assinados.

## Configuração

1. Abra Configurações e depois Webhooks.
2. Adicione um terminal HTTPS, como `https://api.yourapp.com/tripo-webhook`.
3. Selecione os tipos de eventos que deseja receber.
4. Salve o ponto final.
5. Copie o segredo de assinatura e armazene-o com segurança. É mostrado apenas uma vez.

## Tipos de eventos

| Evento | Descrição |
| --- | --- |
| `task.completed` | Uma tarefa concluída com sucesso. |
| `task.failed` | Uma tarefa falhou ou foi cancelada. |
| `balance.low` | O saldo da conta caiu abaixo do limite de alerta de crédito configurado. |

## Solicitar cabeçalhos

| Cabeçalho | Descrição |
| --- | --- |
| `Tripo-Webhook-Id` | Ponto de extremidade Webhook ID. |
| `Tripo-Webhook-Delivery` | Entrega exclusiva ID. Use-o para idempotência. |
| `Tripo-Webhook-Event` | Tipo de evento, como `task.completed`. |
| `Tripo-Webhook-Signature` | Assinatura HMAC-SHA256 sobre `{timestamp}.{raw_body}`. |
| `Content-Type` | Sempre `application/json`. |

## Verificação

1. Analise `t` e `v1` de `Tripo-Webhook-Signature`.
2. Calcule HMAC-SHA256 com o segredo de assinatura sobre `t + "." + rawBody`.
3. Compare o resumo hexadecimal calculado com `v1` usando uma comparação de tempo constante.
4. Opcionalmente, rejeite carimbos de data/hora com mais de cinco minutos.

## Melhores Práticas

- Retorne uma resposta `2xx` rapidamente e processe o trabalho pesado de forma assíncrona.
- Verifique cada carga útil antes de alterar o estado do aplicativo.
- Desduplicar eventos usando `Tripo-Webhook-Delivery`.
- Use `balance.low` para alertar os usuários antes que a criação da tarefa falhe devido a créditos insuficientes.
