Estrutura do Ledger
- Ledger > Organização: Cada Organização pode ter vários Ledgers, mas cada Ledger pertence a apenas uma Organização.
- Use vários Ledgers apenas quando você precisar segregar dados ou operações, por exemplo operações internas de tesouraria versus contas de clientes.
Como orquestrar transações entre Ledgers
Para mover fundos entre dois Ledgers, crie um workflow orquestrado. O workflow divide a transferência em duas transações separadas:- Débito do Ledger de origem: Transfira o valor de uma conta no Ledger 1 para uma Conta Externa. Essa conta faz a ponte entre os dois Ledgers e sempre pertence a um Ativo.
- Crédito no Ledger de destino: Crie uma segunda transação. Ela move o mesmo valor da Conta Externa para a conta de destino no Ledger 2.
Você pode usar o Flowker para automatizar essa orquestração. O Flowker pode adicionar validações, condições e lógica de rollback, se você precisar.
Características principais
- Todas as Contas e Transações existem dentro de um Ledger.
- Cada Ledger mantém um conjunto equilibrado de Contas.
- Você pode usar vários Ledgers para segmentação, mas transações entre ledgers precisam de tratamento explícito.
Vários Ledgers
O Midaz permite criar vários Ledgers para cada organização. Por exemplo, uma empresa pode separar os registros financeiros por país, departamento ou função de negócio.
Exemplo de caso de uso
Considere uma empresa global com negócios em várias regiões:- Ledger 1: negócios nos EUA
- Ledger 2: negócios na UE
- Ledger 3: negócios na APAC
Quando criar um novo Ledger
Um Ledger é um limite rígido, não apenas um rótulo. Contas em Ledgers diferentes não podem transacionar diretamente. Você deve orquestrar todo movimento entre Ledgers por meio de uma Conta Externa (veja Como orquestrar transações entre Ledgers). Esse custo orienta a decisão. Crie um novo Ledger apenas quando os segmentos raramente movimentam dinheiro entre si. Use esta heurística para escolher o nível certo de separação:
Se dois conjuntos de saldos transacionam entre si com frequência, mantenha-os no mesmo Ledger. Separe-os com Portfólios ou Contas. Divida em vários Ledgers apenas quando o isolamento valer a sobrecarga de orquestração.
Personalizando Ledgers
No Midaz, você pode adaptar a configuração de cada Ledger às suas necessidades. Os Ativos são vinculados a um Ledger, então o mesmo código é um registro independente em cada Ledger, com seu próprio nome, tipo, status e metadados. Exemplo Para representar o Bitcoin (BTC) em vários Ledgers, crie o ativo BTC de forma independente em cada Ledger e defina o nome, o status e os metadados que cada Ledger precisa.
Os valores no Midaz são decimais de precisão arbitrária. Não existe uma configuração de casas decimais por ativo ou por Ledger. Você não configura uma escala ao criar um ativo.
Benefícios de usar Ledgers no Midaz
- Organização clara: mantenha registros financeiros claros e distintos para cada parte do seu negócio.
- Configurações personalizadas: ajuste as configurações de ativos, moedas ou outros parâmetros por Ledger, para necessidades locais ou departamentais.
- Escalabilidade: adicione ou altere Ledgers conforme sua organização cresce ou se diversifica.
- Transparência: tenha uma visão completa de todas as atividades financeiras. Cada Ledger contribui para um único panorama operacional.
Configurações do Ledger
Cada Ledger tem configurações ajustáveis que controlam como ele valida transações. Por exemplo, você pode exigir que toda transação siga uma rota predefinida. Você também pode exigir que os tipos de conta correspondam às regras do seu negócio. O Ledger então rejeita movimentos inválidos antes de registrá-los. Você pode alterar essas configurações a qualquer momento pela API. Você não precisa reiniciar o serviço nem alterar código.
Configurações disponíveis
Como as configurações afetam as transações
Quando você habilitavalidateRoutes para um Ledger:
- Toda transação para esse Ledger deve referenciar uma rota de transação válida.
- O Ledger valida cada operação de acordo com as regras da rota de operação correspondente.
- O Ledger rejeita qualquer transação não conforme antes de registrar o movimento.
validateAccountType:
- O Ledger verifica cada nova conta de acordo com seus tipos de conta registrados.
- Se o tipo de conta não estiver registrado, o Ledger rejeita a criação da conta.
Gerenciando configurações pela API
Use os endpoints de Configurações do Ledger para buscar e atualizar essas configurações:- Buscar Configurações do Ledger: veja as configurações atuais de um Ledger.
- Atualizar Configurações do Ledger: altere uma ou mais configurações com uma atualização parcial (deep merge).
As atualizações de configurações entram em vigor imediatamente. O Midaz aplica as mudanças com um deep merge e modifica apenas os campos que você incluir na requisição.
Gerenciando Ledgers
Você pode gerenciar seus Ledgers pela API ou pelo Lerian Console.
Ver API
- Listar Ledgers - Veja os detalhes de todos os Ledgers.
- Buscar um Ledger - Obtenha os detalhes de um Ledger específico.
- Criar um Ledger - Registre um novo Ledger.
- Atualizar um Ledger - Edite os detalhes de um Ledger existente.
- Excluir um Ledger - Marque um Ledger como excluído.
Quando você exclui um Ledger, o Midaz não o remove permanentemente.Em vez disso, o Midaz define um timestamp
deletedAt. O Midaz então exclui o Ledger de toda leitura, e você não pode mais usá-lo. Seu status.code não muda. Isso preserva os dados históricos para trilhas de auditoria.
