Documentación de APIs

El objetivo de este artículo es que sepas qué esperar de las APIs de Workera y cómo realizar las pruebas en Postman.

Antes de empezar, queremos aclarar que esta documentación usará términos técnicos para dejar instrucciones precisas, por lo que se recomienda tener algún tipo de experiencia en integraciones o programación para probar los servicios que la API provee. Si su conocimiento es básico o nulo con respecto a este servicio, recomendamos leer el siguiente artículo donde explicamos todo con con detalle: Integración API

Si ya tienes la plataforma para integrar con la nuestra y necesitas hacer unas pruebas, este artículo es para ti, ya que iremos con cada uno de las consultas, viendo qué información es la que se debe enviar y qué pueden recibir.

Para empezar, recordamos que todas las consultas deben tener la siguiente URL:

https://workera.com/apiClient/v1/{servicio}, donde el servicio se reemplaza con alguna de las opciones que vamos a describir


Recomendaciones y limitaciones

  • Es indispensable que uses los valores de API_USER y API_KEY para utilizar el servicio, ya que es lo que garantiza la seguridad en la transmisión de la información.
    ● La cuenta de Workera debe encontrarse activa y con una suscripción vigente.
    ● Se recomienda fuertemente utiliza los valores de Parámetros y Cuerpo de acuerdo al manual.
    ● El formato utilizado para API Rest (en este ejemplo de Postman) es JSON.
    ● Los códigos indicados en Parámetros y Cuerpo deben ser ingresados de la misma forma que se encuentran registrados en el sistema, incluyendo la utilización de mayúsculas y/o minúsculas. Estos códigos pueden ser: Código ficha del trabajador, código de la sucursal y/o departamento, código del turno, código del tipo de salida especial, etc.

Servicios relacionados a trabajadores

/employee - GET

Este servicio permite extraer el listado de trabajadores completos (activos, inactivos) según los parámetros de búsqueda. Es importante recalcar que siempre se debe ingresar un departamento y una sucursal para que la búsqueda ofrezca resultado.

Parámetros:

Atributo Tipo/Formato Descripción Requerido Ejemplo
branchOffice String Código de la Sucursal MATRIZ
department String Código del Departamento INICIAL
employees String Código Ficha del trabajador. Pueden ser varios códigos separados por comas sin espacios No 12345678,11111111
page Integer Página actual de búsqueda. Por defecto, es uno (1) No 1

Parámetros en Postman:

URL de ejemplo con todos los datos ingresados:

GET - https://workera.com/apiClient/v1/employee?page=1&branchOffice=ARI01&department=D001&employees=90000028,90000018

Respuesta

Atributo Formato Descripción
page Integer Página actual
totalPages Integer Total de páginas
pageResult Integer Número de resultados en la página actual
totalResult Integer Número total de resultados
data Array <EmployeeFullData> Lista de elementos dentro del perfil de empleado
{
    "page": 1,
  "totalPages": 2,
  "pageResult": 10,
  "totalResult": 18,
  "data": [Array<EmployeeFullData>
]
}

El EmployeeFullData sería la información que se saca del perfil del empleado. A continuación describiremos cada dato extraído

Atributo Formato Descripción

Code

String Código ficha único del trabajador. Se usa para identificarlo en los servicios API
deviceCode Integer Código en el reloj. Generalmente el RUT sin dígito verificador
identification String RUT o Pasaporte
name String Primer nombre
secondName String Segundo nombre
lastName String

Apellido Paterno

SecondLastName String Apellido Materno
branchOfficeCode String Código de la sucursal asociada
branchOfficeName String Nombre de dicha sucursal
departmentCode String Código del departamento asociado
departmentName String Nombre de dicho departamento
employeeStatus String

Estado del trabajador:

  • ACTIVO
  • INACTIVO
genre String

Género del trabajador:

  • FEMENINO
  • MASCULINO
  • NO_ESPECIFICA
birthDate

date

Fecha de nacimiento en formato yyyy-MM-dd
civilStatus String

Estado Civil

  • SOLTERO
  • CASADO
  • VIUDO
  • SEPARADO
  • NO_ESPECIFIVA
adress String Dirección personal registrada
personalPhone Long Teléfono personal
personalMail String Correo electrónico personal

corporatePhone

Long Teléfono corporativo si existe
corporateMail String Correo electrónico corporativo si existe
favorite Boolean Si es, o no, un empleado destacado en la plataforma
comment String Comentario adicional en el perfil

El resultado de cada trabajador que coincida con los parámetros de búsqueda quedaría así:

{
"code": "90000017",
  "deviceCode": 90000017,
  "identification": "90.000.017-0",
  "name": "YOKASTA",
  "secondName": "ROSARIO",
  "lastName": "COLMENARES",
  "secondLastName": "MOTA",
  "branchOfficeCode": "IQ01",
  "branchOfficeName": "Iquique",
  "departmentCode": "INICIAL",
  "departmentName": "Departamento Inicial",
  "employeeStatus": "ACTIVO",
  "genre": "NO_ESPECIFICA",
  "birthDate": "1996-05-02",
  "civilStatus": "SOLTERO",
  "address": "Curicó N° 232",
  "personalPhone": 111111111,
  "personalMail": "trabajador17@workera.com",
  "corporateMail": "",
  "corporatePhone": null,
  "favorite": false,
  "comment": ""
}

/employee - PUT 

Este servicio permite modificar información de un perfil de trabajador en específico. Hay datos que se pueden modificar, otros que no, y hay datos que son obligatorios agregar, incluso cuando son los que se quieren cambiar.

A diferencia del GET, como buscamos cargar información usando PUT, este comando no tiene parámetros, y tiene que ir con un cuerpo o BODY que contenga los cambios.

URL de ejemplo para enviar los datos:

 PUT - https://workera.com/apiClient/v1/employee

Cuerpo del mensaje (BODY) en formato JSON:

Hay atributos que solo se pueden llenar con alguno de las opciones desplegadas en el listado. Hay otros valores que si no se llenan, se dejan como "null," y por ende se borrarán en Workera si se dejan vacíos. La sucursal y departamento siempre van en los datos, y el código a usar debe existir en la plataforma antes de enviar el JSON.

Si no se cumple con esto, es posible que le genere un error, bien sea antes de subir los datos o ya en la plataforma, por lo que se recomienda estar pendiente de la información que se suben.

Atributo Formato Descripción Información
code String Código de ficha actual del trabajador Requerido
newCode String Nuevo código Opcional. Máx: 255
branchOfficeCode String Código sucursal Requerido
departmentCode String Código departamento Requerido
genre String

Género:

  • MÁSCULINO
  • FEMENINO
  • NO_ESPECIFICA
Requerido. Valor igual a uno del listado
birthDate

date

Fecha de nacimiento en el formato yyyy-MM-dd Opcional. Null si vacío
civilStatus String

Estado civil:

- SOLTERO

- CASADO

- VIUDO

- SEPARADO

-NO_ESPECIFICA

Requerido. Valor igual a uno del listado
address String Dirección personal Opcional. Null si vacío. Máx: 200
personalPhone Long Teléfono personal Opcional. Null si vacío. Máx: 9. Solo números
corporateMail String Correo electrónico corporativo Opcional. Null si vacío. Máx: 100
corporatePhone Long Teléfono corporativo Opcional. Null si vacío. Máx: 9. Solo números
favorite boolean Destacar en Workera true ó false
comment String Comentario adicional Opcional. Null si vacío. Máx: 255

Entonces, tenemos que el body se ve de esta manera:

{
  "code": "90000017",
    "newCode": "90000017",
    "branchOfficeCode": "MATRIZ",
    "departmentCode": "INICIAL",
    "genre": "FEMENINO",
    "birthDate": "1996-05-02",
  "civilStatus": "SOLTERO",
    "address": "Curicó N° 232",
    "personalPhone": 111111111,
    "corporateMail": "",
    "corporatePhone": null,
    "favorite": false,
    "comment": ""
}

