Skip to main content

Fluxo completo

1

Crie um link de pagamento

const link = await pagozz.links.create({
  name: 'Pedido #1234',
  amount: 5000,
  value_mode: 'fixed',
  payment_methods: ['pix'],
});
2

Gere a cobrança PIX

const payment = await pagozz.payments.createPix({
  link_id: link.id,
  payer: {
    email: 'cliente@email.com',
    cpf: '12345678900',
    name: 'João Silva',
  },
});

// payment.br_code     → código copia e cola
// payment.qr_code_image → QR code em base64
// payment.expires_at   → expiração (15 min)
3

Exiba o QR Code

Mostre o qr_code_image (base64) e o br_code (copia e cola) para o pagador.
4

Receba a confirmação via webhook

O Pagozz envia payment.succeeded quando o PIX é confirmado.

Consultar status

const status = await pagozz.payments.get('transaction-id');

// status.status pode ser: 'pending', 'paid', 'expired'

Idempotência

Use idempotencyKey para evitar cobranças duplicadas:
const payment = await pagozz.payments.createPix(
  {
    link_id: 'link-id',
    payer: { email: 'cliente@email.com', cpf: '12345678900' },
  },
  { idempotencyKey: 'pedido-1234' }
);
Se a mesma chave for enviada novamente, o Pagozz retorna o pagamento existente.

Expiração

O QR Code PIX expira em 15 minutos. Se expirar:
  • O pagador pode gerar um novo QR code acessando o link novamente
  • Um evento payment.expired é disparado
  • O status muda para expired

Proteções automáticas

  • Auto-pagamento bloqueado: o merchant não pode pagar seus próprios links
  • Deduplicação: se o mesmo pagador já tem uma cobrança pendente no mesmo link, a cobrança existente é retornada