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
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"
)
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.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.
value = "12.50"
se almacena y se devuelve exactamente como"12.50"
, sin transformaciones ni pérdida de precisión.
¿Qué debo hacer?
El formato
amount + scale
ahora está obsoleto (deprecated).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:
- Actualizar tus solicitudes de API para enviar el campo
value
como un decimal. - Revisar cualquier lógica de normalización interna y eliminar las referencias a
amount
yscale
. - 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. 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.