> ## 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 los esquemas principales que dan soporte a Midaz, diseñado para desarrolladores y administradores de bases de datos que trabajan cerca de los datos.

<Tip>
  **Esta página es para desarrolladores y administradores de bases de datos.** Contiene esquemas de bases de datos y estructuras de tablas detalladas. Para obtener una descripción general a nivel de negocio de las entidades de Midaz y sus relaciones, consulta [Acerca de Midaz](/es/products/midaz/about-midaz).
</Tip>

Explora las tablas y los esquemas principales que dan soporte a Midaz. A medida que Midaz evoluciona, puede agregar nuevos campos y tablas.

## Tablas

***

### Tabla: `organization`

| Columna                  | Tipo          | Descripción                                                       |
| :----------------------- | :------------ | :---------------------------------------------------------------- |
| **id**                   | `uuid`        | El identificador único de la Organización.                        |
| **legalName**            | `text`        | El nombre legal de la Organización.                               |
| **parentOrganizationId** | `uuid`        | El identificador único de la Organización principal.              |
| **doingBusinessAs**      | `text`        | El nombre comercial de la Organización.                           |
| **legalDocument**        | `text`        | El documento 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 agregar como metadatos.                    |
| **createdAt**            | `timestamptz` | Marca de tiempo de creación (UTC).                                |
| **updatedAt**            | `timestamptz` | Marca de tiempo de la última actualización (UTC).                 |
| **deletedAt**            | `timestamptz` | La marca de tiempo de eliminación temporal, si corresponde (UTC). |

### Tabla: `ledger`

| Columna            | Tipo          | Descripción                                                    |
| :----------------- | :------------ | :------------------------------------------------------------- |
| **id**             | `uuid`        | El identificador único del Ledger.                             |
| **organizationId** | `uuid`        | El identificador único de la Organización.                     |
| **name**           | `text`        | El nombre del Ledger.                                          |
| **status**         | `jsonb`       | Información sobre el estado.                                   |
| **metadata**       | `jsonb`       | Pares clave-valor para agregar como metadatos.                 |
| **createdAt**      | `timestamptz` | Marca de tiempo de creación (UTC).                             |
| **updatedAt**      | `timestamptz` | Marca de tiempo de la última actualización (UTC).              |
| **deletedAt**      | `timestamptz` | Marca de tiempo de eliminación temporal, si corresponde (UTC). |

### Tabla: `asset`

| Columna            | Tipo          | Descripción                                                              |
| :----------------- | :------------ | :----------------------------------------------------------------------- |
| **id**             | `uuid`        | El identificador único del Activo.                                       |
| **organizationId** | `uuid`        | El identificador único de la Organización.                               |
| **ledgerId**       | `uuid`        | El identificador único del Ledger.                                       |
| **name**           | `text`        | El nombre del Activo.                                                    |
| **type**           | `enum`        | El tipo de Activo (`currency`, `fiat`, `crypto`, `commodity`, `others`). |
| **code**           | `text`        | El código usado para referirse al Activo.                                |
| **status**         | `text`        | Información sobre el estado.                                             |
| **metadata**       | `jsonb`       | Pares clave-valor para agregar como metadatos.                           |
| **createdAt**      | `timestamptz` | Marca de tiempo de creación (UTC).                                       |
| **updatedAt**      | `timestamptz` | Marca de tiempo de la última actualización (UTC).                        |
| **deletedAt**      | `timestamptz` | Marca de tiempo de eliminación temporal, si corresponde (UTC).           |

### Tabla: `account-type`

| Columna         | Tipo          | Descripción                                                                     |
| :-------------- | :------------ | :------------------------------------------------------------------------------ |
| **id**          | `uuid`        | El identificador único del Tipo de cuenta.                                      |
| **ledgerId**    | `uuid`        | El 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 creación (UTC).                                              |
| **updatedAt**   | `timestamptz` | Marca de tiempo de la última actualización (UTC).                               |
| **deletedAt**   | `timestamptz` | Marca de tiempo de eliminación temporal, si corresponde (UTC).                  |

### Tabla: `account`

