type com o código do evento (ex: transaction.paid).
Ao cadastrar um webhook, você escolhe quais códigos deseja receber —
ou deixa a lista de eventos vazia para receber todos.
Esta página lista todos os eventos disponíveis no catálogo oficial. O mesmo catálogo é exposto pela
API em GET /webhooks/listeners, então você pode buscá-lo programaticamente em vez de copiar daqui.
refund.* e chargeback.* são assináveis como qualquer outro código — passe-os no array
events normalmente. Os agregados transaction.refunded/payment.refunded e
transaction.chargeback/payment.chargeback também existem, e contam histórias diferentes: o
evento do recurso segue o ciclo próprio dele (um refund.refused não muda a transação), o
agregado avisa o efeito no todo. Já os eventos checkout.session.* são internos do Checkout
e não são entregues a webhooks; para saber o resultado de um checkout, escute
transaction.paid/transaction.refused.Códigos de evento são case-sensitive e seguem o padrão
recurso.acao em minúsculas com _ para
separar palavras (ex: subscription.cycle_advanced). Use exatamente os valores desta página ao
preencher o array events na criação do webhook.Estrutura de uma notificação
Independente do evento, o corpo entregue ao seu endpoint tem sempre o mesmo envelope —id, type,
data, occurredAt e companyId. O que muda de um evento para outro é só o conteúdo de data,
que é o objeto da entidade que o disparou.
Cada campo do envelope está descrito em
Recebendo eventos — inclusive por que o
id
serve de chave de deduplicação e o occurredAt, de critério de ordem. Esta página cobre o outro
lado: quais type existem e o que vem em data para cada um.Eventos por recurso
Transação (transaction.*)
Eventos do ciclo de vida de uma transação. O campo data traz o objeto da transação (prefixo txn_).
Pagamento (payment.*)
Eventos do ciclo de vida de um pagamento. O campo data traz o objeto do pagamento (prefixo pay_).
Reembolso (refund.*)
Eventos do ciclo próprio do reembolso — pedido, decisão e liquidação. O campo data traz o objeto
do reembolso (prefixo rfd_). Os de dados bancários só acontecem em reembolso de boleto, quando é
preciso pedir a conta de destino ao comprador.
O
data de todo evento refund.* traz o comprador e o checkout da venda de origem —
customerId, customerName, customerEmail, customerDocument, customerDocumentType e
additionalInfo.checkoutLinkId (a mesma chave dos eventos transaction.*), copiados da
transação quando o estorno é criado. Você sabe de quem é o estorno e de qual checkout veio a
venda lendo só o evento, sem consultar a transação. additionalInfo é nulo em venda criada
direto pela API, sem link de checkout — veja Reembolsos.Chargeback (chargeback.*)
Eventos do ciclo da contestação — abertura, defesa e desfecho. O campo data traz o objeto do
chargeback (prefixo cbk_).
Cliente (customer.*)
Eventos de cadastro de clientes. O campo data traz o objeto do cliente (prefixo cust_).
Recebedor (recipient.*)
Eventos do ciclo de vida do vínculo de um recebedor com a sua conta. O campo data traz os dados
cadastrais do recebedor (prefixo rec_), no mesmo formato de GET /recipients/:id — incluindo
analysisComplete, pendencies e pendenciesSummary.
Os eventos de análise (
recipient.approved, recipient.refused e
recipient.pendency_updated) são disparados uma vez por rodada de análise, quando ela
fecha — nunca no meio. O motivo da recusa vem em data.pendencies; veja
Por que meu recebedor foi recusado?.Saque (withdrawal.*)
Eventos de saque da carteira (wallet). O campo data traz o objeto do saque.
Fatura (invoice.*)
Eventos do ciclo de vida das faturas geradas pelas assinaturas. O campo data traz o
objeto da fatura (prefixo inv_).
No evento
invoice.payment_attempted, o data carrega o resultado da tentativa de cobrança (e o
invoiceId referenciado), não o objeto completo da fatura.Não existe status
voided no objeto da fatura: o evento invoice.voided é disparado quando a
fatura passa para o status canceled (anulada). Ao receber esse evento, espere
data.status: "canceled".Assinatura (subscription.*)
Eventos do ciclo de vida das assinaturas. O campo data traz o objeto
da assinatura (prefixo sub_).
Se você libera acesso ao seu produto conforme a assinatura, os quatro eventos de inadimplência são
o par que interessa:
past_due— a cobrança falhou e a régua de retentativa ainda está rodando. Não é sinal de cortar acesso: a maioria se resolve na próxima tentativa.unpaid— a régua se esgotou e o motor desistiu. É aqui que faz sentido restringir.restored— o valor em aberto foi zerado (pagamento ou cancelamento da fatura) e a assinatura voltou paraactive.reactivated— o lojista reativou manualmente uma assinaturaunpaid.
past_due ou unpaid precisa ouvir restored e reactivated para
liberar de volta — nenhum outro evento avisa que a assinatura voltou.O que não gera evento: as transições para
completed (atingiu maxCycles) e
incomplete_expired não têm webhook próprio. Para acompanhá-las, consulte a assinatura na API
ou observe os invoice.* das cobranças relacionadas.Antecipação (anticipation.*)
Eventos de antecipação de recebíveis (settle). O campo data traz o objeto da antecipação.
Buscar o catálogo pela API
Esta mesma lista sai da API, com código e descrição, emGET /webhooks/listeners — útil para validar do seu lado os códigos
que você vai assinar, antes de mandá-los no cadastro.
Para escolher quais destes eventos um webhook recebe, informe os códigos em events ao
criar ou atualizar o webhook. Lista vazia
significa todos.
Veja também
Recebendo eventos
Envelope, cabeçalhos e como verificar a assinatura HMAC.
Transações
O objeto
transaction enviado nos eventos transaction.*.Pagamentos
O objeto
payment enviado nos eventos payment.*.Assinaturas
Faturas e assinaturas que disparam os eventos
invoice.* e subscription.*.