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 o WEEKENDS_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 o YEARLY.

  • 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 que 1; si el valor del multiplicador es igual a 1, la fecha se ignora.

  • additionalControlPeriod: periodo de control para las horas complementarias. Puede ser WEEKLY, MONTHLY o YEARLY.

  • 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 que 1; si el valor del multiplicador es igual a 1, 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 o WEEKENDS_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