Skip to main content

Teller Withdrawal

Overview

The teller withdrawal operation enables tellers to pay out cash to customers from their deposit accounts. This is a customer-facing transaction where the teller disburses physical cash and debits the customer's account balance.

Key Distinction

This operation involves physical cash paid out from the till and debited from a customer's deposit account. The till balance decreases by the withdrawal amount. This is different from:

BPMCore Command

Command: InitiateWithdrawalCommand
Handler: AdministrationCoreDepositTransactionCommandHandlers
Transaction Type: CoreTransactionType.Withdrawal (when channelCode is a teller channel)

Transaction Characteristics

CharacteristicDetails
Customer Involvement✅ Yes - Customer present at counter to receive cash
Till Cash Impact✅ Yes - Till balance DECREASES by withdrawal amount
Account Impact✅ Yes - Customer account balance DECREASES
Physical Cash✅ Yes - Cash paid out to customer
GL Posting✅ Yes - Dr Customer Account / Cr Till GL
Notifications✅ Yes - Customer receives withdrawal confirmation
Transaction TypeCoreTransactionType.Withdrawal
Channel TypeTeller channel (e.g., TELLER, BRANCH_TELLER)

Flow Diagram

Request Parameters

{
"commandType": "InitiateWithdrawalCommand",
"accountEncodedKey": "string",
"amount": 0.00,
"channelCode": "TELLER",
"notes": "string",
"serviceId": "string",
"serviceDescription": "string",
"transactionType": 2
}

Parameter Details

ParameterTypeRequiredDescription
accountEncodedKeystring✅ YesCustomer account number or encoded key to withdraw from
amountdecimal✅ YesAmount to withdraw (must be positive)
channelCodestring✅ YesTeller channel code (e.g., TELLER, BRANCH_TELLER)
notesstring⚠️ OptionalAdditional notes or remarks
serviceIdstring⚠️ OptionalService identifier for categorization
serviceDescriptionstring⚠️ OptionalDescription of purpose for withdrawal
transactionTypeinteger✅ YesMust be 2 for CoreTransactionType.Withdrawal
Channel Configuration

The channelCode must be configured as a teller channel in the system. This determines:

  • Till GL account for posting
  • Transaction fees (if applicable)
  • Withdrawal limits
  • Audit trail categorization

Validation Rules

1. Account Validations

ValidationDescriptionError Code
Account ExistsAccount must exist in systemNOT_FOUND
Account ActiveAccount must not be in Locked or Dormant stateACCOUNT_IS_RESTRICTED
Not FrozenAccount must not be frozenACCOUNT_IS_RESTRICTED
Not LockedAccount must not have transaction locksACCOUNT_IS_RESTRICTED
Account Type CheckCheck account type-specific withdrawal rulesINVALID_OPERATION

2. Balance Validations

ValidationDescriptionError Code
Sufficient BalanceAccount balance ≥ withdrawal amount + minimum balanceINSUFFICIENT_FUNDS
Minimum BalanceWithdrawal won't breach minimum balance requirementMIN_BALANCE_BREACH
Available BalanceBalance minus holds/liens ≥ withdrawal amountINSUFFICIENT_AVAILABLE_BALANCE
Overdraft CheckIf overdraft enabled, respect overdraft limit and expiryOVERDRAFT_LIMIT_EXCEEDED
Overdraft Handling

The system supports temporary overdrafts with:

  • Overdraft Limit: Maximum negative balance allowed
  • Expiry Date: Overdraft facility expires after this date
  • Calculation: Available Balance = Account Balance + Active Overdraft Limit

3. Amount Validations

ValidationDescriptionError Code
Positive AmountAmount must be > 0INVALID_AMOUNT
Withdrawal LimitAmount ≤ account tier withdrawal transaction limitWITHDRAWAL_LIMIT_EXCEEDED
Daily LimitAmount + today's withdrawals ≤ daily limitDAILY_LIMIT_EXCEEDED
Precision CheckAmount must have valid decimal placesINVALID_PRECISION

4. Till Validations

ValidationDescriptionError Code
Till OpenTeller's till must be in OPENED stateTILL_NOT_OPEN
Till AssignmentTeller must be assigned to tillTILL_NOT_ASSIGNED
Till Sufficient CashTill balance ≥ withdrawal amountTILL_INSUFFICIENT_CASH
Minimum Till BalanceTill balance after withdrawal ≥ minimum requiredTILL_MINIMUM_BREACH
Branch MatchAccount and till must be in same branchBRANCH_MISMATCH

5. Channel Validations

ValidationDescriptionError Code
Channel ExistsChannel code must be configuredCHANNEL_NOT_FOUND
Channel ActiveChannel must be activeCHANNEL_INACTIVE
Operation AllowedChannel must allow withdrawal operationsOPERATION_NOT_ALLOWED
Teller Channel TypeChannel must be teller-type channelINVALID_CHANNEL_TYPE

State Transitions

