Teller Transactions API
Overview
The Teller Transactions API provides endpoints for processing customer transactions at teller counters. These operations involve physical cash handling and direct customer interaction, distinguishing them from automated channel transactions (ATM, mobile banking, etc.).
Teller transactions are customer-facing operations where:
- Physical cash is exchanged at the teller counter
- The till balance is directly impacted by cash movements
- Customer identity verification is required
- Transactions are processed in real-time with immediate account updates
- Audit trails capture teller, customer, and cash handling details
Core Transaction Types
1. Teller Deposit
Accept cash from customers and credit their deposit accounts.
Command: InitiateDepositCommand
Impact: Till balance ↑ | Account balance ↑
Cash Flow: Customer → Till → Account
2. Teller Withdrawal
Pay out cash to customers and debit their deposit accounts.
Command: InitiateWithdrawalCommand
Impact: Till balance ↓ | Account balance ↓
Cash Flow: Account → Till → Customer
3. Teller Transfer
Transfer funds between customer accounts without physical cash.
Command: InitiateTransferCommand
Impact: Till balance (no change) | Both accounts updated
Cash Flow: No cash involved - book transfer only
4. Loan Repayment with Teller
Accept cash from customers to repay loan obligations.
Command: RecordLoanRepaymentCommand
Impact: Till balance ↑ | Loan balance ↓
Cash Flow: Customer → Till → Loan Account
5. Transaction Reversal
Reverse incorrectly processed teller transactions.
Command: ReverseTellerTransactionCommand
Impact: Restores original state
Cash Flow: Reverses original transaction
Key Distinctions
It's crucial to understand the difference:
| Aspect | Teller Transactions | Till Operations |
|---|---|---|
| Customer Involvement | ✅ Yes - Customer present | ❌ No - Internal only |
| Cash Source/Destination | Customer | Vault/Another Till |
| Account Impact | ✅ Customer account updated | ❌ No customer accounts |
| Till Balance Impact | ✅ Yes | ✅ Yes |
| Examples | Deposit, Withdrawal | Add cash to till, Remove cash from till |
| Documentation | This section | Till Accounts → |
Teller Transactions: Customer brings/receives cash → Account is credited/debited
Till Operations: Internal cash management → No customer accounts involved
BPMCore Architecture
All teller transactions are processed through the BPMCore command engine:
Command Handlers
| Command | Handler | Purpose |
|---|---|---|
InitiateDepositCommand | AdministrationCoreDepositTransactionCommandHandlers | Process deposits |
InitiateWithdrawalCommand | AdministrationCoreDepositTransactionCommandHandlers | Process withdrawals |
InitiateTransferCommand | AdministrationCoreDepositTransactionCommandHandlers | Process transfers |
RecordLoanRepaymentCommand | AdministrationCoreLoanTransactionCommandHandlers | Process loan repayments |
ReverseTellerTransactionCommand | AdministrationCoreTransactionReversalHandlers | Reverse transactions |
Transaction Flow
Standard Teller Transaction Flow
Transaction States
All teller transactions follow this state machine:
Common Validations
All teller transactions perform these validations:
1. Channel Validation
- Channel code must exist and be active
- Channel must be configured for teller operations
- Channel must support the requested transaction type
- Channel GL accounts must be configured
2. Till Validation
- Till must be in OPENED state
- Teller must be assigned to the till
- Till must belong to the correct branch
- For withdrawals: Till must have sufficient cash
3. Account Validation
- Account must exist in the system
- Account must be ACTIVE (not Locked, Frozen, or Dormant)
- Account must belong to a valid customer
- Account type must support the transaction
4. Amount Validation
- Amount must be positive (> 0)
- Amount must respect account tier limits
- For withdrawals: Account must have sufficient balance
- Precision must match currency configuration
5. Limit Validation
- Single transaction limits (account tier)
- Daily transaction limits (account tier)
- Monthly frequency limits (for savings accounts)
- Account maximum balance (for deposits)
Response Structure
All teller transaction commands return a consistent response structure:
Success Response
{
"isSuccessful": true,
"message": "Transaction processed successfully",
"statusCode": "00",
"data": {
"transactionId": "TXN-20250119-001234",
"accountNumber": "101-001",
"accountBalance": 15000.00,
"transactionAmount": 5000.00,
"tillBalance": 85000.00,
"transactionDate": "2025-01-19T10:30:00Z",
"reference": "REF-001234",
"narration": "Transaction description",
"transactionType": "Deposit"
}
}
Error Response
{
"isSuccessful": false,
"message": "Descriptive error message",
"errorCode": "ERROR_CODE",
"statusCode": "51",
"data": {
"accountNumber": "101-001",
"requestedAmount": 5000.00,
"availableBalance": 3000.00,
"minimumBalance": 100.00
}
}
Common Status Codes
| Code | Meaning | Typical Scenarios |
|---|---|---|
00 | Success | Transaction completed |
51 | Insufficient funds | Withdrawal/transfer exceeds balance |
06 | Error | Account locked, frozen, or dormant |
12 | Invalid transaction | Account type doesn't support operation |
14 | Invalid account | Account not found |
30 | Format error | Invalid amount or parameters |
GL Posting Patterns
Deposit GL Entry
Dr Till GL Account Amount
Cr Customer Account Amount
Withdrawal GL Entry
Dr Customer Account Amount
Cr Till GL Account Amount
Transfer GL Entry
Dr Destination Account Amount
Cr Source Account Amount
Note: Till is NOT involved in transfers (no cash movement).
Till Balance Management
Tellers must actively manage till balances throughout the day:
Till balance increases with:
- Customer deposits ✅
- Cash added from vault ✅
- Cash received from another till ✅
Till balance decreases with:
- Customer withdrawals ✅
- Cash removed to vault ✅
- Cash transferred to another till ✅
Till balance NOT affected by:
- Account-to-account transfers ❌
- Channel transactions (ATM, mobile) ❌
- GL corrections ❌
Till Capacity Planning
| Action | When | Documentation |
|---|---|---|
| Add cash to till | Before opening, during busy period | Add Cash → |
| Remove excess cash | Till near capacity | Remove Cash → |
| Transfer between tills | Balance workload | Transfer → |
| Vault deposit | End of day, excess cash | Vault Deposit → |
| Vault withdrawal | Till running low | Vault Withdrawal → |
Security and Compliance
Customer Identity Verification
All teller transactions require customer identity verification:
| Transaction Amount | Verification Level |
|---|---|
| < $1,000 | Basic: ID + Signature |
| $1,000 - $5,000 | Enhanced: ID + Signature + Security Questions |
| $5,000 - $10,000 | Strong: ID + Signature + Biometrics + Manager Approval |
| > $10,000 | Maximum: All above + Source of Funds + Enhanced Due Diligence |
Audit Trail
Every teller transaction creates comprehensive audit records:
- Transaction Details: Type, amount, currency, reference
- Customer Information: ID, account number, name
- Teller Information: User ID, till ID, branch
- Timestamps: Request, processing, completion
- Balances: Before/after for account and till
- Approval: Supervisor approval (if required)
- System: IP address, terminal ID, session
- Cash: Denomination breakdown (if captured)
Fraud Prevention
- Real-time monitoring for suspicious patterns
- Velocity limits (transaction frequency checks)
- Amount threshold alerts
- Dormant account activation alerts
- Cross-reference with customer profile
- Integration with fraud detection systems
Integration Points
Related API Modules
| Module | Relationship | Use Case |
|---|---|---|
| Till Accounts | Direct | Till management, cash operations |
| Deposit Accounts | Direct | Account creation and management |
| Deposit Transactions | Related | Channel transactions (non-teller) |
| Loan Transactions | Related | Loan repayments |
| Vault Transactions | Supporting | Till replenishment |
| Branch Management | Supporting | Branch configuration |
Supporting Operations
- Account Search - Look up customer accounts for transactions
- Transaction Flows - Detailed flow documentation
- Transaction Reversal - Correct errors
Best Practices
For Developers
- Always validate till state before processing transactions
- Use appropriate transaction type (
CoreTransactionTypeenum) - Handle errors gracefully with clear messages
- Log all transactions with complete context
- Respect channel configuration for GL posting
- Test edge cases: minimum balance, overdraft, limits
- Implement idempotency to prevent duplicate transactions
For Tellers
- Verify customer identity before any transaction
- Count cash carefully in front of customer
- Check account status before accepting cash
- Monitor till balance throughout the day
- Provide receipts immediately after transaction
- Secure till when not in use
- Report suspicious activity to supervisor
- Balance till at end of day
Error Handling Guide
Common Errors and Resolutions
| Error | Cause | Resolution |
|---|---|---|
TILL_NOT_OPEN | Till is closed | Open till |
ACCOUNT_IS_RESTRICTED | Account locked/frozen/dormant | Check account status, escalate to manager |
INSUFFICIENT_FUNDS | Balance too low | Verify with customer, suggest alternative |
TILL_INSUFFICIENT_CASH | Till has no cash | Withdraw from vault |
LIMIT_EXCEEDED | Amount exceeds tier limit | Split transaction or request limit increase |
CHANNEL_NOT_FOUND | Invalid channel code | Verify channel configuration |
Performance Considerations
- Real-time processing: All transactions execute in real-time
- Average processing time: < 2 seconds per transaction
- Concurrent transactions: System supports multiple tellers simultaneously
- Peak hour handling: Scales to handle branch rush hours
- Offline capability: Some terminals support offline mode with later sync
API Documentation Standards
All endpoints in this module follow these conventions:
- Command-based: Uses BPMCore command pattern
- Consistent responses: Standard success/error structure
- Validation-first: Comprehensive pre-transaction validation
- Audit-complete: Full audit trail for all operations
- Error-descriptive: Clear error messages for troubleshooting
Related Documentation
- Till Accounts Developer Guide
- Deposit Transactions Developer Guide
- Loan Transactions Developer Guide
- Vault Transactions Developer Guide
- BPMCore Command Architecture
Quick Navigation
Core Operations:
Supporting Operations:
Till Management: