Execution and control
No payment leaves until your approvals are in. Then Tresora instructs your banks.
It reads what your ledger already holds as due, builds the file each bank takes, routes every order to the people your policy names, sends the instruction and reads the answer that comes back. Bulk runs and single orders, on the same reconciled figures every other screen reads.
Run value
EUR 4,823,500
Across 208 payments
- Supplier transfers 168 payments
- EUR 2,940,600
- Cross-border transfers 31 payments
- EUR 704,900
- Transfers between your own accounts 9 payments
- EUR 1,178,000
Held for review4
What it works from
What does the payments module actually do?
It builds the instruction your bank needs out of what your own systems already hold, moves it through your approvals, sends it, and lands the bank’s answer on the same order. Four sources go into it, and all four are yours.
- What your ledger holds as due
- The invoices and journal items your ERP has already approved for payment, with the entity, the amount, the currency and the value date they carry there.
- Which account it leaves from
- Your bank account catalog decides the ordering account for each entity: the agreement it sits under, the currency it holds, and the channel that bank answers on.
- Who is being paid
- Your counterparty records — the beneficiary, the account details held for it, the names and references it has appeared under, and every earlier payment the group made to it.
- What your policy allows
- Approval steps, the amounts they bite at, who may release and who may only look. It is configuration in the product, not something anybody has to build.
The file that leaves is the one that bank takes. pain.001 for SEPA credit transfers and every other ISO 20022 bank, pain.008 for direct debits, MT101 where a bank still asks for it, over EBICS, SWIFT, host-to-host or the bank’s own API. One file per account, split the way that bank wants it split. If one of your banks sends or takes something that is not here, we add it.
What stays yours
The approval path
Who has to sign it off before it leaves?
Whoever your own policy says, at the amount your own policy says. A step per role, a threshold per step, and an entity or an account may carry its own. A run stops at the step it has reached and names the person it is waiting for.
- Entity controller
- Every order raised at that entity, whatever it is worth. The first step is usually the person who knows the invoice rather than the person who knows the balance. Given
- Group treasury
- The whole run, once each entity has cleared its own. This is the step that decides today rather than tomorrow, because it is the one holding the position. Given
- Chief financial officer
- Any single order above the limit set for the entity paying it. Set that limit per entity, per account or per counterparty; a run with nothing above it never reaches this step. Waiting
Who can do what
The controls
What stops a payment that should not go out?
A set of checks that run on every order before it can be released, each one comparing that order against something you already hold. An order that fails one stays where it is, with the comparison that held it written on it. Nobody has to notice.
- The beneficiary’s bank details
- Against the account held for that counterparty in your own records, and against the account every earlier payment to it actually went to. A first payment to new details is a decision somebody makes, never what happens by default.
- The amount
- Against what this counterparty has been paid before, and against the limit set for the entity paying it. An order that clears both still goes down the approval path; one that clears neither does not reach it.
- The duplicate
- Against every other order in the run, and against what has already gone out under the same message reference: the MsgId on a pain.001, the sender’s reference on an MT101. Paying one invoice twice is the most expensive error in this module and the easiest one to make.
- The beneficiary itself
- Against your counterparty records: the account number, the aliases, the names it has been booked under in each entity. A payee the group has never paid before is marked as exactly that.
Order value
EUR 96,400
Supplier transfer, from a euro account
- Beneficiary bank details
- CHANGED
- Amount against this beneficiary
- ABOVE
- Duplicate in this run
- CLEAR
- Beneficiary in your records
- KNOWN
Held in this run · 4 ordersEUR 268,300
And the check that runs after it has left
The answer back
How do you know the bank actually paid it?
Because the bank says so twice, and both answers land on the same order. First the status report, per instruction, carrying the bank’s own reason when it refused one. Then the debit itself, on the statement, matched back to the order that caused it.
Instructions sent
204
In 5 files, one per account
- Accepted by the bank
- 202
- Rejected, with the bank’s reason
- 2
Matched to the debit · 197 paymentsEUR 4,206,800
- The bank’s status report
- pain.002, read per instruction rather than per file: accepted, accepted with a change, or rejected with the bank’s own reason code and the text it sent alongside.
- The debit on the statement
- camt.054 where the bank sends one, and the statement line itself on camt.053, MT940 or whatever that bank uses. This is the event that proves the money left, and it is not the same event as the acceptance.
- The match back to the order
- On the references that traveled with the file: the end-to-end id, the instruction id, the UETR, the bank’s own transaction reference. What the bank did and what your ledger says stop being two questions with two answers.
A rejection does not vanish into an inbox. It stays on the order with the bank’s reason on it, and the position, the forecast and the close all keep counting that money as unpaid — because all three are reading the same order rather than a copy of it.
Around the desk
Who works in this every day?
Three desks, three different screens, one run. Shared services builds it and resolves whatever a check held. Treasury releases it and watches the answers arrive. The controller never opens it and still sees the result, because the debits it produced are already matched when the close starts.
Who it is for
What it reads from and feeds
Before you ask
The questions this module always gets.
- 01Can Tresora send payments to our banks?
- Yes. That is what the module is. Tresora builds the instruction, carries it through the approvals your policy requires, and sends it to the bank over the channel that bank uses. The funds stay in your own accounts under your own agreements, and nothing is sent that you did not approve.
- 02Who decides the approval path?
- You do, and you change it without us. The steps, the amounts they bite at, which roles sit on them and who may release are all configuration. Every change to any of them is recorded on Authorization Changes, with the person who made it.
- 03Which payment formats and channels do you use?
- pain.001 for SEPA credit transfers and every other ISO 20022 bank, pain.008 for direct debits, and MT101 where a bank prefers it, over EBICS, SWIFT, host-to-host or the bank’s API. Status comes back on pain.002 and the debit on camt.054 or the statement itself. If one of your banks wants something else, we add it.
- 04What happens when a bank rejects one?
- The rejection lands on the order with the bank’s own reason code, and the order stays open. Nothing is retried on its own. Your position and your forecast keep that money as unpaid, because they read the same order rather than a report about it.
- 05Can somebody who sees the cash position release a payment?
- Only if you gave them that right. Viewing and releasing are separate rights on Roles & Permissions, and a person can hold either without the other. Every release is written to the Activity Log with the name of whoever made it, and so is every change to who holds which right.
Bring one run you already made.
Send us a payment run you sent last month and the files your banks answered with. We will show you that same run here: the approvals it would have needed, the order a check would have held, and the confirmations landing back on it.
Nothing is sent to your banks during a demo. The module is switched on when you say it is.