Estructura del Ledger
- Ledger > Organization: Cada Organización puede tener varios Ledgers, pero cada Ledger pertenece a una sola Organización.
- Usa varios Ledgers solo cuando necesites separar datos u operaciones, por ejemplo, operaciones de tesorería interna frente a cuentas de clientes.
Cómo orquestar transacciones entre Ledgers
Para mover fondos entre dos Ledgers, crea un workflow orquestado. El workflow divide la transferencia en dos transacciones separadas:- Débito desde el Ledger de origen: Transfiere el monto de una cuenta en Ledger 1 a una Cuenta externa. Esta cuenta conecta los dos Ledgers y siempre pertenece a un Activo.
- Crédito al Ledger de destino: Crea una segunda transacción. Mueve el mismo monto desde la Cuenta externa a la cuenta de destino en Ledger 2.
Puedes usar Flowker para automatizar esta orquestación. Flowker puede agregar validaciones, condiciones y lógica de rollback si las necesitas.
Características clave
- Todas las Cuentas y Transacciones existen dentro de un Ledger.
- Cada Ledger mantiene un conjunto equilibrado de Cuentas.
- Puedes usar varios Ledgers para la segmentación, pero las transacciones entre ledgers necesitan un manejo explícito.
Varios Ledgers
Midaz permite crear varios Ledgers para cada organización. Por ejemplo, una empresa puede separar los registros financieros por país, departamento o función de negocio.
Ejemplo de caso de uso
Considera una empresa global con operaciones en varias regiones:- Ledger 1: Negocio en EE. UU.
- Ledger 2: Negocio en la UE
- Ledger 3: Negocio en APAC
Cuándo crear un nuevo Ledger
Un Ledger es un límite estricto, no solo una etiqueta. Las Cuentas en Ledgers distintos no pueden transaccionar directamente. Debes orquestar todo movimiento entre Ledgers a través de una Cuenta externa (consulta Cómo orquestar transacciones entre Ledgers). Este costo determina la decisión. Crea un nuevo Ledger solo cuando los segmentos rara vez mueven dinero entre sí. Usa esta heurística para elegir el nivel de separación adecuado:
Si dos conjuntos de saldos transaccionan con frecuencia entre sí, mantenlos en el mismo Ledger. Sepáralos con Portafolios o Cuentas. Divide en varios Ledgers solo cuando el aislamiento valga el costo adicional de la orquestación.
Personalizar Ledgers
En Midaz, puedes adaptar la configuración de cada Ledger a tus necesidades. Los Activos pertenecen al ámbito de un Ledger, por lo que el mismo código es un registro independiente en cada Ledger, con su propio nombre, tipo, estado y metadatos. Ejemplo Para representar Bitcoin (BTC) en distintos Ledgers, crea el activo BTC de forma independiente en cada Ledger y define el nombre, el estado y los metadatos que necesite cada Ledger.
Los montos en Midaz son decimales de precisión arbitraria. No existe una configuración de decimales por activo ni por Ledger. No configuras una escala cuando creas un activo.
Beneficios de usar Ledgers en Midaz
- Organización clara: Mantén registros financieros claros y diferenciados para cada parte de tu negocio.
- Configuraciones personalizadas: Ajusta la configuración de activos, monedas u otros parámetros por Ledger según necesidades locales o departamentales.
- Escalabilidad: Agrega o cambia Ledgers a medida que tu organización crece o se diversifica.
- Transparencia: Obtén una vista completa de todas las actividades financieras. Cada Ledger se suma a una sola imagen operativa.
Configuración del Ledger
Cada Ledger tiene configuraciones ajustables que controlan cómo valida las transacciones. Por ejemplo, puedes exigir que cada transacción siga una ruta predefinida. También puedes exigir que los tipos de cuenta coincidan con tus reglas de negocio. El Ledger entonces rechaza los movimientos inválidos antes de registrarlos. Puedes cambiar estas configuraciones en cualquier momento a través de la API. No necesitas reiniciar el servicio ni cambiar código.
Configuraciones disponibles
Cómo las configuraciones afectan las transacciones
Cuando habilitasvalidateRoutes para un Ledger:
- Cada transacción a ese Ledger debe hacer referencia a una ruta de transacción válida.
- El Ledger valida cada operación contra las reglas de la ruta de operación correspondiente.
- El Ledger rechaza cualquier transacción no conforme antes de registrar el movimiento.
validateAccountType:
- El Ledger verifica cada cuenta nueva contra sus tipos de cuenta registrados.
- Si el tipo de cuenta no está registrado, el Ledger rechaza la creación de la cuenta.
Administrar configuraciones mediante la API
Usa los endpoints de Ledger Settings para consultar y actualizar estas configuraciones:- Consultar la configuración del Ledger: consulta la configuración actual de un Ledger.
- Actualizar la configuración del Ledger: cambia una o más configuraciones con una actualización parcial (combinación profunda).
Las actualizaciones de configuración surten efecto de inmediato. Midaz aplica los cambios con una combinación profunda y modifica solo los campos que incluyes en la solicitud.
Administrar Ledgers
Puedes administrar tus Ledgers a través de la API o de Lerian Console.
Consultar mediante la API
- Listar Ledgers - Consulta los detalles de todos los Ledgers.
- Consultar un Ledger - Obtén los detalles de un Ledger específico.
- Crear un Ledger - Registra un nuevo Ledger.
- Actualizar un Ledger - Edita los detalles de un Ledger existente.
- Eliminar un Ledger - Marca un Ledger como eliminado.
Cuando eliminas un Ledger, Midaz no lo elimina de forma permanente.En su lugar, Midaz define una marca de tiempo
deletedAt. Luego, Midaz excluye el Ledger de cada lectura, y ya no puedes usarlo. Su status.code no cambia. Esto conserva los datos históricos para los registros de auditoría.
