Estrutura do payload do webhook
JSON completo enviado nos webhooks do ggCheckout
Payload enviado para seu endpoint:
O ggCheckout envia um POST com Content-Type: application/json para sua URL configurada. Se voce definiu um Secret, os headers Authorization: Bearer <secret> e x-secret: <secret> sao incluidos automaticamente.
{
"event": "pix.paid",
"createdAt": "2024-01-15T10:30:00Z",
"customer": {
"name": "Joao Silva",
"email": "joao@email.com",
"document": "12345678901",
"phone": "5511999999999",
"ip": "177.45.23.100"
},
"payment": {
"id": "29cce702-5e7e-40da-93b0-aaa19acab32e",
"method": "pix.paid",
"paymentMethod": "pix",
"gateway": "pagouai",
"status": "paid",
"amount": 97.00,
"pixCode": "00020126580014BR.GOV.BCB.PIX..."
},
"product": {
"id": "YbfsgK1Fgm0LzUsFglrn",
"type": "main",
"title": "Meu Produto Digital"
},
"products": [
{
"id": "YbfsgK1Fgm0LzUsFglrn",
"type": "main",
"title": "Meu Produto Digital"
},
{
"id": "bump_abc123",
"type": "orderbump",
"title": "E-book Bonus",
"price": 2700
}
],
"webhook": {
"id": "webhook_xyz789",
"businessId": "woYVFMp2mOOJnU0Mrbn8AlhhpmD2",
"events": ["pix.paid", "pix.generated"]
},
"utm_source": "facebook",
"utm_medium": "cpc",
"utm_campaign": "minha-campanha",
"utm_content": null,
"utm_term": null,
"customerIp": "177.45.23.100"
}Eventos disponíveis:
pix.paid
PIX confirmado
pix.generated
PIX gerado, aguardando pagamento
pix.expired
PIX expirado sem pagamento
pix.failed
PIX com falha
pix.refunded
PIX reembolsado
card.paid
Cartão aprovado
card.generated
Cartão em processamento
card.expired
Cartão expirado sem confirmação
card.failed
Cartão recusado
card.refunded
Cartão reembolsado
card.pending
Cartão pendente de análise
Campos importantes:
payment.status
Valores possíveis: paid, pending, failed, refunded, charged_back
product.type
Valores possíveis: main, orderbump, upsell, downsell
payment.pixCode
Código PIX copia-e-cola. Disponível apenas em eventos PIX.
utm_*
Parâmetros UTM do link de origem. null se o cliente não veio de link rastreado.
Retentativas
Se seu endpoint retornar erro (status >= 400 ou timeout), o webhook será retentado automaticamente até 3 vezes.