Praesenti
API

Registros de fichada (Clockio)

Obtener registros de entrada/salida

Obtiene los registros de entrada y salida (clockios) con detalles del empleado, su categoría y su área, ordenados del más reciente al más antiguo.

Para filtrar por fecha hay que enviar from y to juntos; el rango no puede superar los 31 días. Si falta alguno de los dos, se devuelven los últimos 50 registros.

Método: GET /clockio

Parámetros de Query

ParámetroTipoRequeridoDescripción
fromstring (RFC3339)❌Fecha inicial (ej: 2025-08-22T00:00:00.000-03:00). Si no se envía junto con to, obtiene los últimos 50 registros
tostring (RFC3339)❌Fecha final (ej: 2025-08-30T00:00:00.000-03:00). Máximo 31 días después de from
employeeIDsstring❌IDs de empleados separados por comas
areaIDsstring❌IDs de áreas separadas por comas

Respuesta exitosa (200)

[
  {
    "id": 35085,
    "createdAt": "2026-04-24T17:25:56.498Z",
    "updatedAt": "2026-04-24T23:08:20.605Z",
    "deletedAt": null,
    "start": "2026-04-24T14:25:56.497Z",
    "end": "2026-04-24T20:08:20.604Z",
    "startTerminal": 89,
    "endTerminal": 89,
    "startType": "manual",
    "endType": "manual",
    "employeeID": 164,
    "employeeName": "Maria Mendoza",
    "categoryName": "ENFERMERIA",
    "areaName": "INTERNACION",
    "areaColor": "#AED4BD",
    "modifiedBy": null
  },
  {
    "id": 35082,
    "createdAt": "2026-04-24T15:58:33.509Z",
    "updatedAt": "2026-04-24T23:01:50.528Z",
    "deletedAt": null,
    "start": "2026-04-24T12:58:33.496Z",
    "end": "2026-04-24T20:01:50.528Z",
    "startTerminal": 83,
    "endTerminal": 89,
    "startType": "manual",
    "endType": "manual",
    "employeeID": 166,
    "employeeName": "Pablo Guzman",
    "categoryName": "LIMPIEZA",
    "areaName": "LIMPIEZA Y MANTENIMIENTO",
    "areaColor": "#B0BBCF",
    "modifiedBy": null
  }
]

Códigos de respuesta

CódigoDescripción
200Exitoso
400Fecha con formato inválido o rango mayor a 31 días
500Error interno del servidor

Los campos startType y endType indican cómo se registró la entrada y la salida: QR o faceID (fichada con código QR o reconocimiento facial), manual (cargada desde el panel) o API (creada o modificada a través de esta API).


Crear un registro de fichada

Crea un nuevo registro de entrada/salida para un empleado. start es obligatorio; end es opcional (si no se envía, el registro queda abierto). Ninguna de las dos fechas puede estar en el futuro y end no puede ser anterior a start.

Método: POST /employees/:id/clockio

Parámetros

ParámetroTipoDescripción
idstringID del empleado

Body requerido

{
  "start": "2025-08-30T11:00:05Z",
  "end": "2025-08-30T15:30:00Z"
}

Respuesta exitosa (201)

{
  "id": 35086,
  "createdAt": "2026-04-24T17:25:56.498Z",
  "updatedAt": "2026-04-24T17:25:56.498Z",
  "deletedAt": null,
  "start": "2025-08-30T11:00:05Z",
  "end": "2025-08-30T15:30:00Z",
  "startTerminal": null,
  "endTerminal": null,
  "startType": "API",
  "endType": "API",
  "employeeID": 164
}

Códigos de respuesta

CódigoDescripción
201Registro creado exitosamente
400Solicitud inválida, fecha en el futuro, end anterior a start o empleado archivado
404Empleado no encontrado
409Solapamiento de fichadas
500Error interno del servidor

Actualizar un registro de fichada

Actualiza un registro existente de entrada/salida. Se aplican las mismas reglas que al crear. Si cambia start o end, se borra la terminal asociada a ese extremo y su tipo pasa a API.

Método: PUT /clockio/:id

Parámetros

ParámetroTipoDescripción
idstringID del registro

Body

{
  "start": "2026-04-24T14:25:56.497Z",
  "end": "2026-04-24T20:08:20.604Z"
}

Respuesta exitosa (200)

{
  "id": 35086,
  "createdAt": "2026-04-24T17:25:56.498Z",
  "updatedAt": "2026-04-24T17:25:56.498Z",
  "deletedAt": null,
  "start": "2026-04-24T14:25:56.497Z",
  "end": "2026-04-24T20:08:20.604Z",
  "startTerminal": 89,
  "endTerminal": null,
  "startType": "QR",
  "endType": "API",
  "employeeID": 164
}

Códigos de respuesta

CódigoDescripción
200Actualizado exitosamente
400Solicitud inválida, fecha en el futuro o end anterior a start
404Registro no encontrado
409Solapamiento de fichadas
500Error interno del servidor

Eliminar un registro de fichada

Elimina un registro de entrada/salida.

Método: DELETE /clockio/:id

Parámetros

ParámetroTipoDescripción
idstringID del registro

Respuesta exitosa (200)

{
  "message": "deleted successfuly",
  "deleted": true
}

Códigos de respuesta

CódigoDescripción
200Eliminado exitosamente
404Registro no encontrado
500Error interno del servidor