AttendanceBook

 


POST https://customerapi.geovictoria.com/api/v1/AttendanceBook

 

Descripción

Obtener el libro de asistencia con los valores calculados (horas trabajadas, no trabajadas, horas extra,
atrasos, marcas, turnos y permisos) para un periodo de tiempo y un conjunto de usuarios. Entrega un objeto por usuario
con el detalle diario agrupado en semanas, además de los valores de hora extra configurados de la empresa.

Request

Request Body

 

Campos Tipo de dato Descripción
StartDate String Fecha inicial de consulta. Formato yyyyMMddHHmmss. Requerido
EndDate String Fecha final de consulta. Formato yyyyMMddHHmmss. Requerido
UserIds String Lista de identificadores de usuario separados por coma. Requerido

Ejemplo request

{
      "StartDate": "20240501000000",
      "EndDate": "20240531235959",
      "UserIds": "15715287,76831428"
  }

 

Importante

  • Utilice este método si su empresa trabaja con valores diarios. Si su empresa trabaja con
    periodos semanales ajustados, no debe usar este endpoint.
  • Los montos de horas se devuelven en formato HH:MM.
  • Los campos de horas extra cumplidas/asignadas (AccomplishedExtraTime,
    AssignedExtraTime, etc.) son objetos cuyas claves corresponden al identificador del tipo de
    hora extra
    y su valor a las horas acumuladas (HH:MM).
  • Los campos booleanos se devuelven como string True / False.

Response

Response Body

 

Campos Tipo de dato Descripción
Users Array Lista de usuarios con sus valores calculados (ver detalle abajo)
ExtraTimeValues Array Valores de hora extra configurados por la empresa (ver detalle abajo)

 

Users

 

Campos Tipo de dato Descripción
Id String Identificador interno único del usuario
Identifier String Identificador del usuario (RUT/cédula u otro)
Enabled String Indica si el usuario está habilitado (True / False)
Name String Nombre del usuario
LastName String Apellido del usuario
Email String Correo electrónico corporativo
PersonalEmail String Correo electrónico personal
GroupDescription String Descripción del grupo al que pertenece el usuario
CostCenterCode String Código del centro de costos
PositionId String Identificador del cargo
PositionDescription String Descripción del cargo
WeeklyWorkingHoursCodeId String Identificador del código de jornada semanal
WeeklyWorkingHoursCodeDescription String Descripción del código de jornada semanal
CustomColumn1 String Columna personalizada 1
CustomColumn2 String Columna personalizada 2
CustomColumn3 String Columna personalizada 3
IsHiddenForReports String Indica si el usuario está oculto en los reportes (True / False)
ContractDate String Fecha de contrato (yyyyMMddHHmmss)
EndContractDate String Fecha de término o desactivación automática (yyyyMMddHHmmss)
SchedulerId String Identificador del planificador asignado
SchedulerStart String Fecha de inicio del planificador (yyyyMMddHHmmss)
SchedulerPeriodStart String Fecha de inicio del ciclo del planificador (yyyyMMddHHmmss)
IntegrationCode String Código de integración del usuario
UserCompanyIdentifier String Identificador de la razón social asociada al usuario
Birthdate String Fecha de nacimiento (yyyyMMdd)
Age String Edad del usuario
Gender String Género del usuario. Solo se muestra si la empresa tiene habilitado el privilegio correspondiente
TotalWorkedHours String Total de horas trabajadas en el periodo (HH:MM)
TotalNonWorkedHours String Total de horas no trabajadas en el periodo (HH:MM)
TotalAccomplishedOvertime String Total de horas extra cumplidas en el periodo (HH:MM)
TotalPlannedTime String Total de tiempo planificado en el periodo (HH:MM)
WorkedDays Number Cantidad de días trabajados
NonWorkedDays Number Cantidad de días con turno “No trabaja”
Absences Number Cantidad de días sin marca teniendo turno asignado (incluye días “Sin turno”)
DaysAttended Number Cantidad de días asistidos
Holidays Number Cantidad de feriados en el periodo
Vacation Number Cantidad de días de vacaciones
DaysLeaveWithPay Number Cantidad de días de permiso con goce de sueldo
DaysLeaveWithoutPay Number Cantidad de días de permiso sin goce de sueldo
AbsenceDaysWithoutJustification Number Cantidad de días de inasistencia sin justificación
AbsenceDaysLicense Number Cantidad de días de inasistencia por licencia médica
WorkedSundays Number Cantidad de domingos trabajados
WorkedHolidays Number Cantidad de feriados trabajados
TotalSundayWorkedHours String Total de horas trabajadas en domingos según planificación (HH:MM)
TotalSundayActualWorkedHours String Total de horas realmente trabajadas en domingos (HH:MM)
TotalHolidayWorkedHours String Total de horas trabajadas en feriados según planificación (HH:MM)
TotalHolidayActualWorkedHours String Total de horas realmente trabajadas en feriados (HH:MM)
TotalDiurnalWorkedHours String Total de horas trabajadas diurnas (HH:MM)
TotalNocturnalWorkedHours String Total de horas trabajadas nocturnas según planificación (HH:MM)
TotalNocturnalActuallyWorkedHours String Total de horas realmente trabajadas nocturnas (HH:MM)
TotalWorkedHoursOnRest String Total de horas trabajadas en días de descanso (HH:MM)
OvertimeAssigned String Total de horas extra asignadas (HH:MM)
TotalOvertimeHoursAccomplished String Total de horas extra cumplidas (HH:MM)
TotalOvertimeAssignment String Total de la asignación de horas extra (HH:MM)
OvertimeAuthorizedBefore String Horas extra autorizadas antes de la jornada (HH:MM)
OvertimeAuthorizedAfter String Horas extra autorizadas después de la jornada (HH:MM)
TotalHoursProfit String Total de horas beneficio (HH:MM)
TotalOvertime Object Total de horas extra por tipo. La clave es el identificador del tipo de hora extra y el valor las horas acumuladas
(HH:MM)
TotalOvertimeDiurnal Object Total de horas extra diurnas por tipo (clave = id tipo de hora extra, valor HH:MM)
TotalOvertimeNocturnal Object Total de horas extra nocturnas por tipo (clave = id tipo de hora extra, valor HH:MM)
TotalsDaysCounted Object Totales de días contabilizados (ver detalle abajo)
AbsentDays Array Lista de días de ausencia (ver detalle abajo)
PlannedInterval Array Intervalos planificados del periodo (mismo formato que Intervals, ver detalle abajo)
Weeks Array Detalle semanal del periodo (ver detalle abajo)

 