GL Postings

Teller Withdrawal Entry

AccountDr/CrAmountDescription
Customer Deposit AccountDrWithdrawal AmountCustomer account debited
Till GL AccountCrWithdrawal AmountCash removed from till

Example

Customer withdraws $2,000 cash from Savings Account (101-001). Till GL is 1010-TILL-001:

Dr  101-001 (Customer Savings)          $2,000.00
Cr 1010-TILL-001 (Till Cash) $2,000.00
Narration: Withdrawal of $2,000 from account 101-001 via TELLER
Till Balance Impact

Always remember: Teller withdrawals DECREASE the till balance. The physical cash paid to the customer is removed from the till drawer.

Response Structure

Success Response

{
"isSuccessful": true,
"message": "Withdrawal processed successfully",
"data": {
"transactionId": "TXN-20250119-002345",
"accountNumber": "101-001",
"accountBalance": 8000.00,
"withdrawalAmount": 2000.00,
"tillBalance": 48000.00,
"transactionDate": "2025-01-19T14:15:00Z",
"reference": "WDL-002345",
"narration": "Withdrawal of $2,000 from account 101-001 via TELLER"
}
}

Error Response

{
"isSuccessful": false,
"message": "Insufficient balance",
"errorCode": "INSUFFICIENT_FUNDS",
"statusCode": "51",
"availableBalance": 1500.00,
"requestedAmount": 2000.00,
"minimumBalance": 100.00
}

Common Use Cases

1. Regular Cash Withdrawal

Scenario: Customer needs cash for daily expenses

Flow:

  1. Customer provides withdrawal slip with account number and amount
  2. Teller verifies customer identity (ID, signature, biometrics)
  3. Teller enters withdrawal details into system
  4. System validates account balance and till cash availability
  5. Withdrawal processes immediately
  6. Teller counts cash in front of customer
  7. Customer receives cash and receipt with remaining balance

2. Large Amount Withdrawal

Scenario: Customer needs $10,000 for business payment

Flow:

  1. Customer preferably notifies branch in advance
  2. Teller checks if till has sufficient cash
  3. If till is low, request cash from vault first
  4. Verify customer identity with enhanced checks
  5. Process withdrawal transaction
  6. Count large amount using cash counting machine
  7. Provide customer with receipt and currency authenticity report

3. Emergency Withdrawal from Fixed Deposit

Scenario: Customer needs to break fixed deposit early

Flow:

  1. Customer requests early withdrawal from fixed deposit
  2. System calculates penalty (if applicable)
  3. Process withdrawal from fixed deposit account
  4. Deduct penalty amount
  5. Pay out net amount to customer
  6. Close or update fixed deposit account

4. Overdraft Withdrawal

Scenario: Customer has temporary overdraft facility

Flow:

  1. Customer requests withdrawal exceeding available balance
  2. System checks if overdraft facility exists and is not expired
  3. Calculates: Available = Balance + Overdraft Limit
  4. If withdrawal ≤ available, process transaction
  5. Account goes into negative balance (overdraft)
  6. Customer receives cash and overdraft usage notification

Integration Points

Account Types Supported

Account TypeWithdrawal AllowedSpecial Rules
Savings Account✅ YesCheck withdrawal limits and frequency
Current Account✅ YesUsually no limits or restrictions
Fixed Deposit⚠️ ConditionalEarly withdrawal may incur penalty
Savings Plan⚠️ ConditionalMay require plan closure first
Overdraft Account✅ YesCan withdraw beyond balance up to overdraft limit

Business Rules

Withdrawal Limits

Limit TypeConfigurationEnforcement
Minimum WithdrawalDepositProductConfig.MinimumWithdrawalPer transaction
Maximum TransactionAccountTier.WithdrawalTransactionLimitPer transaction
Daily Withdrawal LimitAccountTier.DailyWithdrawalLimitPer day aggregate
Monthly FrequencyAccountTier.MaxWithdrawalsPerMonthMonthly count
Withdrawal Frequency Limits

Some account types (especially savings accounts) may have frequency limits:

  • Daily Frequency: Maximum withdrawals per day (e.g., 3)
  • Monthly Frequency: Maximum withdrawals per month (e.g., 6)
  • Penalty for Excess: Fee charged for withdrawals beyond limit

Minimum Balance Calculation

The system enforces minimum balance during withdrawals:

Available for Withdrawal = Account Balance - Minimum Balance - Active Holds

With Overdraft:
Available for Withdrawal = Account Balance - Minimum Balance - Active Holds + Overdraft Limit

Processing Times

ScenarioProcessing Time
Standard WithdrawalInstant (real-time)
Large Amount (> threshold)Requires supervisor approval
Frozen AccountRejected immediately
Dormant AccountRequires reactivation first
System DowntimeQueued for processing

Narration Templates

Withdrawal narration is generated using configurable templates:

Customer Narration:

`Withdrawal of ${context.amount} from ${context.accountNumber} via ${context.channelName}`

