Read-only · Swiss-resident · Audit-trailed
Omniarium ingests holdings, transactions and cash from custodian feeds, normalises them into one canonical model, reconciles to the share, and surfaces everything in a single dashboard. It never moves money. It never places trades.
Demo credentials below. The platform is read-only by construction — no trade submission, no money movement.
How it works
Every byte that enters the platform takes the same path. Custodian-side quirks stop at the connector boundary; the rest of the system sees uniform, audit-trailed canonical events.
Connectors pull files via SFTP, call REST APIs, or read PDF drops. Every raw payload is sha256-hashed at fetch time — silent restatements are no longer silent.
Format-specific parsers (SWIFT MT, ISO 20022 camt.053, CSV, PDF, JSON) translate raw bytes into canonical events with full provenance — file, line, hash, fetch timestamp.
Three engines run in sequence. Position-value, cash, and movement-to-position. Each break carries severity, expected vs actual, and a suggested action.
Dashboard, drill-down to source row, performance (TWR + MWR), exposure cubes, look-through, quarterly PDF, and one-click Excel — all read-only.
What's in the box
Strict TypeScript, append-only audit, tenant isolation by Prisma extension, AES-256-GCM envelope encryption per tenant, RBAC at every endpoint.
Connectors expose only fetch/parse/healthCheck — no submit, no transfer, no instruct. Every layer enforces it.
Drill from any number on any screen back to the exact file, line, and sha256 hash that produced it. No silent restatements.
Position value, cash balance, movement-to-position. The Apple stock split round-trips through the movement engine without manual mapping.
A Prisma client extension injects tenantId into every query. An integration test asserts cross-tenant access returns zero rows — even with a guessed primary key.
Two-step sign-in. Argon2id-equivalent password hashing, RFC 6238 TOTP, JWTs scoped to 15 minutes. Pre-auth tokens to 5.
Every privileged action INSERTs its AuditEvent before any data write — in the same transaction. No audit-yes-data-no failure mode.
Custodian coverage
Every Swiss custodian in the demo dataset talks to the platform through the same Connector interface. Adding a tenth is a directory + a doc — no core changes.
| Code | Custodian | Channel |
|---|---|---|
| UBS_CH | UBS Switzerland | REST/JSON |
| PICTET | Banque Pictet | SFTP · SWIFT MT |
| JULIUS_BAER | Bank Julius Baer | REST/JSON |
| LOMBARD_ODIER | Lombard Odier | SFTP · CSV |
| VONTOBEL | Bank Vontobel | SFTP · SWIFT MT |
| ZKB | Zürcher Kantonalbank | SFTP · camt.053 |
| POSTFIN | PostFinance | SFTP · camt.053 |
| SYGNUM | Sygnum Bank | REST · digital assets |
| CANTONAL_PDF | Banque Cantonale (mock) |
Get in touch
Tell us about your family office, your custodians, or the reporting headache you'd like to retire. We read every message.
Read-only platform · No trade submission · No money movement.