11 · Verifactu (AEAT)

◀ Volver al índice

Verifactu es el sistema de la Agencia Tributaria (AEAT) para los sistemas de facturación verificables (SIF) del RD 1007/2023. Con Verifactu activo, cada factura o ticket que emite Factuzam:

Este capítulo explica cómo se configura, cómo trabaja de forma automática y qué acciones fiscales (anular, rectificar, subsanar…) tienes disponibles.

Factuzam trabaja con tres modos fiscales:

Modo Uso
SINPeriodo transitorio o demo: no crea registro SIF ni cola AEAT.
VERIFACTUEnvía los registros a la AEAT mediante la cola.
NO_VERIFACTURegistra localmente la cadena y permite exportar XML de eventos y facturación; debe firmarse con certificado.

Verifactu es un subsistema transversal: afecta a las Facturas de venta, a las Facturas Simplificadas y al TPV de Caja. Aquí se documenta de forma unificada.


1. Cómo funciona (visión general)

   Venta / Factura
        │
        ▼
  Se encola  ──►  fza_verifactu_cola  (estado PENDIENTE)
        │
        ▼
  Hilo de envío en segundo plano (cada X segundos)
        │   reclama filas PENDIENTE → PROCESANDO
        ▼
  Envío a la AEAT (SOAP, certificado de la empresa)
        ├── Aceptado ─► ENVIADA · factura CONSOLIDADA · genera QR y hash
        └── Error    ─► reintento con espera creciente; al agotar, ERROR

Puntos clave:


2. Configuración previa (administrador)

Antes de activar Verifactu hay que dejar tres cosas listas:

2.1 Certificado de la empresa

En Archivo ▸ Empresas ▸ Certificado / Verifactu se indica el número de serie del certificado y su tipo. La aplicación usa ese certificado (del almacén de certificados de Windows) para firmar el envío a la AEAT. Sin certificado válido, los envíos fallan.

2.2 Parámetros de Verifactu

En Otros ▸ Parámetros del entorno, categoría Verifactu:

Parámetro Significado
Modo fiscalSIN, VERIFACTU o NO_VERIFACTU. Solo debe cambiarlo un administrador.
EntornoPRE (pruebas de la AEAT) o PRO (producción real).
NIF del SIFNIF del sistema informático de facturación. Obligatorio: si está vacío, la AEAT rechaza con el error «[1100] NIF» (ver diagnóstico).
Razón social del SIFNombre/razón del productor del sistema.
Id. de instalaciónIdentificador de esta instalación.
Segundos de cicloCada cuánto el proceso de envío revisa la cola (por defecto 60 s).
Máx. intentosReintentos antes de marcar una factura como ERROR (por defecto 10).
URLs de QR y de envío (PRE/PRO)Direcciones de la AEAT para el cotejo del QR y para el envío; vienen rellenas por defecto.
Firma con certificadoEn modo NO_VERIFACTU, firma los registros locales con XAdES usando el certificado de la empresa.
Servidores NTP / margen relojControl de hora fiscal para bloquear registros si el reloj del equipo no es fiable.

Cambia primero a PRE para probar contra el entorno de pruebas de la AEAT. En PRE, el NIF del obligado debe estar dado de alta en el censo de pruebas y guardar relación con el certificado. Pasa a PRO solo cuando todo funcione.

2.3 Activación

Selecciona el modo fiscal:


3. El menú Verifactu

Con el subsistema instalado aparece el menú principal Verifactu con dos opciones (ambas se pueden ocultar por grupo desde Permisos):

Verifactu
├── Declaración Responsable
└── Verifactu Log

La cola fiscal está agrupada con las demás integraciones en Otros ▸ Colas de envíos ▸ Verifactu.

Declaración Responsable

Muestra el texto de la declaración responsable del sistema de facturación (art. 13 del RD 1007/2023), compuesto con el nombre del sistema (Factuzam), su identificador, la versión instalada y los datos del productor/instalación configurados en los parámetros. Es el documento que acredita que el programa cumple la normativa.

Declaración responsable

Cola de Envíos

Ruta: Otros ▸ Colas de envíos ▸ Verifactu

Consulta de la cola de comunicación (fza_verifactu_cola): muestra cada factura pendiente o procesada con su estado, número de intentos, fecha del próximo intento y el mensaje de error si lo hubo.

Estado Significado
PENDIENTEEncolada, esperando a que el proceso la envíe.
PROCESANDOEl proceso la está enviando en este momento.
ENVIADAAceptada por la AEAT y consolidada.
ERRORAgotó los reintentos; requiere revisión.

Cola de envíos de Verifactu

Reproceso manual: en esta pantalla puedes editar las columnas Estado, Intentos y Próximo intento de una fila. Al grabar, el proceso la retomará en el siguiente ciclo. Es la forma de relanzar un envío que quedó en ERROR tras corregir su causa (p. ej. el NIF del SIF o el certificado). El resto de columnas son de solo lectura.

Verifactu Log

Consulta del registro encadenado de eventos (fza_verifactu_eventos): la traza completa de altas, anulaciones y respuestas de la AEAT con su cadena de huellas SHA-256. Es la pantalla de auditoría del sistema. Solo lectura.

Verifactu Log

En modo NO_VERIFACTU, el botón Exportar NO*VF genera dos ficheros XML: registro de eventos y registro de facturación. La exportación solo empaqueta registros ya generados; no crea la trazabilidad en ese momento.

Exportación NO VERIFACTU


4. Verifactu en la ficha de la factura

