IRONSOFTWAREHOME
USANDO IRONPDF

Cómo Convertir Código QR a PDF

Curtis Chau
Curtis Chau
Updated: 21 de abril de 2026

Los tres regímenes de firma electrónica en España que debe conocer todo ISV

España es el único país de la Unión Europea donde los ISV que desarrollan software de facturación gestionan simultáneamente tres regímenes de firma electrónica con marcos normativos distintos, organismos supervisores diferentes y plazos de cumplimiento propios. Comprenderlos es imprescindible antes de elegir una biblioteca de firma PDF.

Régimen 1: XAdES para TicketBAI (País Vasco)

TicketBAI es el sistema de facturación electrónica obligatorio en el País Vasco, gestionado por tres haciendas forales con implementaciones distintas:

  • Bizkaia (bizkaia.eus): sistema BATUZ, XAdES obligatorio sobre el registro de facturación. Implantación por sectores desde 2022.
  • Gipuzkoa (gipuzkoa.eus): XAdES sobre el bloque XML <TicketBAI>. Plazos de implantación escalonados por tipo de empresa.
  • Araba (araba.eus): tercer esquema foral con variantes en los campos XML del registro TicketBAI.

XAdES (XML Advanced Electronic Signatures) es la firma de documentos XML - los registros TicketBAI son XMLs firmados - . IronPDF proporciona la firma PAdES del PDF de visualización que se entrega al receptor; la firma XAdES del XML TicketBAI la implementa el motor de negocio del ISV.

Régimen 2: PAdES-LTV para archivo bajo LOPDGDD

La LOPDGDD (Ley Orgánica de Protección de Datos y Garantía de Derechos Digitales), supervisada por la AEPD (Agencia Española de Protección de Datos), exige que los documentos con datos personales archivados durante años mantengan la validez jurídica de su firma electrónica.

PAdES-LTV (PDF Advanced Electronic Signatures - Long-Term Validation) incrusta los datos OCSP y CRL necesarios para que la firma sea verificable incluso cuando el certificado original haya caducado. Sin PAdES-LTV, un documento firmado cuyo certificado ha expirado no puede validarse con garantías jurídicas - lo que compromete su valor probatorio en procesos legales o auditorías posteriores al archivo.

Régimen 3: Firmas cualificadas eIDAS mediante FNMT

El reglamento europeo eIDAS establece tres niveles de firma electrónica. Para documentos de alto valor jurídico - contratos mercantiles, escrituras notariales, documentación regulatoria, licencias de actividad - se requieren firmas cualificadas emitidas por prestadores de confianza cualificados (TSP).

En España, la FNMT (Fábrica Nacional de Moneda y Timbre) es el principal emisor de certificados cualificados tanto para personas físicas (DNIe, certificados CERES) como para personas jurídicas (certificados de representante). Los certificados FNMT se exportan como ficheros PFX/P12 y son compatibles con IronPDF.


Instalación de IronPDF para firma de PDFs en .NET

PM > Install-Package IronPdf

Seleccione .NET 8.0 (LTS) para nuevos proyectos:

Cómo crear una firma PDF en .NET, Figura 2: Crear un nuevo proyecto en Visual Studio Crear un nuevo proyecto en Visual Studio

Cómo crear una firma PDF en .NET, Figura 3: Configure su nuevo proyecto Configurar el nuevo proyecto

Cómo crear una firma PDF en .NET, Figura 4: Selección de .NET Framework Selección del framework .NET

Cómo crear una firma PDF en .NET, Figura 5: Navegue e instale el paquete IronPDF en la interfaz de usuario del Administrador de paquetes NuGet Instalar el paquete IronPDF en el Administrador de Paquetes NuGet


Firma PAdES con certificado FNMT: flujo VeriFactu completo

El flujo de trabajo completo para una factura conforme con VeriFactu combina el motor de negocio del ISV (huella encadenada, QR AEAT) con IronPDF (generación del PDF y firma PAdES):

using IronPdf;
using IronPdf.Signing;

// 1. El motor VeriFactu del ISV ha calculado la huella y generado la URL del QR AEAT
string huellaEncadenada = "ABC123DEF456..."; // SHA-256 encadenada por el ISV
string urlQrAeat = "https://sede.agenciatributaria.gob.es/..."; // URL verificación AEAT

