Skip to main content

Credit Posting

In core banking, a Credit Post records an increase to a customer's account balance โ€” signifying the deposit or receipt of funds. In double-entry banking ledgers, customer deposits are a liability for the bank (the bank owes the customer that money), so a credit entry increases the liability side of the bank's balance sheet.

Credit posting appears simple on the surface, but production behavior is governed by settlement confidence, product policy, compliance holds, and scheme-specific timing rules. The central decision is always: when can the customer actually spend the funds?


1. Balance Types and Why They Matter

Before understanding posting flows, you must understand that a customer's account does not have a single "balance" โ€” it has several, each representing a different ledger view:

Balance TypeDefinitionUpdated at
Ledger Balance (Book Balance)All posted transactions, cleared and unclearedTime of posting
Available BalanceFunds the customer can actually withdraw/spend todayAfter holds/clearance rules applied
Current BalanceUsually synonymous with Ledger Balance in retail bankingTime of posting
Shadow / Memo BalanceIncludes unposted, in-flight items (memo credits/debits)Time of memo instruction
Cleared BalanceOnly fully settled, irrevocable fundsPost-settlement confirmation

A memo credit increases the Ledger Balance (the customer sees it) but does not immediately increase the Available Balance. A hard credit increases both. The gap between these two figures is where clearance risk, fraud risk, and policy decisions live.


2. The Credit Posting Lifecycle

Phase 1 โ€” Instruction Receipt and Validation

An inbound payment instruction arrives via a payment scheme (SWIFT, NPP, BECS, SEPA, Fedwire, etc.) and enters the bank's payment processing engine.

Pipeline StepValidation StageRule Check & Evaluation LogicFailure Action & Exception Code
1. Message ParsingSyntax & ProtocolParses ISO 20022 pacs.008, SWIFT MT103, or BECS direct entry ABA records.Malformed syntax rejection
2. Duplicate CheckDeduplication CacheEvaluates composite idempotency key (EndToEndId + Scheme + Amount + Date).Idempotent duplicate bypass / ack
3. Beneficiary ResolutionAccount DirectoryMaps public BSB/Account or PayID proxy to internal CBS ledger account ID.AC01 (Incorrect Account Number)
4. Account EligibilityAccount StatusVerifies account state (Active vs Dormant/Closed/Blocked) and product credit permissions.AC04 (Closed Account) / AC06 (Blocked)
5. Compliance ScreeningRegulatory FiltersReal-time screening against OFAC/DFAT sanctions, AML rules, and court garnishee orders.Immediate payment freeze & referral
6. Posting DecisionSettlement EngineDetermines whether to post a Memo Credit (pending settlement) or Hard Credit (RTGS settled).Routing to suspense vs settled ledger

Phase 2 โ€” Memo Credit (Pending / Uncleared Funds)

When an inbound payment instruction arrives but settlement has not yet been confirmed, the bank posts a memo credit โ€” also called a pending credit, uncleared credit, or provisional credit depending on the product and scheme.

Balance ComponentAmountAvailability StatusAccounting Meaning
Booked Ledger Balance$10,500Recorded in systemTotal account position including uncleared deposits.
Available Balance$10,000Immediately SpendableFunds free from memo holds and overdraft restrictions.
Pending / Memo Credits+$500Uncleared holdProvisional credit pending interbank ESA settlement confirmation.

What happens internally:

  • The transaction is written to a suspense ledger or clearing account, not directly to the customer's settled position.
  • A hold is placed on the credited amount, preventing the Available Balance from reflecting it.
  • The customer sees the inbound credit for transparency, but cannot withdraw it yet.

When memo credits are used:

  • Batch scheme payments (BECS/BACS/NACHA) received overnight, settled next morning.
  • SWIFT wires where settlement occurs at end-of-day in RTGS.
  • Cheque deposits (may hold for 1โ€“3 business days under Regulation CC or local equivalents).
  • Any credit where the receiving bank has not yet received confirmed irrevocable settlement funds.

