npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2025 – Pkg Stats / Ryan Hefner

bankkit

v1.0.2

Published

Es una biblioteca desarrollada en Node.js y TypeScript, diseñada para integrarse en sistemas financieros.

Downloads

17

Readme

💼 BankKit

📋 Tabla de Contenido


BankKit es una biblioteca desarrollada en Node.js y TypeScript, diseñada para integrarse en sistemas financieros. Ofrece un conjunto modular de herramientas que permiten automatizar y simplificar operaciones bancarias comunes, tanto para usuarios finales como para ejecutivos de atención financiera.

🔐 Su objetivo principal es proporcionar una interfaz robusta, segura y extensible que facilite a las entidades financieras la implementación de funcionalidades recurrentes del día a día, tales como:

  • 📊 Generación de tablas de amortización
  • 🧾 Construcción de matrices de certificados financieros
  • 🔢✍️ Conversión de valores numéricos a texto para documentos legales

Esto permite reducir significativamente la complejidad del desarrollo e integración de estos servicios en sus plataformas tecnológicas.

🚀 BankKit está orientada a acelerar la implementación de soluciones financieras, promoviendo buenas prácticas de desarrollo, tipado estricto con TypeScript, y compatibilidad con arquitecturas modernas basadas en microservicios o servicios desacoplados.


⚙️ Funcionalidades principales

  • 📊 Generación de tablas de amortización Cálculo estructurado de pagos periódicos para préstamos u obligaciones financieras.

  • 🧾 Generación de matrices de certificados financieros Creación automatizada de estructuras representativas de certificados financieros según criterios definidos.

  • 🔢✍️ Conversión de números a letras Utilidad para transformar valores numéricos en su representación textual, útil en documentos legales o contractuales.


📊 Generación de Tablas de Amortización

La función calAmortization permite calcular la tabla de amortización de un préstamo u obligación financiera, considerando montos, tasas, plazos y comisiones. Devuelve un arreglo de objetos que representan cada período de pago, con información detallada como fecha, saldo, intereses y capital.

| Parámetro | Tipo | Requerido | Descripción | | ------------ | -------- | --------- | ---------------------------------------------------------------------------------------------------------------------------- | | amount | number | ✅ Sí | Monto total del préstamo. | | rate | number | ✅ Sí | Tasa de interés anual (en porcentaje, no decimal). | | term | number | ✅ Sí | Número de cuotas o períodos. | | commission | number | ❌ No | Comisión fija aplicada a cada cuota. Valor por defecto: 0. | | dateFrom | Date | ❌ No | Fecha desde la cual se desea iniciar el cálculo o estimación mensual de la tabla de amortización. Por defecto: new Date(). |


✅ Ejemplo de uso

import { calAmortization } from 'bankkit';

const tabla = calAmortization(10000, 8, 6);
console.log(tabla);

📤 Ejemplo de salida

{
    "amount": 10000,
    "rate": 8,
    "term": 6,
    "commission": 0,
    "amortizations": [
        {
            "order": 1,
            "fee": 1705.77,
            "interest": 66.67,
            "amortization": 1639.1,
            "balance": 8360.9,
            "date": "2025-11-07T22:35:44.778Z"
        },
        {
            "order": 2,
            "fee": 1705.77,
            "interest": 55.74,
            "amortization": 1650.03,
            "balance": 6710.87,
            "date": "2025-12-07T22:35:44.778Z"
        },
        {
            "order": 3,
            "fee": 1705.77,
            "interest": 44.74,
            "amortization": 1661.03,
            "balance": 5049.84,
            "date": "2026-01-07T22:35:44.778Z"
        },
        {
            "order": 4,
            "fee": 1705.77,
            "interest": 33.67,
            "amortization": 1672.1,
            "balance": 3377.74,
            "date": "2026-02-07T22:35:44.778Z"
        },
        {
            "order": 5,
            "fee": 1705.77,
            "interest": 22.52,
            "amortization": 1683.25,
            "balance": 1694.49,
            "date": "2026-03-07T22:35:44.778Z"
        },
        {
            "order": 6,
            "fee": 1705.77,
            "interest": 11.3,
            "amortization": 1694.47,
            "balance": 0,
            "date": "2026-04-07T22:35:44.778Z"
        }
    ]
}

🧾Generación de Matrices de Certificados Financieros

La función calCertificateReinvestment permite simular o calcular la evolución de un certificado financiero con reinversión automática de intereses. El cálculo incluye la aplicación de tasas de interés, períodos definidos y deducción de impuestos gubernamentales. Es ideal para instituciones que necesitan estimar el rendimiento de inversiones a plazo fijo.

