> ## 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 esquemas que sustentam o Midaz, voltados para devs e administradores de banco de dados próximos dos dados.

<Tip>
  **Esta página é destinada a desenvolvedores e administradores de banco de dados.** Ela contém esquemas de banco de dados detalhados e estruturas de tabelas. Se você está procurando uma visão geral de nível de negócio sobre as entidades do Midaz e como elas se relacionam, veja [Sobre o Midaz](/pt/midaz/about-midaz).
</Tip>

Explore as tabelas e esquemas principais que alimentam o Midaz. Esta referência ajuda desenvolvedores e administradores de banco de dados a entender como os dados são estruturados e conectados em todo o sistema. Conforme o Midaz evolui, novos campos e tabelas podem ser adicionados.

## Tabelas

***

Cada tabela é estruturada para suportar consultas eficientes e integridade de dados, alinhada com o compromisso do Midaz com escalabilidade e flexibilidade.

### Tabela: `organization`

| Coluna                   | Tipo          | Descrição                                         |
| :----------------------- | :------------ | :------------------------------------------------ |
| **id**                   | `uuid`        | O identificador único da Organização.             |
| **legalName**            | `text`        | A razão social da Organização.                    |
| **parentOrganizationId** | `uuid`        | O identificador único da Organização pai.         |
| **doingBusinessAs**      | `text`        | O nome fantasia da Organização.                   |
| **legalDocument**        | `text`        | O documento da Organização.                       |
| **status**               | `jsonb`       | Informações sobre o status.                       |
| **address**              | `jsonb`       | Informações sobre o endereço da Organização.      |
| **metadata**             | `jsonb`       | Pares chave-valor para adicionar como metadata.   |
| **createdAt**            | `timestamptz` | Timestamp de criação (UTC).                       |
| **updatedAt**            | `timestamptz` | Timestamp da última atualização (UTC).            |
| **deletedAt**            | `timestamptz` | Timestamp de exclusão lógica, se aplicável (UTC). |

### Tabela: `ledger`

| Coluna             | Tipo          | Descrição                                         |
| :----------------- | :------------ | :------------------------------------------------ |
| **id**             | `uuid`        | O identificador único do Ledger.                  |
| **organizationId** | `uuid`        | O identificador único da Organização.             |
| **name**           | `text`        | O nome do Ledger.                                 |
| **status**         | `jsonb`       | Informações sobre o status.                       |
| **metadata**       | `jsonb`       | Pares chave-valor para adicionar como metadata.   |
| **createdAt**      | `timestamptz` | Timestamp de criação (UTC).                       |
| **updatedAt**      | `timestamptz` | Timestamp da última atualização (UTC).            |
| **deletedAt**      | `timestamptz` | Timestamp de exclusão lógica, se aplicável (UTC). |

### Tabela: `asset`

| Coluna             | Tipo          | Descrição                                                      |
| :----------------- | :------------ | :------------------------------------------------------------- |
| **id**             | `uuid`        | O identificador único do Ativo.                                |
| **organizationId** | `uuid`        | O identificador único da Organização.                          |
| **ledgerId**       | `uuid`        | O identificador único do Ledger.                               |
| **name**           | `text`        | O nome do Ativo.                                               |
| **type**           | `enum`        | O tipo de Ativo (`currency`, `crypto`, `commodity`, `others`). |
| **code**           | `text`        | O código usado para se referir ao Ativo.                       |
| **status**         | `text`        | Informações sobre o status.                                    |
| **metadata**       | `jsonb`       | Pares chave-valor para adicionar como metadata.                |
| **createdAt**      | `timestamptz` | Timestamp de criação (UTC).                                    |
| **updatedAt**      | `timestamptz` | Timestamp da última atualização (UTC).                         |
| **deletedAt**      | `timestamptz` | Timestamp de exclusão lógica, se aplicável (UTC).              |

### Tabela: `account-type`