Servicios referentes a Marcaciones

/attendanceData - GET

Este servicio permite la búsqueda de la información de los registros de asistencia de los trabajadores. Entre los parámetros que se pueden ingresar está el día de inicio, el día de término, sucursal y departamento. Esta búsqueda incluye marcaciones activas e inactivas. A diferencia de las otras búsquedas, esta ofrece 20 resultados por página.

NOTA: Debido a la densidad de las marcas, es posible que tome varios minutos recolectar los datos, por lo que se recomienda hacer pruebas con periodos cortos de tiempo si su ambiente de pruebas considera sin respuesta después de 30 segundos de la solicitud.

Parámetros:

Atributo Formato Descripción Requerido Ejemplo
start

Date

Fecha de inicio de búsqueda en formato yyyy-MM-dd 2025-05-25
end Date Fecha de término de búsqueda en yyyy-MM-dd 2025-06-25
branchOffice String Código de la sucursal No S1
department String Código del departamento No D1
employees String Código de ficha del empleado. Pueden ser varios separador por comas sin espacios No 12345678,22222222
page Integer Página actual de búsqueda. Por defecto es 1 1

Parámetros en Postman:

URL de ejemplo:

GET - https://workera.com/apiClient/v1/attendanceData?start=2025-08-10&end=2025-08-31&branchOffice=S1&department=D1&employees=12345678,22222222&page=1

Respuesta:

Atributo Formato Descripción
page Integer Página actual
totalPages Integer Total de páginas
pageResult Integer Número de resultados en la página actual
totalResult Integer Número total de resultados
data Array <AttendanceData> Lista de elementos dentro del perfil de empleado
{
    "page": 1,
    "totalPages": 1,
    "pageResult": 12,
    "totalResult": 12,
  "data": [Array <AttendanceData>]
}

El AttendanceData es la información de todas las marcaciones, y esta la podemos dividir en 2 partes, la información específicamente de la marca, y la información específica del trabajador asociado.

Datos de la marcación (AttendanceData)

Atributo Formato Descripción
employee EmployeeData Información del trabajador
attendanceDate Date Fecha y hora del registro en formato yyyy-MM-dd’T’HH:mm:ss
attTypeInDevice Integer

Tipo de registro

  • Entrada: 0
  • Salida: 1
  • Salida extraordinaria: 2
  • Entrada extraordinaria: 3
  • Inicio descanso: 4
  • Término descanso: 5
attendanceStatus String

Estado del registro:

  • ACTIVO
  • INACTIVO
  • MODIFICADO
origin String

Origen del registro de asistencia:

  • DISPOSITIVO_BIOMETRICO
  • MOVIL
  • SOLICITUD_WORKERA
  • PORTAL_WEB
  • SISTEMA
address String Dirección asociada a la marca: Para registros móviles, será la dirección en la que se marcó usando el GPS. Para registros en el dispositivo, tendrá la dirección de la sucursal del reloj. Para registros en la página web, tendrá la IP pública correspondiente
deviceName String Nombre del dispositivo biométrico
checksum String Código Hash asociado al dispositivo

Datos del Trabajador (EmployeeData)

Atributo Formato Descripción
code String Código de ficha actual del trabajador
deviceCode   Código del trabajador en reloj
identification String Identificación (RUT, pasaporte) del trabajador
name String Primer y segundo nombre del trabajador
lastName String Apellido paterno y materno del trabajador
branchOffice String Nombre de la Sucursal
department String Nombre del Departamento
employeeStatus String

Estado del trabajador:

  • ACTIVO
  • INACTIVO
companyIdentification String RUT de la compañía asociada
companyName String Razón social de la compañía asociada

Ejemplo de la consulta

{
    "page": 1,
    "totalPages": 1,
    "pageResult": 12,
    "totalResult": 12,
    "data": [
        {
            "employee": {
                "code": "90000028",
                "deviceCode": 90000028,
                "identification": "90.000.028-6",
                "name": "ALEXANDER  FERNANDO",
                "lastName": "CORRALES  RIVAS",
                "branchOffice": "Arica",
                "department": "RRHH",
                "employeeStatus": "Activo",
                "companyIdentification": "24.104.527-7",
                "companyName": "DEMO WORKERA.COM"
            },
            "attendanceDate": "2025-08-26T08:26:00",
            "attendanceType": 0,
            "attendanceStatus": "Activo",
            "origin": "Sistema",
            "address": "",
            "deviceName": "SISTEMA",
            "checksum": "4AB62987"
        },
        {
            "employee": {
              "code": "12345678",
              "deviceCode": 12345678,
              "identification": "12.345.678-K",
                "name": "ERICK  ALEXANDER",
                "lastName": "RIVAS  CORRALES",
                "branchOffice": "Arica",
                "department": "Departamento Inicial",
                "employeeStatus": "Activo",
                "companyIdentification": "24.104.527-7",
                "companyName": "DEMO WORKERA.COM"
            },
            "attendanceDate": "2025-08-26T09:39:56",
            "attendanceType": 0,
            "attendanceStatus": "Activo",
            "origin": "Dispositivo móvil",
            "address": "Calle Félix de Amesti 40, Las Condes, Región Metropolitana de Santiago",
            "deviceName": "iOS",
            "checksum": "FC761B4F"
      },...
]
}

Servicios relacionados a Salidas especiales (Permisos)

/permission - GET

Este servicio trae el listado de salidas que estén asignadas a uno o más trabajadores, según los parámetros de búsqueda. Al igual que las marcaciones, el resultado se entrega en páginas de 20.

NOTA: al igual que con las marcas, estas pueden tomar varios minutos en generarse. Se recomienda tomar periodos cortos en su entorno de pruebas si se considera fallido después de 30 segundos sin respuesta.

Parámetros:

Atributo Formato Descripción Requerido Ejemplo
start

Date

Fecha de inicio de búsqueda en formato yyyy-MM-dd 2025-05-25
end Date Fecha de término de búsqueda en yyyy-MM-dd 2025-06-25
branchOffice String Código de la sucursal S1
department String Código del departamento D1
employees String Código de ficha del empleado. Pueden ser varios separador por comas sin espacios No 12345678,22222222
page Integer Página actual de búsqueda. Por defecto es 1 1

Parámetros en Postman:

URL de ejemplo:

https://workera.com/apiClient/v1/permission?start=2025-09-01&end=2025-09-08&branchOffice=S1&department=D1&employees=12345678,22222222&page=1

Respuesta:

Atributo Formato Descripción
page Integer Página actual
totalPages Integer Total de páginas
pageResult Integer Número de resultados en la página actual
totalResult Integer Número total de resultados
data Array <Permission> Lista de elementos dentro del perfil de empleado
{
    "page": 1,
    "totalPages": 1,
    "pageResult": 1,
    "totalResult": 1,
  "data": [Array <Permission>]
}

El Permission es la información sobre todos los permisos que apliquen a la búsqueda. Este viene en 2 partes, una es la información sobre el permiso como tal y el otro es sobre el permiso que esa persona tiene asignado

Permisos (Permission)

Atributo Formato Descripción
id Integer Identificador de la salida especial. Se usa para modificar y eliminar asignaciones
employee EmployeeData Información del trabajador
start Date

Fecha y hora de inicio del permiso en formato:

yyyy-MM-dd’T’HH:mm:ss

end Date

Fecha y hora de término en formato:

yyyy-MM-dd’T’HH:mm:ss

PermissionCode String Código del Permiso
PermissionName String Nombre del Permiso
permissionType String

Tipo de salida:

  • TRABAJADO
  • TRABAJADO_EN_HORARIO
  • NO_TRABAJADOR
  • LICENCIA_MEDICA
  • VACACIONES
  • PRENATAL
  • POSTNATAL
