Calcular días hábiles
Prometer una entrega en 'cinco días hábiles' significa algo distinto en Tokio, Toronto y Buenos Aires en cuanto un festivo oficial cae en el calendario. Esta API para calcular días hábiles cuenta o suma días laborables considerando fines de semana y festivos oficiales de más de 100 países, así esa promesa se cumple sin importar dónde caiga el calendario.
Ejecutar — gratis
Corre en su navegador. Gratis y sin límite: sus datos no salen de esta página.
Por qué 'día hábil' es más difícil de lo que suena
Una versión ingenua de este cálculo simplemente salta sábados y domingos, lo cual funciona bien hasta que un festivo nacional cae un miércoles y rompe silenciosamente cada acuerdo de nivel de servicio, fecha de vencimiento de factura o estimado de envío construido encima. Equipos de finanzas calculando fechas de liquidación, plataformas de logística cotizando ventanas de entrega y sistemas de recursos humanos rastreando licencias necesitan la misma respuesta de fondo: cuántos días laborables reales hay entre dos fechas en un país específico, o qué fecha cae N días hábiles desde hoy. Equivocarse no rompe nada visible, solo produce en silencio una fecha desviada por uno, dos o tres días, lo cual suele ser peor que un error evidente porque nadie lo nota hasta que un cliente se queja.
Cómo son la solicitud y la respuesta
POST /dev/business-days acepta una fecha de inicio, un código de país y, o una fecha objetivo para contar días hábiles entre dos puntos, o un número de días hábiles a sumar o restar desde la fecha de inicio. La tarea se pone en cola de forma asíncrona y devuelve un task_id de inmediato; el conteo o la fecha resultante se entrega por webhook firmado o por un enlace firmado válido por 24 horas, listo para usarse directamente en una factura, una etiqueta de envío o un calendario de licencias.
Los festivos oficiales no son una lista fija
A diferencia de los fines de semana, que son estables, los festivos oficiales se mueven: algunos son fechas fijas del calendario, otros siguen calendarios lunares o religiosos y cambian cada año, y algunos son declarados por autoridades regionales o municipales además de los nacionales. Mantener un calendario de festivos preciso y actualizado para un solo país ya es una carga real de mantenimiento; mantenerlo correctamente para más de cien, año tras año, es el problema específico que este endpoint existe para absorber, de modo que cada aplicación no tenga que hacerlo por su cuenta.
Cómo encaja en un sistema más grande
Como el endpoint recibe un código de país como parámetro, una sola integración puede atender clientes u oficinas de varias regiones sin lógica ramificada para cada una, útil tanto para plataformas de comercio electrónico globales como para sistemas de nómina y mesas de soporte multinacionales. Encaja de forma natural con automatización de programación, facturación o seguimiento de acuerdos de nivel de servicio que ya llama a otros endpoints dentro del mismo flujo. El precio es de $0.002 por solicitud, así que recalcular fechas de vencimiento en un lote grande de pedidos o facturas se mantiene económico incluso a volumen.
Acceso y estado actual
Usar el endpoint requiere saldo prepago; sin saldo, las solicitudes devuelven HTTP 402 en vez de un cálculo incompleto, y una solicitud fallida nunca se cobra una vez agotados sus reintentos. El endpoint está activo ahora, cubriendo los calendarios de festivos de más de 100 países, y las fechas enviadas para el cálculo se descartan después de la ventana de entrega, nunca se usan para entrenar modelos.
Qué puede hacer con ella
Cálculo de acuerdos de entrega y nivel de servicio
Sume cinco días hábiles a la fecha de un pedido en el país del cliente para cotizar una ventana de entrega precisa que considere los festivos locales.
Fechas de vencimiento de facturas
Calcule correctamente una fecha de vencimiento a 30 días hábiles en países con calendarios de festivos distintos dentro del mismo ciclo de facturación.
Seguimiento de licencias en recursos humanos
Cuente los días hábiles reales entre el inicio y el fin de una solicitud de licencia, excluyendo fines de semana y festivos en el país del empleado.
Planeación logística multipaís
Determine el siguiente día hábil después de que un envío sale del almacén en cada país de destino antes de programar el despacho aduanero.
Preguntas frecuentes
¿Cómo funciona esta api para calcular días hábiles?
Envía una fecha de inicio, un código de país y una fecha objetivo o un número de días a POST /dev/business-days, y devuelve el conteo o la fecha resultante por webhook o por un enlace firmado.
¿Considera festivos oficiales y no solo fines de semana?
Sí, excluye tanto fines de semana como festivos oficiales del país indicado, no solo sábados y domingos.
¿Cuántos países cubre el calendario de festivos?
Cubre festivos oficiales de más de 100 países, seleccionables por código de país en la solicitud.
¿Hay un nivel gratuito para esta api?
La herramienta de arriba es gratis en su navegador. La API es de pago: cada llamada se descuenta de su saldo prepago de ForHosting KIT — se recarga desde $10.00 (no caduca), se paga el precio publicado de cada solicitud, y una llamada sin saldo devuelve HTTP 402. Sin suscripción, sin tokens, y una tarea fallida no se cobra.
¿Cuánto cuesta la api de días hábiles?
Cuesta un plano $0.002 por solicitud sin importar el país o el rango de fechas.
¿Puede sumar días hábiles a una fecha, no solo contarlos?
Sí, indique un número de días hábiles en lugar de una fecha objetivo y devuelve la fecha resultante después de saltar fines de semana y festivos.
¿Está activa la api de días hábiles ahora mismo?
Sí, está activa y aceptando solicitudes para todo su conjunto de países soportados.
¿Puedo procesar cálculos de días hábiles para muchos pedidos a la vez?
Envíe una solicitud por cálculo; cada una se procesa y se cobra de forma independiente, lo cual funciona bien para procesar en lote listas grandes de pedidos o facturas.
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, y pronto desde nuestra app, el email y Telegram.
Llámela desde su stack
curl -X POST https://api.kit.forhosting.com/dev/business-days \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"items":["valor-1","valor-2"]}'const res = await fetch("https://api.kit.forhosting.com/dev/business-days", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"items": [
"valor-1",
"valor-2"
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev/business-days",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"items": [
"valor-1",
"valor-2"
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev/business-days", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"items":["valor-1","valor-2"]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"items":["valor-1","valor-2"]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev/business-days", 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
{
"items": [
"valor-1",
"valor-2"
]
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.business_days",
"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. |