Chaindoc
Artículos

Facturae firmada: cómo validar la firma digital de una factura antes de pagarla

La Facturae se firma con XAdES y llega a FACe con certificado cualificado. Aprende a validar la firma digital de una factura antes de pagarla.

Facturae firmada: cómo validar la firma digital de una factura antes de pagarla

Qué es la Facturae y por qué te llega firmada

Un proveedor te manda un archivo llamado F2026-0187.xsig, tu visor de PDF no sabe qué hacer con él y alguien sugiere pedirle "una factura normal". Espera un momento antes de hacerlo. Lo que tienes delante es una Facturae firmada, y descartarla es la única maniobra que te va a salir cara más adelante.

Facturae es el formato español de factura electrónica: un XML, en versiones 3.2, 3.2.1 y 3.2.2, con la firma incrustada dentro del propio documento. La política de firma del formato exige XAdES enveloped, así que la firma y la factura viajan en el mismo archivo y no hay nada suelto que puedas perder por el camino.

La extensión .xsig es una convención, no una regla. Por dentro sigue siendo XML, y por eso un validador XAdES acepta igual un .xsig que un .xml firmado.

¿Y de dónde sale toda esta maquinaria? De la administración. La Ley 25/2013 obligó a los proveedores del sector público a facturar en electrónico, y las facturas a la Administración General del Estado entran por FACe, el punto general de entrada. Muchas comunidades autónomas y ayuntamientos están adheridos; otros mantienen su propio punto. Las administraciones pueden dejar fuera las facturas de hasta 5.000 euros y bastantes lo hacen, pero por encima de ese umbral la factura va en Facturae y firmada con un certificado cualificado.

De ahí sale el efecto dominó que llena tu bandeja de entrada. Un proveedor que ya montó el paso de firma para facturar a una diputación no va a mantener dos circuitos distintos, así que sus facturas B2B también salen firmadas. Y la Ley 18/2022, la de Crea y Crece, extiende la factura electrónica obligatoria a las operaciones entre empresas y profesionales, con plazos que arrancan cuando entre en vigor su reglamento de desarrollo. Van a llegarte más archivos de estos, no menos.

No mezcles dos cosas que se parecen y no lo son. La firma XAdES de una Facturae va sobre el XML que recibes de tu proveedor. VERI*FACTU y el reglamento de sistemas informáticos de facturación van sobre los registros que genera tu propio software al emitir. Son obligaciones distintas, con calendarios distintos, y validar una no te resuelve la otra.

Qué demuestra la firma de una factura, y qué no

Ese .xsig lleva dentro las dos cosas por las que va a preguntarte tarde o temprano una inspección.

La primera es la autenticidad del origen: la garantía de que la factura viene de verdad del proveedor que figura en ella. La segunda es la integridad del contenido: la prueba de que los importes, el CIF y el número de cuenta son los que puso el proveedor. El artículo 233 de la Directiva del IVA nombra las dos, con esas palabras, y exige que se sostengan desde que se emite la factura hasta que termina su periodo de conservación.

Ahora la parte que despista a más gente de cuentas a pagar que la criptografía.

Una firma no dice que la factura sea correcta. Un proveedor puede firmar un importe equivocado con una firma impecable. Tampoco dice que la mercancía haya llegado, ni que el pedido cuadre, ni que el número de cuenta sea el que acordasteis hace ocho meses. Y sobre si quien te la manda es solvente u honesto no dice absolutamente nada.

La firma digital de una factura responde a una única pregunta: ¿este archivo exacto sale de quien posee este certificado, sin haberse modificado? Es una pregunta estrecha. También es la única que se vuelve más difícil de contestar cuanto más tiempo la dejas pasar, y en eso se resume todo el argumento a favor de comprobar en el momento de la recepción en lugar de en la auditoría.

Por qué se firman las facturas si la UE ya no lo exige

Casi todo el mundo da por hecho que la normativa europea obliga a firmar las facturas. Dejó de hacerlo en 2013.

La Directiva 2010/45/UE reescribió las reglas de facturación y degradó la firma electrónica de requisito a opción. El artículo 233 te deja hoy tres caminos para garantizar la autenticidad del origen y la integridad del contenido:

  • Controles de gestión que creen una pista de auditoría fiable entre la factura y la entrega a la que se refiere. Casar la factura contra el pedido y el albarán vale.
  • Una firma electrónica avanzada, basada o no en un certificado cualificado.
  • EDI, donde las garantías las aporta el propio acuerdo de intercambio.