TotalsDaysCounted

 

Campos Tipo de dato Descripción
DayWithPay Number Cantidad total de días con pago
DayWithoutPay Number Cantidad total de días sin pago
AttendedDay Number Cantidad de días asistidos
RestDay Number Cantidad de días de descanso
ShouldNotWorkHoliday Number Cantidad de feriados que el usuario no debe trabajar
TimeOffWithPay Number Cantidad de días de permiso con goce de sueldo
Absences Number Cantidad de ausencias
TimeOffWithoutPay Number Cantidad de días de permiso sin goce de sueldo
ShouldWorkHoliday Number Cantidad de feriados que el usuario debe trabajar
AttendedHoliday Number Cantidad de feriados asistidos
AttendedSunday Number Cantidad de domingos asistidos
Vacations Number Cantidad de días de vacaciones
MedicalLicense Number Cantidad de días de licencia médica

 

AbsentDays

 

Campos Tipo de dato Descripción
Date String Fecha del día (yyyyMMddHHmmss)
Absent String Indica si el usuario estuvo ausente ese día (True / False)
HasDelay String Indica si hubo atraso en la entrada (True / False)
Delay String Tiempo de atraso de la entrada (HH:MM)

 

Weeks

 

Campos Tipo de dato Descripción
Intervals Array Intervalos diarios de la semana (ver detalle abajo)
WorkedHours String Horas trabajadas en la semana (HH:MM)
NonWorkedHours String Horas no trabajadas en la semana (HH:MM)
ActualWorkedHours String Horas realmente trabajadas en la semana (HH:MM)
TotalOvertime String Total de horas extra de la semana (HH:MM)
TotalApprovedOvertime String Total de horas extra aprobadas en la semana (HH:MM)
JustifiedHours String Horas justificadas en la semana (HH:MM)
PlannedHours String Horas planificadas en la semana (HH:MM)
SundaysWorkedHours String Horas trabajadas en domingos durante la semana (HH:MM)
HolidaysWorkedHours String Horas trabajadas en feriados durante la semana (HH:MM)
SundaysOvertime String Horas extra en domingos durante la semana (HH:MM)
SpecialOvertime String Horas trabajadas en un turno especial (HH:MM)
HoursPartTime String Horas part-time de la semana (HH:MM)
HE7D String Horas extra correspondientes al séptimo día (HH:MM)
ProfitHours String Horas beneficio de la semana (HH:MM)
AllDaysLocked Boolean Indica si todos los días de la semana están bloqueados
TotalLunchTimeTaken String Tiempo total de colación tomado en la semana (HH:MM)
TotalPlannedLunchTime String Tiempo total de colación planificado en la semana (HH:MM)
TotalExtraTime String Total de tiempo extra de la semana (HH:MM)
CompensatedWorkedTime String Tiempo trabajado compensado en la semana (HH:MM)
TotalWeekOvertimeAssignment String Total de asignación de horas extra de la semana (HH:MM)

 

