Añadir contratos de un empleado con restricciones
Este endpoint permite añadir contratos con restricciones para un empleado, admitiendo la naturaleza (nature) de cada restricción.
PUT /api/v2/businesses/{businessId}/people/{employeeId}/contracts-with-constraints
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
|
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": "CST",
"ignoreWithoutOuterId": false,
"contracts": [
{
"from": "2026-06-16",
"regularMinutes": 380,
"weeklyContract": false,
"dailyContract": true,
"countingDays": "WEEKENDS_AND_HOLIDAYS",
"additionalMinutes": 150,
"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",
"constraints": [
{
"id": "constraint.shift_duration_alternatives",
"parameters": {},
"blocks": {
"1": {
"shiftDuration": 630
},
"2": {
"shiftDuration": 1230
}
},
"blocking": false,
"nature": "PERSONAL"
},
{
"id": "constraint.presence_min_total_minutes",
"parameters": {
"min": "240"
},
"blocking": false
}
]
}
]
}
Si todos los datos son correctos, se crearán los contratos para el empleado con las características y restricciones indicadas en la petición.
Aspectos que tener en cuenta
Este endpoint admite el campo nature en cada restricción, permitiendo indicar explícitamente si se ha informado manualmente (PERSONAL) o si proviene de un tipo de contrato o de una importación (CONTRACT_TYPE).
Códigos de error
Además de los errores comunes, este endpoint puede devolver los siguientes códigos:
| Código | Mensaje | Descripción |
|---|---|---|
|
Constraint '<id>' not found in business catalog |
El identificador de restricción ( |
Contract '<id>': constraints are required |
El campo |
|
Constraint '<id>': invalid nature '<nature>'. Allowed values are PERSONAL and CONTRACT_TYPE |
El valor del campo |
|
Business mismatch: employee belongs to '<business>' but request specifies '<business>' |
El negocio indicado en la petición no coincide con el negocio real del empleado. |
|
PersonCategory '<id>' not found in business '<business>' |
El identificador de categoría de empleado ( |
|
DayType '<id>' not found in business |
El tipo de día enviado en |
|
Contract '<id>': block orderValue keys […] must be positive integers |
Las claves de orden ( |
|
Se recomienda revisar el cuerpo de la respuesta en caso de error, ya que incluye información relevante para su diagnóstico y depuración, como el campo inválido o el valor no reconocido. |
Enlaces de interés
¿Qué es un contrato? ¿Y un tipo de contrato?
¿Qué es una restricción?