feriados.io ← Inicio
chilecobrosfintechdias-habilestutorial

Validar fechas de cobro en Chile: feriados, fin de mes y días hábiles bancarios

Cómo validar fechas de cobro, vencimientos y pagos en Chile considerando feriados bancarios, fines de mes y días hábiles. Con ejemplos de código para fintech y e-commerce.

19 de marzo de 2026

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:

Validar si una fecha de cobro es hábil

javascript Verificar si una fecha de cobro es hábil en Chile
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):

javascript Buscar el día hábil anterior cuando el cobro cae en feriado
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:

javascript Obtener el último día hábil del mes en Chile
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.

javascript Fecha de cobro mensual ajustada a día hábil anterior si 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:

javascript Generar el calendario de cobros anual para cachear
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

Riesgo por mes — Chile 2026

Feriados con mayor impacto en cobros y facturación

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.

javascript Obtener 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

Integra feriados.io en tu proyecto

API key gratis en 30 segundos. Sin tarjeta. 11 países de Latinoamérica, siempre actualizada con los feriados oficiales.

← Ver todos los artículos