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