Entonces, ¿por qué tu bandeja no para de llenarse de .xsig y de .p7m?

Mandatos nacionales. Bruselas hizo opcional la firma y varios Estados miembros la volvieron obligatoria para facturar al sector público, y ningún proveedor quiere mantener dos tuberías. España exige certificado cualificado en las facturas Facturae que entran por FACe. Italia exige firma con certificado cualificado en cada archivo FatturaPA dirigido a un organismo público. Una vez que un proveedor ha construido ese paso, sus facturas ordinarias tienden a salir firmadas también.

Hay una segunda razón, menos jurídica y más de interés propio. Los controles de gestión son un argumento de proceso. Cuando un inspector te discute una factura de hace cuatro años, decir "teníamos una política de triple cotejo" es una afirmación sobre cómo trabajaba tu equipo entonces. Una firma válida es una prueba sobre ese archivo concreto. Defender una de las dos cuesta bastante menos.

El paquete IVA en la Era Digital, aprobado como Directiva (UE) 2025/516 y en vigor desde abril de 2025, hace obligatoria la factura electrónica estructurada conforme a la norma EN 16931 para el B2B intracomunitario a partir del 1 de julio de 2030. Lo que armoniza es el formato y el reporte, no la criptografía. Los requisitos de firma siguen siendo nacionales, así que la factura firmada seguirá siendo una obligación país por país. Cuenta con una bandeja mixta.

Qué firma lleva cada formato de factura electrónica

La firma de una factura no tiene el mismo aspecto en cada país. Cuatro combinaciones de formato y firma cubren casi todo lo que llega de proveedores europeos, y saber cuál tienes entre manos decide qué validador necesitas. Adivinar te cuesta una tarde.

Dos perfiles de ETSI hacen casi todo el trabajo. XAdES firma el XML por dentro. CAdES envuelve en un contenedor binario lo que sea que firma.

Facturae (España). XML en versión 3.2.x con firma XAdES enveloped dentro del propio documento. Las facturas dirigidas a organismos públicos pasan por FACe y tienen que ir firmadas con un certificado cualificado conforme a eIDAS. Los archivos firmados suelen llegar con extensión .xsig, aunque un .xml a secas es igual de habitual.

FatturaPA (Italia). También XML. El Sistema di Interscambio admite dos formatos de firma y solo dos: CAdES-BES Baseline B, que produce un archivo .xml.p7m, y XAdES-BES Baseline B, que deja la extensión en .xml. Las reglas técnicas italianas son estrictas con la variante XML: solo enveloped, con la referencia de la firma apuntando a URI="" o URI="#iddoc". Las XAdES separadas o enveloping rebotan en la puerta.

Factur-X y ZUGFeRD (Francia, Alemania). Un híbrido: PDF/A-3 con XML estructurado embebido dentro. Cuando llevan firma, es PAdES, apoyada sobre el PDF y no sobre el XML. Muchas llegan sin firmar, y eso es normal.

Peppol BIS Billing 3.0. XML en formato UBL circulando por la red Peppol. Conviene saber lo que esto no es. Peppol asegura el transporte, con mensajería AS4 entre puntos de acceso acreditados, y el documento de factura no suele llevar ninguna firma. Una factura de Peppol puede llegarte sin nada que validar. Así está diseñada la red, y no es una señal de alarma.

Formato de firma según el tipo de factura electrónica

Formato de facturaFirma que llevaArchivo que recibesDónde validarlo

Facturae (España)

XAdES enveloped

.xsig o .xml

verificación XAdES

FatturaPA (Italia)

CAdES-BES Baseline B

.xml.p7m

verificación CAdES

FatturaPA (Italia)

XAdES-BES Baseline B, enveloped

.xml

verificación XAdES

Factur-X / ZUGFeRD

PAdES, cuando llevan firma

.pdf

verificación PDF

Peppol BIS Billing 3.0

Ninguna en el documento; solo en el transporte

.xml

Nada que validar

Fattura_0187.xml.p7m no es un XML con un nombre raro. Es un sobre CMS con la factura sellada dentro, así que renombrarlo a .xml no desenvuelve nada: rompe el archivo. La trampa funciona igual en sentido contrario. Quitar el .p7m, o quedarte solo con el XML extraído de un .xsig para meterlo en el ERP, tira a la basura la prueba que tienes que conservar durante todo el periodo. Valida el envoltorio, extrae el contenido para procesarlo y archiva el original sin tocar.

