Skip to main content

Get Uncleared Cheque

Query uncleared cheques for a specific account.

Command: GetUnclearedChequeQuery
Type: Query
Implementation: CB.Administration.Api/Commands/BPMCore/Tellering/AdministrationCoreTelleringChequeCommandHandlers.cs

Overview

Retrieves all pending (uncleared) cheques for a deposit account. Shows both deposits and withdrawals that are awaiting clearing.

Request

POST /api/bpm/cmd
{
"commandName": "GetUnclearedChequeQuery",
"data": {
"accountEncodedKey": "1001234567"
}
}

Parameters

ParameterTypeRequiredDescription
accountEncodedKeystringYesAccount number or encoded key

Response (200 OK)

{
"commandName": "GetUnclearedChequeQuery",
"status": "Success",
"data": {
"accountNumber": "1001234567",
"totalUnclearedAmount": 125000.00,
"unclearedCheques": [
{
"chequeClearingId": "550e8400-e29b-41d4-a716-446655440000",
"chequeNo": "CH123456",
"amount": 50000.00,
"transactionType": "DEPOSIT",
"state": "PENDING",
"transactionDate": "2025-12-29T14:30:00Z",
"remarks": "Customer cheque deposit"
},
{
"chequeClearingId": "660e8400-e29b-41d4-a716-446655440000",
"chequeNo": "CH789012",
"amount": 75000.00,
"transactionType": "WITHDRAWAL",
"state": "PENDING",
"transactionDate": "2025-12-30T10:15:00Z",
"payeeName": "ABC Suppliers Ltd",
"remarks": "Payment to supplier"
}
]
}
}

Use Cases

  • Check uncleared cheques before account closure
  • Monitor pending deposits
  • Track outstanding withdrawals
  • Calculate available balance
  • Identify aged pending cheques
  • Customer inquiries about pending cheques

Examples

Get All Uncleared Cheques

{
"commandName": "GetUnclearedChequeQuery",
"data": {
"accountEncodedKey": "1001234567"
}
}

Integration

TypeScript

interface UnclearedCheque {
chequeClearingId: string;
chequeNo: string;
amount: number;
transactionType: 'DEPOSIT' | 'WITHDRAWAL';
state: string;
transactionDate: string;
payeeName?: string;
remarks: string;
}

async function getUnclearedCheques(accountNumber: string): Promise<UnclearedCheque[]> {
const response = await fetch('https://api.banklingo.com/api/bpm/cmd', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': `Bearer ${getAuthToken()}`
},
body: JSON.stringify({
commandName: 'GetUnclearedChequeQuery',
data: { accountEncodedKey: accountNumber }
})
});

const result = await response.json();
return result.data.unclearedCheques;
}

// Display uncleared cheques to customer
async function displayPendingCheques(accountNumber: string) {
const cheques = await getUnclearedCheques(accountNumber);

console.log(`\n📋 Pending Cheques for Account ${accountNumber}`);
console.log(`═══════════════════════════════════════════\n`);

let totalDeposits = 0;
let totalWithdrawals = 0;

cheques.forEach(cheque => {
console.log(`Cheque: ${cheque.chequeNo}`);
console.log(`Type: ${cheque.transactionType}`);
console.log(`Amount: ${cheque.amount.toLocaleString()}`);
console.log(`Date: ${new Date(cheque.transactionDate).toLocaleDateString()}`);
console.log(`Status: ${cheque.state}`);
if (cheque.payeeName) console.log(`Payee: ${cheque.payeeName}`);
console.log(`─────────────────────────────────────────\n`);

if (cheque.transactionType === 'DEPOSIT') {
totalDeposits += cheque.amount;
} else {
totalWithdrawals += cheque.amount;
}
});

console.log(`\n💰 Pending Deposits: ${totalDeposits.toLocaleString()}`);
console.log(`💸 Pending Withdrawals: ${totalWithdrawals.toLocaleString()}`);
}

C#

Code Removed

Implementation details removed for security.

Contact support for implementation guidance.

Response Fields

FieldTypeDescription
chequeClearingIdstringUnique clearing transaction ID
chequeNostringCheque number
amountdecimalCheque amount
transactionTypestringDEPOSIT or WITHDRAWAL
statestringPENDING (others are filtered out)
transactionDateDateTimeDate cheque was posted
payeeNamestringPayee name (for withdrawals)
remarksstringTransaction notes

Use Cases

1. Account Closure Validation

Before closing account, check for pending cheques:

async function canCloseAccount(accountNumber: string): Promise<boolean> {
const cheques = await getUnclearedCheques(accountNumber);
if (cheques.length > 0) {
console.log(`❌ Cannot close account. ${cheques.length} pending cheques.`);
return false;
}
return true;
}

2. Available Balance Calculation

Calculate true available balance:

async function calculateAvailableBalance(accountNumber: string): Promise<number> {
const account = await getAccountDetails(accountNumber);
const pendingCheques = await getUnclearedCheques(accountNumber);

const pendingWithdrawals = pendingCheques
.filter(c => c.transactionType === 'WITHDRAWAL')
.reduce((sum, c) => sum + c.amount, 0);

return account.balance - pendingWithdrawals - account.pndAmount - account.minimumBalance;
}

3. Aged Cheques Alert

Monitor cheques pending > 5 days:

async function checkAgedCheques(accountNumber: string) {
const cheques = await getUnclearedCheques(accountNumber);
const now = new Date();

const agedCheques = cheques.filter(cheque => {
const daysPending = (now.getTime() - new Date(cheque.transactionDate).getTime()) / (1000 * 60 * 60 * 24);
return daysPending > 5;
});

if (agedCheques.length > 0) {
console.log(`⚠️ ${agedCheques.length} cheques pending > 5 days`);
await notifyOperationsTeam(accountNumber, agedCheques);
}
}

Best Practices

  1. Regular Monitoring: Check uncleared cheques daily
  2. Customer Communication: Inform customers of pending status
  3. Aged Cheques: Investigate cheques pending > 5 days
  4. Balance Calculations: Include uncleared amounts in available balance
  5. Account Closure: Verify no pending cheques before closing