O que são hooks?
Hooks permitem que você execute código em momentos específicos do fluxo de pagamento. O pagamentos.dev oferece dois tipos de hooks unificados:- Lifecycle hooks — disparam automaticamente após operações de API bem-sucedidas (criar, consultar, atualizar, listar, cancelar).
- Webhook hooks — disparam quando eventos assíncronos chegam via webhook (pagamento realizado, cobrança vencida, etc).
Pagamentos:
Lifecycle hooks
Os lifecycle hooks capturam eventos que acontecem imediatamente após uma chamada de API retornar com sucesso. Eles são ideais para logging, auditoria, sincronização com seu banco de dados ou disparo de ações internas.Evento de lifecycle
Cada hook recebe um objetoLifecycleEvent com as seguintes propriedades:
Hooks por operação
Você pode escutar eventos específicos de cada recurso e operação:Clientes
Cobranças
Checkout
Hooks por recurso (genéricos)
Se quiser escutar todas as operações de um recurso, use os hooks de recurso:Hook genérico customizado
Para casos mais específicos, useonLifecycleEvent para filtrar manualmente por recurso e operação:
Webhook hooks
Enquanto os lifecycle hooks reagem a ações que você realiza via API, os webhook hooks reagem a eventos que acontecem no provedor (ex: cliente pagou, boleto venceu, assinatura foi renovada).Eventos canônicos
O pagamentos.dev normaliza os eventos de diferentes provedores em nomes canônicos. Os principais eventos disponíveis são:pagamento.realizadopagamento.falhoucobranca.vencidacobranca.canceladacobranca.disputadaassinatura.ativadaassinatura.canceladaassinatura.renovadatransferencia.enviotransferencia.falhoudesembolso.enviodesembolso.falhou
Usando onWebhookEvent
Registre um handler para um evento específico:
Aliases curinga
Você pode usar padrões curinga para escutar múltiplos eventos de uma vez:Para mais detalhes sobre como receber e validar webhooks, consulte a página dedicada a Webhooks.
Exemplo prático combinado
Aqui está um exemplo completo que combina lifecycle hooks e webhook hooks para gerenciar o ciclo de vida de uma cobrança:- O lifecycle hook
onCobrancaCreatedgarante que toda cobrança criada seja salva no banco de dados local e que o cliente receba o e-mail com o QR Code. - O webhook hook
pagamento.realizadoatualiza o status no banco e libera o produto assim que o pagamento é confirmado pelo provedor. - O webhook hook
cobranca.vencidatrata cobranças não pagas dentro do prazo.
Dicas e boas práticas
- Hooks são síncronos ou assíncronos: handlers podem retornar
voidouPromise<void>. O SDK aguarda a conclusão dos hooks assíncronos. - Evite lógica pesada nos hooks: se o processamento for longo, considere enfileirar em um background job para não bloquear a resposta da API ou do webhook.
- Idempotência em webhooks: provedores podem enviar o mesmo evento múltiplas vezes. Verifique se o evento já foi processado usando o
event.id. - Tipagem forte: os hooks de webhook são totalmente tipados. Ao usar eventos canônicos, o TypeScript infere corretamente o formato de
event.data.