Skip to main content

๐Ÿฆ Banking Domain Knowledge Base

A comprehensive, engineer-focused reference for payment systems, ISO 20022 messaging, core banking concepts, and Australian payment infrastructure. Built for Java/Spring developers working in the payments domain.


What's in This Knowledge Base?โ€‹

SectionTopics Covered
ISO 20022 Messagespain.001, pain.002, pacs.008, pacs.002, camt.053, camt.054
Payment FlowsInbound, Outbound, On-Us, Off-Us
Payment RailsNPP, SWIFT, BECS/Direct Debit, BPAY, RTGS, PayTo
Parties & InstitutionsDebtor, Creditor, FIs, Correspondent Banks
Accounting & PostingDebit/Credit Post, Debit Reversal, Payment Return
Clearing & SettlementDNS, RTGS, ESA, Liquidity
Risk & ComplianceFraud, Sanctions, AML/CTF, KYC
OperationsReconciliation, Exceptions & Investigations, FX
Modern BankingOpen Banking/CDR, ISO 20022 Migration, Account Types

Banking Knowledge Pathโ€‹

Use this path as a guided entry point for learning banking and payments topics in a practical order.

How To Use This Pathโ€‹

  • Read each stage in order the first time.
  • Use the Role Tracks below after Stage 2 to specialize.
  • Keep payment_lifecycle_101 and the glossary open while reading message specs.

Stage 0 - Foundations (Beginner)โ€‹

Start here if you are new to the banking/payments domain language.

  1. Overview
  2. Payment Lifecycle 101
  3. Banking Roles and Teams
  4. Banking Glossary

Stage 1 - Core Payment Flows (Beginner -> Intermediate)โ€‹

Learn the flow categories and routing decisions.

  1. Outbound Payments
  2. Inbound Payments
  3. On-Us Transactions
  4. Off-Us Transactions
  5. Clearing
  6. Settlement

Stage 2 - ISO 20022 Message Chain (Intermediate)โ€‹

Study messages in execution order:

  1. pain.001 - customer payment initiation
  2. pacs.008 - interbank credit transfer
  3. pacs.002 - status report
  4. camt.054 - debit/credit notification
  5. camt.053 - account statement

Then exception messages: 6. pacs.004 - payment return 7. pain.007 and pacs.007 - reversal 8. camt.055 and camt.056 - cancellation/recall 9. pain.004 Clarification - common naming confusion

Stage 3 - Rails and Networks (Intermediate)โ€‹

  1. NPP
  2. BPAY
  3. Direct Debit
  4. SWIFT

Stage 4 - Ledger and Core Banking (Intermediate -> Advanced)โ€‹

  1. Core Banking System
  2. Account Types
  3. Debtor
  4. Debit Posting
  5. Credit Posting
  6. Debit Reversal
  7. Payment Return
  8. FX in Payments
  9. Interest and Fees
  10. FIS

Stage 5 - Risk, Compliance, and Operations (Advanced)โ€‹

  1. Fraud Detection and Prevention
  2. Sanctions Screening
  3. AML, CTF, and KYC
  4. Payment Exceptions and Investigations
  5. Reconciliation
  6. Testing in Banking and Payments

Stage 6 - Modernization and Strategyโ€‹

  1. ISO 20022 Migration
  2. Open Banking and CDR

Role Tracksโ€‹

Developer Trackโ€‹

Follow: Stage 0 -> Stage 1 -> Stage 2 -> Stage 4 -> Stage 5 Focus topics:

  • Message schemas and field mapping
  • Idempotent posting and retries
  • Exception-safe state transitions

Operations / Analyst Trackโ€‹

Follow: Stage 0 -> Stage 1 -> Stage 3 -> Stage 5 Focus topics:

  • Status monitoring and exception handling
  • Reconciliation and return workflows
  • SLA and incident triage

Compliance / Risk Trackโ€‹

Follow: Stage 0 -> Stage 1 -> Stage 5 Focus topics:

  • Sanctions, AML/KYC, fraud controls
  • Hold/release/return decision points
  • Regulatory reporting and evidence

Product / Business Trackโ€‹

Follow: Stage 0 -> Stage 1 -> Stage 3 -> Stage 6 Focus topics:

  • Rail capability and customer experience trade-offs
  • Pricing/latency/risk considerations
  • Modernization opportunities

Quick Revision Path (60-90 minutes)โ€‹

If you need a fast refresh before interviews or design discussions:

  1. Payment Lifecycle 101
  2. On-Us Transactions and Off-Us Transactions
  3. pain.001 -> pacs.008 -> pacs.002
  4. pacs.004, Debit Reversal, Payment Return
  5. Reconciliation, Fraud, Sanctions

