RevenuLogo Revenu Open Tecnologias Ltda.
PricingAcerca de
Hablar con ventas

Footer

Revenu Tech Logo

Revenu es el principal proveedor de infraestructura bancaria para desarrolladores en Brasil.

ISO 20022 Nativo

Av. Brig. Faria Lima 1811

Sala 1119 - CEP: 01.452-001

São Paulo - Brazil

  • Acerca de
  • Trabajos
  • Socios
  • Trust Center
  • Pricing
  • Hub de Pagos
  • Bre-B
  • TED
  • Boleto
  • Tarjetas
  • Onboarding
  • Ledger Engine
  • Core bancario
  • Compliance
  • Reconciliación
  • Crossborder
  • Panel de gestión
  • AuthorityOS
  • HarmonyOS
  • ChargeOS
  • InvestOS
  • AtmOS
  • RiskOS
  • TreasuryOS
  • LoanOS
  • Marketplaces
  • Términos de Uso
  • Política de Privacidad
  • Términos de la API
  • Cookies

Revenu

  • Acerca de
  • Trabajos
  • Socios
  • Trust Center
  • Pricing
  • Status API

Servicios

  • Hub de Pagos
  • Bre-B
  • TED
  • Boleto
  • Tarjetas
  • Onboarding

Soluciones

  • Ledger Engine
  • Core bancario
  • Compliance
  • Reconciliación
  • Crossborder
  • Panel de gestión
  • AuthorityOS
  • HarmonyOS
  • ChargeOS
  • InvestOS
  • AtmOS
  • RiskOS
  • TreasuryOS
  • LoanOS
  • Marketplaces

Legal

  • Términos de Uso
  • Política de Privacidad
  • Términos de la API
  • Cookies
LinkedIn

© 2026 Revenu Open Tecnologías Ltda. Todos los derechos reservados.

Desarrollado con mucho ❤️ en São Paulo, Brasil

  1. Blog
  2. /
  3. Ingeniería

Ledger double-entry: cómo diseñamos un motor contable que nunca pierde un centavo

Cada transacción en Revenu genera asientos de doble entrada automáticos. Así es como nuestro ledger de 11 engines maneja multi-moneda, compliance COSIF, reconciliación en tiempo real, y por qué la mayoría de los ledgers fintech son bombas de tiempo. La arquitectura detrás de un ledger que ha procesado R$ 8 mil millones con cero discrepancias de balance.

1 de marzo de 2026
Gustavo Armoa
Gustavo ArmoaCTO y Arquitecto de Software Principal
Gustavo Armoa
Gustavo ArmoaCTO y Arquitecto de Software Principal
Ledger double-entry: cómo diseñamos un motor contable que nunca pierde un centavo

Por qué la doble entrada importa en fintech — y por qué la mayoría de las fintechs lo hacen mal

Los sistemas de entrada simple rastrean saldos. Los de doble entrada rastrean el movimiento de valor. Para instituciones financieras reguladas, esto no es opcional — es obligatorio.

Pero aquí está lo que la mayoría de los ingenieros fintech no entienden: la contabilidad de doble entrada no es solo un checkbox regulatorio. Es el único sistema contable que es auto-verificable. Cada débito tiene un crédito correspondiente. Si los débitos totales no igualan los créditos totales, algo está mal — y puedes encontrarlo.

Los sistemas de entrada simple no pueden decirte cuándo algo está mal. Rastrean un saldo: +R$ 100, -R$ 50, saldo = R$ 50. Si un bug suma R$ 100 sin restarlo de algún lado, el saldo dice R$ 150 y nadie sabe que hay un problema hasta que un reporte de reconciliación lo detecta — días o semanas después.

En un sistema de doble entrada, ese bug es imposible. No puedes acreditar una cuenta sin debitar otra. El sistema impone conservación de valor a nivel de transacción, no como una verificación posterior.

La epidemia de ledgers fintech: tablas de balance pretendiendo ser ledgers

Déjame describir lo que el 80% de las fintechs llaman su "ledger":

Una tabla PostgreSQL llamada balances con columnas: account_id, currency, available, pending, blocked. Cuando llega un pago, el sistema ejecuta UPDATE balances SET available = available + 100 WHERE account_id = 'abc'.

