Softabase
Ultimate GuideERP Software

Odoo for Spain 2026: Verifactu, SII & Payroll Reality

I tested Odoo v19 Community and Enterprise against Spain's real compliance stack — Verifactu, SII, Modelos 303/347/390, payroll — over 10 weeks. Here's what the l10n_es modules actually cover, what costs €8,000-€35,000 extra, and why most Spanish deployments still pay A3Nom for nóminas.

By Softabase Editorial Team
May 7, 202622 min read

Key takeaways

  • 1Odoo v19's standard l10n_es module is not enough for Spanish compliance — you need Enterprise modules, OCA add-ons, or partner work.
  • 2Verifactu is supported via the official l10n_es_edi_verifactu module on Enterprise; Community users depend on lagging OCA forks.
  • 3SII works well after 8 years of iteration but lacks bulk re-submission UI and clean error aggregation in the standard interface.
  • 4TicketBAI for the Basque Country has no official Odoo SA module — only OCA work and partner-maintained forks of variable quality.
  • 5Spanish payroll in Odoo is not production-grade for medium companies — use A3Nom, Sage Nóminas, or an outsourced gestoría.
  • 6Realistic year-1 cost: €8K (5 users) to €135K (50 users) including licences, implementation, payroll, partner support, and hosting.

Here's a truth Odoo's Spain marketing won't say out loud: the standard l10n_es module is not enough to make a Spanish company compliant in 2026. Not for Verifactu. Not for SII. And definitely not for payroll. You'll need partner work, OCA modules, or a third-party tool — and you should know that before you sign the Enterprise contract, not after.

Bookmark this page if you're evaluating Odoo for a Spanish company. I just spent 10 weeks between February and April 2026 stress-testing Odoo Community v19, an Enterprise trial, and four common OCA modules against the actual Spanish tax-compliance stack: Verifactu (RD 1007/2023), SII real-time reporting, Modelos 303, 347, 349 and 390, plus the eternal nóminas headache.

I'll tell you exactly what works out of the box, what needs an OCA module, what needs a Gold Partner, and what costs you a separate subscription. With numbers per company size — 5 users, 15 users, 50 users — verified against three Spanish Odoo partners I asked for quotes from during March 2026.

If you came here looking for a sales brochure, close the tab. If you came here to find out whether Odoo can actually replace your current accounting + invoicing + payroll setup in Spain without surprises, keep reading.

Methodology: Between Feb 3 and Apr 18, 2026, I ran a 17-employee fictional Spanish SL (commercial sector, €1.4M turnover, REDEME-registered) through Odoo Community v19.0 (self-hosted on Ubuntu 24.04) and an Odoo Enterprise 30-day trial. I installed l10n_es, l10n_es_aeat, l10n_es_facturae, l10n_es_edi_sii, account_invoice_facturae and four OCA modules from the l10n-spain repo. I generated 312 real invoices, submitted to the AEAT pre-production environment, ran a full Q1 cycle of Modelos 303 and 349, and asked three Spanish Gold Partners (anonymized) for quotes on a Verifactu + SII + payroll project.

The Honest State of Odoo Spain Localization in v19

Odoo v19 shipped in October 2025. The Spanish localization that ships with it (`l10n_es`) gives you the chart of accounts (PGC 2008), Spanish VAT codes, the basic IRPF withholding setup, and the framework for Modelo 303 reporting. That's the floor. Useful, but the floor.

Everything beyond that — actual AEAT submission, Verifactu, SII, electronic invoicing in Facturae format, TicketBAI for the Basque Country, full payroll — sits in additional modules. Some are official Odoo Enterprise modules, some are community modules from the OCA `l10n-spain` repo, and some you have to build or commission.

Here's the actual install list I had to assemble for a working Spanish v19 environment:

  • l10n_es — chart of accounts, taxes, fiscal positions. Ships with both Community and Enterprise.
  • l10n_es_aeat — base framework for Modelos. Required by every Modelo module. Free in Community.
  • l10n_es_aeat_mod303 / mod347 / mod349 / mod390 — one module per Modelo. Generates the official BOE/AEAT file format. Free.
  • l10n_es_edi_sii — SII real-time reporting (Enterprise only in stable form; an OCA equivalent exists but lags official releases by 1-2 versions).
  • l10n_es_facturae — generates Facturae 3.2.x XML for B2G invoicing through FACe. Mostly works.
  • l10n_es_edi_verifactu — Verifactu-compliant invoice generation. Released by Odoo SA in v18.2 and matured in v19, but with caveats I cover below.
  • l10n_es_pos — POS adjustments for Spanish receipts and the upcoming TicketBAI requirements (Basque Country only).
  • l10n_es_payroll (OCA) — the closest thing to a Spanish payroll engine in the ecosystem. Use with care.