Valida una Facturae firmada

Facturae y FatturaPA firman el propio XML con XAdES, y por eso una factura electrónica firmada llega tantas veces como un simple .xml o .xsig. La comprobación XAdES gratuita de Chaindoc recalcula el hash después de la canonicalización, recorre la cadena de certificados, prueba la revocación y los sellos de tiempo, y contrasta al firmante con la lista de confianza de la UE. Archivos de hasta 50 MB. Confirmas tu correo con un código de un solo uso, y la factura que subes no se almacena.

Cómo comprobar la firma de una factura que has recibido

Comprobar la firma de una factura te lleva unos cinco minutos, una vez que sabes a qué puerta llamar.

Averigua qué tienes entre manos

Primero la extensión, porque te dice el formato de firma. Los archivos terminados en .p7m o .p7s son CMS, o sea CAdES. Los terminados en .xml o .xsig son XAdES. Un .pdf firmado es PAdES. Los contenedores .asice y .asics empaquetan la factura junto a su firma y aparecen sobre todo en presentaciones bálticas y nórdicas.

¿No tienes claro qué te ha llegado? No renombres nada para averiguarlo. La validación de firmas de Chaindoc pasa los cuatro por un mismo formulario y resuelve ella sola el formato.

Sube la firma, y la factura si la firma es separada

La mayoría de las firmas de factura son autocontenidas. Una XAdES enveloped vive dentro del XML que ha firmado y un .p7m lleva la factura dentro del sobre, así que con un archivo te basta.

Las firmas separadas son la excepción, y son el motivo por el que la gente abandona a mitad de camino. Un .p7s, o un .xml separado, contiene solo la firma. El validador necesita la factura al lado para recalcular el resumen, y tienen que ser exactamente los bytes que firmó el proveedor, no una copia que ha pasado por tu gestor documental. Si te equivocas ahí verás un resultado indeterminado que parece un fallo y no lo es.

Lee el informe, no solo el veredicto

Cualquier cosa que merezca llamarse informe de validación nombra cuatro hallazgos por separado: si el hash del contenido sigue cuadrando con los bytes firmados, si la cadena de certificados llega a una raíz en la que el validador confía, si el certificado estaba revocado o caducado en el momento en que se usó, y si un sello de tiempo de confianza fija cuándo se firmó.

Chaindoc ejecuta esas comprobaciones sobre la librería EU DSS, el código de validación de código abierto de la propia Comisión Europea, y toma la lista de confianza de la UE como ancla principal. Las grandes autoridades de certificación comerciales también están cubiertas, y una PKI interna se puede resolver con anclas de confianza propias. La comprobación es gratuita. Confirmas tu dirección de correo con un código de un solo uso antes de la primera comprobación, y el archivo que subes no se guarda.

Dos personas de cuentas a pagar revisando una factura electrónica y los datos del certificado al validar la firma digital de la factura

La validación de la firma va en la puerta de entrada, junto a la detección de duplicados y el cotejo con el pedido, no en la bandeja de correo de alguien.

Qué mirar cuando el veredicto ya dice válida

Válida es donde empieza la parte interesante, no donde termina.

¿De quién es el certificado?

Esta es la comprobación que casi nadie hace, y es la que pilla el fraude de facturas. Una firma puede ser criptográficamente impecable y pertenecer a la empresa equivocada.

Abre el sujeto del certificado. Lee el nombre de la organización y el identificador fiscal que lleva dentro, y compara los dos contra el proveedor impreso en la factura y contra el proveedor que tienes dado de alta en el maestro. En un certificado emitido conforme a las reglas de ETSI, el identificador de organización viene con estructura: un prefijo de tres letras, el código de país y el valor registral. Un CIF español aparece como VATES- seguido del número. Quien monta una estafa de desvío de pagos también tiene que firmar como alguien, y ese alguien está escrito ahí. El fraude te llega mucho más veces por un remitente verosímil que por unas matemáticas rotas.

¿El certificado era válido cuando se firmó?

No hoy. Los certificados suelen durar entre uno y tres años y se revocan cuando se filtra una clave o cuando alguien deja la empresa.

Una factura de 2023 firmada con un certificado que caducó en 2024 está perfectamente bien. Esa misma factura firmada con un certificado revocado dos semanas antes de la fecha de la factura no lo está. Los validadores que comparan contra el estado de hoy en lugar del estado del momento de la firma se equivocan en los dos casos, y además en direcciones opuestas. El sello de tiempo de confianza es lo que fija la fecha.

