> ## 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.

# Modelo de dados

> Consulte as tabelas e os schemas principais que sustentam o Midaz, criado para desenvolvedores e administradores de banco de dados que trabalham perto dos dados.

> [!TIP]
>
> **Esta página é para desenvolvedores e administradores de banco de dados.** Ela contém schemas detalhados do banco de dados e estruturas de tabelas. Para uma visão geral em nível de negócio das entidades do Midaz e seus relacionamentos, veja [Sobre o Midaz](https://docs.lerian.studio/pt/products/midaz/about-midaz.md).

Explore as tabelas principais que sustentam o Midaz. À medida que o Midaz evolui, ele pode adicionar novos campos e tabelas.

O Midaz guarda as tabelas desta página em dois bancos de dados PostgreSQL:

* **Banco de dados de onboarding**: `organization`, `ledger`, `asset`, `account_type`, `account`, `portfolio` e `segment`.
* **Banco de dados de transações**: `balance`, `operation_route`, `operation`, `transaction_route` e `transaction`.

O Midaz armazena os `metadata` de cada entidade no MongoDB, não nestas tabelas. Os nomes das colunas são nomes do banco de dados e podem ser diferentes dos nomes dos campos da API.

## Tabelas

***

### Tabela: `organization`

| Coluna | Tipo | Descrição |
| :- | :- | :- |
| **id** | `uuid` | O identificador único da Organização. |
| **parent\_organization\_id** | `uuid` | O identificador único da Organização pai. |
| **legal\_name** | `text` | O nome legal da Organização. |
| **doing\_business\_as** | `text` | O nome fantasia da Organização. |
| **legal\_document** | `text` | O documento da Organização. |
| **address** | `jsonb` | O endereço da Organização. |
| **status** | `text` | O código do status. |
| **status\_description** | `text` | A descrição do status. |
| **created\_at** | `timestamptz` | Timestamp de criação (UTC). |
| **updated\_at** | `timestamptz` | Timestamp da última atualização (UTC). |
| **deleted\_at** | `timestamptz` | Timestamp da soft delete, se aplicável (UTC). |

### Tabela: `ledger`

| Coluna | Tipo | Descrição |
| :- | :- | :- |
| **id** | `uuid` | O identificador único do Ledger. |
| **organization\_id** | `uuid` | O identificador único da Organização. |
| **name** | `text` | O nome do Ledger. |
| **status** | `text` | O código do status. |
| **status\_description** | `text` | A descrição do status. |
| **settings** | `jsonb` | As [configurações do Ledger](https://docs.lerian.studio/pt/products/midaz/ledgers.md#ledger-settings). |
| **created\_at** | `timestamptz` | Timestamp de criação (UTC). |
| **updated\_at** | `timestamptz` | Timestamp da última atualização (UTC). |
| **deleted\_at** | `timestamptz` | Timestamp da soft delete, se aplicável (UTC). |

### Tabela: `asset`

| Coluna | Tipo | Descrição |
| :- | :- | :- |
| **id** | `uuid` | O identificador único do Ativo. |
| **organization\_id** | `uuid` | O identificador único da Organização. |
| **ledger\_id** | `uuid` | O identificador único do Ledger. |
| **name** | `text` | O nome do Ativo. |
| **type** | `text` | O tipo do Ativo (`currency`, `fiat`, `crypto`, `commodity`, `others`). |
| **code** | `text` | O código usado para se referir ao Ativo. |
| **status** | `text` | O código do status. |
| **status\_description** | `text` | A descrição do status. |
| **created\_at** | `timestamptz` | Timestamp de criação (UTC). |
| **updated\_at** | `timestamptz` | Timestamp da última atualização (UTC). |
| **deleted\_at** | `timestamptz` | Timestamp da soft delete, se aplicável (UTC). |

### Tabela: `account_type`

| Coluna | Tipo | Descrição |
| :- | :- | :- |
| **id** | `uuid` | O identificador único do Tipo de Conta. |
| **organization\_id** | `uuid` | O identificador único da Organização. |
| **ledger\_id** | `uuid` | O identificador único do Ledger. |
| **name** | `varchar(100)` | Nome do Tipo de Conta. |
| **description** | `text` | Descrição do Tipo de Conta. |
| **key\_value** | `varchar(50)` | A chave que identifica o Tipo de Conta no Ledger. |
| **default\_direction** | `varchar(16)` | A [direção do saldo](https://docs.lerian.studio/pt/products/midaz/balance-overdraft.md) padrão para Contas deste tipo: `credit` ou `debit`. |
| **created\_at** | `timestamptz` | Timestamp de criação (UTC). |
| **updated\_at** | `timestamptz` | Timestamp da última atualização (UTC). |
| **deleted\_at** | `timestamptz` | Timestamp da soft delete, se aplicável (UTC). |

### Tabela: `account`

| Coluna | Tipo | Descrição |
| :- | :- | :- |
| **id** | `uuid` | O identificador único da Conta. |
| **organization\_id** | `uuid` | O identificador único da Organização. |
| **ledger\_id** | `uuid` | O identificador único do Ledger. |
| **asset\_code** | `text` | O código usado para se referir ao Ativo. |
| **name** | `text` | O nome da Conta. |
| **alias** | `text` | O alias que as transações usam para identificar a Conta. |
| **type** | `text` | O tipo de conta. |
| **parent\_account\_id** | `uuid` | O identificador único da Conta Pai. |
| **entity\_id** | `text` | Uma referência a um registro em um sistema externo. |
| **holder\_id** | `uuid` | O identificador único do Titular dono da Conta. |
| **holder\_check\_skipped** | `boolean` | `true` quando uma flag `skip` ignorou a verificação do Titular na criação. |
| **portfolio\_id** | `uuid` | O identificador único do Portfólio. |
| **segment\_id** | `uuid` | O identificador único do Segmento. |
| **status** | `text` | O código do status. |
| **status\_description** | `text` | A descrição do status. |
| **blocked** | `boolean` | `true` quando a Conta está bloqueada. |
| **closed\_at** | `timestamptz` | Timestamp do encerramento, se aplicável (UTC). |
| **created\_at** | `timestamptz` | Timestamp de criação (UTC). |
| **updated\_at** | `timestamptz` | Timestamp da última atualização (UTC). |
| **deleted\_at** | `timestamptz` | Timestamp da soft delete, se aplicável (UTC). |

### Tabela: `portfolio`

| Coluna | Tipo | Descrição |
| :- | :- | :- |
| **id** | `uuid` | O identificador único do Portfólio. |
| **organization\_id** | `uuid` | O identificador único da Organização. |
| **ledger\_id** | `uuid` | O identificador único do Ledger. |
| **entity\_id** | `text` | O identificador único do usuário responsável pelo Portfólio. |
| **name** | `text` | O nome do Portfólio. |
| **status** | `text` | O código do status. |
| **status\_description** | `text` | A descrição do status. |
| **created\_at** | `timestamptz` | Timestamp de criação (UTC). |
| **updated\_at** | `timestamptz` | Timestamp da última atualização (UTC). |
| **deleted\_at** | `timestamptz` | Timestamp da soft delete, se aplicável (UTC). |

### Tabela: `segment`

| Coluna | Tipo | Descrição |
| :- | :- | :- |
| **id** | `uuid` | O identificador único do Segmento. |
| **organization\_id** | `uuid` | O identificador único da Organização. |
| **ledger\_id** | `uuid` | O identificador único do Ledger. |
| **name** | `text` | O nome do Segmento. |
| **status** | `text` | O código do status. |
| **status\_description** | `text` | A descrição do status. |
| **created\_at** | `timestamptz` | Timestamp de criação (UTC). |
| **updated\_at** | `timestamptz` | Timestamp da última atualização (UTC). |
| **deleted\_at** | `timestamptz` | Timestamp da soft delete, se aplicável (UTC). |

### Tabela: `balance`

| Coluna | Tipo | Descrição |
| :- | :- | :- |
| **id** | `uuid` | O identificador único do Saldo. |
| **organization\_id** | `uuid` | O identificador único da Organização. |
| **ledger\_id** | `uuid` | O identificador único do Ledger. |
| **account\_id** | `uuid` | O identificador único da Conta. |
| **alias** | `text` | O alias da Conta. |
| **key** | `text` | A chave do saldo. O saldo padrão usa `default`. |
| **asset\_code** | `text` | O código usado para se referir ao Ativo. |
| **available** | `decimal` | O valor disponível. |
| **on\_hold** | `decimal` | Valor retido/reservado. |
| **version** | `bigint` | Versão do saldo. |
| **account\_type** | `text` | O tipo de conta. |
| **allow\_sending** | `boolean` | Se verdadeiro, indica que o envio de transações é permitido. |
| **allow\_receiving** | `boolean` | Se verdadeiro, indica que o recebimento de transações é permitido. |
| **direction** | `varchar(16)` | A [direção do saldo](https://docs.lerian.studio/pt/products/midaz/balance-overdraft.md): `credit` ou `debit`. |
| **overdraft\_used** | `decimal` | O valor de overdraft em uso. |
| **settings** | `jsonb` | As configurações do saldo, como o limite de overdraft. |
| **created\_at** | `timestamptz` | Timestamp de criação (UTC). |
| **updated\_at** | `timestamptz` | Timestamp da última atualização (UTC). |
| **deleted\_at** | `timestamptz` | Timestamp da soft delete, se aplicável (UTC). |

### Tabela: `operation_route`

| Coluna | Tipo | Descrição |
| :- | :- | :- |
| **id** | `uuid` | O identificador único da Rota de Operação. |
| **organization\_id** | `uuid` | O identificador único da Organização. |
| **ledger\_id** | `uuid` | O identificador único do Ledger. Vazio para uma rota que pertence à Organização. |
| **title** | `varchar(255)` | Texto curto que resume o propósito da operação. Usado como nota de lançamento para identificação. |
| **description** | `varchar(250)` | Descrição detalhada do propósito e do uso da Rota de Operação. |
| **code** | `text` | O código da Rota de Operação. |
| **operation\_type** | `varchar(20)` | A aplicabilidade do lançamento: `source`, `destination` ou `bidirectional`. |
| **account\_rule\_type** | `varchar(20)` | A regra que seleciona a conta: `alias` ou `account_type`. |
| **account\_rule\_valid\_if** | `text` | Os valores que a regra de conta aceita. |
| **accounting\_entries** | `jsonb` | Os [lançamentos](https://docs.lerian.studio/pt/products/midaz/accounting-entries.md) da rota. |
| **created\_at** | `timestamptz` | Timestamp de criação (UTC). |
| **updated\_at** | `timestamptz` | Timestamp da última atualização (UTC). |
| **deleted\_at** | `timestamptz` | Timestamp da soft delete, se aplicável (UTC). |

### Tabela: `operation`

| Coluna | Tipo | Descrição |
| :- | :- | :- |
| **id** | `uuid` | O identificador único da Operação. |
| **transaction\_id** | `uuid` | O identificador único da Transação. |
| **organization\_id** | `uuid` | O identificador único da Organização. |
| **ledger\_id** | `uuid` | O identificador único do Ledger. |
| **account\_id** | `uuid` | O identificador único da Conta. |
| **account\_alias** | `text` | O alias da conta usada na operação. |
| **balance\_id** | `uuid` | O identificador único do Saldo. |
| **balance\_key** | `text` | A chave do Saldo. |
| **description** | `text` | Descrição da operação. |
| **type** | `text` | O tipo da operação, como `DEBIT`, `CREDIT`, `ON_HOLD` ou `RELEASE`. |
| **direction** | `varchar(10)` | A direção da operação: `debit` ou `credit`. |
| **asset\_code** | `text` | O código usado para se referir ao Ativo. |
| **amount** | `decimal` | O valor da operação. |
| **available\_balance** | `decimal` | O valor disponível antes da operação. |
| **on\_hold\_balance** | `decimal` | O valor retido antes da operação. |
| **available\_balance\_after** | `decimal` | O valor disponível depois da operação. |
| **on\_hold\_balance\_after** | `decimal` | O valor retido depois da operação. |
| **balance\_version\_before** | `bigint` | A versão do saldo antes da operação. |
| **balance\_version\_after** | `bigint` | A versão do saldo depois da operação. |
| **balance\_affected** | `boolean` | `false` quando a operação não altera o saldo, como em uma transação de anotação. |
| **chart\_of\_accounts** | `text` | O nome do plano de contas ao qual a operação pertence. |
| **route** | `text` | **\[Descontinuado]** Identificador de rota legado, mantido para compatibilidade retroativa. Use `route_id` em vez disso. |
| **route\_id** | `uuid` | Identificador da rota usada pela operação (o campo de rota atual). |
| **route\_code** | `text` | O código da rubrica contábil que o Midaz resolveu para a operação. |
| **route\_description** | `text` | A descrição da rubrica contábil que o Midaz resolveu para a operação. |
| **snapshot** | `jsonb` | Contexto de sistema da operação, como o uso de overdraft antes e depois dela. |
| **status** | `text` | O código do status. |
| **status\_description** | `text` | A descrição do status. |
| **recorded\_at** | `timestamptz` | Timestamp de quando o ledger registrou a operação (UTC). |
| **created\_at** | `timestamptz` | Timestamp de criação (UTC). |
| **updated\_at** | `timestamptz` | Timestamp da última atualização (UTC). |
| **deleted\_at** | `timestamptz` | Timestamp da soft delete, se aplicável (UTC). |

### Tabela: `transaction_route`

| Coluna | Tipo | Descrição |
| :- | :- | :- |
| **id** | `uuid` | O identificador único da Rota de Transação. |
| **organization\_id** | `uuid` | O identificador único da Organização. |
| **ledger\_id** | `uuid` | O identificador único do Ledger. Vazio para uma rota que pertence à Organização. |
| **title** | `varchar(255)` | Texto curto que resume o propósito da transação. Usado como nota de lançamento para identificação. |
| **description** | `varchar(250)` | Uma descrição para a Rota de Transação. |
| **created\_at** | `timestamptz` | Timestamp de criação (UTC). |
| **updated\_at** | `timestamptz` | Timestamp da última atualização (UTC). |
| **deleted\_at** | `timestamptz` | Timestamp da soft delete, se aplicável (UTC). |

A tabela `operation_transaction_route` vincula cada Rota de Transação às suas Rotas de Operação.

### Tabela: `transaction`

| Coluna | Tipo | Descrição |
| :- | :- | :- |
| **id** | `uuid` | O identificador único da transação. |
| **parent\_transaction\_id** | `uuid` | O identificador único da transação pai, como a transação que um estorno reverte. |
| **group\_id** | `uuid` | Vincula as transações que uma requisição entre Ledgers cria. |
| **organization\_id** | `uuid` | O identificador único da Organização. |
| **ledger\_id** | `uuid` | O identificador único do Ledger. |
| **description** | `text` | Descrição da transação. |
| **route** | `text` | **\[Descontinuado]** Identificador de rota legado, mantido para compatibilidade retroativa. Use `route_id` em vez disso. |
| **route\_id** | `uuid` | Identificador da rota usada pela transação (o campo de rota atual). |
| **status** | `text` | O código do status. |
| **status\_description** | `text` | A descrição do status. |
| **amount** | `decimal` | O valor enviado. |
| **asset\_code** | `text` | O código usado para se referir ao Ativo. |
| **chart\_of\_accounts\_group\_name** | `text` | O nome do grupo do plano de contas usado para categorizar as operações de uma transação. |
| **body** | `jsonb` | Cópia interna da requisição da transação. |
| **fees\_skipped** | `boolean` | `true` quando uma flag `skip` ignorou o cálculo de tarifas. |
| **tracer\_skipped** | `boolean` | `true` quando uma flag `skip` ignorou o Tracer. |
| **created\_at** | `timestamptz` | Timestamp de criação (UTC). |
| **updated\_at** | `timestamptz` | Timestamp da última atualização (UTC). |
| **deleted\_at** | `timestamptz` | Timestamp da soft delete, se aplicável (UTC). |

## Modelo de dados

***

*Figura 1* mostra as tabelas principais do Midaz e seus relacionamentos. Use-a para orientar o tratamento de dados e a integração.

![Tabelas principais do banco de dados do Midaz e os relacionamentos entre elas, como referência para o tratamento de dados e a integração](https://mintcdn.com/lerian-49cb71fc/acz_224gNiM7aYvL/images/pt/d2/midaz-data-model-v3.svg?fit=max\&auto=format\&n=acz_224gNiM7aYvL\&q=85\&s=e4f34093eaeb93457219e0ae718a9bfb)

Figura 1. Tabelas do Midaz e seus relacionamentos.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.