Intervals / PlannedInterval

 

Campos Tipo de dato Descripción
Date String Fecha del intervalo (yyyyMMddHHmmss)
Punches Array Marcas del intervalo (ver detalle abajo)
Shifts Array Turnos del intervalo (ver detalle abajo)
TimeOffs Array Permisos del intervalo (ver detalle abajo)
Delay String Atraso en la entrada (HH:MM)
BreakDelay String Atraso en la entrada de colación (HH:MM)
EarlyLeave String Adelanto en la salida (HH:MM)
DelayTimeAfterCompensation String Atraso restante luego de compensación (HH:MM)
EarlyLeaveTimeAfterCompensation String Adelanto de salida restante luego de compensación (HH:MM)
WorkedHours String Horas trabajadas en el intervalo (HH:MM)
NonWorkedHours String Horas no trabajadas en el intervalo (HH:MM)
ActuallyNocturnalWorkedHours String Horas nocturnas realmente trabajadas (HH:MM)
Absent String Indica si el usuario estuvo ausente (True / False)
Holiday String Indica si el día es feriado (True / False)
Worked String Indica si el usuario trabajó (True / False)
CoveredNonWorkingHours String Horas que cubren horas no trabajadas (HH:MM)
AuthorizedOvertimeBefore String Horas extra autorizadas antes de la jornada (HH:MM)
AuthorizedOvertimeAfter String Horas extra autorizadas después de la jornada (HH:MM)
TotalAuthorizedOvertime String Total de horas extra autorizadas en el intervalo (HH:MM)
ExtraTimeBeforeShift String Tiempo extra antes del turno (HH:MM)
ExtraTimeAfterShift String Tiempo extra después del turno (HH:MM)
OvertimeAuthorizedBy String Usuario o responsable que autorizó las horas extra
AccomplishedExtraTimeBefore Object Horas extra cumplidas antes de la jornada por tipo (clave = id tipo, valor HH:MM)
AccomplishedExtraTimeAfter Object Horas extra cumplidas después de la jornada por tipo (clave = id tipo, valor HH:MM)
AccomplishedExtraTime Object Horas extra cumplidas totales por tipo (clave = id tipo, valor HH:MM)
AssignedExtraTimeBefore Object Horas extra asignadas antes de la jornada por tipo (clave = id tipo, valor HH:MM)
AssignedExtraTimeAfter Object Horas extra asignadas después de la jornada por tipo (clave = id tipo, valor HH:MM)
AssignedExtraTime Object Horas extra asignadas totales por tipo (clave = id tipo, valor HH:MM)

 

Punches

 

Campos Tipo de dato Descripción
PunchId String Identificador único de la marca
Type String Tipo de marca (entrada / salida)
Date String Fecha y hora de la marca (yyyyMMddHHmmss)
Origin String Origen de la marca (reloj, web, app, etc.)
Longitude String Longitud GPS de la marca
Latitude String Latitud GPS de la marca
Accuracy String Margen de error del GPS
GroupDescription String Descripción del grupo asociado a la marca
JustifiedTimeJustification String Justificación del tiempo justificado
UploadDate String Fecha de subida de la marca (yyyyMMddHHmmss)
ShiftPunchType String Tipo de marca dentro del turno
UserIdentifier String Identificador del usuario dueño de la marca
AssignedInBook Boolean Indica si la marca está asignada en el libro de asistencia
CallerId String Identificador telefónico (ANI) de la marca
BoxSn String Número de serie del reloj que registró la marca
IdProject String Identificador del proyecto asociado a la marca
IdTask String Identificador de la tarea asociada a la marca
Checksum String Checksum de validación de la marca

 

Shifts

 

