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

> Consulta las tablas y esquemas que sustentan Midaz, pensados para developers y administradores de bases de datos cercanos a los datos.

<Tip>
  **Esta página está dirigida a desarrolladores y administradores de bases de datos.** Contiene esquemas detallados de bases de datos y estructuras de tablas. Si buscas una visión general a nivel de negocio de las entidades de Midaz y cómo se relacionan entre sí, consulta [Sobre Midaz](/es/midaz/about-midaz).
</Tip>

Explora las tablas y esquemas principales que impulsan Midaz. Esta referencia ayuda a los desarrolladores y administradores de bases de datos a comprender cómo se estructuran y se conectan los datos en todo el sistema. A medida que Midaz evoluciona, pueden agregarse nuevos campos y tablas.

## Tablas

***

Cada tabla está estructurada para soportar consultas eficientes e integridad de los datos, alineándose con el compromiso de Midaz con la escalabilidad y la flexibilidad.

### Tabla: `organization`

| Columna                  | Tipo          | Descripción                                                |
| :----------------------- | :------------ | :--------------------------------------------------------- |
| **id**                   | `uuid`        | Identificador único de la organización.                    |
| **legalName**            | `text`        | Razón social de la organización.                           |
| **parentOrganizationId** | `uuid`        | Identificador único de la organización padre.              |
| **doingBusinessAs**      | `text`        | Nombre comercial de la organización.                       |
| **legalDocument**        | `text`        | Documento legal de la organización.                        |
| **status**               | `jsonb`       | Información sobre el estado.                               |
| **address**              | `jsonb`       | Información sobre la dirección de la organización.         |
| **metadata**             | `jsonb`       | Pares clave-valor para añadir como metadatos.              |
| **createdAt**            | `timestamptz` | Marca de tiempo de la creación (UTC).                      |
| **updatedAt**            | `timestamptz` | Marca de tiempo de la última actualización (UTC).          |
| **deletedAt**            | `timestamptz` | Marca de tiempo de la eliminación lógica, si aplica (UTC). |

### Tabla: `ledger`

| Columna            | Tipo          | Descripción                                                |
| :----------------- | :------------ | :--------------------------------------------------------- |
| **id**             | `uuid`        | Identificador único del ledger.                            |
| **organizationId** | `uuid`        | Identificador único de la organización.                    |
| **name**           | `text`        | Nombre del ledger.                                         |
| **status**         | `jsonb`       | Información sobre el estado.                               |
| **metadata**       | `jsonb`       | Pares clave-valor para añadir como metadatos.              |
| **createdAt**      | `timestamptz` | Marca de tiempo de la creación (UTC).                      |
| **updatedAt**      | `timestamptz` | Marca de tiempo de la última actualización (UTC).          |
| **deletedAt**      | `timestamptz` | Marca de tiempo de la eliminación lógica, si aplica (UTC). |

### Tabla: `asset`

| Columna            | Tipo          | Descripción                                                                                             |
| ------------------ | ------------- | ------------------------------------------------------------------------------------------------------- |
| **id**             | `uuid`        | Identificador único del activo.                                                                         |
| **organizationId** | `uuid`        | Identificador único de la organización.                                                                 |
| **ledgerId**       | `uuid`        | Identificador único del ledger.                                                                         |
| **name**           | `text`        | Nombre del activo.                                                                                      |
| **type**           | `enum`        | Tipo de Activo (`currency` - moneda, `crypto` - cripto, `commodity` - materia prima, `others` - otros). |
| **code**           | `text`        | Código utilizado para referirse al activo.                                                              |
| **status**         | `text`        | Información sobre el estado.                                                                            |
| **metadata**       | `jsonb`       | Pares clave-valor para añadir como metadatos.                                                           |
| **createdAt**      | `timestamptz` | Marca de tiempo de la creación (UTC).                                                                   |
| **updatedAt**      | `timestamptz` | Marca de tiempo de la última actualización (UTC).                                                       |
| **deletedAt**      | `timestamptz` | Marca de tiempo de la eliminación lógica, si aplica (UTC).                                              |

### Tabla: `account-type`

