In fintech infrastructure, there are always two distinct realities: the Internal Ledger (Platform Reality) and the Bank Ledger (Settlement Reality).
The Internal Ledger represents intent. It records that User A sent money to User B at 10:00 AM. It drives the UI, allows the user to continue transacting, and represents the product's state.
The Bank Ledger represents settlement. It confirms that funds actually moved between custody accounts at 10:00 PM.
Building a product solely on top of banking APIs is a common architectural mistake. You cannot rely on the bank's ledger for product logic because it is slow, opaque, and outside your control.
The Latency Gap and "Shadow" Ledgers
The Internal Ledger functions as a "Shadow Ledger." It provides immediate feedback. When a user swipes a card or initiates a transfer, the Internal Ledger updates immediately (decrementing availability), even if the underlying payment rail (like ACH) takes 3 days to clear. Optimistic Locking: The Internal Ledger places a "hold" on funds. This prevents double-spending during the settlement latency period. Reconciliation as the Bridge: The reconciliation process is the mechanism that aligns these two ledgers. It confirms that the intent (Internal) matches the reality (Bank).
Ownership and Metadata
Banks store limited data. A bank statement line item might read ACH TRANSFER - STRIPE. It does not know that this transfer corresponds to Order #504 for Customer ID 99. Context Richness: The Internal Ledger holds the business context (User IDs, Product SKUs, Metadata). Immutable Source: The Internal Ledger allows you to rebuild your financial history independently of your banking partner. If you switch banking providers, you do not lose your transaction history because you own the primary ledger.