Obtener URL de descarga y PIN del certificado emitido
GET/certificate-request/:uuid/issuance/download
Devuelve una URL firmada (vigencia 24 h) para descargar el archivo del certificado y el PIN para abrir el .p12. Es independiente del proveedor: responde para cualquier solicitud que tenga registrado un archivo de tipo CERTIFICATE en file_managers (en Viafirma se registra al completar el ensamblado, estado COMPLETED). Vigencia: al cliente solo se le entrega si la solicitud está en PROCESSED; en cualquier otro estado (revocada, vencida, cancelada, rechazada o aún en trámite) responde 409 con el estado actual en status, y esta comprobación se hace antes de buscar el archivo. El administrador (users.is_admin) puede descargarlo siempre, en cualquier estado. El archivo es normalmente un .zip que contiene el .p12 (p. ej. empresa-sas_636.zip → empresa-sas_636.p12); en Viafirma siempre es así, pero un certificado cargado manualmente con POST /certificate-request/{id}/files y document_type=CERTIFICATE puede tener otro formato (PDF, imagen o ZIP). Si la solicitud tiene varios archivos de tipo CERTIFICATE se devuelve uno de ellos, sin garantía de que sea el más reciente. El PIN se lee de certificate_requests.pin y se devuelve en cada llamada; si la solicitud no tiene PIN registrado se devuelve el literal NO_PIN. El parámetro es el UUID público de la solicitud (certificate_requests.uuid), no su ID numérico.
Request
Responses
- 200
- 401
- 404
- 409
- 429
- 500
URL firmada y PIN. Los datos vienen en dataRecords.data.
No autenticado (token ausente, inválido o expirado).
'Solicitud de certificado no encontrada.' (UUID inexistente o de otra empresa; el administrador accede a todas), 'Archivo de certificado no encontrado.' (aún no hay certificado emitido) o 'Archivo no disponible en almacenamiento.' (el archivo ya no existe en el disco, p. ej. purgado tras el vencimiento del certificado).
La solicitud no está en PROCESSED (p. ej. REVOKED, EXPIRED, CANCELLED o aún PROCESSING): al cliente no se le entrega el certificado. El administrador no recibe este error.
Límite general de 60 peticiones por minuto excedido.
Error interno. Hay dos formas de cuerpo: (a) error de la aplicación al buscar la solicitud o el archivo: {success:false, message} con message 'Error interno del servidor. {detalle}' (un fallo de base de datos se reemplaza por un texto genérico sin SQL ni datos; una excepción que trae su propio código HTTP entre 400 y 599 responde con ese código); (b) error no controlado, p. ej. un fallo de configuración del servidor al inicializar los servicios de almacenamiento o de Viafirma: lo responde el manejador de errores general con {"message": "Server Error"}, sin success, en producción; si la petición no envía Accept: application/json, la respuesta puede ser una página HTML.