Arslan Rehmani
Return to Case Studies
Accounting & Operations•Timeline: 4 weeks from specification to deployment

Automating Financial Reconciliation

Engineered an automated reconciliation suite that ingests daily bank API webhooks, standardizes supplier line items, applies deterministic matching rules, and automatically flags exceptions into an interactive audit queue.

TypeScriptNode.jsPostgreSQLBanking WebhooksDocker

01. Client Context

A mid-sized logistics distributor processing hundreds of supplier invoices, credit memos, and multi-currency bank feeds every week.

02. The Problem in the Client's Words

"Our month-end close takes 3 full days. We have three accountants downloading banking CSVs, cross-referencing QuickBooks purchase orders, and manually calculating exchange rate differences line by line. If one number doesn't match, someone spends hours chasing down a $4.20 wire fee discrepancy."

03. Constraints & Realities

  • Data must reconcile to the exact cent; zero rounding tolerance.
  • Must handle 4 different bank statement formats and Stripe fee deductions.
  • Staff cannot have direct database access; must use a verified review interface.

04. Solution & Architecture Blueprint

Data flow showing intake, deterministic validation barriers, and permanent double-entry audit logging:

Architecture Blueprint: Deterministic Reconciliation SuiteCent-Accurate Match Engine
01. Raw FeedsBanking API feedsStripe payout batchesSupplier invoicesMulti-currency02. NormalizerFX rate anchoringSupplier name fuzzy cleanTransaction UUID hashParsed & typed03. DeterministicExact cent matchingWire fee auto-detect98% instant pairing98% Auto-Matched04. LedgerMatched rowsExceptions UIAudit report45 min close

05. Data & Security Design

Access Rules (RLS)

Role-based access: staff accountants can reconcile matched batches; only the Finance Director can approve unmatched variance overrides.

Audit Trail

Immutable transaction ledger: matched records are cryptographic hashes of bank reference + invoice ID. Once locked, lines cannot be edited without a dual-signature audit journal.

Staging & Validation

Staging tables enforce strict schema constraints: amounts must parse to decimal(12,2), dates must be within 30 days of invoice timestamp, and currency conversion must match central bank rates.

06. Measured Results (Truth Gate Verified)

Backed by facts.json
3 days → 45 min
Month-End Close Timeline

Time elapsed from bank statement availability to verified trial balance close

Period: Measured across 3 consecutive month-end closes

98%
Automated Deterministic Match Rate

Percentage of lines matched automatically with zero human intervention

Period: Over 12,000 processed transaction lines

0 rows
Corrupted Rows Committed

Database integrity checks and zero balance sheet adjustments

Period: All closed periods

07. What Went Wrong & What I Changed

Candid Engineering Retrospective

Early matching rules failed on wire transfer fee deductions (e.g. $15 intermediary bank fee causing invoice mismatch). We had to implement an intelligent fuzzy range matcher specifically for known fee thresholds.

09. What I'd Do Differently

I would have required direct automated API feeds from the banks on day one instead of initially supporting legacy CSV upload parsers.

Need a system engineered to this standard?

Book a 20-minute discovery call to review your operational bottlenecks.

Book a 20-minute discovery call