Plataforma técnica · Orchestrator
Prestamos Service
Orchestrator Finanzas Prestamos
PrestamosService administra créditos y préstamos bancarios del tenant. Su responsabilidad principal es registrar el préstamo, generar la tabla de amortización y controlar el pago de cuotas.
Operaciones
Section titled “Operaciones”| Método | Uso |
|---|---|
getPrestamos(ctx) | Lista préstamos. |
getPrestamo(ctx, id) | Obtiene un préstamo por ID. |
createPrestamo(ctx, data) | Crea préstamo validando datos mínimos y montos. |
updatePrestamo(ctx, id, data) | Actualiza campos del préstamo. |
deletePrestamo(ctx, id) | Elimina préstamo si no tiene cuotas pagadas. |
generarAmortizacion(ctx, prestamoId, overrides) | Recalcula e inserta cuotas con método francés. |
getCuotas(ctx, prestamoId) | Lista cuotas del préstamo. |
pagarCuota(ctx, cuotaId, data) | Marca cuota pagada. |
Validaciones
Section titled “Validaciones”| Operación | Regla |
|---|---|
| Crear préstamo | Requiere banco_id, nombre_prestamo, tipo_prestamo, monto_original, tasa_interes, fecha_inicio, fecha_vencimiento, num_cuotas. |
monto_original | Debe ser mayor a 0. |
tasa_interes | No puede ser negativa. |
num_cuotas | Debe ser mayor a 0. |
| Eliminar préstamo | Se bloquea si PrestamosRepository.hasCuotasPagadas retorna verdadero. |
| Pagar cuota | Requiere fecha_pago y monto_pagado; el monto debe ser mayor a 0. |
Amortización Francesa
Section titled “Amortización Francesa”generarAmortizacion toma el préstamo vigente y permite sobrescribir num_cuotas, fecha_inicio y periodicidad.
| Periodicidad | Periodos por año |
|---|---|
MENSUAL | 12 |
TRIMESTRAL | 4 |
SEMESTRAL | 2 |
ANUAL | 1 |
La cuota fija se calcula con la tasa periódica. Si la tasa es 0, divide el monto por el número de cuotas. La última cuota ajusta el capital pendiente para evitar saldos residuales por redondeo.
Endpoints
Section titled “Endpoints”| Método | Ruta | Service call |
|---|---|---|
GET | /api/financieros/prestamos | getPrestamos(ctx) |
GET | /api/financieros/prestamos/:id | getPrestamo(ctx, id) |
POST | /api/financieros/prestamos | createPrestamo(ctx, body) |
PUT | /api/financieros/prestamos/:id | updatePrestamo(ctx, id, body) |
DELETE | /api/financieros/prestamos/:id | deletePrestamo(ctx, id) |
POST | /api/financieros/prestamos/:id/amortizacion | generarAmortizacion(ctx, id, body) |
GET | /api/financieros/prestamos/:id/amortizacion | getCuotas(ctx, id) |
PUT | /api/financieros/prestamos/:id/amortizacion/:cuotaId/pagar | pagarCuota(ctx, cuotaId, body) |