¿Es una firma o es un sello?

Las personas firman, las empresas sellan. Un sello electrónico vincula un documento a una persona jurídica en lugar de a un humano con nombre y apellidos, y es lo que aplican de verdad la mayoría de los sistemas de facturación, porque ningún administrativo quiere su certificado personal en 4.000 facturas al mes.

Ninguno de los dos es más débil que el otro. La diferencia importa cuando necesitas saber quién autorizó algo, porque un sello nombra a la empresa y ahí se para. Nuestra guía de sellos electrónicos según eIDAS recorre dónde cae exactamente esa línea.

¿Tu política necesita que sea cualificada?

Válida y cualificada son veredictos distintos. Cualificada significa que el servicio emisor aparece en una lista de confianza nacional con estatus de cualificado, lo cual es una consulta y no una propiedad de la criptografía. FACe lo exige para las facturas al sector público. Tu política interna de compras puede no exigirlo en absoluto. Decide cuál necesitas antes de que empiecen a llegar facturas, no después de que falle una. En prestadores cualificados y la lista de confianza de la UE está cómo funciona esa consulta por dentro.

Cuando la validación de una factura firmada falla

La mayoría de los fallos no son fraude. Son manipulación del archivo.

El más frecuente con diferencia: el archivo cambió por el camino. Una pasarela de correo reescribió el adjunto, un sistema de archivo volvió a guardar el XML con otros espacios en blanco, o un compañero con buena intención abrió la factura y la guardó otra vez. El XML es especialmente frágil aquí, porque la canonicalización fija exactamente qué bytes se firmaron y una reescritura de formato rompe el resumen sin alterar un solo carácter visible.

El siguiente en la lista: la cadena no llega a una raíz de confianza. Suele pasar cuando el proveedor usó una autoridad de certificación nacional o interna que no está en la lista de confianza de la UE. La firma puede ser completamente sólida. Lo que ha fallado es la confianza, no la criptografía, y la solución es una decisión de política sobre ese emisor, no un arreglo técnico.

Y luego está el caso de la firma separada, que se reporta como indeterminado y no como inválido. El validador tiene una firma y nada contra lo que comprobarla. Adjunta la factura original y vuelve a lanzarlo.

¿Qué haces entonces? Pídele al proveedor que reenvíe el archivo tal cual salió de su sistema de firma, como adjunto directo y no a través de un portal que pueda volver a renderizarlo por el camino. Si la segunda copia valida, tenías un problema de transporte y nada más. Si falla exactamente igual, ahora sí tienes una conversación que merece la pena, y la estás teniendo antes de la remesa de pagos en lugar de después.

Un formulario para cada formato de factura

XAdES dentro de una factura XML, CAdES dentro de un envoltorio .p7m, PAdES sobre un PDF firmado o un contenedor ASiC. La validación de firmas de Chaindoc averigua cuál tienes, comprueba integridad, cadena de certificados, revocación y sellos de tiempo, y contrasta al firmante con la lista de confianza de la UE. Las firmas separadas admiten la factura original al lado. Confirmas tu correo con un código de un solo uso, y nada de lo que subes se almacena.

Dónde encaja la validación en el circuito de facturas

Valida en la recepción. Todas las partes de comprobar la firma de una factura se complican con el tiempo.

El sitio práctico es la puerta de entrada, antes de que la factura llegue a tu ERP, donde la comprobación de la firma corre junto a la detección de duplicados y el cotejo con el pedido. El resultado tiene que quedar en el registro de la factura como un artefacto guardado, no como una pantalla que alguien miró una vez. Un equipo que maneja unas pocas facturas firmadas al mes puede hacerlo a mano tan tranquilo. Por encima de eso pide una API, para que la validación ocurra se acuerde o no se acuerde alguien de lanzarla.

La conservación es la parte que casi todo el mundo subestima. En España el Código de Comercio te pide guardar la documentación mercantil seis años, y la prescripción tributaria de cuatro años se interrumpe con cada actuación, así que en la práctica el archivo vive más de lo que sugiere el plazo corto. La firma tiene que seguir siendo verificable durante toda esa ventana. Y sola no lo va a conseguir: los certificados caducan, las autoridades de certificación se apagan, los servicios de revocación dejan de responder y los algoritmos de hash se retiran.

