Overview
Moving money between your own bank accounts is one of the most common transactions in any bank feed, and SoftLedger handles it with one journal that codes both sides. This article walks through the three versions of a bank transfer, from simplest to most complex:
Same-location transfer — both banks belong to the same entity (Location)
Cross-location transfer — the banks belong to different entities, so the journal is an intercompany journal
Cross-location, cross-currency transfer — the banks belong to different entities and hold different currencies (for example USD to SGD)
Before you start, both bank accounts need a linked SoftLedger Ledger Account so their feeds appear under Cash Management > Bank Transactions. See the Bank Accounts article for setup.
The pattern: code once, link the other side
Every transfer appears twice in your bank feeds — once as money out of the sending bank, once as money in at the receiving bank. You only create one journal; the other bank line gets linked to it:
From one bank's feed, create the journal that codes both cash accounts (or cash + intercompany accounts).
Open the other bank's feed. SoftLedger's matching logic finds the journal you just created (same ledger account, matching amount, date within 45 days) and shows the + link icon on the line.
Click it, confirm the match, and both bank lines now show as reconciled against the same journal.
Note: Pick an order of operations and stick to it — for example, always create the journal from the sending bank's feed and link from the receiving side. Consistency keeps a team from accidentally journaling both sides.
Scenario 1: Transfer between banks in the same location
Both banks belong to the same entity, so this is a standard journal — cash to cash.
Go to Cash Management > Bank Transactions and select the sending bank.
Find the transfer line and select Create Journal. The form auto-populates the date, amount, description, and the sending bank's ledger account (credited, since money went out).
Code the other line to the receiving bank's ledger account (debit).
Submit.
Line | Account | Debit | Credit |
1 | Receiving bank (e.g. Revolut) | 284.33 |
|
2 | Sending bank (e.g. M&T) |
| 284.33 |
Then open the receiving bank's feed, find the incoming line, and link it to this journal via the + icon. Both feeds are now accounted for by one journal.
Scenario 2: Transfer between banks in different locations
When the sending bank sits in one entity (say, Consolidated) and the receiving bank in another (say, North America), cash moving between them is an intercompany transaction: each entity's standalone books need its own side, tied together with intercompany receivable/payable accounts.
Note: This requires the Intercompany Entries toggle under Settings > System. See the Intercompany Journal Entry article.
From the sending bank's feed, select Create Journal. The form pre-fills the sending side.
Change the journal type to Intercompany, with the sending entity as the Location and the receiving entity as the IC Location.
On the sending entity's lines: credit the sending bank, debit Intercompany Receivable.
On the receiving entity's lines: debit the receiving bank, credit Intercompany Payable. If you've set a Default Intercompany Account on your COA, SoftLedger selects the intercompany pairing automatically.
Submit.
The generated journal, using the video's example of 284.33 moving from M&T (Consolidated) to Revolut (North America):
Entity | Account | Debit | Credit |
Consolidated | Intercompany Receivable | 284.33 |
|
Consolidated | M&T Bank |
| 284.33 |
North America | Revolut Bank | 284.33 |
|
North America | Intercompany Payable |
| 284.33 |
Mark the intercompany lines to eliminate (the checkbox at the left of each line) so they offset in consolidated reporting. On standalone reporting each entity still shows its own side: money out plus a receivable at Consolidated, money in plus a payable at North America. Net-net, cash moved from M&T to Revolut.
Finally, open the receiving bank's feed and link its incoming line to this journal — the matching logic surfaces it because the journal carries a line on the receiving bank's ledger account for the same amount.
Scenario 3: Intercompany transfer across currencies (e.g. USD to SGD)
The most complex case: the sending bank and receiving bank belong to different entities and different currencies — say a USD bank in your US entity funding a SGD bank in your Singapore entity. Because a journal is denominated in a single currency, the cleanest approach is one journal per side, each in its own bank's currency, created from its own bank feed:
Sending side (USD): from the USD bank's feed, create a standard journal in USD — credit the USD bank, debit Intercompany Receivable — for the USD amount that left the account.
Receiving side (SGD): from the SGD bank's feed, create a standard journal in SGD — debit the SGD bank, credit Intercompany Payable — for the SGD amount that actually arrived.
Because each journal is created directly from its own bank line, both feeds reconcile automatically — no linking step needed.
Using each bank feed's actual amounts matters: the SGD received reflects the real conversion rate (including any bank spread and wire fees), so both cash accounts tie to their statements exactly.
Keeping the intercompany balances in sync: the receivable is carried in USD and the payable in SGD, so they won't be identical numbers — they represent the same economic balance in two currencies. Two things keep this clean:
FX remeasurement revalues the intercompany balances to current rates each period, with differences flowing to FX gain/loss. Make sure your intercompany accounts are set to remeasure.
Elimination at consolidation nets the two sides in your reporting currency; small residual differences from rate movement land in the consolidation's FX/CTA treatment rather than double-counting cash.
Note: If fees were deducted along the way (for example, a $15 wire fee), add a line for bank fees expense on the sending entity's journal so the cash movement still ties to the statement.
Good to know
One journal per transfer (or one per side in the cross-currency case) — never journal both bank feeds separately for the same single-currency transfer, or cash will be double-counted.
The link option has criteria: same ledger account as the bank's linked account, matching amount on the correct debit/credit side, unreconciled, and dated within 45 days of the bank line. See Bank Transactions for the full matching logic.
Bank Rules can automate the coding for recurring transfers — a rule keyed on the transfer description can pre-select the accounts. See Bank Rules and Suggestions.
Reconciliation flows through: journals created from or linked to bank lines carry the Reconciled flag into Cash Management > Reconcile automatically.
Did this answer your question? Reach out through the chat bubble or at support@softledger.com — happy to help.