Verifactu on Odoo Community: the OCA module and alternatives

Last updated:

Yes, Odoo Community can comply with Spain's Verifactu through the open-source l10n_es_verifactu_oca module from the Odoo Community Association (OCA). It exists for Odoo 15, 16, 17 and 18; not yet for 19. It costs no licence, but it is under active development, has open issues and needs serious testing before you invoice in production. Here is what it does, what to check in the repository and when another route pays off.

Last reviewed: 2 November 2026. Legal dates in force: 1 January 2027 (corporate income tax payers) and 1 July 2027 (everyone else). The postponement to October 2028 was announced on 5 October 2026 and is pending publication; until it appears in the BOE the 2027 dates apply. See deadlines and penalties.

What the OCA module is

The OCA maintains the Spanish localization of Odoo in the OCA/l10n-spain repository. It includes l10n_es_verifactu_oca, published under AGPL-3, which creates invoicing records with a chained hash, adds the QR code and communicates with the Spanish tax agency (AEAT). It installs like any Odoo module and is also published on PyPI as odoo-addon-l10n-es-verifactu-oca.

To recap what Verifactu requires, start with the complete guide.

Which branches have it

Checked on 2 November 2026 against the repository manifests:

Branch Verifactu modules Manifest version
15.0 l10n_es_verifactu_oca 15.0.1.0.3
16.0 l10n_es_verifactu_oca, l10n_es_verifactu_oca_oss, l10n_es_verifactu_oca_operation_date, l10n_es_verifactu_pos_oca (POS), l10n_es_igic_verifactu_oca (IGIC, version 16.0.1.0.1) 16.0.1.3.6
17.0 l10n_es_verifactu_oca 17.0.1.4.5
18.0 l10n_es_verifactu_oca 18.0.1.5.4
19.0 Does not exist yet n/a

The OSS, operation-date, POS and IGIC variants exist only on 16.0. If you are on 17 or 18 and need POS or IGIC, do not assume an equivalent exists: ask your partner.

Real status: active development and open issues

It helps to be honest about what "active development" means. The manifests do not declare a maturity status (development_status). PyPI publishes the 16.0 version as beta; on the other branches the module is under active development. The repository also has open issues, for example sales journals not being flagged for Verifactu or how retries behave after communication errors. That does not invalidate it, but it means you should:

  • Test on a copy of your database, using the AEAT test environment, before touching production.
  • Read the open issues and make sure none affects your operations (POS, recurring invoicing, credit notes, multi-currency).
  • Pin module versions and update in a controlled way, not automatically.
  • Appoint someone to follow module and regulatory changes.

What to check in the repository before deciding

Before installing, spend half an hour on the OCA/l10n-spain repository. It is free and saves surprises.

  1. The right branch. It must match your Odoo version exactly (15.0, 16.0, 17.0 or 18.0). Do not mix branches.
  2. The manifest version. Write it down. It tells you what you are testing and what changed between tests.
  3. Open issues (the Issues tab). Filter for "verifactu" and read those mentioning your case: POS, credit notes, journals, retries, multi-currency.
  4. Latest merges (closed pull requests and recent commits). A module receiving regular fixes signals live maintenance. One with months of silence calls for more caution.
  5. Pending pull requests. If fixes affecting you are awaiting review, ask your partner whether they apply them.
  6. The module documentation (README and usage notes), which explains configuration and known limitations.

If any of this is unclear, that is a good sign to ask for professional help before starting, not after.

How to install and test it, conceptually

This is not a step-by-step technical guide, but the logical order of work:

  1. Test copy. Duplicate your database to a separate environment. Never test in production.
  2. Install the module from the right branch, plus its dependencies, following the repository instructions.
  3. Basic configuration: company tax data, mode (with or without submission), taxes and sales journals.
  4. Digital certificate loaded and valid; it is what signs communications.
  5. Connect to the AEAT test environment, not the real one, while testing.
  6. A battery of cases: simple invoices with different taxes, registrations, cancellations, credit notes, foreign customers, discounts, network errors and retries.
  7. Review the results: each invoice creates its record, responses are as expected and rejections are understood and corrected.
  8. Go live only when the team knows the procedure and someone owns the review of submissions.

