Reconciliation Service

Matches and verifies financial transactions across systems to ensure accuracy and detect discrepancies

Overview

The Reconciliation Service automates the matching of transactions between our internal systems and external sources (bank statements, payment gateways, etc.). It identifies discrepancies and ensures financial accuracy.

Key Responsibilities

Transaction Matching

  • Match internal transactions with bank statements
  • Match payment gateway settlements with ledger entries
  • Use fuzzy matching algorithms for similar transactions
  • Handle timing differences (T+1, T+2 settlements)

Discrepancy Detection

  • Identify missing transactions
  • Detect amount mismatches
  • Flag duplicate transactions
  • Report unmatched items for investigation

Reconciliation Types

  • Daily: Payment gateway settlements
  • Monthly: Bank account reconciliation
  • Quarterly: Inter-company reconciliation
  • Ad-hoc: Investigation-triggered reconciliation

Matching Rules

  1. Exact Match: Transaction ID, amount, date match exactly
  2. Amount Match: Same amount within tolerance (±0.01)
  3. Date Range: Within configured window (typically ±3 days)
  4. Reference Match: Invoice number or payment reference
  5. Fuzzy Match: ML-based matching for edge cases

Technical Details

Technology Stack:

  • Runtime: Python 3.11
  • Framework: FastAPI
  • Matching Engine: Custom algorithm with ML assist
  • Database: PostgreSQL
  • Scheduler: Airflow for daily reconciliation jobs

Performance:

  • Process 100,000 transactions per reconciliation run
  • Matching Accuracy: >99.5%
  • Runtime: < 30 minutes for daily reconciliation

Reconciliation Workflow

  1. Import: Load external data (bank statements, gateway reports)
  2. Normalize: Convert to standard format
  3. Match: Apply matching rules
  4. Review: Flag discrepancies for manual review
  5. Resolve: Process adjustments or corrections
  6. Report: Generate reconciliation report
  7. Archive: Store reconciliation records

Alert Configuration

  • Critical: Amount discrepancy > $1000
  • High: Missing transactions > 10
  • Medium: Timing differences > 5 days
  • Low: Minor rounding differences