🔧 Firma

calCertificateReinvestment(
  amount: number,
  rate: number,
  term: number,
  govermentTaxPercent: number,
  dateFrom = new Date()
): CertificateMatrixResult

| Parámetro | Tipo | Requerido | Descripción | | --------------------- | ------ | --------- | -------------------------------------------------------------------------------------- | | amount | number | ✅ Sí | Monto inicial del certificado financiero. | | rate | number | ✅ Sí | Tasa de interés anual (en porcentaje, no decimal). | | term | number | ✅ Sí | Número de períodos (en meses) para la reinversión del certificado. | | govermentTaxPercent | number | ✅ Sí | Porcentaje de impuesto aplicado a los intereses generados (en porcentaje, no decimal). | | dateFrom | Date | ❌ No | Fecha de inicio del certificado. Valor por defecto: new Date(). |

✅ Ejemplo de uso

import { calCertificateReinvestment } from 'bankkit';

const certificado = calCertificateReinvestment(10000, 8, 6, 10);
console.log(certificado);

📤 Ejemplo de salida

{
    "amount": 10000,
    "rate": 8,
    "term": 6,
    "govermentTaxPercent": 0.1,
    "date": "2025-10-07T22:48:43.673Z",
    "certificate": [
        {
            "order": 1,
            "amount": 10000,
            "interest": 66.67,
            "percenDiscount": "10%",
            "govermentDiscount": 6.67,
            "cleanInterestEarn": 60,
            "newAmount": 10060,
            "type": "Reinvestment",
            "date": "2025-11-07T22:48:43.673Z"
        },
        {
            "order": 2,
            "amount": 10060,
            "interest": 67.07,
            "percenDiscount": "10%",
            "govermentDiscount": 6.71,
            "cleanInterestEarn": 60.36,
            "newAmount": 10120.36,
            "type": "Reinvestment",
            "date": "2025-12-07T22:48:43.673Z"
        },
        {
            "order": 3,
            "amount": 10120.36,
            "interest": 67.47,
            "percenDiscount": "10%",
            "govermentDiscount": 6.75,
            "cleanInterestEarn": 60.72,
            "newAmount": 10181.08,
            "type": "Reinvestment",
            "date": "2026-01-07T22:48:43.673Z"
        },
        {
            "order": 4,
            "amount": 10181.08,
            "interest": 67.87,
            "percenDiscount": "10%",
            "govermentDiscount": 6.79,
            "cleanInterestEarn": 61.08,
            "newAmount": 10242.16,
            "type": "Reinvestment",
            "date": "2026-02-07T22:48:43.673Z"
        },
        {
            "order": 5,
            "amount": 10242.16,
            "interest": 68.28,
            "percenDiscount": "10%",
            "govermentDiscount": 6.83,
            "cleanInterestEarn": 61.45,
            "newAmount": 10303.61,
            "type": "Reinvestment",
            "date": "2026-03-07T22:48:43.673Z"
        },
        {
            "order": 6,
            "amount": 10303.61,
            "interest": 68.69,
            "percenDiscount": "10%",
            "govermentDiscount": 6.87,
            "cleanInterestEarn": 61.82,
            "newAmount": 10365.43,
            "type": "Reinvestment",
            "date": "2026-04-07T22:48:43.673Z"
        }
    ]
}

🧾 Generación de Matrices de Certificados Financieros sin Reinversión

La función calCertificateNoReinvestment permite simular o calcular la evolución de un certificado financiero sin reinversión automática de intereses. En este caso, los intereses generados en cada período se pagan o retiran, por lo que el capital permanece constante durante todo el plazo. El cálculo incluye la aplicación de tasas de interés, períodos definidos y la deducción de impuestos gubernamentales sobre los intereses generados. Esta función es ideal para instituciones o usuarios que desean estimar el rendimiento neto de inversiones a plazo fijo cuando no se reinvierten los intereses acumulados.

🔧 Firma

calCertificateNoReinvestment(
  amount: number,
  rate: number,
  term: number,
  govermentTaxPercent: number,
  dateFrom = new Date()
): CertificateMatrixResult

