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

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
Quando o roteamento de exceções envia uma exceção 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 de mão dupla mantém suas ferramentas em sincronia sem intervenção manual. Além do despacho de exceções, o Matcher publica o catálogo completo de eventos de ciclo de vida no backbone de streaming da plataforma. Esses eventos chegam até você como stream, não como webhooks HTTP.
Webhooks e callbacks do Matcher

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 com eventId, eventType, timestamp, o snapshot da exceção em data e informações de roteamento e tracing em metadata:
O Matcher omite 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 header X-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
O campo 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

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 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 interno failed. 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. Informe externalSystem como um rótulo legível pelo operador para o sistema que este token autentica.
cURL
A resposta 201 (CredentialSecretResponse) retorna:
Apenas as respostas de emissão e de rotação mostram o token bruto. Guarde-o com segurança ao recebê-lo. Você não pode recuperá-lo de novo. Se perder ou vazar o token, rotacione ou revogue a credencial.

Rotacionar uma credencial

cURL
A rotação retorna um novo 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
A revogação é definitiva: a credencial não pode mais autenticar callbacks de entrada.

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 header X-Signature-256, no formato sha256=<hex-digest>:
Cada entrega também carrega um header X-Idempotency-Key para que os receptores possam deduplicar novas tentativas. Processo de verificação:
  1. Calcule o HMAC-SHA256 do corpo bruto da requisição usando o segredo compartilhado do webhook
  2. Prefixe o digest hexadecimal com sha256=
  3. Compare (em tempo constante) com o header X-Signature-256
Exemplo (Node.js):
Exemplo (Python):

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)
Sem nova tentativa para:
  • Outras respostas HTTP 4xx

Boas práticas


Sempre verifique a assinatura HMAC antes de processar payloads de webhook. Isso evita requisições forjadas.
Retorne uma resposta 2xx em até 5 segundos. Processe o evento de forma assíncrona se precisar.
As entregas podem chegar mais de uma vez. Deduplique pelo header X-Idempotency-Key ou pelo eventId do payload.
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.