Skip to content
Finlecy

Reconciliation infrastructure

Your ledger says one thing.
The bank says another.

Finlecy reads every statement, settlement file and ledger export you receive, matches them across six deterministic passes, and hands your team the few lines that genuinely need a person — already classified, already explained, with the journal entry drafted.

No change to your ledgerFiles as they arrive todayEU data residency

finlecy reconcile · 2026-08-03

Lines matched

0 of 29

Value matched

€0.00

Auto-posted

0 held for review

Fees & FX explained

posted to their own accounts

Breaks

pending classification

Internal ledger

15 entries

FIN-COL-9101+€12,844.00
Halcyon Lending · Loan repayment collection run31 Jul
FIN-COL-9102+€967.50
Rueda Marketplace · Subscription collection run31 Jul
FIN-COL-9103+€7,421.90
Comercia Digital · Marketplace seller collection01 Aug
FIN-COL-9104+€1,839.20
Meridian Treasury · Mandate collection · long reference01 Aug
FIN-PAY-9201−€5,150.00
Volta Mobility SL · Weekly merchant payout01 Aug
FIN-PAY-9202−€723.40
Kestrel Pay · Partner revenue share02 Aug
FIN-PAY-9203−€24,000.00
Aurelio Capital · Monthly distribution02 Aug
FIN-INT-0044−€3,105.00
Nordkap Bank · Sweep to safeguarding account03 Aug
FIN-CAP-9301+€16,405.00
Cardstream Iberia · Card capture batch · 552 authorisations01 Aug
FIN-CAP-9302+€4,873.00
Novapay Acquiring · Card capture batch · 164 authorisations02 Aug
FIN-PAY-9204−€1,284.00
Rueda Marketplace · Payout · bulk file B-7740103 Aug
FIN-PAY-9205−€649.50
Comercia Digital · Payout · bulk file B-7740103 Aug
FIN-PAY-9206−€3,912.00
Halcyon Lending · Payout · bulk file B-7740103 Aug
FIN-MSC-0071−€198.00
Nordkap Bank · Card scheme collateral top-up02 Aug
FIN-PAY-9207−€2,278.00
Tigris FX Ltd · Liquidity fee · submitted, no clearing record27 Jul

Bank & acquirer

14 lines

BA-DD-91010+€12,844.00
SEPA DD COL9101 HALCYON LENDING SL31 Jul

PMNT-RDDT-ESDD · Banco Aralar · EUR operating

BA-DD-91020+€967.50
SEPA DD COL-9102 RUEDA MARKETPLACE SL31 Jul

PMNT-RDDT-ESDD · Banco Aralar · EUR operating

BA-DD-91030+€7,421.90
SEPA DD COL9103 COMERCIA DIGITAL SL01 Aug

PMNT-RDDT-ESDD · Banco Aralar · EUR operating

BA-DD-91040+€1,839.20
SEPA DD COL9104ES BENEF MERIDIAN TREASURY02 Aug

PMNT-RDDT-ESDD · Banco Aralar · EUR operating

BA-OUT-92010−€5,150.00
SEPA CT VOLTA MOBILITY PAY920101 Aug

PMNT-ICDT-ESCT · Banco Aralar · EUR operating

BA-OUT-92020−€723.40
SEPA CT KESTREL PAY SL PAY920202 Aug

PMNT-ICDT-ESCT · Banco Aralar · EUR operating

BA-OUT-92030−€24,000.00
SEPA CT AURELIO CAPITAL PAY 920302 Aug

PMNT-ICDT-ESCT · Banco Aralar · EUR operating

BA-INT-00440−€3,105.00
INTERNAL SWEEP TO SAFEGUARDING ACCOUNT INT004403 Aug

PMNT-ICDT-ESCT · Banco Aralar · EUR operating

CS-STL-93010+€15,939.00
CARDSTREAM IBERIA SETTLEMENT CAP930103 Aug

PMNT-RCDT-MCRD · Banco Aralar · EUR operating

NP-STL-93020+€4,734.50
NOVAPAY ACQUIRING STL CAP-9302 NET03 Aug

PMNT-RCDT-MCRD · Banco Aralar · EUR operating

BA-BLK-77401−€5,845.50
SEPA CT BULK PAIN001 3 ITEMS BATCH B-7740103 Aug

PMNT-ICDT-ESCT · Banco Aralar · EUR operating

BA-ADV-44719−€198.00
DEBIT ADVICE 4471908 NO REMITTANCE INFORMATION02 Aug

PMNT-ICDT-OTHR · Banco Aralar · EUR operating

CS-CB-61208−€689.00
CARDSTREAM IBERIA CHARGEBACK CB REF 6120803 Aug

PMNT-MCRD-CBCK · Banco Aralar · EUR operating

BA-INT-0802+€126.40
CREDIT INTEREST JUL 202602 Aug

ACMT-MCOP-INTR · Banco Aralar · EUR operating

Engine trace

deterministic · replayable

idle · 29 records staged from 4 sources

A single day of one mid-size fintech, reconciled in the browser.