comment String Descripción del permiso. Null si no hay información

Datos de empleado (EmployeeData)

Atributo Formato Descripción
code String Código de ficha actual del trabajador
deviceCode   Código del trabajador en reloj
identification String Identificación (RUT, pasaporte) del trabajador
name String Primer y segundo nombre del trabajador
lastName String Apellido paterno y materno del trabajador
branchOffice String Nombre de la Sucursal
department String Nombre del Departamento
employeeStatus String

Estado del trabajador:

  • ACTIVO
  • INACTIVO
companyIdentification String RUT de la compañía asociada
companyName String Razón social de la compañía asociada

Ejemplo de consulta:

{
            "id": 1607590,
            "employee": {
                "code": "90000028",
                "deviceCode": 90000028,
                "identification": "90.000.028-6",
                "name": "ALEXANDER FERNANDO",
                "lastName": "CORRALES RIVAS",
                "branchOffice": "Arica",
                "department": "RRHH",
                "employeeStatus": "ACTIVO",
                "companyIdentification": "24.104.527-7",
                "companyName": "DEMO WORKERA.COM"
            },
            "start": "2025-09-04T00:00:00",
            "end": "2025-09-04T23:59:59",
          "permissionCode": "PV01",
            "permissionName": "Permiso votacion",
            "permissionType": "TRABAJADO_EN_HORARIO",
            "comment": null
        }

/permission - POST

Este servicio permite hacer la asignación de permisos especiales a un trabajador o a un grupo de trabajadores usando las APIs. Para que este post funcione correctamente, se deben cumplir ciertos requerimientos:

  • Los permisos especiales a usar deben tener todos un código asignado, ya que es el dato que usaremos para identificarlos. Puedes revisar en este artículo dónde ver esos datos. Adicionalmente, puede usarte el API GET /permissionTypes para obtener la lista en tu plataforma.
  • En el periodo que están haciendo la asignación, ninguno de los trabajadores afectados pueden tener un permiso asignado. En caso contrario, arrojará un error de código 400.
  • Se debe asignar la fecha y la hora según el formato del inicio y término del permiso. Para las licencias y las vacaciones, la hora inicial debe ser 00:00:00 y el término 23:59:59.
  • Como se suben datos a la plataforma, este servicio no necesita parámetros aparte de la URL, y debe tener un cuerpo (BODY) donde se almacenen los datos

Sabiendo esto, empecemos a describir el servicio.

Cuerpo del mensaje (BODY) en formato JSON:

Atributo Formato Descripción
employeeCode String Código de ficha único del trabajador
permissionCode String Código del permiso especial a asignar
start Date

Inicio del permiso en formato:

yyyy-MM-dd'T'HH:mm:ss

end Date

Término del permiso en formato:

yyyy-MM-dd'T'HH:mm:ss

comment String Comentario o descripción del permiso

URL de ejemplo:

POST - https://workera.com/apiClient/v1/permission

BODY en Postman

{
    "employeeCode": "12345678",
  "permissionCode": "Festi",
    "start": "2025-09-01T08:00:00",
    "end": "2025-09-02T18:00:00",
    "comment": null
}

Resultado:

En el caso de que post tenga éxito en crear el permiso especial, recibirán el código 200, y entregará la información de asignación:

{
    "id": 1629437,
    "employee": {
      "code": "12345678",
      "deviceCode": 12345678,
      "identification": "12.345.678-K",
        "name": "ERICK ALEXANDER",
        "lastName": "RIVAS CORRALES",
        "branchOffice": "Arica",
        "department": "Departamento Inicial",
        "employeeStatus": "ACTIVO",
        "companyIdentification": "24.104.527-7",
        "companyName": "DEMO WORKERA.COM"
    },
    "start": "2025-09-01T08:00:00",
    "end": "2025-09-02T18:00:00",
    "permissionCode": "Festi",
    "permissionName": "Festividades",
    "permissionType": "TRABAJADO_EN_HORARIO",
    "comment": null
}

Si el servicio no se completó por algún motivo, emitirá un error con el código 400 (si es un problema de validación o Bad Request), 500 (si es un error interno del servidor), o cualquiera de los siguientes:

Atributo Formato Descripción
result String

Tipo de resultado:

  • CORRECTO
  • ADVERTENCIA
  • ERROR
messages Array<String> Información de error. Puede existir 1  o más mensajes de error

Ejemplos del resultado erróneo

{
    "result": "ADVERTENCIA",
    "messages": [
        "Trabajador no encontrado"
    ]
}
{
    "result": "ADVERTENCIA",
    "messages": [
        "Tipo salida especial no encontrado"
    ]
}
{
    "result": "ADVERTENCIA",
    "messages": [
        "Salida especial registrada dentro del periodo: 1629437 - 2025-09-01T08:00:00 - 2025-09-02T18:00:00"
    ]
}

/permission/${id} - DELETE

Este servicio permite realizar la eliminación o desasignación de un permiso especial. Para esto, se deben cumplir algunas condiciones:

  • Se tiene que conocer el ID único del permiso especial. Se puede saber con el servicio de GET - /permission.
  • Solo se pueden eliminar las asignaciones que no se hayan creado por justificaciones o solicitudes de parte del trabajador

Variable de URL:

Atributo Formato Descripción
id integer Identificador de la asignación de la salida especial

URL de ejemplo:

DELETE - https://workera.com/apiClient/v1/permission/1629437

Resultado:

En el caso de que se complete el comando correctamente, emitirá un código 200 y se procederá a quitar la asignación. En caso contrario, se puede emitir un error de código 400 (error de validación o Bad Request), 500 (error interno de sistema), o alguno de estos errores:

Atributo Formato Descripción
result String

Tipo de resultado:

  • CORRECTO
  • ADVERTENCIA
  • ERROR
messages Array<String> Información adicional del resultado

Ejemplo de resultado correcto:

{
    "result": "CORRECTO",
    "messages": [
        "Salida especial eliminada correctamente"
    ]
}

Ejemplo de resultado con errores:

{
    "result": "ERROR",
    "messages": [
        "Salida especial no encontrada"
    ]
}

/permissionType - GET

Este servicio permite sacar un listado completo de todos los Tipos de Permisos creados en el sistema. El único parámetro necesario para este servicio es la página.

Parámetros:

Atributo Formato Descripción Requerido Ejemplo
page Integer Número de página (Por defecto, es 1) 1

Parámetro en Postman

URL de ejemplo:

GET https://workera.com/apiClient/v1/permissionTypes?page=1

Resultado:

Si todo se envía correctamente, entregará el listado de todos los tipos de turnos creados que se pueden asignar con su información completa. El listado mostrará 20 resultados por página.

Paginación (Data)

Atributo Formato Descripción
data Array<PermissionType> Listado de elementos
page Integer Página actual
pageResult Integer Cantidad de elementos de página actual
totalResult Integer Cantidad de elementos totales
totalPages Integer Número de páginas totales

Tipos de permiso (PermissionType)

Atributo Formato Descripción
name String Nombre del tipo de permiso
description String Descripción del tipo de permiso
type String Tipo del Permiso
code String Código único del permiso

Ejemplo de resultado:

{
    "data": [
        {
            "name": "Salida a terreno",
            "description": "Salida especial para ser utilizada como salida a terreno (cuenta como trabajado)",
            "type": "TRABAJADO",
            "code": null
        },
        {
            "name": "Trabajo en horario",
            "description": "Salida especial para ser utilizada como trabajado en horario (cuenta como trabajado dentro del rango de horario",
            "type": "TRABAJADO_EN_HORARIO",
            "code": "TEH"
        }
    ],
    "page": 1,
    "pageResult": 20,
    "totalResult": 27,
    "totalPages": 2
}

Servicios relacionados a Turnos 

/workshift/assign - GET

