Back to Blog

April 14, 2026

Odoo Accounting Just Turned Year-End Reporting Into a Collaborative Document With Signatures Built In

Odoo's Accounting module now generates full annual and audit reports from pre-configured templates, edits them inside a Knowledge-powered workspace, captures electronic signatures on attestations, and exports the whole package to a branded PDF.

Annual reports are the one piece of accounting work that every finance team dreads for reasons that have nothing to do with the numbers. The numbers are the easy part. The hard part is assembling the narrative around them — the attestation letters, the customized balance sheet, the profit and loss commentary, the appendices full of supporting PDFs, the signatures from the people legally responsible for each section. For years, that assembly job has lived outside the ERP, spread across Word documents, email threads, and whatever drive someone’s intern decided to use last December.

Odoo just pulled the whole process back into the Accounting module. A new Annual Report feature lets finance teams generate a year-end package from a pre-configured template, edit it inside a document-style workspace, capture electronic signatures on each attestation, and export the finished report as a branded PDF. It is the first time Odoo has treated the annual report as a first-class object inside the accounting app rather than an external artifact that happens to reference accounting data.

A Kanban Board of Draft Reports

The entry point is a new menu under Accounting → Review → Annual Report. Opening it reveals a Kanban view of every annual report the company has in flight, each one shown as a card with its draft status. Creating a new report is a three-field form: a title, a start and end date for the period being reported on, and a list of responsibles who need access to collaborate. Save it, and a fresh Draft card appears in the Kanban view, ready to be filled in.

The responsibles field is worth pausing on. It does not just gate access — it also decides where the underlying document lives in the Knowledge app. A report with no collaborators stays under the creator’s Private sidebar, invisible to everyone else. The moment a second responsible is added, the whole document is promoted to the Shared category so the full team can jump in. It is a small detail, but one that sidesteps the usual headache of “can you share that with me? I can’t find it in my workspace.”

The Editor Is Knowledge, Not a Form

Click into a draft card and the annual report opens inside Knowledge, Odoo’s document editor. This is arguably the most important design decision in the whole feature. Annual reports are long, structured, text-heavy documents with tables, images, nested sections, and formatted narrative. A traditional Odoo form view — the kind finance teams are used to for invoices and journal entries — would have been the wrong tool. Knowledge is the right one.

The sidebar tree on the left shows every section of the report in hierarchy. Clicking a section opens it in the main editing area. The top-level sections are pre-seeded from the template and cover everything a typical audit package needs:

  • Attestation— a block of dynamic text that pulls in the company name, dates, and other values automatically at export time. Each attestation has a toggle to include or exclude it from the final PDF, so a single template can serve companies with different signing requirements without duplicating content.
  • Balance Sheet— opens a customization panel that applies filters and display options to the standard Odoo balance sheet report. Whatever you configure here is reflected exactly in the exported PDF.
  • Profit and Loss— same model as the Balance Sheet. Customize filters and options once, and the exported document matches.
  • Annexes— a catch-all section for additional accounting reports, manually written articles, or any other supporting content that belongs in the package.
  • Supporting Documents— a drop zone for PDF uploads. Anything uploaded here gets included in the final export by default.

Electronic Signatures on Attestations

The attestation sections tie into Odoo’s existing Sign module. When an attestation is enabled, clicking the Signature button on the section lets the responsible user apply their saved signature with one click. First-time signers go through a short setup to define a signature or initials, then tap Adopt & Sign to commit it. The signature is stored as part of the attestation block itself, which means the final PDF export carries the signed mark in the exact place the auditor expects to find it.

For companies that send annual reports to external stakeholders, this closes a loop that used to require exporting to PDF, importing the PDF into a separate signing tool, downloading the signed version, and re-attaching it to whatever internal record counted as the source of truth. Now the signing and the source of truth are the same document.

Building the Annexes Section

The Annexes area is where most of the manual work happens, and it gives teams two ways to add content. The first is Load a Template, which pulls in pre-defined blocks — extra accounting reports, supporting schedules, or standard appendix items — that are not included in the default report structure. Each block in the template has its own toggle, so unused content can be hidden without being deleted, which keeps the template reusable for the next reporting period.

