Un mes civil cerrado, el mismo para todos los préstamos
El mes contable de un préstamo es su competência, y lo ancla el calendario, no la fecha de desembolso. Una ejecución reconoce el último mes civil que ya había terminado por completo antes de su fecha de negocio, y reconoce ese mismo mes para cada préstamo que selecciona. Una ejecución de cualquier día de abril cierra marzo. El mapeo es total: toda fecha de negocio nombra exactamente una competência, esa competência siempre es un mes que ya terminó, y ninguna ejecución puede reconocer un mes todavía en curso. Qué mes cierra una ejecución es entonces una propiedad del servicio, no del día en que la iniciaste. Un préstamo desembolsado a mitad de mes no queda fuera de su primer mes. Los intereses se reparten entre los días de cada intervalo del cronograma y una competência recoge lo que cae dentro de ella, así que un préstamo desembolsado el 12 reconoce ese primer tramo de mes dentro del mes en que se contrató.
Lo que hace una ejecución
POST /api/v1/accrual-runs toma la fecha de negocio y el modo de la ejecución y, de forma opcional, hasta 100 ids de producto de préstamo que acotan la ejecución. Tanto businessDate como mode son obligatorios. El mode etiqueta la ejecución para tus propios reportes, con una reserva: heartbeat pertenece al driver programado, y una llamada que lo envía es rechazada.
1
Lender selecciona los préstamos
No envías una lista. Lender lee su propia cartera y toma cada cuenta de préstamo en una solicitud desembolsada o activa, dentro de los productos que acotaste. Una cuenta de préstamo que ya liquidó queda fuera. Una ejecución cubre la cartera entera: recorre los candidatos página por página hasta agotarlos, así que ningún contrato pierde una competência porque la cartera creció.
2
Lender reconoce los intereses
Para cada préstamo, Lender resuelve la tasa de interés efectiva del cronograma contractual y toma la línea de esa competência. El reconocimiento trabaja sobre los flujos de caja contractuales. Lo que pagó el prestatario no lo cambia.
3
Lender escribe el reconocimiento y la intención de asiento
Una sola transacción de base de datos guarda la ejecución, un ítem por reconocimiento y la intención de asiento balanceada detrás de cada ítem. O todo eso es durable, o nada lo es.
4
El relay entrega el asiento
Después de que la ejecución hace commit, el relay del outbox asienta la transacción balanceada en Midaz, y Midaz la contabiliza.
El monto que reconoce Lender
El reconocimiento sigue el método de la tasa de interés efectiva. El costo amortizado empieza en el capital que amortiza el cronograma, menos la comisión de originación. Los impuestos retenidos quedan fuera: en Brasil, el IOF es un pass-through y nunca entra en el costo amortizado. Lender resuelve la tasa a partir del propio cronograma, así el interés reconocido reproduce el contrato en lugar de una tasa aparte que tú mantienes. Donde la jurisdicción grava los ingresos por intereses, la ejecución también reconoce ese impuesto. El impuesto es un segundo monto sobre el mismo préstamo y la misma competência, con su propio asiento balanceado. Los intereses y el impuesto nunca comparten una transacción.
Una vez por préstamo, por mes, por monto
Un reconocimiento es único por tres cosas: la cuenta de préstamo, la competência y el tipo de monto. Una segunda ejecución para la misma fecha de negocio no reconoce nada nuevo para un préstamo ya reconocido. No duplica los intereses y no encola un segundo asiento. Esa unicidad es la garantía de la ruta del dinero. También hace que una ejecución sea segura de repetir después de una interrupción.
Lo que produce una ejecución
Una ejecución responde con:
- El identificador de la ejecución y el estado de la ejecución.
- Una referencia de diario: el identificador contable de la ejecución.
- El id de correlación que Lender deriva del modo, la fecha de negocio y los productos acotados.
La ejecución no escribe el asiento en el ledger
Una ejecución reconoce intereses y encola una intención de asiento. No llama a Midaz, y no espera una contabilización. El relay asienta después, y el ledger contabiliza la transacción. Una ejecución exitosa significa que el reconocimiento y su intención son durables, no que el ledger ya muestre el asiento. Un asiento que nunca llegó al ledger no es trabajo perdido. Repite la ejecución: Lender rearma la intención detrás de cada ítem que el ledger no confirmó y la encola de nuevo bajo la misma clave determinista, para que el relay la entregue y un duplicado siga siendo un duplicado. Contabilidad y ejecuciones de devengo cubre lo que responde una repetición. Configura dos cosas antes de que un asiento pueda contabilizarse:
- Dale al perfil contable de la versión del producto una regla para el evento
accrual, con patas balanceadas. Donde la jurisdicción grava los ingresos por intereses, agrega también la regla opcionalaccrual_tax, así el impuesto tiene sus propias patas. - Lender siempre inicializa el outbox. Configura la conexión al ledger para que el relay pueda entregar la intención durable. Consulta Configuración y despliegue.
Préstamos que una ejecución pasa por alto
Un préstamo seleccionado aún puede no reconocer nada:
- La jurisdicción suspende su devengo. En Brasil, las dos etapas más profundas de la escalera de provisiones suspenden el devengo (consulta Paquete regulatorio de Brasil). Un contrato suspendido igual contabiliza su comisión de originación retenida; lo que retiene son los intereses.
- Una ejecución anterior ya decidió esa competência para él.
- Sus intereses para esa competência son cero.
Ejecutar el devengo con una programación
La ejecución también tiene un driver programado dentro del servicio, y viene encendido. Dispara todos los días a las 06:00 UTC hasta que le des otra expresión cron. Diario no quiere decir una competência por día. Cada disparo cierra el mismo mes, el primero que sale bien decide el mes, y todo disparo posterior de ese mes encuentra el trabajo ya hecho. La cadencia diaria es una repetición: un servicio caído el día 1 cierra el mes el día 2, mientras que una expresión mensual habría perdido esa competência para siempre. Bajo multi-tenancy el driver corre una vez por cada tenant activo, contra los datos propios de ese tenant. La ruta programada y la ruta de API usan el mismo código. Una ejecución desde cron y una ejecución desde una llamada se comportan igual.
Próximos pasos
Contabilidad y ejecuciones de devengo
Perfiles contables, reglas de asiento y las operaciones de referencia de diario.
Arquitectura de Lender
Los cinco dominios, la unión de jurisdicción y el outbox que saca el dinero.
Definir un producto de préstamo
Productos, versiones y el perfil contable del que depende una ejecución.
Paquete regulatorio de Brasil
Etapas de provisión, impuestos y las divulgaciones que agrega el perfil brasileño.