Channel Narration:

`Withdrawal of ${context.amount} from ${context.accountNumber} via ${context.channelName}`

Transaction ID:

`${context.transactionKey}`

These templates can be customized in the DepositProductConfig.NarrationTemplates.

Audit Trail

All teller withdrawals create comprehensive audit records capturing:

  • Transaction Details: Amount, account number, transaction ID
  • Teller Information: Teller ID, till ID, branch ID
  • Customer Information: Customer ID, account details, identity verification method
  • Cash Details: Currency, denomination breakdown (if captured)
  • Timestamps: Request time, processing time, cash disbursement time
  • System Information: IP address, terminal ID, session ID
  • Before/After State: Account balance before/after, till balance before/after
  • Approval Information: Supervisor approval (if required)
  • Narration: Customer and internal narrations

Error Handling

Common Errors

ErrorCauseResolution
TILL_NOT_OPENTeller's till is closedOpen Till first
INSUFFICIENT_FUNDSAccount balance too lowVerify balance with customer, suggest transfer from another account
TILL_INSUFFICIENT_CASHTill doesn't have enough cashRequest cash from vault
ACCOUNT_IS_RESTRICTEDAccount locked, frozen, or dormantCheck account status, contact supervisor or branch manager
WITHDRAWAL_LIMIT_EXCEEDEDAmount exceeds transaction limitSplit into multiple transactions or request limit increase
DAILY_LIMIT_EXCEEDEDCustomer exceeded daily limitCustomer must return next day or request limit increase
NOT_FOUNDAccount doesn't existVerify account number with customer
OVERDRAFT_LIMIT_EXCEEDEDWithdrawal exceeds available + overdraftReduce withdrawal amount

Withdrawal Rejection Scenarios

ScenarioAction TakenCustomer Impact
Account LockedReject immediatelyCustomer must unlock account first
Frozen AccountReject immediatelyCustomer must contact branch manager
Dormant AccountReject immediatelyAccount must be reactivated
Insufficient BalanceReject immediatelyCustomer must reduce amount or deposit first
Till EmptyReject with suggestionReplenish till from vault or direct customer to another teller

Security Considerations

Customer Identity Verification

Identity Verification Required

Teller withdrawals ALWAYS require customer identity verification:

  • Low Amount (< $1,000): Basic ID + Signature verification
  • Medium Amount ($1,000 - $5,000): ID + Signature + Account verification questions
  • Large Amount (> $5,000): ID + Signature + Biometric + Manager approval
  • Very Large (> $10,000): Enhanced due diligence + Source of funds inquiry

Authorization Requirements

  • Teller must be authenticated and authorized
  • Till must be open and assigned to teller
  • Customer must present valid identification
  • Signature must match bank records
  • Large withdrawals require supervisor approval (configurable threshold)
  • Manager override for withdrawals exceeding limits

Fraud Prevention

  • System checks for unusual withdrawal patterns
  • Velocity limits prevent rapid successive withdrawals
  • Alerts on withdrawals exceeding customer's typical behavior
  • Cross-reference with customer profile and transaction history
  • Flag dormant accounts suddenly activated for large withdrawals
  • Real-time monitoring for suspicious activity
  • Integration with fraud detection systems

Compliance Features

  • Automatic reporting for large cash withdrawals (regulatory threshold)
  • Enhanced due diligence for high-risk customers
  • Purpose of withdrawal documentation for large amounts
  • Anti-money laundering (AML) screening
  • Politically Exposed Person (PEP) checks
  • Currency Transaction Report (CTR) generation

Performance Considerations

Till Cash Management

Till Cash Shortage Prevention

Monitor till balance throughout the day. When till is running low:

  1. Request Cash from Vault - Replenish till from branch vault
  2. Transfer Between Tills - Balance cash across tills
  3. Proactive Monitoring: Set alerts when till balance drops below threshold
  4. Peak Hour Planning: Ensure adequate cash during busy periods

Cash Counting and Disbursement

Amount RangeRecommended Practice
< $1,000Manual count once by teller
$1,000 - $5,000Double-count by teller in front of customer
$5,000 - $10,000Machine count + manual verification
> $10,000Machine count + supervisor verification + customer confirmation

Cash Denomination Management

  • Maintain adequate mix of denominations
  • Avoid paying out only large bills
  • Request smaller denominations from vault when needed
  • Track denomination distribution in till

Best Practices

  1. Always verify customer identity before processing withdrawal
  2. Check till cash availability before committing transaction
  3. Count cash twice in front of customer for amounts > $500
  4. Provide immediate receipt upon cash disbursement
  5. Monitor till balance and request replenishment proactively
  6. Verify large withdrawal purpose for compliance
  7. Secure cash handling: Keep till drawer locked when not in use
  8. Report suspicious activity immediately to supervisor
  9. Document approval for limit override or large withdrawals
  10. Balance customer service with security: Be friendly but vigilant