| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Invoicing (account)
• Discuss (mail) |
| Lines of code | 26 |
| Technical Name |
l10n_ro_statement_line_automation |
| License | AGPL-3 |
| Website | https://www.nexterp.ro |
| Versions | 18.0 19.0 |
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Invoicing (account)
• Discuss (mail) |
| Lines of code | 26 |
| Technical Name |
l10n_ro_statement_line_automation |
| License | AGPL-3 |
| Website | https://www.nexterp.ro |
| Versions | 18.0 19.0 |
Romania - Statement Line Automation
Automatically create bank statements in statement lines
Overview
Automate the attachment of bank statement lines to a parent bank
statement on Romanian companies. When a new line is created without a
statement_id, the module looks for an existing statement on the same
journal and date, creates one if it does not exist, and links the line
to it.
This avoids the manual step of opening or creating a daily statement before importing bank transactions — useful for setups that ingest statement lines through MT940 / CAMT.053 parsers, OCR uploads or external feeds, where the source format only carries the line and not its statement wrapper.
The behaviour is gated on the company's country code being RO, so
multi-company databases that mix Romanian and non-Romanian entities
keep the standard Odoo behaviour everywhere else.
Built & supported by NextERP Romania
Romanian Odoo specialists, here for the long run — from implementation to localization and day-to-day production support.
What we do
Odoo Solutions
From quick-start rollouts to multi-company deployments and custom modules built for your processes.
Romanian Localization
SAF-T (D406), e-Factura, e-Transport, D300 / D390 / D394, ANAF integration, full chart of accounts and fiscal positions.
Our Services
Implementation, customization, migration, integration, support and consultancy — Romanian-speaking, SLA-backed.
Features
- Country-scoped automation — the create override on
account.bank.statement.lineruns only when the company's country code isRO, leaving other localisations untouched. - Date + journal grouping — a new line without
statement_idis attached to the existingaccount.bank.statementthat matches itsjournal_idanddate; one statement per journal per day. - On-demand statement creation — if no matching statement exists,
one is created with the line's date used as both
dateandname, then linked to the line. - Balance recomputation — after the link is set, the module
triggers
_compute_balance_endand_compute_balance_end_realon the statement so the running balance stays consistent with the new line. - Batch-friendly — implemented through
@api.model_create_multi, the override processes each record of a multi-create call individually, which keeps it compatible with bulk imports from parsers and connectors. - No new UI — the module adds no fields, views, menus or configuration; behaviour is automatic on record creation.
- No data files — installation simply loads the model override; there is nothing to seed or migrate.
Configuration
The module is dependency-driven: install it and the automation runs as soon as a Romanian company creates a bank statement line. There are no settings, no menus and no user-facing toggles.
1. Install dependencies
The manifest depends on:
account— bank statement and statement line models.l10n_ro— Romanian localisation; required so the country detection onres.companymatches a real installed chart.
Both must be installable in the database before this module.
2. Set the company country
Go to Settings → Companies → Companies and open the Romanian
company. Make sure Country is set to Romania (RO). The
automation reads record.company_id.country_id.code to decide whether
to run, so any company with a different country code is skipped.
3. Configure a bank journal
Go to Accounting → Configuration → Journals and ensure each bank journal that receives lines has the right currency and accounting defaults. The module does not create journals; it only attaches lines to statements within an existing journal.
4. Optional — import pipelines
The automation is most useful when statement lines arrive without a parent statement, for example:
- CAMT.053 / MT940 imports via
account_bank_statement_import_*modules that read one transaction per line. - OCR uploads through
account_invoice_extractor a custom connector that drops lines into a journal. - External connectors posting
account.bank.statement.linerecords via XML-RPC /webAPI.
No specific setup is required on these pipelines — once they create
the lines, this module fills in statement_id.
5. User access
The override runs in sudo-less context as the user who creates the
line. Standard Accounting access on
account.bank.statement / account.bank.statement.line is enough; no
extra security groups are added.
How it works
The whole module is one override on account.bank.statement.line.create.
There is nothing to click — usage is observing the side effect when
new lines are created.
Trigger
A new account.bank.statement.line is created (single record or batch)
on a company whose country is RO, and statement_id is not set in
the vals.
Resolution
For each affected line, the override:
- Searches
account.bank.statementfor a record withjournal_id == record.journal_idanddate == record.date. - If a statement exists, links the line to it.
- If no statement exists, creates one with
journal_id,date, andname = date, then links the line to the new statement. - Calls
_compute_balance_endand_compute_balance_end_realon the resulting statement so the closing balance is refreshed immediately.
Typical flow
- A bank-statement importer (CAMT.053, MT940, custom feed) calls
create()onaccount.bank.statement.linewith one record per transaction. - Odoo would normally leave each line orphaned until a user opens Accounting → Bank → Bank Statements and creates a daily statement.
- With this module installed, the line is already attached to a
per-journal, per-date statement by the time
create()returns. - Open Accounting → Bank to find the statement listed with its computed end balance; the lines are visible inside it.
What it does not do
- Does not reconcile or match the line to a journal entry.
- Does not change the line's amount, partner or labels.
- Does not run on non-Romanian companies, even in a multi-company database.
- Does not create statements for lines that already have a
statement_id.
Versions
19.0.0.0.0 (2026-05-25)
- Changelog tracking starts at this release.
Discover the NextERP suite
Other modules from the same publisher, built to work together.
NextERP Romania
Odoo implementation, customization, Romanian localization and long-term support since 2018.
Please log in to comment on this module