Guide · Licensing
Odoo Enterprise licensing and pricing in Mexico: plans, users and what the subscription includes
- Author
- Antony Alvez, CEO
- Published
- Updated
- Version
- Odoo 20
In short
Odoo Enterprise is billed per user per month: its public price list, viewed from Mexico on October 17, 2026, shows Mex$ 228 for the Standard plan and Mex$ 410 for the Custom plan with yearly billing, before taxes, with a discount for the first 12 months. Standard runs only on Odoo Online; Custom adds Odoo.sh, on-premise, Studio, multiple companies and the external API, and it is the plan that allows custom modules. The contract counts as a User every active account that is not a Light User, and does not count deactivated or portal accounts; a Light User (an account designated as such, or an active employee without an internal account) is billed separately, at its own price. Implementation, Odoo.sh hosting and AI credits are paid separately.
How Odoo Enterprise is billed
Odoo Enterprise is a subscription: a price per user per month within a plan, for a term set when you sign. The contract that governs it, the Odoo Enterprise Subscription Agreement, is at version 13, dated September 24, 2026, and it computes charges from three figures: the number of Users, the number of Light Users and the Subscription Plan. The term renews automatically for an equal period unless either party gives written notice at least 30 days before it ends. Odoo publishes the contract in its documentation, in English and in Spanish.
This guide explains where each of those three figures comes from, using Odoo’s public price list as the price reference. The prices are the ones the page showed on October 17, 2026, viewed from Mexico, where even the English page lists them in Mexican pesos (Mex$). Odoo publishes and changes them on that page, so the figure that applies when you sign is whatever appears there that day, or in Odoo’s quote.
- Subscription
- The contract by which Odoo grants the Enterprise license and its services for a term, in exchange for a per-user charge.
- Subscription Plan
- The set of apps, features and hosting options the subscription covers; Odoo publishes three: One App Free, Standard and Custom.
- User
- In the contract, any active account in Odoo that is not a Light User.
- Light User
- An active account designated as such in Odoo, or an active employee record with no internal account linked to it; it carries its own price.
- Portal user
- An external person or system that only accesses Odoo through the portal to view their documents, and is not counted as a User.
- External API
- A system outside Odoo that initiates calls to Odoo’s API to read or update data.
The plans and their list price in Mexico
The pricing page offers three plans and a toggle between yearly and monthly billing. Viewed from Mexico, it shows prices in pesos, per user per month and before taxes, which are computed at checkout. Each paid plan carries two figures: the list price and a lower one with an asterisk, which the page explains as “The discount is valid for 12 months, for initial users ordered.”
| Plan | Per user per month, yearly billing | Per user per month, monthly billing | Hosting | What it includes |
|---|---|---|---|---|
| One App Free | Mex$ 0 | Mex$ 0 | Odoo Online | A single app, with unlimited users |
| Standard | Mex$ 228; Mex$ 180 for the first 12 months | Mex$ 285; Mex$ 225 for the first 12 months | Odoo Online | All apps |
| Custom | Mex$ 410; Mex$ 330 for the first 12 months | Mex$ 510; Mex$ 410 for the first 12 months | Odoo Online, Odoo.sh at extra cost, or on-premise with yearly billing | All apps, Studio, agentic AI, multiple companies and the external API |
The same page lists the Light User at Mex$ 70, and says that license is obtained through a meeting with an Odoo expert, who provides a quote based on the company’s needs.
The figures read better with the math done. Monthly billing costs more than yearly at list price: on Standard, 285 ÷ 228 = 1.25, or 25% more per user; on Custom, 510 ÷ 410 = 1.24. The first-year discount is 48 pesos per user on yearly Standard, 228 − 180, which is 21% of 228; on yearly Custom it is 80 pesos, 410 − 330, close to 20%.
Standard or Custom
Both paid plans include every app at the same per-user price, so what separates them is not the modules but what you can do with them. The first cut is hosting. The pricing page says Standard is hosted on Odoo Online, Odoo’s cloud infrastructure for databases without custom modules. With Custom, the same page lets you stay on Odoo Online at no extra cost, download Odoo Enterprise and host it yourself, or host on Odoo.sh, the platform that lets you develop or use custom modules.
That is why an implementation that will carry a single custom module, your own or one from the Odoo Apps Store, needs the Custom plan; how the three hosting options differ is covered in the guide to Odoo Online, Odoo.sh or on-premise. Odoo sums up the rest of the difference this way: Custom is for companies that manage several companies in one database and that customize Odoo with Studio, with custom developments or through the API.
The table matches each need with the plan that allows it. In three cases you don’t request the plan change: the database triggers it when the feature is installed.
| Need | Standard plan | Custom plan |
|---|---|---|
| Custom modules or Apps Store modules | No: it runs on Odoo Online, which does not host databases with custom modules | Yes, on Odoo.sh or on-premise |
| Several companies in one database | No: adding companies moves the database to Custom | Yes |
| Studio | No: installing it moves the database to Custom | Yes |
| Odoo’s AI app | No: the documentation warns that installing it triggers the move to Custom | Yes, as “agentic AI” |
| An external system calling Odoo’s API | No | Yes |
| Odoo calling external services: online payments, carriers, VoIP, bank synchronization | Yes | Yes |
The last row is the one most often misread. The page clarifies that the external API means outside software —a legacy system, a reporting engine— that initiates calls to Odoo’s API, over JSON-RPC or XML-RPC, to read or update data. When Odoo initiates the call, as when it charges through a payment provider or creates a shipping label with a carrier, it does not count as an external API and fits the Standard plan.
How Odoo counts a user
A per-user price only helps if you know what a user is, and the definition that binds is the contract’s, not a brochure’s. Version 13 of the agreement says:
“Any user account indicated as active in the Software, that is not a Light User. Deactivated user accounts and accounts used by external people (or systems) who only have limited access to the Software through the portal facilities (known as “portal Users”) are not counted as Users.”
That definition rests on a new figure. The same contract defines the Light User, “where supported by the Customer’s version of the Software”, as an active account designated as such in Odoo, or an active employee record from the human resources app that is not linked to an active non-portal user account. In version 20 that figure exists in the product: the 20.0 code adds a role to every user with three values —light, user and administrator— which the 19.0 code does not have. According to the pricing page, a Light User can work as a user in the self-service areas —their own time off, expenses, appraisals, attendances, referrals and planning—, Field Service, the Inventory barcode operator and read-only Knowledge, and as an employee to get payslips, use Point of Sale and use the Manufacturing shop floor.
Putting the two definitions together with the account types the documentation describes —internal, portal and public—, the license count works out like this:
| Account type | What it can do | How the contract counts it |
|---|---|---|
| Internal user | Uses the back end to create, view or edit documents | User |
| Light User | The self-service functions the pricing page lists | Light User, at its own price |
| Employee with no internal account | Exists as a record in the human resources app | Light User |
| Portal user | Views their documents in the portal, without editing them | Not counted |
| Website visitor | Browses and buys in the online store | Not counted |
| Deactivated account | Nothing, while it stays deactivated | Not counted |
The pricing page’s examples make the table concrete: an employee who logs expenses or timesheets pays a license, and so does an outside tax advisor who works in Odoo on the company’s finances; customers and vendors who view their invoices in the portal don’t, nor does someone who buys in the online store and tracks their delivery. When the database has more users than were purchased, Odoo shows a warning and the administrator has 30 days to buy the missing users or deactivate accounts before the database expires.
Yearly or monthly billing
The page lets you choose between yearly and monthly billing, and the difference goes beyond the 25% price gap computed above. With monthly billing, the page no longer offers on-premise among the Custom plan’s hosting options. Adding users also behaves differently: according to the documentation, on a monthly plan the database updates automatically to reflect the added users, while on a yearly or multi-year plan an expiration banner appears in the database, from which the quote to extend the subscription is created.
The contract adds three rules that apply to any term. If during the term the company has more Users or Light Users than purchased, or uses features from another plan, it pays for the additional ones at the current list price for the rest of the term, and it must notify Odoo as soon as it exceeds them. At renewal, if what it paid in the previous term is below the current list price, the charge may rise by up to 7% per year of the previous term: a license paid at Mex$ 300 can renew at up to 300 × 1.07 = Mex$ 321. And charges exclude taxes, which are the customer’s responsibility; the price list adds them only at checkout.
What the subscription includes and what is paid separately
The pricing page says all its plans include unlimited support, hosting and maintenance, and its FAQ breaks that down. It also lists what is left out, and the two halves are worth reading together, because that is where the real cost of running Odoo takes shape.
| Item | Status | Details |
|---|---|---|
| Hosting on Odoo Online | Included | With storage up to 100 GB, according to the page |
| Hosting on Odoo.sh | Separate | Its cost is not included in the Custom plan |
| Backups | Included | Daily and incremental, on two continents |
| Odoo support | Included | Unlimited by email, Monday to Friday around the clock, in English, French, Spanish or Dutch; the contract limits it to bugs and guidance on standard features |
| Version upgrades | Included | Converting to the most recent version carries no extra cost |
| In-app purchase credits | Separate | SMS, contact autocomplete, lead generation, and the AI that scans vendor bills and expenses |
| Implementation | Separate | Provided by Odoo or a partner; the page notes that companies with more than 50 employees usually work with a partner |
| Maintenance of custom code | Separate | The contract charges it monthly per 100 lines of code of the covered module |
Two rows deserve one more line. Support, because the contract leaves development and customization questions out of it, to be covered by a separate agreement. And upgrades, because the free conversion covers standard apps, Studio customizations and modules under a maintenance contract; how the rest is split is explained in the guide to upgrading to Odoo 20.
Community and Enterprise
Odoo ships in two editions of the same software, and the difference that matters for licensing is the license itself, the apps and the services. Community’s code is public and published under the LGPL-3 license, as Odoo’s own repository declares. Enterprise, by contrast, is used under the license granted by the subscription contract: non-exclusive, non-transferable and valid for as long as the contract lasts, after which the customer stops using Enterprise. The contract also requires leaving unmodified the part of the software that verifies usage and counts Users, Light Users, installed apps and lines of code of covered modules.
| Aspect | Community | Enterprise | Source |
|---|---|---|---|
| License | LGPL-3, the license of the public odoo/odoo repository | The Odoo Enterprise Edition license, valid while the subscription contract lasts | odoo/release.py on the 20.0 branch; Enterprise contract, version 13 |
| License cost | LGPL-3 allows using and modifying it without paying for a license | Per user per month, depending on the plan | odoo/odoo repository; pricing page |
| Studio | Not in the 20.0 Community code (web_studio) | Included in the Custom plan | odoo/odoo 20.0 module tree; pricing page |
| Odoo 20’s AI app | Not in the 20.0 Community code | Included in the Custom plan | Odoo 20 AI documentation; odoo/odoo 20.0 module tree |
| Accounting | Invoicing, with the account module | Full Accounting (account_accountant), which is not in the 20.0 Community code | odoo/odoo 20.0 module tree |
| Mexican localization | l10n_mx: chart of accounts and taxes | Also l10n_mx_edi for the CFDI and the payment complement, and l10n_mx_reports for electronic accounting and the DIOT | Odoo 20 Mexico localization documentation; odoo/odoo 20.0 module tree |
| Payroll | Not in the 20.0 Community code (hr_payroll) | The Payroll app, with its Mexican localization | odoo/odoo 20.0 module tree; Odoo 20 Mexican payroll documentation |
| Other apps | Helpdesk, Quality, Subscriptions, Documents, Sign and Planning are not in the 20.0 Community code | Included in the paid plans | odoo/odoo 20.0 module tree; pricing page |
| Support and version upgrades | Not part of the LGPL-3 license | Included in the subscription | Enterprise contract, §4.3 and §4.5; Upgrade documentation |
| Hosting | On-premise, from the public code or Odoo’s packages | Odoo Online on every plan; Odoo.sh, at extra cost, and on-premise, with yearly billing, only on the Custom plan | Pricing page; packaged installers documentation |
A mid-sized company running several areas works with Enterprise for what the table shows: full accounting, Mexico’s CFDI and payroll, Studio and Odoo 20’s AI on the Custom plan, and Odoo support and conversion to each new version, included in the subscription as the section on what the subscription includes details. And one clarification for anyone already running Community: moving to Enterprise is a separate process that a version upgrade does not cover.
Frequently asked questions
How much does Odoo Enterprise cost in Mexico?
According to Odoo’s public price list, viewed from Mexico on October 17, 2026, with yearly billing the Standard plan costs Mex$ 228 per user per month and Custom Mex$ 410, before taxes; for the first 12 months, initial licenses drop to Mex$ 180 and Mex$ 330. The figure that applies when you sign is whatever the page shows that day.
Is Odoo free or paid?
Odoo Enterprise is paid per user per month: the Standard and Custom plans give all apps, and Custom adds Studio, agentic AI, multiple companies and the external API. Odoo also publishes the One App Free plan, which gives a single app with unlimited users on Odoo Online.
Do customers and vendors who use the portal need a license?
No. Odoo’s contract excludes from the user count external people or systems with limited access through the portal, and the pricing page gives customers and vendors who view their invoices there as an example of free users.
Which plan do we need if the implementation includes custom modules?
Custom. Standard runs on Odoo Online, which the pricing page describes as infrastructure for databases without custom modules; Custom allows Odoo.sh or on-premise, where they can be installed.
Does the license price include implementation?
No. The pricing page lists implementation services among what its plans don’t include, and notes that mid-sized and large companies usually work with a partner.
Can we pay for Odoo month to month?
Yes, the page offers monthly billing at a higher list price: on Standard, Mex$ 285 per user per month against Mex$ 228 with yearly billing, 25% more. With monthly billing, the page no longer offers on-premise hosting.
By industry
Sizing the Odoo licenses for your operation? See our Odoo implementation service, or write to us.
Sources
- Odoo S.A., “Module tree (addons)”, public odoo/odoo repository, 20.0 branch, github.com/
odoo/ . Accessed .odoo/ tree/ 20.0/ addons - Odoo S.A., “Mexico”, official Odoo 20.0 documentation, fiscal localizations, odoo.com/
documentation/ . Accessed .20.0/ applications/ finance/ fiscal_localizations/ mexico.html - Odoo S.A., “Mexico (payroll)”, official Odoo 20.0 documentation, payroll localizations, odoo.com/
documentation/ . Accessed .20.0/ applications/ hr/ payroll/ payroll_localizations/ mexico.html - Odoo S.A., “Odoo Pricing”, odoo.com, odoo.com/
pricing . Accessed . - Odoo S.A., “Odoo Enterprise Subscription Agreement, version 13 (September 24, 2026)”, official Odoo 20.0 documentation, odoo.com/
documentation/ . Accessed .20.0/ legal/ terms/ enterprise.html - Odoo S.A., “Users”, official Odoo 20.0 documentation, odoo.com/
documentation/ . Accessed .20.0/ applications/ general/ users.html - Odoo S.A., “User portals”, official Odoo 20.0 documentation, odoo.com/
documentation/ . Accessed .20.0/ applications/ general/ users/ user_portals.html - Odoo S.A., “AI”, official Odoo 20.0 documentation, odoo.com/
documentation/ . Accessed .20.0/ applications/ productivity/ ai.html - Odoo S.A., “Packaged installers”, official Odoo 20.0 documentation, odoo.com/
documentation/ . Accessed .20.0/ administration/ on_premise/ packages.html - Odoo S.A., “Upgrade”, official Odoo 20.0 documentation, odoo.com/
documentation/ . Accessed .20.0/ administration/ upgrade.html - Odoo S.A., “odoo/release.py”, public odoo/odoo repository, 20.0 branch, github.com/
odoo/ . Accessed .odoo/ blob/ 20.0/ odoo/ release.py - Odoo S.A., “odoo/addons/base/models/res_users.py”, public odoo/odoo repository, 20.0 branch, github.com/
odoo/ . Accessed .odoo/ blob/ 20.0/ odoo/ addons/ base/ models/ res_users.py