PayZuPayZu Docs

Webhooks

A API envia uma requisição POST para a callbackUrl informada na criação da cobrança ou saque sempre que o status muda. O corpo é JSON com os dados atualizados da transação.

O que é um webhook (callback)

Em vez do seu sistema ficar perguntando "já pagou?", a PayZu chama você quando algo acontece.

Como configurar

Passe callbackUrl em cada criação (POST /pix, POST /withdraw, etc):

{
  "amount": 99.90,
  "callbackUrl": "https://seusite.com.br/webhooks/payzu",
  "clientReference": "order-2025-001"
}

O endpoint precisa estar acessível publicamente e responder HTTP 2xx em até 5 segundos, aceitando:

Content-Type: application/json

Sistema de retry

A PayZu reenvia o callback até 72 vezes com backoff exponencial e jitter quando não recebe 2xx em 5 segundos.

Campos enviados

Identificação

CampoTipoDescrição
idstringIdentificador único da transação na PayZu
clientReferencestringIdentificador externo que você forneceu
typestringDEPOSIT ou WITHDRAW
statusstringVer Status de transação
amountnumberValor em reais (BRL)
serviceFeeChargednumberTarifa cobrada

Cobrança gerada

CampoTipoDescrição
qrCodeTextstringCódigo Pix copia-e-cola (EMV)
qrCodeBase64stringImagem do QR em Base64
qrCodeUrlstringURL pública do QR como PNG
generatedNamestringNome de referência
generatedDocumentstringCPF ou CNPJ
generatedEmailstringEmail vinculado

Pagador

CampoTipoDescrição
payerNamestringNome do pagador (se houver)
payerDocumentstringDocumento do pagador
payerInstitutionIspbstringISPB da instituição do pagador
payerInstitutionNamestringNome da instituição

Recebedor

CampoTipoDescrição
receiverNamestringNome do recebedor (se fornecido)
receiverDocumentstringDocumento do recebedor
receiverInstitutionIspbstringISPB da instituição do recebedor
receiverInstitutionNamestringNome da instituição

Saque por chave

CampoTipoDescrição
withdrawPixKeystringChave Pix usada no saque
withdrawPixTypestringVer Tipos de chave

Timestamps e infração

CampoTipoDescrição
createdAtstringQuando a transação foi criada (ISO 8601)
updatedAtstringÚltima atualização
paidAtstring | nullQuando foi paga (null se ainda não foi)
endToEndIdstringEndToEnd ID do Pix
infractionobject | undefinedPresente só em caso de disputa MED, ver Glossário

Boas práticas

  • Responda rápido: devolva 2xx em menos de 5s. Processe pesado em fila
  • Idempotência: armazene id + status pra deduplicar
  • Use clientReference: passe identificador externo na criação
  • Restrinja por IP: aceite callbacks apenas do IP oficial PayZu

Suporte

On this page