What you get
Midaz
The ledger. It holds organizations, ledgers, accounts, and transactions with double-entry guarantees. CRM and the Fees Engine run inside the same process.
Tracer
Real-time validation in front of the ledger. It returns allow, deny, or review before your application submits the transaction.
Reporter
Repeatable reports from plain-text templates over the ledger tables. It renders HTML, CSV, XML, PDF, and TXT files.
Access Manager
One access-control layer. It answers who makes a request, and what that caller can reach.
Console
The web interface for the stack. Operators configure the products and run the daily work in one place.
Streaming Hub
The delivery edge for events. It sends ledger and Tracer facts to a webhook, a queue, or a cursor you pull.
How the pieces fit together
- Your application sends the full transaction context to Tracer. Tracer evaluates your rules and spending limits, then returns allow, deny, or review.
- On allow, your application submits the transaction to Midaz. Tracer never calls the ledger.
- When a fee package applies, Midaz adds the fee calculations to the transaction you submit. Your application can call the fees endpoints first to estimate them.
- Midaz records the balanced operations. With streaming enabled, it publishes the fact on
lerian.streaming.ledgerdirectly after the state change. - Streaming Hub matches that fact against your subscriptions and delivers it to your webhook, queue, or pull cursor.
- Reporter reads the ledger tables you registered as a data source, and renders the files your regulator asks for.
TRACER_BASE_URL and a per-ledger tracer.mode of advisory or enforce. The Ledger HTTP v2 transaction path then holds limit capacity with Tracer before it commits. Ledger HTTP v1 never makes this call. On this path Midaz calls Tracer, and Tracer still never calls Midaz.
What each piece owns
Adopt it one piece at a time
1
Stand up Midaz
Midaz is the ledger foundation, so it comes first. CRM and the Fees Engine run inside the ledger process, so you deploy no extra service for them.
2
Add Access Manager
Access Manager issues the tokens each service trusts. Add it directly after Midaz, before any product or interface.
3
Put Tracer in front
Your application calls Tracer before it submits, and it submits to Midaz only on allow. Tracer never initiates a call to Midaz and never reads balances.
4
Register the ledger databases in Reporter
Add each Midaz database as a PostgreSQL data source with read-only credentials. Point Reporter at a read replica where you have one, so report queries stay off the ledger write path.
5
Enable the modules and turn on events
Enable the products you run from the Console settings page. Turn on streaming in Midaz when you need the facts outside the platform, because publication is off by default.
Bring your own
- Your cloud. Run the platform in Lerian Cloud, or bring your own cloud and deploy the official Helm charts yourself.
- Your event consumers. Streaming Hub delivers to five sink kinds: webhook, pull, SQS, RabbitMQ, and EventBridge.
- Your other databases. One Reporter deployment reports over Midaz, over your own databases, and over both in the same template.
- Your application stack. Midaz exposes a REST API, and Lerian publishes SDKs for Go and TypeScript.
- Your reconciliation. Add Matcher when you compare the ledger against banks and payment providers. See the reconciliation solution.
A worked example
A Pix cash-out moves BRL out of a customer account to an external account.
- The customer account
customer_12345_brlalready exists. Midaz created the@external/BRLsettlement account for you, together with theBRLasset. - Your application sends the amount, the accounts, and the context to Tracer. Tracer returns allow.
- Your application submits 100.00 BRL against the
PIX_CASH_OUTtransaction route. - Midaz records two balanced operations, a debit on the customer account and a credit on
@external/BRL. Both carry the sametransactionId. - Midaz publishes
transaction.postedonlerian.streaming.ledger. - Streaming Hub delivers that fact to your webhook, signed with an HMAC over the timestamp and the exact request body.
- At the close of the day, Reporter renders your reconciliation file from the ledger tables.
Start here
Getting started
Evaluate the platform, choose a deployment model, and run your first double-entry transaction.
Building a complete core banking
The full stack diagram, and the wiring steps you run yourself.
Lerian Cloud and BYOC
Who operates the infrastructure in each model, and what stays on your side.
Installing Midaz
Run the full ledger environment locally with Docker Compose.
Tracer integration guide
Where the validation call sits in your flow, and how to handle each decision.
Reporter quick start
Upload a template, generate your first report, and verify the downloaded file.

