INGENIERÍA
Por qué cada saldo debe salir de un ledger de doble entrada
27 de julio de 2026 · 9 min de lectura · Coreza
Todo sistema bancario tiene una tabla que responde a la pregunta más importante del producto: ¿cuánto dinero tiene este cliente? La decisión de diseño que separa los cores fiables de los frágiles es si ese número está almacenado — una columna que alguien actualiza — o derivado — la suma de un ledger de solo inserción. Parece un detalle de implementación. Es la diferencia entre un sistema que puede demostrar sus saldos y uno que solo puede afirmarlos.
Es la decisión de arquitectura con más consecuencias de un core fintech, y resulta casi invisible en una demo. Dos productos pueden verse idénticos en pantalla mientras uno actualiza una columna de saldo in situ y el otro deriva cada saldo de un ledger de doble entrada. La diferencia aflora después: en descuadres de conciliación, en tickets de soporte que nadie sabe explicar y en las auditorías.
Qué significa doble entrada en términos de ingeniería
La contabilidad de doble entrada tiene cinco siglos, pero en un backend bancario no es un formalismo contable: es un invariante que la base de datos hace cumplir. Cada movimiento de dinero es una transacción con al menos dos apuntes: una cuenta se debita, otra se acredita, y los apuntes suman cero. El dinero nunca se crea ni se destruye con un UPDATE; solo se mueve entre cuentas, y el propio movimiento es el registro.
El saldo de un cliente es entonces una proyección: la suma de todos los apuntes del ledger que tocan esa cuenta. Cacheado por rendimiento, sí — pero siempre recalculable, y el recálculo es la verdad. Si la caché y el ledger discrepan alguna vez, gana el ledger, y la propia discrepancia es una señal de que algo hay que investigar.
El invariante de suma cero aporta una propiedad que ningún diseño de saldo almacenado puede ofrecer: el sistema entero se puede comprobar. Suma cada apunte de cada cuenta — wallets de clientes, ingresos por comisiones, cuentas de liquidación de proveedores, cuentas puente — y el total es cero. Cualquier bug, condición de carrera o fallo parcial que pierda dinero rompe esa ecuación y se vuelve detectable, normalmente el mismo día.
Cómo se desvían los saldos almacenados
El modo de fallo del diseño de columna de saldo no es dramático. Es una desviación lenta producida por el tráfico normal de producción:
- Concurrencia: dos retiradas leen el mismo saldo en el mismo instante, ambas pasan la comprobación, ambas escriben. Sin el ledger no queda registro de cuál debería haber sido el saldo.
- Reintentos y fallos parciales: un proveedor de pagos da timeout, el cliente reintenta y el abono entra dos veces — o un fallo entre "actualizar saldo" y "registrar transacción" deja ambos permanentemente inconsistentes.
- Operaciones manuales: un técnico de soporte resuelve una reclamación con un UPDATE directo. El cliente queda contento; el dinero que apareció no tiene origen, y ningún informe lo explicará jamás.
- Comisiones y redondeos: una comisión calculada en un sitio y aplicada en otro, una conversión de divisa redondeada distinto en cada lado — fracciones de céntimo que se acumulan hasta ser discrepancias reales.
Las reglas que un ledger te impone — todas buenas
Comprometerse con los saldos derivados impone disciplina al resto del core. Estas restricciones parecen estrictas el primer día y resultan ser la razón de que el sistema siga siendo correcto al tercer año:
- Importes enteros en unidades mínimas — céntimos, satoshis, wei — nunca coma flotante. Los floats binarios no pueden representar 0,10 con exactitud; un ledger que debe sumar cero no puede construirse sobre números que casi cuadran.
- Apuntes inmutables: un apunte asentado no se edita ni se borra. Los errores se corrigen como los han corregido siempre los bancos — con un apunte de reversa que deja en el registro tanto el error como la corrección.
- Idempotencia: cada operación lleva una clave, de modo que una petición reintentada se asienta una sola vez. El ledger hace visibles los duplicados; la idempotencia los evita.
- Atomicidad: el débito, el crédito y el cambio de estado de negocio se confirman juntos o no se confirman. Ningún camino del código actualiza un saldo fuera de una transacción del ledger — incluidos los ajustes administrativos, que pasan a ser apuntes normales y atribuibles en lugar de sobrescrituras silenciosas.
Conciliación: demostrarlo contra el mundo exterior
El invariante interno demuestra que el sistema es consistente consigo mismo. La conciliación demuestra que es consistente con la realidad. Un core fintech mantiene posiciones con terceros — raíles bancarios, procesadores de tarjetas, redes blockchain — y cada uno guarda su propia versión de la verdad. La conciliación diaria compara cada extracto de proveedor y cada posición on-chain con las cuentas correspondientes del ledger y obliga a explicar cada diferencia: una liquidación en tránsito, una comisión de proveedor aún no asentada, o un descuadre real que recibe un apunte puente y un responsable ese mismo día.
La conciliación es donde la arquitectura se paga sola. Con un ledger de doble entrada, un descuadre es una búsqueda acotada: el día en que apareció, las cuentas que tocó, los apuntes implicados. Con saldos almacenados, la misma investigación arranca de un número sin historia — y por eso las diferencias sin conciliar en sistemas de columna de saldo tienden a darse por perdidas en lugar de resolverse.
Los criptoactivos suben la apuesta. Un saldo on-chain es público: cualquiera puede comparar las wallets que controlas con los saldos que muestras a tus clientes. Autocustodia sin un ledger que concilie contra la chain a diario es una discrepancia esperando a que la descubra alguien de fuera de la empresa.
Qué piden de verdad auditores y reguladores
Tarde o temprano, una fintech regulada afronta alguna versión de la misma pregunta: demuestra que los saldos de tus clientes son correctos. La respuesta práctica es una cadena de evidencia — cada saldo deriva de un ledger de solo inserción; el ledger suma cero; se concilia a diario contra cada posición externa; y una auditoría inmutable, encadenada por hash, registra quién inició cada movimiento, desde qué dispositivo y bajo qué aprobación.
Los equipos que construyen sobre saldos almacenados responden a estas preguntas con trabajo forense — reconstruyendo la historia a partir de logs de aplicación y exports de proveedores, en el peor momento posible y contra un plazo. Los equipos con ledger responden con una consulta. La auditoría no crea el requisito; solo revela si la arquitectura lo cumplía desde el principio.
El test que hacerle a cualquier plataforma de core banking
Si estás evaluando una plataforma — o revisando la que construiste — las preguntas se hacen en cinco minutos y las respuestas son difíciles de fingir:
- ¿De dónde sale el número que ve el cliente en pantalla? Si la respuesta es una columna de saldo y no una proyección del ledger, todo lo demás es decoración.
- ¿Se puede cambiar un saldo sin generar apuntes en el ledger? Pregunta específicamente por las herramientas de administración y los flujos de soporte — ahí es donde se esconden los UPDATE silenciosos.
- ¿Son los importes enteros en unidades mínimas de extremo a extremo, incluida la parte cripto?
- Enséñame la conciliación de ayer: cada proveedor, cada chain, cada diferencia explicada. Una plataforma que no puede enseñarla es que no la hace.
- ¿Cómo se corrige un apunte erróneo? La única respuesta buena es un apunte de reversa, atribuido a una persona, detrás de un flujo de aprobación.
Dónde está Coreza
Coreza está construida sobre la versión estricta de este diseño: cada saldo — fiat y cripto — deriva de un ledger de doble entrada; los importes son enteros en unidades mínimas en todo el sistema; los apuntes asentados son inmutables, con correcciones mediante apuntes de reversa detrás de una aprobación a cuatro ojos; y cada instancia concilia a diario contra cada proveedor conectado y cada chain en la que opera. La auditoría es de solo inserción y está encadenada por hash: registra el quién, el cuándo y el desde dónde de cada movimiento.
Nada de esto se ve en una demo de producto, y ese es precisamente el sentido de este artículo: el ledger es la parte de una plataforma de core banking que no se puede evaluar mirando pantallas. Una versión de este core procesa clientes y dinero reales en una fintech europea regulada desde 2024 — y las cinco preguntas de arriba son las que te proponemos hacerle a cualquier plataforma, incluida la nuestra.
¿Listo para ver tu banco funcionando?
Cuéntanos tu proyecto y te responderemos con una demo guiada y una propuesta a medida para tu mercado.
Reservar reunión