| Columna         | Tipo          | Descripción                                                                     |
| --------------- | ------------- | ------------------------------------------------------------------------------- |
| **id**          | `uuid`        | Identificador único del tipo de cuenta.                                         |
| **ledgerId**    | `uuid`        | Identificador único del ledger.                                                 |
| **name**        | `text`        | Nombre del tipo de cuenta.                                                      |
| **description** | `text`        | Descripción del tipo de cuenta.                                                 |
| **keyValue**    | `text`        | Valor personalizado definido por el usuario para identificar el tipo de cuenta. |
| **createdAt**   | `timestamptz` | Marca de tiempo de la creación (UTC).                                           |
| **updatedAt**   | `timestamptz` | Marca de tiempo de la última actualización (UTC).                               |
| **deletedAt**   | `timestamptz` | Marca de tiempo de la eliminación lógica, si aplica (UTC).                      |

### Tabla: `account`

| Columna             | Tipo          | Descripción                                                 |
| ------------------- | ------------- | ----------------------------------------------------------- |
| **id**              | `uuid`        | Identificador único de la cuenta.                           |
| **organizationId**  | `uuid`        | Identificador único de la organización.                     |
| **ledgerId**        | `uuid`        | Identificador único del ledger.                             |
| **assetCode**       | `text`        | Código utilizado para referirse al activo.                  |
| **name**            | `text`        | Nombre de la cuenta.                                        |
| **alias**           | `text`        | Identificador único y fácil de usar para la cuenta.         |
| **type**            | `text`        | Tipo de cuenta.                                             |
| **parentAccountId** | `uuid`        | Identificador único de la cuenta principal.                 |
| **entityId**        | `text`        | Identificador único de la entidad responsable de la cuenta. |
| **portfolioId**     | `uuid`        | Identificador único de la cartera.                          |
| **segmentId**       | `uuid`        | Identificador único del segmento.                           |
| **status**          | `jsonb`       | Información sobre el estado.                                |
| **metadata**        | `jsonb`       | Pares clave-valor para añadir como metadatos.               |
| **createdAt**       | `timestamptz` | Marca de tiempo de la creación (UTC).                       |
| **updatedAt**       | `timestamptz` | Marca de tiempo de la última actualización (UTC).           |
| **deletedAt**       | `timestamptz` | Marca de tiempo de la eliminación lógica, si aplica (UTC).  |

### Tabla: `portfolio`

| Columna            | Tipo          | Descripción                                                |
| ------------------ | ------------- | ---------------------------------------------------------- |
| **id**             | `uuid`        | Identificador único de la cartera.                         |
| **organizationId** | `uuid`        | Identificador único de la organización.                    |
| **ledgerId**       | `uuid`        | Identificador único del ledger.                            |
| **entityId**       | `text`        | Identificador único del usuario responsable de la cartera. |
| **name**           | `text`        | Nombre de la cartera.                                      |
| **status**         | `jsonb`       | Información sobre el estado.                               |
| **metadata**       | `jsonb`       | Pares clave-valor para añadir como metadatos.              |
| **createdAt**      | `timestamptz` | Marca de tiempo de la creación (UTC).                      |
| **updatedAt**      | `timestamptz` | Marca de tiempo de la última actualización (UTC).          |
| **deletedAt**      | `timestamptz` | Marca de tiempo de la eliminación lógica, si aplica (UTC). |

### Tabla: `segment`

| Columna            | Tipo          | Descripción                                                |
| ------------------ | ------------- | ---------------------------------------------------------- |
| **id**             | `uuid`        | Identificador único del segmento.                          |
| **organizationId** | `uuid`        | Identificador único de la organización.                    |
| **ledgerId**       | `uuid`        | Identificador único del ledger.                            |
| **name**           | `text`        | Nombre del segmento.                                       |
| **status**         | `jsonb`       | Información sobre el estado.                               |
| **metadata**       | `jsonb`       | Pares clave-valor para añadir como metadatos.              |
| **created\_at**    | `timestamptz` | Marca de tiempo de la creación (UTC).                      |
| **updated\_at**    | `timestamptz` | Marca de tiempo de la última actualización (UTC).          |
| **deleted\_at**    | `timestamptz` | Marca de tiempo de la eliminación lógica, si aplica (UTC). |

### Tabla: `balance`

