Skip to main content

Contracts Management - Recurring

Project description

License: AGPL-3

Contracts for recurrent invoicing

This module forward-port to v10 the contracts management with recurring invoicing functions. Also you can print and send by email contract report.

In upstream Odoo, this functionality was moved into the Enterprise edition.


To view discount field set Discount on lines in user access rights.

You might find that generating all pending invoices at once takes too much time and produces some performance problems, mostly in cases where you generate a lot of invoices in little time (i.e. when invoicing thousands of contracts yearly, and you get to January 1st of the next year). To avoid this bottleneck, the trick is to increase the cron frequence and decrease the contracts batch size. The counterpart is that some invoices could not be generated in the exact day you expected. To configure that:

  1. Go to Settings > Activate the developer mode.

  2. Go to Settings > Technical > Automation > Scheduled Actions > Generate Recurring Invoices from Contracts > Edit > Information.

  3. Set a lower interval. For example, change Interval Unit to Hours.

  4. Go to the Technical Data tab, and add a batch size in Arguments. For example, it should look like (20,).

  5. Save.

That’s it! From now on, only 20 invoices per hour will be generated. That should take only a few seconds each hour, and shouln’t block other users.


To use this module, you need to:

  1. Go to Accounting -> Contracts and select or create a new contract.

  2. Check Generate recurring invoices automatically.

  3. Fill fields for selecting the recurrency and invoice parameters:

    • Journal

    • Pricelist

    • Period. It can be any interval of days, weeks, months, months last day or years.

    • Start date and next invoice date.

    • Invoicing type: pre-paid or post-paid.

  4. Add the lines to be invoiced with the product, description, quantity and price.

  5. You can mark Auto-price? for having a price automatically obtained applying the pricelist to the product price.

  6. You have the possibility to use the markers #START# or #END# in the description field to show the start and end date of the invoiced period.

  7. Choosing between pre-paid and post-paid, you modify the dates that are shown with the markers.

  8. A cron is created with daily interval, but if you are in debug mode, you can click on Create invoices to force this action.

  9. Click Show recurring invoices link to show all invoices created by the contract.

  10. Click on Print > Contract menu to print contract report.

  11. Click on Send by Email button to send contract by email.

Try me on Runbot

Known issues / Roadmap

  • Recover states and others functional fields in Contracts.

Bug Tracker

Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us smashing it by providing a detailed and welcomed feedback.




Odoo Community Association

This module is maintained by the OCA.

OCA, or the Odoo Community Association, is a nonprofit organization whose mission is to support the collaborative development of Odoo features and promote its widespread use.

To contribute to this module, please visit

Project details

Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page