Pular para o conteúdo principal
O Midaz agora utiliza um modelo preciso e simplificado para armazenar valores financeiros ao adotar o tipo numeric do PostgreSQL. Essa mudança substitui a estrutura anterior de amount e scale e marca um passo importante para melhorar a precisão, escalabilidade e experiência do desenvolvedor em todas as operações financeiras.

O que há de novo?


Anteriormente, o Midaz armazenava valores monetários usando:
  • amount: um inteiro bruto
  • scale: o número de casas decimais
Por exemplo: R$1,00 → amount = 100, scale = 2 Este modelo foi substituído por um único campo mais preciso e simplificado:
  • value: uma string representando um número decimal (ex.: "12.50" é armazenado exatamente como "12.50")
O value deve ser enviado como uma string nas requisições da API — não como float ou inteiro — para garantir precisão arbitrária e evitar erros de arredondamento que frequentemente ocorrem com representações de ponto flutuante em operações financeiras.
Essa nova estrutura elimina incompatibilidades de escala, simplifica a lógica de integração e garante precisão consistente em todos os tipos de ativos — de moedas fiduciárias a tokens crypto de alta precisão.

Por que isso importa


A migração para numeric elimina diversas limitações do modelo anterior:
  • Sem necessidade de normalização de escala: Não é preciso alinhar casas decimais manualmente antes de realizar operações.
  • Lógica pré-transação mais simples: Verificações de saldo e reservas se tornam diretas — sem ajustes de escala necessários.
  • Experiência de API mais limpa: Envie e receba valores em sua forma decimal exata, sem se preocupar com conversões de inteiros.
  • Precisão dinâmica: O banco de dados armazena apenas os dígitos decimais necessários — sem padding ou truncamento.
Exemplo:
  • value = "12.50" é armazenado e retornado exatamente como "12.50", sem transformações ou perda de precisão.

O que devo fazer?


O formato amount + scale agora está descontinuado.
Todas as novas integrações e chamadas de API devem usar o novo campo value. Se você está atualmente usando amount e scale, é importante iniciar seu processo de migração imediatamente. O Midaz continuará suportando o formato antigo temporariamente, mas o suporte será descontinuado em uma versão futura. Recomendamos:
  1. Atualizar suas requisições de API para enviar o campo value como decimal.
  2. Revisar qualquer lógica de normalização interna e remover referências a amount e scale.
  3. Testar fluxos principais — como transferências, pré-transações e cálculos de taxas — usando o novo formato.

Precisa de ajuda na migração?

Nossa equipe está aqui para ajudar. Se você precisa de ajuda para atualizar sua integração ou validar a consistência dos dados, estamos prontos para apoiar você durante a transição.
O formato anterior de amount e scale continuará sendo suportado durante uma janela de descontinuação. Um cronograma formal para a descontinuação será anunciado. Enquanto isso, clientes são fortemente encorajados a adotar a nova estrutura o mais rápido possível.