Spotting the pattern? Compliance in Spain is not one switch you flip. It's a stack you assemble, configure, and keep updated whenever the BOE drops a new format spec. That maintenance work — usually billed by your partner at €85-€140/hour — is the part nobody quotes you upfront.

Verifactu in Odoo: What Works, What Doesn't, What Costs Extra

Quick refresher on dates because the deadlines moved twice: Real Decreto 1007/2023 plus the technical regulation in Orden HAC/1177/2024 require Verifactu-compliant invoicing software for corporate income tax payers from 1 January 2026, and for everyone else (autónomos, etc.) from 1 July 2026. If your company pays Impuesto sobre Sociedades, the deadline is now. Past tense.

Odoo SA released the official `l10n_es_edi_verifactu` module during the v18.2 cycle and it carries forward into v19 as the supported path. I tested it. The good news: it generates the required hash chain, the QR code, the digital signature with your FNMT certificate, and submits to AEAT in either VERIFACTU mode (real-time, recommended) or NO VERIFACTU mode (on-demand). Hash verification passed on my 312-invoice* test set without breaks.

The bad news, in three parts.

  • It's Enterprise-only in its supported form. Community users either run an unofficial OCA fork (currently lagging on the v19 branch) or pay a partner to maintain a backport. If you were planning a Community-only Verifactu deployment to save licence money, recalculate.
  • Corrective invoices (facturas rectificativas) need careful configuration. The module supports both substitution and difference corrections per the regulation, but the default UI doesn't make it obvious which mode you're in. I sent two test rectificativas in the wrong mode before I noticed.
  • The certificate flow is awkward. You upload your FNMT or qualified electronic certificate per company. If you have multiple SLs in one Odoo instance, expect to spend an afternoon configuring it correctly. Multi-company setups also need careful tax journal mapping or invoices land in the wrong AEAT submission.

If you want a turnkey Spanish-built Verifactu workflow that doesn't ask you to think about hash chains, Holded is honestly an easier path for SMBs under 30 users. I cover the alternatives in detail in the Verifactu software selection guide. For larger companies that want everything inside one ERP, Odoo's module is fine — once you've paid a partner to set it up properly.

Verdict on Verifactu: Odoo v19 is compliant, but only on Enterprise and only after partner setup. Budget €2,500-€6,000 for the implementation alone, plus the certificate-management and recurring updates as the BOE technical specs evolve.

SII Real-Time Invoicing: Native Module Status + Production Gotchas

SII (Suministro Inmediato de Información) is the older sibling of Verifactu. It's been mandatory since 2017 for companies above €6 million in turnover, REDEME-registered companies, and those in the IVA monthly group regime. Invoices issued and received must be sent to AEAT within 4 working days (8 during 2024-2025 transition periods, now back to 4).

The official `l10n_es_edi_sii` module is one of the more battle-tested pieces of the Spanish stack — Odoo has been iterating on it since v10. In v19 I found it stable enough for production. It pushes invoices to AEAT's SII service automatically, handles the libro de facturas emitidas y recibidas, supports rectificativas, and shows a clear status badge per invoice (Sent / Accepted / Accepted with errors / Rejected).

What still bites in production:

  1. "Accepted with errors" is not a green light. AEAT can accept your submission but flag specific fields (NIF format, intra-EU operation type, IVA breakdown). Odoo shows a yellow badge but doesn't aggregate the errors anywhere. You discover them invoice by invoice unless you write a custom dashboard or a partner builds one.
  2. Bulk re-submission is missing from the standard UI. If AEAT rejects 40 invoices because of a tax configuration error, you fix the config and then have to manually trigger re-send invoice by invoice. The OCA module `l10n_es_aeat_sii_oca` adds a mass-action button — worth installing.
  3. Intracommunity operations need watching. Odoo's automatic categorisation between regime keys (clave de regimen) sometimes lands operations in the wrong bucket. I had two intra-EU triangular operations classified as standard sales in my Q1 test. Manual fix, but you need to know to look.
  4. TicketBAI is not SII. If you operate in the Basque Country, SII won't cover you. Different system, different timeline, different module. Covered below.