Este servicio obtiene un listado de los turnos que tienen asignados uno o más trabajadores según los parámetros de búsqueda. 

Atributo Formato Descripción Requerido Ejemplo
start

Date

Fecha de inicio de búsqueda en formato yyyy-MM-dd 2025-05-25
end Date Fecha de término de búsqueda en yyyy-MM-dd 2025-06-25
branchOffice String Código de la sucursal S1
department String Código del departamento D1
employees String Código de ficha del empleado. Pueden ser varios separador por comas sin espacios No 12345678,22222222
page Integer Página actual de búsqueda. Por defecto es 1 1

Parámetros en Postman:

URL de ejemplo:

https://workera.com/apiClient/v1/workshift/assign?start=2025-09-01&end=2025-09-08&branchOffice=S1&department=D1&employees=12345678,22222222&page=1

Respuesta:

El resultado contiene 3 secciones. La primera es la paginación, la segunda contiene la información de la asignación del turno, mientras que la última contiene la información del trabajador que tiene esta asignación. Con esto, vamos a describir cada una de estas secciones:

Resultado:

Atributo Formato Descripción
page Integer Página actual
totalPages Integer Total de páginas
pageResult Integer Número de resultados en la página actual
totalResult Integer Número total de resultados
data Array <EmployeeWorkshiftAssign> Lista de elementos dentro del perfil de empleado

EmployeeWorkshiftAssign

Atributo Formato Descripción
id Integer Identificador único de la asignación. Se usa para modificar o desasignar un turno
employee EmployeeData Sección de información del trabajador
start Date

Inicio de la asignación del turno en formato

yyyy-MM-dd

end Date

Término de la asignación del turno en formato

yyyy-MM-dd

workshiftCode String Código único del turno
workshiftName String Nombre del turno
flexible Boolean

Indica si es flexible

  • false si el turno es basado en horarios
  • true si es basado en horas trabajadas
period String

Periodo o tipo del turno

  • DIARIO
  • SEMANAL
  • MENSUAL
extension Integer Extensión o repeticiones del periodo

EmployeeData

Atributo Formato Descripción
code String Código de ficha actual del trabajador
deviceCode   Código del trabajador en reloj
identification String Identificación (RUT, pasaporte) del trabajador
name String Primer y segundo nombre del trabajador
lastName String Apellido paterno y materno del trabajador
branchOffice String Nombre de la Sucursal
department String Nombre del Departamento
employeeStatus String

Estado del trabajador:

  • ACTIVO
  • INACTIVO
companyIdentification String RUT de la compañía asociada
companyName String Razón social de la compañía asociada

Ejemplo del resultado:

{
    "page": 1,
    "totalPages": 1,
    "pageResult": 1,
    "totalResult": 1,
    "data": [
        {
            "id": 3603070,
            "employee": {
              "code": "12345678",
                "deviceCode": 12345678,
              "identification": "12.345.678-K",
                "name": "ERICK ALEXANDER",
                "lastName": "RIVAS CORRALES",
                "branchOffice": "Arica",
                "department": "Departamento Inicial",
                "employeeStatus": "ACTIVO",
                "companyIdentification": "24.104.527-7",
                "companyName": "DEMO WORKERA.COM"
            },
            "start": "2025-09-01",
            "end": "2025-09-07",
            "workshiftCode": "TMC02",
            "workshiftName": "Turno Masterclass",
            "flexible": false,
            "period": "SEMANAL",
            "extension": 2
        }
    ]
}

/workshift/schedules - GET

Obtiene listado por trabajador de los horarios que tienen asignados según el parámetro de búsqueda ingresado. La paginación es de 10 resultados por página. Solo entregará la información de los días que efectivamente tenga un horario asignado. Es decir, se omitirá los días libres. Es bueno recordar que el periodo buscado no puede superar los 60 días, y que esta API no aplica para turnos inteligentes asignados.

Parámetros:

Atributo Formato Descripción Requerido Ejemplo
start

Date

Fecha de inicio de búsqueda en formato yyyy-MM-dd 2025-05-25
end Date Fecha de término de búsqueda en yyyy-MM-dd 2025-06-25
branchOffice String Código de la sucursal S1
department String Código del departamento D1
employees String Código de ficha del empleado. Pueden ser varios separador por comas sin espacios No 12345678,22222222
page Integer Página actual de búsqueda. Por defecto es 1 1

Parámetros en Postman

URL de Ejemplo:

https://workera.com/apiClient/v1/workshift/schedules?start=2025-09-01&end=2025-09-07&branchOffice=S1&department=D1&employees=12345678,22222222&page=1

Respuesta:

La información en la lista tendrá 3 secciones: la primera, es la paginación de la búsqueda, luego la información del trabajador, y por último, los datos de los horarios asignados.

Resultado:

Atributo Formato Descripción
page Integer Página actual
totalPages Integer Total de páginas
pageResult Integer Número de resultados en la página actual
totalResult Integer Número total de resultados
data Array <EmployeeWorkShiftData> Lista de elementos dentro del perfil de empleado

EmployeeWorkShiftData

Atributo Formato Descripción
employee EmployeeData Contiene la información del trabajador
schedules Array<WorkShiftSchedule> Listado de los horarios

EmployeeData

Atributo Formato Descripción
code String Código de ficha actual del trabajador
deviceCode   Código del trabajador en reloj
identification String Identificación (RUT, pasaporte) del trabajador
name String Primer y segundo nombre del trabajador
lastName String Apellido paterno y materno del trabajador
branchOffice String Nombre de la Sucursal
department String Nombre del Departamento
employeeStatus String

Estado del trabajador:

  • ACTIVO
  • INACTIVO
companyIdentification String RUT de la compañía asociada
companyName String Razón social de la compañía asociada

WorkShiftSchedule 

Atributo Formato Descripción
workshiftCode String Código del turno asignado
date Date Fecha en que está el horario (Si es de 2 días, fecha en que se contabiliza) en yyyy-MM-dd
workshiftName String Nombre del turno asignado
workshiftStart Date

Inicio del turno asignado en formato yyyy-MM-dd

workshiftEnd Date Término del turno asignado en formato yyyy-MM-dd
scheduleName String Nombre del horario
start Date Fecha y hora de entrada en el horario, este en formato yyyy-MM-dd'T'HH:mm:ss
end Date Fecha y hora de salida en el horario, este en formato yyyy-MM-dd'T'HH:mm:ss

Ejemplo de respuesta:


{
    "page": 1,
    "totalPages": 1,
    "pageResult": 1,
    "totalResult": 1,
    "data": [
        {
            "employee": {
              "code": "12345678",
              "deviceCode": 12345678,
              "identification": "12.345.678-K",
                "name": "ERICK ALEXANDER",
                "lastName": "RIVAS CORRALES",
                "branchOffice": "Arica",
                "department": "Departamento Inicial",
                "employeeStatus": "ACTIVO",
                "companyIdentification": "24.104.527-7",
                "companyName": "DEMO WORKERA.COM"
            },
            "schedules": [
                {
                    "workshiftCode": "TMC02",
                    "date": "2025-09-01",
                    "workshiftName": "Turno Masterclass",
                    "workshiftStart": "2025-09-01",
                    "workshiftEnd": "2025-09-07",
                    "scheduleName": "Horario Masterclass",
                    "start": "2025-09-01T08:30:00",
                    "end": "2025-09-01T18:30:00"
                },
                {
                    "workshiftCode": "TMC02",
                    "date": "2025-09-02",
                    "workshiftName": "Turno Masterclass",
                    "workshiftStart": "2025-09-01",
                    "workshiftEnd": "2025-09-07",
                    "scheduleName": "Horario Masterclass",
                    "start": "2025-09-02T08:30:00",
                    "end": "2025-09-02T18:30:00"
                },
                {
                    "workshiftCode": "TMC02",
                    "date": "2025-09-03",
                    "workshiftName": "Turno Masterclass",
                    "workshiftStart": "2025-09-01",
                    "workshiftEnd": "2025-09-07",
                    "scheduleName": "Horario Masterclass",
                    "start": "2025-09-03T08:30:00",
                    "end": "2025-09-03T18:30:00"
                },
                {
                    "workshiftCode": "TMC02",
                    "date": "2025-09-04",
                    "workshiftName": "Turno Masterclass",
                    "workshiftStart": "2025-09-01",
                    "workshiftEnd": "2025-09-07",
                    "scheduleName": "Horario Masterclass",
                    "start": "2025-09-04T08:30:00",
                    "end": "2025-09-04T18:30:00"
                },
                {
                    "workshiftCode": "TMC02",
                    "date": "2025-09-05",
                    "workshiftName": "Turno Masterclass",
                    "workshiftStart": "2025-09-01",
                    "workshiftEnd": "2025-09-07",
                    "scheduleName": "Horario Masterclass",
                    "start": "2025-09-05T08:30:00",
                    "end": "2025-09-05T18:30:00"
                }
            ]
        }
    ]
}

