Account Credit Control module is a part of Financial Tools used in business to ensure that once sales are made they are realised as cash. This module helps to identify outstanding debt beyond tolerance level and setup followup method.
auto_awesome What this module does
AI-generated from the code · Odoo 19.0Set up reminder policies with escalating levels to chase overdue customer invoices, generate credit control lines from unpaid receivable entries, and send letters or emails to customers.
This module adds a complete credit control workflow on top of invoicing. Users define reminder policies, each made of levels (for example a first reminder after 15 days, a second after 30). Each level has a computation mode (due date, end of month, or previous reminder), a delay in days, a channel (letter, email or phone), an email template and custom texts.
A policy is attached by default on the company settings, and can be overridden on a customer or on a single invoice. Only receivable accounts selected on the policy are considered.
A credit control run is then executed for a controlling date: it scans posted, unreconciled receivable entries whose due date has passed, skips amounts below the company tolerance, and creates credit control lines in draft state. Lines can be reviewed, ignored, set to 'To Do', then sent: emails are grouped per customer, level and currency into a communication, and letters are produced through a printing wizard. Mass wizards also allow marking lines as sent, emailing them, or changing their policy.
Business rules: an invoice cannot be cancelled once a reminder has been sent (a credit note must be used instead); only draft credit lines can be deleted; the smallest level of a policy cannot be based on the previous reminder; a run cannot be dated before an existing run or line.
A pivot analysis shows overdue balances per customer and level, and customers carry follow-up fields such as responsible, next action and payment promise.
Depends on
Required by other modules
Menus it adds
Models and fields (17)
- res.company · extends an existing modelcredit_policy_id (Credit Control Policy), credit_control_tolerance
- res.partner · extends an existing modelpayment_note (Customer Payment Promise), manual_followup, credit_policy_id (Credit Control Policy), payment_next_action (Next Action), credit_control_count (# of Credit Control Lines), payment_responsible_id (Follow-up Responsible), payment_next_action_date (Next Action Date), payment_next_action_type (Next Action Type), credit_control_analysis_ids (Credit Control Levels)
- account.move · extends an existing modelcredit_policy_id (Credit Control Policy), credit_control_line_ids (Credit Lines)
- account.account · extends an existing modelcredit_control_line_ids (Credit Lines)
- credit.control.run · new modeldate (Controlling Date), state, report, line_ids (Generated lines), company_id, manual_ids (Lines to handle manually), policy_ids (Policies), credit_control_count (# of Credit Control Lines), hide_change_state_button, credit_control_communication_count (# of Credit Control Communications)
- credit.control.line · new modeldate (Controlling date), level, state, run_id (Source), channel, date_due (Due date), date_sent (Reminded date), policy_id, account_id, amount_due (Due Amount Tax incl.), company_id, date_entry (Entry date), invoice_id, partner_id, balance_due (Due balance), currency_id, move_line_id (Move line), manual_followup, partner_user_id (Salesperson), policy_level_id (Overdue Level), communication_id (Communication process), manually_overridden, commercial_partner_id (Commercial Entity)
- res.config.settings · extends an existing modelcredit_policy_id (Credit Control Policy), credit_control_tolerance, default_apply_max_policy_level (Apply max policy level)
- mail.compose.message · extends an existing model
- credit.control.marker · new modelname (Mark as), line_ids (Credit Control Lines)
- credit.control.policy · new modelname, active, level_ids (Policy Levels), company_id, do_nothing, account_ids (Accounts), apply_max_policy_level (Apply max policy level)
- credit.control.emailer · new modelline_ids (Credit Control Lines)
- credit.control.printer · new modelline_ids (Credit Control Lines), mark_as_sent (Mark letter lines as done)
- credit.control.analysis · new modellevel (Max Level), policy_id, company_id, partner_id, currency_id, partner_ref, open_balance (Overdue Balance), policy_level_id (Overdue Level)
- credit.control.policy.level · new modelname, level, channel, policy_id (Related Policy), delay_days (Delay (in days)), custom_text (Custom Message), computation_mode (Compute Mode), custom_mail_text (Custom Mail Message), email_template_id, mail_show_invoice_detail (Show Invoice Details in mail), custom_text_after_details (Custom Message after details)
- credit.control.communication · new modeluser_id, policy_id, total_due, company_id, partner_id, currency_id, report_date, total_invoiced, policy_level_id (Level), contact_address_id, credit_control_line_ids (Credit Lines)
- credit.control.policy.changer · new modeldo_nothing (No follow policy), move_line_ids (Move line to change), new_policy_id (New Policy to Apply), new_policy_level_id (New level to apply)
- res.partner.payment.action.type · new modelname, active, sequence, company_id, partner_ids (Partners)
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: 8 confirmed, 1 with no information of 9 versions.
Sources · Odoo 19.0
Confirmed on 2026-11-03 in branch 19.0 of OCA/credit-control.
terminal Installation and usage
OCA documentation · Odoo 19.0Configuration
Source · Odoo 19.0Configure the policies and policy levels in Invoicing > Configuration > Credit Control > Credit Control Policies. You can define as many policy levels as you need. You must set on which accounts are applied every Credit Control Policy under Accounts tab.
Configure a tolerance for the Credit control and a default policy applied on all partners in each company, under the General Information tab in your company form.
You are able to specify a particular policy for one partner or one invoice.
Usage
Source · Odoo 19.0Menu entries are located in Invoicing \> Credit Control.
Create a new "run" in the Credit Control Run menu with the controlling date. Then, use the Compute Credit Lines button. All the credit control lines will be generated. You can find them in the Credit Control Lines menu.
On each generated line, you have many choices:
- Send a email
- Print a letter
- Change the state (so you can ignore or reopen lines)
- Mark a line as Manually Overridden. The line will get the ignored state when a second credit control run is done.
- Mark one line as Manual followup will also mark all the lines of the partner. The partner will be visible in "Do Manual Follow-ups".
Once your lines are properly set up, go back to the "run" and click on Run channel action to massively generate and queue communication emails or letters for all linked lines.
Then, use the Communications smart button to see all email communication processes that have been created and follow them.
The 'Credit Control' followers of the linked partner will be automatically added as followers to the credit control lines.
No verified information in OCA: Installation.
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.