Cambios en la API de la versión de agosto de 2026 de Adobe Learning Manager
API de administración de grupos de usuarios en Adobe Learning Manager
Esta versión agrega tres nuevos puntos finales de API públicas con ámbito de administración para administrar grupos de usuarios personalizados mediante programación. Puede crear, cambiar el nombre y eliminar grupos de usuarios personalizados sin usar la aplicación de administración, lo que le permite automatizar la administración de grupos como parte de su identidad o los flujos de trabajo de aprovisionamiento.
Estos puntos finales solo funcionan con grupos de usuarios personalizados. Los grupos administrados por el sistema, como el grupo Todos los usuarios y los grupos de usuarios generados automáticamente, tienen el valor readOnly: true en la respuesta de la API y no se puede modificar ni eliminar a través de estos puntos finales.
Para conocer los requisitos de autenticación de API, consulte Autenticación de API de Adobe Learning Manager.
Terminales de API de grupos de usuarios
Los tres puntos finales requieren un token de acceso de administrador con permisos de escritura (ROLE_ADMIN).
Encabezados de solicitud comunes
Los tres puntos finales requieren los siguientes encabezados.
Authorization: Bearer \<access-token\>
X-acap-user: \<user-id\>
X-acap-account: \<account-id\>
X-acap-caller-role: ROLE_ADMIN
Content-Type: application/vnd.api+json
Accept: application/vnd.api+json
Crear un grupo de usuarios
POST /primeapi/v2/userGroups
Crea un nuevo grupo de usuarios personalizado con una lista inicial de miembros. El grupo está disponible inmediatamente para su uso en la aplicación de administración.
Cuerpo de solicitud
{
"name": "Marketing Team",
"description": "Custom user group for marketing onboarding",
"data": [
{ "type": "user", "id": "11282373" },
{ "type": "user", "id": "11282374" }
]
}
Parámetros de solicitud
Nota: La matriz de datos solo se usa en la creación para establecer la lista de miembros inicial. Para agregar o quitar miembros después de su creación, utilice los puntos finales de pertenencia a grupos de usuarios existentes.
Se creó la respuesta 201
{
"links": {
"self": "https://<host>/primeapi/v2/userGroups"
},
"data": {
"id": "2769204",
"type": "userGroup",
"attributes": {
"dateCreated": "2026-06-04T14:19:53.000Z",
"description": "Custom user group for marketing onboarding",
"name": "Marketing Team",
"readOnly": false,
"userCount": 2
}
}
}
POST de reglas de validación
Actualizar un grupo de usuarios
PUT /primeapi/v2/userGroups/{id}
Actualiza el nombre o la descripción de un grupo de usuarios personalizado existente. Este extremo no puede agregar ni quitar miembros del grupo.
Puede omitirse cualquiera de los campos; Si se omite un campo, su valor actual no cambia. Si se pasa null para la descripción, se borra. Se rechaza pasar una cadena en blanco para el nombre.
Cuerpo de solicitud
{
"name": "Updated Group Name",
"description": "Updated description text"
}
Parámetros de solicitud
Respuesta 200 correcta
{
"data": {
"type": "userGroup",
"id": "2767870",
"attributes": {
"name": "Updated Group Name",
"description": "Updated description text",
"readOnly": false,
"state": "Active",
"userCount": 3
}
}
}
PUT de reglas de validación
Eliminar un grupo de usuarios
DELETE /primeapi/v2/userGroups/{id}
Marca el grupo de usuarios personalizado especificado como eliminado. El registro del grupo no se elimina permanentemente: su estado se establece en DELETED, lo que lo hace invisible en la aplicación de administración y no apto para su uso en nuevas configuraciones. El ID de grupo no se puede reutilizar.
Ejemplo de solicitud
DELETE /primeapi/v2/userGroups/2767870
Authorization: Bearer <access-token>
X-acap-user: <user-id>
X-acap-account: <account-id>
X-acap-caller-role: ROLE_ADMIN
Respuesta 204 Sin contenido
El cuerpo de la respuesta está vacío.
Nota: El DELETE no es idempotente. Al enviar una segunda solicitud de DELETE al mismo ID de grupo, se devuelve un error 400 con el código DELETED_USERGROUP, no 204. Trate una respuesta 400 DELETED_USERGROUP como confirmación de que el grupo ya se ha eliminado. No se admite la eliminación en bloque; cada grupo requiere una solicitud de DELETE independiente.
DELETE de reglas de validación
API de aprendizaje externo en Adobe Learning Manager
Esta versión añade cinco nuevos puntos finales de API con ámbito de alumno para la función de aprendizaje externo. Estos puntos finales permiten a los alumnos crear, recuperar y actualizar envíos de aprendizaje externos mediante programación, por ejemplo, desde una aplicación móvil, un sistema de recursos humanos integrado o un portal de aprendizaje personalizado.
El flujo de trabajo de aprendizaje externo a través de la API refleja el flujo de trabajo en la aplicación del alumno: un alumno envía detalles de formación y un documento de prueba opcional, su responsable directo recibe una notificación para revisar el envío y, tras la aprobación, el registro aparece en la transcripción del alumno.
Los cinco puntos finales tienen el ámbito del alumno. Un alumno solo puede acceder a sus propios envíos. La API devuelve un error si un alumno intenta acceder a los datos de otro alumno.
Para conocer los requisitos de autenticación de API, consulte Autenticación de API de Adobe Learning Manager.
Terminales de API de aprendizaje externo
Todos los puntos finales requieren un token de acceso de alumno (ROLE_LEARNER).
Encabezados de solicitud comunes
Authorization: Bearer <access-token>
X-acap-user: <user-id>
X-acap-account: <account-id>
X-acap-caller-role: ROLE_LEARNER
Accept: application/vnd.api+json
Content-Type: application/vnd.api+json (POST and PUT only)
Ciclo de vida del estado de envío
APROBADO y RECHAZADO son estados finales. No se puede volver a abrir una presentación rechazada; el alumno debe crear un nuevo envío.
Obtener configuración del formulario de cuenta
GET /primeapi/v2/externalLearningSettings
Devuelve la configuración de formulario de nivel de cuenta. Llame a este punto final antes de procesar un formulario de envío. La respuesta define qué campos mostrar, cuáles son obligatorios, sus tipos de datos y los campos personalizados configurados por el administrador.
Compruebe el atributo habilitado de nivel superior antes de continuar; si es falso, la función Aprendizaje externo no está activa para esta cuenta y los puntos finales de envío devolverán errores.
Respuesta 200 OK
{
"data": {
"id": "8627",
"type": "externalLearningSettings",
"attributes": {
"enabled": true,
"updatedAt": "2026-06-05T06:51:20.000Z",
"coreFields": [
{ "id": "title", "type": "TEXT", "mandatory": true, "editable": false, "order": 0 },
{ "id": "description_notes", "type": "TEXT", "mandatory": false, "editable": true, "order": 1 },
{ "id": "date", "type": "TIMESTAMP", "mandatory": false, "editable": true, "order": 2 },
{ "id": "score", "type": "NUMBER", "mandatory": true, "editable": true, "order": 3 },
{ "id": "duration", "type": "TEXT", "mandatory": false, "editable": true, "order": 4 },
{ "id": "attachments", "type": "FILE_UPLOAD", "mandatory": true, "editable": true, "order": 5 }
],
"customFields": [
{
"id": "960369b2-...",
"type": "NUMBER",
"mandatory": true,
"order": 0,
"label": { "en_US": "Employee Code" }
},
{
"id": "3c6cc6d9-...",
"type": "DROPDOWN",
"mandatory": true,
"order": 1,
"label": { "en_US": "Department" },
"options": [
{ "option_id": "opt_1", "label": { "en_US": "IT" } },
{ "option_id": "opt_2", "label": { "en_US": "HR" } },
{ "option_id": "opt_3", "label": { "en_US": "FIN" } }
]
}
]
}
}
}
Referencia de campo principal
Intervalo de fecha Forma del valor: { “start_date”: “
”, “end_date”: “ ” }. Cualquiera de los valores puede ser nulo.
Forma del valor: { “managed_score”:
, “max_score”: }. Ambos valores deben ser numéricos. max_score no puede ser negativo.
El administrador define los campos personalizados y los devuelve en customFields[]. Sus ID, tipos, indicadores obligatorios, etiquetas y opciones desplegables varían según la configuración de la cuenta.
Envío de listas
GET /primeapi/v2/externalLearnings
Devuelve una lista paginada de los envíos propios del alumno autenticado, ordenados por modificadoEn descendente (el último modificado primero).
Parámetros de consulta
Respuesta 200 correcta
{
"links": {
"next": "/primeapi/v2/externalLearnings?page[offset]=10&page[limit]=10"
},
"data": [
{ "id": "1001", "type": "externalLearning", "attributes": { "status": "PENDING", ... } },
{ "id": "1002", "type": "externalLearning", "attributes": { "status": "APPROVED", ... } }
]
}
Obtener un envío
GET /primeapi/v2/externalLearnings/{id}
Devuelve el registro completo de un único envío que pertenece al alumno autenticado.
**Respuesta 200 OK
{
"data": {
"id": "1001",
"type": "externalLearning",
"attributes": {
"submissionUrl": "https://<cdn-url>/cert.pdf",
"title": "Java Fundamentals Certification",
"status": "PENDING",
"creationSource": "LEARNER",
"createdAt": "2026-04-14T08:30:00.000Z",
"modifiedAt": "2026-04-16T11:45:00.000Z",
"fields": [ "...resolved against live settings..." ]
},
"relationships": {
"reviewerUser": { "data": null }
}
}
}
Crear un envío
POST /primeapi/v2/externalLearnings
Crea un nuevo envío de aprendizaje externo en estado PENDIENTE. Se deben incluir todos los campos obligatorios definidos en la configuración de la cuenta. Después de que el POST sea un éxito, el responsable del alumno recibe una notificación en la plataforma para revisar el envío.
Carga de archivo
El campo de datos adjuntos se gestiona por separado de los demás campos. No lo incluya dentro de los campos []. En su lugar:
1. Obtenga una URL de carga S3 firmada previamente desde el punto final de carga del archivo ALM.
2. Cargue el archivo en esa URL.
3. Pase la dirección URL resultante como el atributo submitUrl de nivel superior en la solicitud del POST.
Cuerpo de solicitud
{
"data": {
"type": "externalLearning",
"attributes": {
"submissionUrl": "<pre-signed-upload-url>",
"fields": [
{ "id": "title", "type": "TEXT", "value": "Java Fundamentals Certification" },
{ "id": "description_notes", "type": "TEXT", "value": "Completed via online course platform." },
{ "id": "date", "type": "TIMESTAMP", "value": { "start_date": "2026-05-01T00:00:00.000Z", "end_date": "2026-05-15T00:00:00.000Z" } },
{ "id": "score", "type": "NUMBER", "value": { "achieved_score": 88, "max_score": 100 } },
{ "id": "duration", "type": "TEXT", "value": "40 hours" },
{ "id": "960369b2-...", "type": "NUMBER", "value": "1225" },
{ "id": "3c6cc6d9-...", "type": "DROPDOWN", "value": "opt_3" }
]
}
}
}
Formas de valor de campo
POST de reglas de validación
Actualizar una presentación
PUT /primeapi/v2/externalLearnings/{id}
Actualiza un envío PENDIENTE existente. Solo se pueden actualizar los envíos PENDIENTES. Al intentar enviar un PUT de un envío APROBADO o RECHAZADO, se devuelve un error 409.
Este extremo usa semántica de reemplazo completo. Proporcione la matriz completa de campos [] en cada solicitud de PUT, no solo los campos que está cambiando. Los campos omitidos de la matriz se borran.
Campos que el alumno puede actualizar
Cuerpo de la solicitud
{
"data": {
"type": "externalLearning",
"attributes": {
"submissionUrl": "<cdn-url>/cert-v2.pdf",
"fields": [
{ "id": "title", "type": "TEXT", "value": "Java Fundamentals — Updated" },
{ "id": "description_notes", "type": "TEXT", "value": "Updated notes." },
{ "id": "date", "type": "TIMESTAMP", "value": { "start_date": null, "end_date": null } },
{ "id": "score", "type": "NUMBER", "value": { "achieved_score": 92, "max_score": 100 } },
{ "id": "duration", "type": "TEXT", "value": "42 hours" },
{ "id": "960369b2-...", "type": "NUMBER", "value": "1227" },
{ "id": "3c6cc6d9-...", "type": "DROPDOWN", "value": "opt_2" }
]
}
}
}
API para ID de certificación relevante para el alumno e ID de certificación raíz en LT
Cuando se renueva una certificación periódica, Adobe Learning Manager crea una nueva versión de la certificación e inscribe automáticamente en ella a los alumnos activos. Si su integración consulta datos de certificación directamente en lugar de basarse en la experiencia del alumno de Adobe Learning Manager, puede utilizar esta API para determinar exactamente qué versión de una certificación periódica es relevante para un alumno específico en cualquier momento.
Propósito de la API
Las certificaciones periódicas generan un nuevo ID de certificación cada vez que se renuevan. En la experiencia del alumno nativo de Adobe Learning Manager, solo se muestra la versión relevante para cada alumno. Las versiones anteriores se ocultan automáticamente una vez que un alumno se mueve a una más reciente.
Si su integración recupera datos de certificación de forma independiente, por ejemplo, para mostrar información de certificación en un portal externo, es posible que no aplique automáticamente este filtrado. Sin ella, un alumno podría ver todas las versiones históricas de una certificación recurrente, incluidas las que ya no son relevantes para él, sin indicar con qué actuar.
Esta API corrigió esa brecha. Dado el ID de certificación raíz, devuelve la versión de certificación específica que se aplica a un alumno determinado, teniendo en cuenta su historial de inscripción y cualquier repetición.
Comprender la periodicidad de certificaciones
Cuando se configura una certificación para que se repita, cada renovación crea una nueva versión de certificación con su propio ID único. Todas las versiones se remontan a un único ID de certificación raíz, el ID de la certificación original cuando se creó por primera vez.
Por ejemplo, una certificación que se repite cada mes podría producir una secuencia de versiones a lo largo del tiempo, donde cada nueva versión se genera automáticamente cuando se alcanza el intervalo de periodicidad. Los alumnos que se inscriben activamente cuando se produce una repetición se inscriben automáticamente en la nueva versión.
Dado que cada versión tiene un ID distinto, la versión relevante de un alumno depende de su calendario de inscripción individual:
-
Un alumno que se inscribió antes de una repetición y completó su certificación antes de que tuviera lugar la siguiente repetición habrá pasado por varias versiones a lo largo del tiempo.
-
Un alumno que se inscribe a lo largo de un ciclo de periodicidad se inscribe directamente en la versión que esté en vigor en el momento de inscribirse.
Determinar la versión de certificación correspondiente
Utilice la API de la versión de certificación para identificar qué versión de una certificación periódica es relevante para un alumno específico.
Proporcione el ID de certificación raíz como entrada. La API evalúa el historial de inscripción del alumno y devuelve la versión adecuada en función de las siguientes reglas:
Esto significa que dos alumnos que consulten el mismo ID de certificación raíz al mismo tiempo pueden recibir resultados diferentes, en función del historial de inscripción individual de cada alumno.
Ejemplo
Considere una certificación que se repite mensualmente, en la que se han creado cuatro versiones a lo largo del tiempo debido a las reapariciones sucesivas:
-
Un alumno que se ha inscrito en la primera versión y ha progresado en cada repetición a medida que se produce, volverá a la versión en la que está activo actualmente, que refleja su propio historial de finalización y repetición, no necesariamente la última versión que existe.
-
Un alumno que aún no se ha inscrito volverá a la versión creada más recientemente, ya que es la versión a la que deben unirse las nuevas inscripciones.
Esto permite que la integración dirija siempre a un alumno a la versión de certificación que sea relevante para él, en lugar de mostrar todas las versiones históricas o adivinar cuál se aplica.
Referencia de API
Obtener la certificación aplicable para una certificación raíz
GET /primeapi/v2/learningObjects/{loId}/applicableCertification
Resuelve la versión de certificación que se aplica al alumno actual, dado el ID de una certificación raíz. Para los alumnos que se han inscrito, devuelve la versión en la que se han inscrito actualmente. Para los alumnos que no están inscritos, se devuelve la última versión activa.
Nota: Esta API devuelve información de la versión de un solo alumno cada vez. No devuelve una lista de todas las versiones de una certificación.
Parámetros de ruta
Parámetros de consulta
Ejemplo de solicitud
GET /primeapi/v2/learningObjects/certification%3A167658/applicableCertification?include=subLOs
Accept: application/vnd.api+json
Authorization: oauth <access-token>
curl -X GET --header 'Accept: application/vnd.api+json' \
--header 'Authorization: oauth <access-token>' \
'https://<host>/primeapi/v2/learningObjects/certification%3A167658/applicableCertification?include=subLOs'
Nota: El valor loId debe estar codificado en URL. Los dos puntos de un Id. de certificación, como certificación:167658, se codifican como %3A.
Ejemplo de respuesta 200 Aceptar
La respuesta utiliza la misma estructura que una respuesta de objeto de aprendizaje estándar, lo que devuelve la certificación resuelta.
Importante: El campo de id. en la respuesta es el id. de la certificación resolvió, la versión específica aplicable a este alumno. Normalmente será diferente del ID de certificación raíz que pasó como loId, ya que el propósito de esta API es convertir un ID de raíz en la versión actual correcta.
{
"data": {
"id": "string",
"type": "string",
"attributes": {
"authorNames": [
"string"
],
"bannerUrl": "string",
"catalogs": [
...
]
}
}
}
Códigos de respuesta
Ejemplo de respuesta de error
{
"meta": {
"error": "string",
"detail": "string"
}
}
Nota: Esta API resuelve la versión de un alumno por llamada. No devuelve una lista de todas las versiones que existen para una certificación raíz.
Aspectos importantes
-
Certificaciones no periódicas: Si el loId que pasa es una certificación que no está configurada para repetirse, la API devuelve esa propia certificación.
-
Versiones intermedias omitidas: Si la inscripción activa de un alumno se ha movido directamente de una versión anterior a una posterior sin una inscripción activa entre, la API se sigue resolviendo correctamente en la versión actual real del alumno. La presencia de versiones intermedias con las que el alumno no interactuó de forma activa no afecta a la resolución.
-
Certificaciones eliminadas frente a retiradas: Una versión de certificación que se ha eliminado se excluye por completo de la resolución. Una certificación retirada puede considerarse todavía en función de su estado; si confía en que una versión específica aún pueda resolverse, confirme su estado actual en lugar de suponer que la retirada por sí sola la elimina de la consideración.
-
La resolución es determinista: Si los datos de inscripción de un alumno están en un estado incoherente (por ejemplo, más de una inscripción está marcada como actual), la API se resuelve en la versión creada más recientemente en lugar de devolver un resultado impredecible o un error.
Nota: Un equivalente con ámbito de administrador de esta API no está disponible actualmente y se está evaluando para una futura versión.
Utilice esta API en su integración
Un caso de uso común es una página o portal externo que enumera las certificaciones a las que puede acceder un alumno. En lugar de vincularse directamente a un ID de certificación específico, que puede quedar obsoleto después de una repetición. Cree un vínculo con el ID de certificación raíz y resuelva la versión correcta en el momento en que el alumno la seleccione.
1. Almacene o haga referencia a certificaciones en su integración usando el ID de certificación raíz, el ID de la certificación tal y como se creó por primera vez, antes de cualquier repetición.
2. Cuando un alumno seleccione una certificación para verla o para trabajar con ella, llame a GET /primeapi/v2/learningObjects/{loId}/applied, pasando el ID de certificación raíz a loId.
3. Utilice la versión de certificación devuelta en la respuesta para dirigir al alumno al destino correcto, ya sea una acción de inscripción o una vista de su progreso actual.
Esto garantiza que los alumnos siempre confíen en la versión de la certificación que coincida con su inscripción y progreso reales, incluso cuando la certificación se repite a lo largo del tiempo y genera nuevas versiones.
Informes: ID raíz de formación en la transcripción del alumno
La columna ID raíz de formación está disponible de forma predeterminada en la transcripción del alumno para todas las cuentas.
Nota: En el caso de cuentas muy grandes con un gran volumen de certificaciones, los valores de ID de formación raíz de la transcripción del alumno se resuelven en lotes. Esto no cambia la precisión de los datos, pero las transcripciones muy grandes pueden tardar más en generarse.
Esta columna permite agrupar e informar sobre el historial completo de un alumno en todas las versiones de una certificación periódica, en lugar de tratar cada periodicidad como un registro independiente no relacionado. Cada repetición sigue apareciendo como su propia fila en la transcripción del alumno. La columna ID de formación raíz simplemente identifica qué filas pertenecen a la misma certificación subyacente.
Nota: Utilice la columna ID. de formación raíz cuando necesite realizar un seguimiento del historial de participación completo de un alumno en una certificación periódica.