For the test calendar and go-live details, see the checklist in the main guide.

What support you really need

A community module comes with no included support. Before deciding, clarify who covers each point:

Need Who should cover it
Installation and configuration Your Odoo partner or an in-house technician
Testing with the AEAT and edge cases Partner + accounting (who knows your invoices)
Fixing module bugs The community (issues) or your partner, who can propose fixes
Updates when Odoo or the rules change Partner, with a maintenance agreement
Attention on closings and critical days A support agreement with clear response times
Responsible declaration Must be clarified: who issues it in your case

If you have nobody for these points, "free" becomes expensive the first time something fails on a closing day.

What "free" really means

The licence is free; the rest is not. An honest budget includes:

Item Cost?
Module licence No (AGPL-3)
Installation and configuration Yes: technician hours
Digital certificate Yes, if you do not already have one
Testing with the AEAT environment and edge cases Yes: technician and accounting hours
Invoicing team training Yes: time
Maintenance and updates Yes: recurring
Support if something fails on a closing day Yes, or accepted risk

The free module can still be very good value, especially with a trusted partner. What does not exist is "Verifactu without work".

Alternatives if Community does not convince you

  1. Odoo Enterprise (official). The l10n_es_edi_verifactu and l10n_es_edi_verifactu_pos modules are available from version 17, maintained by the vendor, and in test mode by default until you change it. See the official Odoo documentation. Enterprise only.
  2. Paid third-party modules. Options exist in the Odoo app store, some with the technical name l10n_es_verifactu and an OPL-1 licence. They are not the official module. Evaluate who maintains them, for which version and what support they offer.
  3. Migrate. If you run an old version, or 19 Community where there is no OCA module yet, migrating or changing edition may be sensible. See Does your Odoo version work for Verifactu?.

When to choose each path

  • Stay on Community with OCA if you are on 15, 16, 17 or 18, have a technical team or partner able to test and maintain, and volume and complexity are manageable.
  • Move to Enterprise if you value official support, your version is 17 or later (or you can migrate) and you do not want to depend on a community module.
  • Migrate if your version is old (12 to 14, with no community or official route) or carries many customisations that are hard to sustain.

If you are in the Canary Islands, also read Verifactu in the Canary Islands with IGIC and Odoo.

Can we help?

uKodeIT installs, tests and maintains Verifactu solutions with either the OCA module or the official one, and tells you honestly which suits you. See the service page or contact us.

Frequently asked questions

Is there a free Verifactu module for Odoo Community?

Yes: l10n_es_verifactu_oca, from the Odoo Community Association, under the AGPL-3 licence. The licence is free, but implementation, testing, training and support cost time or money.

Is the OCA Verifactu module stable?

The manifests do not declare a maturity status. PyPI publishes the 16.0 branch version as beta, and on the other branches the module is under active development. It is usable, but you must test it on a copy and follow the repository's open issues.

Which Odoo versions have the OCA Verifactu module?

Odoo 15, 16, 17 and 18 (branches 15.0, 16.0, 17.0 and 18.0 of OCA/l10n-spain). It does not exist yet for 19.0 as of 2 November 2026. The IGIC (Canary Islands) variant exists only on 16.0.

Can I use Verifactu on Odoo Community without paying anything?

You can install the module without paying a licence, but you need a valid digital certificate, time to configure and test it, and someone to maintain it when Odoo or the rules change. The total cost is rarely zero.

When is it better to move to Odoo Enterprise?

When you want an official module backed by the vendor, you are on (or can move to) version 17 or later, and you prefer to reduce the risk of maintaining it yourself. Also if you are on Odoo 19 Community, where there is no OCA module yet.

What about the responsible declaration if I use the OCA module?

The responsible declaration (declaración responsable) belongs to the producer of the invoicing system. With a community module, clarify with your advisor and your implementer who takes that role in your case, and document it.