¿Qué es XAdES-BES y por qué es obligatorio?
XAdES-BES (XML Advanced Electronic Signatures — Basic Electronic Signature) es el estándar europeo de firma digital para documentos XML definido por ETSI en la norma EN 319 132. Para las facturas electrónicas españolas, es el formato de firma exigido por el Real Decreto 1619/2012 y por FACe para garantizar la autenticidad e integridad de los ficheros Facturae.
A diferencia de una firma PDF o una firma XMLDSig básica, XAdES-BES añade propiedades cualificadas al bloque de firma: el certificado del firmante, la política de firma, el momento de la firma y los roles del firmante. Sin estos elementos, FACe rechaza el fichero aunque el XML esté perfectamente formado.
Los 8 errores más frecuentes en la firma XAdES-BES
TaxIdentificationNumber del emisor en el XML. Si firmas con el certificado personal de un trabajador en lugar del certificado de la empresa, o si el CIF tiene un formato diferente, FACe rechaza la firma.<ds:Signature>) sin el bloque <xades:QualifyingProperties> que define XAdES. El resultado es un XML firmado pero en un formato que FACe no acepta.xmlns:xades="http://uri.etsi.org/01903/v1.3.2#" y el bloque <xades:QualifyingProperties>. Si usas AutoFirma, selecciona explícitamente el formato XAdES en las opciones avanzadas..xsig tras firmar. Si necesitas corregir algo en el XML, edita el fichero original sin firmar, vuelve a validarlo y vuelve a firmar. Trata el fichero firmado como un documento sellado.http://www.w3.org/2001/04/xmldsig-more#rsa-sha256.<xades:SigningCertificate>. Si solo se incluye el thumbprint o una referencia, y no el certificado X.509 completo en Base64, los validadores no pueden verificar la cadena de confianza.<ds:X509Certificate> dentro de <ds:KeyInfo> contenga el certificado completo en Base64. Al exportar el certificado del almacén de Windows, selecciona "Incluir todos los certificados en la cadena de certificación".<fe:Facturae>) usando una referencia con URI="" o URI="#id-del-nodo". Si la implementación firma un nodo incorrecto o usa una referencia rota, la validación falla aunque el certificado sea válido.<ds:Reference> dentro de la firma apunte al nodo correcto. En Facturae, la práctica estándar es usar URI="" para firmar todo el documento con una transformación enveloped-signature.<?xml version="1.0" encoding="UTF-8"?> al inicio y que el fichero está guardado realmente en UTF-8 sin BOM. Verifica con un editor hexadecimal que no haya BOM (bytes EF BB BF al inicio).Cómo verificar tu firma antes de enviar a FACe
Antes de subir a FACe, puedes comprobar que la firma XAdES-BES está presente y tiene la estructura correcta con estas herramientas:
- Validador Facturae de FacturaX — facturax.app/herramientas/validador-facturae — detecta si el fichero contiene firma XAdES-BES y muestra su fecha. Gratis, sin registro, sin enviar datos a ningún servidor.
- VALIDe del Ministerio — valide.redsara.es — validación criptográfica completa del certificado y la cadena de confianza. Requiere Java o AutoFirma.
- AutoFirma — la herramienta oficial del Ministerio para firmar y verificar documentos con certificado FNMT. Descargable en autofirma.minisap.es.
- El certificado FNMT está vigente (comprueba la fecha de expiración en el almacén de certificados)
- El NIF del certificado coincide exactamente con el
TaxIdentificationNumberdel emisor en el XML - El fichero firmado tiene extensión
.xsigy no ha sido modificado tras la firma - El XML contiene el namespace
xmlns:xadesy el bloqueQualifyingProperties - El algoritmo de firma es SHA-256, no SHA-1
- El fichero está en UTF-8 sin BOM
- Has validado el XML con el validador de FacturaX sin errores críticos
Estructura técnica de XAdES-BES en Facturae
Para referencia técnica, este es el esqueleto de un bloque XAdES-BES válido en un fichero Facturae:
<ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
Id="Signature">
<ds:SignedInfo>
<ds:CanonicalizationMethod
Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/>
<ds:SignatureMethod
Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha256"/>
<ds:Reference URI="">
<ds:Transforms>
<ds:Transform
Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/>
</ds:Transforms>
<ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
<ds:DigestValue>...</ds:DigestValue>
</ds:Reference>
</ds:SignedInfo>
<ds:SignatureValue>...</ds:SignatureValue>
<ds:KeyInfo>
<ds:X509Data>
<ds:X509Certificate>MIIFxDCCA...</ds:X509Certificate>
</ds:X509Data>
</ds:KeyInfo>
<ds:Object>
<xades:QualifyingProperties
xmlns:xades="http://uri.etsi.org/01903/v1.3.2#"
Target="#Signature">
<xades:SignedProperties Id="SignedProperties">
<xades:SignedSignatureProperties>
<xades:SigningTime>2026-05-05T10:00:00+02:00</xades:SigningTime>
<xades:SigningCertificate>
<xades:Cert>
<xades:CertDigest>...</xades:CertDigest>
<xades:IssuerSerial>...</xades:IssuerSerial>
</xades:Cert>
</xades:SigningCertificate>
</xades:SignedSignatureProperties>
</xades:SignedProperties>
</xades:QualifyingProperties>
</ds:Object>
</ds:Signature>
Sube el PDF, FacturaX extrae los datos y firma el Facturae 3.2.2 con tu certificado FNMT. Sin errores, sin configuración.
Preguntas frecuentes sobre XAdES-BES
¿Qué es XAdES-BES?
XAdES-BES (XML Advanced Electronic Signatures — Basic Electronic Signature) es el formato de firma digital requerido por FACe para garantizar la autenticidad e integridad de las facturas electrónicas Facturae. Sin esta firma, FACe rechaza el fichero independientemente de que el XML sea correcto.
¿Por qué FACe dice que mi firma no es válida si el certificado está vigente?
El error más frecuente es que el NIF del titular del certificado no coincida con el NIF del emisor en el XML. Otro motivo habitual es que la firma sea XMLDSig básica en lugar de XAdES-BES — son formatos distintos aunque visualmente similares.
¿Cuánto tiempo tarda en expirar un certificado FNMT?
Los certificados de persona jurídica de la FNMT tienen una validez de 2 años. Los de persona física, 4 años. Puedes renovarlos con hasta 2 meses de antelación desde sede.fnmt.gob.es sin perder el número de serie.
¿Puedo verificar mi firma XAdES-BES antes de subir a FACe?
Sí. El validador gratuito de FacturaX detecta si el fichero contiene firma XAdES-BES y su fecha de firma, todo en tu navegador sin enviar datos. Para verificación criptográfica completa, usa VALIDe del Ministerio en valide.redsara.es.