Skip to main content
VeriFactu

VeriFactu: myths and facts for companies that invoice with Odoo

Some ideas about VeriFactu do not hold up: that an AEAT error voids the invoice, that a record can be deleted and redone, or that there is nothing to do until 2028. Here are the most common ones, checked against the AEAT documentation, the Ministry of Finance note and what the system does inside Odoo.

FlexigoTech · Editor in charge: Víctor Gómez · Updated 3 November 2026

Key facts

Module
VeriFactu
Versions
Odoo 17, 18, 19 and 20
Checked
in the module's source code, version 20.0 · against the sources linked at the end
Reading time
3 min

"If the AEAT returns an error, the invoice is void"

Fact: it depends on the error. The AEAT answers with a state per record: Correcto, AceptadoConErrores or Incorrecto. A record accepted with errors is registered, and you only have to correct what the code says. Resending it as new would be a mistake.

"The AEAT sets the fingerprint"

Fact: your system calculates the fingerprint when it creates the record: a SHA-256 chained to the previous record. The AEAT recalculates it to check it. If it does not match, the record is accepted with an error that has to be corrected.

State of the VeriFactu record chain in Odoo
The state of the record chain: each record linked to the previous one. Odoo screenshot with demo data.

"If I make a mistake, I delete the record and do it again"

Fact: no. Cancellation records cannot be modified or deleted, and neither can the event log. Odoo prevents it with clear messages: Cancellation records cannot be deleted. or Event log records are immutable. What gets corrected is corrected with a new record that leaves a trail.

"Switching invoicing programs breaks the chain"

Fact: only if done without order. The module has its own migration process, under Configuration › Migration Runs, and an import of historical records. While the migration runs, the chain is suspended and accepts no new records: Chain is suspended for migration. Cannot append new records.

VeriFactu billing records in Odoo
Billing records, one per invoice, with their submission state. Odoo screenshot with demo data; the AEAT answers are simulated.

"There is nothing to do until 2028"

Fact: the approved deadlines are still those of RDL 15/2025: before 1 January 2027 for companies filing Corporate Income Tax and before 1 July 2027 for everyone else. October 2028 is a forecast the Ministry of Finance announced on 5 October 2026. And the note itself says the technical guarantees will remain "in substantially equivalent terms".

"Odoo already has VeriFactu, I need nothing else"

Fact: Odoo includes its own module, l10n_es_edi_verifactu, in versions 17, 18, 19 and 20. For many companies it may be enough. The FlexigoTech module is a different system, with its own control tools: an integrity check every night, a clock drift check every hour and a console for advisory firms. Compare both against what you need to watch before choosing.

Responsible declarations recorded in Odoo
Responsible declarations, stored in the audit trail. Odoo screenshot with demo data.

"With an expired certificate I can keep sending"

Fact: no. Without a valid certificate the AEAT cannot identify the issuer, and Odoo stops the submission before it gets there: The certificate … of company … has expired. So it does not catch you by surprise, the module checks the certificate's expiry every day and warns you in time.

"The server clock does not matter"

Fact: every record carries a date and time, and the chain depends on their order. That is why the module checks the server's clock drift every hour and warns you if it slips. It is a silent fault worth catching before the AEAT does.

Real tour: records, submission queue, AEAT errors and catalogue in Odoo
Four real Odoo screens with demo data and simulated AEAT answers.

If after reading this you still have a specific doubt, look first at the error catalogue inside Odoo: many VeriFactu questions are answered by reading the exact code the AEAT returned.

When in doubt, look at the source: the AEAT publishes the fingerprint specification and the validations and errors document. The links are below.

Keep reading

VeriFactu errors in Odoo: how to read what the AEAT says and what your own system stops firstHow to read VeriFactu errors in Odoo 17, 18, 19 and 20: submission states, AEAT codes, certificate, NIF and record chain, and what to do in each case.VeriFactu: the 2027 deadlines, the 2028 forecast and what to do in Odoo meanwhileThe VeriFactu calendar as of November 2026: deadlines under RDL 15/2025, the Ministry's forecast of a delay to October 2028 and what to prepare in Odoo now.
Checked in the module's source code (version 20.0) and the linked sources

Sources