End-to-End Payment Lifecycleโ€‹

The diagram below shows a complete outbound off-us NPP credit transfer โ€” the most common domestic payment type in Australia.

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚ PAYMENT LIFECYCLE โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ โ”‚
โ”‚ ORIGINATION DEBTOR BANK CREDITOR BANK โ”‚
โ”‚ โ”‚
โ”‚ Customer Receive pain.001 Receive pacs.008 โ”‚
โ”‚ submits โ”€โ”€โ”€โ”€โ”€โ”€โ–บ Validate & Auth โ”€โ”€โ”€โ”€โ”€โ”€โ–บ Validate Schema โ”‚
โ”‚ pain.001 Balance Check Duplicate Check โ”‚
โ”‚ Sanctions Screen Sanctions Screen โ”‚
โ”‚ Fraud Assessment Fraud Assessment โ”‚
โ”‚ Debit Posting Account Lookup โ”‚
โ”‚ Build pacs.008 Credit Posting โ”‚
โ”‚ Submit to NPP โ—„โ”€โ”€โ”€โ”€โ”€โ”€ Send camt.054 โ”€โ”€โ–บ Cdtr โ”‚
โ”‚ Receive pacs.002 (CRDT notification) โ”‚
โ”‚ Send camt.054 โ”€โ”€โ”€โ”€โ”€โ”€โ–บ โ”‚
โ”‚ (DBIT notification) Dbtr โ”‚
โ”‚ Send pain.002 โ”€โ”€โ”€โ”€โ”€โ”€โ–บ โ”‚
โ”‚ (status report) Customer โ”‚
โ”‚ โ”‚
โ”‚ SETTLEMENT: RBA Fast Settlement Service (FSS) โ€” real-time gross โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

ISO 20022 Message Chainโ€‹

Customer โ”€โ”€[pain.001]โ”€โ”€โ–บ Debtor Bank โ”€โ”€[pacs.008]โ”€โ”€โ–บ Network โ”€โ”€[pacs.008]โ”€โ”€โ–บ Creditor Bank
โ—„โ”€[pain.002]โ”€โ”€โ”€ โ—„โ”€[pacs.002]โ”€โ”€โ”€ โ”‚
[camt.054]
[camt.054]โ”€โ”€โ–บ Debtor Customer โ”‚
Creditor Customer
If undeliverable:
Debtor Bank โ—„โ”€[pacs.004]โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ Creditor Bank
โ”€โ”€[camt.054 return]โ”€โ”€โ–บ Debtor Customer

Key ID Fields โ€” Traceability Across Messagesโ€‹

Every payment carries a chain of IDs that allow full end-to-end tracing:

IDWho Sets ItLives InPurpose
EndToEndIdOriginating customerpain.001 โ†’ pacs.008 โ†’ camt.054Customer's own reference; never changed
InstrIdDebtor bankpacs.008, pacs.002Bank's instruction reference
TxIdDebtor bankpacs.008, pacs.002Unique transaction ID for dedup
MsgIdEach senderAll messagesMessage-level dedup
UETRDebtor bankSWIFT messagesUniversal tracker for gpi
AcctSvcrRefCreditor bankcamt.053, camt.054Bank's ledger reference
MndtIdCreditor/payerDirect debit messagesPayTo/BECS mandate reference

Payment Scheme Quick-Selectโ€‹

Is the payment a direct debit (pull)?
โ””โ”€โ–บ PayTo (NPP) for new โ€” BECS DDR for legacy

Is the payment international?
โ””โ”€โ–บ SWIFT (MT103 / pacs.008)

Is the payment domestic?
โ”œโ”€ Same bank (both accounts at our institution)?
โ”‚ โ””โ”€โ–บ On-Us โ€” internal book transfer, no external network
โ”‚
โ”œโ”€ High-value or time-critical (> ~$250K)?
โ”‚ โ””โ”€โ–บ RTGS / HVCS
โ”‚
โ”œโ”€ Bill payment with BPAY biller code?
โ”‚ โ””โ”€โ–บ BPAY
โ”‚
โ”œโ”€ Creditor bank supports NPP?
โ”‚ โ””โ”€โ–บ NPP / Osko โ€” real-time, 24/7
โ”‚
โ””โ”€ Fallback
โ””โ”€โ–บ BECS Direct Entry โ€” next business day

Risk & Compliance Checkpointsโ€‹

Every payment โ€” inbound or outbound โ€” passes through these controls:

