Asignar un curso

Este endpoint permite asignar un curso a varios empleados de un servicio, con las mismas fechas para todos ellos.

POST /api/v2/businesses/{businessId}/services/{serviceId}/courses/{courseId}/assignments/bulk

A continuación, se expone una explicación detallada de cada uno de los campos que pueden conformar el cuerpo de la petición, siendo algunos de ellos obligatorios para que esta se realice de manera exitosa.

Todos los campos de esta petición son obligatorios.

Cuerpo de la petición

Análisis del JSON
{
  "employeeIds": [
    "string"
  ],
  "trainingDates": [
    {
      "trainingId": "string",
      "date": "string"
    }
  ]
}
Detalles
  • employeeIds*: lista de identificadores externos de los empleados a los que se asigna el curso. No puede contener empleados repetidos.

  • trainingDates*: fechas de los entrenamientos del curso. Debe contener, al menos, un entrenamiento. Para cada entrenamiento, se incluye la siguiente información:

    • trainingId*: identificador externo del entrenamiento. Debe pertenecer al curso y no puede repetirse.

    • date*: fecha en la que se realiza el entrenamiento, en formato yyyy-MM-dd.

Ejemplo de la petición

Una vez realizado el análisis de los distintos campos, se muestra un ejemplo de la petición:

POST /api/v2/businesses/BUSINESSID/services/SERVICEID/courses/COURSEID/assignments/bulk
{
  "employeeIds": [
    "000001",
    "000002"
  ],
  "trainingDates": [
    {
      "trainingId": "TRN-ID",
      "date": "2026-10-19"
    }
  ]
}

Si la petición es correcta, la respuesta será un 201 Created con una asignación de curso por cada empleado.

Consideraciones

No es necesario indicar la fecha de todos los entrenamientos del curso. Los entrenamientos que no se incluyan en trainingDates se calculan a partir del día que tienen definido en el curso, tomando como referencia la fecha más temprana indicada.

Las fechas indicadas deben respetar el orden de los entrenamientos del curso.

Los entrenamientos se crean con el estado PENDING.

La petición no es idempotente: si se repite, se crean asignaciones duplicadas para los mismos empleados.

Códigos de error

Además de los errores comunes, este endpoint puede devolver los siguientes códigos:

Código Mensaje Descripción

404 Not Found

Course not found: <courseId>

El courseId indicado no existe en el negocio.

Training not found in course: <trainingId>

Alguno de los entrenamientos indicados en trainingDates no pertenece al curso.

Person not found in service

Alguno de los empleados no tiene contrato o asociación al servicio durante todo el periodo del curso.

400 Bad Request

At least one training date is required

El campo trainingDates no se ha indicado o está vacío.

Training dates must respect the training order

Las fechas indicadas no respetan el orden de los entrenamientos del curso.

Enlaces de interés

¿Qué es una asignación de curso?

¿Qué es un curso?