Skip to main content
Licensing · OPL-1, LGPL and AGPL

What the Odoo OPL-1 licence means when you buy a module: what it allows, what it forbids and how it sits alongside LGPL and AGPL

OPL-1 is five paragraphs written by Odoo S.A. They let you use, read and modify the module you bought, and forbid you to publish it or hand it to another company. What they leave out matters just as much: versions, databases and dependencies on OCA modules.

FlexigoTech catalogue of Odoo modules with supported versions, one-off price and a link to the Odoo App Store

OPL-1 appears on the listing of many paid modules on the Odoo App Store, and hardly anyone reads what sits behind it: five short paragraphs that Odoo S.A. publishes in its documentation. Here we read them from the buyer's side: what they allow, what they forbid, what they leave out and how they coexist with LGPL and AGPL. This is the reading of engineers who publish modules, not legal advice.

What OPL-1 says, paragraph by paragraph

The Odoo Proprietary License v1.0 says five things. The module may only be used — executed, modified, and executed once modified — with a licence bought from its authors, “typically via Odoo Apps”, or under a written agreement. You may write modules that depend on it without copying its code. Publishing, distributing, sublicensing or selling copies, modified or not, is forbidden. The copyright notice travels with every copy. And it comes “as is”, with no warranty. In practice:

You want to…Allowed?The catch
Use it in your company's OdooYesWith a purchased licence or a written agreement with the author.
Modify it for your processesYesYour modified version is still OPL-1.
Read and audit the codeYesIt arrives readable: the App Store removes obfuscated or encrypted code.
Write a module that depends on itYesWithout copying its code, under a compatible licence.
Push it to a public GitHub repositoryNoThat is publishing. On Odoo.sh, keep the repository private.
Install one purchase for several clientsNoThat is distribution. Each client buys its own.
Resell it or bundle it into your productNoNot for free, not modified.

What OPL-1 does not say, and where the answer lives

The licence says nothing about users, databases, updates or versions. The seller sets those. On the App Store, its sales conditions do: since Odoo 13 each version is sold separately, so buying it for Odoo 18 does not get you the Odoo 19 one; third-party modules cannot be installed on Odoo Online; and you have two months to file a claim if it does not install on the advertised version or lacks a feature the listing promises. Buying the wrong version gives no right to a refund. If you buy straight from the author, their agreement applies: ours covers one production instance and up to two test instances, with twelve months of support.

Why paid modules ship under OPL-1

Because under a free licence, selling copies does not hold up. You can sell an LGPL-3 or AGPL-3 module, but the buyer gets the right to redistribute it and could publish it for free, perfectly legally. OPL-1 is the licence Odoo S.A. wrote for that gap, and the App Store recognises it through the OPL-1 value in the manifest. The part that surprises people: the protection is contractual, not technical. The module reaches you as readable Python, just like an OCA one.

OPL-1, LGPL-3 and AGPL-3 in the same database

The Odoo Community core is LGPL-3, which lets other modules use it without inheriting its terms; that is why OPL-1 modules fit on top of it. OCA modules are usually AGPL-3. Running both side by side for your own use creates no conflict: the AGPL bites when you distribute, or when you offer a modified version over a network, say through a customer portal. The clash appears when one module depends on another. This is how the App Store puts it:

If your module is…It may depend on…It may not depend on…
AGPL-3AGPL-3, GPL-3 and LGPL-3OPL-1, OEEL-1 (Enterprise), other OSI or proprietary
LGPL-3LGPL-3, OPL-1, OEEL-1, other OSI and proprietaryAGPL-3 or GPL-3
OPL-1LGPL-3, OPL-1, OEEL-1, other OSI and proprietaryAGPL-3 or GPL-3

In plain terms: an OPL-1 module cannot depend on an AGPL-3 OCA module, nor the other way round, and a piece of code importing both fits under no licence at all. If the OPL-1 module depends on Enterprise, you need the subscription; if it only depends on the core, it works on Community. More detail in the licensing guide.

With no license key in the manifest, Odoo loads the module as LGPL-3 with a warning in the log, while the App Store treats it as “Other proprietary”. Same module, two answers: it is the first thing to fix.

Before you buy: five checks

  • The manifest. Check license and depends in __manifest__.py. An OPL-1 module that depends on OCA code deserves a question to the author.
  • The version. Buy the one for your Odoo and, if you are about to migrate, ask about the next one.
  • The hosting. Odoo.sh or your own server, yes; Odoo Online, no.
  • The repository. If the module goes into Git, private.
  • The holder. If your partner installs it, make sure the purchase is in your company's name.

When you do not need an OPL-1 module

If the OCA has a maintained module for your version that does what you need, start there; in native module or OCA we explain how to decide. A paid module makes sense when there is no mature free alternative, or when you would rather have whoever wrote it carry the maintenance across versions. Our paid modules ship under OPL-1: the VeriFactu one, for instance, runs on Odoo 17, 18 and 19 and costs 49 EUR one-off on the Odoo App Store, source code included. And if what you need does not exist, it is no longer a licensing question: it is custom development.

Frequently asked questions

Can I use an OPL-1 module on several databases?

The OPL-1 text does not say: the seller sets it. For our modules, one production instance and up to two test instances of the same company, as the EULA states. What no terms allow is taking the same purchase into another company's Odoo: that is distribution.

Can I modify an OPL-1 module?

Yes. The text expressly allows modifying it and running it modified. What you cannot do is publish that version or hand it to third parties. If the change would help others, ask the author for it: it saves you maintaining your own copy through every update.

Is OPL-1 the same licence as Odoo Enterprise's?

No. Odoo Enterprise modules use OEEL-1, which requires a valid Enterprise subscription. OPL-1 is for third-party modules and only requires that you bought the module; if it depends solely on the core, it also works on Community.

Useful links inside FlexigoTech

Odoo licensing guideOPL-1, AGPL-3, LGPL-3 and Enterprise, with a comparison tableEULA for FlexigoTech modulesInstances, support and restrictions of our OPL-1 modulesPublishing a module on the Odoo App StoreLicensing seen from the seller's side

Unsure about a module's licence before installing it?

Send us the module name or its manifest and your Odoo version. We will tell you which licence it really has, what it depends on and whether it clashes with what you already run. If the answer is that an OCA module will do, we will tell you that too. Write to comercial@flexigobe.com or book a call.

Talk to an engineer