Deposit Account Transactions Overview
Complete guide to deposit account transactions in BankLingo V2 Core Banking Platform.
Overview
Deposit account transactions enable deposits, withdrawals, and transfers for all deposit account types. BankLingo V2 implements a robust transaction processing engine with:
- Delta-based impact tracking: Every field change tracked for accurate reversal
- Multi-phase processing: PENDING → APPROVED → COMPLETED → ACTIVE
- Hold management: Prevents overdraft in concurrent scenarios
- Concurrent safety: Optimistic locking + delta-based reversal
- Complete audit trail: Every entity impact recorded
- Universal reversal: One framework works for all transaction types
Deposit Account Types
All deposit transactions are performed on product-based accounts. BankLingo V2 supports the following deposit account types:
Enum: DepositAccountTypeEnum
| Type | Description | Typical Use |
|---|---|---|
| Current_Account | Transactional account with no interest | Business operations, frequent transactions |
| Savings_Account | Interest-bearing savings account | Personal savings with withdrawals |
| Fixed_Deposit | Locked deposit for fixed term | Investment with higher interest rates |
| Savings_Plan | Goal-based savings with rules | Planned savings for specific targets |
| Funding_Account | Internal funding and settlement account | Branch operations, CIT |
Note: Each account type has its own configuration in the
DepositProductentity, including limits, fees, interest rates, and transaction rules.
Transaction Types
Core Deposit Transactions
| Transaction | Purpose | V2 Command | Key Features |
|---|---|---|---|
| Deposit | Credit funds to account | InitiateDepositCommand | Teller/Channel deposits, approval workflow, account activation |
| Withdrawal | Debit funds from account | InitiateWithdrawalCommand | Hold management, concurrent safety, till/settlement impact |
| Transfer | Move funds between accounts | InitiateTransferCommand | Atomic operations, deadlock prevention, intra/inter-bank |
Transaction States
All deposit transactions follow a state machine:
States Explained:
- PENDING: Created, may require approval, holds may be placed
- APPROVED: Approved, ready to execute
- REJECTED: Denied before execution
- COMPLETED: Executed, balances updated
- ACTIVE: Finalized, permanent
- REVERSED: Undone via compensating transaction
- CANCELLED: Cancelled before completion
- FAILED: Execution failed
Core Concepts
Impact Tracking
Every transaction records exactly what changed:
ImpactedEntity {
entityType: "DepositAccount"
entityId: 12345
fieldName: "BookBalance"
oldValue: 100000
newValue: 105000
deltaAmount: +5000 // The actual change
}
Why this matters:
- Enables accurate reversal even with concurrent transactions
- Complete audit trail of all changes
- Supports multi-entity transactions
- Preserves data integrity
Hold Management
Withdrawals and transfers use hold management to prevent overdraft:
Two Balance Types:
- BookBalance: Actual ledger balance
- AvailableBalance: BookBalance - HoldAmount
Process:
- PENDING: Place hold (AvailableBalance reduced immediately)
- COMPLETED: Deduct BookBalance, release hold
- REJECTED: Release hold, restore AvailableBalance
This prevents concurrent transactions from overdrawing the account.
GL Integration
All transactions automatically post to General Ledger using double-entry accounting:
Deposit Example:
DR: Cash/Till/Settlement +5,000
CR: Customer Deposits -5,000
Withdrawal Example:
DR: Customer Deposits +5,000
CR: Cash/Till/Settlement -5,000
Transaction Limits
All deposit transactions respect configured limits:
| Limit Type | Description | Enforcement |
|---|---|---|
| Single Transaction | Maximum per transaction | Pre-validation |
| Daily Cumulative | Maximum per day | Real-time check |
| Account Balance | Maximum account balance | Pre-credit check |
| Transaction Count | Maximum transactions per day | Counter check |
Exceeded Limit Behavior:
- Transaction rejected with specific error code
- Option to place on PND (Pending - Not Drawn)
- Notification to account officer
- Audit trail created
Approval Workflows
Transactions can require approval based on:
- Transaction amount (threshold)
- Account type
- Channel type
- User permissions
- Product configuration
Workflow:
Create Transaction (PENDING)
↓
Check Approval Requirement
↓
Auto-Approve OR Await Approval
↓
Execute Transaction (COMPLETED)
API Integration
All deposit transactions are executed via BPMCore command pattern:
Endpoint:
POST /api/bpm/cmd
Content-Type: application/json
Authorization: Bearer {access_token}
Request Structure:
{
"commandName": "InitiateDepositCommand",
"data": {
"accountEncodedKey": "ACC-001",
"amount": 5000.00,
"channelCode": "TELLER",
"notes": "Cash deposit"
}
}
Response:
{
"isSuccessful": true,
"statusCode": "00",
"message": "Transaction completed successfully",
"data": {
"transactionKey": "TXN-2025-001",
"accountNumber": "1234567890",
"transactionState": "COMPLETED"
}
}
Concurrent Transaction Safety
BankLingo V2 ensures data integrity in concurrent scenarios:
Optimistic Locking
Every account has a Version field that increments with each update. Concurrent updates detected and retried.
Hold Management
Withdrawals place holds immediately, preventing concurrent overdrafts.
Delta-Based Tracking
Changes tracked as deltas, not snapshots, preserving concurrent modifications.
Example Scenario
Time 10:00 - Balance: 10,000
Time 10:01 - Withdrawal 2,000 PENDING (hold placed)
Time 10:02 - Deposit 5,000 COMPLETED (balance: 13,000)
Time 10:03 - Withdrawal 2,000 COMPLETED (balance: 11,000)
Final: 11,000 ✓ (all transactions preserved)
Error Handling
All transactions use standard error codes:
| Error Code | Description | Action |
|---|---|---|
00 | Success | Transaction completed |
01 | Insufficient funds | Check balance |
05 | Account locked | Contact operations |
12 | Invalid amount | Verify amount |
51 | Limit exceeded | Increase limit or split |
91 | System error | Retry or contact support |
Best Practices
For Developers
- Always use TransactionImpactRecord for tracking
- Track every field change with delta
- Use hold management for debits
- Implement approval workflows
- Test concurrent scenarios
- Validate limits before execution
For Operators
- Review pending transactions daily
- Monitor limit breaches
- Investigate unusual patterns
- Verify till balances at EOD
- Review reversal requests promptly
- Maintain audit trail documentation
For Product Managers
- Configure appropriate limits
- Define clear approval thresholds
- Set up narration templates
- Configure fee structures
- Monitor transaction volumes
- Review and update policies
Next Steps
Explore specific transaction types:
- Deposit Transaction - Technical Flow →
- Withdrawal Transaction - Technical Flow →
- Transfer Transaction - Technical Flow →
- Initiate Deposit - Business Guide →
- Initiate Withdrawal - Business Guide →
- Initiate Transfer - Business Guide →
For implementation:
- See API Reference - Deposit Transactions
- See Product Configuration - Deposit Products
- See Accounting Configuration Guide
Last Updated: January 4, 2026
Version: 2.0
Status: Production Ready