
Odoo Subscriptions
Odoo Subscriptions: Recurring Revenue Without a Spreadsheet
A subscription business fails quietly, through invoices that did not go out, cards that expired unnoticed and renewals nobody chased. Odoo Subscriptions exists to make those three things automatic, which is most of what recurring revenue actually needs.
01
What Odoo Subscriptions actually is
Subscriptions turns a sales order into a recurring one: a plan, a period, a next invoice date, and a lifecycle that runs until somebody ends it. It generates the invoices, takes the payments where a token is stored, and reports on the resulting recurring revenue.
It is an Enterprise app.
The case for it is narrow and strong. A subscription business does not usually fail on product. It fails on operations: an invoice that never went out, a card that expired in March and was noticed in June, a renewal nobody chased. Each is small, each is invisible, and together they are the difference between the recurring revenue you think you have and the cash that arrives.

Screenshots of Odoo are the property of Odoo S.A. and are shown here to illustrate the app they depict.
Plans, periods and products
A subscription carries lines like any order, but with a recurrence: monthly, quarterly, annual, or a custom interval. Subscription plans hold the reusable settings so a new subscription is a selection rather than a configuration.
Two decisions deserve attention before you configure anything.
Alignment. Does every subscription bill on its own anniversary, or does everything bill on the first of the month with a prorated first period? Anniversary billing is simpler to configure and spreads cash across the month. Aligned billing is easier to reconcile and produces a cleaner monthly close. Both are defensible; changing your mind later is painful.
What a change mid-period costs. Upgrades, downgrades and cancellations part-way through a paid period all need a rule. Your commercial policy should exist in words before it exists in configuration, because the software will implement whatever you tell it consistently, including a policy you never actually decided.
Automatic invoicing and payment
On the next invoice date, Odoo raises the invoice. Where the customer has a saved payment token, it charges it and reconciles the payment.
The important behaviour is what happens when that fails. A failed charge should produce a visible, owned follow-up, not a quiet lapse. Involuntary churn, meaning subscriptions lost to expired cards rather than to unhappy customers, is one of the largest and most recoverable leaks in most subscription businesses. It is recoverable precisely because those customers still want the product.
Decide who owns failed payments and how quickly they act, and treat that as a real process rather than an occasional task.
Renewals, upsells and churn
A subscription with an end date needs renewing, and the renewal is a commercial opportunity rather than an administrative one. Odoo surfaces upcoming renewals so they can be worked in advance rather than discovered afterwards.
Closing a subscription records a close reason, and this deserves the same care as CRM lost reasons: a short, specific list, reviewed regularly. Churn reasons are the most direct product feedback a subscription business gets, and a list where most entries say "other" has thrown that away.
MRR, and reading it properly
Odoo computes monthly recurring revenue and its movement. The useful part is the decomposition: new business, expansion from existing customers, contraction, and churn.
A flat net MRR can hide a business winning and losing equally fast, which is a very different situation from one that is genuinely stable, and it needs a very different response. Look at the components, not the total.
Where Odoo Subscriptions will fight you
It is Enterprise, and specialist subscription platforms go further. Complex usage-based billing, sophisticated dunning sequences and deep revenue analytics are all areas where dedicated tools lead. Odoo wins on being joined to your sales, delivery and ledger.
Usage-based billing is limited. Metered pricing that varies with consumption is not its natural shape and usually needs development.
Tax across regions gets complicated quickly. Recurring cross-border billing multiplies fiscal position combinations, and each one needs testing.
Revenue recognition may need separate handling. Invoicing annually and recognising monthly is an accounting treatment that should be agreed with finance rather than assumed.
Proration rules need explicit testing. This is the most common source of a customer dispute in a subscription rollout.
How it connects to everything else
A subscription is a sales order, so it invoices through Accounting and the customer is the same partner as everywhere else. Payment providers are the ones configured for the website. The portal gives customers self-service. Helpdesk sees the same account, so support knows what someone is paying for. Where the subscription delivers a service, Project and Timesheets can hang off it.
That last connection is worth designing for in a services subscription, because it is what lets you see whether a retainer is actually profitable rather than merely recurring.
Where to start
Decide anniversary versus aligned billing before configuring anything. Write your proration policy in words, then test it against real mid-period upgrades and cancellations in a test database. Set up saved payment tokens from the first subscription, since retrofitting them means asking every existing customer for their card. Assign an owner to failed payments on day one. Then watch the MRR decomposition rather than the total, because the components are where the actual news is.
FAQ
Odoo Subscriptions, answered.
Is Odoo Subscriptions available in Community?
No, Subscriptions is an Enterprise app. Community users sometimes approximate it with recurring invoices or a scheduled action, which handles the billing but gives you no subscription lifecycle, no churn reporting and no MRR view.
How does automatic billing work?
A subscription has a recurring period and a next invoice date. On that date Odoo generates the invoice and, where a payment token is saved, charges it automatically. Failures raise an activity rather than passing silently, which is the part that matters.
What is MRR and does Odoo calculate it?
Monthly recurring revenue, the normalised monthly value of all active subscriptions. Odoo computes it and tracks its movement, so growth from new subscriptions, expansion and churn are visible as separate components rather than one net number.
How are upgrades and downgrades handled?
By changing the subscription lines, which alters the recurring amount from the next period and updates MRR accordingly. Mid-period proration is the detail worth testing against your own commercial rules before going live.
What happens when a card fails?
The payment attempt fails and the subscription is flagged for follow-up rather than silently lapsing. Defining who chases failed payments, and how quickly, is the single highest-value process decision in a subscription business.
Can customers manage their own subscription?
Through the portal they can view it, see invoices, update payment details and, if you allow it, close it. Self-service closure is a real decision: it reduces support load and removes the save conversation, so choose deliberately.
With CODEerts
Want this set up properly?
We are certified Odoo partners. We implement, customise and support Odoo Subscriptions, and we publish our own apps on the Odoo Store.
See how we can helpBook a callReady to make Odoo work the way your business does?
Book a free callCODEerts is a team of certified Odoo partners and full-stack engineers. We implement, customise and support Odoo ERP, then build the software around it.