Phase 3 โ€” Settlement Confirmation

Settlement occurs when the bank's Exchange Settlement Account (ESA) at the central bank is credited โ€” at that point, the funds are irrevocably the receiving bank's. For real-time gross settlement (RTGS) systems, this happens transaction-by-transaction; for deferred net settlement (DNS), it happens at the end of a settlement cycle.

Participant / SystemESA Settlement TransactionBalance MovementCore Banking Notification & Action
Sending BankDebited at Central Bank RBA- $500.00 (Dr)Sending bank reserves reduced irrevocably.
Receiving BankCredited at Central Bank RBA+ $500.00 (Cr)Settlement notification received via RTGS gateway.
Core Banking SystemHard Credit ExecutionMemo hold releasedAvailable Balance updated to $10,500; customer SMS dispatched.

Phase 4 โ€” Hard Credit (Cleared / Available Funds)

Once settlement is confirmed:

  1. The hold on the memo credit is released.
  2. The transaction is moved from the suspense/clearing ledger to the customer's settled ledger position.
  3. The Available Balance is updated to reflect the now-spendable funds.
  4. A customer notification (push notification, SMS, email) is typically triggered.
  5. The booking date and value date are finalized and recorded against the transaction.
Balance ComponentAmountAvailability StatusAccounting Meaning
Booked Ledger Balance$10,500Irrevocably SettledAccount position backed by confirmed central bank reserves.
Available Balance$10,500Fully SpendableMatches ledger balance exactly; memo hold released.
Pending Credits$0ClearedZero pending uncleared balances remaining.

3. Funds Availability Policies

Different banks, products, and jurisdictions have different rules about when memo credits become available. This is not a technical decision โ€” it is a risk and product policy decision with regulatory dimensions.

Policy Models

ModelDescriptionScheme ExamplesSettlement Risk Taken
Hold Until SettledAvailable balance only updates after confirmed settlementCheques, BECS batchMinimal โ€” bank never exposes uncleared funds
Conditional Immediate AvailabilityFunds available immediately for low-risk senders; held for unknown/high-riskInternal transfers, trusted correspondentsModerate โ€” bank uses risk scoring
Full Immediate AvailabilityAvailable balance updated on receipt, before settlementNPP (Australia), Faster Payments (UK), RTP (US)High โ€” bank underwrites settlement risk
Value-Dated AvailabilityFunds available on a pre-agreed future dateForward-value SWIFT wires, term depositsControlled โ€” contractually defined

Regulation CC (USA) โ€” Mandatory Hold Periods

In the United States, Regulation CC (12 CFR 229) mandates maximum hold periods:

Deposit TypeNext-Day AvailabilityRegulatory Max Hold
Cash depositsโœ… Next business day1 business day
Electronic payments (ACH/Fedwire)โœ… Next business day1 business day
Local chequesDay 22 business days
Non-local chequesDay 55 business days
New accounts / large deposits (>$5,525)Exception holds permittedUp to 9 business days

Other jurisdictions have equivalent frameworks: ePayments Code (Australia), Payment Services Regulations (UK/EU), MAS Notice (Singapore).


4. Settlement Risk Deep Dive

Settlement Risk is a Bank P&L Risk, Not a Tech Risk

When a bank provides immediate funds availability before actual settlement (common in modern real-time payment rails like NPP, Faster Payments, PIX), the bank is underwriting the settlement risk. If the sending bank fails before end-of-day net settlement, the receiving bank may not receive the funds โ€” but the customer has already spent them. The loss is the receiving bank's.

The Settlement Risk Timeline (DNS Example)

09:14 โ€” Customer at Bank B receives NPP payment from Bank A.
Bank B posts memo credit. Customer sees funds immediately.
Available balance updated (Bank B policy: immediate availability).

09:15 โ€” Customer withdraws $500 at ATM. Funds disbursed.

16:30 โ€” Bank A placed into administration. APRA suspends Bank A's settlements.

