Añadir contratos con restricciones
Este endpoint permite añadir contratos con restricciones para un empleado.
PUT /api/v2/businesses/{businessId}/employees/{employeeId}/contracts
A continuación, se expone una explicación detallada de cada uno de los campos que pueden conformar el cuerpo de la petición.
|
Los campos obligatorios están marcados con (*). Los valores admitidos para los campos de tipo |
Cuerpo de la petición
| Análisis del JSON |
|---|
Detalles
|
contracts Lista de contratos que se definen para el empleado de la URL. Cada contrato puede tener sus propias restricciones. |
Detalles
|
Ejemplo de la petición
Una vez realizado el análisis de los distintos campos, se muestra un ejemplo del cuerpo de la petición:
{
"business": "BUSINESSID",
"ignoreWithoutOuterId": false,
"ignoreConstraints": false,
"contracts": [
{
"from": "2026-01-15",
"to": null,
"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",
"completed": false,
"additionalDailyContract": true,
"additionalWeeklyContract": false,
"regularCountingDayType": "WEEKENDS",
"additionalCountingDayType": "WEEKENDS",
"constraints": [
{
"id": "constraint.presence_total_minutes",
"parameters": {
"max": 360
},
"blocking": false
},
{
"id": "constraint.weekly_rotative_rest",
"parameters": {
"mandatory": true,
"rest": 4.0,
"rotation": 4.0
},
"blocking": false
}
]
}
]
}
Si todos los datos son correctos, se creará un contrato para el empleado con las características y restricciones indicadas en la petición (Duración máxima de un turno y Rotación de descansos).
Aspectos que tener en cuenta
Si el empleado indicado en la URL no existe, la petición devolverá un error 404 Not Found indicando Person does not exist.
Si el identificador de la restricción (id) no se corresponde con ninguna restricción del catálogo del negocio, la petición devolverá un error 400 Bad Request indicando Constraint not found in business catalog.
Si se envía contractTypeId, se reemplazan todas las restricciones —incluyendo las que se hayan definido manualmente— por las que tenga el tipo de contrato.
Si no se envía contractTypeId, se reemplazan por las de la petición únicamente las restricciones cuyo origen es Importación; las que fueron definidas manualmente se conservan en el sistema.
No se puede enviar tipo de contrato y restricciones en la misma petición: si se envía el campo contractTypeId y constraints, la petición devolverá un error 400 Bad Request indicando […] cannot specify both contractTypeId and constraints simultaneously.
Enlaces de interés
¿Qué es un contrato? ¿Y un tipo de contrato?
¿Qué es una restricción?