Account Invoice Payment Retention

Technical Name:
  • Odoo Version

Terms and Conditions

Account Invoice Payment Retention

Alpha License: AGPL-3 OCA/account-invoicing Translate me on Weblate Try me on Runbot

This module provide a feature to plan for retention during invoice / payment. And return it at later time.

  1. At Vendor Bill (or Customer Invoice), user can plan the retention by percent/amount
  2. At Payment, to retain the amount as planned (enforce / not enforce)
  3. At a later time, with another Vendor Bill (or Customer Invoice), user can select the retained payment in order to return it

Note: This feature works on both customer invoice and vendor bill alike.


This is an alpha version, the data model and design can change at any time without warning. Only for development or testing purpose, do not use in production. More details on development status

Table of contents


  1. Go to menu > Invoicing > Configurations > Settings
  2. Enable Invoice's Retention on Payment
  3. Select the Retention Account, make sure this account allow reconciliation
  4. Once setup, user will see new Retention fields in Customer Invoice / Vendor Bill.


To plan for retention during invoice

  1. Create new Vendor Bill (or Customer Invoice).
  2. Specify amount to retain, by percent or amount.
  3. Validate invoice as per normal.

To make payment retention

  1. From the invoice, click Register Payment.
  2. On the payment window, system suggest the retention amount, click on helper toggle to apply it.
  3. By default, enforce retention is checked to ensure that, a valid retention amount and retention account is applied.
  4. Once ready, make payment as per normal. Journal Entry created with a retention account move line (to be cleared at later time).

Note: System just help to validate retention. At the end, user can ignore the retention.

To return the retained amount

  1. As time arrived to return the retained amount. Create the new Vendor Bill (or Customer Invoice).
  2. Select the partner. Return Retention field will list only uncleared retained amount for this partner.
  3. Select one or multiple payments (journal entry), system will auto populate the retained amount.
  4. Validate invoice as per normal, system will now clear (reconcile) that retention.
  5. Proceed to payment as per normal.

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.

Do not contact contributors directly about support or help with technical issues.



  • Ecosoft


This module is maintained by the OCA.

Odoo Community Association

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.

This module is part of the OCA/account-invoicing project on GitHub.

You are welcome to contribute. To learn how please visit

This is a preview of the recently viewed products by the user.
Once the user has seen at least one product this snippet will be visible.

Recently viewed Products