/workshift/assign - POST

Este servicio permite hacer la asignación de turnos a los trabajadores. Es importante que para este paso, tengamos los códigos de los turnos a usar. Para más información, puedes ver el siguiente artículo. Como estamos subiendo datos, este servicio no cuenta con parámetros, solo el cuerpo (BODY)

Cuerpo del mensaje (BODY) en formato JSON:

Atributo Formato Descripción
employeeCode String Código ficha único del trabajador
workshiftCode String Código del turno
start Date Inicio del turno en formato yyyy-MM-dd
end Date Término del turno en formato yyyy-MM-dd
replace Boolean Determina si este tuno va a reemplazar alguno que esté asignado

URL de ejemplo:

https://workera.com/apiClient/v1/workshift/assign

Body de ejemplo en Postman:

{
  "employeeCode": "12345678",
    "workshiftCode": "TWD2S",
    "start": "2025-09-01",
    "end": "2025-09-14",
    "replace": true
}

Resultado:

En el caso de que la información se haya ejecutado correctamente, el servidor responderá código 200, junto con los datos de la asignación registrada. En caso contraria, emitirá error 400 (error de validación o Bad Request), 500 (Error interno del Servidor) o un error común. En el último caso, indicaría un mensaje del por qué.

Resultado correcto:

[
    {
      "id": 3651037,
        "employee": {
          "code": "12345678",
          "deviceCode": 12345678,
            "identification": "12.345.678-K",
            "name": "ERICK ALEXANDER",
            "lastName": "RIVAS CORRALES",
            "branchOffice": "Arica",
            "department": "Departamento Inicial",
            "employeeStatus": "ACTIVO",
            "companyIdentification": "24.104.527-7",
            "companyName": "DEMO WORKERA.COM"
        },
        "start": "2025-09-01",
        "end": "2025-09-14",
        "workshiftCode": "TWD2S",
        "workshiftName": "Turno Webinar de 2 Semanas",
        "flexible": false,
        "period": "SEMANAL",
        "extension": 2
    }
]

Resultado erróneo:

{
    "result": "ADVERTENCIA",
    "messages": [
        "Turno ya registrado dentro del periodo: 3650889 - 2025-09-01 - 2025-09-14"
    ]
}
{
    "result": "ADVERTENCIA",
    "messages": [
        "Turno no encontrado"
    ]
}
{
    "result": "ADVERTENCIA",
    "messages": [
        "Trabajador no encontrado"
    ]
}

/workshift/assign/${id} - DELETE

Este servicio permite eliminar la asignación de un turno a un trabajador. Para esto, es necesario saber el ID de asignación, y este puede conocerse mediante el GET - /workshift/assign

Variable de URL:

Atributo Formato Descripción
${id} Integer Identificador único de la asignación de turno

URL de ejemplo:

DELETE https://workera.com/apiClient/v1/workshift/assign/3651037

Resultado:

En el caso de que se envíe bien la solicitud, el servidor responderá el código 200 con un corto mensaje de confirmación. En el caso contrario, emitirá error 400 (error de validación o Bad Request), 500 (Error interno del Servidor) o un error común. En el último caso, indicaría un mensaje del por qué.

Atributo Formato Descripción
result String

Tipo de resultado:

  • CORRECTO
  • ADVERTENCIA
  • ERROR
messages Array<String> Información adicional del resultado

Ejemplo de resultado correcto:

{
    "result": "CORRECTO",
    "messages": [
        "Asignación de turno eliminada correctamente"
    ]
}

Ejemplo de resultado erróneo:

{
    "result": "ERROR",
    "messages": [
        "Asignación de turno no encontrada"
    ]
}

Servicios relacionados con Autorización de Horas Extras

/overtimeAuthorization - GET

Este servicio muestra un listado de las horas extras que han sido autorizadas según los parámetros de búsqueda ingresados

Parámetros:

Atributo Formato Descripción Requerido Ejemplo
start

Date

Fecha de inicio de búsqueda en formato yyyy-MM-dd 2025-05-25
end Date Fecha de término de búsqueda en yyyy-MM-dd 2025-06-25
branchOffice String Código de la sucursal S1
department String Código del departamento D1
employees String Código de ficha del empleado. Pueden ser varios separador por comas sin espacios No 12345678,22222222
page Integer Página actual de búsqueda. Por defecto es 1 1

Parámetros en Postman:

URL de ejemplo:

https://workera.com/apiClient/v1/overtimeAuthorization?start=2025-09-01&end=2025-09-07&branchOffice=S1&department=D1&employees=12345678&page=1

Resultado:

Este servicio emitirá un listado de todos los empleados que tengan horas autorizadas en el periodo consultado. El resultado se puede dividir en 3 secciones: la paginación, los datos del trabajador y los datos de la autorización como tal:

Resultado:

Atributo Formato Descripción
page Integer Página actual
totalPages Integer Total de páginas
pageResult Integer Número de resultados en la página actual
totalResult Integer Número total de resultados
data Array <OvertimeAuthData> Lista de elementos dentro del perfil de empleado

OvertimeAuthData

Atributo Formato Descripción
employee EmployeeData Información del trabajador
authDate Date Día de Autorización
scheduleInAuthTime Integer Tiempo (en segundos) autorizado en la entrada. Se asigna al inicio de la jornada en base a horarios
scheduleOutAuthTime Integer Tiempo (en segundos) autorizado en la salida. Se asigna al final de la jornada en base a horarios

withoutScheduleAuthTime

Integer Tiempo (en segundos) autorizado en días sin jornada. Debe tener igual un turno en base a horarios para ejecutarse
holidayExtraAuthTime Integer Tiempo (en segundos) para jornadas que cuentan tiempo extra en feriados
comment String Comentario de asignación
assigned Boolean Indica si la hora extra autorizada ya ha sido asignada en una jornada (la asignación a la jornada se efectúa al momento de realizar el cálculo de asistencia)

EmployeeData

Atributo Formato Descripción
code String Código de ficha actual del trabajador
deviceCode   Código del trabajador en reloj
identification String Identificación (RUT, pasaporte) del trabajador
name String Primer y segundo nombre del trabajador
lastName String Apellido paterno y materno del trabajador
branchOffice String Nombre de la Sucursal
department String Nombre del Departamento
employeeStatus String

Estado del trabajador:

  • ACTIVO
  • INACTIVO
companyIdentification String RUT de la compañía asociada
companyName String Razón social de la compañía asociada

 Ejemplo de resultado:

