FactuSync v4.4.4 + v4.4.5: firma PAdES en PDFs de factura, envío automático por email y corrección del encadenado XML
La v4.4.4 es la actualización más completa en materia de firma digital que ha recibido FactuSync: los PDFs de factura en modo local-compliance ahora se firman con PAdES-B al crearlos, y si tienes SMTP configurado, el PDF firmado y el XML firmado se envían automáticamente al cliente sin que tengas que hacer nada más. La v4.4.5 llega como parche inmediato para corregir un bug silencioso pero material en los backups XML del encadenado de facturas. Si llevas tu facturación con FactuSync en modo local, esta es una actualización importante.
✨ Novedad: firma PAdES-B en los PDFs de factura
Desde la v4.4.0, el XML de cada factura en modo local-compliance lleva firma XAdES-BES. El problema era que el documento que realmente lee tu cliente es el PDF — y ese PDF llegaba sin firma digital.
La v4.4.4 cierra ese hueco. Al generar una factura, FactuSync firma el PDF en disco con PAdES-B usando el mismo certificado que ya firmaba el XML, a través del mismo motor pyHanko que ya firma contratos y presupuestos desde la v4.3.
Qué cambia para ti:
- Tu cliente recibe un PDF con firma digital verificable. En Acrobat o Adobe Sign aparece el panel de firma con el nombre del firmante y la hora. En lectores básicos el PDF se ve exactamente igual — ningún cambio visual por defecto.
- La firma se hace al crear la factura, en segundo plano. Sin certificado configurado, el PDF se guarda sin firma y la creación no falla.
- El firmador escribe primero a un fichero temporal, verifica que no está vacío y luego reemplaza el original. Si algo falla, el PDF original queda intacto byte a byte. Como defensa adicional, el servicio de email rechaza adjuntos de 0 bytes antes de enviarlos.
✨ Novedad: envío automático de la factura al crear
En modo local-compliance, cada factura que creas ahora se envía automáticamente al destinatario si se cumplen dos condiciones: tienes SMTP configurado en tus ajustes y el destinatario tiene un email resolvible.
Cómo funciona:
- Sin configuración extra. El disparador es únicamente «SMTP activo + email del destinatario disponible». Si no tienes SMTP, no pasa nada. No hay casillas nuevas en el formulario de factura.
- Qué se adjunta. El email lleva el PDF firmado PAdES y el XML firmado XAdES — las versiones finales con la firma incluida.
- Resolución del email. FactuSync mira primero el campo de email del destinatario en la factura. Si está vacío, lo busca en tu tabla de clientes por NIF — el mismo mecanismo que usa el envío en lote desde la v4.4.3.
- Degradación silenciosa. Falta certificado → se adjunta el PDF sin firmar. Falta SMTP o email → se registra en el log y continúa. Ninguna situación falla la creación de la factura.
- Lote no afectado. La importación en lote sigue teniendo su propia casilla «Enviar email tras la generación». El envío automático individual se desactiva durante un lote para evitar dobles envíos.
✨ Novedad: sello visual de firma en PDFs (opt-in)
Hay un nuevo ajuste en la tarjeta de Certificado: «Añadir sello visual». Cuando está activo, todos los PDFs que firma FactuSync — facturas, contratos y presupuestos — reciben un sello en la esquina inferior derecha de la última página con tres líneas: nombre del firmante, fecha y hora, y motivo («Firma de factura», «Firma de contrato»…).
- Desactivado por defecto. Si no tocas el ajuste, el comportamiento es idéntico al anterior: firmas invisibles PAdES, sin ningún elemento gráfico añadido.
- Para contratos con contrafirma, cada firma pinta su sello en la última página sin solaparse.
- Las facturas Verifactu no se ven afectadas — no pasan por el firmador de PDFs.
🛠️ Arreglo crítico (v4.4.5): backups XML con encadenado incorrecto
Qué pasaba: los ficheros XML que FactuSync guarda en disco al crear cada factura siempre contenían <PrimerRegistro>S</PrimerRegistro>, incluso para facturas que no eran las primeras de la cadena.
Por qué importa: el SOAP enviado a AEAT era correcto. Pero en modo local-compliance, el XML firmado en disco es el registro legal — y también el fichero que la v4.4.4 envía por email al cliente. Un XML con PrimerRegistro=S en una factura de mitad de cadena es un documento incorrecto según el estándar Verifactu.
Causa raíz: asimetría entre dos lectores de base de datos. El camino de envío a AEAT obtenía el número y la fecha de la factura anterior desde columnas SQL directamente, así que el contexto de encadenado llegaba correcto al generador XML. El camino de escritura de backup obtenía esos datos del JSON almacenado, y full_invoice_number nunca se serializaba en ese JSON porque es una propiedad derivada. Resultado: la búsqueda del número anterior devolvía cadena vacía y el generador concluía que era la primera de la cadena.
Qué hemos hecho: los dos lectores son ahora simétricos. La consulta que lee el hash de la última factura también extrae full_invoice_number e issue_date de las columnas SQL — igual que ya hacía la consulta del camino AEAT. Adicionalmente, Invoice.to_dict() serializa ahora full_invoice_number para que lectores futuros también lo tengan disponible desde el JSON.
Los backups ya existentes en disco no se modifican. A partir de la v4.4.5, todos los backups nuevos reflejan el encadenado correcto.
🔒 Fiabilidad
- 825 tests pasando tras los 72 añadidos en este ciclo (60 en v4.4.4, 12 en v4.4.5). Cubren el firmado PAdES, el sello visual, el envío automático por email, el encadenado de backups y la simetría entre lectores de base de datos.
- Versión actualizada a 4.4.5 en Nuitka, MSIX (4.4.5.0), etiqueta del panel lateral y README.
- Sin cambios en el esquema de base de datos.
¿Por qué actualizar ya?
Si usas FactuSync en modo local-compliance, la v4.4.5 corrige un error en los XMLs que se guardan en disco y se envían a tus clientes — vale la pena actualizar solo por eso. La v4.4.4 añade firma digital en los PDFs y envío automático por email sin ninguna configuración adicional si ya tienes SMTP activo.
Actualiza desde factusync.es o busca FactuSync en la Microsoft Store.
¿Dudas o problemas? Escríbenos desde factusync.es/soporte.

