Saltar al contenido principal
Antes de desplegar Matcher, asegúrate de que tu entorno cumpla con los requisitos descritos en esta página. Estos prerrequisitos definen la línea base para ejecutar conciliaciones de forma confiable en entornos de desarrollo y producción.

Requisitos del sistema


Infraestructura

ComponenteMínimoRecomendadoPropósito
CPU2 núcleos4+ núcleosLa lógica de conciliación y puntuación es intensiva en CPU
Memoria2 GB4+ GBProcesamiento en memoria de lotes de transacciones
Almacenamiento10 GB50+ GBAlmacenamiento persistente para transacciones y logs de auditoría

Dependencias

Matcher depende de los siguientes servicios:
  • PostgreSQL 15+: Almacén de datos principal para contextos de conciliación, transacciones, conciliaciones y logs de auditoría.
  • Redis 7+: Usado para caché, detección de duplicados, bloqueo distribuido y control de idempotencia.
  • RabbitMQ 3.12+: Broker de mensajes para procesamiento asíncrono entre contextos acotados.

Entorno de ejecución

Matcher permite los siguientes entornos de ejecución y herramientas:
  • Go 1.24+ (solo requerido al compilar desde el código fuente)
  • Docker 24+ y Docker Compose 2.20+ para despliegues containerizados
  • Kubernetes 1.28+ para despliegues de nivel de producción usando Helm

Opcional: integración con Midaz


Matcher puede integrarse opcionalmente con Midaz Ledger para consultar transacciones del libro contable directamente. Esta integración es completamente opcional—Matcher funciona como un producto independiente que concilia cualquier fuente de datos.

Cuándo usar la integración con Midaz

Usa la integración con Midaz si:
  • Estás usando Midaz como tu sistema de libro contable
  • Quieres conciliar transacciones de Midaz contra fuentes externas
  • Quieres sincronización automática de transacciones desde Midaz

Cuándo no se necesita Midaz

Matcher funciona independientemente cuando:
  • Concilias entre sistemas externos (bancos, ERPs, procesadores de pago)
  • Usas un sistema de libro contable diferente
  • Importas datos del libro contable mediante archivos CSV/JSON/XML

Requisitos de conexión

Para habilitar la integración con Midaz, asegúrate de que:
  1. Una instancia de Midaz esté ejecutándose y sea accesible desde la red de Matcher
  2. El acceso a la API esté configurado con permisos para consultar transacciones
  3. La autenticación compartida esté habilitada mediante lib-auth (mismo proveedor de identidad)

Configuración

Configura la conexión con Midaz a través de variables de entorno:
# Endpoint de la API de Midaz
MIDAZ_API_URL=https://midaz.example.com/api/v1

# Autenticación compartida (lib-auth)
AUTH_SERVICE_ADDRESS=https://auth.example.com
Consulta la guía de Integración con Midaz para instrucciones completas de configuración.

Autenticación


Matcher usa lib-auth para autenticación y autorización, consistente con el resto del ecosistema Lerian.

Flujo de autenticación

  1. El cliente obtiene un JWT del proveedor de identidad
  2. El token se envía en el encabezado Authorization: Bearer <token>
  3. Matcher valida el token mediante lib-auth
  4. La identidad del tenant y los permisos se extraen de los claims del token

Permisos requeridos

El acceso a las funcionalidades de Matcher se controla a través de permisos detallados:
PermisoDescripción
config:context:createCrear contextos de conciliación
config:context:readVer configuración de contexto
config:rule:createCrear y actualizar reglas de conciliación
ingestion:import:createSubir archivos de transacciones
matching:job:runEjecutar trabajos de conciliación
exception:item:listVer excepciones
exception:item:resolveResolver excepciones
governance:report:readAcceder a informes y vistas de auditoría

Modo de tenant único

Si la autenticación está deshabilitada o no hay identificador de tenant presente en el JWT, Matcher se ejecuta en modo de tenant único usando un tenant por defecto.
# Configuración de tenant por defecto (modo de tenant único)
DEFAULT_TENANT_ID=00000000-0000-0000-0000-000000000001
DEFAULT_TENANT_SLUG=default

Formatos de archivo soportados


Matcher acepta datos de transacciones en los siguientes formatos. Cada formato tiene requisitos estructurales específicos para una ingesta exitosa.

CSV (valores separados por comas)

Comúnmente usado para extractos bancarios y exportaciones. Requisitos:
  • Se requiere fila de encabezado
  • Codificación UTF-8
  • Delimitador de coma (configurable)
  • Campos entre comillas para valores que contengan delimitadores
Ejemplo:
transaction_id,amount,currency,date,reference
TXN-001,1000.00,USD,2024-01-15,Pago de factura
TXN-002,-250.50,USD,2024-01-16,Reembolso

JSON (notación de objetos JavaScript)

Recomendado para integraciones basadas en API. Requisitos:
  • Array JSON válido de objetos de transacción
  • Codificación UTF-8
  • Nombres de campos consistentes entre registros
Ejemplo:
[
  {
    "transaction_id": "TXN-001",
    "amount": 1000.0,
    "currency": "USD",
    "date": "2024-01-15",
    "reference": "Pago de factura"
  }
]

XML (lenguaje de marcado extensible)

Común en integraciones empresariales y bancarias. Requisitos:
  • Elemento raíz único
  • Codificación UTF-8
  • Estructura de elementos consistente
Ejemplo:
<?xml version="1.0" encoding="UTF-8"?>
<transactions>
 <transaction>
 <transaction_id>TXN-001</transaction_id>
 <amount>1000.00</amount>
 <currency>USD</currency>
 <date>2024-01-15</date>
 <reference>Pago de factura</reference>
 </transaction>
</transactions>

Límites de tamaño de archivo

LímitePor defectoConfigurable mediante
Tamaño máximo de archivo100 MBHTTP_BODY_LIMIT_BYTES
Máximo de transacciones por archivo100,000Configuración a nivel de contexto

Requisitos de red


Acceso entrante

Matcher expone una API REST que debe ser accesible por los clientes:
PuertoProtocoloPropósito
8080HTTPServidor API (por defecto)
8443HTTPSServidor API con TLS

Acceso saliente

Matcher debe poder alcanzar los siguientes servicios:
ServicioPropósitoRequerido
PostgreSQLPersistencia de datos
RedisCaché y coordinación
RabbitMQMensajería
Servicio de autenticaciónValidación de tokensSi la autenticación está habilitada
API de MidazConsultas al libro contableOpcional (solo si usas Midaz)
JIRA / ServiceNowEnrutamiento de excepcionesOpcional
Webhooks personalizadosNotificaciones de eventosOpcional

Configuración de TLS

Para entornos de producción, configura TLS:
SERVER_TLS_CERT_FILE=/path/to/cert.pem
SERVER_TLS_KEY_FILE=/path/to/key.pem

Lista de verificación del entorno


Antes de proceder con la instalación, confirma que:
  • La infraestructura está lista: PostgreSQL, Redis y RabbitMQ están ejecutándose y accesibles
  • La autenticación está configurada: El servicio de autenticación está disponible, o la autenticación está explícitamente deshabilitada
  • El acceso de red está validado: La conectividad entrante y saliente requerida está en su lugar
  • Las credenciales están disponibles: Las credenciales de base de datos y tokens de API están configurados
  • Los datos de muestra están preparados: Los archivos de transacciones están listos para pruebas (ver Inicio rápido)

Próximos pasos