{
    "page": 1,
    "totalPages": 1,
    "pageResult": 7,
    "totalResult": 7,
    "data": [
        {
            "employee": {
              "code": "12345678",
              "deviceCode": 12345678,
              "identification": "12.345.678-K",
                "name": "ERICK ALEXANDER",
                "lastName": "RIVAS CORRALES",
                "branchOffice": "Arica",
                "department": "Departamento Inicial",
                "employeeStatus": "ACTIVO",
                "companyIdentification": "24.104.527-7",
                "companyName": "DEMO WORKERA.COM"
            },
            "authDate": "2025-09-01",
            "scheduleInAuthTime": 1200,
            "scheduleOutAuthTime": 6000,
            "withoutScheduleAuthTime": 0,
            "holidayExtraAuthTime": 0,
            "comment": "",
            "assigned": false
        },
        {
            "employee": {
              "code": "12345678",
              "deviceCode": 12345678,
              "identification": "12.345.678-K",
                "name": "ERICK ALEXANDER",
                "lastName": "RIVAS CORRALES",
                "branchOffice": "Arica",
                "department": "Departamento Inicial",
                "employeeStatus": "ACTIVO",
                "companyIdentification": "24.104.527-7",
                "companyName": "DEMO WORKERA.COM"
            },
            "authDate": "2025-09-02",
          "scheduleInAuthTime": 6000,
          "scheduleOutAuthTime": 1200,
            "withoutScheduleAuthTime": 0,
            "holidayExtraAuthTime": 0,
            "comment": "",
            "assigned": false
        },
      {...}
    ]
}

 /overtimeAutorization - POST

Este servicio realiza autorización de tiempo extra usando las APIs. Ya que estamos haciendo un POST, este servicio no tiene parámetros, pero se debe incluir un cuerpo (BODY) para que funcione. Para esto, se deben cumplir ciertas condiciones:

  • Luego de realizar la asignación, es recomendable que realicen un cálculo de asistencia para verificar si la autorización fue asignada a una jornada. Por ejemplo, si en un día no hay jornada (bien sea por día libre o por falta de turno), no se considerará el tiempo extra autorizado.
  • Si existen más de una jornada en un día, la autorización de tiempo extra se aplicará a todas las jornadas de ese día.
  • La autorización de tiempo extra en general solo aplica para turnos en base a horarios (turno normal)

Sabiendo esto, veremos lo relacionado a la solicitud:

Cuerpo del mensaje (BODY) en formato JSON:

Atributo Formato Descripción
employeeCode String Código ficha único del trabajador
start Date Inicio del periodo de asignación de HHEE en formato yyyy-MM-dd
end Date Término del periodo de asignación de HHEE en formato yyyy-MM-dd
scheduleInAuthTime Integer Tiempo (en segundos) autorizado en la entrada. Se asigna al inicio de la jornada en base a horarios
scheduleOutAuthTime Integer Tiempo (en segundos) autorizado en la salida. Se asigna al final de la jornada en base a horarios
withoutScheduleAuthTime Integer Tiempo (en segundos) autorizado en días sin jornada. Debe tener igual un turno en base a horarios para ejecutarse
holidayExtraAuthTime Integer Tiempo (en segundos) para jornadas que cuentan tiempo extra en feriados
replace Boolean Indica si la hora extra autorizada ya ha sido asignada en una jornada (la asignación a la jornada se efectúa al momento de realizar el cálculo de asistencia)
comment String Comentario de asignación

URL de ejemplo:

POST https://workera.com/apiClient/v1/overtimeAuthorization

BODY de ejemplo en Postman

{
  "employeeCode": "12345678",
    "start": "2025-09-01", 
    "end": "2025-09-14",
    "scheduleInAuthTime": 600,
    "scheduleOutAuthTime": 2400,
    "withoutScheduleAuthTime": 32400,
    "holidayExtraAuthTime": 32400,
    "replace": true,
    "comment": "Autorización por Pacto",
}

Resultado:

En el caso de que todo se envíe correctamente, el servidor responde el código 200, y la información que se subió. En el caso contrario, emitirá error 400 (error de validación o Bad Request), 500 (Error interno del Servidor) o un error común. En el último caso, indicaría un mensaje del por qué.

Atributo Formato Descripción
result String

Tipo de resultado:

  • CORRECTO
  • ADVERTENCIA
  • ERROR
messages Array<String> Información adicional del resultado

Ejemplo de resultado correcto:

{
    "employee": {
      "code": "12345678",
      "deviceCode": 12345678,
      "identification": "12.345.678-K",
        "name": "ERICK ALEXANDER",
        "lastName": "RIVAS CORRALES",
        "branchOffice": "Arica",
        "department": "Departamento Inicial",
        "employeeStatus": "ACTIVO",
        "companyIdentification": "24.104.527-7",
        "companyName": "DEMO WORKERA.COM"
    },
    "data": [
        {
            "authDate": "2025-09-01",
            "scheduleInAuthTime": 3600,
            "scheduleOutAuthTime": 3600,
            "withoutScheduleAuthTime": 0,
            "holidayExtraAuthTime": 0,
            "comment": "Prueba",
            "modified": true
        },
        {
            "authDate": "2025-09-02",
            "scheduleInAuthTime": 3600,
            "scheduleOutAuthTime": 3600,
            "withoutScheduleAuthTime": 0,
            "holidayExtraAuthTime": 0,
            "comment": "Prueba",
            "modified": true
        },
        {
            "authDate": "2025-09-03",
            "scheduleInAuthTime": 3600,
            "scheduleOutAuthTime": 3600,
            "withoutScheduleAuthTime": 0,
            "holidayExtraAuthTime": 0,
            "comment": "Prueba",
            "modified": true
        },
      {...}
    ]
}

Ejemplo de resultado erróneo:

{
    "result": "ADVERTENCIA",
    "messages": [
        "Trabajador no encontrado"
    ]
}

Servicios relacionados con las sucursales

/branchOffice - GET

Este servicio permite consultar un listado de sucursales actualmente creados en la plataforma. Este listado incluye sucursales activas e inactivas.

Atributo Formato Descripción Requerido Ejemplo
page String Número de la página a consultar No 1

Resultado:

La lista se entregará con dos secciones: La primera es la información de la paginación, mientras que la segunda parte tiene la información de las sucursales que se pueden ver en la plataforma

Atributo Formato Descripción
page Integer Página actual
totalPages Integer Total de páginas
pageResult Integer Número de resultados en la página actual
totalResult Integer Número total de resultados
data Array <BranchOffice> Lista de elementos dentro del perfil de empleado

BranchOffice

Atributo Formato Descripción
id  Integer Identificación único de la sucursal
name String Nombre de la sucursal
code  Integer  Código de la sucursal
description String Descripción
address String Dirección registrada en la Sucursal
timezoneId Integer Zona Hora registrada
timezoneName String Nombre de esa Zona Horaria
status String

Estado de la sucursal:

  • ACTIVO
  • INACTIVO
defaultBranchoffice Boolean Indica si es la sucursal Matriz
employeesCount Integer Cantidad de trabajadores asociados a dicha sección

Resultado:

Lo que nos mostrará es un listado de todas las sucursales en dos secciones: la primera muestra la paginación, mientras que la segunda parte muestra las sucursales.

Ejemplo de resultado correcto:

{
    "data": [
        {
            "id": 121,
            "name": "Sucursal Matriz",
            "code": "MATRIZ",
            "description": null,
            "address": "Av. Apoquindo 4501",
            "timezoneId": 25,
            "timezoneName": "(UTC-03:00) Santiago",
            "status": "ACTIVO",
            "defaultBranchOffice": true,
            "employeesCount": 3
        },
        {
            "id": 2081,
            "name": "Arica",
            "code": "ARI01",
            "description": "",
            "address": "Arica",
            "timezoneId": 25,
            "timezoneName": "(UTC-03:00) Santiago",
            "status": "ACTIVO",
            "defaultBranchOffice": false,
            "employeesCount": 12
      },...
    ],
    "page": 1,
    "totalPages": 1,
    "pageResult": 5,
    "totalResult": 5
}

