Os valores aqui são inteiros em centavos: R$ 100,00 se envia como
10000. Decimais são
recusados com 422, e o porquê está em Valores em centavos.1
Crie a cobrança com a sua referência
Gere a A resposta vem com
Idempotency-Key antes da chamada e grave-a junto do pedido. Envie reference com o seu
identificador — é o que permite reencontrar a cobrança depois sem guardar o id que devolvemos.status: "pending". O QR existe; ninguém pagou nada ainda.2
Renderize o QR a partir do payload
A resposta traz
pix.qr_code, o payload copia-e-cola. A imagem não é devolvida: ela é derivada
do payload na hora de exibir, e mandar um PNG em base64 em toda resposta multiplicaria o corpo por
algo que você gera localmente em milissegundos.Use qualquer biblioteca de QR code — endroid/qr-code em PHP, qrcode em Node, qrcode em Python.
Mostre também o payload como texto, com um botão de copiar: muita gente paga colando no aplicativo
do banco em vez de apontar a câmera.Exiba o vencimento a partir de pix.expires_at.3
Aja no charge.paid, nunca antes
No seu endpoint de webhook: confira a assinatura, grave o evento, responda
200, processe em fila.
O passo a passo está em Verificar a assinatura e
Entregas e retentativas.Depois da assinatura conferida
4
Mantenha uma rede de segurança
Webhook é entrega pela rede, e rede falha. Se o seu endpoint ficou fora do ar durante as
retentativas, o pedido fica pendente para sempre.Uma tarefa periódica que consulta as cobranças Faça o polling espaçado, não em laço apertado — a cota de leitura é por chave, e gastá-la aqui
deixa o resto da sua integração sem cota. Ver Limites de requisição.
pending mais antigas que alguns minutos resolve:5
Trate o que expira
Uma cobrança
expired não pode ser paga nem estornada. Se o comprador voltar, crie outra
cobrança, com uma Idempotency-Key nova — é uma tentativa nova de verdade, e reusar a chave antiga
devolveria a cobrança vencida.Veja também
Conciliação
Fechar o dia e casar tudo com os seus pedidos.
Ciclo de vida
Os sete estados e quando agir em cada um.
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.