Pular para o conteúdo principal

Visão geral

Formato da requisição

Todas as requisições de webhook são enviadas com:

  • Método: POST
  • Content-Type: application/json
  • Corpo: um objeto JSON com a estrutura abaixo

Estrutura do payload

Cada requisição enviada para sua URL tem o seguinte formato:

{
"event": "nome.do.evento",
"data": { ... },
"timestamp": "2025-01-28T12:00:00.000Z",
"webhookId": "uuid-do-webhook"
}
CampoTipoDescrição
eventstringNome do evento (ex.: purchase.approved, pix.generated).
dataobjectDados específicos do evento (transação, assinatura, cliente, etc.).
timestampstringData/hora do disparo em ISO 8601.
webhookIdstringID do webhook no TukanoPay (útil para logs).

Headers enviados

HeaderDescrição
Content-Typeapplication/json
X-Webhook-EventNome do evento (mesmo valor de event no body).
X-Webhook-IdID do webhook.
X-Webhook-SignatureAssinatura HMAC SHA256 do body (apenas se você configurou um secret no webhook). Use para validar a autenticidade.

Lista de eventos

EventoDescrição
purchase.approvedCompra aprovada (cartão ou PIX confirmado).
purchase.refusedCompra recusada (todas as tentativas de pagamento falharam).
pix.generatedQR Code PIX gerado (pagamento pendente).
refundReembolso processado.
chargebackChargeback registrado pela adquirente.
subscription.renewedAssinatura criada ou renovada.
subscription.cancelledAssinatura cancelada.
subscription.delayedAssinatura atrasada/suspensa (falhas de cobrança).
cart.abandonedCarrinho abandonado (checkout não finalizado).

Nos próximos tópicos você encontra o payload completo de cada evento.

Rastreamento (UTM e afins)

Se o checkout receber os parâmetros de rastreamento abaixo (query string ou body), eles são salvos na transação/assinatura e sempre enviados nos webhooks no objeto data.tracking:

ParâmetroDescrição (uso típico)
utm_sourceOrigem (ex.: google, newsletter).
utm_campaignCampanha (ex.: blackfriday).
utm_mediumMeio (ex.: cpc, email).
utm_contentConteúdo (ex.: banner-1).
cidID de campanha (ex.: clique em anúncio).
srcFonte (ex.: rede social).

Assim, produtores podem rastrear vendas por campanha, anúncio ou origem. O objeto tracking em cada evento contém apenas as chaves que foram enviadas no checkout (objeto vazio {} se nenhum parâmetro foi passado).