/branchOffice/{id}

Este servicio permite llamar la información de una sucursal en específico. Para poder usar esto, se debe tener el id único con anterioridad.

Parámetros:

Atributo Formato Descripción Requerido Ejemplo
id Integer Identificador único de la Sucursal 200

URL de ejemplo:

GET https://workera.com/apiClient/v1/branchOffice/200

Resultado:

En el caso de que se haya enviado la información correctamente, recibirán un código 200 del servidor y los datos de la Sucursal. En caso contrario, emitirá error 400 (error de validación o Bad Request), 500 (Error interno del Servidor) o un error común. En el último caso, indicaría un mensaje del por qué.

Atributo Formato Descripción
result String

Tipo de resultado:

  • CORRECTO
  • ADVERTENCIA
  • ERROR
messages Array<String> Información adicional del resultado

Ejemplo de resultado correcto:

{
    "id": 2081,
    "name": "Arica",
    "code": "ARI01",
    "description": "",
    "address": "Arica",
    "timezoneId": 25,
    "timezoneName": "(UTC-03:00) Santiago",
    "status": "ACTIVO",
    "defaultBranchOffice": false,
    "employeesCount": 12
}

Ejemplo de resultado erróneo:

{
    "result": "ERROR",
    "messages": [
        "Sucursal no encontrada"
    ]
}

/branchOffice - POST

Este servicio permite crear una nueva sucursal. Como estamos usando POST, no es necesario agregar parámetros, pero hay que agregar toda la información dentro del cuerpo (BODY) de la solicitud.

Cuerpo del mensaje (BODY) en formato JSON

Atributo Formato Descripción Requerido Ejemplo
name String Nombre de la Sucursal Talca
code String Código único de la sucursal TA01
description String Descripción en la sucursal   2da Oficina
address String Dirección en la sucursal O'Higgins 123
timezoneId Integer ID de Zona Horaria. Se puede buscar con API (25 es la de Santiago) 25

URL de ejemplo:

POST https://workera.com/apiClient/v1/branchOffice

Body de ejemplo en Postman

{
    "name": "Talca",
    "code": "TA01",
    "description": "Descripción de muestra",
    "address": "Dirección de la Sucursal",
    "timezoneId": 25
}

Resultado:

Si se envió correctamente, se envía el código 200 desde el servidor. En caso contrario, se emitirá error 400 (error de validación o Bad Request), 500 (Error interno del Servidor) o un error común. En el último caso, indicaría un mensaje del por qué.

Atributo Formato Descripción
result String

Tipo de resultado:

  • CORRECTO
  • ADVERTENCIA
  • ERROR
messages Array<String> Información adicional del resultado

Resultado correcto:

{
    "result": "CORRECTO",
    "messages": [
        "Sucursal creada correctamente"
    ]
}

Resultado erróneo:

{
    "result": "ERROR",
    "messages": [
        "El código ya se encuentra registrado en otro departamento."
    ]
}

/branchOffice - PUT

Este servicio permite modificar información de una sucursal ya existente en la plataforma. Para esto, vamos a necesitar el ID único de dicha sucursal; esta se puede conseguir usando la API GET /branchOffice. Como estamos enviando información, no hay parámetros, pero el cuerpo (BODY) debe contener los datos a actualizar.

Cuerpo del mensaje (BODY) en formato JSON:

Atributo Formato Descripción Requerido Ejemplo
id Integer Identificador único registrado para la sucursal 200
name String Nombre de la Sucursal Talca
code String Código único de la sucursal (plataforma) TA01
description String Descripción de la sucursal No 2da Oficina
address String Dirección en sucursal O'Higgins 123
timezoneId Integer ID de la Zona horaria (Se obtiene con API. La de Santiago es 25) 25

URL de ejemplo:

POST https://workera.com/apiClient/v1/branchOffice

Body de ejemplo en Postman:

{
    "id": 33635,
    "name": "Talca",
    "code": "TA02",
    "description": "Descripción modificada",
    "address": "Dirección modificada",
    "timezoneId": 25
}

Resultado:

Si la información se envió correctamente, recibirán del servidor el código 200. En caso contrario, se emitirá error 400 (error de validación o Bad Request), 500 (Error interno del Servidor) o un error común. En el último caso, indicaría un mensaje del por qué.

Atributo Formato Descripción
result String

Tipo de resultado:

  • CORRECTO
  • ADVERTENCIA
  • ERROR
messages Array<String> Información adicional del resultado

Resultado correcto:

{
    "result": "CORRECTO",
    "messages": [
        "Sucursal actualizada correctamente"
    ]
}

Resultado erróneo:

{
    "result": "ERROR",
    "messages": [
      "El código ya se encuentra registrado en otra sucursal."
    ]
}

/branchOffice/disable/{id} - PUT

Este servicio permite desactivar una sucursal. Con esta API, solo es posible desactivar sucursales que no tenga trabajadores asignados.

Atributo Formato Descripción Requerido Ejemplo
id Integer Identificador único de la Sucursal 200

URL de ejemplo:

PUT https://workera.com/apiClient/v1/branchOffice/disable/200

Resultado:

El sistema emitirá un código 200 si todo está correcto. En caso contrario, se emitirá error 400 (error de validación o Bad Request), 500 (Error interno del Servidor) o un error común. En el último caso, indicaría un mensaje del por qué.

Atributo Formato Descripción
result String

Tipo de resultado:

  • CORRECTO
  • ADVERTENCIA
  • ERROR
messages Array<String> Información adicional del resultado

Resultado correcto:

{
    "result": "CORRECTO",
    "messages": [
        "Sucursal desactivada correctamente"
    ]
}

Resultado erróneo:

{
    "result": "ADVERTENCIA",
    "messages": [
        "Sucursal ya se encuentra desactivada"
    ]
}
{
    "result": "ERROR",
    "messages": [
        "Sucursal no puede ser inactivada porque tiene empleados"
    ]
}

/branchOffice/enable/{id} - PUT

Este servicio permite reactivar una sucursal con las API.

Atributo Formato Descripción Requerido Ejemplo
id Integer Identificador único de la Sucursal 200

URL de ejemplo:

PUT https://workera.com/apiClient/v1/branchOffice/enable/200

Resultado:

El sistema emitirá un código 200 si todo está correcto. En caso contrario, se emitirá error 400 (error de validación o Bad Request), 500 (Error interno del Servidor) o un error común. En el último caso, indicaría un mensaje del por qué.

Atributo Formato Descripción
result String

Tipo de resultado:

  • CORRECTO
  • ADVERTENCIA
  • ERROR
messages Array<String> Información adicional del resultado

Resultado correcto:

{
    "result": "CORRECTO",
    "messages": [
      "Sucursal activada correctamente"
    ]
}

Resultado erróneo:

{
    "result": "ADVERTENCIA",
    "messages": [
      "Sucursal ya se encuentra activada"
    ]
}

Solicitudes relacionadas con la Zona Horaria

/timezone - GET

Obtiene el listado de las zonas horarias.

URL a usar:

GET https://workera.com/apiClient/v1/timezone

Resultado:

[
    {
        "id": 1,
        "name": "(UTC-12:00) Línea internacional de cambio de fecha",
        "zoneDiff": -12
    },
    {
        "id": 2,
        "name": "(UTC-11:00) Hora universal coordinada-11",
        "zoneDiff": -11
    },
    {
        "id": 3,
        "name": "(UTC-10:00) Hawai",
        "zoneDiff": -10
    },
    {
        "id": 4,
        "name": "(UTC-09:00) Alaska",
        "zoneDiff": -9
  },...
]

NOTA: el id de la Zona Horaria de Santiago es 25, Magallanes es 101 e Isla de Pascua es 102.


Solicitudes relacionadas con los Departamentos

/department - GET