| Coluna          | Tipo          | Descrição                                                                   |
| :-------------- | :------------ | :-------------------------------------------------------------------------- |
| **id**          | `uuid`        | O identificador único do Tipo de Conta.                                     |
| **ledgerId**    | `uuid`        | O identificador único do Ledger.                                            |
| **name**        | `text`        | Nome do Tipo de Conta.                                                      |
| **description** | `text`        | Descrição do Tipo de Conta.                                                 |
| **keyValue**    | `text`        | Valor personalizado definido pelo usuário para identificar o Tipo de Conta. |
| **createdAt**   | `timestamptz` | Timestamp de criação (UTC).                                                 |
| **updatedAt**   | `timestamptz` | Timestamp da última atualização (UTC).                                      |
| **deletedAt**   | `timestamptz` | Timestamp de exclusão lógica, se aplicável (UTC).                           |

### Tabela: `account`

| Coluna              | Tipo          | Descrição                                                 |
| :------------------ | :------------ | :-------------------------------------------------------- |
| **id**              | `uuid`        | O identificador único da Conta.                           |
| **organizationId**  | `uuid`        | O identificador único da Organização.                     |
| **ledgerId**        | `uuid`        | O identificador único do Ledger.                          |
| **assetCode**       | `text`        | O código usado para se referir ao Ativo.                  |
| **name**            | `text`        | O nome da Conta.                                          |
| **alias**           | `text`        | Um identificador único e amigável para a conta.           |
| **type**            | `text`        | O tipo de conta.                                          |
| **parentAccountId** | `uuid`        | O identificador único da Conta Pai.                       |
| **entityId**        | `text`        | O identificador único da Entidade responsável pela Conta. |
| **portfolioId**     | `uuid`        | O identificador único do Portfolio.                       |
| **segmentId**       | `uuid`        | O identificador único do Segmento.                        |
| **status**          | `jsonb`       | Informações sobre o status.                               |
| **metadata**        | `jsonb`       | Pares chave-valor para adicionar como metadata.           |
| **createdAt**       | `timestamptz` | Timestamp de criação (UTC).                               |
| **updatedAt**       | `timestamptz` | Timestamp da última atualização (UTC).                    |
| **deletedAt**       | `timestamptz` | Timestamp de exclusão lógica, se aplicável (UTC).         |

### Tabela: `portfolio`

| Coluna             | Tipo          | Descrição                                                    |
| :----------------- | :------------ | :----------------------------------------------------------- |
| **id**             | `uuid`        | O identificador único do Portfolio.                          |
| **organizationId** | `uuid`        | O identificador único da Organização.                        |
| **ledgerId**       | `uuid`        | O identificador único do Ledger.                             |
| **entityId**       | `text`        | O identificador único do usuário responsável pelo Portfolio. |
| **name**           | `text`        | O nome do Portfolio.                                         |
| **status**         | `jsonb`       | Informações sobre o status.                                  |
| **metadata**       | `jsonb`       | Pares chave-valor para adicionar como metadata.              |
| **createdAt**      | `timestamptz` | Timestamp de criação (UTC).                                  |
| **updatedAt**      | `timestamptz` | Timestamp da última atualização (UTC).                       |
| **deletedAt**      | `timestamptz` | Timestamp de exclusão lógica, se aplicável (UTC).            |

### Tabela: `segment`

| Coluna             | Tipo          | Descrição                                         |
| :----------------- | :------------ | :------------------------------------------------ |
| **id**             | `uuid`        | O identificador único do Segmento.                |
| **organizationId** | `uuid`        | O identificador único da Organização.             |
| **ledgerId**       | `uuid`        | O identificador único do Ledger.                  |
| **name**           | `text`        | O nome do Segmento.                               |
| **status**         | `jsonb`       | Informações sobre o status.                       |
| **metadata**       | `jsonb`       | Pares chave-valor para adicionar como metadata.   |
| **created\_at**    | `timestamptz` | Timestamp de criação (UTC).                       |
| **updated\_at**    | `timestamptz` | Timestamp da última atualização (UTC).            |
| **deleted\_at**    | `timestamptz` | Timestamp de exclusão lógica, se aplicável (UTC). |

### Tabela: `balance`

