Productor: Input Creativity SL (NIF B18978924) · Versión del manual: 1.7.4 (1-oct-2026)
Productor: Input Creativity SL (NIF B18978924) · Módulo libre (clean-room) basado en las
especificaciones públicas de la AEAT.
Versión del manual: 1.7.4 (1-oct-2026) · Se aplica a la versión 1.7.4 del módulo.
VeriFactu es el sistema de la Agencia Tributaria (AEAT) que obliga a los sistemas de facturación a registrar cada factura emitida (alta, anulación y rectificación), firmarla electrónicamente y conservarla a disposición de la AEAT. Las obligaciones entran en vigor el 1 de enero de 2027 si su empresa tributa por el Impuesto sobre Sociedades, y el 1 de julio de 2027 en el resto de casos (autónomos y profesionales). Este módulo, instalado en su AppVanza CRM, hace automáticamente todo el trabajo:
| Función | Qué hace |
|---|---|
| Registro automático | Al emitir una factura (pasarla de borrador a no pagada), genera el registro VeriFactu y lo envía a la AEAT sin intervención manual. |
| Huella encadenada | Cada registro lleva una huella SHA-256 que enlaza con el anterior (cadena inalterable). |
| Firma electrónica | Cada registro se firma con su certificado electrónico, en formato XAdES Enveloped (el que exige la normativa), sobre el contenido del propio registro. |
| Código QR | Las facturas emitidas llevan un QR que la AEAT valida en su web. |
| Consulta | Puede consultar qué facturas están registradas en la AEAT (estado, fechas). |
| Bloqueo de integridad | Una factura ya registrada no se puede modificar en sus datos fiscales ni borrar (solo anularse con su registro). |
| Eventos | Registra eventos del sistema (inicio/fin NoVeriFactu, resúmenes, anomalías) como exige la norma. |
| Anulaciones y abonos | Al cancelar una factura o crear un abono, registra la anulación/rectificativa correspondiente. |
Desde el menú VeriFactu → Configuración:
💡 Importante: el cambio de pruebas a producción reinicia la cadena de huellas
(la AEAT de producción no conoce los registros de pruebas). El módulo le pedirá confirmación
explícita la primera vez.
Mientras el CRM está en Pruebas (preproducción) las facturas, anulaciones y abonos que se emitan son de prueba: se registran en el entorno de pruebas de la AEAT y no tienen ningún valor fiscal. Antes de pasar a Producción hay que limpiarlas, por dos motivos:
Quién lo hace: su administrador (o Input Creativity SL) desde VeriFactu → Configuración → tarjeta «Datos de preproducción (pruebas)». También está disponible:
Qué borra y qué no (garantías del módulo):
| Alcance | Detalle |
|---|---|
| Sí borra | Los registros VeriFactu de prueba (facturas y eventos) y sus ficheros JSON. |
| Sí borra (si se pide) | Las facturas, notas de crédito (abonos) y sus líneas y pagos del periodo indicado. Los abonos entran aunque tengan su propio registro: desde la lista de facturas no se pueden borrar a mano. |
| No borra nunca | Los registros de producción. |
| No borra nunca | Facturas con registro de producción, y las que no tienen ningún rastro del módulo (creadas a mano, importadas o de otros fines): solo toca las que pasaron por el módulo. |
| No borra | El registro local de números ya enviados (§2.2): es justo lo que conviene recordar después de limpiar. |
Fechas: hace falta indicarla para borrar documentos. Para borrar facturas/notas hay que rellenar el campo «Facturas/notas de prueba desde» con la fecha en la que empezaron las pruebas. Si dejas la casilla de facturas marcada y la fecha vacía, la limpieza borra solo los registros y te lo avisa por escrito (antes no borraba nada y no lo decía). Usa Previsualizar antes de borrar: te lista una a una las facturas/notas que se van a borrar, las que se conservan y con qué motivo, cuántas líneas y pagos arrastra y cómo queda la numeración. ¿Y si una factura de prueba ya no tiene rastro? Una limpieza anterior pudo borrar sus registros y dejar la factura sin vínculo aparente con el módulo. El módulo la sigue reconociendo por las marcas que deja en la propia factura (intentos de envío) y por el vínculo del abono con su factura principal, así que se borran igual. Para las que nunca pasaron por el módulo (ni un intento) hay una casilla «Incluir también las que no tienen ningún rastro del módulo», desmarcada por defecto: márcala solo si sabes que en ese periodo todo era de prueba. Recomendación: si solo quiere poder repetir las pruebas sin liarse con la numeración, desmarque la casilla de facturas y limpie solo los registros. Así el CRM no recicla números y no se encuentra con rechazos por duplicado (ver §2.2). Si prefiere empezar de cero, limpie también las facturas: el módulo reinicia la numeración, pero entonces apunte hasta qué número se envió, porque la AEAT no lo olvida.
La AEAT no olvida lo que ha recibido. Si se le vuelve a enviar el mismo NIF, el mismo número de factura y la misma fecha, responde 3000: Registro de facturación duplicado y el registro queda Incorrecto. Es lo que ocurre cuando, tras una limpieza de pruebas, el CRM reutiliza un número que ya se había enviado (la limpieza libera la numeración). Para evitarlo, desde la versión 1.6 el módulo:
writable/verifactu_numeros_enviados.json. La limpieza de pruebas no borra ese fichero.💡 En producción no hay nada que duplicar (no hay registros previos), así que este aviso solo
aparece en pruebas. Puede borrar el fichero a mano cuando empiece de cero.
El CRM de AppVanza no trae un actualizador propio: el botón «Actualizar» de Ajustes → Plugins solo puede mostrar información, y subir un ZIP de un módulo ya instalado lo rechaza el propio CRM («Este complemento ya está instalado»). Por eso, desde la versión 1.6, el módulo es el que avisa:
La comprobación consiste en descargar un fichero público de versiones (https://appvanza.com/verifactu_ultima_version.json): no envía ningún dato de su empresa, de sus facturas ni de sus clientes, y no afecta al registro en la AEAT (si no hay conexión, simplemente se muestra «no se pudo comprobar» y todo sigue funcionando).
💡 Cómo se actualiza: Ajustes → Plugins → ⋮ → Borrar VeriFactu → Subir el ZIP nuevo →
Instalar → Activar. Al borrar se van solo los ficheros del módulo: su configuración, el
certificado, los registros enviados, los JSON firmados y el registro de números ya enviados
se conservan (están fuera de la carpeta del módulo, en la base de datos,
files/Verifactu/y
writable/). La versión nueva trae su declaración responsable y su registro de cambios (§8).
⚙️ Los cambios que el módulo hace en el CRM se aplican al ACTIVARLO, y se retiran al DESACTIVARLO
(desde la 1.7.4). VeriFactu necesita ajustar algunas pantallas del CRM (el formulario de factura, las
líneas, el PDF…): eso son parches sobre el propio CRM, no ficheros suyos. Hasta la 1.7.3 se aplicaban
al instalar, aunque no activara el módulo, y borrar el módulo no los deshacía; ahora **instalar y
no activar no cambia nada, y desactivar devuelve esas pantallas a como estaban** (si vuelve a
activarlo, se vuelven a aplicar solos). Las tablas y columnas propias sí se crean al instalarlo: son
invisibles e inertes.
Si el contrato se suspende o la implantación se aplaza, basta con desactivar el módulo: no se registra
nada, no se envía nada y el CRM queda como estaba. Ojo con una cosa: si tiene programada la **tarea del
cron del módulo, páusela también**, porque esa tarea no depende de que el módulo esté activado.
⚙️ Si actualiza copiando los ficheros (por FTP o descomprimiendo el ZIP encima, sin pasar por
Ajustes → Plugins), el instalador del plugin no se ejecuta. Desde la revisión del 28-sep-2026 el
módulo se repara solo el esquema: al arrancar comprueba sus columnas propias y **crea las que
falten**, dejando un aviso en el registro del sistema (antes, sin la columna de la fecha de operación,
ese dato no se guardaba en silencio). Aun así, la vía recomendada es la del instalador: deja
constancia de la versión instalada en Ajustes → Plugins.
El módulo puede funcionar de dos maneras, y se elige por empresa en VeriFactu → Configuración («Modo VeriFactu / NoVeriFactu»):
| Modalidad | Qué hace |
|---|---|
| VeriFactu (por defecto) | Genera el registro al emitir, lo firma, lo encadena y lo envía a la AEAT. Es la modalidad normal y la que se usará en producción |
| No VeriFactu | Hace lo mismo excepto el envío: el registro y los eventos se generan, se firman, se encadenan y se conservan a disposición de la AEAT. No se remite nada |
Lo que debe saber si trabaja en No VeriFactu:
ValidarQRNoVerifactu).⚠️ Antes de pasar a Producción, si ha estado en No VeriFactu, tenga en cuenta que esas facturas de
prueba no están en la AEAT: es lo esperado. Los registros de prueba se limpian con la herramienta de
limpieza de preproducción (§2.1).
El módulo incorpora IVA % y Descuento % en cada línea de la factura.
base − descuento + IVA, menos la retención global.Ejemplo: línea de 50 € con IVA 21 % y Dto 10 % → base 45 + IVA 9,45 = 54,45 €. La AEAT recibe 54,45 € (sin IRPF, que no forma parte del registro).
La AEAT no «sustituye» su factura: incorpora el registro a su sistema, lo encadena con los registros anteriores de su empresa y le devuelve el resultado de ese registro:
| Resultado | Significado | Qué debe hacer |
|---|---|---|
| Correcto | El registro se ha aceptado y queda almacenado en la AEAT. | Nada: la factura está registrada. |
| AceptadoConErrores | Se ha almacenado, pero con algún aviso formal. | Revise el código y la descripción en Registros y contacte con Input Creativity. |
| Incorrecto | Lo ha rechazado (no queda registrado). | Lea el error, corrija la factura si es posible y vuelva a emitirla. |
| Pendiente | Todavía no hay respuesta (envío en curso o reintento). | Espere unos minutos: el cron lo reintenta solo. |
| Dónde | Qué verá |
|---|---|
| VeriFactu → Registros | Una fila por factura, evento Alta, estado Correcto, el código de respuesta de la AEAT y el JSON firmado descargable. |
| El PDF de la factura | El QR VeriFactu, que la AEAT valida en su web (en modo pruebas, solo en la web de pruebas). |
| VeriFactu → Consulta AEAT | El listado de facturas registradas de un periodo, con su estado y fecha de presentación. |
| La factura en el CRM | Queda bloqueada en sus datos fiscales (no se puede editar ni borrar): es la obligación de inalterabilidad. Para corregirla, ver §4. |
| La numeración | Cada factura conserva su número para siempre, incluso si después se anula. |
⚠️ Genere el PDF después de emitir: el QR se estampa al crear el documento, así que emita
primero y envíe el correo/PDF después (desde el borrador saldría sin QR).
💡 El QR y la leyenda van con las facturas del sistema. Una factura emitida antes de implantar
el módulo no tiene registro (la AEAT no la conoce): si la reenvía —una copia, un cambio de datos del
cliente, una rectificación de una antigua— su PDF sale sin QR y sin leyenda, que es lo correcto: un
QR de una factura no registrada no valida en la sede y la leyenda solo procede cuando el sistema remite
todos los registros. Está explicado en §4.5.
En una frase: el borrador puedes prepararlo cuando quieras, pero la factura se emite el día que se emite. En la modalidad VERI*FACTU (la que remite todos los registros) la fecha de expedición tiene que ser la del sistema: no se puede consignar una fecha distinta de la del momento de la emisión. Cada registro lleva dos fechas, y por eso el desfase no se puede esconder:
| Dato | Qué es |
|---|---|
| Fecha de expedición | La fecha de la factura (30-09 en el ejemplo). |
| Fecha y hora de generación | El instante real en que el sistema genera, firma y encadena el registro (15-10). |
Así que un borrador del 30/09 emitido el 15/10 produciría un registro que dice «expedida el 30-09, generada el 15-10», con esa hora firmada y encadenada. La cadena no se rompe —va por orden de generación, no por fecha de factura— y la numeración sigue siendo correlativa (Rise asigna el número al crear la factura, también en borrador), pero el desfase queda a la vista de la AEAT. Por eso el módulo avisa antes de emitir cuando la fecha de la factura no es la de hoy, y también si es anterior a la del último registro de la empresa (casi siempre un error de tecleo). No lo bloquea: emitir a las 00:05 una factura fechada ayer es legítimo. Si la operación fue de septiembre y la factura se emite en octubre —el caso legítimo— para eso está el campo «Fecha de operación» del formulario de la factura: se envía a la AEAT como FechaOperacion sin cambiar la fecha de la factura. Debe ser igual o anterior a ella; si pones una posterior, el módulo la ignora y lo anota en el registro del sistema del CRM. La factura lo dice, no solo el envío a la AEAT. Cuando la fecha de operación es distinta de la de expedición, el PDF de la factura la imprime junto al QR y a la leyenda:
Fecha de operación: 30-09-2026 (factura expedida el 15-10-2026)
No es un adorno: el Reglamento de facturación (RD 1619/2012) exige que la factura haga constar la fecha en que se hayan efectuado las operaciones cuando no coincida con la de expedición, y quien la recibe —por ejemplo una administración que concierta plazas— necesita ver a qué mes corresponde el servicio. Si las dos fechas coinciden, la factura sale exactamente igual que siempre (y en un borrador, la vista previa muestra la fecha de operación, sin hablar todavía de expedición). Series: puede usar una serie que dejó de usar, siempre que la numeración siga siendo correlativa dentro de esa serie y no repita un número ya enviado (ver §2.2: el módulo avisa de los números que la AEAT ya aceptó). Lo que no se puede es retrasar la emisión de una factura para que «caiga» en otro mes.
Si el cliente está fuera de España y la factura no lleva ningún impuesto, el módulo lo entiende como una exportación y hace dos cosas:
ClaveRegimen 02 (Exportación) y OperacionExenta E2 —exenta por el art. 21 de la Ley del IVA—, solo con la base (sin tipo ni cuota), y al cliente se le identifica con IDOtro (país + tipo de documento + número) en vez de con un NIF español. Da igual que la línea esté marcada o no como «Imponible»: el importe se declara una sola vez como exento. (Hasta la 1.7.4, el importe de las líneas marcadas como «Imponible» salía como sujeta al 0 %, que no describe una exportación; y si la factura mezclaba líneas imponibles y no imponibles, el desglose quedaba incoherente. Ahora va todo en un único detalle exento.)> Exenta de IVA (art. 21 LIVA) · empresa ubicada en Estados Unidos No hay que escribirlo a mano, y si el país del cliente cambia en su ficha, el texto cambia solo. Para que funcione, la ficha del cliente tiene que tener país y un identificador fiscal (NIF-IVA o el documento que corresponda). El país se escribe a mano en la ficha y el módulo reconoce estos nombres: España, Francia, Italia, Alemania, Portugal, Reino Unido, Estados Unidos, México, Argentina, Colombia, Chile, Marruecos, China, Andorra, Países Bajos, Bélgica y Suiza. Si el suyo no estuviera —o si prefiere escribir el país de otra forma—, avise a Input Creativity SL: se añade en un momento. Si falta el país (o no lo reconoce) o falta el identificador fiscal, la factura se emite sin registro (sin QR) y el módulo deja un aviso en el registro del sistema: no se envía nada a la AEAT.
⚠️ Servicios: para un cliente de fuera de la UE, si lo que se factura son servicios que no se
localizan en España, la calificación correcta es
N2(operación no sujeta por reglas de localización),
que el módulo todavía no distingue de una exportación (declara E2). Consúltelo con su asesoría: está
previsto para una versión posterior.
El CRM asigna el número de factura al crear la factura, aunque la guardes como borrador. Y la numeración de las facturas tiene que ser correlativa dentro de cada serie (art. 6.1.a del Reglamento de facturación). De ahí un caso que conviene conocer:
Si preparas un borrador y lo dejas sin terminar, y mientras tanto emites facturas nuevas, el
borrador se queda con un número anterior al de las ya emitidas. Al emitirlo después, la numeración deja
de ser correlativa.
El módulo te avisa. Al crear una factura nueva, si hay borradores cuyo número ya ha sido adelantado por otras facturas emitidas, verás un aviso en el propio formulario, con su número y su fecha:
Hay 1 borrador(es) de factura con el número ya adelantado por otras facturas emitidas. Si vas a
facturar algo de esas fechas, considera terminar uno de ellos (puedes cambiarle la fecha, las líneas o
el cliente) en lugar de crear una factura nueva: así no dejas saltos en la numeración.
Lo recomendable es eso: aprovechar el borrador. Cambiarle la fecha, las líneas o el cliente es más limpio que crear una factura nueva y dejar el número del borrador sin usar. Preguntas frecuentes sobre esto:
| Situación | Qué debe hacer | Qué registra el módulo |
|---|---|---|
| Factura emitida por error: datos del cliente o fechas equivocados, factura duplicada, o una operación que no existió | Cancelar la factura (estado «Cancelada») y, si procede, emitir una nueva correcta | Registro de anulación de esa factura |
| Cambio de precios o de servicios ya facturados, o devolución/reembolso al cliente | Crear un abono desde la factura | Factura rectificativa (R4 si abona el 100 %, R1 si es parcial), con su propio registro y QR |
| La factura todavía es un borrador (no está registrada) | Corregirla con tranquilidad y emitirla después | Alta (un solo registro) |
| Factura anterior a la implantación del módulo (no está registrada: la AEAT no la conoce) que hay que reenviar —una copia, un cambio de datos del cliente… | Corregirla y reenviarla, o anularla y emitir una nueva (§4.5) | Nada si solo se reenvía: su PDF sale sin QR ni leyenda, porque no es una factura del sistema |
⚠️ Criterio: la anulación es para facturas emitidas por error (los datos no reflejan la
realidad: cliente o fechas equivocados, factura duplicada, operación inexistente). Si lo que cambia es
el precio o el servicio —o el cliente devuelve el producto—, lo correcto es la **factura
rectificativa de un abono, que es lo que hace el módulo por defecto. Nunca se envían las dos cosas**
por la misma operación: es un solo registro en cada caso.
| Dónde | Qué verá |
|---|---|
| VeriFactu → Registros | Una fila nueva, evento Anulación, estado Correcto. La fila del alta original se conserva (la AEAT ya la había aceptado). |
| El estado de la factura | Cancelada: deja de contar como factura emitida. |
| VeriFactu → Consulta AEAT | La factura aparece con estado Anulado. |
| La numeración | No se reutiliza: la factura anulada conserva su número y la siguiente factura toma el siguiente de la serie. |
| El QR de la factura anulada | Sigue localizándose en la AEAT, que la muestra como anulada. |
⚠️ Una anulación no se puede deshacer. Si canceló una factura por error, emita una nueva.
El abono se prepara en borrador (igual que una factura): se ajusta con calma y se registra al emitirlo. Así se pueden corregir precios, cantidades o descuentos antes de que exista ningún registro.
| Dónde | Qué verá |
|---|---|
| VeriFactu → Registros | Una fila nueva para el abono (evento Alta: es una rectificativa), con su propio número y estado Correcto. |
| El detalle del registro | El tipo de rectificativa (R4/R1) y, si la AEAT devolviera algún aviso, su código y descripción, que aparecen bajo el estado. |
| El PDF del abono | Su propio QR, independiente del de la factura original. |
| La factura original | Estado abonada en el CRM; conserva su registro de alta y su número. |
| VeriFactu → Consulta AEAT | Aparecen los dos registros: la factura original y su rectificativa. |
| La numeración | El abono tiene su propio número de serie. |
💡 Si empieza un abono y no lo va a usar, bórrelo: al estar en borrador no hay nada registrado ni
enviado. Mientras exista un abono sin emitir, el CRM no dejará crear otro para la misma factura,
para no duplicar la rectificativa.
⚠️ El abono debe crearse desde la factura. Si se crea una nota de crédito suelta (sin factura
de origen), el módulo no puede registrarla —la AEAT exige indicar qué factura se rectifica— y
deja un aviso en el registro del sistema. En ese caso, anule ese abono suelto y créelo desde la
factura.
Cuando una factura ya tiene registro en la AEAT, el módulo bloquea la edición de sus datos fiscales (cliente, fechas, impuestos, importes, líneas), el borrado de sus líneas y su propia eliminación, con un aviso en pantalla. Es la obligación de inalterabilidad de la normativa. Para corregirla: cancele la factura (si fue un error) o cree un abono (si es una devolución), y emita una nueva si procede.
💡 Lo mismo vale para las facturas emitidas en modo No VeriFactu (aunque no se hayan enviado): una
factura emitida no se modifica ni se borra; se anula o se abona.
⚠️ Si alguna vez desaparece una factura que tenía registro (por ejemplo, borrada desde fuera del CRM),
el módulo deja constancia: escribe un aviso en el registro del sistema, genera un **evento de
anomalía (art. 9 de la Orden HAC/1177/2024) y lo muestra en VeriFactu → Configuración** como
«registro huérfano». Avise a Input Creativity SL: una factura registrada es inalterable y hay que valorar
restaurarla.
Las facturas emitidas antes de que se implantara el módulo no tienen registro de facturación (la AEAT no las conoce): el módulo registra las facturas que se emiten con él, y no añade registros hacia atrás. Por eso, si reenvía una de esas facturas —una copia, una factura corregida, una rectificación de una antigua—, su PDF sale sin QR y sin la leyenda «Factura verificable en la sede electrónica de la AEAT», que es lo correcto:
La regla, en una frase: el QR y la leyenda van con las facturas del sistema —las que tienen su registro, sea cual sea su estado—; también con las que están pendientes o fueron rechazadas y hay que subsanar (un rechazo se arregla, no se esconde quitando el QR).
💡 Si lo que quiere es que esa factura antigua sí quede registrada en la AEAT, hágalo como una
operación nueva: cancele la antigua y emita la nueva con el módulo (§4.2), de modo que la factura que
se envía al cliente sea la registrada, con su QR válido.
⚠️ Qué dice la norma de las facturas anteriores: el Reglamento de los sistemas informáticos de
facturación (RD 1007/2023, artículos 4 y 8) se refiere a los registros que genera el propio sistema —es
decir, a las facturas emitidas con él—, y el módulo no registra hacia atrás las anteriores. Si
valora registrar de algún modo esas facturas antiguas, consúltelo con su asesoría: es una decisión
fiscal, no una opción del programa.
ℹ️ Detalle técnico (para soporte): el PDF imprime el QR solo si la factura pertenece al sistema,
es decir, si tiene alguna fila propia en el registro de facturación del módulo —alta, anulación o
rectificativa, sin filtrar por estado—. Los borradores siguen sin QR, como siempre.
Las facturas emitidas antes de implantar el módulo no tienen registro y el módulo no las registra hacia atrás. Eso tiene tres consecuencias prácticas que conviene conocer:
| Lo que haga | Qué envía el módulo | Qué pasa con el documento |
|---|---|---|
| Editarla (nota, importes, datos del cliente…) | Nada: guardar el formulario no genera registro ni intento de envío | Sigue sin QR ni leyenda, porque la AEAT no la conoce |
| Abonarla (nota de crédito) | Una rectificativa (R4 o R1) del abono | El abono sí lleva QR: es un documento del sistema |
| Cancelarla | Una anulación, marcada con SinRegistroPrevio = "S" (la AEAT nunca la vio) | — |
⚠️ Aviso importante: no la envíe por email desde el botón del CRM. Rise, al enviar una factura por
correo, le pone el estado «no pagada» aunque ya lo estuviera, y ese cambio de estado la registra
(un alta en la AEAT, con la fecha antigua de la factura y el momento real de generación). Lo mismo ocurre
si le cambia el estado a mano a «no pagada». Si tiene que mandarle al cliente una copia de una factura
anterior, descargue el PDF y envíelo desde su correo habitual.
(Esta decisión —avisar y dejarlo documentado en vez de bloquear— se tomó con Input Creativity SL el
30-sep-2026; el módulo deja la traza correspondiente en el registro del sistema.)
Lo fiscalmente correcto: una factura ya emitida no se edita; se abona o se cancela y se emite una nueva. El módulo no puede impedir la edición de las facturas anteriores a su implantación porque no las conoce; en las que sí son suyas (con registro) la edición está bloqueada (§4.4).
F1, rectificativa R1/R4, anulación…) y puede descargar el JSON firmado de cada registro.⚠️ En modo pruebas, el QR apunta al entorno de preproducción de la AEAT: la app oficial
del móvil no lo validará (solo la web de pruebas). En producción el QR valida con normalidad.
La normativa exige que el sistema permita exportar a un soporte externo todos los registros de facturación generados en un periodo (art. 8.2 de la Orden HAC/1177/2024). Está en VeriFactu → Configuración → tarjeta «Exportar registros»:
El ZIP contiene los JSON firmados tal y como los conserva el sistema (no se rehacen: su firma electrónica sigue siendo válida), organizados en facturacion/ y eventos/, más un manifiesto con la identificación de cada registro, su huella y el SHA-256 de cada fichero, y un LEEME.txt con el periodo, la empresa y el contenido. Al terminar, el módulo registra el evento de exportación que exige la norma (art. 9.1 de la Orden).
💡 Es la vía para entregar los registros a la AEAT si se los requiere y para **cambiar de
sistema** sin perder nada. No sustituye a las copias de seguridad del CRM: es la exportación
oficial de los registros conservados.
| Problema | Solución |
|---|---|
| Un registro sale "Incorrecto" | Abra el registro en VeriFactu → Registros y lea el código/descripción del error (p. ej. NIF inválido, fecha mal formada). Corrija la factura si se puede o contacte con Input Creativity. |
| El QR "no encuentra la factura" | Compruebe que la factura está registrada como Correcto y que está en el entorno correcto (pruebas = web de pruebas; producción = app/web real). |
| No puedo editar una factura | Es el bloqueo de integridad de VeriFactu: la factura ya está registrada. Anúlela y emita una nueva, o cree un abono (§4). |
| La cola no se envía | El cron del servidor debe estar activo (cada 5 min). Contacte con su administrador/Input Creativity. |
| Mi abono no aparece registrado en la AEAT | Compruebe que lo creó desde la factura original (§4.3): un abono suelto, sin factura de origen, no se puede registrar. |
| Cancelé una factura y quiero recuperarla | No es posible: la anulación no se deshace. Emita una factura nueva. |
| "Registro de facturación duplicado" (3000) | La AEAT ya tiene una factura con ese mismo número y esa fecha. Cambie el número (o la fecha) de la factura y vuelva a emitirla: el módulo no la reintenta solo, porque reenviarla daría el mismo error. Para saber qué números se enviaron ya, mire VeriFactu → Configuración → «Números ya enviados a la AEAT» y el aviso que el módulo deja al emitir (§2.2). |
| "…el bloque ImporteRectificacion no debe tener valor" (1119) | Es un error de versión antigua del módulo: actualícelo. Si persiste, contacte con Input Creativity. |
| El total de un abono no lleva el IVA (solo la suma de las líneas) | Error de versiones anteriores a la 1.6 al abonar facturas hechas con IVA por línea: el abono heredaba el cálculo antiguo y le faltaba el IVA, aunque el registro enviado sí lo llevaba. Actualice el módulo a la 1.6 y vuelva a crear el abono (el que ya emitió no se puede corregir: anúlelo o déjelo como está y haga uno nuevo). Desde la 1.6 el módulo cuadra el abono antes de registrarlo. |
| Un registro aparece como «Descartado · revisar» | No se ha podido preparar (su JSON es ilegible o no supera las validaciones y no se puede reconstruir), así que no se envía a la AEAT. La cadena de huellas sigue funcionando (el módulo se encadena al último registro válido, esto ya no se bloquea). Mire el motivo que sale bajo el estado, arregle la causa y pulse «Reintentar» en la fila. Si no, avise a Input Creativity SL: ese registro no se puede remitir y quizá haya que anular la factura o emitirla de nuevo. |
| En Configuración sale un aviso de «registros huérfanos» | Una factura con registro ha desaparecido (borrada por una vía que el módulo no puede bloquear). El módulo deja traza (aviso en el log y evento de anomalía). Avise a Input Creativity SL: una factura registrada es inalterable y hay que valorar restaurarla desde la copia de seguridad. |
| El campo «Fecha de operación» no guarda la fecha (o el módulo se queja de columnas que no existen) | La instalación se ha actualizado copiando los ficheros en lugar de usar el instalador del plugin, así que puede faltarle alguna de las columnas propias del módulo. Desde la revisión del 28-sep-2026 el módulo las crea solo al arrancar y lo deja anotado en el registro del sistema. Para comprobarlo o forzarlo desde el servidor: php plugins/Verifactu/Commands/Verifactu_esquema.php (informa columna a columna) y php plugins/Verifactu/Commands/Verifactu_esquema.php --reparar (crea las que falten). Lo recomendable es actualizar por Ajustes → Plugins (§2.3). |
| Versión | Fecha | Novedades |
|---|---|---|
| 1.7.4 | 01-oct-2026 | Los cambios que el módulo hace en el CRM se aplican al ACTIVARLO y se retiran al DESACTIVARLO (§2.3). Antes se aplicaban al instalar, aunque no activara el módulo, y borrar el módulo no los deshacía: un cliente que subía el paquete y no lo activaba —o que aplazaba la implantación— se encontraba el CRM cambiado sin haber activado nada. Ahora, instalar y no activar no cambia nada y desactivar devuelve el CRM a como estaba (las tablas y columnas propias sí se crean al instalar: son invisibles e inertes). Si va a aplazar la implantación, desactive el módulo y pause también la tarea del cron. Facturas a clientes de fuera de España (sin IVA): nuevo apartado §3.6. La factura imprime el motivo de la exención —«Exenta de IVA (art. 21 LIVA) · empresa ubicada en …», con el país tomado de la ficha del cliente—, como exige el art. 6.1.j) del Reglamento de facturación, y el registro se declara siempre como exportación exenta (ClaveRegimen 02 + OperacionExenta E2), esté o no marcada la casilla «Imponible» de la línea: hasta ahora, el importe de las líneas marcadas como imponibles salía como sujeta al 0 %, que no describe una exportación, y una factura que mezclara líneas imponibles y no imponibles dejaba un desglose incoherente (ahora va todo en un único detalle exento). Manual: nuevo apartado §4.6 (rectificar, anular o editar una factura anterior a la implantación, con el aviso de no enviarla por email desde el CRM) y corregida una frase del §4.5 sobre las facturas anteriores que no estaba sustentada en la normativa. Declaración responsable 1.7.4. Revisión del 1-oct-2026 (misma versión 1.7.4, los registros que se envían a la AEAT no cambian): al crear una factura nueva el módulo avisa si hay borradores cuyo número ya ha sido adelantado por otras facturas emitidas, con su número y su fecha, y sugiere terminar uno de ellos en vez de crear otra —así no se dejan saltos en la numeración—; es solo informativo, no bloquea nada (nuevo apartado §3.7). |
| 1.7.3 | 25-sep-2026 | El QR y la leyenda solo van en las facturas del sistema. Una factura emitida antes de implantar el módulo (sin registro: la AEAT no la conoce) ya no se reenvía con un QR que no valida ni con la leyenda del art. 6.5.b) — nuevo apartado §4.5—; los borradores siguen sin QR y las facturas con registro (también las pendientes o rechazadas) lo conservan. Limpieza de pruebas arreglada (§2.1): pedir borrar facturas sin fecha ahora avisa y no se queda en silencio; una factura de prueba cuyos registros ya se borraron se sigue reconociendo por las marcas de la propia factura y por el vínculo del abono con su factura principal (antes era imposible borrarla: la guarda la conservaba para siempre); las notas de crédito se borran con el periodo aunque no tengan marcas propias; y hay una casilla nueva «Incluir también las que no tienen ningún rastro del módulo» (desmarcada por defecto) para las que nunca pasaron por el módulo. Fechas: aviso al emitir y fecha de operación (nuevo apartado §3.5): al emitir una factura cuya fecha no es la de hoy (o es anterior a la del último registro de la empresa) el módulo avisa y pide confirmación, porque en VERI*FACTU la fecha de expedición tiene que ser la del sistema; y el formulario de la factura tiene un campo nuevo «Fecha de operación» para facturar hoy una operación de otro día (un servicio de septiembre facturado en octubre) sin tocar la fecha de la factura. Revisión del 28-sep-2026 (misma versión 1.7.3, los registros que se envían a la AEAT no cambian): el PDF de la factura imprime la fecha de operación cuando es distinta de la de expedición —«Fecha de operación: 30-09-2026 (factura expedida el 15-10-2026)», junto al QR—, porque el Reglamento de facturación obliga a que el documento la haga constar y no basta con que viaje en el registro; y el módulo se repara solo el esquema: si en una instalación actualizada copiando los ficheros (sin ejecutar el instalador del plugin) falta alguna de sus columnas, la crea al arrancar y lo anota en el registro del sistema. Antes, sin la columna vf_fecha_operacion, la fecha de operación no se guardaba en silencio. |
| 1.7.2 | 15-sep-2026 | Firma electrónica en el formato que exige la normativa. Cada registro (de facturación y de evento) se firma ahora en formato XAdES Enveloped (ETSI EN 319 132, el que pide el art. 14 de la Orden HAC/1177/2024 y detalla el documento de firma de la AEAT), calculada sobre el contenido del propio registro y con la política de firma de la Administración General del Estado; antes la firma se calculaba sobre un documento auxiliar que no incluía el registro, así que no acreditaba su contenido. Leyenda correcta en la factura: donde decía «Código QR VeriFactu» ahora aparece la frase que exige la norma («Factura verificable en la sede electrónica de la AEAT») cuando el sistema remite todos los registros. Exportación por periodo: nuevo apartado para descargar todos los registros de un periodo (y sus eventos) a un soporte externo, con un manifiesto y la huella y el resumen criptográfico de cada fichero (art. 8.2 de la Orden), documentada con su evento de exportación (art. 9.1). Los registros de evento declaran ya la versión real del módulo (declaraban la 1.5, un valor fijo que se quedó descolgado). Cron por línea de comandos: el módulo resuelve por sí mismo la contraseña del certificado, sin depender de ficheros auxiliares que solo se cargan al atender una petición web; antes, esa tarea por CLI no podía firmar ni registrar eventos. Corregido un error que impedía abrir la vista previa de una factura (devolvía un error 500) por la leyenda del QR. Novedad: en VeriFactu → Declaraciones hay un botón para abrir el informe técnico de cumplimiento normativo del producto. Declaración responsable 1.7.2. |
| 1.7 | 14-sep-2026 | Modo No VeriFactu: no se envía nada a la AEAT. Los registros y los eventos de esa etapa se generan, se firman, se encadenan y se conservan a disposición de la AEAT, pero no se remiten (ni siquiera si después se vuelve a VeriFactu); en Registros aparecen como «Conservado · No VeriFactu» y en Configuración se ve cuántos hay. Nuevo apartado §2.4 con esta modalidad. Inalterabilidad reforzada: ya no se pueden borrar líneas de una factura registrada (antes sí) y, si una factura con registro desaparece por otra vía, queda constancia (aviso en el log, evento de anomalía y aviso de «registro huérfano» en Configuración). Un registro que no se puede preparar ya no bloquea la cadena: se marca «Descartado · revisar» con su motivo, el encadenamiento continúa con el último registro válido y se puede reintentar desde Registros. La cola de envío filtra por empresa. Si el aviso de versión nueva no responde, el módulo prueba una segunda dirección de respaldo. Declaración responsable 1.7. |
| 1.6 | 13-sep-2026 | El abono se cuadra al emitirlo: se recalculan y guardan sus totales (subtotal, descuento, IVA e IRPF) con el IVA % de cada línea, para que el importe del CRM, el del PDF y el del QR coincidan con el registro enviado. Aviso de número ya enviado (rechazo 3000 por duplicado): el módulo anota los números que la AEAT acepta, avisa si se intenta enviar otra vez el mismo número y fecha, y los muestra en Configuración (§2.2). Aviso de versión nueva (§2.3): el módulo comprueba a diario si hay una versión publicada más reciente y lo muestra en Configuración y en la ventana «Actualizar» de Ajustes → Plugins, con enlace de descarga y SHA-256. Nuevos apartados del manual sobre la limpieza de datos de preproducción (§2.1). El histórico de declaraciones muestra la fecha real de cada declaración (la de su firma electrónica), quién la firmó y su SHA-256 (§5). La lista de Registros y la Consulta AEAT indican el tipo de cada registro (factura F1/F2, rectificativa R1/R4, anulación), no solo el evento. La versión del módulo se define en un único sitio (Config/Version), para que la caja de Configuración, el JSON enviado y la declaración responsable digan siempre lo mismo. Declaración responsable del productor actualizada a la 1.6 (viaja con el módulo, junto a las anteriores). |
| 1.5 | 12-sep-2026 | Abonos editables: el abono se crea en borrador, se ajustan sus líneas (precio, cantidad, descuento, añadir o quitar líneas) y se registra al emitirlo, como rectificativa R4 (abono total) o R1 (por diferencias). Un solo registro por operación (abono → rectificativa; cancelar una factura → anulación). El motivo que devuelve la AEAT se muestra bajo el estado en Registros. La limpieza de pruebas no borra facturas ajenas al módulo. Declaración responsable 1.5 firmada. |
| 1.0 | 07-sep-2026 | Primera versión: registro de facturas (alta, anulación y abonos), huella encadenada, firma electrónica, QR en el PDF, consulta a la AEAT, eventos del sistema, licencia por instalación y las medidas de seguridad S1–S5. |
Este registro se actualiza con cada versión del módulo. La versión del manual coincide con la del
software; la declaración responsable correspondiente a cada versión se publica en el histórico
del producto (VeriFactu → Declaraciones) una vez firmada por el productor, y el panel avisa si la
declaración publicada no cubre la versión instalada.
Documento generado por Input Creativity SL. Para soporte: clientes@inputcreativos.es · 652295585.