Esto no es un ledger. Es un rastreador de saldos. Y tiene defectos fatales:

Sin trail de auditoría

UPDATE sobrescribe el valor anterior. Una vez que el saldo cambia de R$ 500 a R$ 600, no hay registro del estado R$ 500.

Condiciones de carrera

Dos transacciones concurrentes leen available = 500, ambas suman R$ 100, ambas escriben R$ 600. La cuenta debería tener R$ 700 pero tiene R$ 600. Acabas de crear — o destruir — R$ 100 de la nada.

Sin capacidad de reconciliación

¿Cómo verificas que el saldo es correcto? Necesitarías repetir todas las transacciones históricas. Pero no las tienes — solo tienes el saldo actual.

Errores de redondeo se acumulan silenciosamente

Cuando calculas una tasa de plataforma del 12.5% sobre R$ 99,99 (= R$ 12,49875), redondeas a R$ 12,50. Sobre millones de transacciones, estos errores se acumulan. En un sistema de entrada simple, nadie lo nota hasta que la reconciliación de fin de trimestre revela una discrepancia de R$ 47.000.

La arquitectura de ledger de Revenu: los 11 engines

Nuestro ledger no es una sola tabla ni un solo servicio. Es un sistema de 11 engines especializados:

1. Core Ledger Engine

La fundación. Maneja asientos de doble entrada, impone la ecuación contable (Activos = Pasivos + Patrimonio), y garantiza que cada transacción balancea a cero.

2. Chart of Accounts Engine

Gestiona la estructura jerárquica de cuentas. Cada cuenta se clasifica según un plan de cuentas que mapea a COSIF — la clasificación contable obligatoria de BACEN.

3. Multi-Currency Engine

Maneja cuentas denominadas en diferentes monedas, rastreo de tasas de cambio y asientos de conversión de moneda.

Cuando un pago transfronterizo convierte USD a BRL, el engine crea pares de asientos que capturan el tipo de cambio exacto, el timestamp de conversión y la fuente de la tasa — todo inmutablemente.

4. Escrow Engine

Gestiona cuentas escrow para splits de marketplace, retenciones de pago y cronogramas de liquidación.

5. Fee Engine

Calcula y registra tasas de plataforma, MDR, interchange, costos de gateway y tasas de anticipación. Cada tasa es un par de asientos separado — nunca una deducción silenciosa de un saldo.

6. Provisioning Engine

Maneja provisiones para pérdidas esperadas — provisiones de pérdida crediticia, provisiones de chargeback y requisitos de capital regulatorio.

7. Accrual Engine

Gestiona reconocimiento de valor basado en tiempo: acumulación de intereses en préstamos, reconocimiento de tasas sobre períodos de servicio e ingresos diferidos.

8. Tax Engine

Calcula y registra IOF, IRRF, ISS y contribuciones PIS/COFINS. Los asientos de impuestos son separados de la transacción subyacente.

9. Reconciliation Engine

Reconcilia continuamente el estado del ledger interno contra fuentes externas: estados bancarios, reportes de liquidación PSTI, archivos de liquidación de redes de tarjetas.

La reconciliación corre como un proceso streaming, no como un batch job. Cada evento externo se empareja contra asientos internos en tiempo real.

10. Reporting Engine

Genera estados financieros COSIF-compliant, balances generales, estados de resultados y reportes de flujo de caja — todo desde datos del ledger.

11. Archive Engine

Maneja el ciclo de vida de datos del ledger: compresión de asientos históricos, offloading a almacenamiento frío, y recuperación garantizada para solicitudes de auditoría. Requisito regulatorio: 10 años de historial completo.

El principio de inmutabilidad: por qué nunca hacemos UPDATE

Cada entrada de ledger en Revenu es inmutable. Una vez escrita, no puede modificarse ni eliminarse. Nunca.

Nivel de base de datos

Las tablas de ledger no tienen permisos de UPDATE o DELETE. El usuario de base de datos de la aplicación solo puede INSERT y SELECT.

Nivel de aplicación

El servicio de ledger expone solo dos operaciones: post(entries) y query(filters). No hay endpoint de update o delete.

