Skip to main content
Los webhooks habilitan la comunicación en tiempo real entre Matcher y los sistemas externos. Esta guía cubre las notificaciones de eventos salientes y los callbacks de resolución entrantes.

Resumen


Matcher admite comunicación bidireccional por webhook y mantiene tus herramientas operativas sincronizadas con cada evento de conciliación en tiempo real.
  • Webhooks salientes: el enrutamiento de excepciones envía las excepciones a destinos externos: JIRA, ServiceNow o un endpoint de webhook HTTP que configures
  • Callbacks entrantes: los sistemas externos avisan a Matcher cuando ejecutan una acción
Cuando el enrutamiento de excepciones envía una excepción a un destino de webhook, Matcher entrega una solicitud HTTP firmada a tu endpoint. Sistemas externos como JIRA o ServiceNow pueden entonces enviar callbacks para actualizar el estado de la excepción o cerrar elementos de forma automática. Este flujo de ida y vuelta mantiene tus herramientas sincronizadas sin intervención manual. Más allá del envío de excepciones, Matcher publica su catálogo completo de eventos de ciclo de vida en el backbone de streaming de la plataforma. Esos eventos te llegan como un stream, no como webhooks HTTP.
Matcher Webhooks Callbacks

Flujo de ida y vuelta entre Matcher y los sistemas externos.

Eventos salientes


Matcher emite eventos cuando ocurren acciones significativas en el proceso de conciliación. Matcher publica el catálogo de abajo en el backbone de streaming. Los eventos de excepción también llegan a endpoints de webhook HTTP mediante el enrutamiento de excepciones.

Eventos disponibles

Matcher define su catálogo de eventos de forma centralizada. Las tablas de abajo agrupan por dominio los eventos que más se consumen. Configuración Discovery Ingesta Coincidencia Excepciones y disputas Gobernanza e informes

Payload de entrega del webhook

Los envíos de excepciones a un destino de webhook llevan un payload consistente con eventId, eventType, timestamp, la instantánea de la excepción bajo data e información de enrutamiento y trazas bajo metadata:
Matcher omite data.dueAt y los campos de metadata traceId, queue, ruleName y assignee cuando no tienen valor. Los eventos del catálogo de streaming (las tablas de arriba) siguen sus propios esquemas por evento en el stream de eventos. Matcher no los entrega con esta forma HTTP.

Callbacks entrantes


Los sistemas externos envían callbacks a Matcher para actualizar el estado de una excepción después de procesarla. El endpoint de callback acepta actualizaciones de estado, notas de resolución y cambios de responsable desde cualquier sistema externo.

Procesar un callback

El header X-Callback-Token autentica el endpoint de callback. Un JWT de operador no lo autentica. El header lleva un token opaco de la superficie de credenciales de callback. Cada campo de abajo es obligatorio. dueAt y updatedAt aceptan null, y payload puede ser un objeto vacío:
cURL
El campo externalSystem identifica el sistema externo que procesó la excepción. Los valores comunes incluyen "JIRA", "SERVICENOW" o "WEBHOOK", pero los callbacks pueden informar cualquier identificador de sistema. Omitir cualquiera de los nueve campos obligatorios devuelve un 422.

Respuesta

Referencia de API: Procesar callback
Cuando Matcher procesa un callback, actualiza el estado de la excepción y registra la resolución en el registro de auditoría. Usa el header X-Idempotency-Key para evitar el procesamiento duplicado.

Reintento automático para callbacks fallidos

Si un callback anterior con la misma clave de idempotencia falló durante el procesamiento, Matcher intenta de forma automática readquirir el lock de idempotencia y reprocesar el callback. Esto significa que no necesitas generar una nueva clave de idempotencia cuando reintentas un callback fallido. Reenvía la misma solicitud y Matcher se encarga de la recuperación. El comportamiento de reintento se aplica solo a los callbacks con un estado interno failed. Matcher sigue deduplicando los callbacks que se completaron con éxito.

Credenciales de callback


Un Bearer token opaco autentica los callbacks entrantes. El sistema externo envía este token en el header X-Callback-Token. Emites, listas, rotas y revocas estas credenciales de callback a través de una superficie CRUD dedicada bajo /v1/exceptions/callbacks/credentials. Cada credencial pertenece al tenant de quien llama. Matcher almacena solo el hash SHA-256 del token del lado del servidor. Las respuestas de emisión y de rotación devuelven el token en bruto exactamente una vez.

Emitir una credencial

El cuerpo de la solicitud es opcional. Proporciona externalSystem como una etiqueta legible por el operador para el sistema que este token autentica.
cURL
La respuesta 201 (CredentialSecretResponse) devuelve:
Solo las respuestas de emisión y de rotación muestran el token en bruto. Guárdalo de forma segura al recibirlo. No puedes recuperarlo otra vez. Si pierdes o filtras el token, rota o revoca la credencial.

Rotar una credencial

cURL
La rotación devuelve un nuevo CredentialSecretResponse (un nuevo token en bruto) y revoca la credencial anterior de forma atómica, así los llamadores externos no sufren ninguna interrupción cuando cambias el token.

Revocar una credencial

cURL
La revocación es terminal: la credencial ya no puede autenticar callbacks entrantes.

Seguridad de los webhooks


Verificación de firma

Cuando configuras un secreto compartido de webhook, Matcher firma cada entrega con un HMAC-SHA256 sobre el cuerpo bruto de la solicitud. Matcher envía la firma en el header X-Signature-256, con el formato sha256=<hex-digest>:
Cada entrega también lleva un header X-Idempotency-Key, así los receptores pueden deduplicar los reintentos. Proceso de verificación:
  1. Calcula el HMAC-SHA256 del cuerpo bruto de la solicitud con el secreto compartido del webhook
  2. Antepón sha256= al digest hexadecimal
  3. Compara (en tiempo constante) con el header X-Signature-256
Ejemplo (Node.js):
Ejemplo (Python):

Postura de red

Matcher se despliega en tu propia infraestructura, así que las entregas de webhook salen por el egress de tu despliegue. No existe un rango de IP fijo de Lerian para agregar a una lista de permitidos. Sirve los endpoints de webhook sobre 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 de forma explícita (solo en desarrollo).

Lógica de reintentos


Matcher reintenta las entregas de webhook fallidas con backoff exponencial.

Política de reintentos predeterminada

De forma predeterminada, Matcher reintenta una entrega fallida hasta 3 veces. Los retrasos siguen un backoff exponencial desde una base de 1 segundo, con jitter para distribuir los reintentos. El espaciado exacto varía de un intento a otro en lugar de seguir una escalera fija.

Condiciones de reintento

Hay reintentos para:
  • Respuestas HTTP 429
  • Respuestas HTTP 5xx
  • Errores de transporte (fallas de conexión, timeouts)
Sin reintento para:
  • Otras respuestas HTTP 4xx

Mejores prácticas


Verifica siempre la firma HMAC antes de procesar los payloads de webhook. Esto evita solicitudes falsificadas.
Devuelve una respuesta 2xx en menos de 5 segundos. Procesa el evento de forma asíncrona si hace falta.
Las entregas pueden llegar más de una vez. Deduplica por el header X-Idempotency-Key o por el eventId del payload.
Configura alertas para las tasas de falla de webhooks. Investiga pronto las fallas persistentes.

Próximos pasos


Enrutamiento de excepciones

Configura cómo las excepciones disparan eventos de webhook.

Fuentes externas

Configura fuentes de datos que pueden enviar datos por webhooks.