Obtener contratos de un empleado
Este endpoint permite consultar todos los contratos de un empleado.
GET /api/v2/businesses/{businessId}/people/{personId}/contracts
Si los datos incluidos en la petición son correctos —tanto businessId como personId—, la respuesta contendrá el listado de contratos del empleado, detallando la siguiente información:
-
from: fecha de inicio del contrato en formato
yyyy-MM-dd
. -
to: fecha de fin del contrato en formato
yyyy-MM-dd
. Este campo no aparece en la respuesta si el contrato está abierto en el momento de la consulta. -
regularMinutes: número de minutos que se espera que el empleado trabaje según los términos de su contrato laboral. Este campo depende del periodo de control que se establezca para el contrato: anual, semanal o diario.
-
weeklyContract: determina si el contrato se define de manera semanal (
true
) o anual (false
). -
dailyContract: determina si el contrato se define de manera diaria. Si el contrato no es diario ni semanal, se asume que es anual.
-
countingDays: en un contrato diario, indica qué días computan como trabajados. Su valor puede ser
MONDAY_SUNDAY
,MONDAY_SATURDAY
,LABOR_DAYS
,LABOR_MONDAY_SATURDAY
oWEEKENDS_AND_HOLIDAYS
. -
additionalMinutes: número de minutos adicionales que el empleado puede trabajar según los términos de su contrato laboral y que excede del tiempo regular del mismo. Este campo depende del periodo de control que se establezca para el contrato: anual, semanal o diario.
-
regularControlPeriod: periodo de control para las horas regulares establecidas en el contrato. Puede ser
WEEKLY
,MONTHLY
oYEARLY
. -
regularPeriodMultiplier: índice multiplicador para regularControlPeriod. Por ejemplo, si se establece
2
con regularControlPeriod semanal, determinaría que se trata de una quincena. -
regularPeriodStartDate: fecha de inicio de regularControlPeriod en formato
yyyy-MM-dd
. Esta fecha se tiene en cuenta para un valor de regularPeriodMultiplier mayor que1
; si el valor del multiplicador es igual a1
, la fecha se ignora. -
additionalControlPeriod: periodo de control para las horas complementarias. Puede ser
WEEKLY
,MONTHLY
oYEARLY
. -
additionalPeriodMultiplier: índice multiplicador para additionalControlPeriod. Por ejemplo, si se establece
2
con additionalControlPeriod semanal, determinaría que se trata de una quincena. -
additionalPeriodStartDate: fecha de inicio de additionalControlPeriod en formato
yyyy-MM-dd
. Esta fecha se tiene en cuenta para un valor de additionalPeriodMultiplier mayor que1
; si el valor del multiplicador es igual a1
, la fecha se ignora. -
calendarDaysOff: determina si las vacaciones serán procesadas en días naturales (
true
) o laborables (false
). -
numberOfHolidays: número de días de vacaciones que tiene el empleado en su contrato.
-
numberOfPublicHolidays: número de días festivos que tiene el empleado en su contrato.
-
weeklyDaysInvolved: días de la semana que serán computables. Su valor puede ser
MONDAY_SUNDAY
,MONDAY_SATURDAY
,LABOR_DAYS
,LABOR_MONDAY_SATURDAY
oWEEKENDS_AND_HOLIDAYS
. -
metadata: cualquier dato adicional relativo al contrato que se haya configurado previamente. La estructura de estos metadatos dependerá de la configuración de negocio.
-
costPerHour: coste del empleado por hora trabajada.
-
personCategory: identificador externo de la categoría del empleado.
-
employeeId: identificador externo del empleado.
-
id: identificador externo del contrato.
-
contractTypeName: nombre del tipo de contrato que se aplica.
-
completed: determina si el contrato está liquidado o no.
A continuación, se muestra un ejemplo de respuesta:
[
{
"from": "2024-06-25",
"regularMinutes": 2400,
"weeklyContract": true,
"dailyContract": false,
"additionalMinutes": 1200,
"regularControlPeriod": "WEEKLY",
"additionalControlPeriod": "WEEKLY",
"calendarDaysOff": true,
"numberOfHolidays": 30,
"numberOfPublicHolidays": 14,
"weeklyDaysInvolved": "MONDAY_SUNDAY",
"costPerHour": 10.0,
"personCategory": "CS",
"employeeId": "1006350",
"completed": false
}
]
La respuesta contendrá los datos que se hayan definido para cada contrato del empleado, por lo que algunos de los campos pueden no aparecer. Por ejemplo, si no se ha aplicado un tipo de contrato, contractTypeName
no aparecerá en la respuesta.
Aspectos que tener en cuenta
Si el empleado especificado en la URL no existe en el negocio, la petición devolverá un error 404 Not Found
indicando Employee not found.
Si el empleado no tiene contratos, la petición devolverá un array vacío []
.
Enlaces de interés
¿Qué es un contrato? ¿Y un tipo de contrato?