En Chile, una fecha de cobro inválida tiene consecuencias concretas: un cargo procesado en feriado puede ser rechazado por el banco, llegar al cliente un día después, o generar una disputa en la tarjeta. En el segmento fintech y e-commerce, esto es especialmente crítico en meses con feriados largos (Fiestas Patrias en septiembre, Semana Santa en abril).
Los feriados bancarios en Chile
Chile tiene 16 feriados nacionales. Todos son “feriados bancarios” para efectos prácticos — el sistema financiero local (ACH, transferencias, débito automático) procesa pagos solo en días hábiles.
Los más relevantes para la planificación de cobros:
- Semana Santa: Viernes Santo (y en Chile también el Sábado Santo) — caen en fechas distintas cada año según la fecha de Pascua
- Fiestas Patrias: 18 y 19 de septiembre — cuando el 18 cae martes, el lunes 17 es feriado puente (decretado por gobierno)
- Navidad y Año Nuevo: los más predecibles, pero afectan flujos de cierre anual
Validar si una fecha de cobro es hábil
const API = "https://api.feriados.io/v1";
const KEY = process.env.FERIADOS_API_KEY;
async function validarFechaCobro(fecha) {
const res = await fetch(
`${API}/CL/is-business-day?date=${fecha}`,
{ headers: { "Authorization": `Bearer ${KEY}` } }
);
const { data } = await res.json();
return {
fecha,
esHabil: data.is_business_day,
diaSemana: data.day_of_week
};
}
// Verificar antes de programar un cobro
const resultado = await validarFechaCobro("2026-09-18"); // Fiestas Patrias
// { fecha: "2026-09-18", esHabil: false, diaSemana: "Friday" }
Ajustar automáticamente al día hábil anterior
Para cobros de suscripción o débito automático, la práctica habitual en Chile es adelantar al último día hábil anterior al feriado (no postergar, porque postergar puede afectar el flujo de caja del mes):
async function proximoDiaHabilAnterior(fecha) {
const check = await validarFechaCobro(fecha);
if (check.esHabil) return fecha;
// Buscar el día hábil anterior
const res = await fetch(
`${API}/CL/business-days/subtract?date=${fecha}&days=1`,
{ headers: { "Authorization": `Bearer ${KEY}` } }
);
const { data } = await res.json();
return data.result_date;
}
// El 18 de septiembre no es hábil → el 17 tampoco (feriado puente) → retorna el 16
const fechaCobro = await proximoDiaHabilAnterior("2026-09-18");
// → "2026-09-16" (miércoles)
Último día hábil del mes
Útil para cierres contables, liquidaciones de nómina, y cobros de fin de mes:
async function ultimoDiaHabilMes(year, month) {
// Último día del mes
const lastDay = new Date(year, month, 0).toISOString().slice(0, 10);
const res = await fetch(
`${API}/CL/last-business-day?date=${lastDay}`,
{ headers: { "Authorization": `Bearer ${KEY}` } }
);
const { data } = await res.json();
return data.date;
}
// Último día hábil de septiembre 2026
const cierre = await ultimoDiaHabilMes(2026, 9);
// → "2026-09-30" (miércoles — sep 30 es hábil en 2026)
// Último día hábil de diciembre 2026
const cierreAnual = await ultimoDiaHabilMes(2026, 12);
// → "2026-12-31" (jueves — si es hábil) o día anterior
Calcular la próxima fecha de cobro en un ciclo mensual
Para suscripciones que se cobran “el día N de cada mes”, hay que manejar dos casos: cuando el día N no existe en ese mes (ej. día 31 en febrero) y cuando cae en feriado.
async function proximaFechaCobro(diaDelMes, mesBase, anioBase) {
// Construir la fecha ideal
const diasEnMes = new Date(anioBase, mesBase, 0).getDate();
const diaReal = Math.min(diaDelMes, diasEnMes);
const fechaIdeal = `${anioBase}-${String(mesBase).padStart(2, "0")}-${String(diaReal).padStart(2, "0")}`;
// Verificar si es hábil
const check = await validarFechaCobro(fechaIdeal);
if (check.esHabil) return fechaIdeal;
// Ajustar al día hábil anterior
return proximoDiaHabilAnterior(fechaIdeal);
}
// Suscripción que se cobra el día 18 de cada mes
// En septiembre 2026, el 18 es Fiestas Patrias
const cobro = await proximaFechaCobro(18, 9, 2026);
// → "2026-09-16" (adelantado 2 días por feriado)
Pre-calcular el calendario de cobros del año
Para evitar llamadas en tiempo real en cada cobro, puedes pre-calcular las fechas hábiles de cobro para todo el año y cachearlo:
async function calendarCobrosAnual(diaDelMes, year) {
const cobros = [];
for (let mes = 1; mes <= 12; mes++) {
const fecha = await proximaFechaCobro(diaDelMes, mes, year);
cobros.push({ mes, fechaCobro: fecha });
}
return cobros;
}
const calendario = await calendarCobrosAnual(18, 2026);
// [
// { mes: 1, fechaCobro: "2026-01-19" }, // lunes post-festivo
// { mes: 2, fechaCobro: "2026-02-18" }, // hábil
// { mes: 3, fechaCobro: "2026-03-18" }, // hábil
// { mes: 4, fechaCobro: "2026-04-17" }, // Viernes 17 — hábil (SS el 18)
// { mes: 9, fechaCobro: "2026-09-16" }, // Fiestas Patrias → adelantado
// ...
// ]
Meses críticos en Chile para cobros
| Mes 2026 | Riesgo | Feriado relevante |
|---|---|---|
| Abril | Alto | Viernes Santo (3) + Sábado Santo (4) |
| Septiembre | Alto | Fiestas Patrias (18) + Independencia (19) + posible puente |
| Octubre | Medio | Día de los Pueblos Indígenas (2) |
| Noviembre | Bajo | Día de Todos los Santos (1) |
| Diciembre | Medio | Navidad (25) — impacta cierre del año |
Casos específicos de Semana Santa
Semana Santa es el período de mayor riesgo de error porque sus fechas varían cada año y no es intuitivo. En Chile, Sábado Santo también es feriado (además de Viernes Santo), a diferencia de la mayoría de los países.
// Obtener los feriados de Semana Santa en Chile para cualquier año
async function feriadosSemanaSanta(year) {
const res = await fetch(
`${API}/CL/holidays/${year}`,
{ headers: { "Authorization": `Bearer ${KEY}` } }
);
const { data } = await res.json();
return data.filter(h =>
h.name.includes("Santo") || h.name.includes("Pascua")
);
}
const ss2026 = await feriadosSemanaSanta(2026);
// [
// { date: "2026-04-03", name: "Viernes Santo" },
// { date: "2026-04-04", name: "Sábado Santo" },
// ]
Plan Free incluye is-business-day. last-business-day y los demás endpoints de lógica operativa requieren plan Starter o superior. API key gratis — sin tarjeta →
Ver también: Calcular días hábiles en Chile → · Feriados Chile 2026 → · Chile Holiday API → · Pagos y cobros en fintech →