Añadir contratos de un empleado
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
|
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.sliding_rested_constraint",
"parameters": {
"assigmentIncidence": "false",
"skipHolidayWeekends": "false"
},
"blocks": {
"1": {
"weekendRestFull": "SATURDAY_OR_SUNDAY",
"uniformDistribution": "UNIFORM",
"periodicity": "MONTHLY",
"restDayAsWork": "false",
"maxOccurrences": "0,1",
"interval": "0,1",
"mandatory": "true"
},
"2": {
"weekendRestFull": "SATURDAY_XOR_SUNDAY",
"uniformDistribution": "UNIFORM",
"periodicity": "WEEKLY",
"restDayAsWork": "false",
"maxOccurrences": "0,1",
"interval": "0,1",
"mandatory": "false"
}
},
"blocking": false
},
{
"id": "constraint.max_consecutive_worked_days",
"parameters": {
"min": 1,
"max": 6
},
"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.
Consideraciones
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ían a la vez los campos |
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 ( |
[…] cannot specify both contractTypeId and constraints simultaneously. |
Se envían a la vez |
|
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 |
|
ContractType '<id>' not found in business '<business>' |
El identificador de tipo de contrato ( |
|
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?