Skip to content
Bankautomation

Bank reconciliation software for banks: MT940 and camt.053 statements matched to the ledger daily

Bank reconciliation software for banks reads correspondent and Federal Reserve statements as delivered, matches them to the internal ledger by reference, amount and value date, and turns what is left into owned, aged breaks. Bank reconciliation is two records of the same money that must be made to agree: what the account holder says happened, and what your ledger says happened. The work is never the matching. The work is the residue.

Run the demo

camt.053 · NOSTRO USD · value date 03 sep 2026

Nostro cash break, sample data

Match rate

75.0%

Breaks

4

At risk

$533.9k

Oldest

4d

Date ±1d
Amount

This console matches the first rows a side. It left out statement and ledger , so anything in them is not counted below. To run a full file, .

BRK-001

Aged 0d

$219,105.40

2026-09-03 · both sides

REF//FX/SPOT/7741 · INTERBANK FX DESK

Amount differs by 164.80 USD (0.075%)

Re-price the ledger leg on the correspondent rate source for the value date and post 164.80 USD to FX variance.

FX RATE SOURCE

→ Treasury Ops

BRK-002

Aged 4d

$187,650.00

2026-08-30 · ledger

PAY/90012/R · KESTREL LOGISTICS

Second ledger entry for 187,650.00 USD against REF//PAY/90012

Confirm the original entry REF//PAY/90012 cleared, then reverse this posting under maker-checker and note the reversal on the original item.

DUPLICATE POSTING

→ Finance

BRK-003

Aged 0d

$123,760.00

2026-09-03 · both sides

REF//TRF/554121 · HALCYON TRADING

Statement 61,880.00 vs ledger 123,760.00 (50% short)

Split the ledger posting and match the settled leg; leave the residual 61,880.00 USD open against the same reference.

PARTIAL SETTLEMENT

→ Payments Ops

BRK-004

Aged 0d

$3,410.00

2026-09-03 · statement

REF//CHG/Q3FEES · CORRESPONDENT CHARGES

On the statement, nothing in the ledger

Post 3,410.00 USD to the charges account for the period and add it to the standing accrual so it stops surfacing as a break.

FEE NOT ACCRUED

→ Finance

Everything matched under these tolerances.

Tighten the date or amount tolerance to see the breaks it was absorbing.

Correspondent statement

camt.053 · NOSTRO USD

Value date Reference Amount
2026-09-02 REF//NONREF/2026090301 1,284,500.00
2026-09-02 REF//INV/88231 96,400.00
2026-09-03 REF//TRF/554120 452,180.25
2026-09-03 REF//FX/SPOT/7741 218,940.60
2026-09-01 REF//SEPA/33421 74,220.00
2026-09-03 REF//CHG/Q3FEES 3,410.00
2026-09-03 REF//TRF/554121 61,880.00
2026-09-02 REF//PAY/90012 187,650.00
2026-09-02 REF//INV/88245 242,015.00
2026-09-03 REF//TRF/554133 18,905.50
2026-09-01 REF//PAY/90044 505,300.00
2026-09-03 REF//INV/88260 132,640.75

Internal nostro ledger

Core banking export

Value date Reference Amount
2026-09-02 NONREF/2026090301 1,284,500.00
2026-09-02 INV/88231 96,400.00
2026-09-03 TRF/554120 452,180.25
2026-09-03 FX/SPOT/7741 219,105.40
2026-08-31 SEPA/33421 74,220.00
2026-09-02 PAY/90012 187,650.00
2026-09-03 TRF/554121 123,760.00
2026-08-30 PAY/90012/R 187,650.00
2026-09-02 INV/88245 242,015.00
2026-09-03 TRF/554133 18,905.50
2026-09-01 PAY/90044 505,300.00
2026-09-03 INV/88260 132,640.75
Matched pairs are tinted on both sides. Breaks carry the brass left rule and appear in the worklist.

Sample data only. Matching runs in your browser; classification is written by the model when you press Run. Matching done in your browser. Writing classifications… Classifications written by the model on this run. Decision support, not a compliance determination. The classification model was unavailable, so the built-in rule classifier wrote these. Same matching, same numbers. This console classifies up to 12 runs a minute and this run went over, so the built-in rule classifier wrote these. Same matching, same numbers. Wait a minute for the model, or . The model wrote the first 8 classifications; the rule classifier wrote the remaining .

Open the full resolver

The formats are the first fight

An MT940 arrives as fixed tags with a free format field 86 that every correspondent fills differently. A camt.053 arrives as XML with structured party and remittance data, entry status and bank transaction codes. A core banking export arrives as whatever the core team could produce. Bookkeeping tools ask you to flatten all three into a CSV and lose the structure that makes matching possible.

Bankautomation treats these as first-class inputs. Structured references stay structured, entry status is preserved, and reference normalization is a rule you configure rather than a search and replace you run by hand.

SourceWhat it carriesWhat matching uses
camt.053 Statement entries, status, bank transaction codes, structured references End to end id, amount, value date, entry status
camt.054 Debit and credit notifications, intraday Notification reference against the pending posting
MT940 / MT950 End of day statement, tag 61 and 86 narrative Reference in tag 61, amount, value date, parsed narrative
MT942 Intraday transaction report Same as MT940, matched against pending items
Settlement file Scheme or network net settlement and fees Batch reference, net amount, settlement date
Core export / CSV Whatever your core produces Mapped fields, with the mapping versioned

Swipe the table sideways to read every column.

Two pass matching, and rules you can read

The first pass matches on an exact key: normalized reference, amount to the cent, and value date. It is fast, it is boring, and it should clear the overwhelming majority of a normal day. The second pass takes what is left and matches under the tolerances your team has agreed: a value date window for cut-off differences, an amount tolerance for rounding or rate source, and a reference normalization rule for prefix noise.

