OdooWiki OCA HUB

Account Payment Internal Transfer

account_payment_internal_transfer folder_open OCA/account-payment open_in_new
Accounting/Accounting License: LGPL-3

This module restores the internal transfer functionality for payments that was available in previous Odoo versions but was removed.

Now the recommended approach for internal transfers requires waiting for bank statement lines to be imported and then using reconciliation models. This workflow has significant drawbacks:

  • Users cannot register transfers at the moment they occur
  • There is a risk of forgetting unreconciled transactions if bank statements are delayed
  • Users without direct bank access have no way to track pending transfers
  • The workflow is tedious and error-prone

This module allows users to register internal transfers immediately when they happen, creating the intermediate journal entries with outstanding accounts. Later, when bank statements are imported, each side can be reconciled independently. This results in 4 journal entries total (2 payments + 2 bank statement reconciliations).

Features:

  • Create internal transfers directly from the Accounting Dashboard
  • A paired payment is automatically created in the destination journal
  • Their journal entries are automatically reconciled
  • Proper labels are set on journal items for easy identification
  • Cancel and reset to draft cascades to the paired payment
  • Deleting a transfer also deletes the paired payment
  • Search filter to easily find internal transfers in the payments list

auto_awesome What this module does

AI-generated from the code · Odoo 18.0

Lets accountants register money transfers between two bank or cash journals directly from a payment, automatically creating the matching payment in the destination journal.

This module brings back the ability to record an internal transfer between two bank or cash journals at the moment it happens, instead of waiting for bank statements.

Where it appears: - On the accounting dashboard, each bank/cash journal card gets an "Internal Transfer" link next to the other quick actions. - On the payment form, a new "Internal Transfer" checkbox and a "Destination Journal" field appear; a message warns that a second payment will be created automatically. - In the payments list, a new "Internal Transfers" filter lets users show only these transfers.

How it behaves: - When a transfer payment is posted, Odoo automatically creates and posts a paired payment in the destination journal, with the opposite direction, the same amount, date and currency, and the company as partner. Each payment is linked to the other, and a "Paired Payment" button opens the counterpart. - The two payments are reconciled against the company's transfer account, and the journal entry lines are labelled "Transfer to/from <journal>" and "Internal Transfer". - Cancelling or resetting one payment to draft also cancels or resets its pair. - An internal transfer can only be deleted while in draft; otherwise an error asks the user to reset it first. Deleting one also deletes its pair. - The checkbox and destination journal can only be changed while the payment is in draft.

It works on account.payment and account.journal.

Depends on

account
Models and fields (2)
  • account.journal · extends an existing model
  • account.payment · extends an existing modelis_internal_transfer (Internal Transfer), destination_journal_id (Destination Journal)

Text generated by AI (DeepSeek) from reading the Odoo 18.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-03
Confirmed (verified in repository and branch) Estimated (unverified) No information

Confirmation status: 1 confirmed, 8 with no information of 9 versions.

Sources · Odoo 18.0

Confirmed on 2026-11-03 in branch 18.0 of OCA/account-payment.

terminal Installation and usage

OCA documentation · Odoo 18.0

To create an internal transfer:

  • Go to Accounting Dashboard
  • Click on the menu (three dots) of a Bank or Cash journal
  • In the "New" section, click on "Internal Transfer"
  • Select the destination journal
  • Enter the amount
  • Confirm the payment

The system will automatically:

  • Create a paired payment in the destination journal
  • Use the company's transfer account for the counterpart
  • Reconcile both transfer lines automatically

To find existing transfers, use the "Internal Transfers" filter in the payments search view.

When cancelling, resetting to draft, or deleting one side of the transfer, the paired payment is automatically updated as well.

No verified information in OCA: Installation, Configuration.

info

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.