Visão geral
O Matcher oferece suporte a comunicação bidirecional por webhook e mantém suas ferramentas operacionais em sincronia com cada evento de conciliação em tempo real.
- Webhooks de saída: o roteamento de exceções despacha exceções para destinos externos: JIRA, ServiceNow ou um endpoint de webhook HTTP que você configura
- Callbacks de entrada: sistemas externos avisam o Matcher quando executam uma ação
Fluxo de mão dupla entre o Matcher e sistemas externos.
Eventos de saída
O Matcher emite eventos quando ações relevantes acontecem no processo de conciliação. O Matcher publica o catálogo abaixo no backbone de streaming. Os eventos de exceção também chegam a endpoints de webhook HTTP pelo roteamento de exceções.
Eventos disponíveis
O Matcher define seu catálogo de eventos de forma centralizada. As tabelas abaixo agrupam por domínio os eventos mais consumidos. Configuração
Discovery
Ingestão
Correspondência
Exceções e disputas
Governança e relatórios
Payload de entrega do webhook
Os despachos de exceção para um destino de webhook carregam um payload consistente comeventId, eventType, timestamp, o snapshot da exceção em data e informações de roteamento e tracing em metadata:
data.dueAt e os campos traceId, queue, ruleName e assignee de metadata quando eles não têm valor. Os eventos do catálogo de streaming (as tabelas acima) seguem seus próprios schemas por evento no stream de eventos. O Matcher não os entrega neste formato HTTP.
Callbacks de entrada
Sistemas externos enviam callbacks ao Matcher para atualizar o status da exceção depois do processamento. O endpoint de callback aceita atualizações de status, notas de resolução e mudanças de responsável de qualquer sistema externo.
Processar um callback
O headerX-Callback-Token autentica o endpoint de callback. Um JWT de operador não o autentica. O header carrega um token opaco da superfície de credenciais de callback. Cada campo abaixo é obrigatório. dueAt e updatedAt aceitam null, e payload pode ser um objeto vazio:
cURL
externalSystem identifica o sistema externo que processou a exceção. Valores comuns incluem "JIRA", "SERVICENOW" ou "WEBHOOK", mas os callbacks podem informar qualquer identificador de sistema. Omitir qualquer um dos nove campos obrigatórios retorna 422.
Resposta
X-Idempotency-Key para evitar processamento duplicado.
Nova tentativa automática para callbacks que falharam
Se um callback anterior com a mesma chave de idempotência falhou durante o processamento, o Matcher tenta automaticamente readquirir o lock de idempotência e reprocessar o callback. Isso significa que você não precisa gerar uma nova chave de idempotência ao repetir um callback que falhou. Reenvie a mesma requisição e o Matcher cuida da recuperação. Esse comportamento de nova tentativa vale apenas para callbacks com estado internofailed. O Matcher continua deduplicando callbacks que terminaram com sucesso.
Credenciais de callback
Um token bearer opaco autentica os callbacks de entrada. O sistema externo envia esse token no header
X-Callback-Token. Você emite, lista, rotaciona e revoga essas credenciais de callback por uma superfície CRUD dedicada em /v1/exceptions/callbacks/credentials. Cada credencial pertence ao tenant de quem chama. O Matcher guarda apenas o hash SHA-256 do token no servidor. As respostas de emissão e de rotação retornam o token bruto exatamente uma vez.
Emitir uma credencial
O corpo da requisição é opcional. InformeexternalSystem como um rótulo legível pelo operador para o sistema que este token autentica.
cURL
201 (CredentialSecretResponse) retorna:
Rotacionar uma credencial
cURL
CredentialSecretResponse (novo token bruto) e revoga a credencial anterior de forma atômica, assim quem chama de fora não fica sem acesso quando você troca o token.
Revogar uma credencial
cURL
Segurança de webhooks
Verificação de assinatura
Quando você configura um segredo compartilhado de webhook, o Matcher assina cada entrega com um HMAC-SHA256 sobre o corpo bruto da requisição. O Matcher envia a assinatura no headerX-Signature-256, no formato sha256=<hex-digest>:
X-Idempotency-Key para que os receptores possam deduplicar novas tentativas.
Processo de verificação:
- Calcule o HMAC-SHA256 do corpo bruto da requisição usando o segredo compartilhado do webhook
- Prefixe o digest hexadecimal com
sha256= - Compare (em tempo constante) com o header
X-Signature-256
Postura de rede
O deploy do Matcher acontece na sua própria infraestrutura, então as entregas de webhook saem pelo egress do seu deploy. Não existe faixa de IP fixa da Lerian para colocar em allowlist. Sirva os endpoints de webhook por HTTPS com um certificado válido. Como proteção contra SSRF, o Matcher recusa entregar para endereços IP privados ou de loopback, a menos que o deploy os permita explicitamente (apenas em desenvolvimento).Lógica de novas tentativas
O Matcher repete as entregas de webhook que falharam com backoff exponencial.
Política padrão de novas tentativas
Por padrão, o Matcher repete uma entrega que falhou até 3 vezes. Os atrasos seguem backoff exponencial a partir de uma base de 1 segundo, com jitter para espalhar as tentativas. O espaçamento exato varia de tentativa para tentativa em vez de seguir uma escada fixa.Condições de nova tentativa
As novas tentativas acontecem para:- Respostas HTTP 429
- Respostas HTTP 5xx
- Erros de transporte (falhas de conexão, timeouts)
- Outras respostas HTTP 4xx
Boas práticas
Verifique as assinaturas de webhook
Verifique as assinaturas de webhook
Sempre verifique a assinatura HMAC antes de processar payloads de webhook. Isso evita requisições forjadas.
Responda rápido
Responda rápido
Retorne uma resposta 2xx em até 5 segundos. Processe o evento de forma assíncrona se precisar.
Trate duplicatas de forma idempotente
Trate duplicatas de forma idempotente
As entregas podem chegar mais de uma vez. Deduplique pelo header
X-Idempotency-Key ou pelo eventId do payload.Monitore a saúde das entregas
Monitore a saúde das entregas
Configure alertas para as taxas de falha de webhook. Investigue falhas persistentes sem demora.
Próximos passos
Roteamento de exceções
Configure como as exceções disparam eventos de webhook.
Fontes externas
Configure fontes de dados que podem enviar por webhooks.

