Calculadora de APY: rendimiento anual efectivo desde tasa nominal
La API de APY convierte una tasa de interés nominal declarada en el rendimiento porcentual anual: la tasa efectiva anual que usted realmente obtiene al tener en cuenta la capitalización.
Ejecutar — gratis
Una cuenta de ahorro que anuncia un 5% con capitalización mensual no paga un 5% al año; paga un 5,116%. Usted envía la tasa nominal y el número de períodos de capitalización por año, y el endpoint devuelve el rendimiento efectivo, con exactitud, siempre. El mismo cálculo se ejecuta gratis en su navegador en esta página, de modo que puede comprobar un número a mano y pagar solo cuando lo automatice dentro de un producto, una herramienta de comparación o una verificación de cumplimiento.
Por qué la tasa nominal no es la tasa que usted gana
Los bancos y prestamistas anuncian una tasa anual nominal, pero los intereses suelen abonarse más de una vez al año. Cada vez que se abonan, los nuevos intereses empiezan a generar intereses propios, por lo que el dinero crece más rápido de lo que sugiere la cifra anunciada. La diferencia aumenta cuanto más frecuente es la capitalización: un 5% con capitalización anual es simplemente un 5%, pero con capitalización mensual se convierte en aproximadamente un 5,116%, y con capitalización diaria en cerca de un 5,127%. Esa cifra efectiva es el APY —el rendimiento porcentual anual— y es la única forma honesta de comparar dos productos que capitalizan de forma distinta. Comparar tasas nominales entre una cuenta de ahorro con capitalización diaria y un certificado con capitalización trimestral favorece silenciosamente al que capitaliza con menos frecuencia. Las normativas de muchos países exigen a las instituciones divulgar el APY precisamente porque las tasas nominales inducen a error, y este endpoint calcula ese número obligatorio a partir de los dos datos que ya contiene cualquier ficha de producto.
Cómo funciona el cálculo
La fórmula es la definición clásica del interés compuesto condensada en una sola expresión: APY es igual a (1 + r/n) elevado a la n-ésima potencia, menos 1, donde r es la tasa anual nominal expresada como decimal y n es el número de períodos de capitalización por año. Con una tasa del 5% capitalizable mensualmente, eso es (1 + 0.05/12)^12 − 1 = 0.0511619. El endpoint acepta la tasa como decimal, por lo que 0.05 significa 5%: pasar 5 describiría una tasa del 500% y produciría un resultado absurdo, razón por la cual la documentación repite la convención en cada paso. El valor de los períodos debe ser un entero positivo: 1 para anual, 2 para semestral, 4 para trimestral, 12 para mensual, 365 para diaria. Las frecuencias fraccionarias o cero carecen de sentido financiero y se rechazan con un error claro en lugar de convertirse silenciosamente. Los resultados se redondean a diez decimales para que la misma entrada devuelva una salida idéntica byte a byte en cualquier máquina.
Dónde encaja en un producto real
Los sitios de comparación recalculan el APY de cada producto listado para que el orden de clasificación refleje lo que los clientes realmente ganan, y no lo que destaca la página de marketing. Los backends de neobancos y fintech lo usan para mostrar el rendimiento exigido por el regulador junto a cada cuenta, derivado de la misma tasa y frecuencia almacenadas en el catálogo de productos, de modo que un cambio de tasa se propaga sin que nadie edite textos. Los equipos financieros que validan una hoja de términos comprueban que la tasa efectiva cotizada coincide con la tasa nominal y el calendario de capitalización escritos en el contrato: una discrepancia es una señal de alerta que conviene detectar antes de firmar. Como el cálculo es determinista y no tiene dependencias externas, se ejecuta de forma idéntica en nuestro edge, en su suite de pruebas y en el widget gratuito del navegador en esta página; el mismo módulo sirve a los tres. Cuesta $0.002 por llamada a través de la API, sin conservar ningún dato después de enviada la respuesta.
Qué puede hacer con ella
Clasifique productos de ahorro por rendimiento real
Recalcule el APY de cada cuenta en una herramienta de comparación para que el orden refleje lo que los clientes realmente ganan con distintos calendarios de capitalización.
Muestre el rendimiento exigido por el regulador
Derive el APY divulgado a partir de la tasa nominal y la frecuencia de capitalización ya almacenadas en su catálogo de productos, sin ediciones manuales de textos ante cambios de tasa.
Verifique una tasa efectiva cotizada
Compruebe que la tasa anual efectiva de una hoja de términos coincide con la tasa nominal y el calendario de capitalización escritos en el contrato antes de firmar.
Preguntas frecuentes
¿Cuánto cuesta?
$0.002 por llamada a la API. La misma calculadora también es de uso gratuito en su navegador en esta página.
¿Cómo paso la tasa de interés?
Como decimal: 0.05 significa 5%. Pasar 5 describe una tasa nominal del 500%.
¿Qué frecuencias de capitalización se permiten?
Cualquier entero positivo: 1 para anual, 2 para semestral, 4 para trimestral, 12 para mensual, 365 para diaria. Los valores no enteros se rechazan.
¿Cuál es la diferencia entre APR y APY?
El APY incluye el efecto de la capitalización dentro del año; el APR no. Este endpoint calcula el APY a partir de una tasa nominal y su frecuencia de capitalización.
¿La tasa nominal puede ser cero o negativa?
El cero está permitido y produce un APY de cero. Las tasas negativas se rechazan como entrada no válida.
¿Se almacena alguno de mis datos?
No. El cálculo es aritmética pura; nada se persiste ni se registra más allá de la propia solicitud.
Para desarrolladores — acceso por API
Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.
Endpoint de API
¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, por email y desde Telegram — y pronto también desde nuestra app.
Llámela desde su stack
curl -X POST https://api.kit.forhosting.com/fin/apy \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"nominal_rate":0.05,"periods_per_year":12}'const res = await fetch("https://api.kit.forhosting.com/fin/apy", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"nominal_rate": 0.05,
"periods_per_year": 12
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/fin/apy",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"nominal_rate": 0.05,
"periods_per_year": 12
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/fin/apy", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"nominal_rate":0.05,"periods_per_year":12}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"nominal_rate":0.05,"periods_per_year":12}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/fin/apy", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Ejemplo de solicitud
{
"nominal_rate": 0.05,
"periods_per_year": 12
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "fin.apy",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.
Precio
Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.
Errores
| HTTP | Código | Significado |
|---|---|---|
401 | unauthorized | API key ausente o inválida. |
402 | insufficient_balance | El saldo no cubre el precio de la tarea. |
404 | unknown_type | El tipo de tarea no existe. |
429 | rate_limited | Demasiadas peticiones. Use el webhook en vez de sondear. |