| Columna            | Tipo          | Descripción                                                   |
| ------------------ | ------------- | ------------------------------------------------------------- |
| **id**             | `text`        | Identificador único del saldo.                                |
| **organizationId** | `uuid`        | Identificador único de la organización.                       |
| **ledgerId**       | `uuid`        | Identificador único del ledger.                               |
| **accountId**      | `uuid`        | Identificador único de la cuenta.                             |
| **alias**          | `text`        | Alias de la cuenta utilizado en la operación.                 |
| **assetCode**      | `text`        | Código utilizado para referirse al activo.                    |
| **available**      | `text`        | Saldo disponible anterior.                                    |
| **onHold**         | `text`        | Monto en espera reservado.                                    |
| **version**        | `integer`     | Versión del saldo, que se actualiza con cada transacción.     |
| **accountType**    | `text`        | Tipo de cuenta.                                               |
| **allowSending**   | `boolean`     | Si es verdadero, indica que se permite enviar transacciones.  |
| **allowReceiving** | `boolean`     | Si es verdadero, indica que se permite recibir transacciones. |
| **createdAt**      | `timestamptz` | Marca de tiempo de la creación (UTC).                         |
| **updatedAt**      | `timestamptz` | Marca de tiempo de la última actualización (UTC).             |
| **deletedAt**      | `timestamptz` | Marca de tiempo de la eliminación lógica, si aplica (UTC).    |

### Tabla: `operation-route`

| Columna            | Tipo          | Descripción                                                                                                  |
| ------------------ | ------------- | ------------------------------------------------------------------------------------------------------------ |
| **id**             | `uuid`        | Identificador único de la ruta de operación.                                                                 |
| **organizationId** | `uuid`        | Identificador único de la organización.                                                                      |
| **ledgerId**       | `uuid`        | Identificador único del ledger.                                                                              |
| **title**          | `text`        | Texto breve que resume el propósito de la operación. Se utiliza como nota de entrada para la identificación. |
| **description**    | `text`        | Descripción detallada del propósito y uso de la Ruta de Operación.                                           |
| **operationType**  | `text`        | `operationType` — la aplicabilidad de la entrada: `source`, `destination` o `bidirectional`.                 |
| **account**        | `jsonb`       | Define la regla para seleccionar la cuenta que participará en la operación (débito o crédito).               |
| **createdAt**      | `timestamptz` | Marca de tiempo de la creación (UTC).                                                                        |
| **updatedAt**      | `timestamptz` | Marca de tiempo de la última actualización (UTC).                                                            |
| **deletedAt**      | `timestamptz` | Marca de tiempo de la eliminación lógica, si aplica (UTC).                                                   |

### Tabla: `operation`

| Columna                                                                 | Tipo          | Descripción                                                                                |
| ----------------------------------------------------------------------- | ------------- | ------------------------------------------------------------------------------------------ |
| **id**                                                                  | `uuid`        | Identificador único de la ruta de transacción.                                             |
| **transactionId**                                                       | `uuid`        | Identificador único de la transacción.                                                     |
| **organizationId**                                                      | `uuid`        | Identificador único de la organización.                                                    |
| **ledgerId**                                                            | `uuid`        | Identificador único del ledger.                                                            |
| **accountId**                                                           | `uuid`        | Identificador único de la cuenta de la que se desea recuperar los saldos.                  |
| **balanceId**                                                           | `uuid`        | Identificador único del saldo.                                                             |
| **accountAlias**                                                        | `text`        | Alias de la cuenta utilizado en la operación.                                              |
| **description**                                                         | `text`        | Descripción de la transacción.                                                             |
| **type**                                                                | `text`        | Tipo de la operación (débito o crédito).                                                   |
| **assetCode**                                                           | `text`        | Nombre del activo utilizado en la operación.                                               |
| <Icon icon="triangle-exclamation" color="#f1ba5c" />**chartOfAccounts** | `text`        | **\[Obsoleto]** Nombre del plan de cuentas al que pertenece la operación.                  |
| **route**                                                               | `text`        | Nombre del grupo del plan de cuentas que categoriza la operación bajo un grupo específico. |
| **amount**                                                              | `jsonb`       | Objeto que contiene información sobre el monto utilizado en la operación.                  |
| **balance**                                                             | `jsonb`       | Objeto que contiene información sobre el saldo antes de la operación.                      |
| **balanceAfter**                                                        | `jsonb`       | Objeto que contiene información sobre el saldo después de la operación.                    |
| **status**                                                              | `jsonb`       | Estado de la transacción (pendiente, completada, revertida).                               |
| **metadata**                                                            | `jsonb`       | Pares clave-valor para añadir como metadatos.                                              |
| **createdAt**                                                           | `timestamptz` | Marca de tiempo de la creación (UTC).                                                      |
| **updatedAt**                                                           | `timestamptz` | Marca de tiempo de la última actualización (UTC).                                          |
| **deletedAt**                                                           | `timestamptz` | Marca de tiempo de la eliminación lógica, si aplica (UTC).                                 |

