One ledger
Every balance

Accounts, IBANs and a double-entry ledger
Every module posts here. Every report starts here.

Read the API
~/montis/core/ledger/settlement.match.ts
montis live
confirmed in 187ms
}
"status": "POSTED"
"fx_rate": 1.0843,
"to": "acc_external_8821",
"from": "acc_montis_eur",
"currency": "EUR",
"amount": 14250.00,
"id": "txn_8K2vQp",
{
POST /v1/ledger/transactions
// ledger.entries.append

built into the core

Six primitives. One source of truth

Double-entry ledger

Append-only, fully auditable, balanced by design
Every entry is two lines. No state can ever drift

Multi-currency accounts

Hold and post in any supported currency on the same ledger

IBAN infrastructure

Account identification and routing across SEPA and SWIFT rails

Atomic transactions

Two-legged entries, status lifecycle, traceable lineage

Real-time balances

Queryable by account, program, currency, customer, any dimension

Fees & limits

Configurable rules at account, program, or customer level

Entry lifecycle

One transaction. End to end on the ledger

From the API call to a sealed double-entry post. Five moments, every one auditable

  1. T+001Request
  2. T+18ms02Validate
  3. T+34ms03Post
  4. T+47ms04Settle
  5. T+58ms05Seal
01T+0

POST /v1/transfers

Request reaches the ledger API. Idempotency key reserved, payload validated against the schema

entry payload
methodPOST
path/v1/transfers
idempotencyipk_5R8c…f213
statusaccepted
Integration mesh6 endpoints · live

integration

Built to be plugged in

Replace one module, or replace the stack. Your brand stays unchanged

  • API-firstOne API for accounts, balances, and ledger entries
  • Real-timeBalances update as events happen
  • ConfigurableAdapt account structures and rules to your operating model
  • Single systemOne source of truth across every module

Build first

Start with Core
The rest layers in

Start with one module. Add the next when you need it

See the capabilities
CorePaymentsComplianceFXCardsReporting