Mecanismo de corrección

¿Qué pasa cuando algo está mal? No corriges la entrada incorrecta — creas una nueva entrada de reversión que la neutraliza, luego creas una nueva entrada corregida. El trail de auditoría muestra exactamente qué pasó, cuándo y por qué.

Event Sourcing + doble entrada: un match natural

Nuestro ledger está construido sobre Event Sourcing. Cada operación financiera emite eventos de dominio. El ledger es una proyección de esos eventos.

Porque los eventos son inmutables y ordenados, el ledger puede reconstruirse desde cero repitiendo todos los eventos. Hacemos esto periódicamente como verificación: reconstruimos el ledger entero desde el event store y lo comparamos con el ledger en vivo. Si coinciden (siempre han coincidido), sabemos que el ledger es correcto.

Esta es la garantía de auditoría definitiva: el ledger no es solo auditable — es reconstruible.

Reconciliación en tiempo real

La reconciliación tradicional es un proceso batch. Al final del día, alguien compara registros internos contra estados bancarios externos. Las discrepancias encontradas hoy pueden relacionarse con transacciones de hace 3 días.

Nuestro engine de reconciliación opera en tiempo real:

Matching por eventos

Cuando llega un evento externo (confirmación PIX del SPI, confirmación TED del CIP), el engine inmediatamente lo empareja con el asiento interno correspondiente.

Verificación continua de balance

Cada 60 segundos, el engine verifica la ecuación contable fundamental:

SUM(todos_los_débitos) == SUM(todos_los_créditos)

Si esta ecuación no se cumple — incluso por R$ 0,01 — se dispara una alerta inmediatamente.

Performance: 50.000 asientos por segundo

Paralelismo a nivel de cuenta

Transacciones que tocan diferentes cuentas se ejecutan en paralelo. Solo transacciones que tocan la misma cuenta se serializan.

Batch posting

Múltiples pares de asientos de la misma operación se agrupan en una sola transacción de base de datos.

Escrituras append-only

Entradas inmutables son append-only. Sin row locks, sin ciclos read-modify-write. Solo INSERT.

Los números de producción

Después de 18 meses y R$ 8 mil millones en volumen procesado:

  • Discrepancia de balance: R$ 0,00 — el ledger nunca ha estado desbalanceado
  • 11 engines especializados trabajando en concierto
  • 50.000 asientos/segundo throughput sostenido
  • < 5ms latencia de asiento (p99)
  • 100% alineación COSIF — sin capas de traducción para reporting regulatorio
  • Reconciliación en tiempo real — discrepancias detectadas en < 60 segundos
  • 0 correcciones manuales — todas las correcciones son reversión automática + re-posting
  • Archivo de 10 años — historial completo, recuperable en < 48 horas
  • Verificación por reconstrucción de ledger: reconstrucción mensual completa desde event store — 100% coincidencia cada vez

Por qué esto importa

Un ledger no es una feature. Es la fundación de todo lo demás: pagos, compliance, reporting, reconciliación, auditoría. Si el ledger está mal, todo lo construido sobre él está mal.

Diseñamos nuestro ledger para hacer estos escenarios imposibles. No improbables — imposibles. La conservación de valor se impone a nivel de transacción. La inmutabilidad se impone a nivel de base de datos. La reconciliación corre continuamente. La ecuación contable se verifica cada 60 segundos.

El resultado: un ledger en el que puedes confiar. No porque alguien dice que es correcto, sino porque la arquitectura hace matemáticamente imposible que esté mal.

Eso es lo que la contabilidad de doble entrada fue diseñada para hacer hace 700 años. Nosotros simplemente la implementamos correctamente.

#ledger#double-entry#accounting#cosif#event-sourcing#cqrs#immutability#reconciliation#multi-currency#chart-of-accounts

Mantente informado

Recibe novedades sobre infraestructura bancaria, APIs y productos financieros.

Al suscribirse, acepta recibir comunicaciones de Revenu. Puede cancelar en cualquier momento.

Revenu construye infraestructura bancaria para internet.

Ver documentación

¿Tiene comentarios o preguntas? Nos encantaría escucharlo.

Contáctenos