| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Invoicing (account)
• Discuss (mail) |
| Lines of code | 312 |
| Technical Name |
zxs_internal_payment_transfer |
| License | LGPL-3 |
| Website | https://www.zarixsol.com |
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Invoicing (account)
• Discuss (mail) |
| Lines of code | 312 |
| Technical Name |
zxs_internal_payment_transfer |
| License | LGPL-3 |
| Website | https://www.zarixsol.com |
Internal Payment Transfer
Odoo 19 • Community & Enterprise • Bank & Cash Transfers • By Zarixsol
Internal Payment Transfer for Odoo 19
Restore the classic Odoo internal liquidity transfer workflow removed in Odoo 19. Move money between any bank or cash journal with one Send payment â the matching Receive payment, journal entries, and transfer account reconciliation are handled automatically. Supports Bank → Bank, Bank → Cash, Cash → Bank, and transfers between all other internal payment journals in your company.
Key Highlights
Core capabilities at a glance
Bank & Cash
Transfer between journals
Paired Payments
Auto Send & Receive
Journal Entries
Posted on both sides
Reconciliation
Transfer account cleared
Supported Transfer Scenarios
Every combination of bank and cash journals in the same company â one Send payment, fully automated on both sides
Bank → Bank
Transfer funds between two bank journals â for example from your Main Operating Bank to a Payroll Bank or Foreign Currency Bank account.
- Create a Send payment on the source bank journal
- Set Destination Journal to the target bank journal
- Source bank is credited; destination bank is debited
- Liquidity Transfer account clears to zero after reconciliation
Bank → Cash
Move money from a bank account into a cash journal â the most common scenario for funding Petty Cash, Branch Cash, or On-hand Cash from the company bank.
- Example: Bank → Petty Cash (shown in screenshots below)
- Send payment on the bank journal; Receive auto-posted on cash journal
- Ideal for ATM withdrawals and daily cash float top-ups
- Both journal entries linked via Paired Transfer smart button
Cash → Bank
Deposit cash back from a cash journal into a bank journal â record end-of-day cash deposits, branch collections, or surplus petty cash returned to the bank.
- Create a Send payment on the cash journal (source)
- Set Destination Journal to the bank journal
- Cash account credited; bank account debited on confirmation
- Reverse of Bank → Cash â same automated paired-payment workflow
Between Other Internal Payment Journals
Transfer between any two different bank or cash journals configured in your company â not limited to a single bank and a single cash account. Works across all internal liquidity journals.
- Cash → Cash â e.g. Head Office Cash → Branch Petty Cash
- Bank → Bank â e.g. USD Bank → PKR Bank (separate journals)
- Any journal with type Bank or Cash as source or destination
- Source and destination must be different journals in the same company
Availability
Free open-source module (LGPL-3) â install on Odoo.sh or your own server
Odoo Online
Not available â Odoo SaaS does not support third-party Apps Store modules.
Odoo.sh
Supported â install from the Odoo Apps store or add this module to your Odoo.sh repository.
On Premise
Supported â copy to your addons path on Community or Enterprise instances.
License: LGPL-3 • Price: Free • Editions: Community & Enterprise • Depends on: Invoicing (account) only
Supported Odoo Editions
Works on both Community and Enterprise â same features, no edition lock-in
Odoo 19 Community
Fully supported. Install on your Community instance with the standard account (Invoicing) module only â no Enterprise apps required. All transfer scenarios, paired payments, journal entries, and reconciliation work out of the box.
Odoo 19 Enterprise
Fully supported. Integrates seamlessly with Enterprise Accounting â journal dashboard, Internal Transfers menu, payment forms, and General Ledger reporting work identically on Enterprise with no extra configuration.
Why Zarixsol
Built for accountants who need the familiar Odoo internal transfer flow back in Odoo 19
Odoo 19 Community & Enterprise
Same internal transfer workflow on both editions â depends on account only, no Enterprise-only modules
No Extra Services
Works with standard Odoo Accounting only
Dashboard Access
Create transfers from journal dashboard
Dedicated Support
Implementation and deployment help
Key Features
Everything you need to move funds between journals â on Odoo 19 Community & Enterprise
Internal Transfer Flag
Mark any payment as an internal transfer and pick the destination journal.
Paired Payments
Confirming a Send payment auto-creates and posts the matching Receive payment.
Paired Transfer Button
Jump between linked Send and Receive payments in one click.
Auto Journal Entries
Bank/cash and liquidity transfer lines posted on both journals.
Auto Reconciliation
Liquidity transfer account reconciled to zero balance.
Journal Dashboard
Quick Internal Transfer action on bank and cash journal kanban.
Full Features
Multi-Company
Uses company internal transfer account
Dedicated Menu
Accounting → Internal Transfers list view
GL Traceability
Full audit trail in General Ledger
All Transfer Scenarios
One module handles every internal liquidity movement across your bank and cash journals
Bank → Bank
Move balances between bank journals â operating account to payroll bank, local to foreign currency bank, or any two bank journals. Send from the paying bank; Receive posts on the receiving bank automatically.
Bank → Cash
Withdraw from bank and fund a cash journal â petty cash, branch cash box, or on-hand cash float. Bank is credited on Send; cash journal is debited on the auto-created Receive payment.
Cash → Bank
Deposit cash collections back to the bank â end-of-day deposits, surplus petty cash returns, or branch cash consolidation. Send from the cash journal; bank Receive is created and posted automatically.
Other Internal Payment Journals
Any other bank or cash journal pair in the same company â including Cash → Cash (e.g. HQ Cash → Branch Petty Cash) and multiple bank/cash journals beyond the standard setup. Same Internal Transfer workflow; only source and destination journals change.
Screenshots
Walkthrough using the Bank → Cash scenario â the same steps apply to Bank → Bank, Cash → Bank, and all other internal journal pairs
Navigate to Accounting → Dashboard to see all bank and cash journal cards. Click the three-dot menu on any bank or cash journal (e.g. Petty Cash) and choose Internal Transfer under the New column. This opens a pre-filled payment form with Internal Transfer enabled, the source journal set to the card you clicked, and Payment Type defaulting to Send â ready for you to enter the amount and destination journal.
The payment form shows Internal Transfer checked with Send selected as the payment type. Set the Journal to Bank (source) and Destination Journal to Petty Cash. Enter the transfer amount (e.g. 1,000.00 Rs.), date, and payment method, then confirm. Once posted, the status moves to Paid. Use the Journal Entry smart button to review accounting lines, and the Paired Transfer button to jump to the matching Receive payment created automatically on the destination journal.
Confirming the Send payment posts journal entry PBNK1/2026/00001 in the Bank journal. The Journal Items tab shows two balanced lines: Bank is credited 1,000.00 Rs. (funds leaving the bank account) and the company Liquidity Transfer account is debited 1,000.00 Rs. (funds in transit). Both lines use the label Transfer from Bank with the company partner. The entry is fully Posted and linked back to the payment via the 1 Payment smart button.
When the Send payment is confirmed, the module automatically creates the matching Receive payment PCSH1/2026/00001 on the Petty Cash journal â no manual second entry needed. The form shows Internal Transfer checked with Receive selected, the same amount and date, and Destination Journal pointing back to Bank. The payment is posted to Paid immediately. The Paired Transfer smart button links this record to the original Send payment so you can navigate between both sides in one click.
The Receive payment posts journal entry PCSH1/2026/00001 in the Petty Cash journal. The Journal Items show Petty Cash debited 1,000.00 Rs. (funds arriving) and Liquidity Transfer credited 1,000.00 Rs. (clearing the in-transit balance). Both lines are labelled Transfer to Petty Cash. The module reconciles the Liquidity Transfer lines from the Send and Receive entries, which is why the Reconciled Items smart button appears on the posted entry.
Open Reporting → General Ledger to verify the complete transfer. The Bank account shows a 1,000.00 Rs. credit from PBNK1/2026/00001 (balance −1,000.00 Rs.). The Liquidity Transfer account shows equal debit and credit totalling 1,000.00 Rs. with a 0.00 Rs. balance â confirming both sides are reconciled. The Petty Cash account shows a 1,000.00 Rs. debit from PCSH1/2026/00001 (balance +1,000.00 Rs.). Total debits and credits balance at 2,000.00 Rs. each, giving full audit traceability.
All scenarios use the same workflow: Bank → Bank • Bank → Cash • Cash → Bank • Cash → Cash • and any other bank/cash journal pair.
Always create the Send payment on the source journal â the module auto-creates the matching Receive on the destination journal.
Quick Setup Guide
Get started in four simple steps
Install Module
Install from Apps on Community or Enterprise. Depends on Accounting (account) only.
Configure Transfer Account
Set Internal Transfer account under Accounting → Configuration → Settings.
Configure Journal Payment Methods
Set Outstanding Payments/Receipts on Manual payment methods for each bank and cash journal.
Create Internal Transfer
Accounting → Internal Transfers or journal dashboard. Pick source journal, enable Internal Transfer, set destination (Bank, Cash, or any other internal journal), and confirm Send.
FAQ
Frequently asked questions about internal payment transfers
Send or Receive â which do I use?
Always create the Send payment on the source journal. The module auto-creates the matching Receive on the destination journal.
Why is Odoo 19 different?
Standard Odoo 19 removed the dedicated internal transfer payment type. This module restores the familiar paired-payment workflow.
Which journals are supported?
All bank and cash journals in the same company. Supported scenarios: Bank → Bank, Bank → Cash, Cash → Bank, Cash → Cash, and any other pair of different internal payment journals. Sales, purchase, and general journals are not supported.
Can I transfer Bank to Bank?
Yes. Create a Send on the source bank journal and set Destination Journal to the target bank. The Receive payment, journal entries, and Liquidity Transfer reconciliation are created automatically.
Can I transfer Cash to Cash?
Yes. Use Cash → Cash when moving float between cash journals â e.g. Head Office Cash to Branch Petty Cash. Same Internal Transfer workflow: Send on source cash journal, Receive auto-created on destination.
Payment method error on confirm?
Configure Outstanding Payments and Outstanding Receipts on the Manual payment method for each journal.
Which Odoo version and edition?
Built for Odoo 19.0 on both Community and Enterprise. Depends only on the standard account (Invoicing) module â no Enterprise-only apps are required.
Is Enterprise required for any feature?
No. All features â internal transfers, paired Send/Receive payments, journal entries, dashboard shortcut, and reconciliation â work on Community and Enterprise alike.
Is it available on Odoo Online?
No. Third-party Apps Store modules cannot be installed on Odoo Online (SaaS). Use Odoo.sh or On Premise instead. This is a free LGPL-3 open-source module.
External API required?
No. Works entirely within Odoo Accounting. No subscription needed.
Releases
Version history and changelog
Version 19.0.1.0.2
- Open-source release under LGPL-3 license for Odoo Apps
- Apps Store description, screenshots, and availability documentation
- Supported scenarios: Bank â Bank, Bank â Cash, Cash â Bank, and other internal journals
Version 19.0.1.0.1
- Fix payment method line assignment on paired Receive payments
- Auto-select Manual payment method when confirming internal transfers
- Improved error messages for missing journal payment methods
Version 19.0.1.0.0
- Internal transfer flag and destination journal on payments
- Auto-create paired Send/Receive payments on confirmation
- Journal dashboard Internal Transfer action
- Accounting menu for Internal Transfers list
- Automatic liquidity transfer account reconciliation
Start Using Internal Payment Transfer Today
Move funds between bank and cash journals on Odoo 19 Community or Enterprise â Bank to Bank, Bank to Cash, Cash to Bank, and all other internal payment journals â with the familiar paired-payment workflow.
OUR SERVICES
Odoo Customization
Odoo Implementation
Odoo Support
Odoo Migration
Odoo Integration
Odoo Consultancy
Odoo Licensing
Hire Odoo Developer
info@zarixsol.com • www.zarixsol.com
Please log in to comment on this module