Descripción general
Matcher admite comunicación bidireccional mediante webhooks, manteniendo tus herramientas operativas sincronizadas con cada evento de conciliación en tiempo real. Esto reduce la intervención manual, ayuda a mantener el cumplimiento de SLAs y garantiza una trazabilidad de auditoría continua en todos los sistemas conectados.
- Webhooks salientes: el enrutamiento de excepciones envía excepciones a destinos externos — JIRA, ServiceNow o un endpoint HTTP de webhook que tú configuras
- Callbacks entrantes: los sistemas externos notifican a Matcher cuando se toman acciones
Flujo bidireccional entre Matcher y sistemas externos.
Eventos salientes
Matcher emite eventos cuando ocurren acciones significativas en el proceso de conciliación. El catálogo a continuación se publica en el backbone de streaming; los eventos de excepción además llegan a endpoints HTTP de webhook a través del enrutamiento de excepciones.
Eventos disponibles
El catálogo de eventos de Matcher se define de forma centralizada. Los eventos más comúnmente consumidos se agrupan por dominio a continuación. Configuración
Descubrimiento (Fetcher)
Ingesta
Coincidencia
Excepciones y disputas
Gobernanza y reportes
Payload de entrega de webhook
Los envíos de excepciones a un destino de webhook llevan un payload consistente —eventId, eventType, timestamp, el snapshot de la excepción bajo data y la información de enrutamiento/trazado bajo metadata:
data.dueAt y los campos de metadata traceId, queue, ruleName y assignee se omiten cuando no están definidos. Los eventos del catálogo de streaming (las tablas anteriores) siguen sus propios esquemas por evento en el stream de eventos y no se entregan en esta forma HTTP.
Callbacks entrantes
Los sistemas externos envían callbacks a Matcher para actualizar el estado de las excepciones después del procesamiento. El endpoint de callback acepta actualizaciones de estado, notas de resolución y cambios de asignación desde cualquier sistema externo.
Procesar un callback
El endpoint de callback se autentica con el encabezadoX-Callback-Token — un token opaco emitido a través de la superficie de credenciales de callback —, no con un JWT de operador. Todos los campos mostrados abajo son obligatorios; dueAt y updatedAt aceptan null, y payload puede ser un objeto vacío:
cURL
externalSystem identifica el sistema externo que procesó la excepción. Los valores comunes incluyen "JIRA", "SERVICENOW" o "WEBHOOK", pero los callbacks pueden reportar cualquier identificador de sistema. Omitir cualquiera de los nueve campos obligatorios devuelve un 422.
Respuesta
X-Idempotency-Key para prevenir el procesamiento duplicado.
Reintento automático de callbacks fallidos
Si un callback previo para la misma clave de idempotencia falló durante el procesamiento, Matcher intenta automáticamente readquirir el bloqueo de idempotencia y reprocesar el callback. Esto significa que no necesitas generar una nueva clave de idempotencia al reintentar un callback fallido: simplemente reenvía la misma solicitud y Matcher gestiona la recuperación. El comportamiento de reintento se aplica solo a los callbacks que se marcaron comofailed internamente. Los callbacks que se completaron correctamente se siguen deduplicando como se espera.
Credenciales de callback
Los callbacks entrantes se autentican con un token bearer opaco que el sistema externo envía en el encabezado
X-Callback-Token. Estas credenciales de callback se emiten, listan, rotan y revocan a través de una superficie CRUD dedicada bajo /v1/exceptions/callbacks/credentials. Cada credencial está vinculada al tenant del llamante, y solo el hash SHA-256 del token se almacena del lado del servidor — el token en bruto se retorna exactamente una vez al momento de emitir/rotar.
Emitir una credencial
El cuerpo de la solicitud es opcional; proporcionaexternalSystem como una etiqueta legible por el operador para el sistema que este token autentica.
cURL
201 (CredentialSecretResponse) retorna:
Rotar una credencial
cURL
CredentialSecretResponse (nuevo token en bruto) y revoca la credencial anterior de forma atómica, de modo que los llamantes externos no experimentan ninguna interrupción al intercambiar el token.
Revocar una credencial
cURL
Seguridad de webhooks
Verificación de firma
Cuando se configura un secreto compartido de webhook, Matcher firma cada entrega con un HMAC-SHA256 sobre el cuerpo de la solicitud sin procesar y lo envía en el encabezadoX-Signature-256, con el formato sha256=<hex-digest>:
X-Idempotency-Key para que los receptores puedan deduplicar los reintentos.
Proceso de verificación:
- Calcula el HMAC-SHA256 del cuerpo de la solicitud sin procesar usando el secreto compartido del webhook
- Antepón
sha256=al hex digest - Compara (en tiempo constante) con el encabezado
X-Signature-256
Postura de red
Matcher se despliega en tu propia infraestructura, por lo que las entregas de webhooks se originan en el egress de tu despliegue — no hay un rango fijo de IPs de Lerian que permitir. Sirve los endpoints de webhook por HTTPS con un certificado válido. Como protección contra SSRF, Matcher se niega a entregar a direcciones IP privadas o de loopback a menos que el despliegue las permita explícitamente (solo desarrollo).Lógica de reintentos
Las entregas de webhooks fallidas se reintentan con retroceso exponencial.
Política de reintentos por defecto
Una entrega fallida se reintenta hasta 3 veces por defecto. Los retrasos siguen un retroceso exponencial desde una base de 1 segundo, con jitter añadido para distribuir los reintentos — así el espaciado exacto varía de un intento a otro en lugar de seguir una escala fija.Condiciones de reintento
Los reintentos ocurren para:- Respuestas HTTP 429
- Respuestas HTTP 5xx
- Errores de transporte (fallos de conexión, timeouts)
- Otras respuestas HTTP 4xx
Mejores prácticas
Verifica las firmas de webhooks
Verifica las firmas de webhooks
Verifica siempre la firma HMAC antes de procesar los payloads de webhooks. Esto previene solicitudes falsificadas.
Responde rápidamente
Responde rápidamente
Retorna una respuesta 2xx dentro de 5 segundos. Procesa el evento de forma asíncrona si es necesario.
Maneja duplicados de forma idempotente
Maneja duplicados de forma idempotente
Las entregas pueden llegar más de una vez. Deduplica con el encabezado
X-Idempotency-Key o el eventId del payload.Monitorea la salud de las entregas
Monitorea la salud de las entregas
Configura alertas para las tasas de falla de webhooks. Investiga las fallas persistentes de inmediato.
Próximos pasos
Enrutamiento de excepciones
Configura cómo las excepciones activan eventos de webhook.
Fuentes externas
Configura fuentes de datos que pueden enviar mediante webhooks.