Payment Instruction
โ”‚
โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚ 1. DUPLICATE CHECK (TxId / EndToEndId) โ”‚
โ”‚ 2. SCHEMA VALIDATION (XSD / business rules) โ”‚
โ”‚ 3. AUTHENTICATION (customer / system auth) โ”‚
โ”‚ 4. SANCTIONS SCREENING (OFAC, UN, DFAT, AUSTRAC) โ”‚
โ”‚ 5. FRAUD ASSESSMENT (rules + ML model) โ”‚
โ”‚ 6. AML / TM CHECK (transaction monitoring) โ”‚
โ”‚ 7. BALANCE / LIMIT CHECK (outbound only) โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
โ”‚
โ–ผ
Process Payment

Australian Regulatory Landscapeโ€‹

BodyRoleKey Obligations
RBACentral bank, settlement operatorESA management, RTGS, NPP FSS
APRAPrudential regulatorADI licence, capital (Basel III), LCR/NSFR
AUSTRACAML/CTF regulatorTTR, IFTI, SMR reporting
ASICMarket conduct regulatorFinancial services licensing
OAICPrivacy regulatorCDR / Open Banking data rules
AusPayNetPayment scheme operatorBECS, cheque rules
NPPANPP operatorNPP/Osko/PayTo scheme rules

Glossary of Common Termsโ€‹

TermDefinition
ADIAuthorised Deposit-taking Institution โ€” licensed bank/credit union
ESAExchange Settlement Account โ€” account at RBA used for final settlement
BIC / SWIFT codeBank Identifier Code โ€” uniquely identifies a financial institution
BSBBank State Branch โ€” 6-digit code identifying an AU bank branch
IBANInternational Bank Account Number โ€” standardised account number
PayIDProxy address (phone/email/ABN) mapped to a BSB/account via NPP
UETRUnique End-to-end Transaction Reference โ€” UUID used in SWIFT gpi
DNSDeferred Net Settlement โ€” obligations netted and settled at end of day
RTGSReal-Time Gross Settlement โ€” each payment settled individually, in real time
LCRLiquidity Coverage Ratio โ€” APRA regulatory liquidity metric
PEPPolitically Exposed Person โ€” requires enhanced due diligence
SAR / SMRSuspicious Activity/Matter Report โ€” filed with AUSTRAC
TTRThreshold Transaction Report โ€” cash transactions โ‰ฅ AUD 10,000
IFTIInternational Funds Transfer Instruction โ€” all cross-border transfers
ChrgBrCharge Bearer โ€” who pays bank fees (DEBT/CRED/SHAR/SLEV)
Nostro"Our" account held at another bank
Vostro"Your" (another bank's) account held at our bank
Straight-Through Processing (STP)Payment processed end-to-end without manual intervention
CoPConfirmation of Payee โ€” verifying payee name matches account before payment

Java / Spring Stack Referenceโ€‹

Typical technology choices for a payment processing system:

LayerTechnologies
APISpring Boot, Spring Web MVC / WebFlux
MessagingSpring Integration, Apache Kafka, IBM MQ, RabbitMQ
ISO 20022 ParsingJAXB, prowide-core, open-banking-java-sdk
DatabasePostgreSQL / Oracle (transactional), Redis (caching)
SecuritySpring Security, HSM for key management
SchedulerSpring Batch (batch payments), Quartz
ObservabilityMicrometer, Prometheus, Grafana, ELK Stack
TestingJUnit 5, Mockito, Testcontainers, WireMock

Contributing & Structureโ€‹

Each page in this knowledge base follows a consistent structure:

  1. Overview โ€” What it is and why it matters
  2. Key concepts โ€” Definitions, types, tables
  3. Flow diagrams โ€” ASCII art showing the process
  4. Field/code references โ€” Lookup tables
  5. Java/Spring notes โ€” Practical implementation snippets
  6. Related concepts โ€” Cross-links to related pages

Interview Questions (Senior Level)โ€‹

  1. How do you explain banking payment architecture end-to-end to new backend engineers?
  2. What boundaries should be explicit between payment orchestration and core banking systems?
  3. Which controls are non-negotiable before allowing straight-through processing?
  4. How would you measure payment platform maturity beyond transaction throughput?

Short answer guide:

  • Teach by lifecycle: initiation, screening, clearing, settlement, notification.
  • Keep orchestration stateless and ledger authority centralized.
  • Enforce sanctions/fraud/AML gates with strong observability.
  • Track failure recovery, exception handling quality, and reconciliation accuracy.
Interview Focus

Explain payment systems as lifecycle stages with explicit control, audit, and recovery boundaries.

Interview Trap

Discussing rails without distinguishing clearing from settlement and ledger finality.