> ## Documentation Index
> Fetch the complete documentation index at: https://docs.lerian.studio/llms.txt
> Use this file to discover all available pages before exploring further.

# Core banking

> Rode contas, transações e relatórios regulatórios em um ledger que você possui, com os controles que o seu regulador espera.

Um core legado dá a você esquemas rígidos, vendor lock-in e ciclos de release lentos. Cada novo produto ou nova regra vira meses de trabalho de integração. Você precisa de um sistema de registro que você possui, além dos controles e dos relatórios que o seu regulador pede. Uma stack de core banking Lerian é um ledger que você possui, com um serviço de decisão na frente dele e um motor de relatórios ao lado dele. Um único login cobre cada peça. Você adota cada peça sozinha, e as conecta em uma etapa de deploy.

## O que você recebe

***

<Columns cols={3}>
  <Card title="Midaz" icon="https://mintcdn.com/lerian-49cb71fc/fChpL6UWCA02zfZr/images/icons/midaz-yellow.png?fit=max&auto=format&n=fChpL6UWCA02zfZr&q=85&s=66030808cf88e9836f58b228bdb04718" href="/pt/products/midaz/what-is-midaz" width="270" height="270" data-path="images/icons/midaz-yellow.png">
    O ledger. Ele guarda organizações, ledgers, contas e transações com garantias de partidas dobradas. O CRM e o Fees Engine rodam dentro do mesmo processo.
  </Card>

  <Card title="Tracer" icon="https://mintcdn.com/lerian-49cb71fc/fChpL6UWCA02zfZr/images/icons/tracer-yellow.png?fit=max&auto=format&n=fChpL6UWCA02zfZr&q=85&s=445902f5ff57328953d7d23ffd3f3960" href="/pt/products/tracer/what-is-tracer" width="270" height="270" data-path="images/icons/tracer-yellow.png">
    Validação em tempo real na frente do ledger. Ele retorna allow, deny ou review antes de a sua aplicação enviar a transação.
  </Card>

  <Card title="Reporter" icon="https://mintcdn.com/lerian-49cb71fc/fChpL6UWCA02zfZr/images/icons/reporter-yellow.png?fit=max&auto=format&n=fChpL6UWCA02zfZr&q=85&s=9b7bb2c96d24d86b973ab98b82eb825b" href="/pt/products/reporter/what-is-reporter" width="270" height="270" data-path="images/icons/reporter-yellow.png">
    Relatórios repetíveis a partir de templates em texto simples sobre as tabelas do ledger. Ele renderiza arquivos HTML, CSV, XML, PDF e TXT.
  </Card>

  <Card title="Access Manager" icon="https://mintcdn.com/lerian-49cb71fc/E8ayMkxDRO5pydGF/images/icons/access-manager-yellow.png?fit=max&auto=format&n=E8ayMkxDRO5pydGF&q=85&s=2383ad0e8e8ee6f46c95a9fbeb440ab2" href="/pt/platform/access-manager" width="1249" height="1249" data-path="images/icons/access-manager-yellow.png">
    Uma única camada de controle de acesso. Ela responde quem faz uma requisição, e o que esse chamador pode alcançar.
  </Card>

  <Card title="Console" icon="desktop" href="/pt/platform/console/about-lerian-console">
    A interface web da stack. Operadores configuram os produtos e rodam o trabalho do dia a dia em um só lugar.
  </Card>

  <Card title="Streaming Hub" icon="tower-broadcast" href="/pt/platform/streaming-hub/what-is-streaming-hub">
    A borda de entrega para eventos. Ele envia fatos do ledger e do Tracer para um webhook, uma fila, ou um cursor que você consulta.
  </Card>
</Columns>

## Como as peças se encaixam

***

```mermaid theme={null}
flowchart LR
  App["Sua aplicação"]
  Tracer["Tracer<br/>allow, deny, review"]
  Midaz["Ledger Midaz<br/>CRM e Fees Engine dentro"]
  Rep["Reporter<br/>renderiza arquivos de relatório"]
  AM["Access Manager<br/>emite tokens"]
  Hub["Streaming Hub<br/>entrega eventos"]
  Sink["Seu webhook ou fila"]
  Console["Console<br/>opera a stack"]
  App -->|"1. validar"| Tracer
  App -->|"2. enviar em caso de allow"| Midaz
  Midaz -->|"costura de reserva opcional, Ledger v2"| Tracer
  Rep -->|"lê as tabelas do ledger"| Midaz
  Midaz -.->|"fatos do ledger"| Hub
  Tracer -.->|"fatos do tracer"| Hub
  Hub -.->|"webhook, fila, ou pull"| Sink
  AM -.->|"emite o token que a sua aplicação apresenta"| App
  Console -->|"opera"| Midaz
  Console -->|"opera"| Tracer
  Console -->|"opera"| Rep
  classDef lerian fill:#fff8e1,stroke:#f4b400,color:#333;
  classDef yours fill:#e8f0fe,stroke:#4285f4,color:#333;
  classDef ext fill:#f1f3f4,stroke:#9aa0a6,color:#333;
  class Tracer,Midaz,Rep,AM,Hub,Console lerian;
  class App,Sink yours;
```