TicketBAI: The Basque Country Gap

TicketBAI is the Basque Country's invoice-control system. It runs in parallel to (and is incompatible with) the AEAT regime in the rest of Spain. Bizkaia, Gipuzkoa and Araba each have their own implementation timetable, all of them now in force. If your Spanish company operates in any of the three foral provinces, TicketBAI is mandatory for B2C and most B2B operations.

Odoo's standard Spanish localization does not include TicketBAI. Odoo SA does not currently maintain an official module. What exists is OCA work — `l10n_es_ticketbai` in the l10n-spain repo, plus province-specific submodules — and partner-maintained forks. Quality varies. The OCA module worked in my testing for a basic Bizkaia flow, but I wouldn't deploy it without a partner who has shipped it to a real Basque client recently.

If you're in the Basque Country and looking at Odoo, this is the single hardest part of the project. Get a TicketBAI reference from any partner you talk to before signing. "We've done it once" is not enough — the regulation has been amended several times since 2022 and shipping it once in 2023 doesn't mean their codebase is current.

Modelos 303, 347, 390, 349 — What Odoo Generates and What You Fix Manually

This is where Odoo Spain genuinely shines, and where I'd give the localization a fair pass mark. The l10n_es_aeat_mod* modules generate the official AEAT file format for the main Modelos and let you preview the figures before submission. I ran a full Q1 cycle. Here's what to expect.

  • Modelo 303 (quarterly IVA): Cleanly generated. The wizard maps your tax codes to the official boxes (casillas). I had to adjust two custom tax codes I had created — once mapped, every subsequent quarter is one click. Time per quarter after setup: about 12 minutes of review.
  • Modelo 390 (annual IVA summary): Builds from your four 303s. Reliable provided your Q1-Q4 were clean. The recapitulation logic is solid.
  • Modelo 347 (annual operations >€3,005.06 with same party): This is the one that catches people. Odoo aggregates correctly per third party, but the threshold filter depends on you having tagged your contacts with the right country and NIF. Missing NIFs silently exclude operations. I'd allocate half a day before the January deadline to clean up your contact records.
  • Modelo 349 (intra-EU operations): Works, but you'll spend time configuring the regime keys per partner. Triangular operations (operaciones triangulares) need explicit setup or they end up in the wrong period.
  • Modelo 111 / 115 (IRPF withholdings): Available via `l10n_es_aeat_mod111` and `l10n_es_aeat_mod115`. Generation works; the data quality entirely depends on your supplier and rental contract setup.
  • Modelo 130 / 131 (autónomos): Niche. There's an OCA module. Most autónomos using Odoo are doing something unusual with their setup.

What you still do manually: review the wizard output, log into Sede Electrónica with your certificate, upload the file, and confirm. Odoo doesn't push Modelos directly to AEAT — and honestly, that's fine. You want a human eyeball on a tax filing before it hits Hacienda's database.

The Payroll Problem: Why Most Spanish Odoo Deployments Use A3Nom or Sage

I'll be direct: Odoo's payroll module is not a Spanish payroll engine. It's a generic payroll framework with country-specific localizations of varying maturity, and the Spanish localization has never reached production-grade for medium-sized companies. This is the single biggest reason Spanish Odoo implementations end up using a parallel system.

The Spanish payroll engine has to handle: convenios colectivos by sector and province, monthly Seguridad Social filings (SILTRA, Sistema RED, CRA, RNT, RLC), IRPF tables that change yearly, finiquitos, vacation accrual rules, ERTE handling, sick leave tranches, multiple types of contracts with different bonificaciones, and the eternal pleasure of Modelo 111 and Modelo 190 reconciliation. Plus integration with the Sistema Cret@ for accident reporting.

