Estampar Leyendas VERI*FACTU y TicketBAI en PDF
Los desarrolladores pueden editar cualquier documento PDF añadiendo nuevo contenido a cualquier página (o páginas) usando el método StampHTML para la gestión de PDF. En el contexto de la facturación electrónica española, esta capacidad resulta especialmente valiosa para añadir a documentos PDF existentes las leyendas obligatorias impuestas por VERI*FACTU y las marcas de verificación exigidas por la AEAT (Agencia Estatal de Administración Tributaria), sin necesidad de regenerar el documento completo.
A continuación se muestra un ejemplo de cómo puede usar el método StampHTML en un script de Python:
Puntos clave:
- Clase PDFManager: La clase utilizada para gestionar documentos PDF, proporcionando métodos como
stamp_htmlpara manipular páginas. - Parámetros: La función
stamp_html_on_pdfacepta rutas para los PDF de entrada y salida, el contenido HTML a estampar, y la lista de números de página que necesitan modificación. - Funcionalidad: La función itera sobre las páginas especificadas y estampa el contenido HTML dado en cada una, guardando el resultado en un nuevo archivo PDF.
- Supuestos: El ejemplo asume la existencia de una biblioteca
pdf_toolkity una clasePDFManagercon métodos específicos, los cuales son hipotéticos en este contexto.
Antes de usar este script, asegúrense de tener las dependencias correctas y de comprender la biblioteca que están utilizando.
Estampado de leyendas VERI*FACTU sobre facturas PDF existentes
El sistema VERI*FACTU de la AEAT exige que las representaciones visuales de facturas verificables incluyan la leyenda VERI*FACTU y la leyenda alternativa Factura verificable en la sede electrónica de la AEAT, junto con el código QR de verificación. En muchos flujos de trabajo empresariales españoles, los documentos PDF de factura se generan primero y el sello de verificación se añade en un paso posterior, una vez que el sistema de facturación ha obtenido la respuesta de la AEAT.
El siguiente ejemplo muestra cómo estampar estas leyendas sobre una factura PDF existente de una empresa con NIF B-28.456.789, importe 2.890,00 € con IVA al 21%:
using IronPdf;
using IronPdf.Editing;
PdfDocument pdf = PdfDocument.FromFile("factura_borrador.pdf");
// Estampar leyenda VERI*FACTU en todas las páginas
HtmlStamper stamper = new HtmlStamper
{
Html = @"
<div style='position:fixed; bottom:10mm; left:10mm; font-size:8pt; color:#000;'>
<strong>VERI*FACTU</strong> — Factura verificable en la sede electrónica de la AEAT
</div>
",
Opacity = 100,
IsStampFront = false
};
pdf.ApplyStamp(stamper);
pdf.SaveAs("factura_verifactu_sellada.pdf");
using IronPdf;
using IronPdf.Editing;
PdfDocument pdf = PdfDocument.FromFile("factura_borrador.pdf");
// Estampar leyenda VERI*FACTU en todas las páginas
HtmlStamper stamper = new HtmlStamper
{
Html = @"
<div style='position:fixed; bottom:10mm; left:10mm; font-size:8pt; color:#000;'>
<strong>VERI*FACTU</strong> — Factura verificable en la sede electrónica de la AEAT
</div>
",
Opacity = 100,
IsStampFront = false
};
pdf.ApplyStamp(stamper);
pdf.SaveAs("factura_verifactu_sellada.pdf");
Imports IronPdf
Imports IronPdf.Editing
Dim pdf As PdfDocument = PdfDocument.FromFile("factura_borrador.pdf")
' Estampar leyenda VERI*FACTU en todas las páginas
Dim stamper As New HtmlStamper With {
.Html = "
<div style='position:fixed; bottom:10mm; left:10mm; font-size:8pt; color:#000;'>
<strong>VERI*FACTU</strong> — Factura verificable en la sede electrónica de la AEAT
</div>
",
.Opacity = 100,
.IsStampFront = False
}
pdf.ApplyStamp(stamper)
pdf.SaveAs("factura_verifactu_sellada.pdf")
Estampado para TicketBAI en el País Vasco
Las facturas sujetas a TicketBAI en las provincias del País Vasco (Bizkaia, Gipuzkoa y Araba) deben incluir en su representación PDF un bloque con el código QR TicketBAI y la leyenda identificativa correspondiente. El método StampHTML de IronPDF permite añadir este bloque sobre facturas ya generadas, lo que facilita la integración en flujos de trabajo ERP donde la validación de TicketBAI ocurre de forma asíncrona.
Protección de datos y estampado conforme a la LOPDGDD
El estampado de contenido sobre documentos PDF que contienen datos personales de ciudadanos españoles está sujeto a las obligaciones de la LOPDGDD (Ley Orgánica de Protección de Datos y Garantía de Derechos Digitales), bajo la supervisión de la AEPD (Agencia Española de Protección de Datos). Antes de estampar información adicional, los desarrolladores deben asegurarse de que el contenido añadido no incremente innecesariamente la exposición de datos personales más allá de la finalidad original del documento, en cumplimiento del principio de minimización de datos.
Compatibilidad con Facturae y firma PAdES bajo eIDAS
Para documentos Facturae utilizados en la facturación B2G a través de FACe (portal de facturas de la Administración General del Estado), el estampado de contenido sobre el PDF generado debe realizarse antes de aplicar la firma digital. Los PDFs firmados con certificados de la FNMT-RCM bajo el estándar PAdES (exigido por eIDAS) no pueden modificarse después de la firma sin invalidar el sello. IronPDF permite gestionar correctamente este orden de operaciones: primero estampar el contenido necesario y después firmar el documento con la biblioteca de firma adecuada.
La Ley Crea y Crece (Ley 18/2022), que ampliará la obligación de facturación electrónica B2B a partir de 2027, incrementará significativamente los flujos automatizados de generación y sellado de PDFs de factura en España.

