Saltar al contenido principal
Matcher permite conciliar transacciones en diferentes monedas convirtiendo los montos a una moneda base común antes de la comparación. Esto habilita la coincidencia entre transacciones internacionales, operaciones de tesorería y conciliaciones multi-entidad.

Descripción general


La coincidencia multi-moneda convierte ambos montos de transacción a una moneda base usando la tasa FX apropiada, luego aplica las reglas de coincidencia estándar. Si los montos convertidos están dentro de la tolerancia, Matcher crea una coincidencia. De lo contrario, crea una excepción para revisión.
Flujo de coincidencia multi-moneda.

Cómo funciona


El soporte multi-moneda está integrado en los tipos de contexto existentes (1:1, 1:N, N:M) y en las reglas de coincidencia — no existe un tipo de contexto “multi-moneda” separado. Cuando las transacciones tienen monedas diferentes, Matcher usa los campos amountBase y currencyBase en cada transacción para comparar montos convertidos. Hay dos formas en que estos campos base se completan:
  • En el momento de la ingesta — el monto base y la moneda base se proporcionan aguas arriba cuando se ingiere la transacción. Los valores del momento de la ingesta siempre tienen prioridad.
  • En el momento de la coincidencia — cuando una transacción no tiene un monto base del momento de la ingesta, Matcher deriva uno a partir de pistas FX por transacción incluidas en la metadata de la propia transacción (consulta FX desde la metadata de la transacción más abajo).
No existe ningún proveedor FX externo ni servicio de consulta de tasas: la tasa siempre proviene de la propia fila de la transacción.

Componentes clave

ComponenteUbicaciónPropósito
amountBase / currencyBaseCampos de transacciónMontos pre-convertidos para comparación
matchBaseAmount / matchBaseCurrencyConfiguración de reglaIndica a la regla que compare montos base en lugar de originales
fx_rate, fx_base_currency, fx_notional_exprMetadata de transacciónPistas FX por transacción usadas para derivar el monto base en el momento de la coincidencia

Configurando reglas para multi-moneda


Habilita la comparación multi-moneda configurando matchBaseAmount y matchBaseCurrency como true en la configuración de la regla.

Regla Exact con coincidencia de monto base

cURL
Cuando matchBaseAmount es true, la regla compara los campos amountBase en lugar de amount. Cuando matchBaseCurrency es true, compara currencyBase en lugar de currency.

Regla Tolerance con coincidencia de monto base

cURL

Puntuación de confianza

Los campos matchScore y matchBaseScore se aceptan y validan en la configuración de la regla, pero no influyen en la puntuación de confianza calculada. El motor de puntuación siempre usa los pesos internos fijos de cada componente (DefaultConfidenceWeights: monto 40, moneda 30, fecha 20, referencia 10) para producir una puntuación de 0 a 100. Valores como matchScore: 100 o matchBaseScore: 90 no se aplican directamente como el resultado de la coincidencia. Estos campos están actualmente reservados para uso futuro (se conservan por paridad entre configuraciones de regla y para métricas); establecerlos no tiene efecto sobre cómo se puntúa o se confirma automáticamente una coincidencia hoy.
No dependas de matchScore / matchBaseScore para controlar la confianza. Ya sea que una regla coincida por montos originales o base, la puntuación de confianza se calcula a partir de los mismos pesos de componente 40/30/20/10. Para reflejar la incertidumbre FX, ajusta la regla de coincidencia en sí (por ejemplo, usa una regla TOLERANCE o ajusta los requisitos de fecha/referencia) en lugar de estos campos de puntuación.
Para el modelo de puntuación completo, consulta Puntuación de confianza.

FX desde la metadata de la transacción


Cuando una transacción llega sin un monto base del momento de la ingesta, Matcher aún puede convertirla en el momento de la coincidencia usando pistas FX incluidas en la metadata de esa transacción. Matcher no llama a ningún proveedor de tasas externo — la tasa viaja con la fila. La conversión solo se ejecuta cuando fx_base_currency está presente, y nunca sobrescribe un monto base del momento de la ingesta (la ingesta siempre gana). El amount y la currency originales nunca se modifican — la conversión cambia únicamente la comparación.

Campos de metadata

Campo de metadataRequeridoPropósito
fx_base_currencySí (para activar)La moneda base a la que se convierte el monto. Se convierte en currencyBase.
fx_rateSí, a menos que se defina fx_notional_exprTasa multiplicativa. amountBase = amount * fx_rate.
fx_notional_exprNoExpresión evaluada contra la metadata de la transacción para derivar directamente el notional base. Cuando está presente, tiene prioridad sobre fx_rate.
fx_rate_sourceNoEtiqueta opcional que identifica de dónde provino la tasa, conservada para validación y auditoría. Por defecto es metadata.

Ejemplo de transacción con metadata FX

Con la metadata anterior, Matcher deriva amountBase = 1000.00 * 1.085 = 1085.00 y currencyBase = USD, luego compara contra el otro lado usando las configuraciones matchBaseAmount / matchBaseCurrency de la regla.
Si una transacción ya lleva un monto base del momento de la ingesta, estas pistas de metadata se ignoran. Si las pistas faltan o están mal formadas (tasa no parseable, expresión fallida), la transacción simplemente no participa en la coincidencia por monto base — la ejecución no se aborta.

Campos de la transacción


Para la coincidencia multi-moneda, las transacciones deben incluir tanto los campos de moneda original como base:
CampoTipoDescripción
amountDecimalMonto original de la transacción
currencyStringCódigo de moneda ISO 4217 original
amountBaseDecimalMonto convertido a la moneda base
currencyBaseStringCódigo ISO 4217 de la moneda base

Ejemplo de transacción

Ejemplo: conciliación cross-currency


Origen (cuenta EUR):
IDMontoMonto base
txn_0011,000.00 EUR1,085.00 USD
Destino (cuenta USD):
IDMontoMonto base
txn_0021,095.00 USD1,095.00 USD
Con una regla TOLERANCE (matchBaseAmount: true, percentTolerance: 0.02):
  • Montos base: 1,085.00vs1,085.00 vs 1,095.00
  • Variación: $10.00 (0.92%)
  • Tolerancia: 2%
  • Resultado: Coincidencia (0.92% < 2%)

Mejores prácticas


Completa los campos amountBase y currencyBase durante la carga de archivos o la ingesta. Esto evita consultas FX en tiempo de ejecución y asegura resultados reproducibles.
matchBaseScore y matchScore son campos reservados y no cambian la puntuación de confianza calculada — el motor siempre usa los pesos fijos 40/30/20/10. Para marcar las coincidencias convertidas por FX para revisión, diseña la regla en sí (por ejemplo, tolerancias más ajustadas o comprobaciones de referencia/fecha requeridas) en lugar de depender de estos campos de puntuación.
Las conversiones FX introducen pequeñas variaciones. Usa reglas TOLERANCE con matchBaseAmount para permitir diferencias de redondeo y de timing de tasas.
Usa una moneda base consistente en todos los contextos. USD es común para operaciones internacionales; usa tu moneda de reporte para operaciones domésticas + internacionales.

Próximos pasos


Confidence Scoring

Cómo funcionan las puntuaciones de coincidencia y qué umbrales aplican.

Match Rules

Referencia completa de tipos de reglas y campos de configuración.