"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.

"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.

"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.

"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.

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
Checked in the module's source code (version 20.0) and the linked sources
Sources
- prewww2.aeat.es/static_files/common/internet/dep/aplicaciones/es/aeat/tikeV1.0/cont/ws/Sis
- www.agenciatributaria.es/static_files/AEAT_Desarrolladores/EEDD/IVA/VERI-FACTU/Veri-Factu_
- www.hacienda.gob.es/sgt/gabsehacienda/nota-informativa-verifactu.pdf
- sede.agenciatributaria.gob.es/Sede/iva/sistemas-informaticos-facturacion-verifactu/nota-in
- github.com/odoo/odoo/tree/19.0/addons/l10n_es_edi_verifactu
- Module source code: flexigo_spain_verifactu 20.0 (4dc42be4): models/verifactu_anulacion.py
- Module source code: flexigo_spain_verifactu 20.0 (4dc42be4): models/verifactu_cadena.py
- Module source code: flexigo_spain_verifactu 20.0 (4dc42be4): models/verifactu_evento.py
- Module source code: flexigo_spain_verifactu 20.0 (4dc42be4): views/menu_views.xml
- Module source code: flexigo_spain_verifactu 20.0 (4dc42be4): data/verifactu_crons.xml
- apps.odoo.com/apps/modules/20.0/flexigo_spain_verifactu
- Module source code: flexigo_spain_verifactu 20.0 (4dc42be4): models/verifactu_aeat_client.py