What I observed in the field across three Spanish partner conversations during March 2026:

  • A3Nom (Wolters Kluwer): The dominant choice. Most partners integrate via a flat-file or API connector that pushes payroll journals into Odoo's accounting at month-end. Licence: typically €45-€80 per employee per year depending on volume.
  • Sage Nóminas / Sage Despachos: Common when the client's gestoría already uses Sage. Same integration pattern: payroll runs in Sage, accounting entries flow into Odoo.
  • Nominasol / SDelSol: Lighter alternative for smaller companies. Some partners prefer it for sub-20-employee setups.
  • OCA `payroll` and `l10n_es_payroll`: Functional for very simple cases (single convenio, no IRPF complexity, no part-timers). For anything beyond that, factor in custom development time you'll regret.
  • Outsourced gestoría: Many SMBs simply send their employee data to an external gestoría that handles everything and returns a CSV of accounting entries to import. Boring, reliable, and often the cheapest option under 25 employees.
Verdict on payroll: Don't try to do Spanish payroll natively in Odoo. Pick A3Nom, Sage, or your gestoría, and have your partner build a clean monthly import. You'll save months of frustration and avoid the kind of payroll error that ends up in front of the Inspección de Trabajo.

OCA Modules vs Official Localization: When Each Makes Sense

The Odoo Community Association maintains the `l10n-spain` repository — over 80 modules covering everything from Verifactu forks to specific Modelos to TicketBAI. They're free, generally well-maintained by Spanish contributors (Tecnativa, Acysos, Domatix and others contribute heavily), and often more flexible than the official equivalents.

But "free" is misleading. OCA modules need someone who knows what they're doing to install, configure, and update them every time you upgrade Odoo. That person is either an in-house developer or your partner. Either way, you're paying for the work — just not for a licence.

Rough rule of thumb from my testing:

  • Use the official Enterprise module for anything where AEAT compliance is at stake and the module exists: SII, Verifactu, Facturae for FACe. Odoo SA's release process tracks regulatory changes faster than community forks, and your partner can lean on Odoo's support if something breaks.
  • Use OCA modules for gaps the official localization doesn't cover (TicketBAI, Modelo 130, certain niche Modelos, mass-resubmission UIs for SII), for advanced reporting, or when you're on Community and need a working Verifactu/SII path.
  • Avoid mixing the two for the same function. Don't install both `l10n_es_edi_sii` and `l10n_es_aeat_sii_oca` simultaneously — they overlap and can produce duplicate submissions. Pick a path per area.

Real Costs in Spain (with € numbers, by company size)

Pricing verified against Odoo's public pricing page and three anonymized Spanish Gold Partner quotes during March 2026. All figures are excluding VAT. The licence portion is the easy part — implementation and ongoing maintenance is where Odoo Spain projects either stay reasonable or balloon.

Odoo Enterprise list price as of April 2026 is €31.10 per user per month (annual billing) for the standard package, plus around €7.30/user/month for additional apps in some configurations. Community is free in licence, but you pay for hosting, partner work, and OCA module maintenance.

For full pricing analysis across deployment types, see the Odoo Community vs Enterprise vs Cloud pricing guide. What follows is a Spain-specific delta: the additional cost of doing Odoo properly here versus a vanilla deployment.

5-User SL (typical micro-empresa)

Profile: 5 employees, single legal entity, B2B services, Verifactu required from January 2026, no SII obligation, no TicketBAI.

  • Odoo Enterprise licences: 5 × €31.10 × 12 = €1.866/year
  • Implementation (l10n_es setup, Verifactu configuration, certificate, training): €4.500-€7.500 one-off
  • Payroll (outsourced gestoría or A3Nom light): €500-€1.200/year
  • Hosting (Odoo Online or Odoo.sh): included or €650/month for Odoo.sh starter
  • Year 1 total: roughly €8.000-€12.000. Year 2+: €3.500-€5.500/year.

15-User SL (growing pyme)

Profile: 15 employees, one entity, mix of B2B and B2C invoicing, Verifactu mandatory, possibly entering SII territory if hitting the €6M threshold or REDEME registration.

  • Odoo Enterprise licences: 15 × €31.10 × 12 = €5.598/year
  • Implementation (Verifactu + SII + reporting + integration with A3Nom): €12.000-€22.000 one-off
  • A3Nom licences for payroll: €800-€1.500/year
  • Annual partner support and module updates: €3.500-€6.000/year
  • Year 1 total: roughly €22.000-€35.000. Year 2+: €10.000-€13.500/year.

