Skip to main content

Teller Transfer

Overview

The teller transfer operation enables tellers to help customers transfer funds between their own accounts (e.g., from Savings to Current account). This is a customer-facing transaction where the teller facilitates the transfer on behalf of the customer.

Key Distinction

This operation transfers funds between customer accounts, NOT between tills. For till-to-till transfers (internal cash management), see Transfer Between Tills.

BPMCore Command

Command: InitiateTransferCommand
Handler: AdministrationCoreDepositTransactionCommandHandlers

Transaction Characteristics

CharacteristicDetails
Customer Involvement✅ Yes - Customer present at counter requesting transfer
Till Cash Impact❌ No - No physical cash involved
Source Account Impact✅ Yes - Balance decreased
Destination Account Impact✅ Yes - Balance increased
GL Posting✅ Yes - Dr Destination Account / Cr Source Account
Notifications✅ Yes - Both accounts receive transaction notifications
Transaction TypeCoreTransactionType.Transfer

Flow Diagram

Request Parameters

{
"commandType": "InitiateTransferCommand",
"sourceAccountId": "string",
"destinationAccountId": "string",
"amount": 0.00,
"narration": "string",
"reference": "string",
"tellerId": "string",
"tellerTillId": "string"
}

Parameter Details

ParameterTypeRequiredDescription
sourceAccountIdstring✅ YesAccount to transfer FROM
destinationAccountIdstring✅ YesAccount to transfer TO
amountdecimal✅ YesAmount to transfer
narrationstring✅ YesTransfer description
referencestring⚠️ OptionalExternal reference number
tellerIdstring✅ YesID of teller processing transfer
tellerTillIdstring✅ YesID of teller's till (for audit trail)

Validation Rules

1. Account Validations

ValidationDescriptionError Code
Source Account ExistsAccount must exist in systemACCOUNT_NOT_FOUND
Destination Account ExistsAccount must exist in systemACCOUNT_NOT_FOUND
Source Account ActiveAccount must be in Active stateACCOUNT_INACTIVE
Destination Account ActiveAccount must be in Active stateACCOUNT_INACTIVE
Different AccountsSource ≠ DestinationSAME_ACCOUNT_TRANSFER
Customer OwnershipBoth accounts must belong to same customerOWNERSHIP_MISMATCH

2. Balance Validations

ValidationDescriptionError Code
Sufficient BalanceSource available balance ≥ transfer amountINSUFFICIENT_FUNDS
No Holds/LiensSource account has no blocking holdsACCOUNT_HAS_HOLDS
Minimum BalanceTransfer won't breach minimum balance requirementMIN_BALANCE_BREACH

3. Till Validations

ValidationDescriptionError Code
Till OpenTeller's till must be in OPENED stateTILL_NOT_OPEN
Till AssignmentTeller must be assigned to specified tillTILL_NOT_ASSIGNED
Branch MatchTill and accounts must be in same branchBRANCH_MISMATCH

4. Amount Validations

ValidationDescriptionError Code
Positive AmountAmount must be > 0INVALID_AMOUNT
Maximum LimitAmount ≤ configured transfer limitAMOUNT_EXCEEDS_LIMIT
Precision CheckAmount must have valid decimal placesINVALID_PRECISION

State Transitions

GL Postings

Transfer Entry

AccountDr/CrAmountDescription
Destination AccountDrTransfer AmountReceiving account increased
Source AccountCrTransfer AmountSending account decreased

Example

Customer transfers $1,000 from Savings (101-001) to Current (101-002):

Dr  101-002 (Current Account)     $1,000.00
Cr 101-001 (Savings Account) $1,000.00
Narration: Transfer from Savings to Current Account

Response Structure

Success Response

{
"success": true,
"transactionId": "TXN-20250101-001234",
"sourceAccountBalance": 5000.00,
"destinationAccountBalance": 2000.00,
"timestamp": "2025-01-01T10:30:00Z",
"reference": "REF-001234"
}

Error Response

{
"success": false,
"errorCode": "INSUFFICIENT_FUNDS",
"message": "Source account has insufficient available balance",
"availableBalance": 500.00,
"requestedAmount": 1000.00
}

Common Use Cases

1. Move Funds to Current Account

Scenario: Customer needs to transfer money from Savings to Current account for bill payment

Flow:

  1. Customer provides both account numbers
  2. Teller verifies customer identity
  3. Teller enters transfer details
  4. System validates both accounts and balance
  5. Transfer executes immediately
  6. Customer receives receipt showing new balances

2. Consolidate Savings

Scenario: Customer wants to move all funds from one savings account to another

Flow:

  1. Teller retrieves source account balance
  2. Enters full balance as transfer amount (minus minimum balance if required)
  3. System transfers funds
  4. Both accounts updated in real-time

3. Emergency Fund Access

Scenario: Customer needs immediate access to savings at teller counter

Flow:

  1. Transfer from Savings to Current account
  2. Then use Teller Withdrawal from Current account
  3. Customer receives cash from till

Integration Points

Account Types Supported

From AccountTo AccountSupported
SavingsCurrent✅ Yes
CurrentSavings✅ Yes
SavingsSavings✅ Yes
CurrentCurrent✅ Yes
SavingsLoan✅ Yes (loan repayment alternative)
CurrentLoan✅ Yes (loan repayment alternative)

Business Rules

Transfer Limits

Limit TypeValueConfiguration
Minimum Transfer$1.00TransferConfig.MinAmount
Maximum Transfer$50,000.00TransferConfig.MaxAmount
Daily Limit (per account)$100,000.00TransferConfig.DailyLimit
Transaction Count Limit20 per dayTransferConfig.MaxTransactions

Processing Times

ScenarioProcessing Time
Same Branch TransferInstant (real-time)
Different Branch TransferInstant (real-time)
System DowntimeQueued for retry

Audit Trail

All transfers create audit records capturing:

  • Source and destination account numbers
  • Amount transferred
  • Teller ID and till ID
  • Customer ID
  • Timestamp
  • IP address
  • Before/after balances
  • Narration and reference

Error Handling

Common Errors

ErrorCauseResolution
TILL_NOT_OPENTeller's till is not in OPENED stateOpen Till first
INSUFFICIENT_FUNDSSource account balance too lowCheck available balance with customer
ACCOUNT_INACTIVEAccount is dormant or closedReactivate account or use different account
OWNERSHIP_MISMATCHAccounts belong to different customersVerify account numbers with customer
AMOUNT_EXCEEDS_LIMITTransfer exceeds configured limitSplit into multiple smaller transfers
BRANCH_MISMATCHAccounts in different branches than tillUse branch transfer process

Security Considerations

Authorization Requirements

  • Teller must be authenticated and authorized
  • Till must be open and assigned to teller
  • Customer identity verification required for large transfers
  • Supervisor approval may be required for amounts exceeding threshold

Fraud Prevention

  • System checks for unusual transfer patterns
  • Velocity limits prevent rapid successive transfers
  • Cross-reference with customer's typical transaction behavior
  • Alert on first-time large transfers