1. Las dos modalidades del RD 1007/2023
La normativa contra el software de doble uso (RD 1007/2023) introduce obligaciones estrictas para todos los Sistemas Informáticos de Facturación (SIF). Todo SIF debe garantizar la integridad, conservación, accesibilidad, legibilidad, trazabilidad e inalterabilidad de los registros.
Para cumplir este objetivo, la Administración Tributaria ha dispuesto dos vías operativas distintas que el obligado tributario (la empresa o autónomo) y su software pueden elegir:
- Modalidad VeriFactu (Sistema VERI*FACTU): Implica el envío automático, continuo, seguro y en tiempo real de los registros de facturación (y de eventos) a la Sede Electrónica de la Agencia Tributaria. Al realizar este envío, la AEAT presume que el sistema cumple con las garantías requeridas sin necesidad de que el SIF implemente firmas electrónicas avanzadas para el almacenamiento local.
- Modalidad No VeriFactu (Conservación Local Segura): El software genera registros que cumplen con todos los requisitos (hash, encadenamiento, código QR), pero no los envía automáticamente. El sistema debe almacenar estos datos de forma local, firmados electrónicamente (firma no repudiable), asegurando que puedan ser descargados de forma estructurada en caso de que la Inspección Tributaria requiera su extracción.
Nota sobre el diseño de software (SaaS)
La inmensa mayoría del software en la nube (SaaS) comercial adoptará por defecto la Modalidad VeriFactu. Para los proveedores de software modernos, enviar un XML por una API securizada es mucho menos costoso computacionalmente y más sencillo de gestionar que mantener un repositorio local inalterable de larga duración con firma electrónica criptográfica distribuida.
2. Tabla comparativa exhaustiva
A continuación, se desglosan las diferencias técnicas y operativas clave entre operar un sistema homologado como VeriFactu frente a uno No VeriFactu.
| Característica Técnica / Operativa | VeriFactu | No VeriFactu |
|---|---|---|
| Envío automático a AEAT | Sí, en tiempo real | No, solo bajo requerimiento |
| Hash encadenado (Trazabilidad) | Obligatorio | Obligatorio |
| Generación de Código QR | Obligatorio | Obligatorio |
| Registro de eventos del sistema | Obligatorio (se envía) | Obligatorio (se almacena local) |
| Marca 'VERI*FACTU' en factura | Sí, de inclusión obligatoria | No permitida (Infracción si se usa) |
| Firma electrónica en registro (XML) | Reemplazada por canal seguro HTTPS/TLS | Obligatoria (Firma avanzada / Sello) |
| Conservación local (4 años) | Obligatoria (aunque se envíe) | Obligatoria y crítica |
| Inspección AEAT | Datos ya disponibles en la sede | Requiere extracción formal / Volcado |
| Ventaja principal | Mayor confianza fiscal | Menor dependencia de conectividad |
3. La marca 'VeriFactu' en la factura
Uno de los aspectos más visibles para el consumidor final o cliente B2B es la inclusión de la mención 'VERI*FACTU' (o su logotipo oficial, si se determinase) en la representación gráfica de la factura (el PDF o el ticket en papel).
El Reglamento estipula que solo las facturas cuyos registros se remitan bajo la modalidad VeriFactu podrán (y deberán) exhibir la marca o expresión 'Factura verificable en la sede electrónica de la AEAT' o 'VERI*FACTU'.
Utilizar esta marca en un software que opera bajo modalidad "No VeriFactu" se considera un incumplimiento técnico de la normativa, ya que induce a error al receptor (y a la Agencia Tributaria) sobre el grado de integración del emisor con el fisco.
4. ¿Cuál elegir? Toma de decisiones
Para una PYME o autónomo, la elección dependerá del entorno tecnológico y operativo del negocio.
Recomendación Estratégica
La mayoría de los sistemas SaaS modernos implementarán la modalidad VeriFactu por defecto. La modalidad "No VeriFactu" quedará relegada típicamente a sistemas ERP on-premise altamente securizados (instalaciones locales de grandes empresas), entornos offline puros, o infraestructuras en zonas geográficas con conectividad de red gravemente deficiente o inestable.
A la hora de decantarse, se deben tener en cuenta las implicaciones de desarrollo: en modalidad No VeriFactu, el SIF debe disponer de certificados digitales, gestionar el sellado de tiempo (timestamping) de forma interna, proteger las claves privadas criptográficas en el dispositivo del cliente y prever un mecanismo robusto de exportación .xml para cuando la Inspección lo requiera in situ.
5. Requisitos de conectividad en modalidad VeriFactu
La modalidad VeriFactu demanda una comunicación directa con la Administración. Se requiere, por tanto, acceso a Internet estable. Pero, ¿qué ocurre si hay una caída de red en medio de la emisión de una factura?
El sistema informático debe estar preparado para estas contingencias mediante mecanismos de encolado (queueing) y reintento:
- Si falla el envío, el SIF debe generar el registro de forma normal (hash, evento).
- La factura se imprime/envía al cliente con toda validez.
- El SIF guarda el registro pendiente en un spooler local encriptado.
- Al recuperar la conexión, el SIF transmitirá los registros atrasados automáticamente en un bloque.
- El SIF generará y reportará un evento técnico de tipo "Caída de conectividad - Restablecimiento".
6. Implicaciones fiscales de cada modalidad
La propia exposición de motivos del Real Decreto sugiere que el envío en tiempo real aporta transparencia operativa. Las empresas que operan bajo VeriFactu transmiten a la Administración su facturación neta sin intervención humana, lo que la AEAT interpreta como un comportamiento de mínimo riesgo de fraude.
Esto podría traducirse en:
- Perfil de riesgo reducido: Menor probabilidad de sufrir inspecciones aleatorias y presenciales (los denominados 'peinados').
- Agilización de devoluciones: Al contar con los datos verificados, procesos como devoluciones de IVA podrían ser tramitados más ágilmente.
- Borradores impositivos: La posibilidad a futuro de que la AEAT facilite borradores parciales en liquidaciones de IVA y pagos fraccionados.
7. Flujo técnico de envío en modalidad VeriFactu
Para comprender la densidad técnica de la transmisión, el siguiente esquema (pseudocódigo conceptual) refleja los pasos que realiza internamente un software cuando un usuario hace clic en "Emitir Factura":
// 1. Datos básicos
const factura = SIF.crearFactura(datosUsuario, base, iva);
// 2. Hash encadenado (SHA-256)
const hashPrevio = DB.getUltimoHash(serie);
factura.hash = crypto.createHash('sha256')
.update(factura.datos + hashPrevio).digest('hex');
// 3. Generación del QR
factura.qr = SIF.generarURLQR(factura.nif, factura.numero, factura.fecha, factura.total);
// 4. Creación del registro estructurado
const xmlRegistro = XMLBuilder.buildVeriFactu(factura);
// 5. Envío vía Servicio Web (SOAP / REST)
try {
const respuesta = await AEAT_WebService.send(xmlRegistro, SIF.certificadoSede);
if(respuesta.status === 'OK') {
// 6. AEAT retorna acuse
DB.guardarAcuse(respuesta.id_acuse);
}
} catch (errorRed) {
// Encolar para más tarde (mecanismo retry)
SIF.encolar(xmlRegistro);
SIF.registrarEventoLog('Fallo conexion AEAT', errorRed);
}
Todo este complejo proceso ocurre en milésimas de segundo de manera invisible para el comerciante, garantizando el pleno cumplimiento del estándar técnico y evitando las cuantiosas sanciones asociadas al software de doble uso.