Skip to main content

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

TransactionPurposeV2 CommandKey Features
Cheque DepositDeposit cheque (uncleared)InitiateChequeDepositCommandHold placement, clearing cycle, pending state management
Cheque WithdrawalIssue cheque for withdrawalInitiateChequeWithdrawalCommandCheque issuance, signature verification, stop payment support
Clear ChequeClear deposited chequeInitiateClearChequeCommandFund release, hold removal, GL settlement
Bounce ChequeBounce deposited chequeInitiateBounceChequeCommandReversal, penalty charges, notification
Cancel ChequeCancel cheque withdrawalInitiateCancelChequeCommandStop 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:

  1. Customer Presents Cheque: Physical cheque submitted to teller
  2. Verification: Teller verifies cheque details (date, signature, amount, payee)
  3. System Entry: Create cheque deposit transaction (PENDING → UNCLEARED)
  4. Hold Placement: Funds held in account (not available for withdrawal)
  5. Clearing Submission: Cheque sent to clearing house (same-day or next-day)
  6. 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:

  1. Customer Requests Cheque: Withdrawal via cheque instead of cash
  2. Verification: Verify account balance and withdrawal limit
  3. System Entry: Create cheque withdrawal transaction (PENDING)
  4. Cheque Issuance: Print/issue physical cheque to customer
  5. Cheque Presented: Payee presents cheque for payment (could be days/weeks later)
  6. 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:

  1. UNCLEARED: BookBalance increased, HoldAmount increased (AvailableBalance unchanged)
  2. CLEARED: HoldAmount released (AvailableBalance increased)
  3. 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 TypeClearing TimeAvailability
Same-Bank (Local Branch)Same dayNext business day
Same-Bank (Other Branch)1 business day2 business days
Inter-Bank (Local)1-2 business days3 business days
Inter-Bank (Upcountry)2-3 business days4-5 business days
Foreign Cheque10-21 business days22+ 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 CodeDescriptionAction
00SuccessTransaction completed
05Account closed/lockedCannot deposit
12Invalid cheque detailsVerify cheque
14Stale cheque (> 6 months)Request new cheque
34Insufficient funds (withdrawal)Cannot issue
51Limit exceededReduce amount
61Cheque bouncedCharge penalty
91System errorRetry or contact support

Best Practices

For Tellers

  1. Verify cheque date (not post-dated, not stale)
  2. Verify signature matches account records
  3. Verify payee name (for deposit)
  4. Check for alterations or forgery signs
  5. Capture cheque image (front and back)
  6. Inform customer of clearing timeline

For Customers

  1. Write cheques clearly and legibly
  2. Ensure sufficient funds before issuing
  3. Deposit cheques promptly (within 6 months)
  4. Report lost/stolen cheques immediately
  5. Monitor account for bounced cheques
  6. Avoid post-dated cheques if possible

For Developers

  1. Always track hold placement and release
  2. Implement proper clearing cycle state management
  3. Handle bounce scenarios gracefully
  4. Test concurrent cheque deposits
  5. Log all state transitions for audit
  6. Support reversal for both cleared and bounced cheques

Next Steps

Explore cheque processing:

Related operations:


Last Updated: January 4, 2026
Version: 2.0
Status: Production Ready