Saltar al contenido principal
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")
  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.
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?


  El formato amount + scale ahora está obsoleto (deprecated).
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.
  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.
I