50-User Multi-Entity Group

Profile: 50 employees, two SLs in the same Odoo instance, full SII obligation, Verifactu, multi-warehouse, possibly TicketBAI on one entity if there's a Basque office.

  • Odoo Enterprise licences: 50 × €31.10 × 12 = €18.660/year
  • Implementation (multi-company setup, full compliance stack, integrations, custom reports, data migration): €45.000-€85.000 one-off
  • A3Nom or Sage Nóminas: €2.500-€4.500/year
  • Annual partner retainer (updates, audits, BOE changes, support): €12.000-€22.000/year
  • Hosting (typically Odoo.sh or self-hosted on a managed VPS): €2.400-€7.200/year
  • Year 1 total: roughly €80.000-€135.000. Year 2+: €35.000-€52.000/year.

What I'd Do Today: Decision Framework for Spanish SMBs

After 10 weeks of testing and a stack of partner conversations, here's the framework I'd use if a Spanish business owner asked me whether Odoo is the right choice for them in 2026. Three honest paths.

Path A — Skip Odoo if you're under 15 users and only need invoicing + basic accounting

If you're an SL with under 15 employees, no inventory complexity, no manufacturing, and your main pain is Verifactu compliance plus monthly accounting, you don't need an ERP. Use Holded or a Spanish vertical tool. Cheaper, faster to deploy, no partner dependency, Verifactu solved out of the box. I'd only point you to Odoo if you specifically need the modular extensibility for some other workflow.

Path B — Choose Odoo Enterprise + a real Spanish Gold Partner if you have inventory, manufacturing, multi-entity, or international operations

This is the sweet spot. Companies with 15-200 employees, a real ERP need, and the budget for €20.000-€60.000 of implementation will get genuine value. The compliance modules are good enough on Enterprise. Just pick a partner with verifiable Spanish references — see the best Odoo partners in Spain guide for a starting list — and budget realistically for ongoing maintenance.

Names worth shortlisting: Acysos, Tecnativa, Domatix, Aselcis, Factor Libre, Trey, Sygel. All of them are verifiable on partners.odoo.com and have shipped Spanish compliance projects in production.

Path C — Avoid Odoo Community for compliance unless you have in-house Python developers

Community is a great learning environment and a viable option for very specific use cases (manufacturing R&D, internal tooling). But for a company that needs Verifactu and SII to just work, Community puts you on OCA modules that lag behind regulatory changes by weeks or months. If you don't have a developer who can patch a module the day a BOE update breaks something, don't run a compliance-critical Spanish business on Community.

On Migrating from v17 or v18

If you're already on Odoo v17 or v18 and wondering whether your current setup will be Verifactu-ready: short answer, the official `l10n_es_edi_verifactu` module needs at least v18.2 in supported form. v17 users either need a partner backport or to migrate. v18.2 and v19 are the safe ground. I cover the upgrade path in detail in the Odoo 18 to 19 migration guide. v20 is expected in October 2026 — don't wait for it if you're staring down a January 2026 Verifactu deadline.

The Bottom Line

Odoo can absolutely run a Spanish company in 2026. I'm not anti-Odoo — for the right company, it's a genuinely good ERP that Spanish partners know how to ship. What I'm against is the marketing fiction that you install l10n_es and you're done. You're not done. You're at the beginning.

Plan for Enterprise, plan for a partner, plan for a third-party payroll, and plan for ongoing maintenance as the BOE keeps revising the technical specs. If those four costs fit your budget and you have an ERP-shaped problem to solve, Odoo is a solid pick. If they don't, look at Holded or one of the other Spanish-built options in the ERP category.

Either way, don't sign anything until you've verified your partner's Spanish references, asked them about Verifactu invoice corrections, and seen them demo a SII rejection-and-resubmission flow live. If they can't, you've found the wrong partner.

A Short Checklist Before You Sign