17:00 โ€” DNS settlement cycle runs. Bank A's net position cannot be settled.
Bank B's ESA is NOT credited for the $500.

17:01 โ€” Bank B has paid out $500 that it never received. Net loss: $500.
Multiplied across all Bank A payments that day: potentially millions.

Mitigations Used in Production

MitigationHow It Works
Intraday Liquidity LimitsEach counterpart bank is assigned a maximum unsettled exposure limit. Payments beyond the limit are queued until prior ones settle.
Risk-Based Hold RulesNew senders, high-value senders, or senders in financial distress trigger automatic holds until settlement.
Loss MutualisationPayment scheme operators (e.g., NPP Australia) hold a shared default fund. Losses from a defaulted member are shared across all members.
CLS (Continuous Linked Settlement)Used for FX trades โ€” simultaneous payment-versus-payment across currencies eliminates the gap between the two legs.
Prefunded ModelsSender prefunds at the scheme level before payments are released; settlement risk is eliminated (e.g., some stablecoin / CBDC designs).

5. Double-Entry Accounting

A core banking ledger must always balance. A credit to a customer account is only one leg of the transaction. Every posting must have an equal and opposite debit.

Example 1 โ€” Inbound SWIFT Wire ($500 from Citibank)

LegAccountDr/CrAmountDescription
1Nostro Account (Citibank at our bank)Dr$500Asset: our claim on Citibank's prefunded account
2Customer Retail Account (liability)Cr$500Liability: we now owe the customer $500

The Nostro account (from Latin noster โ€” "ours") is our account held at the correspondent bank. When Citibank's nostro is debited, it means we've drawn down the funds Citibank was holding for us.

Example 2 โ€” Internal Transfer (Same Bank, $200 Account A โ†’ Account B)

LegAccountDr/CrAmountDescription
1Customer Account A (liability)Dr$200Liability decreases (we owe A less)
2Customer Account B (liability)Cr$200Liability increases (we owe B more)

Both sides are liabilities โ€” the total balance sheet position of the bank doesn't change, but the obligation shifts between customers.

Example 3 โ€” Memo Credit to Hard Credit Transition

The movement from memo to hard credit also has two distinct ledger entries:

Step 1 โ€” Memo Credit (instruction received, settlement pending):

LegAccountDr/CrAmount
1Inbound Clearing SuspenseDr$500
2Customer Account (uncleared)Cr$500

Step 2 โ€” Hard Credit (settlement confirmed):

LegAccountDr/CrAmount
1Customer Account (uncleared)Dr$500
2Inbound Clearing SuspenseCr$500
3ESA / Nostro (asset)Dr$500
4Customer Account (cleared)Cr$500

This four-leg structure ensures that the clearing suspense account always nets to zero at end-of-day if all settlements complete โ€” any residual balance in the suspense account is an exception requiring investigation.

Ledger Integrity Rules

  • Every transaction must sum to zero across all legs (Dr = Cr at all times).
  • Suspense accounts must be monitored for aging items โ€” anything not cleared within the scheme's settlement window (typically same-day or T+1) must trigger an exceptions workflow.
  • Value date (the economic date the interest starts/stops accruing) must be set correctly even if the booking date differs (e.g., a payment received on a Friday evening may have a booking date of Monday but a value date of Friday).

6. Holds and Compliance Controls

Before making funds available โ€” even after settlement โ€” the bank may impose holds for compliance, legal, or fraud reasons.

Hold Types

Hold TypeTriggerWho AppliesEffect on Available Balance
Clearance HoldMemo credit pending settlementSystem (automatic)Reduces Available Balance
Sanctions HoldOFAC/AUSTRAC/EU sanctions matchCompliance teamFull account freeze or transaction hold
Legal Hold / GarnishmentCourt order, tax authority levyLegal / OpsSpecific amount ring-fenced
Fraud HoldAML rule or behavioural anomalyFraud engine (automatic)Prevents withdrawal pending review
New Account HoldFirst large credit, account <30 days oldSystem (policy-based)Temporary hold per Reg CC or policy
Large Value HoldCredits above a defined thresholdSystem (policy-based)Partial hold on amount above threshold