Al abrir un borrador normal o simplificado dispones de dos pestañas y un botón específicos:

En la pestaña Otros se puede indicar el tipo de operación Verifactu cuando no es una venta interior general: servicio intracomunitario, entrega intracomunitaria, inversión del sujeto pasivo o exportación. Para clientes extranjeros, la aplicación usa los datos de país y NIF-IVA/documento para construir el destinatario correcto.

Tipo de operación Verifactu en borradores

Pestaña Verifactu de una factura

Un borrador consolidado (ESCONSOLIDADA = S) ya tiene cierre fiscal y no se puede modificar ni borrar: cualquier corrección se hace con una rectificativa o una anulación (ver abajo). Es el principio de inalterabilidad del SIF.


5. Acciones fiscales sobre una factura emitida

Como una factura registrada no se puede tocar, Verifactu ofrece distintos caminos según lo que necesites. Están disponibles en la lista de Borradores y en Buscar operaciones del TPV de Caja, siempre sobre un documento ya consolidado:

Necesitas… Acción Qué hace
Anular una venta inexistente o erróneaAnular (Verifactu)Encola un registro de anulación. La factura pasa a CANCELADA.
Corregir importes o conceptosRectificarCrea una factura rectificativa por diferencias (corrección en negativo) o sustitutiva (documento correcto en positivo), siempre ligada a la original.
La AEAT aceptó el registro con errores, pero la factura expedida es correctaResolver incidencia ▸ Subsanar el registroReenvía el registro corregido con el indicador de subsanación, sin crear otra factura.
El NIF u otro dato incorrecto figura en la factura expedidaResolver incidencia ▸ Emitir rectificativa R4Crea una rectificativa sustitutiva con el destinatario correcto y la enlaza con la original.
Un cliente pide factura nominativa de su ticketFacturar ticket (F3)Crea una factura normal en sustitución de la simplificada, copiando sus líneas, a nombre del cliente.
El cliente se identifica en el momento de la ventaFactura (F8) en la fase de cobroGraba la venta directamente como factura normal (no ticket); exige cliente con NIF e imprime en A4/PDF.

Rectificativa por diferencias y sustitutiva

Al rectificar un ticket desde Buscar operaciones, Factuzam pregunta la modalidad antes de abrir la nueva operación de caja:

Tipo Documento nuevo Resultado práctico
Por diferenciasPresenta las líneas en negativo para conservar únicamente la corrección necesaria.La factura original y la rectificativa forman conjuntamente el resultado final. Es adecuada para devoluciones parciales o diferencias concretas.
SustitutivaPresenta en positivo el contenido completo que debe quedar como correcto.La rectificativa sustituye a la original. En listados de venta deja de computar la simplificada original y computa la sustitutiva.

En ambos casos se conserva la relación entre los documentos, la serie rectificativa, el motivo y la trazabilidad fiscal. La modalidad sustitutiva reemplaza además los movimientos de almacén de la original por los del documento corregido; la modalidad por diferencias mantiene los movimientos originales y añade el ajuste con su signo.

El procedimiento paso a paso está en TPV ▸ Rectificar un ticket.

Resolver un «Aceptado con errores» en Venta Mayor

En Factura Venta Mayor, abre la pestaña Verifactu de la factura. El botón Resolver incidencia aparece únicamente si el último registro está en Aceptado con errores y no hay ya una subsanación en curso.

El modal muestra el código y la descripción comunicados por la AEAT y pide elegir uno de estos dos casos:

  1. La factura expedida es correcta. Indica el motivo y usa Subsanar el registro. Factuzam encola un nuevo registro de alta con <Subsanacion>S</Subsanacion>. No modifica ni sustituye la factura.
  2. El dato incorrecto figura en la factura expedida. Elige el cliente correcto, la serie y la fecha. Factuzam crea y encola una rectificativa sustitutiva R4, vinculada a la factura original.

Por tanto, un error de NIF puede provocar un Aceptado con errores, pero eso no decide por sí solo el tratamiento. Si el NIF correcto ya estaba en la factura y solo se construyó mal el registro remitido, se subsana. Si la factura entregada al cliente contiene el NIF equivocado, se emite la R4. La respuesta, el XML y la firma del alta original se conservan en el histórico cuando la subsanación se acepta.

Botones de acciones fiscales en Facturas

Cada una de estas operaciones se vuelve a encolar y se comunica a la AEAT en modo VERIFACTU, o se registra localmente en modo NO_VERIFACTU, conservando la trazabilidad (qué documento rectifica o sustituye a cuál). La lista muestra además una columna «Cola Verifactu» con el último estado cuando aplica.

AnularRectificar: anular elimina fiscalmente la factura; rectificar la corrige emitiendo otra que la referencia. Para un cambio de importes lo correcto suele ser rectificar.


6. Diagnóstico de problemas frecuentes

Una factura se queda en ERROR en la cola. Abre Otros ▸ Colas de envíos ▸ Verifactu y lee el mensaje de error de la fila. Causas habituales:

Tras corregir la causa, relanza el envío editando la fila en la cola (estado → PENDIENTE, intentos → 0) o sube el parámetro de máximo de intentos: el proceso revive solo las filas en ERROR que aún tengan intentos disponibles.

El sistema se autocura ante duplicados: si la AEAT acepta pero falla el guardado local, en el reintento la AEAT responde «registro duplicado» y la aplicación lo da por bueno. No hay que hacer nada.


7. Resumen para el día a día


◀ Migración desde legacy · Índice · Siguiente ▶ Cambios y novedades