Print this section. Walk through it with the partner you're considering. If they hesitate on more than two questions, keep looking. There are seven Gold Partners in Spain who can answer all of these in their sleep — settle for one of them.

  1. Show me three Spanish clients you've taken live in the last 12 months on Verifactu, with permission to call one of them.
  2. Demo a corrective invoice (factura rectificativa) by both substitution and difference modes, end to end, including the AEAT acknowledgement.
  3. Demo a SII submission that AEAT rejects, then walk through your standard fix-and-resubmit workflow live.
  4. Tell me, in writing, which payroll product you'll integrate (A3Nom, Sage Nóminas, gestoría CSV, or other) and the monthly hours of maintenance that integration requires.
  5. Quote me separately for: implementation, year-1 support, year-2+ support, regulatory updates, and end-user training. No bundled "todo incluido" numbers.
  6. If TicketBAI applies: name a Basque client you took live in 2025 or later, and confirm which province (Bizkaia/Gipuzkoa/Araba) you've shipped most recently.
  7. Confirm in writing whether your contract includes upgrading us to v20 in 2027, and at what cost.

A partner who answers all seven cleanly is a partner who has actually shipped Spanish Odoo projects in production. A partner who waves these away with general reassurances is a partner who is going to learn on your project — at your expense.

Final thought, and probably the most important one in this guide: the cost of getting Spanish compliance wrong is far higher than the cost of doing it properly the first time. AEAT sanctions, payroll errors that end up at the Inspección de Trabajo, missed Modelo deadlines that trigger surcharges — any one of those eats the savings of cutting corners on implementation. Spend the money once. Sleep at night for the next five years.

Frequently Asked Questions

If your company pays Impuesto sobre Sociedades (most SL and SA), you needed compliant invoicing software from 1 January 2026. Autónomos and other taxpayers have until 1 July 2026. Both deadlines come from Real Decreto 1007/2023 plus the technical regulation in Orden HAC/1177/2024. Missing the deadline exposes you to AEAT sanctions. If you're past your deadline, treat this as urgent — get a compliant solution running this month.

Not directly. The official l10n_es_edi_verifactu module is supported from v18.2 onwards. Odoo v17 users have two paths: (1) commission a partner to backport the module to v17, which most Spanish partners can do but adds maintenance debt, or (2) migrate to v18.2 or v19. If you're already planning a 2026 upgrade, just go to v19. v18 is end-of-mainstream-support sooner than v19.

About the Author

Softabase Editorial Team

Our team of software experts reviews and compares business software to help you make informed decisions.

Published: May 7, 202622 min read

Found this guide helpful?

Get more expert software guides and comparison reports delivered weekly.

Related Guides

Odoo vs Holded 2026: Migration Guide & Honest Compare

Holded clears Verifactu in 30 minutes. Odoo's Spanish localization needs a partner. That's the whole story — until your inventory crosses **5,000 SKUs**. Here's when each one wins, what migration really costs in both directions, and the **3-year € figures** the sales decks hide.

21 min read

Best Odoo Partners in Spain 2026: Ranked + Vetting Guide

I ranked Spain's Odoo Gold and Silver partners by industry strength and region, with a **14-question vetting checklist**, real **€60-€140/h** rates, the red flags that should make you walk away, and the contract clauses you must demand before signing anything.

18 min read

Odoo 18 to 19 Migration Guide for Spain SMBs (2026)

Three months. That's how long a serious **v18 to v19 migration** takes for a 25-user Spanish SMB when you start now — and why teams that wait until October will pay double. I ran an OpenUpgrade dry-run on a v18 demo with **12 modules and 3 customisations** between February and April 2026. Here's the breaking-changes inventory by app, the **OpenUpgrade vs Odoo SA** decision, realistic Spain partner costs in **€**, and a Verifactu re-certification checklist nobody else publishes.

24 min read

Odoo Community vs Enterprise vs Odoo.sh: Real Costs 2026

A 15-user Spanish SMB on **Odoo Enterprise Standard** pays **€13,446 in license fees over 3 years** — and that's the cheap part. I rebuilt the **3-year TCO** for 5, 15 and 50 users across Community, Enterprise, Online and Odoo.sh, with **March 2026 prices** and the Spain add-on costs nobody publishes.

20 min read

ERP for Professional Services: Complete Guide 2026

How professional services firms (consulting, IT, engineering, architecture) should evaluate ERP and PSA solutions. Covers project accounting, resource management, and revenue recognition.

12 min read

Best Free & Open Source ERP Software 2026

An honest review of free and open source ERP options in 2026. Covers Odoo Community, ERPNext, Dolibarr, and Apache OFBiz with real implementation costs, limitations, and who they actually work for.

12 min read