feriados.io ← Inicio
desarrollobugsmejores-practicaslatam

Por qué tu aplicación falla en feriados (y 4 patrones concretos para evitarlo)

Los errores más comunes cuando una app no considera los feriados: pagos que fallan, fechas de entrega incorrectas y cron jobs que corren cuando no deberían.

5 de noviembre de 2025

El 18 de septiembre el equipo de soporte recibe el doble de tickets. El sistema de cobros intentó procesar suscripciones. Los correos automáticos de “tu pedido llega hoy” salieron aunque los correos no abren. Y el cron job de facturación generó 200 documentos que nadie procesará hasta el lunes.

Todo porque nadie le dijo al sistema que ese día era feriado.

Los 4 errores más comunes

1. Cobros automáticos en feriados bancarios

Muchos sistemas de pagos en LATAM no procesan transacciones en feriados bancarios. Si tu plataforma intenta cobrar el 1 de mayo, el pago queda en estado pendiente, el usuario no recibe confirmación y el equipo de soporte recibe reclamos.

Lo más dañino: dependiendo del gateway, el intento fallido puede generar una reversión automática que deja al usuario con cargo duplicado cuando se reintentan los cobros al día siguiente.

// ❌ Esto falla el 1 de mayo en Chile
const cobrar = async (usuarioId) => {
  await stripe.charges.create({ amount: 1990, currency: "clp" });
};

// ✅ Mejor así
const cobrar = async (usuarioId, pais) => {
  const hoy = new Date().toISOString().split("T")[0];
  const res = await fetch(
    `https://api.feriados.io/v1/${pais}/is-business-day?date=${hoy}`,
    { headers: { "Authorization": "Bearer frd_tu_key" } }
  );
  const { data } = await res.json();

  if (!data.is_business_day) {
    await encolarParaMañana(usuarioId);
    return;
  }

  await stripe.charges.create({ amount: 1990, currency: "clp" });
};

2. Promesas de entrega incorrectas en ecommerce

“Tu pedido llega el martes” — pero el martes es Glorias Navales y el courier no opera. El cliente espera, no llega nada, llama a soporte.

El problema es que calcular la fecha de entrega solo sumando días calendario es incorrecto. Hay que sumar días hábiles considerando los feriados del país del destinatario.

Una empresa que opera en Chile, Colombia y México tiene que considerar tres calendarios distintos. Un mismo día puede ser hábil en dos países y feriado en el tercero.

3. Cron jobs que no deberían correr

Los jobs programados son los culpables silenciosos. Un job que genera reportes de ventas, envía notificaciones a clientes o sincroniza datos con un ERP no debería correr en feriados, o al menos debería saberlo.

# ❌ Corre igual el 18 de septiembre
@cron("0 9 * * 1-5")
def generar_reporte_diario():
    reporte = calcular_ventas_del_dia()
    enviar_por_correo(reporte, destinatarios)

# ✅ Verifica antes de correr
@cron("0 9 * * 1-5")
def generar_reporte_diario():
    pais = obtener_pais_operacion()
    hoy = date.today().isoformat()

    res = requests.get(
        f"https://api.feriados.io/v1/{pais}/is-business-day",
        params={"date": hoy},
        headers={"Authorization": f"Bearer {os.environ['FERIADOS_API_KEY']}"}
    )
    data = res.json()["data"]

    if not data["is_business_day"]:
        logger.info("Feriado — reporte omitido")
        return

    reporte = calcular_ventas_del_dia()
    enviar_por_correo(reporte, destinatarios)

4. Plazos contractuales mal calculados

En contratos con cláusulas de días hábiles, un error en el cálculo puede ser un incumplimiento legal. Si un contrato dice “entrega en 10 días hábiles” y el sistema cuenta días calendario, la diferencia puede ser de 3 a 5 días dependiendo del mes.

En el ámbito legal y tributario esto no es un bug menor — es un incumplimiento con consecuencias.


¿Tu app tiene alguno de estos problemas? Prueba el endpoint is-business-day gratis → — sin tarjeta, 1.000 requests/mes en el plan Free.


Por qué pasa esto

Nadie planifica para los feriados cuando desarrolla una funcionalidad. Los tests se corren en días normales. El staging no tiene los feriados del año próximo. Y los feriados extraordinarios —como el plebiscito de 2022 en Chile o los feriados de campaña en México— son imposibles de anticipar sin una fuente que los monitoree.

La solución

Centralizar la lógica de días hábiles en un servicio externo que:

  1. Se mantiene actualizado automáticamente con los feriados oficiales
  2. Cubre múltiples países con la misma interfaz
  3. Incluye alertas cuando cambia la legislación

Eso es exactamente lo que hace la API de feriados.io. Un endpoint simple que responde si una fecha es hábil, cuál es el próximo feriado y cuántos días hábiles hay entre dos fechas — para 11 países de Latinoamérica, siempre actualizado.

# ¿Es hábil hoy en Colombia?
GET /v1/CO/is-business-day?date=2026-06-29

# ¿Cuántos días hábiles hay entre estas fechas en México?
GET /v1/MX/business-days/between?from=2026-04-01&to=2026-04-30

# ¿Cuál es el próximo feriado en Perú?
GET /v1/PE/next-holiday

La primera llamada es gratis. No necesitas tarjeta para empezar.


Ver también: Pagos y feriados en fintech LATAM → · Cron jobs y feriados → · Documentación completa →

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