Crear ausencia
POST
/api/v1/absences Registra una ausencia en nombre de un empleado (user_id). Entra pendiente de aprobación o ya aprobada según el tipo, igual que si la solicitara el propio empleado en la app (se aplican las mismas reglas: solapamiento, saldo de vacaciones, tramos por horas). Para una ausencia por horas envía start_time y end_time (mismo día). Devuelve la ficha de la ausencia creada (201). Requiere que la clave pueda administrar empleados (permiso de empleados).
Cuerpo (JSON)
| Nombre | Tipo | Obligatorio | Descripción |
|---|---|---|---|
user_id | string | Sí | Empleado al que pertenece la ausencia. |
type | string | Sí | Clave del tipo de ausencia (ver absence-types.list). |
start_date | string | Sí | Primer día (YYYY-MM-DD). No puede ser pasado. |
end_date | string | Sí | Último día (YYYY-MM-DD), incluido. |
start_time | string | No | Solo por horas: hora de inicio (HH:MM), mismo día. |
end_time | string | No | Solo por horas: hora de fin (HH:MM). |
note | string | No | Nota opcional para la solicitud. |
Ejemplo
Sustituye db_live_tu_clave por tu clave.
curl -s -X POST -H "Authorization: Bearer db_live_tu_clave" \
-H "Content-Type: application/json" \
-d '{"user_id":"u-delm","type":"vacation","start_date":"2026-08-10","end_date":"2026-08-14"}' \
"https://api.dutybeat.com/api/v1/absences" | jq Respuesta de ejemplo
Lo que imprime cada snippet al ejecutarlo: cURL devuelve el JSON crudo; los snippets de Python y PowerShell piden campos concretos, así que su salida es la de cada uno.
{
"data": {
"id": "abs-nueva",
"user_id": "u-delm",
"type": {
"key": "vacation",
"label": "Vacaciones"
},
"status": "pending",
"start_date": "2026-08-10",
"end_date": "2026-08-14",
"start_time": null,
"end_time": null,
"created_at": "2026-07-12T10:00:00.000Z",
"decided_at": null
}
}