Hold Lifecycle

Credit arrives
โ”‚
โ–ผ
Compliance Screening โ”€โ”€โ”€โ”€ Match Found โ”€โ”€โ”€โ”€โ–บ HOLD applied
โ”‚ โ”‚
No Match Manual Review
โ”‚ โ”‚ โ”‚
โ–ผ Clear Escalate
Fraud Rules โ”€โ”€โ”€โ”€ Anomaly โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–บ HOLD
โ”‚
Clean
โ”‚
โ–ผ
Clearance Rules โ”€โ”€โ”€โ”€ Memo โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–บ HOLD (pending settlement)
โ”‚
Settled
โ”‚
โ–ผ
HARD CREDIT โ€” funds released to Available Balance

7. Idempotency and Replay Safety

Inbound payment notifications are frequently retried โ€” by the sending bank, by the scheme, or by internal retry mechanisms. A credit posting engine must be idempotent: processing the same instruction twice must produce exactly one credit, not two.

Idempotency Key Design

The idempotency key for an inbound credit should be a composite of fields that are guaranteed to be unique per legitimate transaction and stable across retries:

idempotency_key = hash(
payment_scheme, // e.g., "NPP", "BECS", "SWIFT"
end_to_end_id, // e.g., E2E reference from pacs.008
transaction_amount,
transaction_currency,
value_date,
debtor_account_number // sending account โ€” prevents replay of same E2E ID across senders
)
Avoid using only End-to-End ID as the idempotency key

End-to-End IDs are set by the originating customer, not by the bank. Malicious or misconfigured originators can reuse the same E2E ID across different transactions. Always combine E2E ID with amount, currency, and date to form a robust deduplication key.

Replay Handling Flow

Idempotency Key StatusDatabase OperationConcurrency ProtectionHandler Action & Output
Found (Duplicate)SELECT WHERE idempotency_key = ?Read-only idempotent checkReplay detected: bypass posting, return stored original transaction ID and status.
New (Atomic Insert)INSERT INTO processed_transactions (key, status='PROCESSING')Database UNIQUE constraintLock acquired atomically. Concurrent identical requests trigger unique key violation and wait.
ExecutionExecute double-entry ledger postingRow-level locking on accountMoves funds from clearing ledger to customer ledger.
Terminal StatusUPDATE status = 'COMPLETED'Transaction commitReleases lock; returns 200 OK / 201 Created to caller.

The PROCESSING state with an atomic insert (enforced by a unique constraint on the idempotency key) ensures that even under concurrent retries, only one thread can proceed to posting. All others will hit a unique constraint violation and return the in-progress or completed result.


8. Value Date vs. Booking Date

These two dates govern interest accrual and customer-visible statement presentation respectively, and they are not always the same.

DateDefinitionExample
Booking Date (Entry Date)Calendar date the transaction is recorded in the ledgerMonday โ€” even if received Friday night
Value DateEconomic date from which interest is calculated (for or against the customer)Friday โ€” the day funds were actually received
Settlement DateDate the funds actually moved at the central bankUsually same as Value Date for RTGS; T+1 for DNS

Why value date matters for the customer: A customer receiving a Friday-night SWIFT wire that is memo-credited Friday but hard-credited Monday should still earn interest from Friday. The value date controls this. A bank that sets value date = booking date on late-arriving credits is quietly underpaying interest โ€” a regulatory risk in most jurisdictions.

Why value date matters for the bank: If a bank credits with a value date in the past (back-valuing), it must provision for the interest from that past date. Getting value dates wrong is a common source of P&L leakage and reconciliation breaks.


9. Controls Checklist

