Obtener información de nóminas por servicio

Este endpoint permite consultar la información del informe de nóminas de los empleados de un servicio.

GET /api/v1/business/{businessId}/service/{serviceId}/payroll/from/{yyyy-MM-dd}/to/{yyyy-MM-dd}

Si los datos incluidos en la petición son correctos —tanto businessId como serviceId— y el intervalo de consulta no supera los 40 días, la respuesta contendrá la información definida para el informe de nóminas de todos los empleados del servicio, incluyendo para cada uno de ellos los siguientes campos:

  • employeeId: identificador externo del empleado.

  • incidences: información sobre incidencias del empleado. Aquí aparecerán solo las incidencias que se hayan configurado para ser mostradas en el informe de nóminas a nivel de servicio (Configuración de tienda > Parámetros de tienda > Gestión de Informes > Tipos de incidencia en informe de Nóminas). Se incluye la siguiente información:

    • name: nombre del tipo de incidencia.

    • shortName: abreviatura del tipo de incidencia.

    • fullDay: indica si el tipo de incidencia es de día completo (true) o no (false).

    • typeId: identificador externo del tipo de incidencia.

    • values: lista de valores con la fecha y el número de minutos que computa la incidencia. Si la incidencia es de tipo No computable, el valor será 0.0.

  • counters: información sobre contadores del empleado. Aquí aparecerán solo los contadores que se hayan configurado para ser mostrados en el informe de nóminas a nivel de servicio (Configuración de tienda > Parámetros de tienda > Gestión de Informes > Contadores a mostrar en el informe de Nóminas). Se incluye la siguiente información:

    • key: clave del contador definida a nivel interno.

    • shortName: abreviatura del contador.

    • values: lista con los días y el valor del contador en función de su alcance temporal (diario, por minutos, etc.).

  • locations: información sobre las tareas desempeñadas por el empleado. Aquí aparecerán solo las tareas que se hayan configurado para ser mostradas en el informe de nóminas a nivel de servicio (Configuración de tienda > Parámetros de tienda > Gestión de Informes > Tiempo de tareas en informe de Nóminas). Se incluye la siguiente información:

    • name: nombre de la tarea.

    • shortName: abreviatura de la tarea.

    • id: identificador externo de la tarea.

    • values: lista de valores con la fecha y el número de minutos dedicados a la tarea.

    • zone: lugar físico del servicio (tienda, restaurante, etc.) donde se realiza la tarea

  • worked: lista de días en los que el empleado estaba disponible para trabajar.

  • attendance: lista de días en los que el empleado tiene asignación.

  • otherIncidences: lista de días en los que hay registros de otras incidencias distintas de las configuradas a nivel de servicio para ser mostradas en el informe de nóminas.

  • bags: información sobre las bolsas de horas. Aquí aparecerán solo las bolsas que se hayan configurado para ser mostradas en el informe de nóminas a nivel de servicio (Configuración de tienda > Parámetros de tienda > Gestión de Informes > Bolsas de horas a mostrar en el informe de Nóminas). Se incluye la siguiente información:

    • name: nombre de la bolsa.

    • id: identificador externo de la bolsa.

    • values: lista con los días y el valor de la bolsa en función de su configuración (horas y minutos o valor numérico).

    • symbol: en caso de que se haya establecido un valor numérico para la bolsa, el símbolo que se ha configurado para tal valor.

A continuación, se muestra un ejemplo con un fragmento de respuesta:

