FirmaLocal
Firmar un PDF

Errores SAF_26 y SAF_27 de Autofirma: firma de lotes

SAF_26 y SAF_27 solo aparecen en la firma de lotes de los portafirmas. Qué significan, por qué no son un problema de tu certificado y qué puedes hacer.

Actualizado el

«SAF_26: Error en la comunicación con el servicio de firma de lotes» y «SAF_27: El servicio informó de un error durante la firma del lote» son dos códigos que solo verás en un tipo concreto de trámite: la firma de lotes, es decir, cuando una aplicación te pide firmar varios documentos de una vez. Es lo que hacen los portafirmas de las administraciones y universidades, las bandejas de firma de los gestores de expedientes y algunas sedes cuando un procedimiento lleva varios anexos.

Conviene decirlo pronto porque hay páginas que cuentan otra cosa: ninguno de los dos códigos habla de tu certificado ni de tu almacén. SAF_26 significa que Autofirma no ha podido hablar con el servicio de lotes del organismo; SAF_27, que ha hablado con él y el servicio ha respondido con un error. En los dos casos la pieza que falla está del lado del servidor, y lo que puedes hacer desde tu equipo es limitado, aunque no nulo. Para el resto de códigos, Todos los errores SAF de Autofirma.

Qué es la firma de lotes

En una firma normal, la sede deja un documento en el servidor intermedio, Autofirma lo descarga, lo firma y lo devuelve. Con varios documentos ese ir y venir no escala, así que Autofirma tiene un modo distinto: recibe una definición de lote (una lista en XML o JSON con los documentos y el formato de firma de cada uno) y la URL de un servicio de firma de lotes del organismo. El proceso se hace en dos fases —prefirma y postfirma— y Autofirma solo interviene en el medio, calculando con tu clave privada las firmas que el servicio le pide.

Esa arquitectura explica los dos códigos:

  • SAF_26 (ERROR_CONTACT_BATCH_SERVICE en el código fuente) se lanza cuando falla la comunicación con ese servicio, tanto en la prefirma en formato JSON como en XML. Autofirma no ha recibido respuesta, o la conexión se ha cortado.
  • SAF_27 (ERROR_BATCH_SIGNATURE) se lanza cuando el servicio sí responde, pero con un error: en la prefirma, en la postfirma, o un error interno de Autofirma al procesar la respuesta del lote.

Error SAF_26: «Error en la comunicación con el servicio de firma de lotes»

Es el hermano de SAF_16, con una diferencia: la conexión que falla no es con el servidor intermedio genérico, sino con el servicio de lotes, que suele estar en otra dirección y detrás de otras reglas de red. Las causas, de más a menos probable:

  1. El servicio está caído o saturado. Los portafirmas se caen; los últimos días de plazo, más. Si tus compañeros tienen el mismo error a la misma hora, no es tu equipo.
  2. Un proxy o un cortafuegos corporativo que deja pasar la sede pero no el dominio del servicio de lotes. La solución es la misma que para SAF_16: configurar el proxy en Herramientas → Preferencias → General → Configuración de red o pedir a sistemas que permita ese dominio.
  3. El certificado TLS del servicio no es de confianza para el Java de Autofirma. Si en el registro detallado aparece unable to find valid certification path to requested target, es esto: Java no reconoce la raíz que firma el certificado del servidor. La casilla «Aceptar sólo conexiones con sitios seguros» desactiva esa comprobación; si te salva el día, vuelve a marcarla después y actualiza Autofirma, que trae más raíces.
  4. Una versión antigua de Autofirma. La Universidad de Málaga documenta SAF_26 en su sede con una única solución: actualizar Autofirma a la última versión. El protocolo de lotes ha cambiado (el formato JSON es más reciente que el XML) y una versión vieja puede no entender la respuesta del servicio.

Error SAF_27: «El servicio informó de un error durante la firma del lote»

