API de certificados
Lista los certificados de cursos emitidos en la organización o el grupo del cliente de API. La lista incluye certificados válidos, caducados y revocados para que la integración pueda evaluar su estado actual.
Listar certificados
GET /api/v1/certificates
Ámbito requerido: training.read. Consulta Autenticación para obtener un token de acceso.
curl --request GET \
--url "https://courses.e-learningcourses.com/api/v1/certificates?page=1&pageSize=1000" \
--header "Authorization: Bearer $ACCESS_TOKEN" \
--header "Accept: application/json"
Parámetros de consulta
| Parámetro | Tipo | Predeterminado | Descripción |
|---|---|---|---|
page | entero | 1 | Número de página, a partir de 1. |
pageSize | entero | 1000 | Certificados por página, entre 1 y 5000. |
Respuesta
{
"data": [
{
"certificateId": "89254050-dfc4-467a-a7ea-745f81a77b63",
"certificateNumber": "CERT-2026-001042",
"email": "alex.morgan@example.com",
"learnerName": "Alex Morgan",
"courseId": "38f595b7-2ff4-4da6-bf24-91316399ec9a",
"courseName": "Código de conducta para proveedores",
"groupId": "fbc74870-3995-4f2c-b129-c2812b3e56c7",
"completedUtc": "2026-09-05T14:12:08Z",
"issuedUtc": "2026-09-05T14:13:00Z",
"expiresUtc": "2027-09-05T14:13:00Z",
"status": "valid",
"verificationUrl": "https://courses.e-learningcourses.com/certificates/verify/11be8ddd-b51c-4dbf-b48d-727159cf215b"
}
],
"pagination": {
"page": 1,
"pageSize": 1000,
"totalRecords": 1,
"totalPages": 1
}
}
| Campo | Tipo | Descripción |
|---|---|---|
certificateId | UUID | Identificador para descargar el PDF. |
certificateNumber | cadena | Número impreso en el certificado. |
email | cadena o null | Correo electrónico del alumno; si existe, puede relacionarse con la API de usuarios. |
learnerName | cadena | Nombre impreso en el certificado al emitirse. |
courseId | UUID | Identificador del curso; coincide con courseId en los registros de formación y los paquetes. |
courseName | cadena | Nombre del curso impreso en el certificado. |
groupId | UUID o null | Identificador del grupo asociado; coincide con groupId en la API de grupos. |
completedUtc | fecha-hora | Fecha y hora UTC de finalización del curso. |
issuedUtc | fecha-hora | Fecha y hora UTC de emisión del certificado. |
expiresUtc | fecha-hora o null | Fecha y hora UTC de caducidad; null si no tiene caducidad. |
status | cadena | valid, expired o revoked. La revocación prevalece sobre la caducidad; el certificado caduca al llegar a expiresUtc. |
verificationUrl | URL | Página pública para comprobar la autenticidad y vigencia del certificado. La dirección devuelta puede diferir del ejemplo. |
Los certificados se ordenan por issuedUtc, del más antiguo al más reciente, y después por certificateId. Si no hay resultados, data está vacío y totalPages vale 0.
Descargar el PDF de un certificado
GET /api/v1/certificates/{certificateId}/pdf
Utiliza un certificateId de la lista y envía el mismo token de acceso. La respuesta es application/pdf para un certificado emitido, aunque después haya caducado o se haya revocado.
curl --request GET \
--url "https://courses.e-learningcourses.com/api/v1/certificates/$CERTIFICATE_ID/pdf" \
--header "Authorization: Bearer $ACCESS_TOKEN" \
--header "Accept: application/pdf" \
--output certificate.pdf
El endpoint devuelve 404 si el certificado no existe, está fuera del ámbito del cliente o falta el PDF almacenado. verificationUrl lleva a una página pública de verificación, no a la descarga del PDF.
Errores
Una paginación no válida en la lista devuelve 400 en formato Problem Details. Si falta el token o ha caducado, se devuelve 401; si falta el ámbito o el cliente ha perdido el acceso, se devuelve 403. El límite compartido puede devolver 429. Consulta Autenticación para conocer los límites y cómo reintentar.
OpenAPI
https://courses.e-learningcourses.com/api/v1/openapi.json