Actualizar el estado de los entrenamientos de un curso

Este endpoint permite actualizar la fecha y el estado de los entrenamientos de la asignación de un curso.

PATCH /api/v2/businesses/{businessId}/services/{serviceId}/employees/{employeeId}/course-assignments/{courseAssignmentId}/trainings

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 son obligatorios.

Cuerpo de la petición

Análisis del JSON
{
  "updates": [
    {
      "trainingId": "string",
      "date": "string",
      "status": "string"
    }
  ]
}
Detalles
  • updates*: lista con todos los entrenamientos de la asignación. Para cada entrenamiento, se incluye la siguiente información:

    • trainingId*: identificador externo del entrenamiento. Debe pertenecer al curso de la asignación y no puede repetirse.

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

    • status*: estado del entrenamiento. Los valores posibles son PENDING, ATTENDED, NOT_ATTENDED, PASSED y FAILED.

Ejemplo de la petición

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

PATCH /api/v2/businesses/BUSINESSID/services/SERVICEID/employees/EMPLOYEEID/course-assignments/COURSEASSIGNMENTID/trainings
{
  "updates": [
    {
      "trainingId": "TRN-CAJ-NOR",
      "date": "2026-10-19",
      "status": "ATTENDED"
    },
    {
      "trainingId": "TRN-CAJ-TPV",
      "date": "2026-10-19",
      "status": "ATTENDED"
    },
    {
      "trainingId": "TRN-CAJ-ARQ",
      "date": "2026-10-21",
      "status": "PENDING"
    }
  ]
}

Si la petición es correcta, la respuesta será un 200 OK con la información del curso actualizada.

Consideraciones

La petición debe incluir todos los entrenamientos de la asignación, aunque solo se quiera modificar alguno de ellos. Los entrenamientos se identifican por su trainingId dentro del curso de la asignación.

Las fechas deben respetar el orden de los entrenamientos del curso. La fecha de inicio de la asignación pasa a ser la de su primer entrenamiento.

Los entrenamientos con fecha futura deben tener el estado PENDING.

No se pueden modificar entrenamientos cuya fecha sea anterior a 3 meses, ni mover un entrenamiento a una fecha anterior a ese límite.

Aprobación

Al actualizar los entrenamientos, la aprobación del curso se revoca siempre: approved pasa a false, aunque no haya cambiado ningún dato. Para volver a aprobar el curso, se debe usar esta petición.

Si se registra un resultado nuevo en algún entrenamiento (un estado distinto de PENDING que no tenía antes), el empleado debe tener aprobados y vigentes los cursos requisito del curso.

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 assignment not found: <courseAssignmentId>

El courseAssignmentId indicado no existe o no pertenece al empleado.

Course not found for assignment: <courseId>

El curso de la asignación ya no existe.

Training not found in the assignment course: <trainingId>

Alguno de los entrenamientos indicados no pertenece al curso de la asignación.

400 Bad Request

Invalid training status: <status>

El campo status no se ha indicado o no tiene un valor válido.

trainingDates must contain exactly the course trainings

La petición no incluye todos los entrenamientos de la asignación.

Training dates must respect the training order

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

Cannot edit training with date <date>: it is more than 3 months in the past

Alguno de los entrenamientos de la asignación tiene una fecha anterior a hace 3 meses.

Cannot set training date to <date>

Alguna de las fechas indicadas es anterior a hace 3 meses.

Future training <trainingId> must have status PENDING

Algún entrenamiento con fecha futura tiene un estado distinto de PENDING.

error.course_requirements_not_fulfilled

El empleado no tiene aprobados y vigentes todos los cursos requisito. El mensaje incluye los nombres de los cursos pendientes.

Enlaces de interés

¿Qué es un curso?

¿Qué es la asignación de un curso?