Open the full playground

This is the real matching engine, compiled to run in your browser on a synthetic month-end. Nothing is sent anywhere.

Reconciling every morning for

Kestrel PayNovabancRueda MarketplaceHalcyon LendingVolta MobilityAurelio CapitalComercia DigitalMeridian TreasuryTigris FX

The actual problem

Nobody struggles with the lines that match.

A million lines a month at a 97% match rate leaves thirty thousand unmatched records. That is not a rounding error — it is two people, every morning, deciding whether a difference is a fee, a timing gap or a genuine loss.

Most tools optimise the 97%. We built Finlecy around the rest.

41%

of your queue is timing, not error

Instructions inside their clearing window, styled identically to a genuine break and demanding the same attention.

23%

is a fee that was always going to be there

Gross captures against net settlements. Mechanically solvable, and yet it reaches a human every single day.

14%

is a batch no pairwise rule can see

One bank debit, two hundred ledger instructions. Match one-to-one and the relationship is invisible by construction.

3%

is the part that actually matters

Duplicated payouts, unapplied returns, cash nobody can identify. It takes longer than everything above combined.

How it works

Five stages, and a hard line between them

Parsing, matching and explaining are separate concerns. Keeping them separate is the only way to know, when something goes wrong, which half it went wrong in.

01

Ingest

Statements, settlement files and ledger exports land by SFTP, API or direct connection. Files are hashed on arrival and retained exactly as received.

camt.053 · camt.052 · camt.054 · MT940 · MT942 · BAI2 · pain.002 · acquirer CSV · REST

02

Normalise

Every format becomes one canonical record: signed minor units, both dates, an ISO 20022 transaction code, a recovered reference and the untouched original narrative.

No floats · both dates retained · direction from the source field, never inferred from sign

03

Match

Six ordered passes, strongest evidence first. Each pass sees only what the previous one could not explain, and records the reason it fired.

Deterministic · replayable · every threshold a named parameter

04

Explain

Whatever is left is classified against the reason-code library, given a root cause in plain language, and paired with a drafted journal entry.

Model proposes · deterministic layer verifies · human approves

05

Attest

The run is sealed. Postings, overrides and approvals are written to an append-only record that replays at the engine version that produced it.

Hash-chained · four-eyes enforced · exportable as an evidence pack

The platform

Four modules, one record of what happened

Start with matching. Add explanation, monitoring and evidence as the operation grows. Every module writes to the same append-only history, so nothing has to be stitched together later.

Before anything can match

It starts with the file, and the file is never clean

A camt.053 from one bank and a camt.053 from another agree on the schema and on almost nothing else. Amounts carry direction in a separate field. Reversal flags invert the meaning of a sign. References are truncated by whichever institution had the shortest field.

The format engine turns all of it into one canonical record — signed minor units, both dates, a flattened ISO 20022 code, a recovered reference, and the original narrative kept untouched for audit.

camt.053camt.052camt.054MT940MT942BAI2pain.002Acquirer CSVLedger exportREST

One entry, three ways of saying it

camt.053

<Amt Ccy="EUR">4009.64</Amt>
<CdtDbtInd>CRDT</CdtDbtInd>
<Ustrd>SETTLEMENT CAP-8841 NET OF MDR</Ustrd>

MT940

:61:2608010801C4009,64NTRFCAP8841//CS-STL-40118
:86:CARDSTREAM SETTLEMENT CAP8841 NET OF MDR

Acquirer CSV

CS-STL-40118,2026-08-01,4128.64,119.00,
4009.64,EUR,CAP-8841,Kestrel Pay SL

canonical

amount      +400964        // minor units, signed
currency    EUR
valueDate   2026-08-01
isoCode     PMNT-RCDT-MCRD
reference   CAP-8841
fee          11900        // recomputed, not trusted

In production

What changes is not the match rate

It is what happens to the lines that do not match, and how long it takes someone to be confident about them.

We were closing on the eleventh working day and everybody had quietly accepted that. The thing that actually changed was not the match rate — it was that every break arrived with a reason code and a drafted entry, so the queue stopped being an investigation and started being a review.

11 → 4working days to close

Aitor Zubeldia

Head of Finance Operations, Kestrel Pay · Ireland

Our acquirer settlements never matched because our ledger books gross and they pay net. Four years of a spreadsheet that one person understood. Finlecy handled it in the first run, and more importantly it posted the merchant discount to its own account instead of quietly eating it out of revenue.

€1.4Mof annual fees reclassified out of revenue

Marta Sequeira

Financial Controller, Novabanc · Portugal

The bulk payout problem is the one nobody solves. One debit on the statement, two hundred rows in our ledger, and every tool we trialled asked an operator to match them by hand. Watching the aggregation pass reconstruct a file from amounts alone was the moment we stopped evaluating vendors.

212instructions matched to one bank line

Joris van Weel

Director of Payment Operations, Volta Mobility · Netherlands

Finlecy, C/ Hijuela de Lojo 75, 20491 Belauntza, Guipúzcoa, Spain