Errores de Veri*Factu en Odoo 19: mensaje exacto, causa y solución
Todos los mensajes de error del módulo Veri*Factu de Odoo 19 (facturas y TPV), en español y en inglés, con la condición que los dispara y cómo se arreglan.
Odoo 19 Error y solución · Nivel intermedio · Community y Enterprise
Respuesta corta
Los errores de Veri*Factu en Odoo 19 son de tres tipos. Los que genera el propio módulo antes de enviar (NIF de la empresa que no mide 9 caracteres, falta el certificado, factura sin cliente, impuestos mezclados, rectificativa sin motivo) aparecen en la pestaña Veri*Factu y en un aviso rojo; se corrigen en Odoo y se vuelve a enviar. Los de conexión (certificado SSL, acceso denegado, respuesta en HTML) casi siempre son del certificado. Y los de la AEAT llegan con un código entre corchetes: la factura queda «Rechazado» o «Registrado con errores».
- Módulos
l10n_es_edi_verifactul10n_es_edi_verifactu_pos- Dónde se hace
- Ajustes, EmpresasContabilidad, Configuración, Veri*Factu (España), CertificadosContabilidad, Configuración, Impuestos
- Otras versiones
- Los textos salen de los módulos de la rama 19.0. En Odoo 20 el módulo se ha reorganizado (por ejemplo, añade un estado «No válido» para documentos que no se pudieron generar), así que algunos mensajes pueden cambiar.
En esta página
Antes de empezar
- Veri*Factu configurado según el tutorial de configuración.
- Acceso a la factura o al pedido del TPV con el error, y a su pestaña
Veri*Factu.
Esta página recoge los mensajes que genera el módulo Veri*Factu de Odoo 19, copiados de su código fuente y de la traducción oficial al español. Busca tu mensaje con Ctrl+F: cada bloque dice qué lo dispara y qué hacer. Si tu base de datos está en inglés, el texto original también está.
Dos avisos antes de empezar:
- Los mensajes con «%s» o «%(…)s» llevan un dato variable (un NIF, un nombre de factura). En tu pantalla verás el dato real.
- Algunas traducciones oficiales están vacías o tienen erratas. Cuando la traducción al español está vacía, Odoo muestra el mensaje en inglés. Lo indicamos en cada caso.
Índice de mensajes
| Mensaje (tal como sale en español) | Tipo | Ir a |
|---|---|---|
El NIF … de la empresa no tiene exactamente 9 caracteres. | Configuración | NIF |
No hay un certificado configurado para Veri*Factu en la compañía. | Configuración | Certificado |
No se pudo validar el certificado SSL. | Conexión | SSL |
No se pudo enviar el documento. El acceso fue rech debido a un problema con el certificado. | Conexión | Acceso denegado |
La respuesta del servidor no tenía el formato correcto (HTML en lugar de XML)… | Conexión | Respuesta HTML |
Es necesario establecer un contacto en las facturas no simplificadas. | Datos de la factura | Sin cliente |
No se han establecido impuestos en la factura. | Datos de la factura | Sin impuestos |
Solo se permite un único impuesto "principal" por línea. | Datos de la factura | Impuesto principal |
Solo se permite una única aplicabilidad fiscal de Veri*Factu (Impuesto) por documento… | Datos de la factura | Aplicabilidad |
La clave del régimen de Veri*Factu no es compatible con la aplicabilidad fiscal de Veri*Factu. | Datos de la factura | Clave de régimen |
Solo se puede aplicar un único recargo por cada impuesto "principal". | Datos de la factura | Recargo |
Los importes no sujetos a IVA deben ser igual a 0. | Datos de la factura | No sujeto |
Un impuesto con el valor '…' como … no es compatible. | Datos de la factura | Tipo no admitido |
El nombre del registro debe tener entre 1 y 60 caracteres… | Datos de la factura | Nombre largo |
Falta la fecha de facturación. | Datos de la factura | Fecha |
No se ha especificado el motivo del reembolso. | Rectificativas | Motivo |
Un reembolso con el motivo de reembolso … no está simplificado (se necesita un contacto) | Rectificativas | Motivo y simplificada |
No existe un documento Veri*Factu para el registro reembolsado. | Rectificativas | Original sin registro |
El registro ya está registrado en el sistema Veri*Factu. | Estado | Ya registrado |
Ya estamos esperando para enviar un registro de Veri*Factu a la AEAT. | Estado | En cola |
El registro cancelado no está registrado en Veri*Factu (dentro de Odoo). | Estado | Cancelación |
El pedido debe ser facturado, ya que su importe total supera los … €. | TPV | Límite TPV |
[código] descripción en un aviso rojo o amarillo | AEAT | Errores de la AEAT |
Antes de nada: la factura está confirmada pero no tiene registro
No es un mensaje de error, pero es el problema más frecuente. En Odoo 19 el documento Veri*Factu se genera cuando pulsas Enviar en la factura con la casilla Veri*Factu marcada, no al pulsar Confirmar. Una factura confirmada y descargada por otro camino se queda sin registro y sin QR.
Cómo detectarlo: en la lista de facturas, activa la columna opcional Estado de Veri*Factu. Las facturas confirmadas con la columna vacía y sin aviso de «pendiente» no se han enviado.
Solución: abre cada una y pulsa Enviar con la casilla Veri*Factu marcada.
Errores de configuración
El NIF … de la empresa no tiene exactamente 9 caracteres.
- En inglés:
The NIF '%(company_NIF)s' of the company is not exactly 9 characters long. - Cuándo sale: al generar el documento y otra vez justo antes de enviar el lote. Odoo toma el NIF de la ficha de tu empresa, le quita el prefijo
ESsi lo tiene y comprueba que quedan 9 caracteres exactos. - Solución: en Ajustes, Empresas, escribe el NIF sin espacios, guiones ni puntos:
ESB12345678oB12345678.
No hay un certificado configurado para Veri*Factu en la compañía.
- En inglés:
There is no certificate configured for Veri*Factu on the company. - Cuándo sale: Odoo busca un certificado de la empresa con alcance
Veri*Factuy no encuentra ninguno. - Solución: en Contabilidad, Configuración, Veri*Factu (España), Certificados, sube el certificado y comprueba que el
Alcance del certificadoesVeri*Factu. Un certificado subido con alcance SII o general no vale. Detalle en el paso 4 del tutorial.
No se pudo validar el certificado SSL.
- En inglés:
The SSL certificate could not be validated. - Cuándo sale: la conexión segura con el servidor de la AEAT falla al enviar.
- Solución: revisa que el certificado no esté caducado (la ficha del certificado muestra sus fechas) y que sea el certificado completo con su clave privada. Si el certificado es correcto, el problema puede ser de red de tu servidor; el documento sigue en cola y se reintenta.
No se pudo enviar el documento. El acceso fue rech debido a un problema con el certificado.
- En inglés:
The document could not be sent; the access was denied due to a problem with the certificate. - La traducción oficial de Odoo 19 tiene esa errata («rech»); búscala tal cual.
- Cuándo sale: la AEAT responde «No autorizado. Se ha producido un error al verificar el certificado presentado».
- Solución: el certificado no es válido para la AEAT o no corresponde al NIF de la empresa. Comprueba titular y caducidad, y súbelo de nuevo.
La respuesta del servidor no tenía el formato correcto (HTML en lugar de XML). Es muy probable que sea un problema con el certificado.
- En inglés:
The response of the server had the wrong format (HTML instead of XML). It is most likely a problem with the certificate. - Cuándo sale: la AEAT devuelve una página web en lugar de una respuesta del servicio. El propio módulo lo atribuye al certificado.
- Solución: la misma que en el error anterior.
Otros mensajes de conexión
| Español | Inglés | Qué significa |
|---|---|---|
Error de red: %s | Networking error: %s | No se pudo conectar con la AEAT. |
Se ha agotado el tiempo de espera para recibir la respuesta del servidor: … | Timeout while waiting for the response from the server: … | La AEAT no respondió a tiempo. |
Error al enviar el documento por lote: … | Error while sending the batch document: … | Error técnico al procesar la respuesta. |
Errores en los datos de la factura
Estos errores se detectan antes de enviar. Odoo crea el documento con el error, muestra un aviso rojo en la factura y, desde la ventana de envío, el mensaje No se pudo crear el documento Veri*Factu para todas las facturas. con la indicación Consulte la pestaña Veri*Factu para obtener más información.
Es necesario establecer un contacto en las facturas no simplificadas.
- En inglés:
A non-simplified invoice needs a partner. - Cuándo sale: una factura (no rectificativa) sin cliente que Odoo no ha marcado como simplificada.
- Solución: pon el cliente con su NIF. Si de verdad es una factura simplificada, repasa cuándo la marca Odoo como tal.
No se han establecido impuestos en la factura.
- En inglés:
There are no taxes set on the invoice - Cuándo sale: ninguna línea lleva un impuesto que cuente para Veri*Factu.
- Solución: añade el impuesto que corresponda a cada línea. Una operación exenta también lleva impuesto: el de tipo exento con su motivo.
Solo se permite un único impuesto “principal” por línea.
- En inglés:
We only allow a single "main" tax per line. - Cuándo sale: una línea lleva dos impuestos «principales» (por ejemplo, IVA 21 % e IVA 10 % a la vez, o un sujeto y un exento).
- Solución: deja un solo impuesto de IVA por línea. Retenciones y recargo de equivalencia no cuentan como principales y pueden acompañarlo.
Solo se permite una única aplicabilidad fiscal de Veri*Factu (Impuesto) por documento: …
- En inglés:
We only allow a single Veri*Factu Tax Applicability (Impuesto) per document: %(applicabilities)s. - Cuándo sale: la factura mezcla impuestos de distinta naturaleza: IVA con IGIC o IPSI, o IVA con un impuesto al que Odoo asigna «Otros».
- Solución: separa en facturas distintas. Si la mezcla viene de un impuesto que creaste a mano, mira el punto siguiente.
Nota
Impuestos creados a mano. Cada impuesto tiene un campo
Aplicabilidad (España)(en inglésApplicability (Spain)) con los valores IVA, IPSI o IGIC. Al instalar el módulo, Odoo lo rellena en los impuestos del plan contable español. En un impuesto que hayas creado tú puede estar vacío, y entonces Odoo lo trata como «Otros». El campo solo se ve con el modo de desarrollador activado, en la ficha del impuesto (Contabilidad, Configuración, Impuestos).
La clave del régimen de VeriFactu no es compatible con la aplicabilidad fiscal de VeriFactu.
- En inglés:
The Veri*Factu Regime Key is not compatible with the Veri*Factu Tax Applicability. - Cuándo sale: en la pestaña Veri*Factu de la factura hay una
Clave del régimen de Veri*Factuque solo vale para IVA y la factura es de IGIC, o al revés. - Solución: con la factura en borrador, elige en la pestaña Veri*Factu una clave de la lista que ofrece Odoo; la lista ya se filtra según los impuestos de la factura.
Mensaje relacionado: Falta la clave del régimen de Veri*Factu (ClaveRegimen). (Missing Veri*Factu Regime Key (ClaveRegimen).). Sale cuando la factura es de IVA o IGIC y el campo está vacío. Odoo lo propone solo a partir de los impuestos y del Régimen especial en el IVA de los ajustes; si lo borraste, vuelve a elegirlo. Su pariente Falta la aplicabilidad fiscal de Veri*Factu (Impuesto) es raro en la práctica, porque Odoo usa «Otros» cuando no encuentra otra.
Solo se puede aplicar un único recargo por cada impuesto “principal”.
- En inglés:
Only a single recargo tax may be used per "main" tax. - Cuándo sale: una línea lleva dos impuestos de recargo de equivalencia junto al mismo IVA.
- Solución: deja un solo recargo por línea, el que corresponde al tipo de IVA.
Los importes no sujetos a IVA deben ser igual a 0.
- En inglés:
No Sujeto VAT taxes must have 0 amount. - Cuándo sale: un impuesto marcado como
No Sujetoen suTipo de impuesto (España)tiene un porcentaje o una cuota distinta de cero. - Solución: un impuesto no sujeto debe ser del 0 %. Revisa su configuración en Contabilidad, Configuración, Impuestos.
Un impuesto con el valor ’…’ como … no es compatible.
- En inglés:
A tax with value '%(tax_type)s' as %(field)s is not supported. - Cuándo sale: la factura de venta lleva un impuesto cuyo
Tipo de impuesto (España)es de compras:No DeducibleoDUA. - Solución: has puesto un impuesto de compras en una factura de venta. Cámbialo por el de venta equivalente.
El nombre del registro debe tener entre 1 y 60 caracteres: …
- En inglés:
The name of the record is not between 1 and 60 characters long: %(name)s. - Cuándo sale: el número de la factura está vacío o supera 60 caracteres.
- Solución: acorta el prefijo de la secuencia del diario de ventas.
Falta la fecha de facturación.
- En inglés:
The invoice date is missing. - Solución: rellena la fecha de factura. Si la factura está confirmada y el documento dio error, vuelve a borrador (se puede, porque no llegó a registrarse), pon la fecha y confirma.
Se debe publicar el asiento contable.
- En inglés:
The journal entry has to be posted. - Cuándo sale: intentas generar el registro de una factura en borrador.
- Solución: pulsa
Confirmary despuésEnviar.
Errores al corregir facturas
No se ha especificado el motivo del reembolso.
- En inglés:
The refund reason is not specified. - Cuándo sale: una factura rectificativa (o una factura de sustitución) sin
Motivo de reembolso de Veri*Factu. - Solución: con la rectificativa en borrador, elige el motivo en la pestaña Veri*Factu: R1 a R4 para facturas completas, R5 para rectificar simplificadas. Al crear la rectificativa desde la factura, Odoo ya propone R4 o R5.
Un reembolso con el motivo de reembolso … no está simplificado (se necesita un contacto)
- En inglés:
A refund with Refund Reason %(refund_reason)s is not simplified (it needs a partner). - Cuándo sale: la rectificativa es simplificada (sin cliente identificado) y el motivo no es R5. Solo R5 admite rectificativas simplificadas.
- Solución: si rectificas una simplificada, usa R5. Si necesitas otro motivo, identifica al cliente con su NIF.
No existe un documento Veri*Factu para el registro reembolsado.
- En inglés:
There is no Veri*Factu document for the refunded record. - Cuándo sale: rectificas una factura que nunca se envió a Veri*Factu. Odoo te ofrece el botón
Ir al asiento contablepara abrir la original. - Solución: envía primero la factura original con
Enviary después la rectificativa.
Variantes para la rectificativa por sustitución (la que sale de Revertir y crear factura):
No existe un documento Veri*Factu para el registro sustituido.(There is no Veri*Factu document for the substituted record.): la factura original no tiene registro.No existe un documento Veri*Factu para la reversión del registro sustituido.(There is no Veri*Factu document for the reversal of the substituted record.): el abono que anula la original no se ha enviado. Envíalo antes que la factura nueva.
Errores de estado
El registro ya está registrado en el sistema Veri*Factu.
- En inglés:
The record is Veri*Factu registered already. - Cuándo sale: vuelves a enviar una factura aceptada o registrada con errores. Odoo 19 no reenvía registros ya registrados.
- En la ventana de envío verás además:
Las siguientes entradas serán omitidas. Ya están registradas en la AEAT: … - Solución: no hace falta reenviar. Para cambiar algo, emite una rectificativa.
Ya estamos esperando para enviar un registro de Veri*Factu a la AEAT.
- En inglés:
We are waiting to send a Veri*Factu record to the AEAT already. - Cuándo sale: la factura ya tiene un documento en cola. La AEAT exige esperar entre envíos (el código lo documenta como «normalmente 60 segundos») y Odoo lo mandará en cuanto pueda.
- Solución: espera. Encima de la factura verás
Un documento Veri*Factu está pendiente de ser enviado lo antes posible.
El registro cancelado no está registrado en Veri*Factu (dentro de Odoo).
- En inglés:
The cancelled record is not Veri*Factu registered (inside Odoo). - Cuándo sale: pides la cancelación de un registro que no está aceptado ni registrado con errores en Odoo. Odoo 19 no cancela registros que no ha enviado él.
- Solución: solo se puede usar
Solicitar cancelación de Veri*Factuen facturas aceptadas o registradas con errores.
No aparece el botón «Restablecer a borrador»
Odoo lo oculta cuando la factura está aceptada, registrada con errores o cancelada, o cuando tiene un documento en cola. Es intencionado. Si la factura está Rechazado, el botón sí aparece: puedes corregirla y volver a enviarla. Al pasarla a borrador, Odoo te avisa con Está modificando un asiento contable para el cual ya se ha enviado un documento Veri*Factu a la AEAT.
No se pueden eliminar los documentos VeriFactu que forman parte de la cadena de documentos VeriFactu.
- En inglés:
You cannot delete Veri*Factu Documents that are part of the chain of all Veri*Factu Documents. - Por qué: cada documento lleva la huella del anterior. Borrar uno rompería la cadena, así que Odoo lo impide incluso con los rechazados.
Errores en el TPV
El pedido debe ser facturado, ya que su importe total supera los … €.
- En inglés:
The order needs to be invoiced since its total amount is above %s€. - Cuándo sale: el pedido supera el límite de factura simplificada de la empresa (400 € por defecto) y no está marcado para facturar.
- Solución: marca el pedido para facturar e identifica al cliente. Si por tu actividad puedes emitir simplificadas hasta 3.000 €, cambia el límite.
Debe especificar un motivo de reembolso.
- En inglés:
You have to specify a refund reason. - Solución: en la devolución, elige el
Motivo de reembolso de Veri*Factu.
Se debe especificar un contacto para el motivo de reembolso de Veri*Factu seleccionado.
- En inglés:
A partner has to be specified for the selected Veri*Factu Refund Reason. - Cuándo sale: devolución sin cliente con un motivo distinto de R5.
- Solución: usa R5 o asigna el cliente.
No se puede facturar el pedido. Ya está pendiente el envío de un registro de Veri*Factu a la AEAT.
- En inglés:
The order can not be invoiced. It is waiting to send a Veri*Factu record to the AEAT already. - Solución: espera a que se envíe el registro del pedido y factúralo después.
Mensajes del TPV sin traducción oficial (salen en inglés)
| Mensaje | Qué significa |
|---|---|
With Veri*Factu enabled, POS orders cannot be consolidated into one invoice. | Con Veri*Factu activo no puedes agrupar varios pedidos en una factura. Factura cada pedido por separado. |
Veri*Factu documents can only be generated for paid, posted or invoiced Point of Sale Orders. | El pedido aún no está pagado. |
Veri*Factu documents can only be generated for invoiced Point of Sale Orders for cancellation purpose. | Un pedido ya facturado solo admite un registro de cancelación; el registro válido es el de su factura. |
Errores que devuelve la AEAT
Cuando el documento llega a la AEAT y esta lo rechaza o lo acepta con reparos, Odoo muestra el aviso con el título El documento Veri*Factu contiene los siguientes errores según la AEAT. y, debajo, el código y la descripción que envía la AEAT, con el formato [código] descripción.
- Estado
Rechazadoy aviso rojo: la AEAT no lo ha aceptado. Corrige y vuelve a enviar. - Estado
Registrado con erroresy aviso amarillo: la AEAT lo registró pero señala un problema. Decide con tu asesor si hace falta rectificar.
La lista de códigos es de la AEAT y no la reproducimos aquí. Sí hay uno que el propio código de Odoo menciona: [3000] Registro de facturación duplicado. Odoo 19 no permite volver a enviar el mismo registro después de una cancelación precisamente para no provocarlo.
Resultado
Con esta página deberías poder identificar cualquier aviso de Veri*Factu de Odoo 19 y saber si lo arreglas en la configuración, en la factura o si viene de la AEAT. Para no llegar aquí, revisa cada semana la lista de facturas agrupada por Estado de Veri*Factu y el tutorial de configuración.
Preguntas frecuentes
¿Dónde veo el error de Veri*Factu de una factura?
En el aviso de color que Odoo muestra encima de la factura (rojo si hay error, amarillo si la AEAT la registró con errores) y en la pestaña Veri*Factu, abriendo el último documento de la lista.
¿Puedo borrar un documento Veri*Factu rechazado para empezar de cero?
No. Odoo 19 no deja eliminar documentos que forman parte de la cadena, aunque la AEAT los haya rechazado. Corrige la causa y vuelve a enviar la factura; se crea un documento nuevo.
¿Por qué no puedo volver a borrador una factura?
Porque tiene un registro aceptado, registrado con errores o cancelado en la AEAT, o porque hay uno pendiente de envío. Odoo oculta el botón en esos casos. Una factura rechazada sí puede volver a borrador.
Fuentes
- Código fuente de l10n_es_edi_verifactu, modelo del documento Veri*Factu (rama 19.0)github.com
- Código fuente de l10n_es_edi_verifactu, facturas (rama 19.0)github.com
- Traducción oficial al español del módulo l10n_es_edi_verifactu (es.po, rama 19.0)github.com
- Código fuente de l10n_es_edi_verifactu_pos, pedidos del TPV (rama 19.0)github.com
- Documentación de Odoo 19 — Localización fiscal de España, sección Veri*Factuodoo.com