Sales Contract Subscription & Recurring Invoice
by Cerevantix Technologies https://cerevantix.com$ 55.93
Recurring billing your finance team can supervise
Turn signed sales agreements into a predictable sales contract subscription with a recurring invoice stream — generated as reviewable drafts, never posted without your approval.
Odoo's native Subscriptions module removed granular invoicing controls, so every recurring invoice posts automatically with no review step. Staff re-key invoices by hand, miss renewal dates, and cannot tell at a glance which contracts are active, paused, or expiring.
A sales contract subscription record drives the whole lifecycle: recurring invoices are generated as drafts for review, a lifecycle dashboard shows what needs attention today, and a confirmed sale order converts into a subscription in one click.
Everything a recurring contract needs
Every capability below is implemented in the module.
Supervised Draft Invoicing
Recurring invoices generate as drafts, never posted automatically. Finance reviews each one and approves & posts explicitly, restoring the review step Odoo removed since v16.
Lifecycle Dashboard
A kanban board groups every subscription contract by Draft, Running, Paused, Expiring, Expired, and Cancelled, so the first screen answers what needs attention today.
Configurable Billing Frequency
Bill daily, weekly, monthly, quarterly, or annually per contract, matching how each customer actually agreed to pay.
Mixed One-Time + Recurring Lines
Combine a recurring subscription line with one-time setup or training fees on the same order, and have it validate correctly — a bundle that breaks on save in other apps.
Sale Order Conversion
Turn a confirmed sale order into a subscription contract with one click, with no need to re-enter customer or line data.
Renewal & Expiry Alerts
An "Expiring Soon" ribbon and lifecycle state flag contracts approaching their end date, so renewals are never silently missed.
Contract PDF Document
Print a formatted contract document with terms and billing lines for customers who require a record on file.
Analytic Account Linkage
Assign each contract to an analytic account so recurring revenue and cost can be tracked for margin reporting.
Automated Invoice Generation
A scheduled action checks every running contract on its billing cadence and creates the next draft invoice automatically, with correct taxes and ledger accounts.
How it works
Create the Contract
Start from a blank contract or convert a confirmed sale order in one click.
Set Terms & Start
Pick billing frequency, add recurring and one-time lines, then start the contract.
Review Draft Invoices
Each billing cycle generates a draft invoice for finance to check before posting.
Approve & Renew
Post the invoice, then renew, pause, or let the contract expire from the same dashboard.
See it in action
Real screens from the module, captured on Odoo 17.
Lifecycle dashboard grouped by Draft, Running, Paused, Expiring, and Cancelled — the default landing view.
Every subscription contract in one list, with an expiring contract highlighted for immediate attention.
A running contract with a mixed bundle — two recurring lines plus a one-time line — and the Invoices stat button front and center.
The "Expiring Soon" ribbon flags a running contract approaching its end date, so renewals are never missed silently.
A paused contract with clear Start, Resume, and Cancel actions on the button bar.
A confirmed sale order showing the "Create Subscription" button and a Subscriptions stat button after conversion.
The printable contract document, ready to share with the customer as a record of the agreed terms.
A contract's invoice list: one posted and two draft invoices, showing the supervised-review flow in practice.
Frequently asked
Does this replace Odoo's native Subscriptions module?
It runs alongside standard Sales and Accounting and adds its own contract model with a supervised, draft-review invoicing flow that the native module no longer offers since v16.
Can I mix one-time and recurring charges on the same contract?
Yes. Recurring subscription lines and one-time lines, such as a setup fee or training, can sit on the same contract or order and both validate and invoice correctly.
How do I know when a contract needs renewal?
Contracts approaching their end date move to an Expiring lifecycle state and show an "Expiring Soon" ribbon on the form, so nothing lapses unnoticed.
Are the generated invoices real accounting invoices?
Yes. Every invoice is a standard Odoo customer invoice with correct taxes and ledger accounts, so payments and reporting work exactly as they do elsewhere in Accounting.
Get in Touch
Have questions or need customization? Every purchase includes 30 days of free support — we are here to help.
Visit Our Website
www.cerevantix.comExplore our apps, services, and portfolio.
Explore our other apps
A growing suite of Odoo apps.
Empowering growth through technology.
Supervised recurring billing, a lifecycle dashboard, and sale-order-to-subscription conversion, built natively on Odoo.
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Invoicing (account)
• Sales (sale_management) • Discuss (mail) |
| Lines of code | 801 |
| Technical Name |
cerevantix_sales_contract_subscription |
| License | LGPL-3 |
| Website | https://cerevantix.com |
Please log in to comment on this module