Resumen de jornada (empresa)

GET /api/v1/attendance/summary

Una fila por empleado con sus totales consolidados en el rango [from, to] (ambos incluidos): minutos trabajados —descansos ya descontados—, minutos esperados según su horario y el saldo entre ambos, más los días trabajados y esperados. Es la consulta de nómina ("horas por empleado este mes"), la contrapartida a Listar fichajes (que es por empleado y por día). Filtrable por estado, departamento y sede como el listado de empleados. Se pagina por empleado; el rango no puede superar 366 días.

Parámetros de consulta

Nombre Tipo Obligatorio Descripción
from string Primer día del rango (YYYY-MM-DD).
to string Último día del rango (YYYY-MM-DD), incluido.
tz string No Zona horaria IANA con la que se agrupan las marcas por día.
status string No Filtra por estado del empleado: 'active' o 'disabled'.
department_id string No Filtra por id de departamento.
work_center_id string No Filtra por id de sede.
page integer No Página (desde 1).
page_size integer No Empleados por página (máx. 100).

Ejemplo

Sustituye db_live_tu_clave por tu clave.

curl -s -H "Authorization: Bearer db_live_tu_clave" \
  "https://api.dutybeat.com/api/v1/attendance/summary?from=2026-06-01&to=2026-06-30&page_size=3" | 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": [
    {
      "user_id": "u-dirg",
      "full_name": "Alberto Vázquez Romero",
      "worked_minutes": 2445,
      "expected_minutes": 10560,
      "balance_minutes": -8115,
      "worked_days": 5,
      "expected_days": 22
    },
    {
      "user_id": "u-estm1",
      "full_name": "Andrés Molina Prieto",
      "worked_minutes": 0,
      "expected_minutes": 10560,
      "balance_minutes": -10560,
      "worked_days": 0,
      "expected_days": 22
    },
    {
      "user_id": "u-delc",
      "full_name": "Antía Ferreiro Lago",
      "worked_minutes": 2400,
      "expected_minutes": 10080,
      "balance_minutes": -7680,
      "worked_days": 5,
      "expected_days": 21
    }
  ],
  "meta": {
    "page": 1,
    "page_size": 3,
    "total": 17
  }
}

Prueba la demo

Déjanos tus datos y accede a tu entorno de prueba al instante.

Para acceder deberás leer y aceptar nuestra Política de Privacidad.

Política de Privacidad

Léela hasta el final para poder continuar.

Al solicitar la demo de DutyBeat tratamos los datos que nos facilitas (nombre, email y teléfono) con el único fin de crear tu entorno de prueba, facilitarte el enlace de acceso y atender tu solicitud comercial. La demo es solo para mayores de 18 años, lo que confirmas en el formulario.

Responsable: DutyBeat. Base jurídica: tu consentimiento y el interés legítimo en responder a tu solicitud. Conservación: el entorno de demo se elimina automáticamente al caducar; conservamos tus datos de contacto como lead comercial un máximo de 12 meses.

No cedemos tus datos a terceros salvo obligación legal ni para fines distintos a los descritos. Puedes ejercer tus derechos de acceso, rectificación, supresión, oposición, limitación y portabilidad escribiendo a [email protected].

Puedes consultar la versión completa en nuestra página de Política de Privacidad.

Al pulsar “He leído y acepto” confirmas haber leído esta información y consientes el tratamiento de tus datos para los fines indicados.