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
| Parameter | Type | Required | Description |
|---|---|---|---|
| accountEncodedKey | string | Yes | Account 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
| Field | Type | Description |
|---|---|---|
| chequeClearingId | string | Unique clearing transaction ID |
| chequeNo | string | Cheque number |
| amount | decimal | Cheque amount |
| transactionType | string | DEPOSIT or WITHDRAWAL |
| state | string | PENDING (others are filtered out) |
| transactionDate | DateTime | Date cheque was posted |
| payeeName | string | Payee name (for withdrawals) |
| remarks | string | Transaction 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
- Regular Monitoring: Check uncleared cheques daily
- Customer Communication: Inform customers of pending status
- Aged Cheques: Investigate cheques pending > 5 days
- Balance Calculations: Include uncleared amounts in available balance
- Account Closure: Verify no pending cheques before closing
Related Commands
InitiateChequeDepositCommand- Creates pending depositsInitiateChequeWithdrawalCommand- Creates pending withdrawalsInitiateClearChequeCommand- Clear pending chequesGetAllChequeClearingRequestsQuery- System-wide pending cheques