Every account and ledger. Reconciled every day.
Bank statements, ledgers, processor and partner records matched every day, with every difference raised the day it appears.
How it works.
Connect
Bank statements arrive by secure file transfer or upload. Ledgers and customer balances arrive by file or through our integration API.
Read
Every file is read into one structure, whatever the bank or format, and every record keeps the file and line it came from.
Match
Records are matched within the tolerance and date window you approve, for each pool and currency, internally and against the bank.
Sign off
Each run is signed off by your team, with four-eyes and blocking controls where you set them.
Sources
Your banks, in the format they already send.
| Source | Method | Format | Status |
|---|---|---|---|
| Modulr, GBP operating | SFTP | CSV | 06:00 |
| ClearBank, GBP safeguarding | SFTP | camt.053 | 06:02 |
| HSBC, USD client funds | SFTP | BAI2 | 06:04 |
| Banking Circle, EUR safeguarding | SFTP | MT940 | 06:05 |
| Customer balances ledger | Upload | CSV | Due 07:00 |
Reconciliation
Internal, external and three-way, for every pool.
Rules
Matching rules you approve.
| Control | Setting |
|---|---|
| Four-eyes sign-off | On |
| Block sign-off while a critical breach is open | On |
| Block sign-off while an investigation has no remediation note | On |
Schedule
Every run on time, at each entity's cut-off.
Positions
One position per entity, in its own currency.
| Entity | Owed | Held | Difference |
|---|---|---|---|
| Nexus Payments Inc.USD | $48,210,400 | $48,512,900 | +$302,500 |
| Nexus Payments UK LtdGBP | £31,604,118 | £31,579,118 | −£25,000 |
| Nexus Payments B.V.EUR | €12,880,050 | €12,880,050 | €0 |
| Nexus Payments Pte. Ltd.SGD | S$6,402,300 | S$6,455,800 | +S$53,500 |
Reads the statements your banks already produce.
In the format each bank already sends, for every company and currency.

| Method | How it works | Formats |
|---|---|---|
| Integration APIYour systems | Ledger and customer balance figures sent by your own systems through Safeheld's integration API. | JSON |
| Secure file transferSFTP | Statement files collected from your bank or partner on a schedule. | MT940, camt.053, BAI2, CSV |
| Arrival checksSchedule | Each source has an expected arrival time, so a late file shows before the figures are used. | All formats |
| UploadFile | Statements, ledgers and customer balances uploaded by your team. | CSV, Excel, JSON, MT940, camt.053, BAI2 |
Standard bank payment messages (ISO 20022) are read as well, so payments sent and received can be matched to the statement.
Controls and audit.
Traced to source
Every figure opens to the statement line, file and row it came from.
Versioned rules
Tolerances and date windows change only with a reason, and every version is kept.
Four-eyes sign-off
A second person signs off the run where the control is on.
Blocking controls
Sign-off stops while a critical breach is open or an investigation has no remediation note.
Roles
Administrator to view-only, with read-only access for auditors, banks and regulators.
Full audit trail
Every run, match, rule change and sign-off recorded with a name and a time.
What it produces.
Internal, external and three-way results for each entity, pool and currency.
Per run, signed offEvery unmatched item with its amount, age and source records, passed to Investigate.
Breaks listOwed, held and the difference, used by Forecast, Act and Report.
After every runEvery run, sign-off and rule version, ready for the auditor.
Audit evidence packQuestions.
Which banks can Safeheld read?
Any bank that provides statements by secure file transfer or download, in CSV, camt.053, MT940, BAI2 or Excel. Statements can also be uploaded. Partners, processors and your own systems can send figures through our integration API.
Which file formats are supported?
Standard bank statement formats (MT940, camt.053, BAI2), CSV, Excel and JSON for statements and ledgers, and standard bank payment messages (ISO 20022).
How often does reconciliation run?
On the schedule you set for each pool and currency, with a business-day offset, a local cut-off and a time zone. A run that is late raises a warning, then a breach.
Does Safeheld replace our ledger?
No. Your ledger stays the record of customer transactions. Safeheld reads it by file or through our integration API and reconciles it against the bank and customer balances.
How are entities in different currencies handled?
Each entity is reconciled and positioned in its own currency. Nothing is converted or netted across the group.
What happens to a difference?
It is raised as a break with its amount, age and source records, and goes to Investigate.