Skip to main content
Uma regra só, e ela vale para todos os campos de dinheiro: centavos inteiros. R$ 100,00 se envia como 10000. Isso significa que você nunca precisa se perguntar qual formato um campo espera. amount, platform_fee, net_amount, refunded_amount, fee_returned, seller_debit, balance, available, reserved, debt e withdrawable seguem todos a mesma convenção.
Cobrança de 10000 centavos (R$ 100,00)

Por que não aceitamos decimal

Enviar 10.50 devolve 422, e a explicação vale o minuto de leitura — ela é o motivo de a regra existir. Um decimal chega ao servidor como ponto flutuante, e ponto flutuante binário não representa a maioria dos valores decimais exatamente. A multiplicação por 100 herda esse erro. Os números abaixo são reais, e o resultado é o mesmo em PHP, JavaScript e Python, porque os três usam IEEE 754 de 64 bits: Um centavo a menos por venda não aparece no dia. Ele aparece semanas depois, na conciliação do mês, como uma diferença que não fecha e cuja origem já se perdeu. Recusar o decimal na entrada é o que poupa você dessa investigação — preferimos devolver um erro claro agora a entregar um número silenciosamente errado.

Como converter sem errar

A regra que resolve o problema na origem: não deixe o valor virar float. Se ele já é um decimal na sua mão, arredonde explicitamente em vez de truncar.
Para exibir ao comprador, faça o caminho inverso só na hora de renderizar — divida por 100 na camada de apresentação e mantenha o inteiro em todo o resto do sistema.

O que dá errado

validation_failed
Enviar items não dispensa amount. A soma de quantity * amount de todos os itens precisa bater exatamente com o amount da cobrança — sem essa conferência, o comprador veria um total diferente da soma do que está levando.

Veja também

Erros

O catálogo completo de códigos e o que fazer em cada um.

Estornos

A aritmética de amount, fee_returned e seller_debit.

Ficou algo de fora? Escreva para suporte@usevext.com. Se o assunto for uma chamada específica, informe o horário dela; se for uma entrega de webhook, informe o X-Vext-Delivery — é por ele que localizamos a tentativa, a resposta do seu servidor e o horário.