Saltar al contenido principal
La conciliación del mundo real a menudo involucra transacciones que no coinciden 1:1. Un solo pago puede cubrir múltiples facturas, o varios depósitos pueden consolidarse en una sola entrada bancaria. Matcher maneja estos escenarios complejos a través de coincidencias divididas y agregadas.

Descripción general


La cardinalidad de la coincidencia se controla mediante el tipo de contexto. Matcher soporta tres tipos de contexto:
No existe un tipo de contexto N:1 separado. La coincidencia agregada (muchos orígenes a un destino) es simplemente el tipo de contexto 1:N aplicado en la dirección de agregación: el mismo tipo de contexto cubre tanto la división como la agregación.

Cómo funciona


El comportamiento de división y agregación se controla mediante dos mecanismos:
  1. Tipo de contexto — determina la cardinalidad de la coincidencia (1:1, 1:N o N:M).
  2. Flags de asignación en la regla — controlan cómo se distribuyen los montos dentro de un grupo de coincidencia.
No existe una configuración separada de “split” o “aggregate” en el contexto. El tipo de contexto define qué patrones están permitidos, y la configuración de la regla controla el comportamiento de asignación.

Mapeo de tipo de contexto

Configuraciones de asignación en reglas

Todos los tipos de regla aceptan flags de asignación en su config:

Ejemplo: regla de tolerancia con asignación

cURL
matchScore y matchBaseScore se aceptan y validan pero son reservados/inertes — no cambian la puntuación de confianza calculada. La confianza siempre se calcula a partir de los pesos de componentes internos fijos (monto 40, moneda 30, fecha 20, referencia 10). Consulta Puntuación de confianza.

Creando un contexto 1:N


Para habilitar coincidencia dividida o agregada, crea un contexto con tipo 1:N:
cURL
Referencia de API: Crear contexto

Coincidencia dividida 1:N


Una transacción de origen coincide con múltiples transacciones de destino.

Casos de uso comunes

  • Pago masivo: Una transferencia cubriendo múltiples facturas
  • Nómina: Un débito bancario para múltiples pagos de salario
  • Liquidación: Un pago de pasarela para múltiples órdenes

Ejemplo: pago masivo de facturas

Origen (Extracto bancario): Destinos (Asientos contables): Resultado: Coincidencia 1:3 con asignación completa

Coincidencia agregada (muchos a uno)


Múltiples transacciones de origen coinciden con una transacción de destino. Esta es la dirección de agregación del tipo de contexto 1:N: no es un tipo N:1 separado.

Casos de uso comunes

  • Depósitos bancarios: Múltiples cheques depositados como un crédito
  • Liquidaciones de tarjeta: Lote diario de transacciones como un depósito
  • Consolidación de efectivo: Múltiples recibos de caja a un depósito

Ejemplo: depósito consolidado

Orígenes (Punto de venta): Destino (Extracto bancario): Resultado: Coincidencia 3:1 con asignación completa

Coincidencia N:M muchos a muchos


Múltiples transacciones de origen coinciden con múltiples transacciones de destino. Este es el patrón más complejo.

Casos de uso comunes

  • Compensación intercompañía: Múltiples facturas compensadas contra múltiples pagos
  • Liquidaciones comerciales: Compensación compleja con llenados parciales
  • Reconocimiento de ingresos: Múltiples entregas contra múltiples anticipos

Ejemplo: compensación intercompañía

Orígenes (Cuentas por pagar Empresa A): Destinos (Cuentas por cobrar Empresa A): Resultado: Coincidencia 2:2, $18,000 total coincidido Para habilitar coincidencia N:M, crea un contexto con tipo N:M:
cURL

Ejecutando y revisando coincidencias


Después de configurar el contexto y las reglas, inicia una ejecución de coincidencia y revisa los grupos resultantes.

Ejecutar coincidencia

cURL

Ver historial de ejecuciones

cURL

Ver los grupos de coincidencia de una ejecución

El parámetro de consulta contextId es obligatorio. La respuesta es una lista paginada por cursor de grupos de coincidencia, cada uno con sus transacciones coincididas (en todas las cardinalidades) y sus puntajes de confianza.
cURL

Deshacer (desemparejar) un grupo de coincidencia

Para revertir un grupo incorrecto, deshaz el emparejamiento. Esto rechaza el grupo con un motivo y revierte todas sus transacciones a UNMATCHED. El parámetro de consulta contextId es obligatorio, y se envía un reason en el cuerpo.
cURL

Algoritmo de coincidencia


Para escenarios N:M, Matcher usa asignación secuencial determinista para emparejar transacciones.

Cómo funciona

  1. Ordenar: Las transacciones se ordenan de forma determinista para asegurar resultados reproducibles entre ejecuciones.
  2. Iterar: El motor recorre los candidatos en orden de prioridad.
  3. Asignar: Los montos se distribuyen según la configuración de allocationDirection (LEFT_TO_RIGHT o RIGHT_TO_LEFT).
  4. Rastrear residuos: Cualquier monto no asignado restante se rastrea. Si allowPartial es true, se crean coincidencias parciales; de lo contrario, las transacciones no asignadas se convierten en excepciones.

Mejores prácticas


La coincidencia muchos a muchos es compleja. Comienza con patrones más simples y habilita N:M solo cuando sea necesario.
Las pequeñas diferencias de redondeo son comunes en pagos divididos. Configura allocationToleranceValue en unos pocos centavos para evitar excepciones falsas.
Solo configura allowPartial como true cuando se esperan coincidencias parciales. Esto previene coincidencias falsas de datos incompletos.
Siempre prueba la coincidencia dividida y agregada en modo DRY_RUN primero para verificar los resultados de asignación.
Rastrea los montos residuales a lo largo del tiempo. Los residuos crecientes pueden indicar problemas sistemáticos de coincidencia.

Próximos pasos


Reglas de coincidencia

Configura reglas y configuraciones de asignación.

Seguridad

Seguridad y control de acceso.