Skip to main content

Fluxo completo

1

Crie um link de pagamento

O link deve incluir credit_card nos métodos de pagamento.
const link = await pagozz.links.create({
  name: 'Curso Online',
  amount: 19900,
  value_mode: 'fixed',
  payment_methods: ['pix', 'credit_card'],
});
2

Envie os dados do cartão

const payment = await pagozz.payments.createCard({
  link_id: link.id,
  payer: {
    email: 'cliente@email.com',
    name: 'João Silva',
    cpf: '12345678900',
    phone: '11999999999',
  },
  card: {
    number: '4111111111111111',
    holder_name: 'JOAO SILVA',
    expiry_month: '12',
    expiry_year: '2027',
    cvv: '123',
    postal_code: '01310100',
    address_number: '1000',
  },
});

// payment.status → 'processing' ou 'completed'
// payment.card_brand → 'VISA'
// payment.card_last_four → '1111'
3

Aguarde a análise de risco

Se o status for processing, o cartão está em análise de risco. Você será notificado via webhook quando for aprovado ou reprovado.
4

Receba a confirmação via webhook

O Pagozz envia payment.succeeded quando o pagamento é aprovado.

Análise de risco

Pagamentos com cartão passam por análise de risco do provedor. O fluxo tem dois caminhos:
ResultadoStatusWebhook
Aprovação imediatacompletedpayment.succeeded
Pendente de análiseprocessingNenhum (aguardando)
Aprovado após análisecompletedpayment.succeeded
Reprovado na análisefailedpayment.failed
A análise de risco é automática e geralmente leva segundos. Em casos raros, pode levar minutos.

Cartões salvos

O Pagozz tokeniza automaticamente o cartão na primeira transação. Em compras futuras, o pagador pode usar o cartão salvo sem digitar os dados novamente.
// Pagar com cartão salvo
const payment = await pagozz.payments.createCard({
  link_id: link.id,
  payer: {
    email: 'cliente@email.com',
    name: 'João Silva',
    cpf: '12345678900',
    phone: '11999999999',
  },
  saved_payment_method_id: 'spm_a1b2c3d4-e5f6-7890-abcd-ef1234567890',
});
O token do cartão nunca é exposto na API. Apenas o id, bandeira, últimos 4 dígitos e nome do titular são retornados.

Taxas

ItemValor
Taxa percentual5,29%
Taxa fixaR$ 0,59
Valor mínimoR$ 9,99

Exemplo de cálculo

Pagamento: R$ 100,00 (10000 centavos)
Taxa: 5,29% × 10000 + 59 = 529 + 59 = R$ 5,88
Líquido: R$ 100,00 - R$ 5,88 = R$ 94,12

Campos obrigatórios

CampoTipoDescrição
payer.emailstringEmail do pagador
payer.namestringNome completo
payer.cpfstringCPF (11 dígitos)
payer.phonestringTelefone (10-11 dígitos)
card.numberstringNúmero do cartão (13-19 dígitos)
card.holder_namestringNome no cartão
card.expiry_monthstringMês de expiração (01-12)
card.expiry_yearstringAno de expiração (4 dígitos)
card.cvvstringCódigo de segurança (3-4 dígitos)
card.postal_codestringCEP (8 dígitos)
card.address_numberstringNúmero do endereço

Teste em sandbox

No ambiente test, use o cartão 4111111111119999 para simular análise de risco:
const payment = await pagozz.payments.createCard({
  link_id: 'link-id',
  payer: { email: 'teste@email.com', name: 'Teste', cpf: '12345678900', phone: '11999999999' },
  card: {
    number: '4111111111119999',
    holder_name: 'TESTE',
    expiry_month: '12',
    expiry_year: '2027',
    cvv: '123',
    postal_code: '01310100',
    address_number: '1000',
  },
});

// Status será 'processing' (AWAITING_RISK_ANALYSIS)

// Simule a aprovação:
await pagozz.payments.simulate(payment.transaction_id);
Cartões com qualquer outro final completam automaticamente em test mode.

Proteções

  • 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
  • Tokenização automática: o cartão é salvo de forma segura para compras futuras