**Campo obsoleto** — Este campo aún está presente por compatibilidad con versiones anteriores, pero ya no debe utilizarse.

### Tabla: `transaction-route`

| Columna             | Tipo          | Descripción                                                                                                    |
| ------------------- | ------------- | -------------------------------------------------------------------------------------------------------------- |
| **id**              | `uuid`        | Identificador único de la ruta de transacción.                                                                 |
| **organizationId**  | `uuid`        | Identificador único de la organización.                                                                        |
| **ledgerId**        | `uuid`        | Identificador único del ledger.                                                                                |
| **title**           | `text`        | Texto breve que resume el propósito de la transacción. Se utiliza como nota de entrada para la identificación. |
| **description**     | `text`        | Descripción de la ruta de transacción.                                                                         |
| **operationRoutes** | `array`       | Lista de IDs de rutas de operación que definen la lógica de débito y crédito para la transacción.              |
| **metadata**        | `object`      | Pares clave-valor para añadir como metadatos.                                                                  |
| **createdAt**       | `timestamptz` | Marca de tiempo de la creación (UTC).                                                                          |
| **updatedAt**       | `timestamptz` | Marca de tiempo de la última actualización (UTC).                                                              |
| **deletedAt**       | `timestamptz` | Marca de tiempo de la eliminación lógica, si aplica (UTC).                                                     |

### Tabla: `transaction`

| Columna                                                                          | Tipo          | Descripción                                                                                                         |
| -------------------------------------------------------------------------------- | ------------- | ------------------------------------------------------------------------------------------------------------------- |
| **id**                                                                           | `uuid`        | Identificador único de la transacción.                                                                              |
| **organizationId**                                                               | `uuid`        | Identificador único de la organización.                                                                             |
| **ledgerId**                                                                     | `uuid`        | Identificador único del ledger.                                                                                     |
| **description**                                                                  | `text`        | Descripción de la transacción.                                                                                      |
| **route**                                                                        | `text`        | Nombre del grupo del plan de cuentas que categoriza la operación bajo un grupo específico.                          |
| **status**                                                                       | `jsonb`       | Información sobre el estado.                                                                                        |
| **amount**                                                                       | `text`        | Monto enviado.                                                                                                      |
| **assetCode**                                                                    | `text`        | Código utilizado para referirse al Activo.                                                                          |
| <Icon icon="triangle-exclamation" color="#f1ba5c" />**chartOfAccountsGroupName** | `text`        | **\[Obsoleto]** Nombre del grupo utilizado para categorizar las operaciones de una transacción bajo el mismo grupo. |
| **source**                                                                       | `array`       | Lista de cuentas utilizadas como origen.                                                                            |
| **destination**                                                                  | `array`       | Lista de cuentas utilizadas como destino.                                                                           |
| **operations**                                                                   | `array`       | Lista de operaciones en la transacción.                                                                             |
| **metadata**                                                                     | `jsonb`       | Pares clave-valor para añadir como metadatos.                                                                       |
| **createdAt**                                                                    | `timestamptz` | Marca de tiempo de la creación (UTC).                                                                               |
| **updatedAt**                                                                    | `timestamptz` | Marca de tiempo de la última actualización (UTC).                                                                   |
| **deletedAt**                                                                    | `timestamptz` | Marca de tiempo de la eliminación lógica, si aplica (UTC).                                                          |

**Campo obsoleto** — Este campo aún está presente por compatibilidad con versiones anteriores, pero ya no debe utilizarse.

## Modelo de datos

***

En la *Figura 1*, puedes encontrar una representación visual de las tablas centrales en Midaz y sus relaciones. El diagrama ayuda a los desarrolladores y administradores de bases de datos a comprender cómo las diferentes entidades están interconectadas dentro del sistema, sirviendo como guía para la gestión e integración eficiente de datos.

<Frame caption="Figura 1. Tablas de Midaz y sus relaciones.">
  <img src="https://mintcdn.com/lerian-49cb71fc/ZrZBZTM4DWnrahSd/images/es/d2/midaz-data-model-v3.svg?fit=max&auto=format&n=ZrZBZTM4DWnrahSd&q=85&s=d557f02c0494c5fc81b38c1f10e9a0ba" alt="Tablas principales de la base de datos de Midaz y las relaciones entre ellas, como referencia para el manejo de datos y la integración" width="2845" height="3834" data-path="images/es/d2/midaz-data-model-v3.svg" />
</Frame>
