Reference🏦 Bank reconciliationAdvanced⏱ 15 min read

🛠️ Implementing reconciliation

Bank channels (EBICS, SwiftNet, APIs), statement delivery setup, the matching engine, exception handling, KPIs and an overview of tools

Choosing your bank connectivity channels

The bank connectivity channel is the technical route by which a company receives data from its bank before it can reconcile it. The choice determines which formats are available, delivery times, reliability and cost. In France, EBICS is the market standard, SwiftNet is the norm for international groups that bank with many institutions, and APIs add real-time data on top of the end-of-day statement, which arrives only once per business day.

ChannelTypeTypical usesWatch points
EBICS TFile transfer signed at the transport levelReceiving statements (CFONB120, camt.053), sending payment files with separate approval (web portal)Market standard in France, Germany, Switzerland and Austria; enough for reconciliation (inbound data)
EBICS TSEBICS + attached personal electronic signatureSending binding payment orders (pain.001) with no web re-approvalSigning certificates must be managed; the legacy 3SKey service is being retired in favor of qualified certificates
SwiftNet FINSingle-message interbank messaging (MT/MX)MT940/942 from multiple banks internationallySwift for Corporates (SCORE) membership, per-message fees, corporate BIC required
SwiftNet FileActFile transfer over the Swift networkHigh volumes of camt, pain and CFONB files for groups with many banksHeavy onboarding; often run through a service bureau
PSD2 API (AIS)Regulatory account information APIBalances and transactions on demand, multi-bank aggregationLimited scope (payment accounts only), SCA renewal every 180 days, no service-level commitment
Premium API / contractual open bankingPaid bank APIsEnriched statements on demand, real-time credit notifications, instant paymentsCoverage and pricing vary widely from bank to bank
sFTP host-to-hostBilateral file dropLegacy setups at large corporates, very high volumesThe company is responsible for security, monitoring and incident recovery
Bank-to-corporate connectivity channels
ℹ️
EBICS 3.0 (schema H005) unifies French and German practice through BTFs (Business Transaction Formats), in which a service/format pair replaces the old national order types (the French FDL/FUL). When you change banks or treasury management systems, check the EBICS version supported on both sides and exactly which order types are enabled. Order type mappings are not always automatic.

Setting up statement delivery with your bank

A statement subscription is the service through which a bank provides a customer with the statements for an account, in an agreed format and at an agreed frequency. Much of a reconciliation’s quality is decided when these subscriptions are set up. Formats, level of detail, frequency and delivery times are negotiated and written into the contract, one account at a time.

  • Scope: every account, across all entities and currencies. An account left out is a gap in your controls.
  • Formats: camt.053 as the target (specify the version), with CFONB120 or MT940 as a fallback during testing; camt.054 for the detail behind batches booked as a single amount.
  • Level of detail: require batch detail (one TxDtls per transaction) rather than opaque lump-sum entries. Some banks offer this as a paid option.
  • Frequency and timing: the D+1 statement available by 7:00 a.m. at the latest to keep the morning batch run on schedule; intraday statements (camt.052) at 10 a.m., 1 p.m. and 4 p.m. if treasury needs them.
  • References: check that the bank passes through EndToEndId, MndtId and the batch reference, not just a concatenated description.
  • Incident recovery: a procedure to resend a statement (missing or corrupted file) and how far back history can be downloaded.
⚠️
Delivery times make or break the close
A reconciliation run that starts at 6:00 a.m. with a statement delivered “between 5 and 8 a.m. depending on load” fails one morning in five, and manual recovery then eats up the morning. The delivery time must therefore be written into the contract. TARGET holidays must be part of the test cases, since there is no settlement and no statement on those days. Easter Monday, a TARGET holiday whose date changes every year, has broken many batch runs.

The reconciliation engine: matching rules

The reconciliation engine is the component that compares two or more sets of entries and produces matches between their lines. Matches are made automatically when confidence is complete, suggested to an operator when it is partial, and sent to exceptions in all other cases. The rules run in a cascade, from the strictest to the loosest.

🎯
Exact reference
EndToEndId, pspReference, batch number: deterministic one-to-one matching. Highest confidence, auto-matched with no review.
📏
Amount + date within a tolerance
Same amount within ±€0.01, dates within ±2 business days. Reliable at low volume, risky with recurring round amounts.
🧮
One-to-many and many-to-many
One payout ↔ n transactions in the batch; n batches ↔ m entries. Requires a sum solver (bounded subset-sum) and performance safeguards.
🤖
Scoring and learning
Normalized descriptions, edit distances, a history of manual approvals. The engine suggests, a person approves, and the rule learns.
Settlement batch No. 43€165.50 in sales → €28.95 paid out on July 11, 2026interchange 1.00 · scheme 0.17 · commission 0.22 · markup 0.15− €1.54 in PSP feesthe four components above− €30.11 refund30.00 returned + 0.11 not refunded− €89.90 chargebackthe original sale reversed in full− €15.00 chargeback feeflat fee billed per batch, no sale attachedgross €165.50= 163,96 €= 133,85 €= 43,95 €= 28,95 €Transfer received: €28.95the bank sees only this lineThe bank statement shows a single line: €28.95.The four deductions only show up in the PSP's report.Σ net credits − Σ net debits = 0.00
Sample rule configuration (illustrative syntax)
# Rules evaluated in ascending priority order; the first rule that matches wins.
rules:
  - id: r10-endtoend-exact
    priority: 10
    match: one_to_one
    keys:
      - left:  bank.entry.end_to_end_id      # camt TxDtls/Refs/EndToEndId
        right: psp.payout.reference          # reference carried by the PSP transfer
    conditions:
      - amount_equal: true                   # to the cent
    action: auto_match                       # automatic matching

  - id: r20-payout-batch
    priority: 20
    match: one_to_many                       # 1 bank entry <- n settlement lines
    keys:
      - left:  bank.entry.remittance_info    # "SETTLEMENT BATCH 42 ACME FR"
        right: psp.settlement.batch_number
    conditions:
      - sum_equal:
          tolerance: 0.00                    # the batch invariant tolerates no gap

  - id: r30-montant-date
    priority: 30
    match: one_to_one
    conditions:
      - amount_equal: true
      - date_window_days: 2                  # settlement -> bank lag
    action: suggest                          # suggestion for a person to approve

  - id: r90-catch-all
    priority: 90
    action: exception                        # everything else goes to the workflow
    classify_by: bank.entry.btc_code         # pre-sorted by BkTxCd / AFB code
