Registrar una vacante

Este endpoint permite crear una vacante y hacerla pública para los empleados indicados en la petición.

POST /api/v1/businesses/{businessId}/vacancies

Los campos obligatorios están marcados con un asterisco (*).

Cuerpo de la petición

Análisis del JSON
{
  "id": "string",
  "product": "string",
  "day": "yyyy-MM-dd",
  "expiration": "yyyy-MM-ddTHH:mm:ssXXX",
  "employees": [
    "string",
    "string"
  ],
  "shifts": [
    {
      "start": "yyyy-MM-ddTHH:mm:ssXXX",
      "end": "yyyy-MM-ddTHH:mm:ssXXX"
    }
  ],
  "publishToSiblings": false
}
Detalles
  • id*: identificador externo de la vacante.

  • product*: identificador externo del producto vinculado con la vacante.

  • day*: día para el que se publica la vacante en formato yyyy-MM-dd.

  • expiration*: fecha límite para postular a la vacante. Una vez que ha pasado esa fecha, no se aceptarán solicitudes para la vacante. Se debe enviar en formato yyyy-MM-ddTHH:mm:ssXXX, con zona horaria en forma de offset (+02:00) o Z para UTC. No puede ser anterior a la fecha y hora actuales.

  • employees*: listado de identificadores externos de los empleados a los que se notificará la publicación de la vacante.

  • shifts*: lista de turnos definidos para la vacante (1 o 2 como máximo). Incluye, para cada intervalo, los siguientes campos:

    • start*: inicio del turno en formato yyyy-MM-ddTHH:mm:ssXXX. La zona horaria debe especificarse mediante un offset (por ejemplo, +02:00) o Z (UTC). Debe coincidir con la fecha para la que se publica la vacante.

    • end*: fin del turno en formato yyyy-MM-ddTHH:mm:ssXXX. La zona horaria debe especificarse mediante un offset (por ejemplo, +02:00) o Z (UTC). Puede ser posterior a la fecha para la que se publica la vacante, por ejemplo, en turnos que terminan después de las 00:00.

  • publishToSiblings: determina si la vacante se oferta también a empleados que cuelgan del mismo nodo organizativo (true), en lugar de restringirse únicamente al producto indicado. Por defecto es false.

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:

{
  "id": "2f14p",
  "product": "0001-G",
  "day": "2026-07-24",
  "expiration": "2026-07-23T04:00:00Z",
  "employees": [
    "1006370","2677189"
  ],
  "shifts": [
    {
      "start": "2026-07-24T18:00:00Z",
      "end": "2026-07-24T19:00:00Z"
    },
    {
      "start": "2026-07-24T21:00:00Z",
      "end": "2026-07-25T03:00:00Z"
    }
  ],
  "publishToSiblings": true
}

Si los datos son correctos, la vacante se publicará y será visible en el apartado de Planificación > Oferta de turnos vacantes.

Aspectos que tener en cuenta

Si no se envía alguno de los campos obligatorios, la petición devolverá un error 400 Bad Request indicando en el mensaje cuál es el campo requerido que falta.

Si el identificador externo de la vacante ya existe, la petición devolverá un error 400 Bad request indicando Vacancy already exists.

Los turnos (shifts) deben coincidir con el día para el que se publica la vacante (day). El campo to puede ser posterior en turnos que terminan después de las 00:00.

Las horas se deben enviar en UTC o con la zona horaria correspondiente y la publicación se realiza considerando el huso horario del servicio.

Si se envía "publishToSiblings": false, se valida que todos los empleados indicados en la petición pertenezcan al producto en el que se publica la vacante. Si alguno de ellos no pertenece a dicho producto, la petición devolverá un error 400 Bad Request con el mensaje Employees do not belong to product.

Los siblings de un producto son los demás productos que cuelgan del mismo nodo en la estructura organizativa.

Se pueden publicar diferentes vacantes para la misma fecha e intervalo siempre que los identificadores externos no coincidan.

Enlaces de interés

¿Qué es una vacante?