Webhook payload structure
Full JSON sent in ggCheckout webhooks
Payload sent to your endpoint:
ggCheckout sends a POST with Content-Type: application/json to your configured URL. If you set a Secret, the headers Authorization: Bearer <secret> and x-secret: <secret> are automatically included.
{
"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"
}Available events:
pix.paid
PIX payment confirmed
pix.generated
PIX generated, awaiting payment
pix.expired
PIX expired without payment
pix.failed
PIX failed
pix.refunded
PIX refunded
card.paid
Card approved
card.generated
Card processing
card.expired
Card expired without confirmation
card.failed
Card declined
card.refunded
Card refunded
card.pending
Card pending analysis
Key fields:
payment.status
Possible values: paid, pending, failed, refunded, charged_back
product.type
Possible values: main, orderbump, upsell, downsell
payment.pixCode
PIX copy-and-paste code. Only available on PIX events.
utm_*
UTM parameters from the source link. null if the customer did not come from a tracked link.
Retries
If your endpoint returns an error (status >= 400 or timeout), the webhook will be automatically retried up to 3 times.