Skip to main content

Reconciliation Platform

Overview​

The Reconciliation Platform is a powerful automated system for matching and reconciling financial data from multiple sources. It streamlines the process of comparing core banking data with external data sources (bank statements, payment gateways, etc.) to identify matches, discrepancies, and exceptions.

Key Features​

🔄 Automated Matching​

  • Rule-based auto-matching
  • Configurable matching criteria
  • Tolerance settings for amount differences
  • Multi-field matching support

📊 Dual Dataset Support​

  • Primary Dataset: Core banking data (internal)
  • Reference Dataset: External data (bank statements, partner systems)
  • Multiple data source support
  • Flexible data import formats

🎯 Smart Reconciliation​

  • Automatic match detection
  • Partial matching support
  • Many-to-one and one-to-many matching
  • Manual matching capability

📈 Status Tracking​

  • Pending: Awaiting matching
  • Matched: Successfully auto-matched
  • NoMatch: No match found
  • Manual: Manually reconciled
  • Ignored: Excluded from reconciliation

🔍 Audit Trail​

  • Complete reconciliation history
  • Match reasoning and scores
  • User actions tracking
  • Data lineage

Use Cases​

1. Bank Statement Reconciliation​

Match internal transactions with bank statements:

  • Daily bank reconciliation
  • Account balance verification
  • Transaction matching
  • Exception reporting

2. Payment Gateway Reconciliation​

Reconcile payment gateway transactions:

  • Online payment matching
  • Settlement reconciliation
  • Fee verification
  • Chargeback tracking

3. General Ledger Reconciliation​

Match transactions to GL accounts:

  • Account reconciliation
  • Balance verification
  • Period-end closing
  • Audit support

4. Inter-Branch Reconciliation​

Reconcile transactions between branches:

  • Branch transfer verification
  • Suspense account clearing
  • Inter-branch settlements

Reconciliation Flow​

Workflow Steps​

  1. Job Creation

    • Define reconciliation parameters
    • Set matching rules
    • Configure tolerances
  2. Data Upload

    • Upload primary dataset (internal data)
    • Upload reference dataset (external data)
    • Validate data format
  3. Auto-Matching

    • Apply matching rules
    • Calculate match scores
    • Auto-match qualifying records
  4. Manual Review

    • Review unmatched items
    • Manually match records
    • Mark items as ignored if needed
  5. Job Completion

    • Generate reconciliation report
    • Export results
    • Archive job data

Architecture​

Data Model​

// Reconciliation Job
{
id: number,
jobReference: string,
status: "Active" | "Completed" | "Cancelled",
createdDate: Date,
completedDate: Date,
totalRecords: number,
matchedRecords: number,
unmatchedRecords: number
}

// Reconciliation Job Data
{
id: number,
jobId: number,
datasetType: "Primary" | "Reference",
sourceCode: string,
transactionReference: string,
amount: number,
transactionDate: Date,
status: "Pending" | "Matched" | "NoMatch" | "Manual" | "Ignored",
matchedWithId: number,
matchScore: number,
metadata: object
}

Matching Algorithm​

  1. Exact Match: All key fields match exactly
  2. Fuzzy Match: Fields match within tolerance
  3. Partial Match: Some fields match, requires review
  4. No Match: No matching record found

Dataset Types​

Primary Dataset​

Core banking internal data:

  • Transaction records
  • Account statements
  • Ledger entries
  • System-generated data

Example:

{
"transactionReference": "TXN-20250126-001",
"amount": 50000.00,
"transactionDate": "2025-01-26",
"accountNumber": "1234567890",
"narration": "Transfer to savings"
}

Reference Dataset​

External data sources:

  • Bank statements
  • Payment gateway reports
  • Partner system data
  • Third-party records

Example:

{
"statementReference": "STMT-456789",
"amount": 50000.00,
"valueDate": "2025-01-26",
"accountNumber": "1234567890",
"description": "Credit - transfer"
}

Matching Rules​

Configuration​

{
"matchingRules": {
"exactMatchFields": ["transactionReference"],
"fuzzyMatchFields": [
{
"field": "amount",
"tolerance": 0.01,
"type": "absolute"
},
{
"field": "transactionDate",
"tolerance": 2,
"type": "days"
}
],
"optionalFields": ["narration"],
"minimumScore": 85
}
}

Matching Criteria​

  • Amount: Match within tolerance (e.g., ±0.01)
  • Date: Match within date range (e.g., ±2 days)
  • Reference: Exact or partial reference match
  • Account: Account number match
  • Description: Keyword matching

Process Integration​

Reconciliation jobs can trigger BPM workflows:

Events​

  • OnReconciliationJobStart: Job initiated
  • OnReconciliationJobCompletion: Job completed
  • OnReconciliationDataUpdate: Data matched/updated
  • OnReconciliationError: Error occurred

Example Workflow Trigger​

{
"event": "OnReconciliationJobCompletion",
"condition": "unmatchedRecords > 0",
"action": {
"processKey": "RECONCILIATION_EXCEPTION_REVIEW",
"context": {
"jobId": "{{jobId}}",
"unmatchedCount": "{{unmatchedRecords}}"
}
}
}

Quick Start Example​

Step 1: Create Job​

var job = doCmd('CreateReconciliationJobCommand', {
Data: {
jobReference: 'BANK-RECON-' + formatDate(new Date(), 'yyyyMMdd'),
description: 'Daily bank reconciliation'
}
});

Step 2: Upload Primary Data​

var primaryUpload = doCmd('UpdateReconciliationJobDataCommand', {
Data: {
jobId: job.data.id,
dataSetType: 0, // Primary
records: [
{
transactionReference: 'TXN-001',
amount: 50000,
transactionDate: '2025-01-26'
}
]
}
});

Step 3: Upload Reference Data​

var referenceUpload = doCmd('UpdateReconciliationJobDataCommand', {
Data: {
jobId: job.data.id,
dataSetType: 1, // Reference
sourceCode: 'BANK_STATEMENT',
records: [
{
statementReference: 'STMT-001',
amount: 50000,
valueDate: '2025-01-26'
}
]
}
});

Step 4: Execute Matching​

var matchResult = doCmd('ExecReconciliationDataChainCommand', {
Data: {
jobId: job.data.id
}
});

Best Practices​

✅ Do's​

  • Define clear matching rules
  • Set appropriate tolerance levels
  • Review unmatched items promptly
  • Maintain audit trail
  • Archive completed jobs
  • Test rules with sample data
  • Document reconciliation process

❌ Don'ts​

  • Don't use overly strict matching (causes false negatives)
  • Don't ignore unmatched items without investigation
  • Don't delete reconciliation jobs (archive instead)
  • Don't bypass manual review for exceptions
  • Don't use same job for different periods

Performance Tips​

  • Process reconciliations in batches
  • Archive old reconciliation data
  • Index frequently queried fields
  • Use appropriate date ranges
  • Optimize matching rules
  • Schedule jobs during off-peak hours

Next Steps​

Support​

For questions or issues with Reconciliation Platform: