Cheque Transactions Overview
Complete guide to cheque processing in BankLingo V2 Core Banking Platform.
Overview
Cheque transactions handle the complete cheque lifecycle from deposit/issuance to clearing or bouncing. BankLingo V2 implements a robust cheque transaction processing engine with:
- Multi-state processing: PENDING → UNCLEARED → CLEARED/BOUNCED
- Hold management: Prevents premature fund access
- Clearing cycle tracking: Complete audit trail
- Settlement integration: Automatic GL postings
- Complete reversal: Bounce and cancellation support
- Inter-bank clearing: Integration with clearing house
Transaction Types
Cheque Operations
| Transaction | Purpose | V2 Command | Key Features |
|---|---|---|---|
| Cheque Deposit | Deposit cheque (uncleared) | InitiateChequeDepositCommand | Hold placement, clearing cycle, pending state management |
| Cheque Withdrawal | Issue cheque for withdrawal | InitiateChequeWithdrawalCommand | Cheque issuance, signature verification, stop payment support |
| Clear Cheque | Clear deposited cheque | InitiateClearChequeCommand | Fund release, hold removal, GL settlement |
| Bounce Cheque | Bounce deposited cheque | InitiateBounceChequeCommand | Reversal, penalty charges, notification |
| Cancel Cheque | Cancel cheque withdrawal | InitiateCancelChequeCommand | Stop payment, reversal, cancellation fee |
For complete technical documentation, see Cheque Transaction - Technical Flow.
Transaction States
Cheque transactions follow a specialized state machine:
States Explained:
- PENDING: Cheque transaction created, awaiting initial processing
- UNCLEARED: Cheque deposited, in clearing cycle (funds held)
- CLEARED: Clearing successful, funds released to customer
- BOUNCED: Clearing failed, cheque returned unpaid, reversal created
- CANCELLED: Cheque cancelled before clearing (stop payment)
- REVERSED: Administrative reversal (rare, post-clearing correction)
Core Concepts
Cheque Deposit Flow
Process:
- Customer Presents Cheque: Physical cheque submitted to teller
- Verification: Teller verifies cheque details (date, signature, amount, payee)
- System Entry: Create cheque deposit transaction (PENDING → UNCLEARED)
- Hold Placement: Funds held in account (not available for withdrawal)
- Clearing Submission: Cheque sent to clearing house (same-day or next-day)
- Clearing Result:
- SUCCESS: Cheque cleared → Release hold → Funds available (CLEARED)
- FAILURE: Cheque bounced → Reverse transaction → Penalty charged (BOUNCED)
Timeline:
Day 0 (Deposit):
Time 09:00 - Cheque deposited (UNCLEARED)
Time 09:00 - Hold placed on account
Time 16:00 - Cheque sent to clearing house
Day 1 (Clearing):
Time 14:00 - Clearing result received
Success Path:
Time 14:01 - Release hold (CLEARED)
Time 14:01 - Funds available to customer
Failure Path:
Time 14:01 - Reverse transaction (BOUNCED)
Time 14:01 - Charge penalty fee
Time 14:02 - Notify customer
Cheque Withdrawal Flow
Process:
- Customer Requests Cheque: Withdrawal via cheque instead of cash
- Verification: Verify account balance and withdrawal limit
- System Entry: Create cheque withdrawal transaction (PENDING)
- Cheque Issuance: Print/issue physical cheque to customer
- Cheque Presented: Payee presents cheque for payment (could be days/weeks later)
- Clearing Result:
- HONOURED: Cheque paid → Debit customer account (COMPLETED)
- STOPPED: Stop payment requested → Reject cheque → Reversal (CANCELLED)
Hold Management
Cheque deposits use hold management to prevent premature fund access:
Two Balance Types:
- BookBalance: Includes uncleared cheque amount
- AvailableBalance: Excludes uncleared cheque (BookBalance - HoldAmount)
Process:
- UNCLEARED: BookBalance increased, HoldAmount increased (AvailableBalance unchanged)
- CLEARED: HoldAmount released (AvailableBalance increased)
- BOUNCED: BookBalance reduced, HoldAmount released (reversal)
Example:
Initial State:
BookBalance: 10,000
HoldAmount: 0
AvailableBalance: 10,000
Deposit Cheque 5,000 (UNCLEARED):
BookBalance: 15,000 (+5,000)
HoldAmount: 5,000 (+5,000)
AvailableBalance: 10,000 (no change - funds held)
Cheque Clears (CLEARED):
BookBalance: 15,000 (no change)
HoldAmount: 0 (-5,000)
AvailableBalance: 15,000 (+5,000 - funds released)
Alternative - Cheque Bounces (BOUNCED):
BookBalance: 10,000 (-5,000 reversal)
HoldAmount: 0 (-5,000)
AvailableBalance: 10,000 (back to original)
Penalty Fee: 500 (charged to account)
Impact Tracking
Every cheque transaction records exactly what changed:
ImpactedEntity {
entityType: "DepositAccount"
entityId: 12345
fieldName: "HoldAmount"
oldValue: 0
newValue: 5000
deltaAmount: +5000 // Hold placed for uncleared cheque
}
GL Integration
All cheque transactions automatically post to General Ledger:
Cheque Deposit (UNCLEARED):
DR: Uncleared Cheques Account +5,000
CR: Customer Deposits -5,000
Cheque Clearing (CLEARED):
DR: Customer Deposits +5,000
CR: Uncleared Cheques Account -5,000
Cheque Bounce (BOUNCED):
Reversal Entry:
DR: Customer Deposits +5,000
CR: Uncleared Cheques Account -5,000
Penalty Entry:
DR: Customer Deposits +500
CR: Fee Income -500
Clearing Integration
Same-Bank Cheques
Cheques drawn on the same bank (internal clearing):
- Instant Verification: Check drawer account balance immediately
- Fast Clearing: Can clear same-day or within hours
- Lower Risk: Internal validation, no external clearing house
Inter-Bank Cheques
Cheques drawn on other banks (external clearing):
- Clearing House: Submitted to national clearing house (e.g., NIBSS in Nigeria)
- Clearing Cycle: Typically 1-3 business days
- Higher Risk: Dependent on external bank, potential for bounce
Clearing Timelines
| Cheque Type | Clearing Time | Availability |
|---|---|---|
| Same-Bank (Local Branch) | Same day | Next business day |
| Same-Bank (Other Branch) | 1 business day | 2 business days |
| Inter-Bank (Local) | 1-2 business days | 3 business days |
| Inter-Bank (Upcountry) | 2-3 business days | 4-5 business days |
| Foreign Cheque | 10-21 business days | 22+ business days |
Approval Workflows
Cheque transactions can require approval based on:
- Transaction amount (threshold)
- Account type
- Cheque age (stale cheque > 6 months)
- Payee verification
- Signature discrepancies
Workflow:
Initiate Cheque Transaction (PENDING)
↓
Physical Cheque Verification
↓
Check Approval Requirement
↓
Auto-Approve OR Await Approval
↓
Submit to Clearing House (UNCLEARED)
↓
Await Clearing Result
↓
Clear (CLEARED) OR Bounce (BOUNCED)
API Integration
All cheque transactions are executed via BPMCore command pattern:
Endpoint:
POST /api/bpm/cmd
Content-Type: application/json
Authorization: Bearer {access_token}
Request Structure - Cheque Deposit:
{
"commandName": "InitiateChequeDepositCommand",
"data": {
"accountEncodedKey": "ACC-001",
"amount": 5000.00,
"chequeNumber": "CHQ-123456",
"drawerBank": "BANK-XYZ",
"drawerAccount": "9876543210",
"chequeDate": "2026-01-04",
"notes": "Customer cheque deposit"
}
}
Request Structure - Clear Cheque:
{
"commandName": "InitiateClearChequeCommand",
"data": {
"chequeTransactionId": 12345,
"clearingDate": "2026-01-05",
"notes": "Clearing house confirmation"
}
}
Response:
{
"isSuccessful": true,
"statusCode": "00",
"message": "Cheque deposit successful - funds will be available after clearing",
"data": {
"transactionKey": "TXN-2025-001",
"chequeState": "UNCLEARED",
"expectedClearingDate": "2026-01-05",
"holdAmount": 5000.00,
"availableBalance": 10000.00
}
}
Error Handling
All transactions use standard error codes:
| Error Code | Description | Action |
|---|---|---|
00 | Success | Transaction completed |
05 | Account closed/locked | Cannot deposit |
12 | Invalid cheque details | Verify cheque |
14 | Stale cheque (> 6 months) | Request new cheque |
34 | Insufficient funds (withdrawal) | Cannot issue |
51 | Limit exceeded | Reduce amount |
61 | Cheque bounced | Charge penalty |
91 | System error | Retry or contact support |
Best Practices
For Tellers
- Verify cheque date (not post-dated, not stale)
- Verify signature matches account records
- Verify payee name (for deposit)
- Check for alterations or forgery signs
- Capture cheque image (front and back)
- Inform customer of clearing timeline
For Customers
- Write cheques clearly and legibly
- Ensure sufficient funds before issuing
- Deposit cheques promptly (within 6 months)
- Report lost/stolen cheques immediately
- Monitor account for bounced cheques
- Avoid post-dated cheques if possible
For Developers
- Always track hold placement and release
- Implement proper clearing cycle state management
- Handle bounce scenarios gracefully
- Test concurrent cheque deposits
- Log all state transitions for audit
- Support reversal for both cleared and bounced cheques
Next Steps
Explore cheque processing:
Related operations:
- See Deposit Transactions - Cash deposits and withdrawals
- See Teller Transactions - Teller operations
- See API Reference - Cheque Transactions (./developer/)
Last Updated: January 4, 2026
Version: 2.0
Status: Production Ready