Un error en la nómina no es
solo técnico. Es de confianza.
Colombia tiene 18 feriados y aplica la Ley Emiliani. Chile tiene 16, con feriados irrenunciables específicos. Perú tiene 16, con fechas que dependen de Pascua. Si tu sistema usa el mismo calendario para todos, en algún mes va a estar mal — y el empleado lo va a notar.
Liquidaciones exactas
Días hábiles reales por país, descontando feriados oficiales. Sin aproximaciones ni calendarios hardcodeados.
Empleados que confían
La nómina correcta es invisible. La incorrecta genera reclamos, malestar y rotación.
Alertas de cambios
Con plan Business reciben notificaciones cuando un gobierno modifica su calendario. Sin sorpresas.
Cómo funciona — para el equipo técnico
// Enero 2026 en Colombia (2 feriados)
GET api.feriados.io/v1/CO/business-days/between
?from=2026-01-01&to=2026-01-31
{ "business_days": 19 }
// El mismo mes en Chile (1 feriado)
GET api.feriados.io/v1/CL/business-days/between
?from=2026-01-01&to=2026-01-31
{ "business_days": 21 }
// Mismo mes, distintos días. Cada país es distinto. Días trabajados del mes — nómina variable
import requests, calendar
API = "https://api.feriados.io/v1"
HDR = {"Authorization": "Bearer frd_tu_key"}
def dias_habiles_mes(pais, año, mes):
ultimo = calendar.monthrange(año, mes)[1]
r = requests.get(
f"{API}/{pais}/business-days/between",
params={"from": f"{año}-{mes:02d}-01", "to": f"{año}-{mes:02d}-{ultimo}"},
headers=HDR
)
return r.json()["data"]["business_days"]
# Abril 2026 — cada país tiene su Semana Santa
for pais in ["CL", "CO", "PE", "AR"]:
n = dias_habiles_mes(pais, 2026, 4)
print(f"{pais}: {n} días hábiles en abril")
# CL: 21 CO: 20 PE: 19 AR: 20 México — el problema de los lunes flotantes
Si hardcodeas Feb 5, Mar 21 o Nov 20, tu nómina está mal casi todos los años.
México trasladó tres feriados nacionales al lunes más cercano: Día de la Constitución (primer lunes de febrero), Natalicio de Benito Juárez (tercer lunes de marzo) y Día de la Revolución (tercer lunes de noviembre). La fecha exacta cambia cada año — en 2026 el feriado de febrero es el día 2, no el 5. Un sistema con fechas fijas descuenta el día equivocado y tus empleados lo notan en el recibo.
import requests, calendar
API = "https://api.feriados.io/v1"
HDR = {"Authorization": "Bearer frd_tu_key"}
def dias_habiles_mes(año, mes):
ultimo = calendar.monthrange(año, mes)[1]
r = requests.get(
f"{API}/MX/business-days/between",
params={"from": f"{año}-{mes:02d}-01",
"to": f"{año}-{mes:02d}-{ultimo}"},
headers=HDR
)
return r.json()["data"]["business_days"]
# Meses con lunes flotante en 2026
print(f"Febrero: {dias_habiles_mes(2026, 2)} días hábiles") # feriado = 2 feb, no 5 feb
print(f"Marzo: {dias_habiles_mes(2026, 3)} días hábiles") # feriado = 16 mar, no 21 mar
print(f"Nov: {dias_habiles_mes(2026, 11)} días hábiles") # feriado = 16 nov, no 20 nov
# → 19 22 20
# Con fecha hardcodeada obtendrías 20 21 21 — un día de diferencia en cada mes Febrero 2026
Hardcodeado: 5 feb
Real: 2 feb
19 días hábiles
Marzo 2026
Hardcodeado: 21 mar
Real: 16 mar
22 días hábiles
Noviembre 2026
Hardcodeado: 20 nov
Real: 16 nov
20 días hábiles
El costo real de mantener esto internamente
Un sistema de nómina para 4 países necesita 4 calendarios actualizados. Cuando Argentina decreta un puente con 10 días de aviso, alguien tiene que detectarlo, actualizar, deployar y verificar que ninguna liquidación pendiente quedó mal calculada. Con feriados.io, ese trabajo no existe — el dato está disponible en la API en menos de 24 horas del decreto.
¿Tu empresa tiene días no laborables propios?
Convenios colectivos, vacaciones colectivas, cierre de fin de año. Define esas fechas una vez en un calendario personalizado y los cálculos de nómina las considerarán automáticamente.
Plan Starter — desde $9/mes
Sin calendarios que mantener
Actualizamos los datos cuando cambia la legislación. Tu equipo se concentra en la nómina.