Before a credit is fully posted and funds are released to Available Balance, the following controls must be satisfied:

  • Duplicate detection โ€” idempotency key lookup against processed transaction store
  • Beneficiary account resolution โ€” account number maps to a valid, open internal account
  • Account eligibility โ€” product type accepts inbound credits; account is not blocked/frozen/closed
  • Sanctions screening โ€” debtor (sender) name, BIC, and country screened against OFAC, UN, EU, AUSTRAC, and local watchlists
  • AML rules โ€” transaction pattern checked against AML velocity rules (e.g., large cash-equivalent deposits, structuring patterns)
  • Fraud hold evaluation โ€” behavioural rules (new payee, unusual amount, unusual time) evaluated against the account's risk profile
  • Clearance hold applied (if memo credit) โ€” Available Balance not updated until settlement confirmed
  • Value date set correctly โ€” especially for late-day or cross-timezone receipts
  • Double-entry legs balanced โ€” both sides of the ledger entry verified before commit
  • Notification triggered โ€” customer notification queued post-posting (not pre-posting, to avoid notifying on a failed post)

10. Common Exceptions and Resolution Paths

ExceptionRoot CauseResolution
Return received after credit posted (pacs.004 / MT900)Sender bank returned the payment post-settlementReverse the credit; debit customer account; notify customer; if funds spent, initiate recovery
Beneficiary account closed between validation and postingRace condition โ€” account closed during processing windowRoute to a suspense/dormant account; contact account holder; issue cheque or return to sender
Notification delivered but posting failedSystem error mid-flow after scheme acknowledgment sentReplay using idempotency key; do NOT re-acknowledge โ€” posting must catch up to acknowledgment
Reconciliation mismatch (scheme totals โ‰  ledger entries)Partial batch failure, duplicate suppression error, or roundingAutomated reconciliation job flags the item; exception queue with T+1 SLA
Sanctions match post-creditWatchlist updated after posting, retroactive matchFreeze account immediately; file SAR/suspicious matter report; do NOT reverse without regulatory approval
Value date errorLate booking sets wrong value date; incorrect accrualCorrect via adjustment posting with proper value date; may require interest recalculation
Duplicate credit postedIdempotency failure or manual re-posting errorReverse one leg; audit idempotency key logic; post-mortem on deduplication failure

Exceptions must feed into standardized investigation queues with:

  • Defined SLA by exception type (e.g., return processing: same day; reconciliation: T+1)
  • Ownership assigned at intake โ€” no ownerless exceptions
  • Audit trail of all actions taken, required for regulatory examination

11. Scheme-Specific Posting Behaviors

Different payment rails have materially different settlement models, which drives different credit posting behaviors:

SchemeSettlement ModelCredit Posting BehaviorReturn Window
SWIFT (MT103 / pacs.008)Correspondent banking, RTGS via CLS/FedwireMemo credit on receipt; hard credit after nostro settlementNo mandatory return; recall via pacs.008 return request
NPP (Australia)RTGS โ€” real-time, individual settlement per paymentHard credit immediately (sub-second); settlement risk underwritten by scheme13-month recall window (not guaranteed return)
BECS (Australia)DNS โ€” overnight batch, T+1 settlementMemo credit on file receipt; hard credit after morning settlement runDay of settlement (dishonour)
Fedwire (USA)RTGS โ€” real-time, irrevocableHard credit immediately; settlement is final and irrevocableNo return once settled
ACH (USA)DNS โ€” batch settlement, T+1 or T+2Memo credit on receipt; hard credit after settlement2 business days for return (R-codes)
SEPA Credit Transfer (EU)RTGS (SEPA Instant) or DNS (standard SCT)Instant: hard credit; Standard: T+1 memo then hardSEPA Instant: no return; SCT: recall within 10 business days
PIX (Brazil)RTGS โ€” 24/7 real-timeHard credit immediatelyNo automatic return

Understanding which scheme a payment arrived on determines the correct posting strategy, hold duration, and return/recall rights โ€” all of which should be encapsulated in the core banking engine's scheme adapter layer, not scattered across business logic.


๐Ÿ“–
Track Page Progress0 / 635 Read
Knowledge Base Completion0%