Skip to main content

Core Banking System (CBS)

Overview

The Core Banking System (CBS) is the central software platform that manages a bank's primary banking operations — account management, transaction processing, product configuration, and customer records. Every payment, deposit, withdrawal, and account event ultimately flows through or is recorded in the core banking system.

Think of it as the single source of truth for:

  • What accounts exist
  • What balances they hold
  • What transactions have been posted
  • What products are configured

What CBS Does

                    ┌────────────────────────────────────────┐
│ CORE BANKING SYSTEM │
│ │
Channels │ ┌──────────┐ ┌──────────────────┐ │
├── Mobile App │ │ Account │ │ Ledger / │ │
├── Internet │ │ Mgmt │ │ Accounting │ │
├── Branch │ │ Module │ │ Engine │ │
├── ATM │ └──────────┘ └──────────────────┘ │
└── API │ ┌──────────┐ ┌──────────────────┐ │
│ │ │ Product │ │ Customer / │ │
└─────────►│ │ Config │ │ CIF Module │ │
│ └──────────┘ └──────────────────┘ │
Payments │ ┌──────────┐ ┌──────────────────┐ │
├── NPP │ │ Interest │ │ Reporting & │ │
├── BECS │ │ & Fees │ │ Statements │ │
├── SWIFT ────►│ └──────────┘ └──────────────────┘ │
└── RTGS │ │
└────────────────────────────────────────┘

Core Modules

1. Account Management

  • Create, modify, and close accounts
  • Manage account status (Active / Dormant / Closed / Blocked)
  • Maintain account linkages (offset accounts, joint accounts)
  • Account-level flags (direct debit allowed, international payments, etc.)

2. Customer Information File (CIF)

  • Central customer record (KYC details)
  • Links all accounts to a customer
  • Risk classification, PEP flags, relationship history
  • One customer → many accounts
CIF (Customer Master)
├── CustomerID: CUST-001
├── Name: Jane Smith
├── DOB: 1985-06-15
├── KYC Status: VERIFIED
├── PEP Flag: false
├── Risk Rating: LOW
└── Accounts:
├── Account 001 — Transaction (AUD)
├── Account 002 — Savings (AUD)
└── Account 003 — Term Deposit (AUD)

3. General Ledger / Accounting Engine

  • Double-entry bookkeeping
  • Posts debits and credits for every event
  • Maintains real-time account balances
  • Generates trial balances and financial reports

4. Product Factory / Configuration

  • Defines product parameters (interest rates, fees, limits)
  • Attaches rules to account types
  • Supports product versioning and promotional rates

5. Interest & Fees Engine

  • Calculates interest daily (accrual basis)
  • Credits/debits interest on schedule
  • Applies transaction fees, maintenance fees, dishonour fees

6. Statement & Reporting

  • Generates end-of-day camt.053 statements
  • Regulatory reports (APRA, AUSTRAC)
  • Customer statements

Common CBS Vendors (Market)

VendorProductNotes
TemenosTransact (T24)Very widely used globally
InfosysFinacleMajor in Asia-Pacific
OracleFLEXCUBELarge enterprise banks
FISProfile, BancWareUS/AU market
Thought MachineVaultCloud-native; newer generation
MambuMambuCloud-native; SaaS
TCSBaNCSLarge APAC banks
In-houseCustomSome major banks built their own

CBS and the Payment System

The CBS is not the payment engine itself — it is the system of record that payment engines connect to:

Payment Gateway / Processor
├── Receives pacs.008
├── Validates payment
├── Screens for sanctions/fraud
├── Calls CBS API: "Debit account X by $Y" ◄── CBS interaction
│ "Credit account Z by $Y" ◄── CBS interaction
└── Submits to NPP/RTGS/BECS

CBS:
├── Checks account status
├── Checks available balance
├── Posts the debit/credit entry
├── Updates balance
└── Returns transaction reference

Account Balance — How CBS Tracks It

Every transaction creates a ledger entry in CBS. Balance is derived from all entries:

// Simplified — real CBS uses optimised running balance
BigDecimal balance = ledgerEntries.stream()
.map(e -> e.isCrdt()
? e.getAmount()
: e.getAmount().negate())
.reduce(BigDecimal.ZERO, BigDecimal::add);

Balance Types in CBS

BalanceFormulaPurpose
Ledger BalanceSum of all booked entriesBank's books
Available BalanceLedger − HoldsWhat customer can spend
Cleared BalanceBooked entries past clearing windowNo reversal risk
Shadow/Memo BalancePre-booked/authorised amountReal-time view

CBS APIs for Payment Systems

Modern CBS platforms expose APIs that payment processors call:

// Typical CBS API contract for payments
interface CoreBankingService {

// Check available balance before payment
BalanceResponse getAvailableBalance(String accountId);

// Reserve funds (debit hold)
HoldResponse createHold(String accountId, BigDecimal amount, String reference);

// Convert hold to final debit
PostingResponse finaliseDebit(String holdId, String txReference);

// Release a hold (payment cancelled)
void releaseHold(String holdId);

// Direct credit (no prior hold needed for inbound)
PostingResponse postCredit(String accountId, BigDecimal amount,
String txReference, String narrative);

// Account validation
AccountValidationResponse validateAccount(String bsb, String accountNumber);

// Account details lookup
AccountDetails getAccountDetails(String accountId);
}

CBS in a Microservices Architecture

Modern payment platforms integrate CBS as a downstream service:

API Gateway


Payment Orchestrator (Spring Boot)

├──► Sanctions Service
├──► Fraud Service
├──► CBS Adapter (Spring Boot) ──► Core Banking System (T24/Finacle)
├──► Network Gateway (NPP/SWIFT)
└──► Notification Service

The CBS Adapter abstracts CBS-specific APIs, so the payment orchestrator is not coupled to the vendor's proprietary interface.


CBS Availability and Resilience

CBS is the most critical system in a bank. Availability requirements:

RequirementTarget
Availability99.99% (< 1 hour downtime/year)
Planned maintenanceOff-peak (Sunday 2–4 AM)
Disaster recoveryHot standby (< 5 min RTO for payments)
Read replicasYes — balance enquiries hit replica; postings hit primary
Transaction rateMajor banks: thousands of TPS