| Columna             | Tipo          | Descripción                                                    |
| :------------------ | :------------ | :------------------------------------------------------------- |
| **id**              | `uuid`        | El identificador único de la Cuenta.                           |
| **organizationId**  | `uuid`        | El identificador único de la Organización.                     |
| **ledgerId**        | `uuid`        | El identificador único del Ledger.                             |
| **assetCode**       | `text`        | El código usado para referirse al Activo.                      |
| **name**            | `text`        | El nombre de la Cuenta.                                        |
| **alias**           | `text`        | Un identificador único y fácil de usar para la cuenta.         |
| **type**            | `text`        | El tipo de cuenta.                                             |
| **parentAccountId** | `uuid`        | El identificador único de la Cuenta principal.                 |
| **entityId**        | `text`        | El identificador único de la Entidad responsable de la Cuenta. |
| **portfolioId**     | `uuid`        | El identificador único del Portafolio.                         |
| **segmentId**       | `uuid`        | El identificador único del Segmento.                           |
| **status**          | `jsonb`       | Información sobre el estado.                                   |
| **metadata**        | `jsonb`       | Pares clave-valor para agregar como metadatos.                 |
| **createdAt**       | `timestamptz` | Marca de tiempo de creación (UTC).                             |
| **updatedAt**       | `timestamptz` | Marca de tiempo de la última actualización (UTC).              |
| **deletedAt**       | `timestamptz` | Marca de tiempo de eliminación temporal, si corresponde (UTC). |

### Tabla: `portfolio`

| Columna            | Tipo          | Descripción                                                    |
| :----------------- | :------------ | :------------------------------------------------------------- |
| **id**             | `uuid`        | El identificador único del Portafolio.                         |
| **organizationId** | `uuid`        | El identificador único de la Organización.                     |
| **ledgerId**       | `uuid`        | El identificador único del Ledger.                             |
| **entityId**       | `text`        | El identificador único del usuario responsable del Portafolio. |
| **name**           | `text`        | El nombre del Portafolio.                                      |
| **status**         | `jsonb`       | Información sobre el estado.                                   |
| **metadata**       | `jsonb`       | Pares clave-valor para agregar como metadatos.                 |
| **createdAt**      | `timestamptz` | Marca de tiempo de creación (UTC).                             |
| **updatedAt**      | `timestamptz` | Marca de tiempo de la última actualización (UTC).              |
| **deletedAt**      | `timestamptz` | Marca de tiempo de eliminación temporal, si corresponde (UTC). |

### Tabla: `segment`

| Columna            | Tipo          | Descripción                                                    |
| :----------------- | :------------ | :------------------------------------------------------------- |
| **id**             | `uuid`        | El identificador único del Segmento.                           |
| **organizationId** | `uuid`        | El identificador único de la Organización.                     |
| **ledgerId**       | `uuid`        | El identificador único del Ledger.                             |
| **name**           | `text`        | El nombre del Segmento.                                        |
| **status**         | `jsonb`       | Información sobre el estado.                                   |
| **metadata**       | `jsonb`       | Pares clave-valor para agregar como metadatos.                 |
| **created\_at**    | `timestamptz` | Marca de tiempo de creación (UTC).                             |
| **updated\_at**    | `timestamptz` | Marca de tiempo de la última actualización (UTC).              |
| **deleted\_at**    | `timestamptz` | Marca de tiempo de eliminación temporal, si corresponde (UTC). |

### Tabla: `balance`

| Columna            | Tipo          | Descripción                                                    |
| :----------------- | :------------ | :------------------------------------------------------------- |
| **id**             | `text`        | El identificador único del Saldo.                              |
| **organizationId** | `uuid`        | El identificador único de la Organización.                     |
| **ledgerId**       | `uuid`        | El identificador único del Ledger.                             |
| **accountId**      | `uuid`        | El identificador único de la Cuenta.                           |
| **alias**          | `text`        | El alias de la cuenta usado en la operación.                   |
| **assetCode**      | `text`        | El código usado para referirse al Activo.                      |
| **available**      | `text`        | Saldo disponible anterior.                                     |
| **onHold**         | `text`        | Monto retenido/reservado.                                      |
| **version**        | `integer`     | Versión del saldo, que se actualiza con cada transacción.      |
| **accountType**    | `text`        | El tipo de cuenta.                                             |
| **allowSending**   | `boolean`     | Si es true, indica que se permite enviar transacciones.        |
| **allowReceiving** | `boolean`     | Si es true, indica que se permite recibir transacciones.       |
| **createdAt**      | `timestamptz` | Marca de tiempo de creación (UTC).                             |
| **updatedAt**      | `timestamptz` | Marca de tiempo de la última actualización (UTC).              |
| **deletedAt**      | `timestamptz` | Marca de tiempo de eliminación temporal, si corresponde (UTC). |