The second option is Add an Article, which drops a blank Knowledge article into the Annexes section. This is where custom narrative content lives: risk analyses, management commentary, segment reports, anything that does not have a template but needs to be in the final package. Because each article is a full Knowledge document, it supports the same rich text, tables, and embedded views that any other Knowledge article does.

Both the sidebar tree and the main editing area support drag-and-drop reordering. If the auditor wants the Profit and Loss section before the Balance Sheet, dragging it into place takes seconds. Removing a section is done by dragging it into the Trash icon in the sidebar, or hovering over a block in the main view and clicking the trash icon that appears. A plus icon next to any section lets the user nest a new article under it, making the entire document structure as deep or as flat as the company’s reporting conventions require.

Supporting Documents as First-Class Attachments

The Supporting Documents section is explicitly designed for PDF uploads. The expected workflow is straightforward: the finance team gathers bank confirmations, vendor statements, signed board resolutions, and anything else that needs to travel with the annual report, and uploads each file through the section’s Upload files action. Those PDFs become part of the report itself, not separate attachments on a record.

At export time, the annual report decides whether to include these supporting files based on a toggle in the download dialog. That means a company can publish a lean public version of the report without the appendices while keeping a full internal version with every supporting PDF attached, without maintaining two separate documents.

Two Export Paths, Same Source

Exporting the finished report is handled from inside the Knowledge editor. Clicking the ellipsis menu in the top right corner exposes a Download Annual Report action, which opens a short dialog with toggles for including or excluding sub-articles and uploaded PDF files. The resulting download is a single PDF that consolidates every enabled section, every toggled-on attestation (with signatures), every customized financial statement, every included annex, and every attached supporting document into one file.

The second path is the Print button on the Kanban card back on the Annual Report menu. Print always includes sub-articles and uploaded files by default, which makes it the shortcut for generating the complete internal version of the report without walking through the download dialog every time.

Both export paths pull the company logo from the standard company form and place it on the cover page automatically. For multi-company setups, that means the correct branding lands on the correct report without any manual template swapping.

Why This Is Bigger Than It Looks

On the surface, this is a documentation feature: a new menu, a new template, a way to package existing reports into a single PDF. But the implications for how finance teams work inside Odoo are significant. Before this release, the annual reporting cycle was a hybrid process — numbers lived in Odoo, narrative lived in Word, signatures lived in a separate signing tool, and the final package lived wherever someone remembered to save it. The new Annual Report feature collapses all four of those locations into one.

That collapse changes the audit trail as much as it changes the workflow. When the balance sheet in the annual report is a customized view of the live Odoo report, there is no question about which numbers were used on which date. When attestations are signed inside Knowledge, there is no gap between the document the signer reviewed and the document the auditor receives. When supporting PDFs are attached inside the report object, there is no missing appendix problem at filing time.

For businesses that run Odoo as their primary ERP and treat year-end close as a quarter-long project, the feature removes several hand-offs that historically caused the most friction. Finance can draft. Responsibles can review and sign. Auditors can receive a single PDF with everything inside. And next year, the template is right where you left it, ready to be duplicated for the new reporting period with one click.

The Small Details That Matter

A few touches in the implementation deserve attention. The configure option, which lets users edit a report’s title, dates, or responsibles, is tucked behind the vertical ellipsis on the Kanban card rather than cluttering the main editor toolbar — a reminder that the metadata of a report is rarely changed after creation and does not belong in the primary editing surface. Marking a report as Done or deleting it uses the same ellipsis menu, keeping the lifecycle actions together and out of the editor’s way.

Inside the editor, the show and hide sub-articles toggle makes the document tree easier to scan for reports with dozens of nested articles. Templates that load extra items come with their own toggles per section, so the same master template can serve a small company with a minimal filing and a large one with extensive annexes without maintaining two different templates. These are the kinds of affordances that get added after someone has actually built an annual report inside the tool and discovered which parts of the workflow are painful.

The overall feel is that Odoo looked at a reporting job that almost every company does, realized that the friction was in the document assembly rather than the financial calculations, and built the missing half. It is not the kind of feature that shows up on a comparison chart between ERPs, but it is exactly the kind of feature that changes how a finance team spends the last two months of its fiscal year.

Ready to experience Odoo AI?

Join hundreds of teams using DearERP to customize Odoo in minutes, not weeks. Plans start at $29/month.