How Banks Actually Store Money
Ledgers, liabilities, and what “real-time” really means under the UI
Hello all.
Welcome and welcome back.
Today, we are going to look at how banks store money.
If you have ever wondered how a bank stores money, or where the money actually goes in a bank, you’re in the right place.
So, let us begin with the question of the day.
How does a bank store money?
At its core, a bank does not store money as most people imagine.
A bank actually stores records, not physical cash. More specifically, a bank maintains a ledger of claims and obligations. This ledger is the most foundational part of banking. Everything else in modern banking, including mobile apps, cards, IBANs, and wires, sits on top of this ledger. The ledger is the accounting truth. Moreover, if the ledger is wrong, nothing else matters.
What is a bank account, really?
To understand how those records are tied to individuals or businesses, we need to understand what a bank account actually is.
It is tempting to think of a bank account as a container of money. A more accurate way to think about it is as a ledger entry representing the bank’s liability to a customer.
What does that mean in practice?
If your bank balance reads 10,000 USD, that does not mean the bank is holding a specific pile of 10,000 USD on your behalf, with your name on it! It means the bank owes you 10,000 USD.
From an accounting perspective:
The customer balance is a liability for the bank.
A loan issued by the bank is an asset for the bank.
If you’re also anointed and aware of the world of accounting, you’ll know this is standard double-entry accounting, not a fintech invention.
How is an account created?
When a bank opens an account, no money moves.
Instead, the bank creates a ledger account identifier and associates it with:
A customer or legal entity,
a currency,
and a set of rules such as overdraft permissions, interest treatment, or restrictions.
The balance starts at zero. There is no transfer of funds at account creation. There is only a record at creation.
Before computers, this same logic existed on paper. Clerks maintained handwritten or mechanical ledgers where debits and credits were recorded manually. And over time, while the method of recording this has changed, the model has not. My next question is, then ok, where is the money actually stored inside a bank? How is the division between a customer account, the bank’s account/balances with other banks, etc., noted?
This is where things get more confusing. Money in banking exists in layers, not in a single place.
1) Internal bank ledger (customer balances)
This is the layer customers interact with.
It is the source of accounting truth for customer balances.
It lives in the bank’s core ledger.
It is typically updated immediately when transactions occur.
Again, this layer represents claims and records, not physical cash.
2) Bank settlement accounts (nostro accounts)
Banks also hold accounts with other banks or with the central bank. These are called nostro accounts, meaning “our money with you”. They are used to settle obligations between banks, like when you send money to an account at another bank.
Unlike customer balances, these accounts:
Update more slowly,
are often batch-processed,
and may lag what customers see internally.
3) Central bank money
This is the final settlement layer. Central bank money is used to settle obligations between banks themselves. Customers never interact with this layer directly, but it sits beneath the entire money system within a bank.
The key (and maybe surprising) insight
Customer money and settlement money are not the same thing.
A customer’s balance can change instantly in the internal ledger, while the actual interbank settlement may happen later, or even fail and require correction.
This separation is why:
Payments are asynchronous,
reconciliation exists,
reversals and adjustments are necessary,
and “real-time” banking often only applies to the customer-facing layer.
What does a “real-time” transaction actually look like under a bank’s UI?
When a banking app shows a transaction as “completed” or “instant”, that does not mean money has physically moved between banks in real time.
Let’s walk through what actually happens. When you make a transfer, card payment, or withdrawal, the bank first updates its internal ledger. This ledger records that your balance has changed and reflects the bank’s new obligation to you. At this point, your balance changes immediately, the UI updates instantly, and, from the customer’s perspective, the transaction appears complete. However, this is only the internal accounting step. Simultaneously and behind the scenes, a second process begins. The bank initiates external settlement, which may involve another bank, a payment scheme, or the central bank. This process is slower, asynchronous, and subject to batching, cut-off times, and failure.
So what looks like a single real-time transaction in the app is actually two different things happening on different timelines: 1) an immediate update to the bank’s internal ledger, and 2) a delayed settlement process between institutions.
This is why banks can show you money instantly while still taking hours or days to settle transactions with other banks fully.
Why does the bank do it this way?
Because the internal ledger represents promises, not the physical movement of cash.
Banks assume that most settlements will succeed. Updating the ledger immediately provides a good customer experience and allows the system to continue operating smoothly. If something goes wrong later, the bank does not erase history. Instead, it applies reversals or compensating entries to correct the ledger while preserving a complete audit trail. This design is intentional. It is what allows banking systems to be fast, auditable, and resilient at the same time.
The important distinction
“Real-time” banking usually means real-time ledger updates and real-time customer visibility. Real-time does not mean real-time interbank settlement and real-time finality at the central bank level. Those are different layers of the system.
Understanding this distinction is critical because most of the complexity in banking exists in the gap between what the customer sees and what settles externally.
Thank you for reading, and Happy New Year!
Next time, we will discuss why payments are slow (and why they fail). After that, we will discuss core ledgers (primitives, invariants, append-only systems).
Bye.