Both passes record what they did. A match is not a fact, it is a decision with a rule behind it, and the rule version travels with the item into the evidence pack.

The break is the product

What survives both passes is a break, and a break is a piece of work, not a red cell. Bankautomation gives every break a classification, a difference explained in plain language, a suggested action, a routing target and an age measured from the value date. That is the difference between a reconciliation report and a reconciliation that gets finished.

  • FX rate source: same reference and date, amounts apart by a fraction of a percent. Re-price on the correspondent source and post the variance.
  • Timing or value date: same amount, different date. Accept as timing or widen the window for that account, with the change approved.
  • Duplicate posting: a second entry against a reference that already cleared. Confirm the original, reverse under maker-checker.
  • Missing reference: on one side only, nothing to tie it to. Investigate with the correspondent or repair the instruction.
  • Fee not accrued: a charge deducted at source that no accrual expected. Post it and fix the accrual so it stops recurring.
  • Partial settlement: one side settled short. Split the posting, match the settled leg, leave the residual open.

Try it on the sample statement

The Reconciliation Break Resolver on this site runs the real matcher on a sample correspondent statement and nostro ledger. Move the value date window from one day to zero and a timing break appears. Move the amount tolerance to half a percent and the FX difference is absorbed. That is the actual control you are buying, and you can feel it before you talk to anyone.

Reading a statement properly is half the product

The difference between a reconciliation that works and one that generates its own problems is usually in the ingestion rather than in the matching. Two details account for most of it. The first is the distinction between booking date and value date: a ledger keyed on one and a statement reported on the other will produce a timing break on every item that crosses a cut-off, permanently, for no reason. The second is batched entries: a single statement entry can contain many transactions, and ingestion that stops at the entry level presents one amount where the ledger holds forty items.

  • Read down to transaction level inside every entry, so a batched posting becomes the items it actually contains.
  • Carry both booking date and value date, and key matching on the one that the counterparty side actually uses.
  • Preserve the original reference alongside any normalised form, so an investigation can quote what was really sent.
  • Detect duplicate files by statement identifier and sequence, not by filename, because filenames get reused.
  • Raise an ingestion exception when a source changes shape, rather than matching less and reporting the same.

MT940 and camt.053 are not interchangeable in practice

Both are end of day statements and they carry different amounts of usable structure. MT940 gives you a statement line and a field 86 that correspondents populate according to their own conventions, which is why reference extraction from MT940 is per correspondent work rather than a single rule. camt.053 gives structured references, a party structure and charge information as fields, which means a rule can be written once and be right.

The consequence for a bank running both is that expectations should differ by source. A high exact match rate on camt.053 sources and a lower one on MT940 sources is not a failure, it is the data. What matters is that the gap is visible per source, so the difference between a correspondent worth talking to and a format doing what formats do is not lost in a blended average.

Sample data only. The demo never receives production or customer data, and nothing you paste into it is stored.

Questions about bank reconciliation software

Does it work with MT940 as well as ISO 20022?

Yes. MT940, MT942 and MT950 are parsed alongside camt.053 and camt.054, which matters during the coexistence period while correspondents migrate. See ISO 20022 payment automation for what changes when a correspondent switches.

Can two people work the same break?

A break has one owning queue and one assignee at a time, with comments and attachments on the item. Actions that change money, such as a write-off or a reversal, are proposed and approved by different people.

What about intraday reconciliation?

Intraday sources such as MT942 and camt.054 are matched against pending items so that a break is visible during the day rather than at the end of it. The end of day statement then confirms or contradicts what the intraday view showed.

How is this different from what our accounting system does?

An accounting system reconciles a bank account for a company. This reconciles a bank's own accounts, including nostro and vostro, settlement and suspense, at daily volumes and with value date logic, and it treats the exception as the object of work.

Can we start with one account?

That is the normal start: one painful account, one source pair, one set of tolerances. The Operations plan covers a single process line for exactly this reason.

More banking automation pages

Every process line we cover, in one place.

Account reconciliation software Where the differences start, account by account. Automated reconciliation software Match rates, tolerances, and what auto-match must never mean. Payment reconciliation software Instructed, settled and posted, reconciled three ways. Financial reconciliation software The same engine, framed for the finance team. ATM reconciliation software Cash, switch and network settlement, balanced daily. Credit union reconciliation software Corporate, share draft, card, ATM and shared branching. ACH reconciliation software Origination, receipt, returns and FedACH settlement. Federal Reserve account reconciliation Master account, FIRD, Fedwire and FedNow against the GL. Correspondent bank reconciliation Due from, due to and respondent settlement against the GL. AML compliance software Program workflow, evidence and cadence. Not a detection model. KYC automation software Onboarding and periodic refresh, queued and evidenced. AML software for banks What to ask, and what to refuse to buy. Compliance workflow automation Maker-checker, SLAs and evidence as a system property. BSA AML monitoring software Alert triage as a worklist, not a second inbox. RPA for banks Why screen-scraping bots break, and what replaces them. General ledger reconciliation software Sub-ledger to GL, and the suspense account nobody owns. Balance sheet reconciliation software Certification, sign-off and the quarter-end pack. ISO 20022 payment automation Structured data, repair rates and CBPR+ deadlines. Nostro reconciliation automation The most bank-specific reconciliation there is.

Get started

Put your first reconciliation on rails

Create an account, and we will email you how onboarding works and what a first source connection looks like. The Reconciliation Break Resolver is open to try right now, on sample data, without an account.

Run the demo

No card required to create an account. Sample data only in the demo. Bankautomation is operations software, not a regulated service.