Para eso existen los perfiles de largo plazo. XAdES-BASELINE-LT mete los certificados y los datos de revocación dentro del archivo para que se pueda seguir comprobando cuando la autoridad emisora ya no esté. XAdES-BASELINE-LTA añade encima un sello de tiempo de archivo. Si un proveedor te manda una factura en BASELINE-B y la necesitas defendible en 2033, ese hueco es tuyo: o conservas el informe de validación que generaste al recibirla, o actualizas la firma tú.

Hay una regla que se sostiene pase lo que pase: guarda el archivo original. Ni el XML extraído, ni una impresión en PDF, ni una captura de pantalla con un tic verde. Los bytes firmados son la prueba.

Un informe de validación generado mientras la cadena de certificados y los datos de revocación seguían accesibles vale más que una comprobación nueva hecha años después, cuando puede que los servicios lleven tiempo apagados. En Chaindoc el informe se guarda en privado 7 días y se abre dentro de la aplicación, así que descárgatelo y archívalo junto a la factura original firmada y su sello de tiempo. Si en 2032 una inspección pregunta si comprobaste la autenticidad del origen al recibirla, ese par contesta. Una nota en el gestor de tickets que diga "revisada, todo bien" no.

Facturas firmadas que llegan de fuera de España

En cuanto tienes proveedores fuera, la bandeja se vuelve mixta y ninguno de ellos ha consultado contigo qué formato le venía mejor.

De Italia te llegan .p7m, porque la firma digitale se apoya en CAdES y el proveedor que factura al sector público italiano firma ya todo lo que sale. De Portugal y de buena parte de Latinoamérica te llegan tanto CAdES como XAdES. De Alemania y Francia te llegan Factur-X o ZUGFeRD, que son PDF con XML dentro y muchas veces sin firma alguna. Y de un proveedor estonio o letón te puede llegar un contenedor .asice con la factura y la firma empaquetadas juntas.

De eso salen dos consecuencias, y la segunda es la útil.

La primera: no rechaces lo que no sabes abrir. Pedirle a un proveedor italiano "solo el PDF" muchas veces es pedirle que se salte su propio cumplimiento, y la copia de cortesía que te devuelva puede no ser el archivo que él declaró a su administración tributaria. Guarda el original firmado aunque tu ERP solo ingiera los datos extraídos.

La segunda: recibir una factura firmada no te crea ninguna obligación legal nueva, pero sí te regala un control que no has tenido que construir. Validarla al llegar te lleva un minuto y te dice si el número de cuenta de esa factura es el que puso tu proveedor. El fraude de facturación no respeta fronteras. Una firma que remonta hasta el certificado real de tu proveedor gana a cualquier cantidad de tiempo mirando con lupa la dirección de correo del remitente.

Dónde se equivocan los equipos de cuentas a pagar

Cuatro patrones, todos baratos de corregir.

Tratar la firma como una aprobación

No lo es. Una factura firmada es una factura autenticada, y la autenticación no dice nada sobre si debes ese dinero. Tu triple cotejo sigue teniendo que ocurrir, y la firma no te lo acorta ni un paso.

Quitar el envoltorio para meter la factura en el ERP

Se entiende, y destruye la prueba. Extrae el contenido para procesarlo si hace falta, y archiva el .p7m o el .xsig original exactamente como llegó.

Comprobar la firma y no mirar nunca el sujeto

El error caro. El fraude de desvío de pagos funciona pareciendo legítimo, y una firma válida de una entidad que no es del todo tu proveedor parece legitimísima. Lee el sujeto del certificado siempre.

Validar una vez y suponer que aguanta

No aguanta, no por sí sola. Una firma BASELINE-B que hoy verifica limpiamente puede ser imposible de verificar dentro de cinco años sin que nadie haya hecho nada mal. Conserva el informe que generaste al recibirla.

Y el resumen que merece la pena guardarse. La firma de una factura contesta una pregunta estrecha a un precio bajo, y esa respuesta se encarece cada mes que la aplazas. Haz la comprobación en la recepción, guarda juntos el archivo original y el informe de validación, y vuelve a discutir el importe, que siempre fue la parte que necesitaba a una persona.

Etiquetas

#eidas#invoice#digital-verification#compliance#digital-signing#eu-regulation
Preguntas frecuentes

Preguntas frecuentes

Respuestas rápidas sobre Chaindoc y los flujos de firma segura de documentos.