// 2. IronPDF genera el PDF con la leyenda VERI*FACTU y el QR AEAT
ChromePdfRenderer renderer = new ChromePdfRenderer();
renderer.RenderingOptions.InputEncoding = System.Text.Encoding.UTF8;

string htmlFactura = $@"
    <html lang='es'><head><meta charset='UTF-8'/>
    <style>
        body {{ font-family: Arial, sans-serif; font-size: 11px; }}
        .verifactu {{ margin-top:20px; padding:8px; background:#fff3cd;
                      border:1px solid #ffc107; font-weight:bold; text-align:center; }}
    </style></head>
    <body>
        <h2>Factura N.º 2026-100</h2>
        <p>NIF: B98765432 | Empresa: Servicios Digitales Norte S.L.</p>
        <p>Base: 5.000,00 € | IVA 21%: 1.050,00 € | <strong>Total: 6.050,00 €</strong></p>
        <div class='verifactu'>
            VERI*FACTU | Factura verificable en la sede electrónica de la AEAT
            <br/><img src='{urlQrAeat}' width='80' height='80' alt='QR AEAT'/>
        </div>
    </body></html>";

PdfDocument pdfDoc = renderer.RenderHtmlAsPdf(htmlFactura);

// 3. Firma PAdES con certificado FNMT o corporativo (PFX/P12)
// Use un certificado FNMT cualificado para firmas eIDAS de alto valor jurídico
var firmaPades = new PdfSignature("cert-empresa.pfx", "contraseña-certificado")
{
    SigningContact  = "admin@serviciosdigitalesnorte.es",
    SigningLocation = "Bilbao, España",
    SigningReason   = "Factura VeriFactu conforme con RDL 15/2025"
};
pdfDoc.Sign(firmaPades);

// 4. Guardar el PDF firmado para archivo bajo LOPDGDD
pdfDoc.SaveAs("factura-2026-100-verifactu-firmada.pdf");

La leyenda VERI*FACTU (con asterisco, forma exacta exigida por la AEAT) se incluye en el HTML antes de firmar. La firma PAdES cubre el contenido íntegro del PDF, incluyendo la leyenda y el QR AEAT.


Firma PAdES con imagen visual (contratos y documentos LOPDGDD)

Para documentos que requieren representación visual de la firma - contratos, poderes notariales, documentación regulatoria LOPDGDD - :

using IronPdf.Signing;
using IronSoftware.Drawing;

// Crear el objeto PdfSignature con imagen visual de firma/sello
var sig = new PdfSignature("certificado-empresa.pfx", "contraseña");
sig.SignatureImage = new PdfSignatureImage(
    "sello-empresa.png",
    0,  // número de página (0 = primera)
    new CropRectangle(0, 600, 100, 100)  // posición x, y, ancho, alto en puntos PDF
);

Validación de firmas en documentos archivados bajo LOPDGDD

La validación de firmas es un requisito habitual en auditorías LOPDGDD y en la verificación de facturas históricas. PAdES-LTV permite esta validación incluso cuando el certificado original ha caducado:

using IronPdf;

// Cargar el documento archivado
PdfDocument pdfArchivado = PdfDocument.FromFile("factura-archivada.pdf");

// Verificar todas las firmas del documento
bool esValida = pdfArchivado.VerifyPdfSignatures();

if (esValida)
    Console.WriteLine("Firma válida: documento íntegro para archivo LOPDGDD");
else
    Console.WriteLine("Firma no válida: revisar integridad del documento");

Para que la validación PAdES-LTV funcione a largo plazo, los datos OCSP/CRL deben haberse incrustado en el momento de la firma - condición que se cumple automáticamente cuando la firma se aplica con un certificado válido y el servicio OCSP de la CA estaba accesible en el momento de firmar.


Marcas de agua para documentos pendientes de firma

En entornos de desarrollo o para documentos borrador que aún no disponen de certificado digital:

using IronPdf;
using IronPdf.Editing;

var pdf = PdfDocument.FromFile("borrador-contrato.pdf");

pdf.ApplyWatermark(
    "<img src='sello-borrador.png'/>",
    90,
    VerticalAlignment.Bottom,
    HorizontalAlignment.Right
);

pdf.SaveAs("borrador-contrato-pendiente-firma.pdf");

Ventaja económica de la licencia comercial de IronPDF para ISV bajo VeriFactu

VeriFactu (RDL 15/2025) establece penalizaciones de hasta €150.000 anuales para proveedores de software de facturación no conformes. Este riesgo económico hace que la elección de la biblioteca PDF adquiera relevancia contractual:

El riesgo compuesto de iText AGPL: iText 7, la alternativa más conocida, usa licencia AGPL, que obliga a divulgar el código fuente al distribuir software propietario. Para un ISV que vende software de facturación propietario, esto supone un riesgo dual: exposición AGPL sobre el código propietario + exposición VeriFactu si el cumplimiento se ve comprometido durante una auditoría técnica. Ambos riesgos se materializan simultáneamente en el peor caso.

IronPDF: licencia comercial propietaria, pago único, sin obligaciones de divulgación de código fuente. El equipo legal del ISV no necesita evaluar implicaciones AGPL.

Licencias de IronPDF

Consulte las opciones de licencia o inicie una prueba gratuita con funcionalidad completa.


Conclusión: un ISV español, tres regímenes de firma

La firma electrónica de documentos PDF en España exige manejar en paralelo regímenes normativos con organismos supervisores distintos: XAdES para TicketBAI (tres variantes forales del País Vasco: Bizkaia/BATUZ, Gipuzkoa, Araba), PAdES-LTV para el archivo a largo plazo supervisado por la AEPD bajo LOPDGDD, y firmas cualificadas eIDAS mediante certificados FNMT para documentos de alto valor jurídico.

IronPDF proporciona la capa de generación y firma PAdES dentro del software de facturación del ISV - no sustituye al motor de negocio certificado VeriFactu ni implementa la firma XAdES de los XMLs TicketBAI, responsabilidades que corresponden al motor del ISV.

Para implementaciones con HSM (habitual en grandes ISV bajo VeriFactu), consulte la guía de firma con HSM. Para el archivo conforme como PDF/A, la guía de PDF/A. Para todos los detalles de implementación de firma, consulte la guía completa de firma digital de IronPDF.

Curtis Chau
Escritor Técnico

Curtis Chau tiene una licenciatura en Ciencias de la Computación (Carleton University) y se especializa en el desarrollo front-end con experiencia en Node.js, TypeScript, JavaScript y React. Apasionado por crear interfaces de usuario intuitivas y estéticamente agradables, disfruta trabajando con frameworks modernos y creando manuales bien estructurados y visualmente atractivos.

...
Leer más

Artículos Relacionados

Key in blue circle

Obtenga su clave de prueba gratuita de 30 días al instante.

Your trial license will be sent to your email address

Sin limitaciones. 100 % desbloqueado. Sin tarjeta de crédito.

OR
bullet_checkedNo se requiere tarjeta de crédito ni creación de cuentaSin limitaciones. 100 % desbloqueado. Sin tarjeta de crédito.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried Iron Suite
Reserve su Demostración en Vivo gratuita
Booking Badge

Confiado por millones de ingenieros en todo el mundo

Logos de clientes de Iron Software
Obtén tu Consulta Sin Compromiso
Completa el formulario a continuación o envía un correo a sales@ironsoftware.com
Tus detalles siempre serán mantenidos confidenciales.
Confiado por millones de ingenieros en todo el mundo
Logos de clientes de Iron Software
Obtenga su Clave de Prueba de 30 días gratis al instante.
No se requiere tarjeta de crédito ni creación de cuenta
Biblioteca C# NuGet para PDF
Instalar con NuGet

Versión: 2026.9

PM > Install-Package IronPdf
nuget.org/packages/IronPdf/
  1. En el Explorador de Soluciones, haga clic derecho en Referencias, Administrar Paquetes NuGet
  2. Seleccione Examinar y busque "IronPDF"
  3. Seleccione el paquete e instale
C# PDF DLL
Descargar DLL

Versión: 2026.9

o descargue el Instalador de Windows aquí.

  1. Descargue y descomprima IronPDF en una ubicación como ~/Libs dentro del directorio de su solución
  2. En el Explorador de Soluciones de Visual Studio, haga clic derecho en Referencias. Seleccione Examinar, "IronPDF.dll"

Licencias desde $999