Este servicio permite consultar un listado de departamentos actualmente creados en la plataforma. Este listado incluye departamentos activos e inactivos.

Atributo Formato Descripción Requerido Ejemplo
page String Número de la página a consultar No 1

Resultado:

La lista se entregará con dos secciones: La primera es la información de la paginación, mientras que la segunda parte tiene la información de los departamentos que se pueden ver en la plataforma

Atributo Formato Descripción
page Integer Página actual
totalPages Integer Total de páginas
pageResult Integer Número de resultados en la página actual
totalResult Integer Número total de resultados
data Array <department> Lista de elementos

department

Atributo Formato Descripción
id  Integer Identificación único del departamento
name String Nombre del departamento
code  Integer  Código del departamento
description String Descripción
status String

Estado de la sucursal:

  • ACTIVO
  • INACTIVO
defaultDepartment Boolean Indica si es la sucursal Matriz
employeesCount Integer Cantidad de trabajadores asociados a dicha sección

Resultado:

Lo que nos mostrará es un listado de todos los departamentos en dos secciones: la primera muestra la paginación, mientras que la segunda parte muestra los departamento.

Ejemplo de resultado correcto:

{
    "data": [
        {
            "id": 184,
            "name": "Departamento Inicial",
            "code": "INICIAL",
            "description": null,
            "status": "ACTIVO",
            "defaultDepartment": true,
            "employeesCount": 25
        },
        {
            "id": 187,
            "name": "Coordinación",
            "code": "COO01",
            "description": "",
            "status": "ACTIVO",
            "defaultDepartment": false,
            "employeesCount": 1
        },...
    ],
    "page": 1,
    "totalPages": 1,
    "pageResult": 5,
    "totalResult": 5
}

/department/{id}

Este servicio permite llamar la información de un departamento en específico. Para poder usar esto, se debe tener el id único con anterioridad.

Parámetros:

Atributo Formato Descripción Requerido Ejemplo
id Integer Identificador único de la departamento 200

URL de ejemplo:

GET https://workera.com/apiClient/v1/department/200

Resultado:

En el caso de que se haya enviado la información correctamente, recibirán un código 200 del servidor y los datos del Departamento. En caso contrario, emitirá error 400 (error de validación o Bad Request), 500 (Error interno del Servidor) o un error común. En el último caso, indicaría un mensaje del por qué.

Atributo Formato Descripción
result String

Tipo de resultado:

  • CORRECTO
  • ADVERTENCIA
  • ERROR
messages Array<String> Información adicional del resultado

Ejemplo de resultado correcto:

{
    "id": 189,
    "name": "Servicio Técnico",
  "code": "ST01",
    "description": null,
    "status": "ACTIVO",
    "defaultDepartment": false,
    "employeesCount": 0
}

Ejemplo de resultado erróneo:

{
    "result": "ERROR",
    "messages": [
      "Departamento no encontrado"
    ]
}

/department - POST

Este servicio permite crear un nuevo departamento. Como estamos usando POST, no es necesario agregar parámetros, pero hay que agregar toda la información dentro del cuerpo (BODY) de la solicitud.

Cuerpo del mensaje (BODY) en formato JSON

Atributo Formato Descripción Requerido Ejemplo
name String Nombre del departamento Ventas
code String Código único del departamento VE01
description String Descripción en el departamento   2da Oficina

URL de ejemplo:

POST https://workera.com/apiClient/v1/department

Body de ejemplo en Postman

{
  "name": "Ventas",
  "code": "VE01",
  "description": "Equipo de Ventas de la segunda oficina",
}

Resultado:

Si se envió correctamente, se envía el código 200 desde el servidor. En caso contrario, se emitirá error 400 (error de validación o Bad Request), 500 (Error interno del Servidor) o un error común. En el último caso, indicaría un mensaje del por qué.

Atributo Formato Descripción
result String

Tipo de resultado:

  • CORRECTO
  • ADVERTENCIA
  • ERROR
messages Array<String> Información adicional del resultado

Resultado correcto:

{
    "result": "CORRECTO",
    "messages": [
      "Departamento creado correctamente"
    ]
}

Resultado erróneo:

{
    "result": "ERROR",
    "messages": [
        "El código ya se encuentra registrado en otro departamento."
    ]
}

/department - PUT

Este servicio permite modificar información de un departamento ya existente en la plataforma. Para esto, vamos a necesitar el ID único de dicho departamento; esta se puede conseguir usando la API GET /department. Como estamos enviando información, no hay parámetros, pero el cuerpo (BODY) debe contener los datos a actualizar.

Cuerpo del mensaje (BODY) en formato JSON:

Atributo Formato Descripción Requerido Ejemplo
id Integer Identificador único registrado para el departamento 200
name String Nombre del departamento Ventas
code String Código único del departamento (plataforma) VE01
description String Descripción del departamento No 2da Oficina

URL de ejemplo:

POST https://workera.com/apiClient/v1/department

Body de ejemplo en Postman:

{
  "id": 189,
  "name": "Ventas 2",
  "code": "VE02",
  "description": "Descripción modificada",
}

Resultado:

Si la información se envió correctamente, recibirán del servidor el código 200. En caso contrario, se emitirá error 400 (error de validación o Bad Request), 500 (Error interno del Servidor) o un error común. En el último caso, indicaría un mensaje del por qué.

Atributo Formato Descripción
result String

Tipo de resultado:

  • CORRECTO
  • ADVERTENCIA
  • ERROR
messages Array<String> Información adicional del resultado

Resultado correcto:

{
    "result": "CORRECTO",
    "messages": [
      "Departamento actualizado correctamente"
    ]
}

Resultado erróneo:

{
    "result": "ERROR",
    "messages": [
        "El código ya se encuentra registrado en otro departamento."
    ]
}

/department/disable/{id} - PUT

Este servicio permite desactivar un departamento. Con esta API, solo es posible desactivar departamentos que no tenga trabajadores asignados.

Atributo Formato Descripción Requerido Ejemplo
id Integer Identificador único de la Sucursal 200

URL de ejemplo:

PUT https://workera.com/apiClient/v1/department/disable/200

Resultado:

El sistema emitirá un código 200 si todo está correcto. En caso contrario, se emitirá error 400 (error de validación o Bad Request), 500 (Error interno del Servidor) o un error común. En el último caso, indicaría un mensaje del por qué.

Atributo Formato Descripción
result String

Tipo de resultado:

  • CORRECTO
  • ADVERTENCIA
  • ERROR
messages Array<String> Información adicional del resultado

Resultado correcto:

{
    "result": "CORRECTO",
    "messages": [
      "Departamento desactivado correctamente"
    ]
}

Resultado erróneo:

{
    "result": "ADVERTENCIA",
    "messages": [
      "Departamento ya se encuentra desactivado"
    ]
}
{
    "result": "ERROR",
    "messages": [
      "Departamento no puede ser inactivado porque tiene empleados"
    ]
}

/department/enable/{id} - PUT

Este servicio permite reactivar un departamento con las API.

Atributo Formato Descripción Requerido Ejemplo
id Integer Identificador único de la Sucursal 200

URL de ejemplo:

PUT https://workera.com/apiClient/v1/department/enable/200

Resultado:

El sistema emitirá un código 200 si todo está correcto. En caso contrario, se emitirá error 400 (error de validación o Bad Request), 500 (Error interno del Servidor) o un error común. En el último caso, indicaría un mensaje del por qué.

Atributo Formato Descripción
result String

Tipo de resultado:

  • CORRECTO
  • ADVERTENCIA
  • ERROR
messages Array<String> Información adicional del resultado

Resultado correcto:

{
    "result": "CORRECTO",
    "messages": [
    "Departamento activado correctamente"
    ]
}

Resultado erróneo:

{
    "result": "ADVERTENCIA",
    "messages": [
      "Departamento ya se encuentra activado"
    ]
}