Cet article est actuellement disponible en anglais uniquement. Traduction à venir.
VeriFactu requires invoicing software to create chained, tamper-proof records for every invoice and, in VERIFACTU mode, send them to Spain's tax agency. After Royal Decree-law 15/2025 it applies from 1 January 2027 for corporate-tax payers and 1 July 2027 for everyone else.
Short answer: VeriFactu is the Spanish Tax Agency (AEAT) regime that requires invoicing software to create a record for every invoice, chained to the previous one by a hash and impossible to alter or delete. After Royal Decree-law 15/2025 it is mandatory from 1 January 2027 for companies that pay Spanish corporate income tax and from 1 July 2027 for all other businesses and the self-employed. In Odoo 19 it is covered by the Spain - Veri*Factu module (l10n_es_edi_verifactu).
This guide is for companies in Spain that already invoice from Odoo, or are considering it, and need three answers: does it apply to us, what has to be configured, and what should we test before the deadline. A Spanish version of this guide is available for your finance team.
The dates, after the second postponement
The underlying regulation on invoicing-software requirements is Royal Decree 1007/2023, with the technical rules in Order HAC/1177/2024. The original dates were postponed twice. The latest change is Royal Decree-law 15/2025 of 2 December (Official State Gazette, 3 December 2025):
| Who | Mandatory from |
|---|---|
| Corporate income tax (Impuesto sobre Sociedades) payers | 1 January 2027 |
| All other businesses and professionals, including the self-employed | 1 July 2027 |
In practice, the Odoo version you run must have the module installed and tested before your date, not on the day.
Does it apply to me? VeriFactu, SII or TicketBAI
Not every Spanish company uses VeriFactu. Odoo's own documentation puts it this way: it is mandatory for most taxpayers except those already on another AEAT system or a regional (foral) regime.
| Your situation | Regime | Odoo module |
|---|---|---|
| Company in the common territory, not on SII | VeriFactu | l10n_es_edi_verifactu (+ _pos for Point of Sale) |
| Registered for SII (large companies, monthly VAT refund register, VAT groups, voluntary) | SII, not VeriFactu | l10n_es_edi_sii |
| Basque Country (Álava, Bizkaia, Gipuzkoa) | TicketBAI / Batuz | l10n_es_edi_tbai |
| Navarre | Its own foral regime | per the foral rules |
If you are not sure whether you are on SII, your tax adviser will know: SII registration is a declared obligation, never an implicit one.
Two modes: "VERI*FACTU" or "non-VERI*FACTU"
The regulation allows two ways to comply:
- VERI*FACTU mode. Every invoicing record is sent to the AEAT when the invoice is issued. The system is then treated as compliant by design and the invoice carries the "VERI*FACTU" legend.
- Non-VERI*FACTU mode. Records are kept in your own system, chained and electronically signed, and handed over when the AEAT asks for them.
Either way, the invoice must carry a QR code that lets the customer check it on the AEAT website. For a small or mid-sized company already on Odoo, VERI*FACTU mode is usually the easier one to run: there is no local event log to sign and safeguard.
What Odoo 19 does (and does not do)
According to Odoo 19's official Spain documentation, the Spain - Veri*Factu module:
- Is enabled in Accounting ▸ Configuration ▸ Settings (or Invoicing ▸ Configuration ▸ Settings), Veri*Factu section, Enable Veri*Factu.
- Needs at least one digital certificate (with its password), uploaded through Manage certificates.
- Starts in testing mode: data goes to the AEAT test servers until production mode is switched on. That is correct behaviour, but someone has to remember to switch it.
- When an invoice is confirmed and sent with Send & Print, creates the Veri*Factu document, tracks it with its status in the invoice's Veri*Factu tab, and adds the QR code to the PDF.
- In Point of Sale, the
l10n_es_edi_verifactu_posmodule creates the document when the order is paid.
What the module does not decide for you: which company in a group uses which regime (VeriFactu versus SII), which certificate to use, how corrective invoices are handled in your real process, and what to do with invoices issued by other systems (a web shop, a third-party till, a marketplace). Those are where problems usually appear.
Checklist before production
- Confirm the regime (table above) for every company in your Odoo database. A multi-company install can have more than one.
- Check the company tax details in Settings: country Spain and a correct NIF. Submission fails without them.
- Install the certificate (legal representative or company seal) and note its expiry date. An expired certificate stops invoicing.
- Test in testing mode with real cases from your business: standard invoice, invoice with several VAT rates, corrective invoice by difference, corrective invoice by substitution, simplified invoice (receipt) if you use Point of Sale.
- List every system that issues invoices. If a web shop, marketplace or external till issues invoices on its own, those systems must also comply, or the invoices must be issued from Odoo.
- Update Odoo to a release that includes the module and its fixes. On installs with custom modules, check first that the Send & Print flow is not overridden by a customisation.
- Switch to production only when every case above passes, and write down who watches for rejected records.
Penalties
Article 201 bis of Spain's General Tax Law penalises both producing non-compliant invoicing software and using a system that does not meet the requirements. For users the penalty is EUR 50,000 per financial year. The practical risk is less the fine than being unable to invoice on the day the obligation starts.
Next: mandatory B2B e-invoicing (the Crea y Crece law)
VeriFactu is not business-to-business e-invoicing. That obligation comes from Law 18/2022 (Crea y Crece) and is set out in Royal Decree 238/2026 of 25 March (Official State Gazette, 31 March 2026):
- Phase one: businesses with a turnover above EUR 8 million, 12 months after the ministerial order that sets up the public e-invoicing solution enters into force.
- Phase two: everyone else, 24 months after it.
- Accepted formats: UBL, CII, Facturae and EDIFACT, all conforming to EN 16931.
- The recipient must report the invoice status (accepted, rejected, paid) within four working days.
The clock starts from that ministerial order, not from the decree. Check the Official State Gazette for it before you set your own plan. Odoo already produces EN 16931 formats (UBL and Facturae), so the remaining work for this second obligation will be mostly about connection and status reporting, not formats.
Frequently Asked Questions
Is VeriFactu mandatory in 2026?
No. After Royal Decree-law 15/2025, it starts on 1 January 2027 for corporate-tax payers and 1 July 2027 for everyone else. You can adopt it earlier voluntarily.
If I report through SII, do I need VeriFactu?
No. Taxpayers who keep their VAT books through SII are outside VeriFactu. In Odoo they use the l10n_es_edi_sii module.
Does Odoo Community include VeriFactu?
The official l10n_es_edi_verifactu module is documented for Odoo 19. For earlier versions and for Community there are community (OCA) modules. Before choosing, check that the module you install is maintained for your exact version.
What about Point of Sale receipts?
The l10n_es_edi_verifactu_pos module creates a Veri*Factu record whenever an Odoo Point of Sale order is paid. If you use another vendor's till, that system has to comply on its own.
Does VeriFactu replace B2B e-invoicing?
No. They are separate obligations. VeriFactu regulates invoicing software; B2B e-invoicing (Royal Decree 238/2026) regulates the format and exchange between businesses. The same invoice can have to meet both.
How we can help
ECOSIRE implements and adapts Odoo. If you want your installation checked for VeriFactu readiness, the cases above tested in a staging database, or custom modules that interfere with submission fixed, talk to us through Odoo implementation or contact.
Sources (checked 25 September 2026): Royal Decree-law 15/2025 (BOE 3-12-2025); Royal Decree 1007/2023; Order HAC/1177/2024; Royal Decree 238/2026 (BOE-A-2026-7295); Law 58/2003 General Tax Law, art. 201 bis; Odoo 19 documentation — Spain.
Rédigé par
Muhammad Amir NazirFounder & CEO
Full-stack engineer and Odoo expert building enterprise-grade integrations, AI-powered business tools, and scalable SaaS platforms at ECOSIRE. Specializes in ERP architecture, marketplace automation, and digital transformation for mid-market enterprises.
ECOSIRE
Transformez votre entreprise avec Odoo ERP
Implémentation, personnalisation et assistance expertes d'Odoo pour rationaliser vos opérations.
Articles connexes
German E-Invoicing (E-Rechnung) in Odoo: XRechnung, ZUGFeRD and the 2025–2028 Deadlines
Receiving e-invoices is mandatory in Germany since 2025 and issuing follows in 2027/2028: accepted formats, how Odoo produces XRechnung and ZUGFeRD, and what to test.
Facturation électronique 2026 : ce qui change pour une entreprise sous Odoo
Réception obligatoire depuis le 1er septembre 2026, émission en 2027 pour les PME : calendrier officiel, plateformes agréées, Factur-X/UBL/CII et checklist Odoo.
Guide de mise à niveau d'Odoo 19 vers 20 : le processus officiel et les points à vérifier dans les modules personnalisés
Comment passer d'Odoo 19 (ou 17 et 18) à Odoo 20 : le processus officiel test puis production pour Odoo Online, Odoo.sh et sur site, et les changements de la 20.0 qui affectent les modules personnalisés.