[
    {
        "employeeId": "XXXX",
        "incidences": [
            {
                "name": "SICK LEAVE",
                "shortName": "SL",
                "fullDay": true,
                "typeId": "03",
                "values": {
                    "2025-08-27": 0.0,
                    "2025-08-25": 0.0,
                    "2025-08-26": 0.0
                }
            },
            {
                "name": "MEDICAL APPOINTMENT",
                "shortName": "MA",
                "fullDay": false,
                "typeId": "01",
                "values": {
                    "2025-08-12": 120.0,
                    "2025-08-06": 60.0
                }
            }
        ],
        "counters": [
            {
                "key": "counter.daily_sunday_bank_holiday",
                "shortName": "SBD",
                "values": {
                    "2025-08-24": 1.0,
                    "2025-08-31": 1.0
                }
            },
            {
                "key": "counter.sundays_worked_per_month",
                "shortName": "DTM",
                "values": {
                    "2025-08-24": 1.0,
                    "2025-08-10": 0.0,
                    "2025-08-17": 0.0,
                    "2025-08-03": 0.0,
                    "2025-08-31": 1.0
                }
            }
        ],
        "locations": [
            {
                "name": "OPENING",
                "shortName": "OP",
                "id": "01",
                "values": {
                    "2025-08-24": 300.0,
                    "2025-08-31": 720.0
                },
                "zone": "General"
            }
        ],
        "worked": [
            "2025-08-29",
            "2025-08-24",
            "2025-08-22",
            "2025-08-17",
            "2025-08-02",
            "2025-08-30",
            "2025-08-20",
            "2025-08-15",
            "2025-08-10",
            "2025-08-05",
            "2025-08-28",
            "2025-08-23",
            "2025-08-18",
            "2025-08-13",
            "2025-08-08",
            "2025-08-03",
            "2025-08-21",
            "2025-08-31",
            "2025-08-16",
            "2025-08-11",
            "2025-08-01",
            "2025-08-19",
            "2025-08-14",
            "2025-08-09",
            "2025-08-04"
        ],
        "attendance": [
            "2025-08-24",
            "2025-08-31"
        ],
        "otherIncidences": [
            "2025-08-07"
        ],
        "bags": [
            {
                "name": "Worked hours",
                "id": "WH",
                "values": {
                    "2025-08-23": 0.0,
                    "2025-08-01": 0.0,
                    "2025-08-24": 300.0,
                    "2025-08-02": 0.0,
                    "2025-08-21": 0.0,
                    "2025-08-22": 0.0,
                    "2025-08-27": 300.0,
                    "2025-08-05": 0.0,
                    "2025-08-28": 300.0,
                    "2025-08-06": 0.0,
                    "2025-08-25": 300.0,
                    "2025-08-03": 0.0,
                    "2025-08-26": 300.0,
                    "2025-08-04": 0.0,
                    "2025-08-20": 0.0,
                    "2025-08-18": 0.0,
                    "2025-08-19": 0.0,
                    "2025-08-12": 0.0,
                    "2025-08-13": 0.0,
                    "2025-08-10": 0.0,
                    "2025-08-11": 0.0,
                    "2025-08-16": 0.0,
                    "2025-08-17": 0.0,
                    "2025-08-14": 0.0,
                    "2025-08-15": 0.0,
                    "2025-08-30": 300.0,
                    "2025-08-31": 1020.0,
                    "2025-08-09": 0.0,
                    "2025-08-29": 300.0,
                    "2025-08-07": 0.0,
                    "2025-08-08": 0.0
                }
            }
        ]
    }
]

La respuesta contendrá los datos que se hayan definido para ser mostrados en el informe de nóminas, por lo que algunos de los campos pueden no aparecer. Por ejemplo, si no se han configurado bolsas de horas, bags no aparecerá en la respuesta.

Tampoco aparecerán aquellos campos en los que no haya datos que mostrar. Por ejemplo, si no hay incidencias registradas para el empleado en el periodo de consulta, no aparecerán en la respuesta aunque estén configuradas para ser mostradas en el informe de nóminas.

Por último, los valores que se devuelven en cada uno de los elementos dependerán de la configuración de negocio. Por ejemplo, si la incidencia es de día completo o no computable, si la bolsa de horas tiene en cuenta los fichajes o las asignaciones, etc.

Aspectos que tener en cuenta

Si el servicio especificado en la URL no existe en el negocio, la petición devolverá un error 404 Not Found indicando not exits.

Si el intervalo de consulta especificado en la URL es superior a 40 días, la petición devolverá un error 406 Not Acceptable.

Si no hay empleados en el servicio indicado, la petición devolverá un array vacío [].

Enlaces de interés

¿Qué es una incidencia?

¿Qué es un contador?

¿Qué es una tarea?

¿Qué es una bolsa?