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

# Monto de la transacción

> Usa el nuevo campo numeric para registrar montos de Transacción con precisión arbitraria — sin desajustes de escala ni errores de redondeo.

Midaz ahora utiliza un modelo preciso y simplificado para almacenar valores financieros al adoptar el tipo `numeric` de PostgreSQL. Este cambio reemplaza la estructura anterior de `amount` y `scale` y marca un paso importante hacia la mejora de la precisión, la escalabilidad y la experiencia del desarrollador en todas las operaciones financieras.

## ¿Qué hay de nuevo?

***

Anteriormente, Midaz almacenaba valores monetarios utilizando:

* `amount` (*monto*): un entero sin procesar (*raw integer*)
* `scale` (*escala*): el número de decimales

Por ejemplo:

R\$1.00 → `amount = 100`, `scale = 2`

Este modelo ha sido reemplazado por un campo único, más preciso y simplificado:

* `value` (*valor*): una cadena (*string*) que representa un número decimal (p. ej., `"12.50"` se almacena exactamente como `"12.50"`)

<Danger>
    El `value` debe enviarse como una **cadena (*string*)** en las solicitudes de API — no como un flotante (*float*) o un entero — para garantizar la **precisión arbitraria** y evitar errores de redondeo que a menudo ocurren con las representaciones de punto flotante en las operaciones financieras.
</Danger>

Esta nueva estructura elimina los desajustes de escala, simplifica la lógica de integración y garantiza una precisión constante en todos los tipos de activos, desde monedas fiduciarias hasta *tokens* criptográficos de alta precisión.

## Por qué esto es importante

***

La migración a `numeric` elimina varias limitaciones del modelo anterior:

* **No más normalización de escala**: No es necesario alinear manualmente los decimales antes de realizar operaciones.
* **Lógica previa a la transacción más simple**: Las comprobaciones de saldo y las reservas se vuelven sencillas, sin necesidad de ajustes de escala.
* **Experiencia de API más limpia**: Envía y recibe valores en su forma decimal exacta, sin preocuparte por las conversiones de enteros.
* **Precisión dinámica**: La base de datos almacena solo los dígitos decimales necesarios, sin relleno ni truncamiento.

Ejemplo:

* `value = "12.50"` se almacena y se devuelve exactamente como `"12.50"`, sin transformaciones ni pérdida de precisión.

## ¿Qué debo hacer?

***

<Danger>
    El formato `amount + scale` ahora está **obsoleto (*deprecated*)**.
</Danger>

Todas las nuevas integraciones y llamadas a la API deben usar el nuevo campo `value`. Si actualmente estás utilizando `amount` y `scale`, es importante **comenzar tu proceso de migración de inmediato**.

Midaz continuará soportando el formato anterior **temporalmente**, pero **el soporte se suspenderá en una versión futura**.

Recomendamos:

1. Actualizar tus solicitudes de API para enviar el campo `value` como un decimal.
2. Revisar cualquier lógica de normalización interna y eliminar las referencias a `amount` y `scale`.
3. Probar flujos clave —como transferencias, pre-transacciones y cálculos de tarifas— utilizando el nuevo formato.

### ¿Necesitas ayuda para migrar?

Nuestro equipo está aquí para ayudarte. Ya sea que necesites ayuda para actualizar tu integración o para validar la consistencia de los datos, estamos listos para apoyarte durante la transición.

<Note>
    El formato anterior `amount` y `scale` seguirá siendo compatible durante un período de obsolescencia. Se anunciará un cronograma formal para la descontinuación. Mientras tanto, se recomienda encarecidamente a los clientes que adopten la nueva estructura lo antes posible.
</Note>
