This module implements a generic fiscal year closing system for those countries where closing/opening moves or other kind of closing operations are mandatory in accounting books.
It includes a template mechanism that can be used in localizations for providing the possible configurations to be used by the closing engine.
auto_awesome What this module does
AI-generated from the code · Odoo 19.0Create and run a fiscal year closing in Odoo: the module generates the closing and opening journal entries from a reusable template, lets you review them, and posts them.
This module adds a guided fiscal year closing process for accounting. You create a closing record for a year and company, pick a closing template, and Odoo fills in the period dates (from date, to date, opening date) automatically based on the company's fiscal year settings.
From the closing screen you can: - Press Calculate to generate the closing journal entries from the template's move configurations and account mappings. - Press Confirm and post moves to post them, or Cancel to remove them. - Use Show moves and Show move lines to inspect the generated entries. - Recalculate to delete and regenerate the entries, or Draft to reopen a cancelled closing.
Business rules shown in the code: only one closing per year and company is allowed; if Check draft moves is on, the calculation stops and lists any draft entries in the period; if a generated entry is not balanced, a wizard opens showing the unbalanced lines; closings that are not in draft or cancelled cannot be deleted.
Closing templates are configured under Accounting configuration, where you define move configurations, source account patterns, destination accounts, journals, move types (closing, opening, loss & profit, other) and closing types (balance or unreconciled). The module also adds a Fiscal year closing link and closing type on journal entries.
Depends on
Required by other modules
Menus it adds
Models and fields (15)
- account.move · extends an existing modelfyc_id (Fiscal year closing), closing_type
- account.fiscalyear.closing · new modelname, year, state, date_end (To date), move_ids (Moves), company_id, date_start (From date), date_opening (Opening date), chart_template, move_config_ids (Moves configuration), calculation_date (Calculation date), check_draft_moves, closing_template_id (Closing template)
- account.fiscalyear.closing.type · new modelfyc_config_id (Fiscal year closing config)
- account.fiscalyear.closing.config · new modeldate (Move date), fyc_id (Fiscal Year Closing), enabled, move_id (Move), journal_id, mapping_ids (Account mappings), closing_type_ids (Closing types)
- account.fiscalyear.closing.mapping · new modelsrc_accounts (Source accounts), fyc_config_id (Fiscal year closing config), dest_account_id (Destination account)
- account.fiscalyear.closing.abstract · new modelname (Description), company_id (Company), check_draft_moves (Check draft moves)
- account.fiscalyear.closing.template · new modelname, chart_template (Available for), move_config_ids (Moves configuration)
- account.fiscalyear.closing.type.abstract · new modelaccount_type (Type), closing_type (Default closing type)
- account.fiscalyear.closing.type.template · new modeltemplate_config_id (Fiscal year closing config template)
- account.fiscalyear.closing.config.abstract · new modelcode (Unique code), name (Description), inverse (Inverse config), sequence, move_type (Move type), journal_id (Journal), closing_type_default (Default closing type)
- account.fiscalyear.closing.config.template · new modelname, move_date (Move date), journal_id, mapping_ids (Account mappings), template_id (Fiscal Year Closing Template), closing_type_ids (Closing types)
- account.fiscalyear.closing.unbalanced.move · new modelref (Reference), date, line_ids (Unbalanced move lines), journal_id (Journal)
- account.fiscalyear.closing.mapping.abstract · new modelname (Description)
- account.fiscalyear.closing.mapping.template · new modelname, dest_account (Destination account), src_accounts (Source accounts), template_config_id (Fiscal year closing config template)
- account.fiscalyear.closing.unbalanced.move.line · new modeldate, name, debit, credit, move_id (Unbalanced move), account_id (Account), partner_id (Partner)
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: 5 confirmed, 4 with no information of 9 versions.
Sources · Odoo 18.0
Confirmed on 2026-11-03 in branch 18.0 of OCA/account-closing.
terminal Installation and usage
OCA documentation · Odoo 19.0Configuration
Source · Odoo 19.0If you want to add a closing template or check existing ones:
- Go to Accounting/Invoicing \> Configuration \> Fiscal year closing \> Closing templates.
- Click on Create.
- Put a name for the template.
- Mark if you want to check if there's any draft move in the date range before making the closing operations.
- Select the chart templates for which companies that have this chart you want this template to be available for.
- Add one line for each of the journal entries you want to create on the closing operation.
- This line has a name, a code, an optional journal (selectable per company), a sequence for ordering this line with the others, and the type we want to assign on the resulting journal entry created.
- Then you can configure accounts for being mapped on the section "Accounts mapping".
- If you put a destination account on each mapping line, then the balance of the source account will be transferred to that account.
- If there's no destination account, then the balance of the account will be nullified through one or several journal items with the opposite balance.
- The way these opposite journal items will be created is determined by the closing type in the section "Account closing types":
- Balance: There will be only one journal item with the opposite balance.
- Un-reconciled: The opposite balance will be grouped by the partner field in the period journal entries.
- There's a default closing type to use, and you can specify others by account type.
- You can configure a closing operation for being the reverse move of another previous move generated by a closing operation (typically, the opening move after the closing one). For making that, fill the "Inverse config" field with the code of the closing operation you want to reverse, and place this operation after that one (not necessarily immediately after).
- The balances of the inverted journal items and the initial ones are reconciled by default.
Usage
Source · Odoo 19.0For closing a fiscal year:
- Go to Accounting \> Adviser \> Fiscal year closings
- Click on create.
- Select the year for which you want to perform the closing. If your fiscal year doesn't coincide with a natural year, input the last year of both of the involved years.
- Select the closing template you want to use.
- Click on "Calculate".
- Check the result clicking on the "Show Moves" or "Show Move Lines" buttons.
- If everything is OK, then click on "Confirm and post moves" for finishing the closing, posting and reconciling the journal entries.
- You can cancel the closing in any moment pressing "Cancel" button, which unreconciles and removes closing journal entries.
- If one of the created journal entries is unbalanced, as Odoo doesn't allow to create unbalanced entries, a new screen will be shown for checking the problem on the created entry.
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.