Campos Tipo de dato Descripción
Id String Identificador único del turno
Begins String Fecha y hora de inicio del turno (yyyyMMddHHmmss)
Ends String Fecha y hora de término del turno (yyyyMMddHHmmss)
StartTime String Hora de inicio del turno (HH:MM)
MaxStartTime String Hora máxima de inicio del turno (HH:MM)
ExitTime String Hora de salida del turno (HH:MM)
Type String Tipo de turno
FixedShiftHours String Horas fijas del turno (HH:MM)
ShiftDisplay String Nombre o representación visible del turno
BreakType String Tipo de colación
BreakMinutes String Minutos de colación
BreakStart String Hora de inicio de la colación (HH:MM)
BreakEnd String Hora de término de la colación (HH:MM)
Status String Estado del turno (Enabled / Disabled)
Custom String Valor personalizado del turno

 

TimeOffs

 

Campos Tipo de dato Descripción
Id String Identificador único del permiso
TimeOffTypeId String Identificador del tipo de permiso
Description String Descripción del permiso
Starts String Fecha y hora de inicio del permiso (yyyyMMddHHmmss)
Ends String Fecha y hora de término del permiso (yyyyMMddHHmmss)
TimeOffTypeDescription String Descripción del tipo de permiso (traducida)
TimeOffOrigin String Origen del permiso
UserIdentifier String Identificador del usuario dueño del permiso
StartTime String Hora de inicio del permiso
EndTime String Hora de término del permiso
HolidayPeriod String Periodo del saldo de vacaciones ocupado (para permisos de Feriado Legal o Progresivo)
HolidayTypeCode String Código del tipo de goce del permiso (para permisos de Feriado Legal o Progresivo)
ExternalId String Identificador externo del permiso
AmountHours String Cantidad de horas del permiso (solo relevante para permisos por cantidad de horas)
Assignment String Asignación del permiso respecto al turno (ShiftStart / ShiftEnd)

 

ExtraTimeValues

 

Campos Tipo de dato Descripción
ValueId String Identificador único del valor de hora extra
Value String Valor o porcentaje de la hora extra
IsActive String Indica si el valor de hora extra está activo (True / False)

 

Códigos

 

Código Descripción
200 Éxito
400 Error en el request

Ejemplo response

