Cree un calendario de vencimientos de facturas recurrentes
Convierta una lista de días de vencimiento mensuales en fechas concretas próximas.
Ejecutar — gratis
Corre en su navegador. Gratis y sin límite: sus datos no salen de esta página.
Introduzca la fecha actual, el nombre de cada factura y su día de pago; recibirá la siguiente fecha de cada elemento en el mismo orden. Si una factura vence hoy, se mantiene la fecha de hoy. Cuando un día válido, como 29, 30 o 31, no existe en el mes correspondiente, el vencimiento se fija en el último día natural de ese mes.
Introduzca la fecha actual y las facturas recurrentes
Comience con una fecha actual en el formato inequívoco AAAA-MM-DD. Añada después una fila por cada factura mensual, con un nombre reconocible y un día de vencimiento entero entre 1 y 31. El nombre se conserva exactamente en el resultado, por lo que puede usar un proveedor, un alias de cuenta o una categoría de gasto. El día representa una repetición mensual, no una fecha completa. Los valores menores que 1 o mayores que 31 se rechazan. El orden de la lista también se conserva para facilitar la comparación con su presupuesto, hoja de cálculo o lista de pagos. Use una fila para cada obligación aunque varias compartan el mismo día. La fecha de entrada debe existir en el calendario gregoriano; valores imposibles, como el 30 de febrero, no se interpretan como aproximaciones.
Comprenda cómo se elige el próximo vencimiento
Para cada factura, el cálculo considera primero su vencimiento del mes actual. Si esa fecha es hoy o posterior, se devuelve como la próxima. Esta regla inclusiva evita trasladar al mes siguiente una factura que vence hoy. Si el vencimiento del mes actual ya pasó, se avanza exactamente un mes. Como los meses tienen distinta duración, un día válido puede no existir en todos ellos. En ese caso se utiliza el último día real del mes elegido. Por ejemplo, un vencimiento el día 31 pasa al 30 de abril y al 28 o 29 de febrero. La misma regla se aplica a los días 29 y 30 en febrero. Los años bisiestos siguen las reglas gregorianas, incluida la excepción de los siglos. El resultado es determinista y no depende de zonas horarias, relojes locales ni interpretaciones del entorno.
Use el calendario en su proceso de pagos
El resultado incluye la fecha actual indicada y una fila por factura con su nombre, día recurrente y próxima fecha en formato AAAA-MM-DD. Puede ordenar o agrupar esas fechas en su propia hoja de cálculo si necesita una vista cronológica del flujo de caja; el cálculo mantiene deliberadamente el orden de entrada. Ejecútelo de nuevo con una fecha posterior para actualizar el calendario. Una misma entrada siempre genera la misma salida, lo que permite controles y pruebas repetibles. Revise los casos de fin de mes si el contrato del proveedor aplica otra política, como pasar el pago al siguiente día hábil, porque aquí solo se usan días naturales. No se conocen festivos, fines de semana, periodos de gracia, retrasos bancarios ni pagos ya realizados, y tampoco se guardan datos de cuentas. El precio base de ejecución es $0.002; cualquier servicio asociado puede mostrar los detalles de cobro por separado.
Qué puede hacer con ella
Presupuesto mensual del hogar
Convierta alquiler, suministros, suscripciones, seguros y tarjetas en fechas próximas para planificar su flujo de caja.
Lista de cuentas por pagar
Asigne una próxima fecha concreta a cada proveedor recurrente sin alterar el orden de su lista interna de pagos.
Revisión de fin de mes
Compruebe cómo se resuelven los vencimientos 29, 30 y 31 en febrero y en otros meses más cortos.
Preguntas frecuentes
¿Una factura que vence hoy aparece hoy o el mes próximo?
Aparece hoy. La fecha actual se incluye al seleccionar el próximo vencimiento.
¿Qué ocurre con el día 31 en un mes más corto?
El vencimiento se fija en el último día natural del mes, como el 30 de abril o el 28 de febrero en un año no bisiesto.
¿Se tienen en cuenta fines de semana y festivos?
No. El cálculo utiliza días naturales y no desplaza fechas por calendarios bancarios o festivos.
¿Qué valores se aceptan como día de vencimiento?
Debe ser un entero entre 1 y 31. Se rechazan cero, negativos, fracciones y valores superiores a 31.
¿Se guardan facturas o datos de pago?
No. Las fechas se calculan de forma determinista a partir de la entrada, sin red ni almacenamiento persistente.
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/final3/recurring-bill-due-date-list \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"current_date":"2026-01-30","bills":[{"name":"Rent","due_day":1},{"name":"Internet","due_day":31}]}'const res = await fetch("https://api.kit.forhosting.com/final3/recurring-bill-due-date-list", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"current_date": "2026-01-30",
"bills": [
{
"name": "Rent",
"due_day": 1
},
{
"name": "Internet",
"due_day": 31
}
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/final3/recurring-bill-due-date-list",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"current_date": "2026-01-30",
"bills": [
{
"name": "Rent",
"due_day": 1
},
{
"name": "Internet",
"due_day": 31
}
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/final3/recurring-bill-due-date-list", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"current_date":"2026-01-30","bills":[{"name":"Rent","due_day":1},{"name":"Internet","due_day":31}]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"current_date":"2026-01-30","bills":[{"name":"Rent","due_day":1},{"name":"Internet","due_day":31}]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/final3/recurring-bill-due-date-list", 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
{
"current_date": "2026-01-30",
"bills": [
{
"name": "Rent",
"due_day": 1
},
{
"name": "Internet",
"due_day": 31
}
]
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "final3.recurring_bill_due_date_list",
"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. |