This module allows creating subscriptions that generate recurring invoices or orders. It also enables the sale of products that generate subscriptions.
Subscriptions can be paused and resumed, so they can be put on hold without being closed; the recurring cron skips paused subscriptions and can resume them automatically on a configured date.
auto_awesome What this module does
AI-generated from the code · Odoo 19.0Create and manage recurring subscriptions that automatically generate invoices or sales orders on a schedule. Subscriptions can be paused, resumed, and closed, and products can be marked as subscribable so confirming a sale order creates a subscription.
This module adds a full subscription area to Odoo. Users create subscriptions for a customer, based on a subscription template that defines how often it repeats (days, weeks, months or years), whether it runs forever or for a fixed duration, and how invoices are produced.
- Subscriptions appear in their own menu with list, form and kanban views, plus a Configuration menu for templates, stages, tags and close reasons.
- Each subscription has lines with product, quantity, price, discount and taxes; prices and discounts are computed from the customer's pricelist and fiscal position.
- A scheduled job runs regularly: it generates invoices for subscriptions that are due, starts subscriptions whose start date has arrived, closes those that reached their end date, and automatically resumes paused subscriptions whose resume date is reached.
- Invoicing modes on the template decide whether a draft invoice, a posted invoice, an invoice sent by email, or a sale order plus invoice is created.
- Users can pause a subscription (optionally with a resume date) and resume it later; closed subscriptions cannot be paused.
- Products can be flagged as subscribable and linked to a subscription template; when a sale order containing them is confirmed, a subscription is created automatically.
- Customers show a count of their subscriptions, and invoices and sale orders link back to the subscription they came from.
Depends on
Required by other modules
Menus it adds
Models and fields (13)
- sale.order · extends an existing modelsubscription_ids (Subscriptions), subscriptions_count, order_subscription_id (Subscription)
- res.partner · extends an existing modelsubscription_ids (Subscriptions), subscription_count
- account.move · extends an existing modelsubscription_id (Subscription)
- sale.order.line · extends an existing model
- product.template · extends an existing modelsubscribable (Subscribable product), subscription_template_id (Subscription template)
- sale.subscription · new modelcode (Reference), date (Finish date), name, color (Color Index), image (Image), terms (Terms and conditions), active, tag_ids (Tags), user_id (Commercial agent), sequence, stage_id (Stage), to_renew (To renew), is_paused (Paused), amount_tax, company_id, date_start (Start date), journal_id (Journal), partner_id (Partner), stage_type, crm_team_id (Sale team), currency_id, description, in_progress (In progress), invoice_ids (Invoices), template_id (Subscription template), amount_total, paused_until (Resume on), pricelist_id (Pricelist), sale_order_id (Origin sale order), sale_order_ids (Orders)
- close.reason.wizard · new modelclose_reason_id (Reason)
- sale.subscription.tag · new modelname (Tag name)
- sale.subscription.line · new modelname (Description), tax_ids (Taxes), discount (Discount (%)), company_id (Company), price_unit (Unit price), product_id (Product), currency_id, price_total (Total), price_subtotal (Subtotal), product_uom_qty (Quantity), sale_subscription_id (Subscription), amount_tax_line_amount (Taxes Amount)
- sale.subscription.stage · new modelfold (Kanban folded), name, type, sequence, description, in_progress (In progress)
- sale.subscription.template · new modelcode, name, description (Terms and conditions), product_ids (Products), invoicing_mode (Invoicing mode), subscription_ids (Subscriptions), product_ids_count (product_ids), recurring_interval (Repeat every), subscription_count (subscription_ids), recurring_rule_type (Recurrence), recurring_rule_count (Rule count), recurring_rule_boundary (Duration), invoice_mail_template_id (Invoice Email)
- sale.subscription.close.reason · new modelname
- sale.subscription.pause.wizard · new modelpaused_until (Resume on)
Text generated by AI (DeepSeek) from reading the Odoo 19.0 code on GitHub; it may contain mistakes, so check the code before deciding. The module is very large and only part of the code was read. View the code on GitHub
Availability by version
Reviewed: 2026-11-03Confirmation status: 6 confirmed, 3 with no information of 9 versions.
Sources · Odoo 18.0
Confirmed on 2026-11-03 in branch 18.0 of OCA/contract.
terminal Installation and usage
OCA documentation · Odoo 19.0Usage
Source · Odoo 19.0To make a subscription:
- Go to Subscriptions \> Configuration \> Subscription templates.
- Create the templates you consider, choosing the billing frequency: daily, monthly... and the method of creating the invoice and/or order.
- Go to Subscription \> Subscriptions.
- Create a subscription and indicate the start date. When the Subscriptions Management cron job is executed, the subscription will begin and the first invoice will be created if the execution date matches the start date. The invoice will also be created when the execution date matches the next invoice date. Additionally, you can manually change the subscription status and create an invoice by using the Create Invoice button. This action creates just an invoice even if the subscription template has the Sale Order & Invoice option selected, because the Invoicing mode option is triggered through the cron job.
- The cron job will also end the subscription if its end date has been reached. The end date honours the template recurrence (days, weeks, months or years) and the interval, instead of always assuming months.
To create subscriptions with the sale of a product:
- Go to Subscriptions \> Subscriptions \> Products.
- Create the product and in the sales tab, complete the fields Subscribable product and Subscription template
- Create a sales order with the product and confirm it.
Invoice and delivery addresses:
- Each subscription has an Invoice address and a Delivery address. They default to the customer's corresponding addresses and can be overridden per subscription.
- These addresses are propagated to the recurring invoices (the invoice is addressed to the invoice address and records the delivery one) and to the sale orders generated by the subscription.
- The fields are shown when the Customer Addresses setting (group Display Delivery / Invoice addresses) is enabled.
To pause and resume a subscription:
- On an in-progress subscription, press Pause. A dialog lets you optionally set a Resume on date.
- While paused, the cron skips the subscription: it is not invoiced, started or closed.
- Press Resume to reactivate it manually. If a Resume on date was set, the cron resumes the subscription automatically once that date is reached. Leaving the date empty pauses it indefinitely.
No verified information in OCA: Installation, Configuration.
Installation instructions, the distribution package, dependencies and configuration steps are not shown because they have not yet been verified in the module documentation for any version.
Data imported from GitHub: this sheet reflects the latest catalog review, not a live lookup. Always check the module documentation and staging before installing in production.