| Coluna             | Tipo          | Descrição                                                          |
| :----------------- | :------------ | :----------------------------------------------------------------- |
| **id**             | `text`        | O identificador único do Saldo.                                    |
| **organizationId** | `uuid`        | O identificador único da Organização.                              |
| **ledgerId**       | `uuid`        | O identificador único do Ledger.                                   |
| **accountId**      | `uuid`        | O identificador único da Conta.                                    |
| **alias**          | `text`        | O alias da conta usado na operação.                                |
| **assetCode**      | `text`        | O código usado para se referir ao Ativo.                           |
| **available**      | `text`        | Saldo disponível anterior.                                         |
| **onHold**         | `text`        | Valor bloqueado/reservado.                                         |
| **version**        | `integer`     | Versão do saldo, que é atualizada a cada transação.                |
| **accountType**    | `text`        | O tipo de conta.                                                   |
| **allowSending**   | `boolean`     | Se verdadeiro, indica que o envio de transações é permitido.       |
| **allowReceiving** | `boolean`     | Se verdadeiro, indica que o recebimento de transações é permitido. |
| **createdAt**      | `timestamptz` | Timestamp de criação (UTC).                                        |
| **updatedAt**      | `timestamptz` | Timestamp da última atualização (UTC).                             |
| **deletedAt**      | `timestamptz` | Timestamp de exclusão lógica, se aplicável (UTC).                  |

### Tabela: `operation-route`

| Coluna             | Tipo          | Descrição                                                                                        |
| :----------------- | :------------ | :----------------------------------------------------------------------------------------------- |
| **id**             | `uuid`        | O identificador único da Rota de Operação.                                                       |
| **organizationId** | `uuid`        | O identificador único da Organização.                                                            |
| **ledgerId**       | `uuid`        | O identificador único do Ledger.                                                                 |
| **title**          | `text`        | Texto curto resumindo o propósito da operação. Usado como nota de lançamento para identificação. |
| **description**    | `text`        | Descrição detalhada do propósito e uso da Rota de Operação.                                      |
| **operationType**  | `text`        | `operationType` — a aplicabilidade da entrada: `source`, `destination` ou `bidirectional`.       |
| **account**        | `jsonb`       | Define a regra para selecionar a conta que participará da operação (débito ou crédito).          |
| **createdAt**      | `timestamptz` | Timestamp de criação (UTC).                                                                      |
| **updatedAt**      | `timestamptz` | Timestamp da última atualização (UTC).                                                           |
| **deletedAt**      | `timestamptz` | Timestamp de exclusão lógica, se aplicável (UTC).                                                |

### Tabela: `operation`

| Coluna                                                                  | Tipo          | Descrição                                                                             |
| :---------------------------------------------------------------------- | :------------ | :------------------------------------------------------------------------------------ |
| **id**                                                                  | `uuid`        | O identificador único da Rota de Transação.                                           |
| **transactionId**                                                       | `uuid`        | O identificador único da Transação.                                                   |
| **organizationId**                                                      | `uuid`        | O identificador único da Organização.                                                 |
| **ledgerId**                                                            | `uuid`        | O identificador único do Ledger.                                                      |
| **accountId**                                                           | `uuid`        | O identificador único da conta da qual você deseja recuperar os saldos.               |
| **balanceId**                                                           | `uuid`        | O identificador único do Saldo.                                                       |
| **accountAlias**                                                        | `text`        | O alias da conta usado na operação.                                                   |
| **description**                                                         | `text`        | Descrição da transação.                                                               |
| **type**                                                                | `text`        | O tipo da operação (débito ou crédito).                                               |
| **assetCode**                                                           | `text`        | O nome do ativo usado na operação.                                                    |
| <Icon icon="triangle-exclamation" color="#f1ba5c" />**chartOfAccounts** | `text`        | **\[Descontinuado]** O nome do Plano de Contas ao qual a operação pertence.           |
| **route**                                                               | `text`        | O nome do grupo do plano de contas que categoriza a operação sob um grupo específico. |
| **amount**                                                              | `jsonb`       | Um objeto contendo informações sobre o valor usado na operação.                       |
| **balance**                                                             | `jsonb`       | Um objeto contendo informações sobre o saldo antes da operação.                       |
| **balanceAfter**                                                        | `jsonb`       | Um objeto contendo informações sobre o saldo após a operação.                         |
| **status**                                                              | `jsonb`       | O status da transação (pending, completed, reversed).                                 |
| **metadata**                                                            | `jsonb`       | Pares chave-valor para adicionar como metadata.                                       |
| **createdAt**                                                           | `timestamptz` | Timestamp de criação (UTC).                                                           |
| **updatedAt**                                                           | `timestamptz` | Timestamp da última atualização (UTC).                                                |
| **deletedAt**                                                           | `timestamptz` | Timestamp de exclusão lógica, se aplicável (UTC).                                     |

