Cada saldo como su propia cuenta
Para los equipos de producto y operaciones, cada saldo se convierte en su propia cuenta. El Ledger aplica entonces reglas de segregación, como una salida bloqueada o un gasto exclusivo de beneficios. La regla vive en el Ledger, no en la lógica de la aplicación. Cada cuenta lleva su propio extracto y su propio rastro de conciliación. Para los equipos de ingeniería, cada dirección externa se resuelve a una cuenta específica antes de que Midaz registre una transacción. Los números de core banking y los identificadores de rieles de pago apuntan cada uno a un solo saldo. Nunca tienes que adivinar a qué saldo pertenece un evento entrante. No existe un almacén de saldos separado que mantener sincronizado con el Ledger.
La arquitectura de referencia
El modelo es un propietario, N cuentas, N identificadores externos:
- Un propietario: el cliente, identificado por un documento (CPF, CNPJ, identificación fiscal). El propietario representa quién mantiene la relación. No lleva saldo ni decide el enrutamiento de las transacciones.
- N cuentas: cada cuenta es una posición contable autónoma, con su propio saldo, ledger, extracto y reglas.
- N identificadores externos: las direcciones que otros sistemas (una plataforma de core banking, un riel de pago) usan para llegar a una cuenta específica. Cada identificador se resuelve exactamente a una cuenta.
Arquitectura de referencia: un cliente, muchas cuentas.
Cuando el saldo, el ledger, el extracto o la regla operativa difieren según el destino, dirige cada identificador a una cuenta distinta. No trates un identificador externo como un apodo para un saldo compartido.
Cómo Midaz mapea el modelo
Cada parte de esta arquitectura se mapea a una entidad nativa de Midaz. No necesitas construir un almacén de saldos separado ni inventar una capa contable.
Requisitos previos
Este ejemplo asume un entorno de Midaz en ejecución con lo siguiente ya configurado:
Construir tres cuentas para un mismo cliente
El cliente con el documento
12345678900 necesita tres cuentas. La cuenta principal está libre para movimientos ordinarios. La cuenta de beneficio sigue las reglas del producto. La cuenta bloqueada acepta entradas pero restringe las salidas.
1
Habilitar la validación de tipo de cuenta
Activa la validación para que las cuentas nuevas deban declarar un tipo registrado.La configuración surte efecto de inmediato. No necesitas volver a desplegar.
2
Registrar los tipos de cuenta
Crea un Tipo de cuenta por cada naturaleza de saldo. El Repite para
keyValue es lo que debe coincidir con el campo type de cada cuenta.benefit_account (movimiento bajo las reglas del producto) y restricted_account. El restricted_account es la cuenta bloqueada. El tipo por sí solo no restringe nada. Con la validación de rutas activa, las rutas de transacción pueden condicionar sus salidas. Para bloquearlas, define allowSending como false en su saldo.3
Registrar al cliente como Holder
Crea un Holder para el cliente. El mismo Holder es propietario de las tres cuentas y mantiene la identidad en un solo lugar.Guarda el
En Midaz v4, CRM es parte del binario del ledger, así que no necesita un servicio ni un puerto separados. El ID de la organización viaja en la ruta de la URL. Consulta Primeros pasos con CRM para ver el esquema completo.
id que se devuelve. Es el holderId de los siguientes pasos.4
Crear las tres cuentas
Cada cuenta se vincula al activo Crea la cuenta de beneficio con
BRL y declara su type. Lleva un alias (su dirección dentro del Ledger) y un entityId (su identificador en tu sistema externo). El holderId hace que el Holder sea el propietario de la cuenta. No puedes cambiar el propietario después.alias @cust_12345678900_benefit, entityId 0001/88888-2, y type benefit_account. Crea la cuenta bloqueada con alias @cust_12345678900_blocked, entityId 0002/77777-0, y type restricted_account. Usa el mismo holderId para ambas.5
Vincular cada cuenta con el Holder
Crea un Instrument por cada cuenta del ledger para adjuntar el contexto bancario y regulatorio. El Instrument permanece dentro del binario unificado del Ledger, mientras mantiene los detalles de cara al cliente fuera del modelo transaccional de cuentas y saldos.El
entityId (0001/12345-1) de la cuenta principal se descompone en el branch (0001) y el account (12345) que registras aquí. Esa dirección externa ahora se resuelve a una cuenta específica. Repite para las cuentas de beneficio y bloqueada, y apunta accountId a cada una.El límite de la transacción
Cuando llega un evento externo, la resolución ocurre antes de la llamada a Midaz. Cada capa se mantiene en su función, y eso preserva la claridad contable.
1
Evento externo
Llega una transacción, una consulta o una liquidación con un identificador externo.
2
El middleware resuelve el identificador
El middleware busca el identificador externo y lo resuelve al alias de cuenta correcto de Midaz. También aplica la validación de estado (activa, bloqueada, cerrada).
3
Midaz registra en la cuenta correcta
Midaz registra el asiento contra la cuenta resuelta y conserva el saldo y el ledger. El extracto y la conciliación se mantienen separados por cuenta.
Resultados de muchas cuentas por cliente
- Segregación real: cada saldo tiene su propio ledger y extracto. No puedes gastar por accidente un saldo bloqueado a través de la cuenta principal.
- Enrutamiento sin ambigüedad: cada evento externo tiene una única cuenta de destino, bien definida.
- Identidad centralizada: un Holder es propietario de muchas cuentas. Los datos de identidad y contacto viven en un solo lugar, mientras que los saldos se mantienen separados.
- Nativo: las cuentas, los tipos, los alias y el
entityIdson primitivas de la plataforma, así que no hay un almacén de saldos paralelo que conciliar contra el Ledger.
Qué necesitas para empezar
Próximos pasos
Cuentas
La unidad financiera principal: alias,
entityId y cuentas externas.Tipos de cuenta
Clasifica las cuentas y aplica su naturaleza con la validación de rutas.
Portafolios
Agrupa las cuentas de un cliente para ver la relación total.
CRM: Holders e Instruments
Centraliza la identidad y adjunta el contexto bancario y regulatorio.

