Skip to main content
Webhooks permitem comunicação em tempo real entre o Matcher e sistemas externos. Este guia aborda notificações de eventos de saída e callbacks de resolução de entrada.

Visão geral


O Matcher suporta comunicação bidirecional via webhook, mantendo suas ferramentas operacionais sincronizadas com cada evento de conciliação em tempo real. Isso reduz a intervenção manual, ajuda a manter o cumprimento de SLAs e garante uma trilha de auditoria contínua em todos os sistemas conectados.
  • Webhooks de saída: o roteamento de exceções envia exceções para destinos externos — JIRA, ServiceNow ou um endpoint HTTP de webhook que você configura
  • Callbacks de entrada: sistemas externos notificam o Matcher quando ações são tomadas
Quando uma exceção é roteada para um destino de webhook, o Matcher entrega uma requisição HTTP assinada ao seu endpoint. Sistemas externos como JIRA ou ServiceNow podem então enviar callbacks para atualizar o status da exceção ou fechar itens automaticamente. Esse fluxo bidirecional mantém suas ferramentas sincronizadas sem intervenção manual. Além do envio de exceções, o Matcher publica seu catálogo completo de eventos de ciclo de vida no backbone de streaming da plataforma — esses eventos são consumidos como um stream, não entregues como webhooks HTTP.

Fluxo bidirecional entre o Matcher e sistemas externos.

Eventos de saída


O Matcher emite eventos quando ações significativas ocorrem no processo de conciliação. O catálogo abaixo é publicado no backbone de streaming; eventos de exceção também chegam a endpoints HTTP de webhook por meio do roteamento de exceções.

Eventos disponíveis

O catálogo de eventos do Matcher é definido de forma centralizada. Os eventos mais comumente consumidos estão agrupados por domínio abaixo. Configuração Descoberta (Fetcher) Ingestão Correspondência Exceções e disputas Governança e relatórios

Payload de entrega de webhook

Os envios de exceções para um destino de webhook carregam um payload consistente — eventId, eventType, timestamp, o snapshot da exceção sob data e as informações de roteamento/rastreamento sob metadata:
data.dueAt e os campos de metadata traceId, queue, ruleName e assignee são omitidos quando não definidos. Os eventos do catálogo de streaming (as tabelas acima) seguem seus próprios esquemas por evento no stream de eventos e não são entregues neste formato HTTP.

Callbacks de entrada


Sistemas externos enviam callbacks para o Matcher para atualizar o status das exceções após o processamento. O endpoint de callback aceita atualizações de status, notas de resolução e mudanças de atribuição de qualquer sistema externo.

Processar um callback

O endpoint de callback é autenticado pelo cabeçalho X-Callback-Token — um token opaco emitido pela superfície de credenciais de callback —, não por um JWT de operador. Todos os campos mostrados abaixo são obrigatórios; dueAt e updatedAt aceitam null, e payload pode ser um objeto vazio:
cURL
O campo externalSystem identifica o sistema externo que processou a exceção. Valores comuns incluem "JIRA", "SERVICENOW" ou "WEBHOOK", mas os callbacks podem reportar qualquer identificador de sistema. Omitir qualquer um dos nove campos obrigatórios retorna um 422.

Resposta

Referência da API: Processar callback
Quando o Matcher processa um callback, ele atualiza o status da exceção e registra a resolução na trilha de auditoria. Use o header X-Idempotency-Key para prevenir processamento duplicado.

Retry automático para callbacks com falha

Se um callback anterior para a mesma chave de idempotência falhou durante o processamento, o Matcher tenta automaticamente readquirir o bloqueio de idempotência e reprocessar o callback. Isso significa que você não precisa gerar uma nova chave de idempotência ao retentar um callback com falha: basta reenviar a mesma requisição e o Matcher cuida da recuperação. O comportamento de retry se aplica apenas a callbacks que foram marcados como failed internamente. Callbacks concluídos com sucesso continuam sendo deduplicados normalmente.

Credenciais de callback


Callbacks de entrada são autenticados com um token bearer opaco que o sistema externo envia no header X-Callback-Token. Essas credenciais de callback são emitidas, listadas, rotacionadas e revogadas através de uma superfície CRUD dedicada em /v1/exceptions/callbacks/credentials. Cada credencial é vinculada ao tenant do chamador, e apenas o hash SHA-256 do token é armazenado no servidor — o token bruto é retornado exatamente uma vez no momento da emissão/rotação.

Emitir uma credencial

O corpo da requisição é opcional; forneça externalSystem como um rótulo legível para operadores do sistema que este token autentica.
cURL
A resposta 201 (CredentialSecretResponse) retorna:
O token bruto é exibido apenas nas respostas de emissão e rotação. Armazene-o com segurança ao recebê-lo — ele não pode ser recuperado novamente. Se for perdido ou vazado, rotacione ou revogue a credencial.

Rotacionar uma credencial

cURL
A rotação retorna um novo CredentialSecretResponse (novo token bruto) e revoga a credencial anterior atomicamente, de modo que os chamadores externos não sofram interrupção ao trocar o token.

Revogar uma credencial

cURL
A revogação é terminal: a credencial não pode mais autenticar callbacks de entrada.

Segurança de webhooks


Verificação de assinatura

Quando um segredo compartilhado de webhook está configurado, o Matcher assina cada entrega com um HMAC-SHA256 sobre o corpo bruto da requisição e o envia no header X-Signature-256, formatado como sha256=<hex-digest>:
Cada entrega também inclui um header X-Idempotency-Key para que os receptores possam deduplicar retentativas. Processo de verificação:
  1. Calcule o HMAC-SHA256 do corpo bruto da requisição usando o segredo compartilhado do webhook
  2. Adicione o prefixo sha256= ao hex digest
  3. Compare (em tempo constante) com o header X-Signature-256
Exemplo (Node.js):
Exemplo (Python):

Postura de rede

O Matcher é implantado na sua própria infraestrutura, então as entregas de webhook se originam no egress do seu deployment — não há uma faixa fixa de IPs da Lerian para permitir. Sirva os endpoints de webhook por HTTPS com um certificado válido. Como proteção contra SSRF, o Matcher se recusa a entregar para endereços IP privados ou de loopback, a menos que o deployment os permita explicitamente (apenas desenvolvimento).

Lógica de retry


Entregas de webhook com falha são retentadas com backoff exponencial.

Política de retry padrão

Uma entrega com falha é retentada até 3 vezes por padrão. Os atrasos seguem backoff exponencial a partir de uma base de 1 segundo, com jitter adicionado para distribuir as retentativas — então o espaçamento exato varia de uma tentativa para outra, em vez de seguir uma escala fixa.

Condições de retry

Retries ocorrem para:
  • Respostas HTTP 429
  • Respostas HTTP 5xx
  • Erros de transporte (falhas de conexão, timeouts)
Sem retry para:
  • Outras respostas HTTP 4xx

Melhores práticas


Sempre verifique a assinatura HMAC antes de processar payloads de webhook. Isso previne requisições falsificadas.
Retorne uma resposta 2xx dentro de 5 segundos. Processe o evento de forma assíncrona se necessário.
Entregas podem chegar mais de uma vez. Deduplique pelo cabeçalho X-Idempotency-Key ou pelo eventId do payload.
Configure alertas para taxas de falha de webhook. Investigue falhas persistentes prontamente.

Próximos passos


Roteamento de exceções

Configure como exceções disparam eventos de webhook.

Fontes externas

Configure fontes de dados que podem enviar via webhooks.