Obtener contratos de un empleado con restricciones
Este endpoint permite consultar los contratos de un empleado dentro de un rango de fechas, incluyendo las restricciones aplicadas a cada contrato.
GET /api/v2/businesses/{businessId}/people/{personId}/contracts-with-constraints?from={yyyy-MM-dd}&to={yyyy-MM-dd}
Si los datos incluidos en la petición son correctos —businessId, personId, from y to—, la respuesta contendrá el listado de contratos del empleado que solapan con el rango de fechas indicado, junto con las restricciones propias de cada contrato.
Ejemplo de respuesta
[
{
"from": "2026-01-15",
"regularMinutes": 360,
"weeklyContract": false,
"dailyContract": true,
"countingDays": "WEEKENDS_AND_HOLIDAYS",
"additionalMinutes": 120,
"regularControlPeriod": "MONTHLY",
"regularPeriodMultiplier": 1,
"regularPeriodStartDate": "2026-01-15",
"additionalControlPeriod": "MONTHLY",
"additionalPeriodMultiplier": 1,
"additionalPeriodStartDate": "2026-01-15",
"calendarDaysOff": true,
"numberOfHolidays": 10,
"numberOfPublicHolidays": 10,
"weeklyDaysInvolved": "LABOR_DAYS",
"costPerHour": 200.34,
"personCategory": "AV",
"employeeId": "XXXX01",
"completed": false,
"constraints": [
{
"id": "constraint.shift_alternatives",
"parameters": {},
"blocks": {
"1": {
"timeSlots": "10:00,20:00",
"weekDays": 2
},
"2": {
"timeSlots": "09:00,10:00",
"weekDays": 4
}
},
"blocking": false,
"from": "2026-01-15",
"canceled": false,
"constraintGroup": "Contract",
"nature": "PERSONAL"
},
{
"id": "constraint.weekly_rotative_rest",
"parameters": {
"rotation": 4.0,
"rest": 4.0,
"mandatory": "true"
},
"blocking": false,
"from": "2026-01-15",
"canceled": false,
"constraintGroup": "Contract",
"nature": "CONTRACT_TYPE"
},
{
"id": "constraint.presence_total_minutes",
"parameters": {
"max": 360,
"min": 240
},
"blocking": false,
"from": "2026-01-15",
"canceled": false,
"constraintGroup": "Contract",
"nature": "CONTRACT_TYPE"
}
]
}
]
Detalles
-
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: horas ordinarias (en minutos) establecidas en el contrato. El valor se interpreta en función de la base horaria definida: anual, semanal o diaria.
-
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_SATURDAYoWEEKENDS_AND_HOLIDAYS. -
additionalMinutes: horas complementarias (en minutos) establecidas en el contrato. El valor se interpreta en función de la base horaria definida: anual, semanal o diaria.
-
regularControlPeriod: periodo de control para las horas regulares establecidas en el contrato. Puede ser
WEEKLY,MONTHLY,YEARLYoPERIODS. -
regularPeriodMultiplier: índice multiplicador para regularControlPeriod. Por ejemplo, si se establece
2con 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,YEARLYoPERIODS. -
additionalPeriodMultiplier: índice multiplicador para additionalControlPeriod. Por ejemplo, si se establece
2con 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_SATURDAYoWEEKENDS_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.
-
constraints: lista de restricciones aplicadas al contrato.
-
id: identificador único de la restricción en el sistema.
-
parameters: objeto que agrupa los valores configurables específicos de cada restricción. El conjunto de claves, sus tipos de datos y las reglas de validación están definidos de forma independiente para cada tipo de restricción.
-
blocks: objeto opcional que agrupa los bloques de configuración de la restricción, indexados por un identificador numérico. Solo está presente en los tipos de restricción que admiten esta estructura. El conjunto de claves, sus tipos de datos y los valores posibles de cada bloque están definidos de forma independiente para cada tipo de restricción.
-
blocking: indica si la restricción es bloqueante (
true) o no (false). -
from: fecha a partir de la cual la restricción está activa, en formato
yyyy-MM-dd. -
canceled: indica si la restricción ha sido cancelada (
true) o sigue activa (false). -
constraintGroup: procedencia de la restricción. Al tratarse de las restricciones propias del contrato, en este endpoint su valor será siempre
Contract. -
nature: naturaleza de la restricción que define cómo se ha informado. Los posibles valores son
PERSONAL(manualmente) yCONTRACT_TYPE(aplicación de un tipo de contrato o importación).
-
|
El campo |
La respuesta contendrá los datos que se hayan definido para cada contrato. Por ejemplo, si no se ha aplicado un tipo de contrato, contractTypeName no aparecerá en la respuesta. Del mismo modo, si un contrato no tiene restricciones asociadas, el array constraints aparecerá vacío [].
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 que solapen con el rango de fechas indicado, la petición devolverá un array vacío [].
|
Los parámetros |
Enlaces de interés
¿Qué es un contrato? ¿Y un tipo de contrato?
¿Qué es una restricción?