Pagamentos

QR Code

Cada cobrança expõe um endpoint que gera a imagem do QR Code PIX. Ele retorna um PNG pronto — sem JSON, sem base64 — ideal para colocar direto num <img>.

GET/api/v1/charges/:id/qrcode

A resposta é a imagem PNG do BR Code da cobrança (Content-Type: image/png). O qrcode_url retornado ao criar a cobrança já aponta exatamente para este endpoint.

Exibir no navegador

Como o endpoint devolve uma imagem, você pode usá-lo direto no src de um <img>:

HTML
<img
  src="https://api.verdin.com.br/api/v1/charges/clx7a1b2c3d4e5f6g7h8i9j0k/qrcode"
  alt="QR Code PIX"
  width="256"
  height="256"
/>
Prefere não expor a URL da API no front-end? Sirva o QR pela sua própria rota (proxy) ou renderize o brcode como QR no seu app. A página de pagamento (payment_url) hospedada pela Verdin já mostra o QR pronto, sem código.

Baixar a imagem

Para salvar o PNG no servidor, leia a resposta como binário:

cURL
curl "https://api.verdin.com.br/api/v1/charges/clx7a1b2c3d4e5f6g7h8i9j0k/qrcode" \
  -H "Authorization: Bearer vrd_live_..." \
  --output qrcode.png
Node.js
import { writeFile } from "node:fs/promises";

const id = "clx7a1b2c3d4e5f6g7h8i9j0k";
const res = await fetch(
  `https://api.verdin.com.br/api/v1/charges/${id}/qrcode`,
  { headers: { Authorization: `Bearer ${process.env.VERDIN_API_KEY}` } },
);

const buffer = Buffer.from(await res.arrayBuffer());
await writeFile("qrcode.png", buffer); // PNG salvo em disco