Aquí no hay problema de red: el servicio ha contestado y su respuesta es un error. Lo que haya pasado dentro solo lo sabe el organismo, pero los motivos habituales son reconocibles:

  • Uno de los documentos del lote no se puede firmar tal como lo pide la definición: un PDF certificado que no admite más firmas, una factura que ya tiene firma, un documento dañado, una política de firma que ese fichero no cumple. En una firma individual verías un código específico; en un lote, el servicio lo engloba en SAF_27. Algunos portafirmas dejan firmar el resto si quitas del lote el documento que falla.
  • Un error interno del servicio: una base de datos que no responde, un almacenamiento lleno, un componente del portafirmas actualizado a medias.
  • Un desajuste entre la prefirma y la postfirma, por ejemplo cuando tardaste demasiado entre las dos fases y la sesión del servicio caducó.

Lo que no es SAF_27: no es un «problema de ruta de certificación», no es un almacén de certificados dañado y no se arregla reparando nada en tu equipo. Ese significado circula en algún listado de terceros porque mezcla el código con el texto de un error Java de TLS (unable to find valid certification path…), que, cuando aparece, pertenece al caso de SAF_26 explicado arriba.

Lo que sí puedes hacer desde tu lado

  1. Reintenta pasados unos minutos. Con SAF_26 es la primera opción y, con frecuencia, la única necesaria.
  2. Comprueba si el resto de la sede funciona. Si una firma individual en el mismo organismo también da error de comunicación, el problema es de red y sigue la guía de SAF_16; si la firma individual funciona y el lote no, el problema está en el servicio de lotes.
  3. Firma los documentos de uno en uno, si el portafirmas lo permite. Además de sortear el servicio de lotes, te dice qué documento concreto falla, que es justo la información que SAF_27 te oculta.
  4. Actualiza Autofirma si no tienes la última versión, desinstalando la anterior.
  5. Revisa proxy y casilla de sitios seguros solo si es SAF_26 y estás en una red corporativa.
  6. Avisa al organismo con el código, la fecha, la hora y el identificador del lote o del expediente. Para SAF_27 es el paso decisivo: el detalle del error está en el registro del servidor, no en el tuyo.

Si Autofirma ni siquiera se abre al iniciar la firma del lote, el error es anterior y otro: SAF_45. Y si el código es SAF_03, la definición del lote que envía la aplicación tiene parámetros que tu versión no acepta: SAF_03.

Cuándo no depender del portafirmas

La firma de lotes es, por definición, un proceso dentro de una aplicación del organismo: el portafirmas decide qué se firma, cómo y en qué orden, y guarda el resultado. No hay forma de hacerlo desde una herramienta externa, y no lo vamos a disimular. Si lo que falla es un portafirmas de tu trabajo, la vía es la que describimos arriba y el soporte de tu organización. En ¿Lo aceptará la sede? explicamos por qué los procesos que se firman dentro de una aplicación no tienen alternativa web.

Hay un caso distinto que se confunde con este: un trámite que te pide adjuntar varios PDF firmados. Eso no es un lote; son documentos que firmas por tu cuenta, uno a uno, y subes después. Ahí no hay servicio de lotes ni SAF_26 posible. FirmaLocal firma cada PDF en tu navegador con tu certificado .p12, de uno en uno, y la firma PAdES-B-B se calcula en tu equipo sin subir el documento ni el certificado a ningún servidor. Firma tu PDF ahora. Sus límites: un documento cada vez, una firma por documento, solo certificados en fichero y sin sello de tiempo; si necesitas firmar decenas de documentos, un lote en Autofirma sigue siendo la herramienta adecuada.

Comprobar que la firma vale

Cuando el lote termina bien, el portafirmas suele ofrecer la descarga de cada documento firmado. Si tienes dudas sobre alguno, súbelo a VALIDe y comprueba que reconoce la firma; en los lotes con formato XAdES o CAdES el resultado se muestra igual que con PAdES.

Fuentes

FirmaLocal genera firmas electrónicas avanzadas basadas en certificado cualificado (PAdES-B-B), la misma clase de firma que produce Autofirma con un certificado software. No sustituye a la firma con DNIe ni a la autenticación dentro de una sede electrónica. FirmaLocal no presta asesoramiento jurídico.