{
      "Users": [
          {
              "PlannedInterval": [
                  {
                      "Date": "20260501000000",
                      "Punches": [],
                      "Shifts": [
                          {
                              "Ends": "20260502000000",
                              "Begins": "20260501000000",
                              "Id": "EhKM7eLolc9WkWAmVCjZcw",
                              "StartTime": "00:00",
                              "MaxStartTime": "",
                              "ExitTime": "00:00",
                              "Type": "NotWorking",
                              "FixedShiftHours": "00:00",
                              "ShiftDisplay": "Break",
                              "BreakMinutes": "",
                              "BreakStart": "00:00",
                              "BreakEnd": "00:00",
                              "Status": "enabled",
                              "Custom": ""
                          }
                      ],
                      "Delay": "00:00",
                      "BreakDelay": "00:00",
                      "EarlyLeave": "00:00",
                      "DelayTimeAfterCompensation": "00:00",
                      "EarlyLeaveTimeAfterCompensation": "00:00",
                      "TimeOffs": [],
                      "WorkedHours": "00:00",
                      "Absent": "False",
                      "Holiday": "True",
                      "Worked": "False",
                      "NonWorkedHours": "00:00",
                      "ActuallyNocturnalWorkedHours": "00:00",
                      "CoveredNonWorkingHours": "00:00",
                      "AuthorizedOvertimeBefore": "00:00",
                      "AuthorizedOvertimeAfter": "00:00",
                      "TotalAuthorizedOvertime": "00:00",
                      "AccomplishedExtraTimeBefore": {},
                      "AccomplishedExtraTimeAfter": {},
                      "AccomplishedExtraTime": {},
                      "AssignedExtraTimeBefore": {},
                      "AssignedExtraTimeAfter": {},
                      "AssignedExtraTime": {},
                      "ExtraTimeBeforeShift": "00:00",
                      "ExtraTimeAfterShift": "00:00"
                  },
                  {
                      "Date": "20260504000000",
                      "Punches": [
                          {
                              "Type": "Ingreso",
                              "Date": "20260504070000",
                              "Origin": "RCGPRS",
                              "GroupDescription": "dinatech mobile sas - 2001",
                              "UploadDate": "20260504120057",
                              "ShiftPunchType": "Entrada",
                              "AssignedInBook": true,
                              "BoxSn": "CKQX212460008",
                              "IdTask": "",
                              "IdProject": "",
                              "PunchId": "TJfO5jDKx59qWuzijAVSdQ",
                              "Checksum": "SgKFLFZVO6hIIau03rOdt4d2hmjhIYZrEytONk4L09KHffa"
                          },
                          {
                              "Type": "Salida",
                              "Date": "20260504180000",
                              "Origin": "RCGPRS",
                              "GroupDescription": "dinatech mobile sas - 2001",
                              "UploadDate": "20260504230014",
                              "ShiftPunchType": "Salida",
                              "AssignedInBook": true,
                              "BoxSn": "3316201807148",
                              "IdTask": "",
                              "IdProject": "",
                              "PunchId": "kD5nugTsYaCHbDh_-ns1Og",
                              "Checksum": "SgKFLFZVO6hIIau03rOdtyxZj3AlwhzbRAzISaTMIy94Jvn"
                          }
                      ],
                      "Shifts": [
                          {
                              "Ends": "20260504160000",
                              "Begins": "20260504070000",
                              "Id": "-8K921C_fnri5yeIm6TgHA",
                              "StartTime": "07:00",
                              "MaxStartTime": "",
                              "ExitTime": "16:00",
                              "Type": "FixedShift",
                              "FixedShiftHours": "00:00",
                              "ShiftDisplay": "07:00 - 16:00 (60 mins)",
                              "BreakType": "FreeLunch",
                              "BreakMinutes": "60",
                              "BreakStart": "00:00",
                              "BreakEnd": "00:00",
                              "Status": "enabled",
                              "Custom": ""
                          }
                      ],
                      "Delay": "00:00",
                      "BreakDelay": "00:00",
                      "EarlyLeave": "00:00",
                      "DelayTimeAfterCompensation": "00:00",
                      "EarlyLeaveTimeAfterCompensation": "00:00",
                      "TimeOffs": [],
                      "WorkedHours": "08:00",
                      "Absent": "False",
                      "Holiday": "False",
                      "Worked": "True",
                      "NonWorkedHours": "00:00",
                      "ActuallyNocturnalWorkedHours": "00:00",
                      "CoveredNonWorkingHours": "00:00",
                      "AuthorizedOvertimeBefore": "00:00",
                      "AuthorizedOvertimeAfter": "02:00",
                      "TotalAuthorizedOvertime": "02:00",
                      "AccomplishedExtraTimeBefore": {},
                      "AccomplishedExtraTimeAfter": {
                          "100": "02:00"
                      },
                      "AccomplishedExtraTime": {
                          "100": "02:00"
                      },
                      "AssignedExtraTimeBefore": {
                          "100": "00:00"
                      },
                      "AssignedExtraTimeAfter": {
                          "100": "02:00"
                      },
                      "AssignedExtraTime": {
                          "100": "02:00"
                      },
                      "ExtraTimeBeforeShift": "00:00",
                      "ExtraTimeAfterShift": "02:00",
                      "OvertimeAuthorizedBy": "Mercedes CarolinaGomez Fajardo"
                  }
              ],
              "TotalWorkedHours": "168",
              "WorkedDays": 23,
              "NonWorkedDays": 7,
              "Absences": 0,
              "Holidays": 0,
              "Vacation": 0,
              "DaysLeaveWithPay": 0,
              "DaysLeaveWithoutPay": 0,
              "AbsenceDaysWithoutJustification": 0,
              "AbsenceDaysLicense": 0,
              "WorkedSundays": 0,
              "WorkedHolidays": 0,
              "DaysAttended": 23,
              "Id": "K0--lX0NcrkLeP_w62AeFQ",
              "Identifier": "65631998",
              "Enabled": "1",
              "Name": "Maria Constanza",
              "LastName": "Gamba Cante",
              "Email": "moti.0226@hotmail.com",
              "GroupDescription": "dinatech mobile sas - 2001",
              "PositionId": "xit8BQ5HOO3ZejTzkmsEWA",
              "PositionDescription": "ASISTENTE DE OPERACIONES",
              "WeeklyWorkingHoursCodeId": "sDzBzlFnefikfhnZoFXLiw",
              "CustomColumn2": "11002",
              "IsHiddenForReports": "False"
          }
      ],
      "ExtraTimeValues": [
          {
              "ValueId": "_zJ93jwRsKIhbdGpsDwDfg",
              "Value": "100",
              "IsActive": "1"
          },
          {
              "ValueId": "v0VTt1s_wg7qHGUyRhCWww",
              "Value": "115",
              "IsActive": "1"
          }
      ]
  }
Tabla de contenidos