**Campo descontinuado**  — Este campo ainda está presente para compatibilidade retroativa, mas não deve mais ser usado.

### Tabela: `transaction-route`

| Coluna              | Tipo          | Descrição                                                                                         |
| :------------------ | :------------ | :------------------------------------------------------------------------------------------------ |
| **id**              | `uuid`        | O identificador único da Rota de Transação.                                                       |
| **organizationId**  | `uuid`        | O identificador único da Organização.                                                             |
| **ledgerId**        | `uuid`        | O identificador único do Ledger.                                                                  |
| **title**           | `text`        | Texto curto resumindo o propósito da transação. Usado como nota de lançamento para identificação. |
| **description**     | `text`        | Uma descrição para a Rota de Transação.                                                           |
| **operationRoutes** | `array`       | Uma lista de IDs de Rotas de Operação que definem a lógica de débito e crédito para a transação.  |
| **metadata**        | `object`      | Pares chave-valor para adicionar como metadata.                                                   |
| **createdAt**       | `timestamptz` | Timestamp de criação (UTC).                                                                       |
| **updatedAt**       | `timestamptz` | Timestamp da última atualização (UTC).                                                            |
| **deletedAt**       | `timestamptz` | Timestamp de exclusão lógica, se aplicável (UTC).                                                 |

### Tabela: `transaction`

| Coluna                                                                           | Tipo          | Descrição                                                                                                    |
| :------------------------------------------------------------------------------- | :------------ | :----------------------------------------------------------------------------------------------------------- |
| **id**                                                                           | `uuid`        | O identificador único da transação.                                                                          |
| **organizationId**                                                               | `uuid`        | O identificador único da Organização.                                                                        |
| **ledgerId**                                                                     | `uuid`        | O identificador único do Ledger.                                                                             |
| **description**                                                                  | `text`        | Descrição da transação.                                                                                      |
| **route**                                                                        | `text`        | O nome do grupo do plano de contas que categoriza a operação sob um grupo específico.                        |
| **status**                                                                       | `jsonb`       | Informações sobre o status.                                                                                  |
| **amount**                                                                       | `text`        | O valor enviado.                                                                                             |
| **assetCode**                                                                    | `text`        | O código usado para se referir ao Ativo.                                                                     |
| <Icon icon="triangle-exclamation" color="#f1ba5c" />**chartOfAccountsGroupName** | `text`        | **\[Descontinuado]** O nome do grupo usado para categorizar as operações de uma transação sob o mesmo grupo. |
| **source**                                                                       | `array`       | A lista de contas usadas como origem.                                                                        |
| **destination**                                                                  | `array`       | A lista de contas usadas como destino.                                                                       |
| **operations**                                                                   | `array`       | A lista de operações na transação.                                                                           |
| **metadata**                                                                     | `jsonb`       | Pares chave-valor para adicionar como metadata.                                                              |
| **createdAt**                                                                    | `timestamptz` | Timestamp de criação (UTC).                                                                                  |
| **updatedAt**                                                                    | `timestamptz` | Timestamp da última atualização (UTC).                                                                       |
| **deletedAt**                                                                    | `timestamptz` | Timestamp de exclusão lógica, se aplicável (UTC).                                                            |

**Campo descontinuado**  — Este campo ainda está presente para compatibilidade retroativa, mas não deve mais ser usado.

## Modelo de dados

***

Na *Figura 1*, você pode encontrar uma representação visual das tabelas principais do Midaz e seus relacionamentos. O diagrama ajuda desenvolvedores e administradores de BD a entender como as diferentes entidades estão interconectadas dentro do sistema, servindo como guia para manipulação e integração eficientes de dados.

<Frame caption="Figura 1. Tabelas do Midaz e seus relacionamentos.">
  <img src="https://mintcdn.com/lerian-49cb71fc/dIivJl2jpQJ0JZcX/images/pt/d2/midaz-data-model-v3.svg?fit=max&auto=format&n=dIivJl2jpQJ0JZcX&q=85&s=d5b3d1bfe2bfd462e400ac100bc24290" alt="Principais tabelas do banco de dados do Midaz e as relações entre elas, como referência para o tratamento de dados e a integração" width="2823" height="3834" data-path="images/pt/d2/midaz-data-model-v3.svg" />
</Frame>