1. Sua aplicação envia o contexto completo da transação para o Tracer. O Tracer avalia suas regras e limites de gastos, e então retorna allow, deny ou review.
2. Em caso de allow, sua aplicação envia a transação para o Midaz. O Tracer nunca chama o ledger.
3. Quando um pacote de tarifas se aplica, o Midaz adiciona os cálculos de tarifas à transação que você envia. Sua aplicação pode chamar os endpoints do Fees primeiro para estimá-los.
4. O Midaz registra as operações balanceadas. Com o streaming habilitado, ele publica o fato em `lerian.streaming.ledger` logo após a mudança de estado.
5. O Streaming Hub compara esse fato com as suas subscriptions e o entrega ao seu webhook, fila, ou cursor de pull.
6. O Reporter lê as tabelas do ledger que você registrou como fonte de dados, e renderiza os arquivos que o seu regulador pede.

O Midaz também pode chamar o Tracer por você, em um caminho que fica desligado até você configurá-lo. Defina `TRACER_BASE_URL` e um `tracer.mode` por ledger, `advisory` ou `enforce`. O caminho de transação do Ledger HTTP v2 então reserva capacidade de limite com o Tracer antes de fazer o commit. O Ledger HTTP v1 nunca faz essa chamada. Nesse caminho o Midaz chama o Tracer, e o Tracer continua nunca chamando o Midaz.

## O que cada peça possui

***

| Peça                         | Fonte de verdade para                                     | Fala com                                                      | Você mantém                                                                         |
| ---------------------------- | --------------------------------------------------------- | ------------------------------------------------------------- | ----------------------------------------------------------------------------------- |
| Midaz                        | saldos, contas, transações e operações                    | publica os fatos dele no stream                               | os dados do seu ledger, no seu banco de dados                                       |
| CRM, dentro do Midaz         | quem está por trás de uma conta: titulares e instrumentos | o Midaz o disponibiliza apenas em `/v2`                       | atributos do cliente. O Midaz criptografa os campos sensíveis antes de armazená-los |
| Fees Engine, dentro do Midaz | pacotes de tarifas e cálculos de tarifas                  | adiciona cálculos à transação que você envia                  | a sua precificação                                                                  |
| Tracer                       | regras, limites, decisões e o próprio log de auditoria    | recebe chamadas da sua aplicação, e nunca chama o Midaz       | as suas políticas. O Tracer verifica políticas e limites, não saldos de conta       |
| Reporter                     | templates, relatórios e prazos de relatórios              | lê fontes PostgreSQL e MongoDB em uma direção                 | as definições dos seus relatórios, e os arquivos renderizados no seu próprio bucket |
| Access Manager               | usuários, tokens e permissões                             | cada produto que ativa a aplicação de regras no nível de rota | as suas pessoas e as suas aplicações machine-to-machine                             |
| Console                      | as telas de operação                                      | os módulos que você habilita                                  | um único login para operadores. O Console não conecta as peças entre si             |
| Streaming Hub                | subscriptions e estado de entrega                         | consome o stream, e nunca produz nele                         | os seus sinks e os seus segredos de assinatura                                      |

## Adote uma peça de cada vez

***

<Steps>
  <Step title="Suba o Midaz">
    O Midaz é a fundação do ledger, então ele vem primeiro. O CRM e o Fees Engine rodam dentro do processo do ledger, então você não faz deploy de nenhum serviço extra para eles.
  </Step>

  <Step title="Adicione o Access Manager">
    O Access Manager emite os tokens em que cada serviço confia. Adicione-o logo depois do Midaz, antes de qualquer produto ou interface.
  </Step>

  <Step title="Coloque o Tracer na frente">
    Sua aplicação chama o Tracer antes de enviar, e apenas envia para o Midaz em caso de allow. O Tracer nunca inicia uma chamada para o Midaz e nunca lê saldos.
  </Step>

  <Step title="Registre os bancos de dados do ledger no Reporter">
    Adicione cada banco de dados do Midaz como uma fonte de dados PostgreSQL com credenciais somente leitura. Aponte o Reporter para uma read replica onde você tiver uma, para que as queries de relatório fiquem fora do caminho de escrita do ledger.
  </Step>

  <Step title="Habilite os módulos e ative os eventos">
    Habilite os produtos que você roda a partir da página de configurações do Console. Ative o streaming no Midaz quando você precisar dos fatos fora da plataforma, porque a publicação vem desligada por padrão.
  </Step>
