The problem
Eight jobs nobody wanted, and one failure underneath all of them.
Ask a group treasury what it actually spends the month on and you get a list like this one. Not strategy, not analysis — the work of making systems that were never built to agree say the same thing about the same money.
- The cash flow statement and the accounting books are two different truths.
- Movements categorized one way for treasury and another way for accounting, so the statement never ties back to the ledger it is supposed to describe.
- The same loan, deposit or guarantee keyed twice — once into the treasury sheet, once into the books — by two people who each believe theirs is the real one.
- The information all exists. It sits in systems that were never built to agree.
- Banks, ERPs and treasury tools, consolidated into one workbook by hand, every month, by whoever is free.
- Payments that left, against the confirmations that may or may not have come back.
- Both sides of every intercompany movement, in two entities that do not close on the same day.
- By the time a deviation is visible, it has already happened.
- Budget against the real cash flow statement, compared monthly — if anybody has the time that month.
- Who the group actually owes and who owes it, spread across entities, banks and counterparties.
- A calendar of what comes due, watched by nobody until the day it comes due.
Every one of them is the same failure wearing a different hat: the systems do not agree, and a person is the integration.
What it costs you today
Nobody budgets for this. Everybody pays for it.
Pulling statements, pasting them into a workbook, chasing the ones that did not arrive — it never appears on a project plan, so it never gets costed. Put your own numbers in and see it.
Withbank connections,pulledtimes a week,atminutes each —
675hours a year
Over 46 working weeks.
That is the part Tresora does — every connection pulled, parsed and reconciled without anyone opening a bank portal. The hours go back to the people who were spending them.
And they were never the interesting hours
What it asks of you
Send it however you can — the adapting is our job.
The usual order of things is that you adapt to the system: a new file to produce, a taxonomy to agree on, a project before the first useful figure. Here it runs the other way. You send what you already have, in whatever shape it already has, and the work of making sense of it is ours.
What you send
- Whatever your banks already send
- MT940, camt.053, BAI2, Norma 43, a fixed-width telex older than the euro — including the fields no standard defines.
- The reports your team already runs
- That SAP extract somebody built years ago is a format profile like any other. Nobody on your side builds us a new one.
- In your own categories
- Your chart of accounts, your codes, your calendars, your entity names. Nothing is remapped to fit a taxonomy of ours.
- And anything we have not seen yet
- A format we do not hold is added at no charge, and every column in it is kept — not only the ones we need today.
Stays exactly as it is
- Your ERP
- Your banks
- Your chart of accounts
- Your approvals
What arrives
- One position, every entity
- Every company, bank and currency in the group, in a single figure you can open.
- Matching that runs without you
- Statements against the ledger, continuously. What doesn’t match becomes a queue with an owner.
- A trail your auditor can follow
- Every figure back to the line it came from, with the file it arrived in and the day it arrived.
How it fits
Nothing gets centralized. Everything gets reconciled.
Tresora does not ask you to move your data or replace a system. It reads what you already run, resolves it into one financial reality, and every module reads from that one — which is why the second module costs a configuration instead of another integration.
What it reads
One reconciled reality
Assembled once, from your systems, and never re-keyed.
- Normalize
- Resolve
- Match
- Corroborate
What it gives back
Pick anything to see what it touches.
Who it is built for
On the org chart it is one group. At the bank it is every company on its own.
Hotel and hospitality groups, retail and franchise networks, logistics operators, real-estate portfolios, energy and manufacturing — the businesses this is built for share one shape. Legal entities that each hold their own bank accounts, in their own currency, on their own local calendar. Tresora treats that as the normal case rather than the exception.
Where it fits
- Hotels & hospitality
- Retail & franchise
- Logistics & transport
- Real estate
- Energy & utilities
- Manufacturing
- Business services
What has to line up — at any size
There is no floor here and no ceiling. One company in one country and a group with subsidiaries on three continents differ in scale rather than in kind: the same four things have to line up before anybody can trust a group figure, and making them line up is the whole job.
- Legal entities
- Each keeps its own books and closes on its own schedule, and each has its own idea of what counts as a single movement.
- Countries
- Every one brings a working week, a holiday calendar and a cut-off hour that belong to it alone.
- Banking relationships
- Every bank sends a different format, on a different rhythm, and leaves different things out of it.
- Currencies held
- Every figure that crosses one has to be translated at a rate your auditor can reproduce afterwards.
Which is why “today” is not one time
- Madrid
- UTC+02:00Cut-off18:00Local currencyEUR
- Mexico City
- UTC−06:00Cut-off17:30Local currencyMXN
- New York
- UTC−04:00Cut-off17:00Local currencyUSD
- Santo Domingo
- UTC−04:00Cut-off16:00Local currencyDOP
What that shape gets you
- Consolidate at any level
- A brand, a country, a region or the whole group — the same reconciled figure, cut to whichever level you are answering for this morning.
- Every calendar, locally
- Bank holidays and cut-offs are held per country and per entity, so a Monday in Madrid is never quietly compared with a Monday in Mexico City.
- What the group owes itself
- Both sides of every internal movement matched and netted before anything moves externally, so nobody funds a payment the group is making to itself.
The same morning, consolidated
| Company | Group (EUR) | |
|---|---|---|
| Corporation Holding, S.L.EUR 1,940,600 · Base currency | EUR 1,940,600 | EUR 1,940,600.00 |
| Corporation España, S.A.EUR 2,206,400 · Base currency | EUR 2,206,400 | EUR 2,206,400.00 |
| Corporation Servicios Compartidos, S.L.EUR 665,400 · Base currency | EUR 665,400 | EUR 665,400.00 |
| Corporation México, S.A. de C.V.MXN 39,104,220 · 19.5313 MXN/EUR | MXN 39,104,220 | EUR 2,002,130.94 |
| Corporation USA, Inc.USD 6,240,880 · 1.1690 USD/EUR | USD 6,240,880 | EUR 5,338,648.42 |
| Corporation Caribe, S.R.L.DOP 48,220,900 · 64.5164 DOP/EUR | DOP 48,220,900 | EUR 747,420.81 |
ConsolidatedEUR 12,900,600.17
And what the group is actually exposed to
| Currency | Group (EUR) | |||
|---|---|---|---|---|
| EURBase currencyEUR +6,140,000EUR -1,884,000NetEUR 4,256,000 | EUR 6,140,000 | EUR 1,884,000 | EUR 4,256,000 | EUR 4,256,000.00 |
| USD1.1690 USD/EURUSD +7,905,400USD -2,410,900NetUSD 5,494,500 | USD 7,905,400 | USD 2,410,900 | USD 5,494,500 | EUR 4,700,171.09 |
| MXN19.5313 MXN/EURMXN +41,930,600MXN -39,486,150NetMXN 2,444,450 | MXN 41,930,600 | MXN 39,486,150 | MXN 2,444,450 | EUR 125,155.52 |
| DOP64.5164 DOP/EURDOP +52,004,300DOP -9,617,800NetDOP 42,386,500 | DOP 52,004,300 | DOP 9,617,800 | DOP 42,386,500 | EUR 656,987.99 |
| CUPCUP +18,340,000CUP -2,905,000NetCUP 15,435,000 | CUP 18,340,000 | CUP 2,905,000 | CUP 15,435,000 | No rate |
Net exposure · 4 of 5 currenciesEUR 9,738,314.60
No published rate for CUP on this date. That line is left out of the total above and out of everything that chains from it. We do not interpolate a rate, carry an older one forward, or triangulate through a third currency to close the gap — a position converted at a rate that does not exist is a figure your auditor cannot reproduce.
Netting like this is only possible once every entity’s ledger has already been resolved into one. And the line we refuse to convert is the one worth looking at: a system that always returns a number is a system that is sometimes making one up.
Where the month goes
Three disagreements, one morning, every one of them closed by hand.
None of these is exotic — they are the three every group has, on an ordinary Tuesday. What each one costs is not the difference itself. It is the person who has to find out which lines make it up.
Tresora reconciles as the files arrive, not at month-end. Every movement is matched to the ledger entry, the intercompany counterpart or the instruction that caused it, with the evidence kept beside it. What agrees closes itself; what does not becomes a queue with an owner instead of a spreadsheet.
The same morning, three systems
- Bank against ledgerClosed at month-end, by hand
- Bank statement
- EUR 4,812,400.00
- ERP ledger
- EUR 4,796,150.00
- Difference
- EUR 16,250.00
- Intercompany, Mexico to SpainOpen 11 days
- Booked by the payer
- EUR 240,000.00
- Recorded by the receiver
- EUR 0.00
- Difference
- EUR 240,000.00
- Payments, one batchChased by email
- Instructions sent
- 128
- Confirmations back
- 124
- Difference
- 4
What gets reported
One group position, agreed by hand
Not one of these differences is visible from the number itself. Finding out which lines make them up is the job.
The module most groups start with
A match is not a guess. It is a case, and you can open it.
Bank movements and ledger entries rarely line up one to one. Tresora puts up the competing explanations for a movement, collects the signals that support or contradict each one, and keeps the whole argument on the record. A match is something you can read, disagree with and overturn — not a black box that prints “reconciled”.
One movement, as Tresora argues it
The movement
EUR 248,300.00
Statement line · account ES48 ···· 0412
Value date 14 August
TRANSF 4471/QX
As the bank sent it
/ORDP/NORTE TESORERIA SL/REMI/FRA 4471/EREF/4471QX
What it settles
- Invoice 4471-1EUR 96,450.00
- Invoice 4471-2EUR 84,900.00
- Invoice 4471-3EUR 66,950.00
Total settledEUR 248,300.00
Explanations considered
- Invoice batch 4471 — three invoices91% How it was matchedStructural exactband 65–92Accepted
- Intercompany transfer, Spain to Mexico31% Ruled out — the IBAN on the credit belongs to a customer, not to the Mexican entity.
- A receipt on account, unallocated24% Ruled out — the remittance quotes 4471 and the amount lands on three open items to the cent. An unallocated receipt would leave all three open.
A score only means something inside the band its tier allows. Only the explanation the engine accepts earns a tier — the others are scored against the default band and kept, with what beat them.
How it was decided
Ranked by evidence, not by rule order. The two it rejected are kept with their scores, and the case reopens on its own if new evidence arrives.
Why this one won
- Amount agrees to the cent across the three invoices
- Reference 4471 appears on all three
- Counterparty resolved from the IBAN, not from the free-text name
- The remittance names the customer’s central treasury, not the company the invoices were issued to
How the confidence moved
- 0168% when the line first landed — two of the three open items had been read.
- 0291% when the third arrived and the amount closed to the cent.
Corroboration
Matched down to the open item it settles
What you can take to the auditor
The statement line, the three open items, every signal above, and the timestamp each one was read — exported together.
What we mean by it
Automation follows the rule you wrote. Intelligence tells you the rule was wrong.
- It knows what is not worth asking
- Five payments against five invoices for the same amounts, where every possible pairing lands on the same account, the same category and the same counterparty: Tresora matches the group and sends you nothing. A review queue is only worth having if everything in it is a real decision.
- It changes its mind
- When a later file changes the picture — a credit note, a correction, a statement that arrives out of order — the matching runs again on its own, the old verdict is retired rather than overwritten, and every figure that leaned on it says so.
- It knows how sure it is
- Resolved from the journal alone, or attributed all the way down to the subledger open item it settles — the two are not the same quality of evidence and are never presented as if they were. The close reports the mix, by count and by amount.
That is the product. The modules — positions, forecasting, payments, whatever you add next — are what the intelligence is pointed at.
Bank closing balance against the ledger balance, per account, with the difference, whether it breaks the threshold you set, and the movements that explain it.
Tresora AI
The reconciliation does not need it. You might.
Everything above this line happens without a language model. The matching is hypotheses and evidence, and you can read the working. Tresora AI sits on top of that finished reality — so when you ask it something, it is not guessing about your cash. It is reading numbers that already reconciled.
Three ways people use it
Why was this receipt matched to three invoices?
The amount is exact against the sum of three open invoices for the same counterparty, and the remittance line names one of them. Two other groupings were considered and scored 31% and 4%. Both are kept, with the reason each lost.
- Open the evidence
- Show the two rejected
- Export the trail
And the part that matters more than any of it
Tresora AI works inside your approval path, on the same permissions the person asking already has, and everything it does is recorded under their name. Turn it off entirely and the platform is unchanged: the reconciliation, the positions and the reporting never ran through a model in the first place.
Connectivity
Every format your banks still use. Including the ones they should have retired.
ISO 20022 is where the industry is going. Half of tomorrow morning’s files will still be a fixed-width telex message, a US record set from 1985, or a Spanish norm written for a mainframe. We read both kinds.
MT940
End-of-day statement · SWIFT
The backbone of the day’s position. Every line becomes a movement with a case of its own.
:25:ES2100490001532345678901 :60F:C260813EUR11842150,00 :61:2608140814C248300,00NTRFNONREF//4471QX :86:/ORDP/NORTE TESORERIA SL/REMI/FRA 4471 :62F:C260814EUR12090450,00
Field :86: has no standard. It is whatever the bank felt like — and we read it anyway.
/ORDP/NORTE TESORERIA SL/REMI/FRA 4471/EREF/4471QX
?00SEPA-UEBERWEISUNG?20EREF+4471QX?21SVWZ+FRA 4471?32NORTE TESORERIA SL
TRANSFERENCIA DE NORTE TESORERIA SL CONCEPTO FRA 4471 REF 4471QX
NORTE TESORERIA SLFRA 44714471QX
Interpretations are versioned per bank. Improve one and the entries you already loaded are re-read, not left wrong.
This is not the whole list.
If one of your banks sends something that is not here, we add it — at no charge. It is a format profile, not a project.
What actually happens
It starts with a file you already export. It never starts with a project.
Four stages, in this order, and the only work on your side is in the first and the third. Nothing is installed, nothing is migrated, and nobody on your team builds anything for us.
- 01The files you already have
You
One month of statements and one extract from your ERP, exactly as they leave your systems today.
Tresora
Every line read, categorized against your own chart of accounts, and matched to the ledger entry that caused it.
- 02The first position, reconciled
You
Nothing. You read it.
Tresora
Your group position, entity by entity and currency by currency, with what agrees already closed and what does not sitting in a queue with an owner and its evidence attached.
- 03The connections take the files’ place
You
Authorize your banks, on the terms you and they already have.
Tresora
The same reading, arriving on its own. Statements, confirmations and status reports stop being something a person sends, and the numbers you have been looking at do not move.
- 04The next module is a configuration
You
Name it.
Tresora
It reads the reality that is already there — no second integration, no second load, nothing re-keyed. That is what the first three stages were building.
Add up your own column: two exports you already run, one authorization your bank wants anyway, and the name of whatever you want next.
Before you ask
The questions we get first.
- 01Is this a treasury management system?
- It contains one. Cash positioning, forecasting and payments are modules, and a treasury team can run on those alone. What sits underneath them is the part that matters: one reconciled financial reality for the whole group, assembled from your banks and your ERP, that every module reads from. That is why adding the next one is a configuration rather than another integration project — and the catalog keeps growing.
- 02Can Tresora move our money?
- Yes, with the payments module, and only along the path you configure. Tresora instructs your banks on your behalf while the funds stay in your own accounts. Thresholds, approvers and release rules are yours, and nothing reaches a bank without the approvals you require. Take the module or leave it — without it, Tresora reads and reconciles.
- 03What happens when a bank changes its file?
- The file stops matching the format we hold for that bank, and the load stops. It does not guess. You are told which bank, which file and which line, and the figures that file feeds say so instead of quietly moving.
- 04Could our auditor reproduce this?
- Line by line. Every figure opens onto the statement line or journal entry underneath it, together with the file it arrived in and the date it arrived. Nothing is rounded into place, and nothing is estimated to fill a gap.
- 05Where does our data actually live?
- In the European Union, and it stays there. That is a property of where the platform runs, not a setting somebody has to remember to tick.
- 06How is our data kept separate from another customer’s?
- By the database, not by application code remembering to filter. Every table holding your data carries a row-level policy, and a query that has not established your context returns nothing at all. A forgotten filter cannot leak a row, because the row was never visible to the query in the first place.
- 07Who can sign in, and how do we control it?
- Through the identity provider you already run. Access follows the groups you already maintain, so somebody who leaves your company loses Tresora at the moment they lose everything else — you do not keep a second list of people up to date.
See it on your own banks.
Bring one month of statements and one extract from your ERP. We will show you your own group position, reconciled — including the lines that do not match, which is usually the part worth seeing.
You will not be looking at a report. You will be looking at what it concluded, and why.
A first look runs from files alone. Nothing needs to be connected to your systems to do it.