Tablas
Cada tabla está estructurada para admitir consultas eficientes e integridad de datos, alineándose con el compromiso de Midaz con la escalabilidad y flexibilidad.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 padre. |
| 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 última actualización (UTC). |
| deletedAt | timestamptz | Marca de tiempo de eliminación suave, si aplica (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 última actualización (UTC). |
| deletedAt | timestamptz | Marca de tiempo de eliminación suave, si aplica (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, crypto, commodity, others). |
| code | text | El código utilizado 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 última actualización (UTC). |
| deletedAt | timestamptz | Marca de tiempo de eliminación suave, si aplica (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 última actualización (UTC). |
| deletedAt | timestamptz | Marca de tiempo de eliminación suave, si aplica (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 última actualización (UTC). |
| deleted_at | timestamptz | Marca de tiempo de eliminación suave, si aplica (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 utilizado para referirse al Activo. |
| name | text | El nombre de la Cuenta. |
| alias | text | Un identificador único y amigable 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 última actualización (UTC). |
| deletedAt | timestamptz | Marca de tiempo de eliminación suave, si aplica (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 utilizado en la operación. |
| assetCode | text | El código utilizado para referirse al Activo. |
| available | integer | Saldo disponible anterior. |
| onHold | integer | Cantidad en espera/reservada. |
| scale | integer | El número de decimales utilizados para mostrar el saldo. |
| version | integer | Versión del saldo, que se actualiza con cada transacción. |
| accountType | text | El tipo de cuenta. |
| allowSending | boolean | Si es verdadero, indica que se permiten transacciones de envío. |
| allowReceiving | boolean | Si es verdadero, indica que se permiten transacciones de recepción. |
| createdAt | timestamptz | Marca de tiempo de creación (UTC). |
| updatedAt | timestamptz | Marca de tiempo de última actualización (UTC). |
| deletedAt | timestamptz | Marca de tiempo de eliminación suave, si aplica (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. |
| template | text | El identificador único de la plantilla si la transacción usa plantilla. |
| status | jsonb | Información sobre el estado. |
| amount | integer | El monto enviado. |
| amountScale | integer | El número de decimales utilizados para mostrar el monto. |
| assetCode | text | El código utilizado para referirse al Activo. |
| chartOfAccountsGroupName | text | El nombre del grupo utilizado para categorizar las operaciones de una transacción bajo el mismo grupo. |
| source | array | La lista de cuentas utilizadas como origen. |
| destination | array | La lista de cuentas utilizadas 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 última actualización (UTC). |
| deletedAt | timestamptz | Marca de tiempo de eliminación suave, si aplica (UTC). |
Modelo de datos
En la Figura 1, puede encontrar una representación visual de las tablas principales 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 el manejo e integración eficiente de datos.
Figura 1. Tablas de Midaz y sus relaciones.