</Steps>

## Traga o seu

***

* **A sua nuvem.** Rode a plataforma na Lerian Cloud, ou traga a sua própria nuvem e faça o deploy dos Helm charts oficiais você mesmo.
* **Os seus consumidores de eventos.** O Streaming Hub entrega para cinco tipos de sink: webhook, pull, SQS, RabbitMQ e EventBridge.
* **Os seus outros bancos de dados.** Um único deploy do Reporter gera relatórios sobre o Midaz, sobre os seus próprios bancos de dados, e sobre os dois no mesmo template.
* **A sua stack de aplicação.** O Midaz expõe uma API REST, e a Lerian publica SDKs para [Go](/pt/products/midaz/midaz-sdk-go) e [TypeScript](/pt/products/midaz/midaz-sdk-typescript).
* **A sua conciliação.** Adicione o Matcher quando você comparar o ledger com bancos e provedores de pagamento. Veja a solução de [conciliação](/pt/solutions/reconciliation).

## Um exemplo prático

***

Um Pix de saída move BRL de uma conta de cliente para uma conta externa.

1. A conta de cliente `customer_12345_brl` já existe. O Midaz criou a conta de liquidação `@external/BRL` para você, junto com o ativo `BRL`.
2. Sua aplicação envia o valor, as contas e o contexto para o Tracer. O Tracer retorna allow.
3. Sua aplicação envia 100,00 BRL contra a rota de transação `PIX_CASH_OUT`.
4. O Midaz registra duas operações balanceadas, um débito na conta do cliente e um crédito em `@external/BRL`. As duas carregam o mesmo `transactionId`.
5. O Midaz publica `transaction.posted` em `lerian.streaming.ledger`.
6. O Streaming Hub entrega esse fato para o seu webhook, assinado com um HMAC sobre o timestamp e o corpo exato da requisição.
7. No fechamento do dia, o Reporter renderiza o seu arquivo de conciliação a partir das tabelas do ledger.

O trilho Pix em si é uma composição separada. Veja a solução de [trilhos de pagamento](/pt/solutions/payment-rails).

## Comece aqui

***

<Columns cols={3}>
  <Card title="Primeiros passos" icon="https://mintcdn.com/lerian-49cb71fc/E8ayMkxDRO5pydGF/images/icons/code-yellow.png?fit=max&auto=format&n=E8ayMkxDRO5pydGF&q=85&s=5ff68ec60f9a6219649dc6d0457b5fa6" href="/pt/start-here/getting-started" width="1249" height="1249" data-path="images/icons/code-yellow.png">
    Avalie a plataforma, escolha um modelo de deploy, e rode a sua primeira transação de partidas dobradas.
  </Card>

  <Card title="Montando um core banking completo" icon="vault" href="/pt/products/building-a-complete-core-banking">
    O diagrama completo da stack, e as etapas de conexão que você mesmo executa.
  </Card>

  <Card title="Lerian Cloud e BYOC" icon="cloud" href="/pt/start-here/evaluate-and-deploy/deployment-models">
    Quem opera a infraestrutura em cada modelo, e o que fica do seu lado.
  </Card>

  <Card title="Instalando o Midaz" icon="https://mintcdn.com/lerian-49cb71fc/fChpL6UWCA02zfZr/images/icons/midaz-yellow.png?fit=max&auto=format&n=fChpL6UWCA02zfZr&q=85&s=66030808cf88e9836f58b228bdb04718" href="/pt/products/midaz/midaz-setup" width="270" height="270" data-path="images/icons/midaz-yellow.png">
    Rode o ambiente completo do ledger localmente com o Docker Compose.
  </Card>

  <Card title="Guia de integração do Tracer" icon="https://mintcdn.com/lerian-49cb71fc/fChpL6UWCA02zfZr/images/icons/tracer-yellow.png?fit=max&auto=format&n=fChpL6UWCA02zfZr&q=85&s=445902f5ff57328953d7d23ffd3f3960" href="/pt/products/tracer/integration-guide" width="270" height="270" data-path="images/icons/tracer-yellow.png">
    Onde a chamada de validação fica no seu fluxo, e como lidar com cada decisão.
  </Card>

  <Card title="Início rápido do Reporter" icon="https://mintcdn.com/lerian-49cb71fc/fChpL6UWCA02zfZr/images/icons/reporter-yellow.png?fit=max&auto=format&n=fChpL6UWCA02zfZr&q=85&s=9b7bb2c96d24d86b973ab98b82eb825b" href="/pt/products/reporter/reporter-quick-start" width="270" height="270" data-path="images/icons/reporter-yellow.png">
    Faça upload de um template, gere o seu primeiro relatório, e verifique o arquivo baixado.
  </Card>
</Columns>
