Webhooks
Webhooks para Interações com Pix
Os webhooks da API do Pagou permitem receber notificações assíncronas sobre eventos relacionados a QRCodes Pix, como pagamentos confirmados ou estornos processados. Esta seção detalha os eventos qrcode.completed
e qrcode.refunded
, suas estruturas de payload, configuração do notification_url
.
Visão Geral Técnica
A API do Pagou envia notificações via requisições HTTP POST
para o notification_url
configurado ao criar um QRCode Pix (via POST
/v1/pix
ou POST
/v1/pix/due
). Dois eventos estão disponíveis para Pix:
qrcode.completed: Notifica quando um QRCode Pix é pago, transitando o status para
StatusCompleted
.qrcode.refunded: Notifica quando um QRCode Pix é estornado, transitando o status para
StatusRefunded
.
Os webhooks são enviados em formato JSON e requerem um endpoint HTTPS público no lado do cliente para processamento. Cada webhook inclui um campo event_name
para identificar o evento e um objeto data
com detalhes específicos. A API realiza até 10 tentativas de entrega do webhook, com intervalos exponenciais, até receber uma resposta 200 OK
.
Especificações:
Método:
POST
Content-Type:
application/json
URL: Configurada no campo
notification_url
ao criar o QRCode.Eventos:
qrcode.completed
,qrcode.refunded
.
Configuração do Webhook
Definir o
notification_url
: Ao criar um QRCode viaPOST
/v1/pix
ouPOST
/v1/pix/due
, inclua o camponotification_url
(ex.: https://your-webhook.com/notifications) no corpo da requisição (veja Criando um QRCode ou Criando um QRCode com Vencimento).Implementar o endpoint: Crie um endpoint HTTP
POST
no seu servidor para receber e processar os payloads JSON.Garantir HTTPS: Use um certificado SSL válido para o
notification_url
.
Estrutura dos Webhooks
Evento: qrcode.completed
Notifica quando um QRCode Pix é pago, indicando que o status mudou para StatusCompleted
.
Payload:
{
"event_name": "qrcode.completed",
"data": {
"id": "550e8400-e29b-41d4-a716-446655440000",
"external_id": "ext-qr-12345",
"transaction_id": "txn-789012",
"e2e_id": "E123456789202401151030abcdef123456",
"amount": 50.00,
"payer": {
"name": "João Silva",
"document": "12345678901",
"bank": {
"code": "341",
"name": "Banco Itaú",
"agency": "1234",
"account": "567890",
"document": "12345678901"
}
},
"description": "Payment for product or service"
}
}
Campos do Payload:
Campo
Tipo
Descrição
event_name
string
Nome do evento (qrcode.completed
).
data
object
Dados do evento.
data.id
string
UUID do QRCode (ex.: 550e8400-e29b-41d4-a716-446655440000).
data.external_id
string
Identificador externo do QRCode .
data.transaction_id
string
ID da transação Pix (ex.: txn-789012).
data.e2e_id
string
ID end-to-end do Pix (ex.: E123456789202401151030abcdef123456).
data.amount
number
Valor pago em reais (ex.: 50.00).
data.payer
object
Dados do pagador.
data.payer.name
string
Nome do pagador (ex.: João Silva).
data.payer.document
string
CPF (11 dígitos) ou CNPJ (14 dígitos) do pagador.
data.payer.bank
object
Dados bancários do pagador.
data.payer.bank.code
string
Código do banco (ex.: 341 para Banco Itaú).
data.payer.bank.name
string
Nome do banco (ex.: Banco Itaú).
data.payer.bank.agency
string
Agência bancária (ex.: 1234).
data.payer.bank.account
string
Conta bancária (ex.: 567890).
data.payer.bank.document
string
CPF ou CNPJ do titular da conta (ex.: 12345678901).
data.description
string
Descrição do pagamento (ex.: Payment for product or service).
Evento: qrcode.refunded
Notifica quando um QRCode Pix é estornado, indicando que o status mudou para StatusRefunded.
Payload:
{
"event_name": "qrcode.refunded",
"data": {
"id": "550e8400-e29b-41d4-a716-446655440000",
"transaction_id": "txn-789012",
"amount": 25.00,
"client_code": "CUST-001",
"description": "Refund requested by customer"
}
}
Campos do Payload:
Campo
Tipo
Descrição
event_name
string
Nome do evento (qrcode.refunded
).
data
object
Dados do evento.
data.id
string
UUID do QRCode (ex.: 550e8400-e29b-41d4-a716-446655440000).
data.transaction_id
string
ID da transação Pix (ex.: txn-789012).
data.amount
number
Valor estornado em reais (ex.: 25.00).
data.client_code
string
Identificador do cliente (ex.: CUST-001, equivalente a customer_id).
data.description
string
Descrição do estorno (ex.: Refund requested by customer).
Last updated