Import a camt.053 bank statement (strict schema-subset parse) and a counterpart expectation set (CSV, via the hand-rolled workbook core), then run a deterministic match engine: exact EndToEndId matching first, then amount and date tolerance. The result is a hash-chained reconciliation receipt, an exceptions list, and per-disposition receipts as you review each exception.
Starting from a legacy MT940/942/950 statement rather than camt.053 already? See the MT9xx to camt Statement Migration Mapper, which maps the message format; this workbench then reconciles the mapped data against a ledger.