Read-only · Swiss-resident · Audit-trailed

Consolidated wealth reporting,
across every Swiss custodian.

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.

9
custodian connectors
5
wire formats
3
reconciliation engines
100%
provenance per row

How it works

One pipeline. Nine custodians. One canonical model.

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.

  1. 1

    Fetch

    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.

  2. 2

    Parse

    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.

  3. 3

    Reconcile

    Three engines run in sequence. Position-value, cash, and movement-to-position. Each break carries severity, expected vs actual, and a suggested action.

  4. 4

    Report

    Dashboard, drill-down to source row, performance (TWR + MWR), exposure cubes, look-through, quarterly PDF, and one-click Excel — all read-only.

Data flow
Custodians
  • UBS_CH
  • PICTET
  • JULIUS_BAER
  • + 6 more
Wire formats
  • SWIFT MT
  • camt.053
  • REST/JSON
  • CSV · PDF
Canonical events
  • POSITION
  • TRANSACTION
  • CASH_BALANCE
  • CORPORATE_ACTION
Engines
  • Position recon
  • Cash recon
  • Movement-to-position
Outputs
  • Dashboard
  • Quarterly PDF
  • Excel export
  • OpenAPI

What's in the box

Production-shaped, end-to-end.

Strict TypeScript, append-only audit, tenant isolation by Prisma extension, AES-256-GCM envelope encryption per tenant, RBAC at every endpoint.

Read-only by design

Connectors expose only fetch/parse/healthCheck — no submit, no transfer, no instruct. Every layer enforces it.

Provenance per row

Drill from any number on any screen back to the exact file, line, and sha256 hash that produced it. No silent restatements.

Three reconciliation engines

Position value, cash balance, movement-to-position. The Apple stock split round-trips through the movement engine without manual mapping.

Tenant isolation enforced

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.

Credentials + TOTP MFA

Two-step sign-in. Argon2id-equivalent password hashing, RFC 6238 TOTP, JWTs scoped to 15 minutes. Pre-auth tokens to 5.

Audit-first writes

Every privileged action INSERTs its AuditEvent before any data write — in the same transaction. No audit-yes-data-no failure mode.

Custodian coverage

Nine connectors, five wire formats.

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.

CodeCustodianChannel
UBS_CHUBS SwitzerlandREST/JSON
PICTETBanque PictetSFTP · SWIFT MT
JULIUS_BAERBank Julius BaerREST/JSON
LOMBARD_ODIERLombard OdierSFTP · CSV
VONTOBELBank VontobelSFTP · SWIFT MT
ZKBZürcher KantonalbankSFTP · camt.053
POSTFINPostFinanceSFTP · camt.053
SYGNUMSygnum BankREST · digital assets
CANTONAL_PDFBanque Cantonale (mock)PDF

Get in touch

Talk to the team.

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.

We only use this to reply. No newsletter, no sharing.