### Tabla: `operation-route`

| Columna            | Tipo          | Descripción                                                                                            |
| :----------------- | :------------ | :----------------------------------------------------------------------------------------------------- |
| **id**             | `uuid`        | El identificador único de la Ruta de operación.                                                        |
| **organizationId** | `uuid`        | El identificador único de la Organización.                                                             |
| **ledgerId**       | `uuid`        | El identificador único del Ledger.                                                                     |
| **title**          | `text`        | Texto breve que resume el propósito de la operación. Se usa como nota del asiento para identificación. |
| **description**    | `text`        | Descripción detallada del propósito y uso de la Ruta de operación.                                     |
| **operationType**  | `text`        | `operationType`: la aplicabilidad del asiento: `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 creación (UTC).                                                                     |
| **updatedAt**      | `timestamptz` | Marca de tiempo de la última actualización (UTC).                                                      |
| **deletedAt**      | `timestamptz` | Marca de tiempo de eliminación temporal, si corresponde (UTC).                                         |

### Tabla: `operation`

| Columna                                                       | Tipo          | Descripción                                                                                                                             |
| :------------------------------------------------------------ | :------------ | :-------------------------------------------------------------------------------------------------------------------------------------- |
| **id**                                                        | `uuid`        | El identificador único de la Operación.                                                                                                 |
| **transactionId**                                             | `uuid`        | El identificador único de la Transacción.                                                                                               |
| **organizationId**                                            | `uuid`        | El identificador único de la Organización.                                                                                              |
| **ledgerId**                                                  | `uuid`        | El identificador único del Ledger.                                                                                                      |
| **accountId**                                                 | `uuid`        | El identificador único de la cuenta de la cual quieres obtener los saldos.                                                              |
| **balanceId**                                                 | `uuid`        | El identificador único del Saldo.                                                                                                       |
| **accountAlias**                                              | `text`        | El alias de la cuenta usado en la operación.                                                                                            |
| **description**                                               | `text`        | Descripción de la transacción.                                                                                                          |
| **type**                                                      | `text`        | El tipo de la operación (débito o crédito).                                                                                             |
| **assetCode**                                                 | `text`        | El nombre del activo usado en la operación.                                                                                             |
| **chartOfAccounts**                                           | `text`        | El nombre del plan de cuentas al que pertenece la operación.                                                                            |
| <Icon icon="triangle-exclamation" color="#f1ba5c" />**route** | `text`        | **\[Obsoleto]** Identificador de ruta heredado, que se mantiene por compatibilidad con versiones anteriores. Usa `routeId` en su lugar. |
| **routeId**                                                   | `uuid`        | Identificador de la ruta usada por la operación (el campo de ruta actual).                                                              |
| **amount**                                                    | `jsonb`       | Un objeto que contiene información sobre el monto usado en la operación.                                                                |
| **balance**                                                   | `jsonb`       | Un objeto que contiene información sobre el saldo antes de la operación.                                                                |
| **balanceAfter**                                              | `jsonb`       | Un objeto que contiene información sobre el saldo después de la operación.                                                              |
| **status**                                                    | `jsonb`       | El estado de la transacción (pending, completed, reversed).                                                                             |
| **metadata**                                                  | `jsonb`       | Pares clave-valor para agregar como metadatos.                                                                                          |
| **createdAt**                                                 | `timestamptz` | Marca de tiempo de creación (UTC).                                                                                                      |
| **updatedAt**                                                 | `timestamptz` | Marca de tiempo de la última actualización (UTC).                                                                                       |
| **deletedAt**                                                 | `timestamptz` | Marca de tiempo de eliminación temporal, si corresponde (UTC).                                                                          |

**Campo obsoleto**: Este campo se mantiene por compatibilidad con versiones anteriores. No lo uses.

### Tabla: `transaction-route`

| Columna             | Tipo          | Descripción                                                                                              |
| :------------------ | :------------ | :------------------------------------------------------------------------------------------------------- |
| **id**              | `uuid`        | El identificador único de la Ruta de transacción.                                                        |
| **organizationId**  | `uuid`        | El identificador único de la Organización.                                                               |
| **ledgerId**        | `uuid`        | El identificador único del Ledger.                                                                       |
| **title**           | `text`        | Texto breve que resume el propósito de la transacción. Se usa como nota del asiento para identificación. |
| **description**     | `text`        | Una descripción para la Ruta de transacción.                                                             |
| **operationRoutes** | `array`       | Una lista de ID de Ruta de operación que definen la lógica de débito y crédito de la transacción.        |
| **metadata**        | `object`      | Pares clave-valor para agregar como metadatos.                                                           |
| **createdAt**       | `timestamptz` | Marca de tiempo de creación (UTC).                                                                       |
| **updatedAt**       | `timestamptz` | Marca de tiempo de la última actualización (UTC).                                                        |
| **deletedAt**       | `timestamptz` | Marca de tiempo de eliminación temporal, si corresponde (UTC).                                           |

### Tabla: `transaction`

| Columna                                                       | Tipo          | Descripción                                                                                                                             |
| :------------------------------------------------------------ | :------------ | :-------------------------------------------------------------------------------------------------------------------------------------- |
| **id**                                                        | `uuid`        | El identificador único de la transacción.                                                                                               |
| **organizationId**                                            | `uuid`        | El identificador único de la Organización.                                                                                              |
| **ledgerId**                                                  | `uuid`        | El identificador único del Ledger.                                                                                                      |
| **description**                                               | `text`        | Descripción de la transacción.                                                                                                          |
| <Icon icon="triangle-exclamation" color="#f1ba5c" />**route** | `text`        | **\[Obsoleto]** Identificador de ruta heredado, que se mantiene por compatibilidad con versiones anteriores. Usa `routeId` en su lugar. |
| **routeId**                                                   | `uuid`        | Identificador de la ruta usada por la transacción (el campo de ruta actual).                                                            |
| **status**                                                    | `jsonb`       | Información sobre el estado.                                                                                                            |
| **amount**                                                    | `text`        | El monto enviado.                                                                                                                       |
| **assetCode**                                                 | `text`        | El código usado para referirse al Activo.                                                                                               |
| **chartOfAccountsGroupName**                                  | `text`        | El nombre del grupo del plan de cuentas usado para categorizar las operaciones de una transacción.                                      |
| **source**                                                    | `array`       | La lista de cuentas usadas como origen.                                                                                                 |
| **destination**                                               | `array`       | La lista de cuentas usadas como destino.                                                                                                |
| **operations**                                                | `array`       | La lista de operaciones en la transacción.                                                                                              |
| **metadata**                                                  | `jsonb`       | Pares clave-valor para agregar como metadatos.                                                                                          |
| **createdAt**                                                 | `timestamptz` | Marca de tiempo de creación (UTC).                                                                                                      |
| **updatedAt**                                                 | `timestamptz` | Marca de tiempo de la última actualización (UTC).                                                                                       |
| **deletedAt**                                                 | `timestamptz` | Marca de tiempo de eliminación temporal, si corresponde (UTC).                                                                          |

**Campo obsoleto**: Este campo se mantiene por compatibilidad con versiones anteriores. No lo uses.

## Modelo de datos

***

La *Figura 1* muestra las tablas principales de Midaz y sus relaciones. Úsala para guiar el manejo de datos y la integración.

<Frame caption="Figura 1. Tablas de Midaz y sus relaciones.">
  <img src="https://mintcdn.com/lerian-49cb71fc/vdBt8wfgjsNRO1rf/images/es/d2/midaz-data-model-v3.svg?fit=max&auto=format&n=vdBt8wfgjsNRO1rf&q=85&s=3deedc5aee75eafd9adac69533ba404a" 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="2800" height="3834" data-path="images/es/d2/midaz-data-model-v3.svg" />
</Frame>
