Docs/Confiabilidade/webhooks
8 min de leituraAtualizado em 2026-09-07

Webhooks & Assinatura HMAC-SHA256

Os Webhooks do Tarevo enviam requisições HTTP POST para o seu servidor assim que ocorrem eventos importantes na loja (como novos pedidos ou mudanças de status).

Arquitetura de Entrega

  • **Transactional Outbox:** Os eventos são gravados atomicamente no mesmo commit do banco de dados que altera o pedido.
  • **Assinatura HMAC-SHA256:** Cada envio contém o cabeçalho `X-Tarevo-Signature` calculado com sua chave secreta sobre o raw body do payload.
  • **At-Least-Once Delivery:** Mensagens podem ser reenviadas em caso de instabilidade. Sempre utilize o campo `eventId` para deduplicação.
  • Exemplo de Validação de Assinatura (Node.js)

    import * as crypto from 'crypto';
    
    export function verifyWebhookSignature(
      rawBody: Buffer | string,
      signatureHeader: string,
      secret: string
    ): boolean {
      const hmac = crypto.createHmac('sha256', secret);
      const expectedSignature = hmac.update(rawBody).digest('hex');
      
      return crypto.timingSafeEqual(
        Buffer.from(signatureHeader),
        Buffer.from(expectedSignature)
      );
    }

    Política de Retentativas e DLQ

    Em caso de timeout ou resposta HTTP diferente de 2xx, o Tarevo realiza até **10 tentativas** com backoff exponencial (1m, 2m, 5m, 15m, 30m, 1h, 2h, 4h, 8h, 16h). Após 10 tentativas com falha, a mensagem é movida para a Dead Letter Queue (DLQ) e pode ser reenviada manualmente pelo Developer Portal.