Account Document Reversal
By Odoo standard, when an account document is cancelled, its journal entry will be deleted completely. This module enhance the process, instead of deletion, it will create new reversed journal entry. This will help preserved the accounting history, which is strictly required by some country.
Following are documented provide this feature,
- Invoice (account.invoice)
- Payment (acccont.payment)
- Bank Statement (account.bank.statement.line)
Remarks on changes when compare to version 12
Odoo 13 has removed account.invoice, as such Invoice is no longer a front-end document which generate account.move as a back-end document when validated.
Invoice is now account.move itself and force following changes,
- Canceled invoice (account.move) will create reversed account.move of type 'entry' to itself
- Canceled invoice (account.move) status is 'posted', with the new flag 'cancel_reversal = True'
- As result, cancel a posted invoice with reversal (state=posted) is now different from cancel from draft (state=canceled)
- When invoice or payment is reversed canceled, it will not allowed set to draft, in practice it will be frozen.
- The reversed canceled document (both invoice, payment, statement line) will still keep the relation with its journal entries
auto_awesome What this module does
AI-generated from the code · Odoo 13.0Instead of deleting journal entries when you cancel an invoice, payment or bank statement line, this module creates a reversed entry so the accounting history is preserved. You choose per journal whether cancellation deletes or reverses.
This module changes what happens when you cancel an accounting document. Normally Odoo deletes the journal entry; here, if the journal is configured for it, a reversed entry is created instead, keeping the original record visible.
Where it appears:
- On the journal form (Accounting settings), a new "Cancel Option" group lets you pick the cancel method: normal (delete entries) or reversal (create reversed entries). You can also tick "Use different journal for reversal" and choose a default reversal journal.
- On invoices and journal entries (account.move), a "Cancel Entry" button appears when the journal uses reversal. A "Cancelled" ribbon and a "Reversed by" link show the reversal relationship.
- On payments (account.payment), a "Cancel" button triggers the reversal wizard.
- On bank statement lines, cancelling reconciliation uses the same wizard.
- An invoice list filter "Cancelled" shows both cancelled and reversal-cancelled documents.
Business rules and automatic behaviour: - Only posted documents can be cancelled by reversal; only fully unpaid invoices can be reversed. - A wizard asks for the reversal date and, optionally, a different reversal journal. - Reversal entries are created as journal entries, and the original document is flagged as cancelled by reversal. - Such frozen documents cannot be set back to draft or unreconciled. - Sale and purchase order lines correct their invoiced quantities to account for reversal entries. - Bank statement lines can only be cancelled while the statement is still open.
Depends on
Models and fields (9)
- account.move · new modelcancel_reversal (Cancel Reversal), reverse_entry_id (Reversed by)
- account.journal · extends an existing modelcancel_method (Cancel Method), is_cancel_reversal (Use Cancel Reversal), reversal_journal_id (Default Reversal Journal), use_different_journal (Use different journal for reversal)
- account.payment · new model
- sale.order.line · extends an existing model
- account.move.line · extends an existing model
- purchase.order.line · extends an existing model
- reverse.account.document · new modeldate (Reversal date), journal_id (Reversal Journal), use_different_journal (Use different journal for reversal)
- account.document.reversal · new modelis_cancel_reversal (Use Cancel Reversal)
- account.bank.statement.line · new model
Text generated by AI (DeepSeek) from reading the Odoo 13.0 code on GitHub; it may contain mistakes, so check the code before deciding. View the code on GitHub
Availability by version
Reviewed: 2026-11-03Confirmation status: 2 confirmed, 7 with no information of 9 versions.
Sources · Odoo 12.0
Confirmed on 2026-11-03 in branch 12.0 of OCA/account-financial-tools.
terminal Installation and usage
OCA documentation · Odoo 13.0Configuration
Source · Odoo 13.0To use document reversal, setup the document's journal as following,
- Allow Cancelling = True
- Cancel method = Reversal (create reversed journal entries)
Usage
Source · Odoo 13.0After configure document journal to allow cancel with reversal, it is ready to use.
- Cancel document as normally do, system will show new cancel wizard
- User can select cancel date and new journal (if different from the document) which will be used for the reversed journal 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.