Descargar el certificado emitido en Base64 (con PIN)
GET/certificate-request/:uuid/issuance/download/base64
Devuelve el contenido del archivo del certificado codificado en Base64 junto con el PIN, pensado para integraciones desatendidas (ERP, scripts). Mismas reglas que GET /certificate-request/{uuid}/issuance/download: independiente del proveedor, requiere un archivo de tipo CERTIFICATE registrado y 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, antes de buscar el archivo. El administrador (users.is_admin) puede descargarlo siempre. Importante: p12_base64 es el Base64 del archivo almacenado, que normalmente es un .zip que contiene el .p12 (no el .p12 directamente): decodifique, descomprima y abra el .p12 con p12_pin. 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); revise p12_filename antes de procesarlo. Si la solicitud tiene varios archivos de tipo CERTIFICATE se devuelve uno de ellos, sin garantía de que sea el más reciente. Si la solicitud no tiene PIN registrado, p12_pin vale 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
- 410
- 429
- 500
Archivo en Base64 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).
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.
'No se pudo leer el archivo del almacenamiento.' — el archivo existe pero está vacío o no pudo leerse.
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 leer 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.