🔑
Rule order is an internal control issue. A loose rule placed too high captures entries that the strict rules would have matched with certainty, and it produces false positives: wrong matches that nothing flags. They appear on no exception list and nothing prompts anyone to look for them, which makes them the worst kind of discrepancy. Regularly auditing how matches are distributed across rules is how you catch them.

Managing exceptions: workflow and discipline

An exception is any entry the engine has not matched. It becomes an open item that is categorized, dated and assigned to someone. The setup is judged by how fast exceptions are resolved and how well the handling of each one is documented.

Exception life cycle
Engine
Detects and pre-sorts
Automatic categorization by BTC, amount, counterparty
Back-office analyst
Categorizes
Category chosen from unaccrued fees, returned payment, missing payout or duplicate
Accountant
Fixes
Correcting entry, reclassification, or claim to the bank or PSP
Manager
Approves and closes
Full audit trail: who, when, what, attachment
  • Named owners, with target turnaround times by category (fees: 2 days; missing payout: 1 day, because it is cash).
  • Aging visible to everyone: 0–7 days, 8–30 days, more than 30 days; anything over 30 days is escalated to the closing committee.
  • Improvement loop: every recurring exception must end up either as a new matching rule or as a fix at the source (a reference missing from an upstream data flow).
  • Segregation of duties: the person who reconciles does not approve their own correcting entries above a set threshold.
⚠️
A plug entry writes off a leftover discrepancy to profit and loss without tracing its cause. It clears the open item from the books but leaves the mechanism that caused it untouched. A €0.37 gap repeated across 10,000 transactions is a €3,700-a-month configuration problem, and the plug entry hides it without fixing it.

Managing by KPIs

> 95 %
target auto-match rate by volume on well-referenced card/PSP flows
< D+3
target close of transit accounts after month-end
0
open items older than 30 days: the only acceptable target
100 %
of bank accounts reconciled every business day
KPIDefinitionIndicative targetWarning sign
Auto-match rate (volume)Entries matched with no manual work / total> 90-95 %Sudden drop = degraded upstream flow (lost references)
Auto-match rate (value)Amounts matched automatically / total> 98 %Volume/value gap = small items left unhandled
Average exception resolution timeFrom detection to closure< 5 business daysGrowing share aged > 30 days
Data delivery timeTime the last statement arrives< 7:00 a.m.Recurring delays from one bank
Suspense account balanceAccounts 471/472 (suspense), absolute valueTrending to 0, every line justifiedSteady growth = items piling up
Cost per exceptionFully loaded team cost / number of exceptions handledSteadily fallingUseful for deciding on tooling investment
Reconciliation KPIs: definitions and targets

The auto-match rate is the metric most often reported, but the aging of open items says more about the health of the process. A backlog whose average age stays low shows the team is keeping pace with incoming work. An aging backlog signals a painful close three months before it happens.

Tool landscape

Available tools range from ERP modules to specialized high-volume engines. The selection criteria are the number of banks and PSPs connected, transaction volumes, the need for many-to-many matching, and the team’s maturity. License cost is only one factor among them.

Card typeExamplesStrengthsWho it suits
TMS (treasury)Kyriba, Sage XRT Treasury, Agicap (SMBs)Built-in bank connectivity (EBICS/Swift), cash reconciliation, forecastingMulti-bank treasury teams; detailed accounting reconciliation is not their core strength
Dedicated reconciliationSmartStream TLM, Duco, BlackLine, ReconArtVery high volumes, many-to-many matching, exception workflow, audit trail, account certificationFinancial institutions, high-volume online retailers, CFOs seeking strong internal controls
ERP modulesSAP (Electronic Bank Statement), Oracle, Microsoft Dynamics, NetSuiteNative general ledger integration, automatic matching, no data flows to buildSingle-ERP organizations with simple, well-referenced flows
Bank connectivityExalog Allmybanks, EBICS/Swift service bureausReliable multi-bank data collection, file distribution to internal systemsA delivery layer upstream of whatever engine you use
In-house (data)Data warehouse + SQL/Python, orchestratorFull flexibility, no software costStrong data teams; watch maintenance costs and auditability (audit trail, segregation of duties)
Types of reconciliation tools (representative examples, 2026)
🔑
Whatever the tool, 80% of success depends on the quality of the references carried through the data flows (meaningful EndToEndIds, the order reference at the PSP, the batch reference in transfers). A basic engine working with clean references achieves a higher match rate than a sophisticated engine that has only free-text descriptions to go on.