Skip to main content
Uma cobrança nasce pending e caminha para um estado do qual não volta.

partially_refunded é estado próprio

Uma venda devolvida pela metade fica partially_refunded, e não refunded. A distinção existe porque tratar as duas como a mesma coisa faria o seu relatório descontar o valor inteiro de uma venda que só voltou pela metade. O quanto voltou está em refunded_amount, acumulado entre estornos parciais; o que ainda cabe estornar é amount - refunded_amount.

Expiração

expires_in é a validade do QR, em segundos. O piso de 60 s evita uma cobrança que expira antes de o comprador abrir o aplicativo do banco. O horário exato do vencimento volta em pix.expires_at. Uma cobrança expired não pode ser paga nem estornada. Para tentar de novo, crie outra — com uma Idempotency-Key nova, já que é uma tentativa nova de verdade.

Em qual estado agir

O momento de liberar o produto é o charge.paid, não a resposta de POST /v1/charges. A criação devolve pending — o QR já existe, mas o pagamento ainda não aconteceu.
As datas contam a história e vêm null até acontecerem: created_at, paid_at, expired_at, refunded_at.

Veja também

Checkout PIX

O fluxo inteiro, da criação à liberação do produto.

Estornos

O que acontece depois de paid.

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.