Pular para o conteúdo principal
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 Matcher notifica sistemas externos quando eventos ocorrem
  • Callbacks de entrada: sistemas externos notificam o Matcher quando ações são tomadas
Quando algo acontece no Matcher, como uma nova exceção ou uma correspondência concluída, ele envia um evento para os seus endpoints configurados. 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.
Matcher Webhooks Callbacks

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.

Eventos disponíveis

O catálogo de eventos do Matcher é definido de forma centralizada (46 eventos na v4.1.0). 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

Estrutura do payload de evento

Todos os eventos seguem uma estrutura consistente:

Payloads de eventos


Ingestioncompleted

Disparado quando um lote de transações é importado com sucesso.

Matchconfirmed

Disparado quando uma correspondência é aprovada (automática ou manual).

Exceptionresolved

Disparado quando uma exceção é resolvida.

Matchforcematched

Disparado quando um usuário força manualmente uma correspondência entre transações.
Eventos de correspondência forçada são comumente usados para acionar fluxos de aprovação quando a variação excede os limites da empresa.

Matchunmatched

Disparado quando uma correspondência previamente confirmada é revertida.
Desfazer uma correspondência confirmada cria novas exceções para ambas as transações e dispara uma entrada completa no log de auditoria.

Matchruncompleted

Disparado quando uma execução de correspondência automática ou manual é concluída.

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

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.

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):

Lista de permissão de IP

O Matcher envia webhooks a partir de faixas de IP específicas:
Configure seu firewall para permitir essas faixas.

Requisitos de TLS

  • Mínimo TLS 1.2
  • Certificado SSL válido obrigatório
  • Certificados autoassinados não são suportados em produção

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 5xx
  • Timeouts de conexão
  • Falhas de resolução DNS
Sem retry para:
  • Respostas HTTP 4xx (exceto 429)
  • Certificados SSL inválidos
  • Webhook desabilitado

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.
Eventos podem ser entregues mais de uma vez. Use o ID do evento para deduplicação.
Configure alertas para taxas de falha de webhook. Investigue falhas persistentes prontamente.
Inscreva-se apenas nos eventos que você precisa. A filtragem reduz ruído e carga de processamento.
Use o endpoint de teste para verificar se seu handler de webhook funciona corretamente antes de habilitar em produção.

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.