Skip to main content
El manejo de tarifas en Matcher se divide en dos entidades que trabajan juntas:
  • Un fee schedule define cuánto calcular de tarifa — la moneda, el redondeo y uno o más fee items (fijo, porcentaje, escalonado o basado en expresión).
  • Una fee rule decide cuándo se aplica un fee schedule. Pertenece a un contexto de conciliación, apunta a un lado de coincidencia y lleva predicados que los metadatos de una transacción deben satisfacer. Cuando los predicados coinciden, la regla selecciona su fee schedule.
Cuando la normalización de tarifas está habilitada y las monedas de la transacción y el schedule coinciden, modelar las tarifas esperadas de esta forma permite que Matcher tenga en cuenta cargos predecibles antes de comparar transacciones.

Qué resuelve el manejo de tarifas


La conciliación falla cuando un lado de una transacción incluye tarifas o cargos que el otro lado no registra. Un gateway de pagos deduce una comisión de procesamiento antes de liquidar. Un banco cobra una comisión por transferencia bancaria. Un adquirente descuenta comisiones de los pagos. Sin tarifas modeladas, Matcher trata estas diferencias como discrepancias de monto y genera excepciones — incluso cuando la diferencia es esperada y documentada. Los fee schedules describen el cargo, y las fee rules seleccionan cuándo usarlo durante la normalización de tarifas habilitada.

Cómo encajan las reglas y los schedules


Una fee rule no contiene el monto de la tarifa ni el cálculo en sí. Referencia un fee schedule por ID y lo aplica a las transacciones que seleccionan sus predicados.
  1. Un fee schedule se crea una vez a nivel de tenant y puede ser reutilizado por muchas reglas en muchos contextos.
  2. Una fee rule se crea dentro de un contexto. Establece un side, un feeScheduleId, una priority y una lista de predicates.
  3. Cuando Matcher procesa un contexto con la normalización de tarifas habilitada, evalúa las fee rules del lado relevante en orden de priority (primero el más bajo). La primera regla que coincide selecciona el schedule referenciado.
Esta separación significa que cambias cómo se calcula una tarifa editando el schedule, y cambias cuándo se aplica editando la regla — sin tocar la otra.
Una fee rule por sí sola no cambia los montos de comparación. La evaluación de fee rules solo afecta la conciliación de tarifas cuando el contexto establece feeNormalization en NET o GROSS, el lado relevante tiene reglas y las monedas de la transacción y el schedule coinciden.

Estructura de una fee rule


Una fee rule pertenece a un contexto y tiene los siguientes campos.

Predicados

Cada predicado prueba un campo de metadatos de la transacción con un operador. Operadores disponibles: Los campos ausentes se evalúan como false para todos los operadores excepto EXISTS.

Estructura de un fee schedule


Un fee schedule es una entidad a nivel de tenant que calcula una tarifa a partir de un monto bruto.

Fee items

Cada item declara un name, una priority (orden de aplicación, relevante para CASCADING), un structureType y una structure específica del tipo.

Gestión de fee schedules


Los fee schedules tienen alcance de tenant y se gestionan de forma independiente de cualquier contexto.

Crear un fee schedule

Este schedule calcula una comisión de procesamiento del 2.9% sobre el monto bruto, denominada en BRL.
cURL

Simular un fee schedule

Antes de conectar un schedule a una regla, simúlalo contra un monto bruto para confirmar la tarifa calculada.
cURL
La respuesta devuelve el netAmount, el totalFee y un desglose por item.
Referencia de la API: Simular cálculo de tarifa
Un fee schedule no se puede eliminar mientras una fee rule o el historial de variaciones de tarifas lo referencie. La solicitud devuelve 409 Conflict con el código MTCH-0108; el problema de la API no lista los contextos que bloquean la eliminación. Elimina o reapunta primero las referencias de reglas actuales. Las referencias del historial de variaciones continúan bloqueando la eliminación.

Gestión de fee rules


Las fee rules se crean dentro de un contexto y referencian un fee schedule.

Crear una fee rule

Esta regla aplica el fee schedule creado arriba a las transacciones del lado derecho cuyos metadatos institution sean iguales a Banco do Brasil.
cURL

Flujo de extremo a extremo


Poniéndolo todo junto, el manejo de tarifas esperadas sigue tres pasos:
1

Crea el fee schedule

Define cómo se calcula la tarifa una vez a nivel de tenant con POST /v1/fee-schedules. Opcionalmente valídalo con el endpoint de simulación. Anota el id devuelto.
2

Crea la fee rule en el contexto

Dentro del contexto de conciliación, crea una fee rule con POST /v1/contexts/{contextId}/fee-rules. Establece feeScheduleId al id del schedule, elige el side, define una priority única y agrega los predicates que seleccionan las transacciones a las que se aplica la tarifa.
3

Aplica durante la coincidencia

Establece feeNormalization del contexto en NET o GROSS. Durante la coincidencia, Matcher evalúa las reglas de cada lado relevante en orden de priority. Una regla coincidente solo cambia el monto de comparación cuando su schedule y la transacción usan la misma moneda.

Mejores prácticas


Un fee schedule tiene alcance de tenant y puede ser referenciado por muchas reglas. Define un schedule una vez (ej., “Card Processing - Visa”) y apunta reglas de distintos contextos hacia él. Editar el schedule actualiza todas las reglas que lo usan.
Las prioridades son únicas dentro de un contexto y compartidas entre las reglas LEFT, RIGHT y ANY. Ordénalas de la más específica a la más general para que una regla estrecha gane antes que un respaldo amplio.
Los predicados se unen con AND y se prueban contra los metadatos de la transacción. Combina operadores (EQUALS, IN, BETWEEN, EXISTS) para apuntar exactamente a las transacciones a las que se aplica una tarifa y evitar la atribución de tarifas no deseada.
Usa POST /v1/fee-schedules/{scheduleId}/simulate para confirmar que un schedule produce la tarifa esperada para montos representativos antes de referenciarlo desde una regla.
Un schedule referenciado por una regla o por el historial de variaciones de tarifas no se puede eliminar (409 MTCH-0108). La respuesta de conflicto no lista los contextos que lo bloquean. Actualiza o elimina primero las referencias de reglas actuales; las referencias históricas de variaciones continúan bloqueando la eliminación.

Próximos pasos


Reglas de conciliación

Configura cómo se comparan las transacciones una vez que se tienen en cuenta las tarifas esperadas.

Enrutamiento de excepciones

Revisa la asignación explícita, el despacho y los callbacks de las excepciones que el manejo de tarifas no cubre.

Referencia de la API de fee schedules

Referencia completa de la API para los endpoints de fee schedules.

Referencia de la API de fee rules

Referencia completa de la API para los endpoints de fee rules.