| Parámetro | Tipo | Requerido | Descripción | | --------------------- | ------ | --------- | -------------------------------------------------------------------------------------- | | amount | number | ✅ Sí | Monto inicial del certificado financiero. | | rate | number | ✅ Sí | Tasa de interés anual (en porcentaje, no decimal). | | term | number | ✅ Sí | Número de períodos (en meses) para la duración del certificado. | | govermentTaxPercent | number | ✅ Sí | Porcentaje de impuesto aplicado a los intereses generados (en porcentaje, no decimal). | | dateFrom | Date | ❌ No | Fecha de inicio del certificado. Valor por defecto: new Date(). |

✅ Ejemplo de uso

import { calCertificateNoReinvestment } from 'bankkit';

const certificado = calCertificateNoReinvestment(10000, 8, 6, 10);
console.log(certificado);

📤 Ejemplo de salida

{
    "amount": 10000,
    "rate": 8,
    "term": 6,
    "govermentTaxPercent": 0.1,
    "date": "2025-10-07T22:59:04.015Z",
    "certificate": [
        {
            "order": 1,
            "amount": 10000,
            "interest": 66.67,
            "percenDiscount": "10%",
            "govermentDiscount": 6.67,
            "cleanInterestEarn": 60,
            "newAmount": 10060,
            "type": "NoReinvestment",
            "date": "2025-11-07T22:59:04.015Z"
        },
        {
            "order": 2,
            "amount": 10060,
            "interest": 66.67,
            "percenDiscount": "10%",
            "govermentDiscount": 6.67,
            "cleanInterestEarn": 60,
            "newAmount": 10120,
            "type": "NoReinvestment",
            "date": "2025-12-07T22:59:04.015Z"
        },
        {
            "order": 3,
            "amount": 10120,
            "interest": 66.67,
            "percenDiscount": "10%",
            "govermentDiscount": 6.67,
            "cleanInterestEarn": 60,
            "newAmount": 10180,
            "type": "NoReinvestment",
            "date": "2026-01-07T22:59:04.015Z"
        },
        {
            "order": 4,
            "amount": 10180,
            "interest": 66.67,
            "percenDiscount": "10%",
            "govermentDiscount": 6.67,
            "cleanInterestEarn": 60,
            "newAmount": 10240,
            "type": "NoReinvestment",
            "date": "2026-02-07T22:59:04.015Z"
        },
        {
            "order": 5,
            "amount": 10240,
            "interest": 66.67,
            "percenDiscount": "10%",
            "govermentDiscount": 6.67,
            "cleanInterestEarn": 60,
            "newAmount": 10300,
            "type": "NoReinvestment",
            "date": "2026-03-07T22:59:04.015Z"
        },
        {
            "order": 6,
            "amount": 10300,
            "interest": 66.67,
            "percenDiscount": "10%",
            "govermentDiscount": 6.67,
            "cleanInterestEarn": 60,
            "newAmount": 10360,
            "type": "NoReinvestment",
            "date": "2026-04-07T22:59:04.015Z"
        }
    ]
}

🔢✍️ Conversión de números a letras

La función convertToNumber transforma un valor numérico (o cadena numérica) en su representación textual en idioma español, ideal para documentos legales, contratos, facturas y otros documentos oficiales. La respuesta incluye diferentes formatos útiles para la presentación clara y formal de cantidades monetarias, incluyendo la parte entera, los centavos y una descripción completa.

| Parámetro | Tipo | Requerido | Descripción | | --------- | ---------------- | --------- | --------------------------------------------- | | input | number | string | ✅ Sí | Valor numérico o cadena numérica a convertir. |

✅ Ejemplo de uso

import { convertToNumber } from 'bankkit';

const result = convertToNumber(1225.5);
console.log(result);

📤 Ejemplo de salida

{
    "number": 1225.5,
    "letter": "MIL DOSCIENTOS VEINTICINCO PESOS DOMINICANOS CON 5/100",
    "cents": "5",
    "fullDescription": "MIL DOSCIENTOS VEINTICINCO",
    "rate": "MIL DOSCIENTOS VEINTICINCO PUNTO  CINCO"
}

| Campo | Descripción | | ----------------- | --------------------------------------------------------------------------------------------------------------------------- | | number | El valor numérico original que fue convertido. | | letter | La representación textual completa del número, incluyendo la moneda y los centavos en formato fraccional (ej. "CON 5/100"). | | cents | Los centavos o decimales extraídos del número, en formato numérico simple. | | fullDescription | La parte entera del número convertida a texto, sin incluir la moneda ni los centavos. | | rate | Representación textual del número incluyendo la parte decimal expresada como "PUNTO" seguido del decimal en palabras. |


📬 Contacto

Para nuevos requerimientos, mejoras o colaboraciones, no dudes en escribir a:
[email protected]