Conceptos clave
Antes de profundizar en el proceso paso a paso, es importante entender cómo Midaz estructura los datos para informes regulatorios:
OperationRoute y el campo code
La entidad OperationRoute es central para el mapeo COSIF. Cada OperationRoute tiene un campo code (máximo 100 caracteres) diseñado específicamente para almacenar códigos de referencia externos como códigos de cuentas COSIF. Cuando se procesan las transacciones, cada operación se asocia con un OperationRoute. Al agregar operaciones agrupadas por OperationRoute.code, puedes calcular saldos por cuenta COSIF, que es exactamente lo que requiere un balance de comprobación.TransactionRoute
Un TransactionRoute agrupa múltiples OperationRoutes (orígenes y destinos) en una plantilla reutilizable. Al crear transacciones, haces referencia a un TransactionRoute, y Midaz valida que las operaciones sigan las reglas definidas.Proceso paso a paso
1. Prepara tu plan de cuentas en Midaz
Configura tus Organizations, Ledgers, Assets, Account Types y Accounts según las necesidades de tu negocio. Las entidades clave para la generación del balance de comprobación son:- Account Types — definen la naturaleza de cada cuenta (activo, pasivo, patrimonio, ingresos, gastos) usando el campo keyValue.
- OperationRoutes — mapean cada tipo de operación a un código COSIF a través del campo code.
- TransactionRoutes — agrupan OperationRoutes en plantillas de transacción con reglas de validación.
2. Crea OperationRoutes con códigos COSIF
Para cada cuenta COSIF en tu plan de cuentas, crea los OperationRoutes correspondientes con el código COSIF en el campo code. Ejemplo de OperationRoutes para una institución financiera brasileña: OperationRoute para débitos de cuenta corriente (origen):| Código COSIF | Descripción | Account Types |
|---|---|---|
| 1.1.1.10-8 | Cuentas Corrientes - Personas Físicas | checking_account_pf |
| 1.1.1.20-5 | Cuentas Corrientes - Empresas | checking_account_pj |
| 1.2.3.00-0 | Cuentas de Inversión | investment_account |
| 7.1.1.00-0 | Ingresos por Servicios | revenue_services |
| 8.1.1.00-0 | Gastos Administrativos | expense_admin |
3. Crea TransactionRoutes
Agrupa tus OperationRoutes en TransactionRoutes que representen patrones de transacción comunes.Al crear un TransactionRoute, pasas un array de UUIDs de OperationRoute. Al recuperar un TransactionRoute a través de la API, devuelve los objetos OperationRoute completos con todos sus detalles.
4. Procesa transacciones con rutas
Al crear transacciones, haz referencia al TransactionRoute. Cada operación se asociará con su OperationRoute y código COSIF correspondiente:El
asset y value se definen a nivel de send. Las operaciones individuales en from y to usan accountAlias (no account). El valor se expresa en la unidad más pequeña del activo (por ejemplo, centavos para BRL, entonces 4550 = R$ 45.50).5. Entendiendo el flujo de datos
Midaz almacena todos los datos financieros necesarios para la generación del balance de comprobación:- Operations — cada operación incluye un campo
routeque contiene el UUID del OperationRoute - OperationRoutes — contienen el campo
codecon códigos COSIF para agregación - Account Balances — posiciones actuales por cuenta
route que referencia el UUID del OperationRoute (no el código COSIF directamente). Para agregar por código COSIF, Reporter une las operaciones con sus OperationRoutes correspondientes para acceder al campo code:
cursor, limit y type. Las operaciones se recuperan por cuenta.
Reporter se conecta directamente a la base de datos de Midaz para la generación de informes, permitiendo consultas y agregaciones por lotes eficientes. Las APIs anteriores están disponibles para integraciones personalizadas y consultas ad-hoc.
6. Genera tu informe con Reporter
Reporter utiliza una arquitectura basada en plantillas para generar informes. El proceso implica:- Seleccionar o crear una plantilla — las plantillas usan sintaxis Pongo2 (similar a Django) con tags de agregación personalizados
- Configurar fuentes de datos — Reporter consulta las tablas de la base de datos de Midaz directamente
- Aplicar filtros — especificar rangos de fechas, tipos de cuenta u otros criterios
- Generar el informe — Reporter agrega los datos y renderiza la plantilla
- Exportar en el formato elegido (XML, TXT, HTML, PDF, CSV, JSON)
{% sum_by collection by "field" %}— suma valores por campo{% count_by collection if condition %}— cuenta registros que coinciden con la condición{% calc expression %}— cálculos aritméticos
7. Exportar e integrar
Puedes:- Exportar un PDF listo para compartir para auditores y reguladores
- Generar archivos XML formateados para envío a BACEN
- Integrar con tus flujos de trabajo de informes o sistemas contables existentes
Ejemplo práctico — Configuración completa de Midaz
A continuación se muestra una institución ficticia, DigitalBank, mostrando cómo las entidades de Midaz se conectan para soportar un balance de comprobación:
Organization
Organization
Assets
Assets
Account Types
Account Types
Los códigos COSIF se definen en OperationRoutes a través del campo
code, no en Account Types. Los Account Types definen la naturaleza de las cuentas y son usados por OperationRoutes para reglas de validación.OperationRoutes con códigos COSIF
OperationRoutes con códigos COSIF
TransactionRoute para PIX
TransactionRoute para PIX
Transacción de ejemplo
Transacción de ejemplo
Ejemplo de salida del balance de comprobación
Después de unir las operaciones con sus OperationRoutes y agregar por el campo
code, tu balance de comprobación se vería así:
| Código COSIF | Descripción | Débitos (R$) | Créditos (R$) | Saldo (R$) |
|---|---|---|---|---|
| 1.1.1.10-8 | Cuenta Corriente - PF | 150,000.00 | 145,000.00 | 5,000.00 |
| 1.1.1.20-5 | Cuenta Corriente - PJ | 89,000.00 | 92,500.00 | -3,500.00 |
| 1.2.3.00-0 | Inversiones | 50,000.00 | 48,000.00 | 2,000.00 |
| Total | 289,000.00 | 285,500.00 | 3,500.00 |
- XML — estructurado para envío regulatorio a BACEN
- PDF — informe profesional para auditores y partes interesadas
- TXT — archivo plano para integración con sistemas legacy
Resumen
La clave para generar balances de comprobación precisos con Midaz es el uso adecuado del campo
code en OperationRoutes:
- Crear OperationRoutes con códigos COSIF en el campo
code - Agrupar en TransactionRoutes para validación de transacciones
- Procesar transacciones referenciando las rutas apropiadas
- Unir operaciones con OperationRoutes usando el campo
route(UUID) para acceder a los códigos COSIF - Agregar por OperationRoute.code para calcular saldos por cuenta COSIF
- Generar informes con Reporter usando plantillas que realizan la agregación automáticamente
- Cumplimiento regulatorio con estándares COSIF
- Agregación automática de saldos por código de cuenta
- Validación de operaciones de transacción
- Informes flexibles en múltiples formatos

